Kriittinen Intel AMT haavoittuvuus (etähallinta)

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?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.