Tietoliikenneprotokollat vuotavat – ongelmia tiedossa

Synopsys testasi vuosi sitten yli 250 yrityksen tietoliikennejärjestelmissä käyttämää protokollaa. Tulokset eivät olleet kovin mairittelevia. Monet protokollat tekivät virheitä jo muutaman minuutin kuluttua testauksen aloittamisesta.

Monet teollisuusautomaatioon liittyvät protokollat olivat hyvin kypsymättömiä, eli sisälsivät Synopsysin selvityksen mukaan paljon virheitä.

Synopsys testasi laajimmin käytössä olevat teollisuusprotokollat, kuten IEC-61850 MMS, IEC-104-palvelin, Modbus PLC, OPC UA ja DNP3. Teollisuuden IoT-protokollista testauksessa oli mukana MQTT, CIP ja CoAP Server.

Esimerkiksi IEC-61850 MMS-protokollan toteutus näytti ensimmäiset virheet muutamassa sekunnissa ja Modbus- sekä OPC UA-toteutukset muutamassa minuutissa.

OPC UA-protokollatoteutuksista löytyi lisäksi hyvin suuri kokonaismäärä ongelmia verrattuna muihin teollisuusprotokolliin. Neljä viidestä protokollasta, josta haavoittuvuudet löytyvät nopeimmin, olivat yleisiä protokollia: IEC-61850 MMS, Modbus PLC, DNP3 ja MQTT.

Protokollatesteissä oli mukana myös suuomalaista osaamista, sillä Synopsys osti kaksi vuotta sitten oululaisen tietoturvayritys Codenomicon. Se valmisti jo aiemmin tietoturvan testaustyökaluja, joihin kuului tärkeänä osana fuzzing testaus. Codenomicon sai mainetta vuonna 2014, kun se julkaisi löytämänsä Heartbleed-haavoittuvuuden OpenSSL:stä.

Synopsysin testitulosten perusteella on selvää, että tulevaisuudessa automaatio- ja IoT-protokollien kehitystyössä tarvitaan entistä enemmän testaamista. Haavoittuvuudet pitää löytää ja korjata ennen kuin niitä ehditään käyttää haitallisiin tarkoituksiin.

Synopsysin testiraportti ”State of Fuzzing 2017” perustuu 4,8 miljardiin tulokseen, jotka on saatu vuonna 2016 testeistä. Ne  kohdistuivat 250 teollisuus-, IoT-, auto-, rahoitus-, hallinto-, terveydenhuolto- ja muilla aloilla käytettäviin tietoliikenneprotokolliin.

Protokollien testauksessa Synopsys käytti ns. fuzzing-hyökkäystä, jossa ohjelmiston heikkouksia löydetään lähettämällä ohjelman syötteeksi suuria määriä automaattisesti tuotettua epämuodostunutta dataa.

Tavoitteena on seurata kohdeohjelman virhetilanteessa tuottamaa tulosta. Jos testattava kohde käyttäytyy yllättäväti tai kaatuu, ollaan löydetty mahdollisesti vakava virhe, jota pitää tutkia yksityiskohtaisemmin.

Fuzzingin tarkoituksena ei ole pelkästään ohjelmiston kaataminen, vaan löytää virheet joiden avulla hyökkääjä voi mahdollisesti kaapata ohjelmiston. Havaitut virhetoiminnot  toimivat usein indikaattorina mahdollisesti havaitsemattomista nollapäivän haavoittuvuuksista.

LISÄÄ: Synopsysin State of Fuzzing 2017 -raportti (LINKKI, pdf)

Kuva: Shutterstock

Uusimmat teknologiauutiset kätevästi uutiskirjeessä – kerran viikossa (LINKKI).

LUE – UUTTA  – LUE – UUTTA – LUE – UUTTA

Uusi ammattilehti huipputekniikan kehittäjille – Lue ilmaiseksi!