Paperi vai digitalisaatio: vain muutaman bitin tähden

Reading Time: 1 minute

Perheemme sai 2 A4-paperia. Molemmille lapsille kyseltiin kahden päivän hoitosuunnitelmia kesäkuulle, jolloin osa alueen päiväkodeista on henkilöstökoulutuksen vuoksi kiinni.

Kun tarkastelin kyselyä hieman tarkemmin, huomasin, että tietoa tarvitaan
2 bittiä per lapsi, mutta huomasin skrivailevani 78 merkkiä ja siihen päälle “analogisesti tehty” (käsin) allekirjoitus. Lomakkeelle meni kaikki mahdollinen perustieto, nimistä ja henkilötunnuksista alkaen.

Redundanttia eli turhaa tietoa meni siis siis 505 bittiä, 2 bitin hyötykuorman lisäksi. Vai oliko sittenkään? Mistä voi olla kyse?

Tapaus on mielestäni äärimmäisen kiehtova, ei siksi että tällainen per se olisi mitenkään erityisen mullistavaa, mutta koska tässä nähdään digitaalisuuden idea ja potentiaali.

Jatketaan huomenna osassa 2! Teen vertailuja ja hypoteettisia kustannuslaskelmia digijärjestelmään, sekä pohdin keiden työtä ja elämää se helpottaa.

Kriittinen Intel AMT haavoittuvuus (etähallinta)

Reading Time: 2 minutes

Haavoittuvuuden tunniste

Sisäisesti Intel kutsuu bugia “INTEL-SA-00075”. Kansainvälisesti se on tunnettu nimellä CVE-2017-5689

Millainen bugi on kyseessä?

Huonosti toteutettu osa Intel AMT -etähallintajärjestelmässä, joka kohdistuu pääkäyttäjän salasanan tarkistukseen, tekee järjestelmän käytännössä täysin turvattomaksi: salasanaksi riittää pelkkä tyhjä (“ei mitään”). Tämä koskee tietokoneita, joissa on jokin alla olevaista Intelin AMT firmwaren versio:

  • 6.x
  • 7.x
  • 8.x
  • 9.x
  • 10.x
  • 11.0
  • 11.5
  • 11.6

Jos hyökkääjä pääsee samaan sisäverkkoon, missä tietokone sijaitsee, hän voi ottaa yhteyttä pieneen AMT:n sisäiseen web-serveriin, ja avata täydet oikeudet antavan etäyhteyden. Tämän myötä hyökkääjä omistaa koneen käytännössä täysin, loogisella tasolla: hyökkääjä voi asentaa ja poistaa ohjelmia, päättää mitä koodia ajetaan ennen koneen käyttöjärjestelmän käynnistymistä; jne. Hyökkääjä voi myös asentaa esimerkiksi uusia etähallintatyökaluja (takaovia, rootkittejä).

Pieni virhe firmware-koodissa: suuri vaikutus

AMT-ongelman ydin on kooditasolla yhdessä merkkijonon sisältöä vertaavassa
komennossa. Merkkijonoa verrataan C-kielen ‘strncmp’ funktiota vastaavalla rakenteella. Koodi ottaa 3 parametria: kaksi merkkijonoa, ja kokonaisluvun. Ohjelmoija on valinnut väärin kolmannen parametrin, jolloin verrattavien merkkien määrä otetaankin yritteen pituudesta, ei oikean asetetun salasanan pituudesta.

Kyseinen kohta koodissa vertaa sisäänkirjautuvan käyttäjän antamaa salasanaehdotetta oikeaan, tunnettuun salasanaan. Kokonaisluvun tehtävänä on rajoittaa vertailun pituutta: toisinsanoen jos esimerkiksi N=2, verrataan vain 2 ensimmäistä merkkiä, riippumatta olisiko oikea salasana pidempi.

Tällä on kahdenlaisia vaikutuksia:

  • vakavampi vaikutus on, että myös tyhjä salasanayrite päästää sisään
  • sivuvaikutuksena saatta olla, että oikean asetetun salasanan vahvuus heikkenee sanakirjahyökkäys-tyyppisissä skenarioissa

Mikäli hyökkääjä on havainnut, että kohdejärjestelmässä on AMT-haavoittuvuus, hän voi suoraan käyttää helpointa mahdollista hyökkäysmenetelmää, eli tyhjää salasanaa.

Mikäli hyökkääjä turvautuu sanakirjahyökkäyksiin, ja hyökkääjä ei tiedä AMT-haavoittuvuuden mahdollistamassa helposta tyhjästä salasanasta, silloin hyökkäykseen käytetty aika voi alentua jos hyökkääjän arvausalgoritmi suosii tai sisältää myös lyhyitä yritteitä. Esimerkiksi oikean salasanan ollessa monimutkainen ‘tj5_a#tksPqasc’, niin yrite ‘t’, ‘tj’, ‘tj5’, kaikki menisivät läpi. Tällöin arvausaika voi olla hyvin pieni, eli monimutkaisenkin salasanan voima heikkenee merkittävästi AMT:n myötä. Rainbow-algoritmeja kannattaisi toisin sanoen muokata siten, että ne käyvät ensin läpi tällaiset helpot hedelmät. Voi olla, että niin ne jo tekevätkin?