Teollisuusautomaatiojärjestelmän tietoturvan testaaminen ja käytännön kokemuksia TITAN Loppuseminaari 09.11.2010 Sami Noponen, VTT
2 Teollisuusautomaation tietoturvatestaus Johdanto 1990-luvulla tehdasjärjestelmiä alettiin liittää samaan lähiverkkoon toimistoverkon kanssa. Internetin yleistymisen myötä toimistoverkko liitettiin internetiin, jonka myötä internetin uhkat (hakkerit, virukset, verkkomadot) kohdistuivat suoraan teollisuusautomaatioon. Automaatiojärjestelmän asiakkaat voivat vaatia etäyhteyttä tehtaalle. Automaatiojärjestelmän toimittajat voivat valvoa etäyhteydellä, että järjestelmää käytetään oikein. Teollisuusautomaatiojärjestelmissä on usein vanhoja laitteita, ohjelmistoja ja päivittämättömiä käyttöjärjestelmiä -> paljon heikkouksia ja haavoittuvuuksia Onnistunut verkkohyökkäys teollisuusautomaatiojärjestelmää vastaan voi aiheuttaa suuria rahallisia tai aineellisia menetyksiä, ympäristötuhoja, loukkaantumisia tai kuolemantapauksia.
3 Teollisuusautomaation tietoturvatestaus Johdanto Esimerkkitapauksia 2000: Queensland Australia. 48-vuotias mies murtautuu useita kertoja jätteidenkäsittelylaitoksen järjestelmiin ja aiheuttaa mittavia tuhoja vapauttamalla miljoona litraa jätevettä paikallisiin puistoihin ja vesistöihin. 2003: Ohio, USA: Slammer-mato pääsi ydinvoimalan sisäiseen verkkoon ja sammutti monitorointijärjestelmän viideksi tunniksi. 2006: Kioto, Japani: Voimalaitosten turvallisuutta koskeva aineisto päätyi viruksen tartuttamasta työasemasta internetiin. Tiedoista selviää mm. voimalaitosten pohjapiirrokset, henkilökunnan ja vartijoiden henkilötiedot. 2008: New Orleans, USA. Hakkerit murtautuivat sähköverkon ohjausjärjestelmiin ja aiheuttivat sähkökatkoja useissa osavaltioissa. 2010: Harvinaisen edistynyt haittaohjelma Stuxnet leviää ympäri maailmaa usb-muistitikkujen välityksellä.
4 Teollisuusautomaation tietoturvatestaus Testisuunnitelma tehdään riskianalyysin pohjalta Kohdejärjestelmän kartoitus, rajapinnat ja mahdolliset hyökkäyskohteet. Testijärjestelyn toteuttaminen (testiympäristö) Työkalujen valinta Aikataulun laatiminen Tietoturvan testausmenetelmät: Penetraatiotestaus Haavoittuvuusskannaus Haavoittuvuuksien hyväksikäytön testaaminen Robustness-testaus Lähdekoodianalyysi Testikohteen monitorointi (suorituskyvyn mittaus testauksen aikana)
5 Esimerkki: kohteen monitorointi testauksen aikana Aika (s) Paketin numero
6 Huomioonotettavat asiat testauksessa Tuotantoverkossa testaaminen on riski. Automaatiolaitteet voivat reagoida yllättävällä tavalla yksinkertaisiinkin testeihin, esim. Pingviestiin. Testiympäristön tulee kuitenkin olla mahdollisimman lähellä tuotantoverkon konfiguraatiota. Todennäköisimmät uhkat teollisuusautomaatioympäristössä ovat vahingossa tapahtuvat sattumukset ja sisäisesti tapahtuva vahingonteko (työntekijät, organisaation sidosryhmät), joskin eniten vahinkoa aikaan saavat kohdennetut hyökkäykset kohteeseen. Testauksen apuna apuna kannattaa hyödyntää olemassa olevia referenssejä. Esimerkiksi: [NIST-SP800-42] [NIST-SP800-82 (draft)]
7 Tietoturvatestaustyökalujen evaluoinnin yhteenveto
8 Tietoturvatestaustyökalujen evaluoinnin yhteenveto
9 Achilles Satellite Luokitus Maksullisuus Kypsyystaso Alusta Testikohde Laajennukset Uhkien vaikutuksen vähentäminen Automatisointi Raportointi Soveltuvuus ICSympäristöön Helppokäyttöisyys Muuta Monikäyttöinen työkalu erityisesti ICS-ympäristöjä varten. Protokolla- ja fuzz-testaus, verkkohyökkäyssimulointi, porttiskannaus, monitorointi. Maksullinen Kehitetty useita vuosia, käytössä useissa yrityksissä Sisältää oman laitteiston ja windows-pohjaisen asiakasohjelmiston Teollisuusautomaatiojärjestelmät Erilliset protokollatesterit Ei Erittäin automatisoitu Generoi pdf-raportteja Suunniteltu erityisesti ICS-testaukseen. Tukee useita teollisuusautomaatioprotokollia. Helppokäyttöinen graafinen käyttöliittymä, hyvin dokumentoitu. Skannaukset: Palvelujen haku porttiskannauksella. Storms: Kuormituksen testaus eri pakettimäärillä. Tason määritys, kuinka paljon paketteja kohde jaksaa käsitellä. Grammars: Generoi valideja ja invalideja viestejä testatakseen protokollatoteutusta tai protokollapinon toimintaa. Satellite sisältää testit vähintään seuraaville protokollille:: ARP, BOOTP, CIP, DCOM, DHCP, DNP3, Ethernet/IP, FTP, HTTP, ICCP, ICMP IGMP, IPv4, LLDP/LLDP-MED, MODBUS/RTU, MODBUS/TCP, MMS, NTP, RPC, SNMPv1, SNMPv2c, SNMPv3, TACACS+, TCP, Telnet, UDP ja Vnet/IP. Achilles-testaus myydään yleensä asiakkaalle palveluna. Satellite- testien läpäisy vaaditaan Achilles Cyber Security sertifikaattia varten.
10
11
12 Codenomicon Defensics Työkalu Luokitus Kehitysvaihekäyttö Maksullisuus Kypsyystaso Alusta Testikohde Uhkien vaikutuksen vähentäminen Automatisointi Raportointi Soveltuvuus ICS-ympäristöön Helppokäyttöisyys Notes Codenomicon Defensics Mallipohjainen fuzz-testaus. Toteutus, testaus, käyttöönotto, ylläpito. Maksullinen, hinnoittelu tapauskohtaista. Työkaluja on kehitetty noin 10 vuoden ajan. Linux, Windows, OS X Protokollarajapinnat Käyttäjä voi tarkastella jokaisen testitapauksen sisältöä. Kun kohdejärjestelmässä havaitaan epäilyttävää käyttäytymistä, ei-läpimenneet testitapaukset merkitään selvästi lokeihin. Testitapaukset ajetaan automaattisesti. Työkalu generoi testilokit ja yhteenvedon. Lokivaihtoehdot ovat kattavat (txt, xml, html, docx). Testiryhmät soveltuvat erinomaisesti ICS-ympäristölle. Modbus on ainoa testiryhmistä löytyvä puhdas ICS-protokolla, mutta muita yleisiä protokollia käytetään laajalti ICS-ympäristössä (erityisesti IPv4 (TCP, UDP, IPv4, ICMP, IGMP, ARP), HTTP Server (verkkolaitekonfigurointiin) sekä SNMPv1/2c/3. Työkalu on helppo käyttää ja ajaa. Työkalun pääominaisuuksien oppiminen vie vain muutaman tunnin. Sekä komentorivi, ettägraafinen käyttöliittymäversio ovat saatavilla. Sisältää työkaluja noin 130 eri protokollalle, jotka myydään itsenäisesti. Codenomiconin työkalut on tarkoitettu robustness-testaukseenja etsimään vikoja protokollatoteutuksista. Myös tiedostomuodon toteutuksien testaamiseen löytyy työkaluja. Työkalut pyrkivät löytämään virheitä kohdejärjestelmästä syöttämällä sekoitettuja (fuzzed) protokollaviestejä tai viestinpätkiä kohdejärjestelmään. Ympäristön ja kohteen mukaan testaus voi viedä melkoisesti aikaa. Testeistä aiheutuva kohdejärjestelmän kaatuminen tai hidastuminen yleensä vaikeuttaa tai pitkittää testityötä.
13 Testikohteena ohjelmoitava logiikkaohjain Ohjelmoitava logiikkaohjain lainattiin OAMK:lta ensimmäiseksi testikohteeksi. Yksinkertainen esimerkki teollisuusautomaatiojärjestel män tietoturvatestauksesta Testausta varten laitteelle oli ohjelmoitu sovellus, joka avaa ja sulkee laitteen I/Okanavia
14 Testikohteena ohjelmoitava logiikkaohjain IP-osoiteavaruuden selvittäminen Netstat-työkalulla (193.167.101.0) IP-osoitteen selvittäminen Nmap ping sweepin avulla (193.167.101.239) Porttiskannaus Nmaptyökalulla. Avoimet tcp- portit: 7 echo 13 daytime 17 qotd 19 chargen 80 http 991 unknown
15 Havaintoja ohjelmoitavan logiikan testaamisesta Palvelujen tunnistamisen jälkeen tehtiin google-hakuja logiikkaohjaimen nimellä ja mallilla, ja löydettiin laitteen käyttöohjeet. Telnet-yhteydellä porttiin 991 pystyimme esimerkiksi syöttämään komennon S <enter>, joka pysäyttää laitteessa ajettavan sovelluksen (ja tässä tapauksessa sammutti led-valot). Telnet yhteydellä pääsimme muokkaamaan mm. wwwpalvelimen sivuja. Verkkohyökkäysten kokeileminen jumiutti laitteen resurssit välittömästi. Jo vähäinenkin liikenne testilaitteen verkkorajapintaan sai laitteen verkkorajapinnan ja sovellukset pysähtymään. Yhteenvetona voidaan sanoa, että murtautuminen testikohteelle on hyvin helppoa. Laitteessa ei ole turvamekanismeja, ja sillä on hyvin rajallinen suorituskapasiteetti. Laitteen tietoturvaa lisäisi merkittävästi pääsynvalvonnan (varmenteet, käyttäjätunnus ja salasana) turvallinen toteutus.
16 Testikohteena MetsoDNA CR
17 Testikohteena MetsoDNA CR Valvomo PC:n näkymä Testiympäristössä käytettiin useita testaustyökaluja (Nmap, Codenomicon, Achilles Satellite, Wireshark, Nethawk ipro, Metasploit, CPPCheck, Nessus, Nikto, Netwox) Verkkoon murtautumista testattiin myös päivän ajan Tampereen Metsolla järjestelmätestausympäristössä. Verkko oli konfiguroitu asianmukaisesti, joten sisäänpääsy verkkoon ei onnistunut, eikä häiriöitä onnistuttu aiheuttamaan.
18 Johtopäätökset Teollisuusautomaatiossa käytössä paljon kaupallisia suljettuja protokollia, joille ei löydy testaustyökaluja -> testaaminen haastavaa Kaupalliset työkalut helppokäyttöisiä ja hyvin dokumentoituja. Open Source testityökalut ovat ominaisuuksiltaan usein vaatimattomampia ja työläitä käyttää. Teollisuusautomaation tietoturvatestaus vaatii paljon manuaalista työtä ja valvontaa, kuten perinteinenkin tietoturvatestaus. Defense in depth-periaatetta noudattaen myös automaatioverkon laitteet tulee testata, vaikka hyökkääjän järjestelmään murtautumisen todennäköisyys olisikin pieni. Automaatiolaitteet voivat olla hyvin herkkiä erilaisille hyökkäyksille. Pelkkä tietoturvatestaaminen ei riitä. Huolellisella verkkoarkkitehtuurisuunnittelulla ja politiikkojen noudattamisella on tärkeä osa kokonaisuuden turvaamisessa.
19 VTT luo teknologiasta liiketoimintaa