Tietoturvaorganisaatio SANS on julkaissut uuden version 25 vaarallisinta ohjelmointivirhettä käsittävästä dokumentistaan. Lista julkaistiin nyt toista kertaa.
Dokumentti on huomattavasti viimevuotista yksityiskohtaisempi ja sen julkaisua edelsi myös lähes 30 organisaatioon tehty taustakysely.
Viralliselta nimeltään CWE/SANS Top 25 Most Dangerous Programming Errors 2010 -niminen lista on osoitteessa
cwe.mitre.org/top25/index.html.
CWE - olen kuullut CVE:stä, onko niillä jotain yhteistä?
Ennen tehtyihin muutoksiin perehtymistä kertaamme mitä lyhenne CWE tarkoittaa. CWE-luokitusjärjestelmän lyhenne tulee sanoista Common Weakness Enumeration ja sillä tarkoitetaan eräänlaista standardia, jolla tietoturvaheikkoudet luokitellaan ohjelmointivirheen mukaan. Mm. haavoittuvuustietokantoja ylläpitävät toimijat voivat luokitella uudet, listaamansa haavoittuvuudet tiettyyn CWE-luokkaan. Näin tietystä ohjelmointivirheestä tai esimerkiksi arkkitehtuuriongelmasta johtuvia haavoittuvuuksia on helpompi käsitellä omina kokonaisuuksinaan. Luokitus kertoo myös tarkemmin mistä haavoittuvuus teknisesti johtuu.

Otetaanpa esimerkiksi tämän kuun Microsoft-päivityksissä korjattu SMB Client -haavoittuvuus. Kun haavoittuvuus sai CVE-yksilöintitunnuksen CVE-2010-0017 annettiin sille pienellä viiveellä myös CWE-luokka. Luokan voi tarkistaa National Vulnerability Database -tietokannasta, joka sisältää kaikki CVE-tunnukset. Tietokannassa CWE-luokka on merkitty Technical Details -osiossa kohtaan Vulnerability Type.
Esimerkkitapauksessa CWE-luokka on Top 25 -listalta löytyvä CWE-362.
Kovakoodaus juoruaa salasanan suoraan koodista
Viime vuoden listalla ollut CWE-119 (Failure to Constrain Operations within the Bounds of a Memory Buffer) on korvattu CWE-luokilla 120, 129, 131 ja 805, jotka liittyvät puskuriylivuotoon ja puskurin koon virheelliseen määrittelyyn. Tästä virheestä johtuvat haavoittuvuudet ovatkin hyvin yleisiä mm. mediasoittimissa. Haavoittuvuudet ovat miltei aina kriittisiä ja niitä löytyy usein.
Luokka Ohjelmistoihin pysyvästi koodatut eli kovakoodatut salasanat (CWE-259 - Hard-Coded Password) puolestaan on korvattu yleispätevämmällä luokalla. Uuden listan luokka Kovakoodattujen kirjautumistunnisteiden käyttö (alkuperäinen nimi Use of Hard-coded Credentials) tuntee tunnuksen CWE-798.
Kovakoodaus tarkoittaa mm. käyttäjätunnusten ja salasanojen sisällyttämistä suoraan ohjelmiston lähdekoodiin. Mikäli ohjelmistossa on luokan CWE-798 ohjelmointivirhe, ei ohjelmistoon ainoastaan pystyy kirjautumaan oletussalasanalla, vaan ohjelmisto käyttää myös omiin tietovirtoihinsa koodiin kirjoitettuja salasanoja. Tällainen ohjelmointivirhe voi löytyä esimerkiksi valvontakameroiden hallintaliittymää pyörittävästä ohjelmistosta. Salasana ei ole helposti vaihdettavissa ja tämä lisää riskiä ulkopuolisen hyökkääjän kirjautumiseen oletussalasanalla.
Jättiloikkia suojautumiseen
Täysin uutta listalla on myös Monster Mitigations -osio - linkki tuohon osioon. Sen tarkoituksena on yleisellä tasolla estää heikkouksien päätymistä ohjelmakoodiin - eikä tämä koske ainoastaan Top 25 -listan heikkouksia. Esimerkkinä mainittakoon kohta M4, jonka tarkoituksena on ohjata tuottamaan koodia, jota kuka tahansa pystyy lukemaan. Melkoinen haaste!
Jäikö tästä lyhennemaailmasta vielä hieman epäselvä kuva? Pureuduimme näihin CV-alkuisiin lyhenteisiin blogissa myös viime keväänä.
Juha-Matti Laurio toimii Nixussa tietoturvakonsulttina ja Tiger Team -blogiin kirjoittaessaan pyrkii avaamaan kimurantteja tietoturvatermejä ja -lyhenteitä suomen kielelle fingelskaa välttäen.