Jetzt fliegt uns Windows um die Ohren



  • Der Punkt ist doch nicht das Windows exploitbar ist, sondern dass Stuxnet SCADA-Software ausspionieren und vorallem manipulieren kann. Also fliegen uns eher Pipelines, Chemieanlagen und Kernkraftwerke um die Ohren. Das erschreckende ist, dass da irgend eine Organisation ziemlich viel Geld reingesteckt hat und SCADA-Systeme offenbar so gut wie nicht gesichert sind.

    http://www.infoworld.com/d/security-central/stuxnet-the-best-malware-ever-598



  • Erhard Henkes schrieb:

    Das hört sich nicht gut an. Werden solche Systeme in Kernkraftwerken eingesetzt?

    Ja. Es wird spekuliert, dass das Ziel vorallem iranische Nuklearanlagen waren.

    http://www.upi.com/News_Photos/Features/The-Nuclear-Issue-in-Iran/1581/2/
    http://www.langner.com/en/index.htm

    Aber das betroffene System wird bei allen möglichen Industriesystemen verwendet. Kraftwerke, Pipelines, Fertigungsanlagen, Chemieindustrie etc.

    http://en.wikipedia.org/wiki/SCADA
    http://de.wikipedia.org/wiki/WinCC http://de.wikipedia.org/wiki/SIMATIC

    (in dem Kontext sicher auch ganz interessant, dass vor ein paar Monaten von der britischen Marine eine Lieferung von Siemens Teleperm-Systemen an den Iran abgefangen wurde. http://www.heise.de/newsticker/meldung/Siemens-Lieferungen-nach-Iran-abgefangen-884249.html)



  • rüdiger schrieb:

    Der Punkt ist doch nicht das Windows exploitbar ist,

    Naja, doch. Man sollte solche Pappschachtelsoftware einfach nicht in empfindlichen Umgebungen einsetzen. Natürlich ist ein Mac oder Linux aus der Box auch nicht automatisch besser.

    Man sollte genau überlegen, was für Software drauf läuft, was gebraucht wird und was nicht, vor allem wenn das Ding mit anderen Rechnern verbunden sein soll.



  • rüdiger schrieb:

    Aber das betroffene System wird bei allen möglichen Industriesystemen verwendet. Kraftwerke, Pipelines, Fertigungsanlagen, Chemieindustrie etc.

    Mit SCADA-Software wurden schonmal Pipelines zum Platzen gebracht:

    In 1999, when a pipeline burst in Bellingham, Washington, a SCADA failure was implicated. A software glitch in a SCADA system also slowed controls on the power grid during a successful computer attack in 2003. Incidentally, SCADA network and control systems also run dams, power plants, and gas and oil refineries.

    http://www.towardfreedom.com/americas/1956-the-oil-spill-accident-or-cyber-attack


  • Mod

    In unseren Kreisen gibt's da gewisse Vorbehalte, weil seltsamerweise die einzigen SPS-Würmer immer ausgerechnet auf den Sicherheitsseminaren gewisser Firmen vorgeführt werden... in der freien Wildbahn hat man keine gefunden. Einige Leute vermuten, daß hier Angebot und Nachfrage in der falschen Reihenfolge auftreten...

    Generell halte ich das aber für hanebüchenen Unsinn, daß hier gezielte Attacken ausgeführt werden. Was soll der Wurm denn auf der SPS suchen? Eine SPS ist letztlich Assembler-Code. Da steht nirgendwo eine Funktion "no_switch_on_nuclear_power_plant()". Sondern das sind nur Moves, Or und And, da wird irgendwo ein Ausgang gesetzt, irgendwelche Timer überwachen das, aber bereits bei der gleichen Anlage an einem anderen Standort ist das Programm leicht modifiziert, weil andere elektrotechnische Ausführungsrichtlinien gelten. Auch wird in der Prozessindustrie viel individuell programmiert, erst auf der Baustelle. D.h. das Programm wird vor Ort geschrieben... es gibt da keine generischen Angriffsrichtung.

    Natürlich wird man durch so eine Injection ein SPS-Programm zu einer Fehlfunktion bringen können, aber sicherheitskritische Anlagenteile sind regelmäßig zusätzlich noch durch eine in Hardware ausgeführte Failover-Verknüpfung geschützt. Also selbst wenn ein IO nicht mehr richtig gesetzt wird, schaltet sich dann das System ab.

    Allgemein findet man in der Industrie fast ausschließlich Windows-Systeme in der SCADA- und Leitebene. Kein Wunder, es gibt ja auch nichts sonst. Die wichtigen IO-Standards (z.B. OPC) wurden von Microsoft und Siemens vorangetrieben, OPC-Implementierungen für Linux sind seltener zu finden, nicht so stabil, und bei SCADAs wird es ganz düster. Alle wichtigen Plattformen und deren Standards sind für Windows: WinCC, PCS 7, iFix, Intouch, usw.

    In realen Fabriknetzen geht die größte Gefahr nicht von Trojanern aus (wer das denkt, hat sowas noch nie gemacht), sondern von gottverdammten Inbetriebnehmern, die auf der ganzen Welt mit ihren Notebooks rumreisen, überall ihre USB-Sticks in irgendwelche Ports stecken, eine mp3-, Raubkopie und Pornosammlung mit sich rumschleppen, und dann die Anlagenrechner infizieren. Das ist das größte Problem überhaupt, ich schätze mal, daß man so ein Problem bei 3-5% der Inbetriebnahmen hat.

    Ich bin ein großer Anhänger davon, daß man bei Anlagen einfach mit einer Klebepistole die USB-Ports zuspritzt. Das ist die wichtigste IT-Sicherheitsmaßnahme im Fabrikumfeld.


  • Mod

    earli schrieb:

    Mit SCADA-Software wurden schonmal Pipelines zum Platzen gebracht:

    In 1999, when a pipeline burst in Bellingham, Washington, a SCADA failure was implicated. A software glitch in a SCADA system also slowed controls on the power grid during a successful computer attack in 2003. Incidentally, SCADA network and control systems also run dams, power plants, and gas and oil refineries.

    Irgendwann solltest Du auch mal verstehen was Du postest.

    Ein SCADA-System ist ein Datensammler und Datenverteiler in einem Automatisierungssystem. Ist doch klar, daß bei falscher Parametrierung eine Anlage zerstört werden kann - das ist ein Softwarefehler. Genauso sind auch schon Weltraumraketen abgestürzt, weil es Softwarefehler gab.

    Daraus jetzt eine Gefahr für Dämme und Kraftwerke zu konstruieren...

    Das größte Problem bei SCADA-Netzen ist in der Tat, daß die Daten nicht verschlüsselt sind. Man kann das zwar ab einer gewissen Ebene machen, aber auf der Aktor/Sensor-Ebene beherrschen diese Teile mangels Rechenleistung bisher nur selten Verschlüsselung. Jeder Dödel mit einem Netzwerkscanner kann die Daten mitlesen und verändern.



  • @Marc++us

    Ich glaube auch eher, dass es sich bei Stuxnet um einen gezielten Angriff handelt. Der Aufwand und das Wissen das in dem Wurm zu stecken scheint, spricht ja für die Arbeit irgend eines Geheimdienstes (Vier Windows 0days, Erfahrung mit Siemens Industriesystemen, umfangreiche Software in mehreren Sprachen, etc.) Es wird ja zZ viel darüber spekuliert, dass es sich um einen gezielten Angriff gegen den Iran handelt (was natürlich Israel oder die USA als Hauptverdächtigen erscheinen lässt). Wenn man genug Wissen über eine Anlage hat, dann kann man mit dem Wurm sicher schon größeren Schaden anrichten (der kann ja die SPS umprogrammieren und die Änderungen verstecken).

    Es gibt ja zB diese Geschichte http://en.wikipedia.org/wiki/Siberian_pipeline_sabotage



  • Also ich find ganz interessant, was fefe dazu zusammengetragen hat: http://blog.fefe.de/?ts=b26cf68e

    Denke man weiss bisher zu wenig, um da rückschlüsse zu ziehen.
    Die Iran Theorie halte ich aber für abwegig, die Iraner werden kaum so blöd sein, und ihre AKWs ans Internet hängen oder ähnliches tun.
    Denke eher das es ein Tool zur Industriespionage gewesen ist, evtl. auch um Anlagen geziehlt stören zu können.

    Aber egal wozu es dient(e), total krass ist die Sache schon 😃



  • rüdiger schrieb:

    Es gibt ja zB diese Geschichte http://en.wikipedia.org/wiki/Siberian_pipeline_sabotage

    Jaja, der CIA hat Ende der 80er noch berichtet, dass die Sovjetunion wirtschaftlich und militärisch die USA abhängen würde.

    Ein krimineller Haufen Idioten ist das, nichts weiter.


  • Mod

    rüdiger schrieb:

    Wenn man genug Wissen über eine Anlage hat, dann kann man mit dem Wurm sicher schon größeren Schaden anrichten (der kann ja die SPS umprogrammieren und die Änderungen verstecken).

    Aber ein SPS-Programm ist etwas anderes als ein Hochsprachenprogramm - es gibt da keine API. Um Schaden anzurichten, muß man die elektrischen Schaltpläne und verfahrenstechnischen Pläne haben, UND den Quellcode des SPS-Programms. Jemand der das hat, ist aber - der Entwickler des Systems.

    Das erscheint mir sehr viele "was wäre"-Ketten zu enthalten:

    - man entwickelt eine Anlage und nimmt sie in Betrieb
    - jemand - ein Geheimdienst - geht hin und entwendet die kompletten vollständigen Planungsunterlagen
    - darauf setzt sich jemand hin und entwickelt einen Exploit
    - der Exploit ersetzt SPS-Programmteile, passend zu den Planungsunterlagen
    - man streut den Exploit aus in der Hoffnung, daß die ursprünglich entwickelten Anlage inzwischen noch 1:1 so ist wie ausgeliefert UND daß sie am Internet hängt UND daß der Wurm sich auf einem der Anlagenrechner einnisten kann

    Die Komplexität der Operation ist ungeheuer, gleichzeitig ist die Wahrscheinlichkeit auf Erfolg eher gering.


  • Mod

    rüdiger schrieb:

    Es gibt ja zB diese Geschichte http://en.wikipedia.org/wiki/Siberian_pipeline_sabotage

    Das ist eben ein logischer Weg. Man packt in vorhandene Software einen Trojaner rein, verpasst ihm ein Eigenleben, und liefert ihn gleich mit aus.

    Das ist eine ganz andere Kategorie, mit ganz anderen Erfolgsaussichten.



  • ..



  • Erhard Henkes schrieb:

    Anlage inzwischen noch 1:1 so ist wie ausgeliefert UND daß sie am Internet hängt UND daß der Wurm sich auf einem der Anlagenrechner einnisten kann

    Das erscheint mir auch sehr unwahrscheinlich. Anlagen hängen normalerweise eher an einem separaten Intranet mit Firewalls gegen außen. Die Chance von innen Schaden anzurichten ist daher am höchsten, also z.B. der oben erwähnte usb-stick mit allem Möglichen drauf.

    Geh mal davon aus, dass in den meisten IT-Abteilungen inkompetente Versager sitzen. So könnte man es machen, aber die Realität ist leider traurig.

    heise-Kommentar zum Thema:
    http://www.heise.de/security/news/foren/S-Re-Kollision-von-Internetzeitalter-und-Jungsteinzeit/forum-186004/msg-19153406/read/

    noch ein anderer guter Kommentar:
    http://www.heise.de/security/news/foren/S-Hat-der-alte-Platon-schon-gesagt/forum-186004/msg-19155389/read/



  • Marc++us schrieb:

    rüdiger schrieb:

    Wenn man genug Wissen über eine Anlage hat, dann kann man mit dem Wurm sicher schon größeren Schaden anrichten (der kann ja die SPS umprogrammieren und die Änderungen verstecken).

    Aber ein SPS-Programm ist etwas anderes als ein Hochsprachenprogramm - es gibt da keine API. Um Schaden anzurichten, muß man die elektrischen Schaltpläne und verfahrenstechnischen Pläne haben, UND den Quellcode des SPS-Programms. Jemand der das hat, ist aber - der Entwickler des Systems.

    Das erscheint mir sehr viele "was wäre"-Ketten zu enthalten:

    - man entwickelt eine Anlage und nimmt sie in Betrieb
    - jemand - ein Geheimdienst - geht hin und entwendet die kompletten vollständigen Planungsunterlagen
    - darauf setzt sich jemand hin und entwickelt einen Exploit
    - der Exploit ersetzt SPS-Programmteile, passend zu den Planungsunterlagen
    - man streut den Exploit aus in der Hoffnung, daß die ursprünglich entwickelten Anlage inzwischen noch 1:1 so ist wie ausgeliefert UND daß sie am Internet hängt UND daß der Wurm sich auf einem der Anlagenrechner einnisten kann

    Die Komplexität der Operation ist ungeheuer, gleichzeitig ist die Wahrscheinlichkeit auf Erfolg eher gering.

    Der Wurm scheint ja sehr flexibel zu sein. Die Erstinfektion erfolgt wohl über einen USB-Stick. Dann scheint es wohl eine Spionage- und Umprogrammierfunktion gegeben zu haben, die man über das Internet Fernsteuern konnte. Aber wie individuell sind denn die ganzen Fertigungsanlagen? Sind das meiste nicht Standardkomponenten?

    Gut, die iranischen Atomanlagen dürften schon recht individuell sein. Busher wurde ja erst von Siemens gebaut und dann von der russischen AtomStroyExport fertig gestellt. Aber ein Geheimdienst kommt sicher auch an die Pläne. Irgend einen unzufriedenen Mitarbeiter findet man ja immer.

    Wobei dann natürlich die Frage offen bleibt, warum dann mehrere Systeme weltweit infiziert wurden. Ob der Wurm einfach ausgestreut ist, der Inbetriebnahmeleiter den dummerweise auf dem USB-Stick mitgebracht hat oder es sich um einen Versuch handelt das eigentliche Ziel zu verschleiern.

    Ich finde die ganze Geschichte auf jeden Fall sehr spannend. Klingt als wäre sie direkt aus einem Spionagethriller. 😋


  • Mod

    rüdiger schrieb:

    Aber wie individuell sind denn die ganzen Fertigungsanlagen? Sind das meiste nicht Standardkomponenten?

    Sie sind trotz Standardkomponenten sehr individuell...

    Eine Digital-IO-Karte einer SPS kann man immer automatisiert erkennen. Man kann auch das Programm überschreiben, so daß es Ausgang 8.0 auf 24Volt setzt. In Fabrik A hängt an 8.0 das Ventil "Reactor Main Switch" - in Fabrik B hängt an 8.0 die Treppenhausbeleuchtung.



  • Der Wurm sitzt doch nicht auf der SPS, sondern primär auf dem Engineering-PC. Wenn er die SCADA-Software aufgemacht hat, kann sich der Angreifer da drin erstmal gemütlich umschauen und ein paar Vermutungen anstellen, was was ist. Da ist ja Ausgang 0815 nicht nur eine Adresse, sondern ein Objekt mit mindestens Namen und Dokumentationstext.


  • Mod

    Bashar schrieb:

    Da ist ja Ausgang 0815 nicht nur eine Adresse, sondern ein Objekt mit mindestens Namen und Dokumentationstext.

    Der Namen hängt doch aber vermutlich an der Schaltplanbezeichnung oder Bezeichnung der zugehörigen Einheit?

    Der Versuch ist letztlich gleichbedeutend mit dem Ansatz, einen Parser über den Quellcode eines 3D-Shooters drüberzujagen und aus den Funktionsnamen einen Patch für den God-Mode erstellen zu wollen.



  • Aus der Visualisierung sollte man ja schon einige Informationen bekommt, wo welches Gerät nun hängt. Zumindest schauen die ganzen Beispiele in der WinCC-Broschüre da sehr hinweisend aus http://www.automation.siemens.com/salesmaterial-as/brochure/en/brochure_simatic-wincc_en.pdf



  • Marc++us schrieb:

    Bashar schrieb:

    Da ist ja Ausgang 0815 nicht nur eine Adresse, sondern ein Objekt mit mindestens Namen und Dokumentationstext.

    Der Namen hängt doch aber vermutlich an der Schaltplanbezeichnung oder Bezeichnung der zugehörigen Einheit?

    Der Versuch ist letztlich gleichbedeutend mit dem Ansatz, einen Parser über den Quellcode eines 3D-Shooters drüberzujagen und aus den Funktionsnamen einen Patch für den God-Mode erstellen zu wollen.

    Unsinn.

    Das ist wie, wenn man an die Daten des laufenden Programmes kommt. Und das ist Kinderkacke.

    Es gibt Tools, die den Speicher eines Spiels lesen.

    Beispiel GTA, das kenn ich von früher:
    Man gibt dem Tool den Kontostand des Spiels an. Das Tool sucht den Wert im Speicher. Man ändert den Kontostand leicht durch eine Aktion im Spiel und gibt den neuen Wert ins Tool ein. Nach zwei, drei Werten hat das Tool die Speicherstelle für das Geld gefunden, und man kann den Kontostand auf einen beliebigen Wert verstellen.


  • Mod

    Aber nur, wenn Du die Visualisierung interpretieren kannst.

    Die Visu bei einem an einem SCADA hängenden System ist genau wie der normale Resourceneditor. Da sind einfach Objekte drauf wie "Label1", "Label2", "DigitalIO23", und die Objekte sind dann via Tagbaum (vielleicht direkt) an die IO-Ebene der SPS gebunden.

    Wie soll denn die Heuristik des Trojaners auf diese Weise das "Main Reactor Switch Off" finden? Die Bilder sind doch nur einfach Pixel für den Menschen, die haben noch lange keine Logik hinterlegt.

    @earli: der Vergleich ist überhaupt nicht stichhaltig. Ein Computerspiel hat nicht so viele Werte, schon bei einer einfachen Maschinen-HMI werden einige 100 bis 1000 Werte eingelesen, und alle haben einen Jitter, d.h. das letzte Bit flattert permanent, so daß kein Wert wirklich so schön konstant ist wie ein Punktestand bei einem Spiel. Es ist auch nicht so, daß man einen Wert einstellt "mach den Ausgang jetzt mal auf 5.3 Volt", und beim Rücklesen des Eingangs kommen dann 5.3 Volt - sondern da kommen 5.2 oder 5.5 Volt. Und das wertet man als "Übereinstimmung". Das ist die Anbindung der analogen Welt, da flattert ständig alles.

    Mal eine Frage: glaubt Ihr, daß eine "1" auf einem Mainboard wirklich durch ein 3.3-Volt-Rechtecksignal dargestellt wird?

    Ich streite nicht ab, daß der Trojaner Schaden anrichten könnte - ein System würde in einen Notstopp gehen, wenn der da rumwirbelt und Werte manipuliert. Aber mehr? Man würde den Rechner vom Netz trennen, eine Sicherheitskopie einspielen, und geht wieder online.

    Das Beispiel mit der Pipeline in Sibirien ist nicht vergleichbar, da hat jemand (Mensch) gezielt Schadcode programmiert, d.h. da wurde gezielt ein Zerstörungsalgorithmus von Anfang an eingebaut.


Anmelden zum Antworten