8:44
22/3/2011

To, że SCADA, czyli systemy przemysłowe kontrolujące pracę elektrowni atomowych, rafinerii, lotnisk etc. są podatne na ataki wiemy m.in. dzięki robakowi Stuxnet. W ciągu ostatnich kilku dni, niezależne firmy opublikowały informacje o kilkunastu błędach bezpieczeństwa (0day) w programach firm: Siemens, Iconics, 7-Technologies, Datac i Control Microsystems.

SCADA

SCADA

Warto podkreślić, że nie wszystkie instalacje SCADA są dostępne z internetu (w przypadku robaka Stuxnet, infekcja nastąpiła poprzez przenośne dyski USB). Dodatkowo, według badaczy oprogramowanie SCADA roi się od podstawowych błędów bezpieczeństwa, być może z racji tego, że jest przeznaczone do działania w “zaufanym/odizolowanym” środowisku. Przypadek robaka Stuxnet pokazuje jednak, że mając odpowiednie środki, da się zainfekować nawet zamkniętą sieć zlokalizowaną w obiekcie o podwyższonym poziomie bezpieczeństwa.

Rosjanie sprzedają 0day’e na SCADA

Tydzień temu rosyjska firma Gleg zaczęła reklamować komercyjny exploit pack o nazwie Agora SCADA+, który w założeniu ma zebrać wszystkie znane exploity na instalacje SCADA. Składające się z 22 modułów oprogramowanie zawiera 11 0day’ów — cena tego zestawu nie została publicznie podana. Zaraz po ogłoszeniu tej informacji, firma Gleg padła ofiarą ataku DDoS i na kilka dni zniknęła z sieci.

Z kolei wczoraj Luigi Auriemma opublikował na BugTraq post, w którym zaprezentował kod przykładowych exploitów na systemy SCADA takich firm jak: Siemens Tecnomatix FactoryLink, Iconics GENESIS32 and GENESIS64, 7-Technologies IGSS (Interactive Graphical SCADA System), DATAC RealWin. Błędy pozwalają na wykonanie kodu atakującego, dostęp do “wrażliwych” danych, albo zawieszenie konkretnego modułu.

Jak powiedział w wywiadzie dla The Register:

Systemy SCADA są istotne, a wydaje się, że nikt nie jest nimi zainteresowany. Z tego powodu publicznie ujawniam znalezione przeze mnie podatności

Przeczytaj także:

16 komentarzy

