10. elokuuta 2022

Potentiaalinen Bitlocker haavoittuvuus Windowsissa

Lienee aika laittaa asiasta blogiinikin, koska Microsoft ei ole 5 vuoteen suostunut vastaamaan asiasta tiedusteluistani (esim1) huolimatta. Laitoin varmuuden vuoksi uuden tiedustelun äsken, mutta en oleta, että siihenkään tulee mitään vastausta, koska ilmeisesti Bitlocker on reikäjuustoa, eikä tätä haluta myöntää. On todennäköistä, että kyseessä on tietoisesti Microsoftin rakentama "ominaisuus", jota viranomaiset voivat aina tarvittaessa käyttää hyväkseen "korkean profiilin tapauksissa", joten sen vähemmän sitä halutaan myöntää. On myös pieni mahdollisuus, että tämä haavoittuvuus on korjattu / vaihdettu toiseen tietoturva-aukkoon lähiaikoina tässä mystisessä päivityksessä, jonka haavoittuvuuden yksityiskohtia ei ole suostuttu paljastamaan.

Olen siis koettanut saada asiaan selvää vastausta useista eri lähteistä vuosien aikana. Yhdeltäkään tietoturva-foorumilta, yhdeltäkään ns. asiantuntijalta tai yhdeltäkään tietoturvaan liittyvältä toimittajalta tai medialta ei ole tullut asiaan liittyvää vastausta. Ei ainoaltakaan. Suurinosa ns. asiantuntijoista ei ole kuullutkaan moisesta mahdollisuudesta, eikä edes tajunnut siitä, vaikka miten olen rautalankaa vääntänyt. Hevonpaskanjauhantaa ja copypastetusta asioista, joista en kysynyt mitään, on kyllä tullut kuutiokaupalla. Luulisi, että näin selkeä ja tärkeä asia olisi selkeästi dokumentoitu, kerrottu ja tiedossa yleisesti, jos asia olisi oikeasti ns. järkevästi tehty. Ja kun ei ole - niin syytä on olettaa, että asia ei ole järkevästi tehty ja Bitlocker on todellisuudessa reikäjuustoa.

Kysymys on hyvin yksinkertainen:
Kun Bitlockerin asemansalaus laitetaan tauolle (suspend) ja sitä jatketaan (resume), päällekirjoitetaanko levylle tilapäisesti tauotuksen ajaksi kirjoitettava selkokielinen salauksenpurkuavain (tai joku muu käytetty salausavain) asianmukaisesti ja varmasti vaiko ei? 

Mikäli sitä ei näet päällekirjoiteta, sen voi sieltä palauttaa tiedostojen palautussoftilla yms. ja sillä puolestaan purkaa pääsalausavain ja sillä purkaa koko levyn salaus. Monimutkaisempi ja tarkempi selitys on, että jos levy on salattu avaimella A ja tämä avain avaimella B ja tämä B salattu avaimella C, niin minkä tahansa näistä selkokielisen version palauttamalla voit palauttaa koko kiintolevyn. Ja kun Windows tuuppaa C:n selkokielisenä kiintolevylle salaus tauottaessa, niin, no, sielläpä se sitten on odottamassa palauttamista myöhemminkin. Mikäli B muutetaankin B1 avaimeksi ja C muutetaan C1 avaimeksi, ei tämä muuta mitään, koska voit palauttaa tiedostojen palautussoftilla jne. salatun B:n ja selkokielisen C:n ja purkamalla tällä C:llä salatun B:n saat avaimen, jolla voit taas purkaa A:n salauksen jne. Jotain pitää päällekirjoittaa, jotta sitä ei voida palauttaa. Uusien tietojen kirjoittaminen ei auta mitään, pitää päällekirjoittaa niin pitää päällekirjoittaa.


Ja ennen kuin lukijani aloittavat päässään vastaavanlaisen vastaaninttämisen ja selittelyn, mitä olen vuosien aikana tästä kuullut, niin vastaan heti:

"Mutta eihän sitä kukaan ole tajunnut käyttää hyväkseen vielä!"
- No ihmiset ovat helvetin tyhmiä.

"Ai että sinä löysit aukon jota kukaan tietoturvaekspertti ei ole mukamas löytänyt! HAH!"
- No ihmiset ovat helvetin tyhmiä.

"Mutta jos avain korvataan toisella niin mitä väliä vaikka vanhan voisi palauttaa!"
- No jos koko kiintolevyä ei uudelleenkirjoiteta uudella salausavaimella (jota ei tässä tehdä), niin niillä vanhoilla avaimilla voi sitten sen purkaa (tai avaimen, jolla purkaa ne, tai avaimen, jolla voi purkaa ne jolla voi purkaa ne), jos niitä ei päällekirjoiteta. Ei ole mitään maagista keinoa muuttaa tätä tosiasiaa mihinkään suuntaan: Jotakin pitää päällekirjoittaa tai homma pissii.

"Eihän tämmöistä ole missään muuallakaan ratkottu mitenkään, ei se voi olla ongelma!"
- No esimerkiksi Veracrypt päällekirjoittaa vanhan avaimen 35x ylikirjoituksella samantyyppisessä tilanteessa (salausavaimen vaihto kryptattuun osioon tai kuutioon), joten, no, on se ongelma jonka voisi ratkoa.

"No mutta levyt on nykyään SSD:tä ja niissä kun ajaa automaattisesti TRIM-komennon niin homma hoituu sillä!"
- No kun et voi ajaa TRIM-komentoa siinä levyosiossa, jossa se perkeleen Bitlockerin juttu on, koska se on lukittuna ja piilotettuna Windowsin toimesta. Eikä se itse asiassa edes auttaisi, koska SSD-levyissä salausavain voi olla myös kiintolevyn firmwaressa kun käytetään rautapohjaista salausta.

"No mutta jos en laita koskaan Bitlockeria tauolle niin ei sillä ole väliä!"
- No onnea sinulle. Käytännössä sinun pitää jossain kohtaa se tauottaa, kun päivität vaikkapa emolevyn firmwarea tai isomman Windowsin päivityksen. Ja sen jälkeen se onkin sitten siinä.

"Anna tekninen selostus ja proof-of-concept jos aiot jotain väittää..."
- Jos et ymmärrä mistä puhun, ei tekninen selostus VEK yms. auta mitään ja jos ymmärrät mistä puhun, ymmärrät mistä tässä on kyse. Eikä minua kiinnosta väsätä jotain proof-of-conceptia kun en voi olla varma, onko tämä haavoittuvuus vaiko vain todella paskasti Microsoftin dokumentoima asia. Jos tämä haittaa sinua niin voit vaikka suksia vittuun.

"Mutkun...X"
- Ei liity asiaan, mene pois, ole hiljaa vitun ääliö, et tajua hommasta mitään.