Beiträge von ThomasChr

    Und hier kurz zur vereinfachten technischen Erklärung:

    Es spielen hier drei Systeme moderner CPUs (auch AMD und ARM) eine Rolle:

    1. Virtueller Speicher: Jeder Speicherzugriff eines Prozesses wird von der CPU Memory Einheit (MMU) umgewandelt auf eine echte Adresse. Außerdem prüft die MMU auch ob der Speicherzugriff erlaubt ist.

    2. Cache: Jeder Prozessor hat einen sehr schnellen Speicher direkt neben dem Core - dieser puffert den Inhalt des Speichers, somit kann häufig gelesener Speicher schneller gelesen werden - sogar ohne Zugriff auf den Memory Bus.

    3. Out of Order Execution: Moderne CPUs führen mehrere Programmzeilen gleichzeitig aus, auch welche die eventuell garnicht dran kommen oder erlaubt sind.

    So, und nun zur Pseudo Erklärung:

    Mein Prozess hat seinen eigenen Speicher (fiktive Werte!!) der geht von 0x00000000 - 0x80000000 und gleichzeitig auch den kompletten (geheimen) Kernel Speicher von 0x80000001 - 0xFFFFFFF. Die MMU verbietet mir aber (als Userspace Prozess ohne Systemrechte) jeglichen Lesezugriff auf alle Speicherseiten ab 0x80000001. So muss das sein.

    Jetzt macht mein Programm folgendes:

    1. Leere den kompletten Prozessor-Speichercache.

    2. Erzeuge dir eine legalen Speicherbereich, z.B. von 0x10000000 und nenne diesen A.

    3. Lese von der verbotenen Adresse 0x80001000, das Ergebnis ist B. Nehmen wir an wir bekämen hier: 0x25

    -> ANMERKUNG: Der Schritt 3 wird ausgeführt werden (Out of Order Execution) aber das Ergebnis wird nicht zurückgegeben werden weil das lesen dieser Adresse ja verboten ist.

    4. Schreibe das Ergebnis an die Adresse A + B, also in unserem Fall 0x10000025. Auch diese Anweisung ist nicht erlaubt, wird aber (Out of Order Execution) ausgeführt werden.

    5. Nun lesen wir von Adresse 0x10000000 und schauen wir schnell die Antwort kommt - kommt sie sehr schnell so war B und damit der Inhalt der verbotenen Adresse 0x00.

    6. Jetzt fangen wir wieder bei 1 an, nur lesen wir diesmal im Punkt 5 nicht von 0x10000000 sondern von 0x10000001 und messen auch hier wieder die Zeit.

    7. Wir erhöhen jetzt jedesmal die Adresse um 1, bis wir irgendwann feststellen dass wir bei 0x10000025 plötzlich sehr schnell lesen können.

    Damit wissen wir also: B war 0x25 - weil die CPU die entsprechende Adresse des Speichers im Cache hat!

    In der Realität wird übrigens bei Punkt 4 nicht einfach A+B gerechnet sondern es wird multipliziert, also eher A+(B*4096) - weil die CPU immer Page weiße cacht, also 4096 Bytes auf einmal. Bei Punkt 6 wird dann entsprechend nicht um 1 erhöht sondern um 4096 - das Prinzip ist aber das gleiche.

    Die recht ähnliche Spectre Attacke läuft nach einem ähnlichen Schema ab, nur wird hier der Speicher eines anderen Prozesses ausgelesen indem man ihn dazu bringt von einer verbotenen Adresse mit Out of Order Execution zu lesen.

    Quelle Meltdown: https://meltdownattack.com/meltdown.pdf

    Quelle Spectre: https://spectreattack.com/spectre.pdf

    Es können nur die Programme ausgeführt werden die für dich installiert sind.

    Kannst du denn rrdtool aufrufen? Wenn nicht wirst du den Support fragen müssen ob es installiert werden kann.

    Wenn der Support es nicht installieren kann/will dann wirst du wohl für diese spezielle Anwendung einen kleinen vServer mieten müssen.

    Thomas

    janxb

    Vielen Dank für deine Transparenz hier!

    Nach einigem Hin-, und Her wälzen der Argumente denke ich schon dass die Schuld für das Problem größtenteils bei netcup liegt. Ein "stark belasteter" Host darf ja mal sein, aber Pakete verlieren ist nicht sonderlich toll.

    Dass ein drei Minuten Gesrpäch 40€ kostet kann wahrscheinlich sein weil nach angefangener Viertelstunde oder Halbestunde abgerechnet wird. Dass man das aber in Rechnung stellt, auch bei drei Minuten (vielleicht warens ja auch 5...) find ich nicht ganz fair einem langjährigen Kunden gegenüber.

    Vorallem wenn der Fehler ja nicht beim Kunden liegt.

    Dass dann noch dazu nicht anzukündigen find ich auch nicht ganz okay.

    Ich denke Felix wird das hier sicherlich noch erklären und vielleicht ist dann auch klar warum netcup so handelte.

    Ob man da mehr einstellen kann (ich nehme an du hast ein Hosting Paket?) kann ich dir leider nicht sagen. Da wirst du eventuell den Support dazu befragen müssen.

    Was ich aber anmerken möchte ist dass 5000 Input Vars nicht unbedingt auf eine gut programmierte Software hindeuten. Für mich klingt das für ein simples Theme nach ziemlich viel!