system scada

Testy bezpieczeństwa systemów SCADA

SCADA

Systemy SCADA to z angielskiego Supervisory Control And Data Acquisition, czyli wszelkiego rodzaju systemy zbierające dane, monitorujące i kontrolujące przebieg procesów technologicznych lub produkcyjnych. Poza przemysłem stosowane są m.in. w obiektach użyteczności publicznej do sterowania instalacjami wentylacyjnymi, energetycznymi, wodociągowymi. Czy powinno się robić testy bezpieczeństwa systemów SCADA? To raczej pytanie retoryczne.

O bezpieczeństwie systemów SCADA zrobiło się głośno pierwszy raz za sprawą robaka Stuxnet, który stworzony został właśnie w celu przejmowania systemów przemysłowych. Od tego momentu testy bezpieczeństwa systemów SCADA zyskały na popularności.

Jak jest z tym bezpieczeństwem?

Systemy SCADA nie podlegają tak szybkim procesom starzenia się i wymiany jak systemy teleinformatyczne (ICT). Działają one czasami po kilkanaście, a nawet kilkadziesiąt lat podlegając jedynie podstawowym przeglądom technicznym. Testy bezpieczeństwa systemów SCADA cały czas są rzadkością a osoby za nie odpowiedzialne często nie mają świadomości istniejących zagrożeń i konieczności wdrażania dodatkowych zabezpieczeń czy chociażby regularnej aktualizacji. Co więcej, firmy produkujące i wdrożeniowe często nie mają wystarczających kompetencji i na potrzeby integracji z sieciami komputerowymi stosują rozwiązania archaiczne, lub tworzone naprędce z pominięciem jakichkolwiek standardów bezpieczeństwa.

Poniżej opiszę przykład jednego z takich systemów i wskażę błędy, które zostały popełnione na kolejnych etapach wdrożenia prowadząc do poważnego zagrożenia.

Skanujemy – znajdujemy

Opisywany scenariusz nie był częścią testów penetracyjnych ukierunkowanych na system SCADA. Natrafiłem na niego przypadkiem przeprowadzając proste skanowanie portów przy użyciu nmapa:

nmap scada

Moją uwagę zwróciły mało znane serwisy na portach 21 i 80. Po chwili rekonesansu udało się ustalić, że działające pod tym adresem urządzenie to serwer internetowy i.LON firmy Echelon służący do zdalnego zarządzania systemami sterowania (m.in. ogrzewaniem, klimatyzacją oraz instalacją wodną) pracującymi pod kontrolą protokołu LonWorks. Ze znalezionej w Internecie dokumentacji związanej z tym systemem wynika, iż zastosowane rozwiązanie pochodzi z okolic roku 2001 i charakteryzuje się dosyć niskim poziomem zabezpieczeń.

Domyślne hasło

Jedną z opublikowanych w Internecie podatności systemu i.LON jest fakt posiadania domyślnego, nieudokumentowanego użytkownika i hasła dla usługi FTP (login: ilon, hasło: ilon). Występowanie tej podatności udało się potwierdzić poprzez zalogowanie do usługi FTP:

# ftp xx.xx.xx.xx
Connected to xx.xx.xx.xx
220 Tornado-vxWorks (VxWorks5.5.1) FTP server ready
Name: ilon
331 Password required
Password:****
230 User logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 Port set okay
150 Opening BINARY mode data connection
total 0
-rwxrwxrwx 1 ilon wrs 3345 Sep 03 2008 iLonSystem
-rwxrwxrwx 1 ilon wrs 2500 Sep 28 2015 eventlog
-rwxrwxrwx 1 ilon wrs 3300 Sep 28 2009 WebParams.dat
drwxrwxrwx 1 ilon wrs 2048 Nov 19 19:52 alarmLog
drwxrwxrwx 1 ilon wrs 2048 Dec 11 21:41 config
drwxrwxrwx 1 ilon wrs 2048 Sep 03 2008 data
drwxrwxrwx 1 ilon wrs 2048 Sep 03 2008 lonworks
drwxrwxrwx 1 ilon wrs 2048 Sep 03 2008 modules
drwxrwxrwx 1 ilon wrs 2048 Sep 28 2009 web

po zalogowaniu do serwera FTP możliwe jest m.in. pobranie zawartości katalogu „web”, w którym znajdują się pliki strony internetowej dostępnej na porcie 80.

Muzeum techniki komputerowej i Zajączek

Przegląd kodu w plikach odpowiedzialnych za serwowanie strony i mechanizm uwierzytelniania może sprawić, że łza się niektórym w oku zakręci. Cytuję kilka wybranych linii:

function isWin98NT() {

ua.indexOf(„Windows 3.1„) == -1 && ua.indexOf(„Windows 95„) == -1) );
}

function checkBrowser() {
if (!isWin98NT())
window.alert( „WARNING: The i.LON 100 Web pages require Windows 98/2000/NT/XP to run.” );
else if ( MSIEVersion() < 6)
window.alert( „WARNING: i.LON 100 Web pages require Microsoft Internet Explorer version 6 and above to run.” );
}

Prawdziwą chwilę sentymentalnej zadumy wzbudził we mnie jednak ten nagłówek html w jednym z plików, które były prawdopodobnie edytowane przez firmę wdrożeniową:

<HEAD>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-2″>
<META HTTP-EQUIV=”Creation-date” CONTENT=”2002.01.18″>
<META NAME=”Generator” CONTENT=”Zajączek 3.0„>
<TITLE></TITLE>
</HEAD>

Kto nie używał Zajączka, ten nie zrozumie mojego wzruszenia 🙂 Młodszych czytelników dla wyjaśnienia mogę jedynie odesłać do tego archiwalnego artykułu.

Ominięcie uwierzytelniania

Dostęp do strony zawierającej systemy kontrolne zabezpieczony jest wprawdzie hasłem, jednak po analizie pobranej zawartości katalogu „web” możliwe jest zidentyfikowanie podatności umożliwiającej bezpośrednie odwołania do podstron serwisu z pominięciem mechanizmu uwierzytelniania . Jest to jeden z klasycznych błędów bezpieczeństwa występujących na liście OWASP TOP10 z 2013 roku (A4-Insecure Direct Object References). Odwołując się więc bezpośrednio do adresów URL odpowiedzialnych za poszczególne podsystemy otrzymujemy pełny dostęp do systemów sterowania. Poniżej jeden z kilkunastu systemów, do którego udało mi się uzyskać dostęp:

testy bezpieczeństwa systemów scada

Podsumowanie i trochę statystyk

Czy zagrożenie związane z bezpieczeństwem systemów SCADA jest duże? Wyszukiwarka Shodan dla zapytania o wspomnianą wyżej wersję serwera FTP zwraca 1723 wyniki, z czego 55 zlokalizowanych w Polsce. Opisany system stanowi zapewne tylko jeden z tysięcy różnych rozwiązań, które wyprodukowane zostały w czasach, gdy Internet nie był jeszcze tak powszechnie dostępny. Testy bezpieczeństwa systemów SCADA na stałe powinny więc zagościć w procedurach związanych z ich utrzymaniem.

***

Jeżeli zainteresował Cię ten wpis, to być może zechcesz zapoznać się również z poniższymi dwoma scenariuszami testów bezpieczeństwa, w których stwierdzono poważne uchybienia:

Przegląd samochodu i niezamówione testy bezpieczeństwa

Wyciek danych – jak tego nie robić – studium „przypadku”

 

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *