11. marraskuuta 2022

Toinenkin potentiaalinen Bitlocker haavoittuvuus Windowsissa!

Kirjoitin kesällä potentiaalisesta haavoittuvuudesta Bitlocker-salauksessa. Nyt olen löytänyt toisenkin potentiaalisen haavoittuvuuden siitä, eikä tietenkään tälläkään kertaa se kiinnosta varmasti ketään. Mitäpä sillä niin väliä, että maailman yleisimmin käytetty suojaus vuotaa, ei kait se mitään, samapa tuo. Mutta onpahan taas kerran varoitettu ja voitte sitten netin syövereistä myöhemmin taas tarkistaa, kuka oli oikeassa tässäkin asiassa.

Haavoittuvuus on varsin julkeakin jopa: Bitlockerin "protectors" eli esim. PIN voi vaihtaa tietämättä vanhoja "protectoreita". Tai siis voi vaihtaa, jos osaa tehdä sen oikealla tavalla. Mikäli koetat vaihtaa esim. PIN-koodin ohjauspaneelin Bitlocker-työkalun kautta, sinun pitää syöttää vanha PIN, kuten kuuluukin. Mutta, jos käynnistät komentorivityökalun järjestelmänvalvojana ja syötätkin siihen komennon (ilman lainausmerkkejä) "manage-bde -changepin C:" niin saat syötettyä sukkana sisään uuden PIN-koodin C-asemallesi tietämättä vanhaa. Samalla konstilla voit vaihtaa muutkin "protectors" tietämättä vanhoja.

Tällä kikalla voi kuka tahansa järjestelmänvalvojan oikeudet omaavat paitsi tehdä kiusaa lukitsemalla koneen jatkossa muilta vaihtamalla "protectors" joksikin, jotka vain hän tietää, mutta myös paljon vakavampaa. Oletetaanpa vaikkapa, että ylläpitäjä on suojannut koneen Bitlockerilla ja käynnistää/käynnistyttää sen vaikkapa AD:n kautta tai fyysisesti itse menemällä paikalle vaikkapa työpäivän aluksi. Tällöinhän homma on todella turvallinen, koska tumpeloille käyttäjille ei anneta mahdollisuutta sössiä asiaa millään muotoa, vaikka miten haluaisivatkin ja koneet ovat turvassa, jos joku vaikkapa varastaa ne (paitsi toki, jos ne ovat läppäreitä ja ne varastetaan lukitsemattomina päällä ollessa). Mutta ei enää. Senkun järjestelmänvalvojan oikeudet omaava käyttäjä menee ja muuttaa "protectors" haluamakseen ja noh, niin, se siitä sitten.

Koko ajatus siitä, että voit vaihtaa vanhoja salasanoja tai muita turvallisuustekijöitä tietämättä vanhoja, on käsittämättömän typerää, lapsellista mokata! Vuosikymmenet näissä on ollut - hyvästä syystäkin - periaatteena se, että jos haluat ne vaihtaa muuksi, sinun on tiedettävä ne vanhat tai sitten koetettava jotain hankalaa palautussysteemiä. Nyt Microsoft on tämäkin periaatteen romuttanut näillä seurauksilla ja mahdollistaa näiden turvallisuustekijöiden tehokkaan kiertämisen, jos järjestelmänvalvojan oikeudet omaava on sattumalta kirjautunut sisälle koneelle.

Joo ja tiedän, heti alkaa tulla jollakin pakottavaa tarvetta ns. selitellä tätä parhain päin, esim.

  1. "No jos on järjestelmänvalvojana sisällä voi tehdä muutakin pahaa!"
    - Niin voi, olenko väittänyt, että ei voisi? Niin? NIIN? Luitko, mitä kirjoitin?

  2. "Järjestelmänvalvojan pitääkin voida muuttaa asioita miten haluaa!"
    - Ööh, no ei todellakaan missä tahansa tilanteessa miten tahansa ja ilman tunnistautumista. Huomaa, että komentorivikehoitteen käynnistäminen järjestelmänvalvojan oikeuksin omaavalla tilillä ei edellytä järjestelmänvalvojan salasanan uudelleensyöttämistä (oletusasetuksin).

  3. "No mitä sitten! Voi asentaa troijalaisenkin! Tai muuta! Mitä väliä!?!"
    - Bitlocker toimii käyttöjärjestelmän alapuolella. Se lukittautuu UEFI ja secureboot -ominaisuuksiin ja varmistaa, että jos vaikkapa kiintolevylle on ujutettu rootkit-ohjelmisto, Bitlocker pysyy suljettuna, eikä avaa tietokonetta. Nyt tämän voi käytännössä kiertää tällä konstilla, koska Bitlockerin määrityksiä voi muuttaa ilman, että tietää vanhoja määrityksiä ja ilman, että edes (oletusasetuksilla) tietää järjestelmänvalvojan salasanaa (jos on kirjautuneena sisälle järjestelmänvalvojana).

  4. "Microsoft ei pidä tätä vakavana, koska ei ole korjannut sitä, joten..."
    - Ihan vitun sama minulle, Microsoft ei monia muitakaan mokia ole pitänyt vakavana, ei esimerkiksi yli 20v sitten löytämääni "mokaa", että Windows2000 EFS:n salainen avain ei ollut käyttäjän salasanasta luodun salausavaimen kryptaamana, vaan heilui muutenvaan irrallaan kiintolevyllä ja aikoinaan resetoimalla millä tahansa keinolla käyttäjän salansanan, kykeni kirjautumaan ko käyttäjänä sisälle ja sitä kautta(kin) saamaan tuon salaisen avaimen haltuunsa ja purkamaan käyttäjän sillä salaamat tiedostot. Microsoft korjasi tämän massiivisen mokansa sitten seuraavissa Windowsin versioissa hissukseen.

  5. "Ota yhteyttä Microsoftiin, tee bugiraportti..."
    - En ota, en tee, haistakoot vitut, koska eivät ole aiemmistakaan minulle krediittiä antaneet, eivätkä välittäneet vittuakaan. Käyttökööt kaikki hakkerit hyväkseen tätäkin aukkoa mielinmäärin, koska sen Microsoft on ansainnut omalla politiikallaan.

 

Päivitetty 20.11.2022:

Tuli mieleeni, että haavoittuvuus on ilmeisesti vakavampi, kuin aluksi luulin. Lyhyesti sanottuna ja hieman mutkia suoriksi vetäenhän, Bitlocker + TPM + PIN toimii siten, että TPM pitää lukittuna salaista avainta ja vapauttaa sen vain, mikäli Secure Boot onnistuu JA henkilö näpyttää PIN-koodinsa, jolla TPM vapauttaa sitten salausavaimen kiintolevyn salauksen purkamiseksi. Tämä kiintolevyn salausavain jää sitten tietokoneen muistiin käytettäväksi ja TPM salaisuus pysyy TPM:ssä. Okei. No, jos kerran tuota TPM pin-koodia voidaan muuttaa ilman, että vanhaa tarvitsee tietää, tämähän tarkoittaa, että TPM salaisuus ei olekaan suojattuna kunnolla TPM:ssä, eikö? Koska jos se olisi, eihän siihen pääsisi käsiksi/muuttamaan sitä ilman, että tietää vanhan PIN-koodin, eikö? Tuo salaisuushan ei päällekirjoitu uudella siitä, että PIN-koodia muutetaan, vaan salaisuus pysyy, sen suojaava PIN koodi vain muuttuu. Toisin sanoen, ilmeisesti TPM on siis suojaamattomana koko sen ajan jälkeen, kun PIN-koodi on kerran näpytetty sinne. Näinhän ei pitäisi olla. Tässä on nyt jotain todella hämärää ja outoa ja ilmeisesti siis Bitlockerin lisäksi TPM tuntuu olevan siis vaarantunut nyt jollain oudolla syyllä, koska muuten kuvailemani skenaario ei voisi olla mahdollinen.