Dodaj komentarz
  1. Trzeba pozaklejać porty usb!

  2. Ja widzę pewne wyjście. Mianowicie zaimplementowanie w firmware urządzeń sterowanych systemami SCADA zabezpieczeń uniemożliwiających wykonanie poleceń, które mogłyby być szkodliwe lub niebezpieczne, a zwłaszcza poleceń niewykonalnych. Dawno temu chodziły słuchy o wirusie, który psuł stacje dyskietek wymuszając niewykonalne polecenia mechanizmu. Jeśli stacja dyskietek nie była idiotoodporna (a pewnie nie przewidywano wywoływania bezsensownych poleceń mechanizmu) ulegała uszkodzeniu. Widać więc, że dobry firmware poszczególnych urządzeń jest ostatnią linią obrony, z tym że należy zachować surowe reguły dotyczące jego aktualizacji i zaufanych źródeł, zwłaszcza że w grę wchodzą urządzenia od których zależy bezpieczeństwo a nawet życie ludzkie.

    Co do komputerów to w takich miejscach jak elektrownie atomowe zalecałbym komputery typu Tempest bez portów USB pozwalających wgrywać dane. Klawiaturę można z takim stanowiskiem zintegrować a dane wgrywać jedynie pod nadzorem pracownika odpowiedzialnego za bezpieczeństwo (port USB lub stacja DVD może być zamykana, a każda próba nieautoryzowanego otwarcia takiego zamknięcia kończyłaby się alarmem. No i do elektrowni atomowej nie wolno wpuszczać pendriwów z Lady Gagą (jak pracownicy tak ważnych dla bezpieczeństwa zakładów koniecznie chcą czegoś posłuchać w pracy niech idzie to z radiowęzła nie mającego żadnego połączenia z najważniejszymi systemami, które muszą być odłączone od internetu). Ewentualny atak na taki odtwarzacz muzyki nic nie da, choć zasadniczo w zakładach typu elektrownie atomowe chyba raczej nie słucha się radia (no może w biurze czy w sekretariacie). Pendriwy można wykryć choćby urządzeniami prześwietlającymi ciało promieniami Y (myślę, że w firmach o największym znaczeniu dla bezpieczeństwa takie kontrole personelu nikogo nie zdziwią).

    • Nie uwierzę, że w takich poważnych instytucjach nie stosuje się urządzeń typu TEMPEST i nie ma tam takich kontroli o których mówisz. Takie instalacje ma nawet Wojsko Polskie…

      Zresztą wątpię by twoje “zalecenie” brali pod uwagę, bo osoby tam pracujące z pewnością słyszały o takim sprzęcie (toż to nawet ja pisałam o tym pracę na zakończenie LO)

    • Taki na przyklad silnik sterowany PLCkiem nie ma firmware, wiec jak go zabezpieczysz? Albo robot przemyslowy, ktory jest budowany jako urzadzenie ogolnego przeznaczenia? Od tego jest wlasnie PLC, ale… go mozna zdalnie przeprogramowac. Pozatym nie kazde “szkodliwe” dzialanie jest bledne – mozliwosc manualnego wylaczenia urzadzenia (ktore po naglym wylaczeniu np. zostanie uszkodzone) w przypadku, gdy jakis pracownik zaslabl i zaraz zostanie przez nie pokrojony jest raczej przydatne.

    • tak jest – jest źle i czaby zrobić tak, żeby było dobrze!

      a jak myślisz, upgrade czegokolwiek w takich instalacjach to prosta sprawa, czy nie za bardzo..?
      możesz sobie poteoretyzować, ale niestety implementacja teorii w praktyce to już całkiem inna bajka.
      no offence..

  3. @up:
    “Mianowicie zaimplementowanie w firmware urządzeń sterowanych systemami SCADA zabezpieczeń uniemożliwiających wykonanie poleceń, które mogłyby być szkodliwe lub niebezpieczne, a zwłaszcza poleceń niewykonalnych.”

    a jak firmware ma wiedziec co jest niebezpieczne? musialby implementowac wszystko z warstwy wyzej + udostepnic interfejs do zarzadzania przez czlowieka, czyli w efekcie po prostu przenioslbys caly kod z jednej warstwy do drugiej. pozytek z tego zerowy.

  4. Nie wiem na ile kto się orientuje w programowaniu stacji SCADA, ale z mojego uczelnianego (i bardzo skromnego) doświadczenia z nimi oraz z ogólnych opinii można wyciągnąć parę faktów:
    – oprogramowanie to przy zwykłym użytkowaniu nastręcza sporo trudności (np. niezgodność wersji firmware’u jednego modułu z innymi może uniemożliwić uruchomienie całej sieci)
    – środowiska są bardzo mało odporne na zmiany w windowsie, czasem jedna mała łatka systemu może powodować sporo błędów w programie
    Dlatego często przed wprowadzeniem programu na obiekt stawia się czyste środowisko na maszynie wirtualnej. Bez żadnych dodatkowych łatek systemu, antywirów itd.
    Dzisiaj żeby wprowadzić jakieś dodatkowe zabezpieczenia musieliby pisać całe środowisko lub spore jego części od podstaw. A wiemy jak koncerny lubią dodatkowe wydatki.

  5. @mariusz
    Gdy pracownik zasłabnie to są odpowiednie czujniki wyłączające sprzęt. Dodatkowo może wtedy rozlec się alarm co zwiększa szansę udzielenia takiemu pracownikowi pomocy. W swoim poście chciałem raczej poruszyć problem pewnej odporności elementów wykonawczych na niektóre polecenia oprogramowania, bo jak się okazuje może ono zgłupieć np. w wyniku ataku. Przykładowo chodzi np. o uniemożliwienie rozpędzenia silnika powyżej bezpiecznej dla niego prędkości (bo np. dany silnik może się przegrzać, jeśli przekroczy 10 000 obr/min). Można to osiągnąć poprzez limit maksymainego napięcia doprowadzanego do silnika ograniczanego choćby przez rezystor i czujnik optyczny, a więc nawet bez firmware.

    • @Paweł Nyczaj
      rezystor do silnika 110kW :-) kolega chyba nie widział większego silnika niż od napędu dyskietek

  6. “SCADA, czyli rozproszone systemy przemysłowe kontrolujące” to nie jest definicja systemu SCADA. Za Wikipedią: SCADA z języka angielskiego Supervisory Control And Data Acquisition oznacza system nadzorujący przebieg procesu technologicznego lub produkcyjnego. Systemy wcale nie muszą być rozproszone.

  7. AVE…

    @Nyczaj…
    Nie za bardzo chyba rozumiesz, do czego służy SCADA i jak całość działa w systemie przemysłowym. Warstwa fizyczna to sterowniki PLC podłączone do różnych modułów we/wy, które to albo zbierają dane z czujników, albo sterują urządzeniami. Mogą to być silniki, elektrozawory, styczniki załączające całe bloki urządzeń, etc. Sterownik PLC zwykle ma jakiś program, który działa jako maszyna stanów. SCADA jako system nadrzędny przede wszystkim czyta dane ze sterowników PLC, ale może też je programować zmieniając wewnętrzne stany lub wartości. Podstawową funkcją systemów SCADA jest po prostu zbieranie całego zarządzania w jednym miejscu. A że te systemy generują kupę danych ważnych dla oceny pracy systemu, to trza je jakoś wyciągać z nich. Dlatego pewnie nie ukrywają/blokują portów USB…

    Dwie uwagi co do bezpieczeństwa tych systemów:
    1. Odciąć od internetu całkowicie. Jeśli potrzebna zdalna kontrola – użyć modemu i linii telefonicznej. PKP do tej pory stosuje telefonię naziemną do komunikacji między stacjami rozrządowymi, choć obecnie jako system awaryjny.
    2. Eliminować wszelkie formy pamięci przenośnej tam, gdzie jest system SCADA. Wrócić do dysków twardych w kieszeniach, ukryć porty USB, a dodatkowo na pracownikach stosować generatory EMP by niszczyć wszelką przemyconą elektronikę. Profilaktycznie.

  8. Jednym z pierwszych kroków powinno być wyeliminowanie Windowsa z takich zastosowań. No i odciąć dostęp do napędów. Windows+USB to zachęta dla pracowników do obejrzenia jakiegoś filmu/słuchania muzyki/gry itp. w czasie nudnej “warty”.

    • w sumie to nie slyszałem żeby komuś się udało zainstalować step7 na czymś innym niż windows… ale myślę że jak się uprzeć, zainstalowac to na jakiejś maszynie wirtualnej itp to mogła by to być świeża krew w dziedzinie masochizmu :D

  9. Luigi Auriemma? Coś mi świta… Czy to ten koleś co zrobił fajne toolsy do hacko… yyy znaczy “rozpuszkowywania” co niektórych plików z X360? Bo jeśli tak, to w takim razie mam od niego trochę stuffu na dysku. :P Zaiste przydatne toolsy, w połączeniu z innymi toolsami otrzymałem modele aut z Forzy Motorsport 3 (200k+ poly na auto) do użytku własnego. xD

    A tak do tematu: nie sądzę, aby w elektrowniach byli tak lekkomyślni, by przychodzić z pendrive’ami, których używają na codzień w domu do przenoszenia zdjęć i dokumentów, i podpinać je do komputerów w elektrowni. :E Tam raczej panują dość restrykcyjne reguły.

  10. AVE…

    Nieważne, co możemy sądzić na temat pendrive’ów w elektrowniach i przetwórniach materiałów radioaktywnych – ludzie to idioci z zasady. Jeśli istnieje jakaś głupia rzecz, którą można zrobić by narazić bezpieczeństwo systemu, to znajdzie się jakiś idiota, który tą rzecz zrobi. Inaczej pisząc jeśli umieścisz gdzieś wielki, czerwony guzik z napisem “Włącznik końca świata – POD ŻADNYM POZOREM NIE WCISKAĆ!!!”, to nim farba wyschnie, jakiś idiota go wciśnie. Stuxnet zniszczył m.in. irańskie wirówki do oczyszczania radioaktywnego uranu czy tam plutonu właśnie dzięki temu, że jakiś matoł przyniósł zainfekowany pendrive. Myślisz, że w takim miejscu nie obowiązuje zakaz wnoszenia takich rzeczy, choćby z obawy, że jakiś technik wyniesie tajne dane produkcyjne w zamian za solidną łapówkę od CIA?

    Mnie też dziwi budowanie całego systemu na Windowsie. Jeśli już, to widziałbym tu coś z rodziny BSD. W dawniejszych czasach budowano systemy kontroli od podstaw pod konkretny sprzęt. Na przykład w jednej z brytyjskich elektrowni atomowych aż do 2008 roku bodaj używano pary komputerów firmy bodaj DEC jako systemu kontroli temperatury rdzenia i zabezpieczenia przed stopieniem się rdzenia. Zrezygnowano z nich, gdy dysk twardy jednego z nich padł…

  11. Mam do czynienia zawodowo z systemami SCADA, nie wpływających w żaden sposób na życie i bezpieczeństwo postronnych obywateli, a jeśli już to tylko na pracowników je obsługujących.

    Co mogę powiedzieć:
    – z tymi, z którymi się spotykam, to w większości są to systemy działające pod kontrolą Windows XP/NT rodem z 2000 roku, bez aktualizacji i service paków. Żaden upgrade systemu, czy aktualizacja systemu nie wchodzi w grę, gdyż taka polityka odgórna i brak środków (głównie czasowych i innych) na przeprowadzenie tak “mało ważnych” operacji z punktu widzenia produkcji.
    O niezabezpieczonych gniazdach USB nawet nie wspomnę ;)

    Ale…

    uważam, że najsłabszym ogniwem w najlepiej i w najgorzej zebezpieczonym systemie informatycznym, czy to SCADA, czy to innym, jest czynnik ludzki i/lub czynnik ludzki plus socjotechnika. A że w moim środowisku brak takich słabych elementów, to system uznaje się za bezpieczny.

    Nikt nie będzie “psuł” SCADA jeśli go żywi i ubiera.
    A obcy (czytaj. niezaufani) nie mają generalnie dostępu do tego typu systemu.

    Reasumując, nie da się wyeliminować Windowsa, nawet starego Windowsa, nie da się cokolwiek z nim zrobić, gdyż w czasie produkcji 24/7 nie ma czasu na takie pierdoły,
    czas to pieniądz, trzeba ufać ludziom je obsługujących (motywować w odpowiedni sposób ich zaufanie) i uświadamiać o zagrożeniach.

    Oczywiście zabezpieczenie od strony Internetu to inna sprawa, systemy SCADA działają generalnie zawsze i w miarę możliwości tylko i wyłącznie w sieci lokalnej odpowiednio zabezpieczonej i odseparowanej.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.