Kirjanmerkkien tyypit. US NSA:n kirjanmerkit löytyvät tietoväylän Intel Management Engine -moduulin Hardware-kirjanmerkistä

Etsi sähköisiä tiedonsieppauslaitteita sähkömagneettisen kentän ilmaisimien avulla

KURSSITYÖT

Erikoisala "10.02.01 Tietoturvan organisaatio ja tekniikka"

Täydentäjä: Shevchenko Konstantin Pavlovich

ryhmän nro 342 opiskelija

_______________/_____________/

allekirjoitus koko nimi

"________"___________2016

Tarkistettu:

Opettaja

_______________/S.V. Lutovinov/

allekirjoitus koko nimi

"________"___________2016

Tomsk 2016

Johdanto. 3

Kirjanmerkkien tyypit. 4

Akustiset kirjanmerkit. 4

Puhelimen kirjanmerkit. 7

Laitteiston kirjanmerkit. 8

Sähkömagneettisen kentän ilmaisimet. 10

Radiotaajuusmittarit. 13

Pyyhkäisevät vastaanottimet ja spektrianalysaattorit. 14

Laitteisto-ohjelmisto ja erityiset ohjausjärjestelmät. 16

Säteilyntunnistusjärjestelmä. 17

Johdinvalvontatyökalut. 18

Epälineaariset paikantimet ja metallinpaljastimet. 20

Kirjanmerkkien tunnistus. 21

Johtopäätös. 22

Kirjallisuus. 23


Johdanto

Tieto ei ole pitkään aikaan ollut henkilökohtaista. Se on saavuttanut konkreettisen kustannuspainon, jonka selkeästi määrää sen käytöstä saatu todellinen tuotto tai tiedon omistajalle vaihtelevalla todennäköisyydellä aiheutetun vahingon määrä. Tiedon luomiseen liittyy kuitenkin useita monimutkaisia ​​ongelmia. Yksi näistä ongelmista on tietolaskentajärjestelmissä ja -verkoissa kiertävän ja prosessoitavan tiedon luotettava turvallisuuden varmistaminen ja vakiintunut tila. Tämä ongelma on tullut käyttöön tietoturvaongelmien nimellä.

Erityinen tarkastus on joukko teknisiä toimenpiteitä, jotka suoritetaan ohjaus- ja mittauslaitteilla, mukaan lukien erityiset tekniset välineet, joiden tarkoituksena on estää sieppaus tekninen informaatio, joka sisältää valtiosalaisuuden muodostavia tietoja, henkilökohtaisia, suojattuihin teknisiin välineisiin ja tuotteisiin upotettujen erityisten elektronisten säilytyslaitteiden avulla.

Kohde kurssityötä: perehdy sähkömagneettisten kenttien indikaattoreiden avulla tapahtuvan tiedon sieppaamiseen tarkoitettujen elektronisten laitteiden etsimisen perusteisiin ja keinoihin teoriassa ja käytännössä.


Kirjanmerkkien tyypit

Akustiset kirjanmerkit- Nämä ovat erityisiä miniatyyrejä elektroniset laitteet akustisen (puhe) tiedon sieppaus, piilotettu huoneisiin tai autoihin. Akustisten kirjanmerkkien sieppaama tieto voidaan välittää radion tai optisen kanavan kautta sähköverkon kautta vaihtovirta, puhelinlinjalla sekä rakennusten metallirakenteilla, lämmitys- ja vesihuoltojärjestelmien putkilla jne.



Riisi. 1. Akustinen radion kirjanmerkki

Yleisimmin käytettyjä ovat akustiset kirjanmerkit, jotka välittävät tietoa radiokanavan kautta. Tällaisia ​​laitteita kutsutaan usein radiokirjanmerkeiksi. Radiokirjanmerkit jaetaan akustisten värähtelyjen leviämisvälineestä riippuen akustiset radion kirjanmerkit Ja radiostetoskoopit.


Akustiset radiotunnisteet on suunniteltu sieppaamaan akustisia signaaleja suoran akustisen (ilma-) tietovuodon kautta. Niiden herkkä elementti on yleensä elektreettimikrofoni.


Riisi. 2. Radiostetoskooppi

Radiostetoskooppi on suunniteltu sieppaamaan akustisia signaaleja, jotka etenevät vibroakustista (seinät, katot, lattiat, vesijohtoputket, lämmitys, ilmanvaihto jne.) pitkin kulkevat vuotokanavat. Herkkinä elementteinä käytetään yleensä pietsomikrofoneja tai kiihtyvyysanturityyppisiä antureita. Käyttöajan pidentämiseksi nämä akustiset kirjanmerkit voidaan varustaa ohjausjärjestelmillä radiolähettimen käynnistämiseksi äänellä sekä järjestelmillä kaukosäädin. Radiokirjanmerkkien ja radiostetoskooppien lähettämien tietojen vastaanottamiseen käytetään skannerivastaanottimia sekä ohjelmisto- ja laitteistoohjausjärjestelmiä.


Radiokanavalla tietoa välittävien kirjanmerkkien lisäksi on olemassa kirjanmerkkejä, jotka käyttävät tiedon välittämiseen 220 V:n voimajohtoja. Tällaisia ​​akustisia kirjanmerkkejä kutsutaan ns. verkkoon. Verkkokirjanmerkkien välittämän tiedon sieppaamiseen käytetään erityisiä vastaanottimia, jotka on kytketty rakennuksen sähköverkkoon.



Käytännössä on myös mahdollista käyttää akustisia kirjanmerkkejä, jotka välittävät tietoa turva- ja palohälytysjärjestelmien sekä puhelinlinjoja. Yksinkertaisin laite, joka välittää tietoa puhelinlinjaa pitkin, on ns. puhelinkorvalaite (kuva 3).

Riisi. 3. Puhelinkorva TU-2


Puhelimen kirjanmerkit suunniteltu salakuuntelemaan puhelinlinjojen kautta lähetettyä tietoa. Yleensä toteutetaan erillisenä moduulina tai naamioituna elementeiksi puhelinsarja, puhelinpistoke tai pistorasia.

Tällaisten kirjanmerkkien tietojen sieppaamiseen käytetään kahta tapaa: kontakti- ja ei-kontaktimenetelmiä. Yhteysmenetelmällä tiedot saadaan kytkemällä suoraan ohjattuun linjaan. Kosketuksettomalla menetelmällä tiedot kerätään miniatyyri-induktioanturin avulla, mikä eliminoi mahdollisuuden todeta tietojen salakuuntelu.

Tietojen siirto puhelimen kirjanmerkin avulla alkaa siitä hetkestä, kun tilaaja nostaa luurin.

Riisi. 4. Puhelimen kirjanmerkki


Laitteiston kirjanmerkit- nämä ovat elektronisia laitteita, jotka on asennettu laittomasti ja salaa tietojen käsittelyn ja välittämisen teknisiin välineisiin (tietokoneisiin), jotta varmistetaan oikeaan aikaan tietovuoto, sen eheyden rikkominen tai estäminen. Valmistettu tietokoneissa käytettyjen standardimoduuleiden muodossa pienin muutoksin. Pääsääntöisesti ne sijoitetaan tietokoneeseen, kun tietokonetta kootaan tilattavaksi kiinnostuksen kohteena olevalta yritykseltä, sekä huolto- tai takuuaikana suoritettaessa vianetsintää tai muutoksia.


Riisi. 5. Laitteiston kirjanmerkki

Laitteiston kirjanmerkkejä käyttämällä on mahdollista siepata dataa, esimerkiksi I/O-dataa henkilökohtainen tietokone: monitorikuva; näppäimistöltä syötetyt tiedot, lähetetty tulostimelle, tallennettu sisäiselle ja ulkoiselle tietovälineelle.


Akustisten, puhelin- ja laitteistokirjanmerkkien lisäksi niitä voidaan käyttää luvattomaan tiedonhakuun. kannettavat laitteet videotallenteita.

Videokameroiden lähetys voidaan tallentaa suoraan kuvanauhurille tai lähettää radiokanavan kautta erityisten lähettimien avulla. Jos videokuvan lisäksi tarvitaan äänen siirtoa, videokameran mukana asennetaan mikrofoni. Pääsääntöisesti videolähettimet valmistetaan erillisen yksikön muodossa, vaikka ne ovat kooltaan ja painoltaan pieniä. Mutta usein on tapauksia, joissa ne yhdistetään rakenteellisesti televisiokameroihin (kuva 5).

Riisi. 6. Videolähetin

Videokamerat ja lähettimet saavat virran joko sisäänrakennetuista akuista, kun toiminta-aika pääsääntöisesti ei ylitä useita tunteja, tai 220 V virtalähteestä, ja niiden käyttöaika on käytännössä rajoittamaton.

En ole alan ammattilainen tietoturva, Kiinnostukseni alueeni ovat korkean suorituskyvyn tietokonejärjestelmät. Tietoturva-aiheeseen tulin täysin vahingossa, ja tästä keskustellaan vielä. Uskon, että tämä tositarina korostaa virtualisointilaitteistoon liittyviä ongelmia paljon paremmin kuin kuiva faktalausunto. Jo ennen virallista ilmoitusta uusista Intel-prosessoreista, jotka tukevat laitteiston virtualisointia (vuoden 2007 alussa), päätin käyttää näitä siruja luodakseni yhden useisiin palvelimiin perustuvan laskentajärjestelmän, josta tulisi yksi SMP-arkkitehtuurilla varustettu tietokoneasennus. käyttöjärjestelmä ja sovellusohjelmat. Tätä varten oli tarpeen kirjoittaa kompakti hypervisor, jossa oli ei-standardi toiminnallisuus, pääominaisuus joka ei olisi yhden tietokoneasennuksen resurssien jakamista eri käyttöjärjestelmien kesken, vaan päinvastoin useiden tietokoneiden resurssien yhdistäminen yhdeksi kokonaisuudeksi, jota yksi käyttöjärjestelmä ohjaisi. Samaan aikaan käyttöjärjestelmän ei olisi pitänyt edes arvata, ettei se ole tekemisissä yhtenäinen järjestelmä, mutta useilla palvelimilla. Virtualisointilaitteisto tarjosi tällaisen mahdollisuuden, vaikka sen ei alun perin ollut tarkoitus ratkaista tällaisia ​​ongelmia. Itse asiassa järjestelmää, jossa virtualisointilaitteita käytettäisiin korkean suorituskyvyn laskemiseen, ei ole vielä luotu, ja silloin olin yleensä edelläkävijä tällä alalla. Tämän tehtävän hypervisor kirjoitettiin tietysti tyhjästä. Oli olennaisen tärkeää käynnistää käyttöjärjestelmä jo virtualisoidulla alustalla, jotta käyttöjärjestelmän latausohjelman ensimmäisistä komennoista alkaen kaikki toimisi virtuaaliympäristössä. Tätä varten meidän piti virtualisoida todellinen malli ja kaikki prosessorin toimintatilat ja aloittaa virtualisointi heti alustan alustamisen jälkeen ennen käyttöjärjestelmän lataamista. Koska tähän tarkoitukseen tarkoitettu virtualisointijärjestelmä osoittautui epätyypilliseksi ja näytti täysin itsenäiseltä kompaktilta ohjelmistomoduulilta (koodin määrä enintään 40–60 KB), en jotenkin uskaltanut kutsua sitä hypervisoriksi ja aloin käyttää termi "hyperdriver", koska se ilmaisee tarkemmin järjestelmän toiminnallisen tarkoituksen olemuksen. Tuolloin ei ollut sarjalaitteistoa virtualisointilaitteistolla, mutta yhteistyön Craftwayn kanssa sain käyttööni virtualisointituella varustettujen prosessorien ja emolevyjen esituotantonäytteitä, joita ei ollut vielä virallisesti julkaistu (ns. näytteet, jotka Intel ystävällisesti tarjoaa liikekumppaneilleen). Siksi työ alkoi kiehua tämän "näytteenottolaitteen" parissa. Asettelu koottiin, hyperdriver kirjoitettiin, kaikki toimi suunnitellusti. On sanottava, että tuohon aikaan virtualisointilaitteet olivat erittäin "raakoja", minkä vuoksi ne useammin kuin kerran kieltäytyivät toimimasta dokumentaatiossa kirjoitetulla tavalla. Oli tarpeen käsitellä kirjaimellisesti jokaista kokoonpanokomentoa, ja itse virtualisointilaitteiston komennot piti kirjoittaa konekoodilla, koska tuohon aikaan ei ollut virtualisointikomentoja tukevia kääntäjiä. Olin ylpeä saaduista tuloksista, tunsin itseni melkein hallitsijaksi virtuaalisia maailmoja... mutta euforiani ei kestänyt kauan, vain kuukauden. Siihen mennessä olin jo koonnut virtualisointilaitteistolla varustettuihin palvelimiin perustuvan prototyypin, josta ensimmäiset tuotantonäytteet olivat juuri ilmestyneet, mutta layout ei toiminut. Aloin tutkia sitä ja tajusin, että järjestelmäni jumiutui suorittaessaan laitteiston virtualisointikomentoja. Vaikutelma oli, että ne joko eivät toimineet ollenkaan tai toimivat jotenkin epätyypillisesti. Jäätyminen tapahtui vain, kun virtualisointilaitteisto oli käynnissä reaalitilassa, mutta jos järjestelmäni käynnistettiin suojatusta tilasta käyttöjärjestelmän lataamisen jälkeen, kaikki oli kunnossa. Ammattilaiset tietävät, että Intelin virtualisointilaitteisto ei ensimmäisissä versioissa tukenut prosessorin toimintaa reaalitilassa. Tämä vaati ylimääräisen riittävän suuren kerroksen virtuaalisen x86:n emulointiin. Koska hyperajuri käynnistettiin ennen käyttöjärjestelmän latautumista, jotta se voisi täysin luottaa uuteen virtuaaliseen kokoonpanoon, pieni osa käyttöjärjestelmän käynnistyskoodista suoritettiin todellisessa prosessoritilassa. Järjestelmä kuoli vain emulointikäsittelijöissä todellinen tila hyperajurissa. Aluksi ajattelin, että tein virheen jossain, en ymmärtänyt jotain, unohdin jotain. Tarkistin koodini viimeiseen bittiin asti, en löytänyt virheitä ja aloin syyttää itseäni, vaan ulkomailta tulleita kollegoitani. Ensimmäisenä vaihdoin prosessorit, mutta se ei auttanut. Emolevyillä tuohon aikaan virtualisointilaitteet olivat vain BIOSissa, jossa se alustettiin, kun palvelin käynnistettiin, joten aloin vertailla emolevyjen BIOSeja (samantyyppiset levyt näytteillä) - kaikki sovittiin tavua myöten ja itse BIOSin numero. Vapauduin umpikujaan ja en enää tiennyt mitä tehdä, käytin viimeinen keino- "poke menetelmä". Mitä en tehnyt, en enää ajatellut, vaan yksinkertaisesti yhdistänyt, ja lopulta latasin tyhmästi BIOSit Intelin viralliselta sivulta ja kirjoitin ne uudelleen emolevyille, minkä jälkeen kaikki toimi... Yllätykseni ei tuntenut rajoja: BIOS-numero oli sama, BIOS-otokset täsmäsivät tavu kerrallaan, mutta jostain syystä sarja emolevyt toimivat vain, kun latasin niihin samalla Intelin verkkosivuilta otetun BIOSin. Eli syy on edelleen emolevyissä? Mutta heidän ainoa eronsa oli merkinnöissä: näytteisiin kirjoitettiin Assembled Canada ja sarjatauluihin Assembled China. Kävi selväksi, että Kiinasta peräisin olevat levyt sisältävät lisäohjelmistomoduulien laiteohjelmiston BIOSissa, mutta tavalliset analyysiohjelmat eivät nähneet näitä moduuleja. He ilmeisesti työskentelivät myös virtualisointilaitteiden kanssa ja pystyivät siten piilottamaan BIOSin todellisen sisällön. Syy, miksi hyperdriverini jäätyy näille kiinalaisille levyille, tuli myös selväksi: kaksi ohjelmistojärjestelmät työskenteli samanaikaisesti samoilla virtualisointilaitteistoilla, mikä ei sallinut resurssien jakamista. Halusin käsitellä tätä haitallista BIOSia, ja ilman taka-ajattelua "kirjanmerkeistä", "takaovista", "dokumentoimattomista ominaisuuksista" oli vain akateemista kiinnostusta, eikä mitään muuta. On sanottava, että samanaikaisesti virtualisointilaitteiden käyttöönoton kanssa Intel päivitti piirisarjaa radikaalisti. Tätä 5000x numeroitua piirisarjaa valmistetaan edelleen useissa muunnelmissa. Tämän piirisarjan eteläsilta, 631xESB/632xESB I/O Controller Hub, johon on liitetty BIOS-flash-sirut, on valmistettu lähes muuttumattomana vuodesta 2007 ja sitä käytetään perussiruna lähes kaikille palvelimille kaksikantaisessa rakenteessa. Latasin Southbridgen tietolomakkeen, luin kuvauksen ja olin yksinkertaisesti hämmästynyt. Osoittautuu, että tähän uuteen eteläsiltaan on kytketty kolme flash-muistisirua: ensimmäinen on tavallinen BIOS, toinen on omistettu verkko-ohjainprosessoriohjelmille ja kolmas on tarkoitettu eteläsillalle integroidulle BMC-yksikölle. Järjestelmänhallintayksikkö (SMU) on väline kaukosäädin atk-asennus ja sen valvonta. Se on välttämätön suurissa palvelinhuoneissa, joissa on yksinkertaisesti mahdotonta viipyä pitkään melun, lämpötilan ja vedon vuoksi. Se, että VMC-yksiköissä on oma prosessori ja vastaavasti flash-muisti sen ohjelmille, ei tietenkään ole uutinen, mutta tähän asti tällainen prosessori ja muisti sijoitettiin erilliselle levylle, joka oli kytketty emolevyyn: jos haluat , asenna se, jos et halua, asenna se. älä laita sitä. Nyt Intel on integroinut nämä komponentit eteläsillalle, ja lisäksi se on yhdistänyt tämän yksikön järjestelmäväylä eikä käyttänyt palveluverkon toimintaan erityistä verkkokanavaa (kuten IPMI-standardi, joka kuvaa BMC-yksikön toimintoja), vaan tunneli kaiken palveluverkkoliikenteen pääverkkosovittimille. Seuraavaksi sain dokumentaatiosta selville, että Navy-yksikön flash-sirun ohjelmat ovat salattuja ja niiden purkamiseen käytetään erityistä laitteiston salausmoduulia, joka on myös integroitu eteläsillalle. En ole koskaan ennen törmännyt tällaisiin IUD-yksiköihin. Jotta se ei olisi perusteeton, annan otteen tämän eteläsillan dokumentaatiosta:

  • ARC4-prosessori toimii 62,5 MHz nopeudella.
  • Liitäntä Intel® 631xESB/632xESB I/O Controller Hubin molempiin LAN-portteihin mahdollistaa suoran yhteyden verkkoon ja pääsyn kaikkiin LAN-rekistereihin.
  • Salausmoduuli, joka tukee AES- ja RC4-salausalgoritmeja sekä SHA1- ja MD5-todennusalgoritmeja.
  • Varmistettu mekanismi kuormattavalle säädellylle FW:lle.
Soveltaminen ulkomaille kryptografiset keinot yli 40 bitin avaimen pituus on kielletty Venäjällä lailla, mutta täällä - kiitos! - Jokainen Intel-palvelin sisältää kryptomoduulin tuntemattomilla avaimilla, joiden pituus on 256 bittiä. Lisäksi näitä avaimia käytettiin siruihin upotettujen ohjelmien salaamiseen emolevy tuotantovaiheessa. Osoittautuu, että laivaston yksiköt Venäjällä Intel-palvelimilla, jotka sisältävät 5000x-piirisarjan, on poistettava käytöstä. Nämä lohkot päinvastoin ovat aina toimintakunnossa, vaikka itse laskenta-asennus olisi kytketty pois päältä (VMC:n toimintaa varten valmiusjännite riittää, eli palvelimen virtajohto on kytketty pistorasiaan) . Kaikki tämä vaikutti minusta tuolloin toissijaiselta, koska ensin minun piti selvittää, mikä flash-siruista sisältää ohjelmistomoduulin, joka toimi virtualisointilaitteiston kanssa ja häiritsi hyperajuriani, ja aloin kokeilla laiteohjelmistoa. Dokumentin luettuani olin varovainen, ja kun huomasin, että hyperajurin toiminta palautui heti Navy-yksikön flash-sirun vilkkumisen jälkeen, en ollut edes yllättynyt. Enempää oli mahdotonta ymmärtää ilman erikoistelineitä, koska kryptografia kattoi täysin laivaston koodin kääntämisen mahdollisuudet. En löytänyt dokumentaatiota tämän integroidun laivaston sisäisestä arkkitehtuurista etelän tietolomakkeesta Intel silta kuvasi vain rajapintarekisterit tämän lohkon ohjaamiseksi tavallisilla pääsymenetelmillä, jolloin tuloksena on klassinen "musta laatikko". Tosiasioiden kokonaisuus oli hälyttävä ja ehdotti vainoharhaisia ​​ajatuksia vakoojaetsivien tyyliin. Nämä tosiasiat osoittavat selvästi seuraavaa:
  • Uusissa sarjapalvelinhuoneissa Intel levyt 5000 piirisarjaan perustuen on BMC-yksikön flash-muistissa flash-muistissa olevia ja keskusprosessorilla suoritettuja ohjelmia, jotka toimivat virtualisointilaitteistolla. keskusprosessori.
  • Intelin virallisilla verkkosivuilla olevat flash-muistikuvat eivät sisällä tällaisia ​​​​ohjelmistomoduuleja, joten minua häiritsevät ohjelmistomoduulit välähdettiin laittomasti emolevyihin tuotantovaiheessa.
  • Navy-yksikön flash-muisti sisältää salattuja ohjelmistomoduuleja, joita ei voida koota ja ladata flash-muistiin tietämättä salausavaimia, joten se, joka asetti nämä laittomat ohjelmistomoduulit, tiesi salausavaimet, eli heillä oli pääsy salaista tietoa.
Ilmoitin Craftwayn johdolle merivoimien yksikön flash-muistin laiteohjelmiston ongelmasta ja uusien kanssa lainsäädännön kannalta kyseenalaisen tilanteen Intelin piirisarjat , johon hän sai varsin odotetun vastauksen tyyliin "älä sotke asioita, sinä häiritset liiketoimintaa". Minun piti rauhoittua, koska työnantajia vastaan ​​ei todellakaan voi väitellä. Käteni olivat sidotut, mutta "ajatukseni, hevoseni" eivät antaneet minulle rauhaa, ei ollut selvää, miksi näitä vaikeuksia tarvittiin ja miten tämä kaikki tehtiin. Jos sinulla on mahdollisuus sijoittaa oma ohjelmistosi Navy-yksikön muistiin, miksi tarvitset kaikkea tätä keskusprosessorin vaivaa? Kohtuullisena syynä saattoi olla vain se, että ratkaistava ongelma vaati keskusprosessorin nykyisen laskentakontekstin seurantaa. On selvää, että on mahdotonta seurata päätietokonejärjestelmässä käsiteltävää tietoa käyttämällä vain hidasta oheisprosessoria, jonka taajuus on 60 MHz. Näin ollen näyttää siltä, ​​että tämän laittoman järjestelmän tehtävänä oli kaapata päätietokoneen asennuksessa käsiteltyä tietoa virtualisointilaitteiden avulla. Tietysti on kätevämpää kauko-ohjata koko laitonta järjestelmää BMC-yksikön prosessorista, koska sillä on oma itsenäinen pääsy emolevyn verkkosovittimiin ja omat MAC- ja IP-osoitteet. Kysymys kuuluu "miten tämä tehdään?" oli luonteeltaan akateeminen, koska joku onnistui luomaan hypervisorin, joka voi jakaa virtualisointilaitteiston resursseja toisen hypervisorin kanssa ja tekee tämän oikein kaikissa tiloissa paitsi CPU:n todellisessa toimintatilassa. Nyt et yllätä ketään tällaisilla järjestelmillä, mutta sitten viisi vuotta sitten niitä pidettiin ihmeenä, lisäksi emuloinnin nopeus oli hämmästyttävä - isäntä oli mahdotonta emuloida ohjelmallisesti ilman merkittäviä suorituskyvyn menetyksiä. Selittääksemme meidän on kaivettava teoriaa hieman syvemmälle. Intelin ja AMD:n virtualisointijärjestelmien arkkitehtuuri ei tarkoita usean hypervisorin läsnäoloa alustalla kerralla, mutta ensin käynnistetty hypervisori voi emuloida toimintaa todellisella virtualisointilaitteistolla myöhemmin käynnistettäville hypervisoreille. Tässä tapauksessa kaikki hypervisorit, jotka käynnistettiin ensimmäisen jälkeen, suoritetaan emuloidussa isäntäympäristössä. Kutsun tätä periaatetta "ensimmäisen yön oikeudeksi". Se voidaan helposti toteuttaa käyttämällä erityisiä käsittelijöitä juuriisännässä, kun taas tehtävätila ei muutu merkittävästi, ja toissijaiset hypervisor-isännät toimivat juuriisännällä tehtävätilassa. Emulointitilaa ei ole vaikea järjestää, mutta suorituskykyongelmia ilmenee. Virtualisointilaitteisto toimii pääasiassa VMCB-lohkon (VMCS) kanssa, isäntäohjelmat käyttävät jatkuvasti tätä lohkoa, ja jokainen tällainen pääsy vaatii 0,4–0,7 μs. Tällaista ohjelmistoisäntäemulaatiota on lähes mahdotonta piilottaa Intelin virtualisointijärjestelmässä; liian monta virtualisointikomentoa on emuloitava ohjelmistossa juuriisäntälähtöjen kautta sen sijaan, että ne suoritettaisiin todellisella laitteistolla. Kerron sinulle hieman virtualisointiarkkitehtuurien välisistä eroista. Intelin ja AMD:n laitteiston virtualisointijärjestelmät ovat täysin erilaisia. Suurin arkkitehtoninen ero näiden järjestelmien välillä on isäntäkäyttötapa. SISÄÄN AMD järjestelmä isäntä toimii virtualisointilaitteiston ollessa pois käytöstä, mikä tarkoittaa, että sen ohjelmat toimivat todellisessa prosessorissa. Toissijaisen isännän virtualisointi AMD-järjestelmissä vaatii vain VMRUN-komennon virtualisoinnin (voimme olettaa, että muita komentoja ei ole). Työskentely VMCB-ohjauslohkon kanssa AMD-arkkitehtuurissa tapahtuu tavallisten pääsykomentojen kautta RAM-muisti, jonka avulla voit hallita vain VMRUN-komentojen suorittamista toissijaisella isännällä ja tarvittaessa korjata VMCB-lohkoa ennen kuin siirryt tehtävätilaan. Tapahtuman käsittelyjaksoa on edelleen mahdollista pidentää kaksinkertaiseksi ja AMD alusta tällainen emulointi on käyttökelpoista. Intelin virtualisointijärjestelmässä kaikki on paljon monimutkaisempaa. Voit käyttää VMCB-lohkoa käyttämällä erikoisjoukkueet VMREAD ja VMLOAD, jotka on virtualisoitava. Tyypillisesti isäntäkäsittelijät käyttävät VMCB-lohkon kenttiä kymmeniä, ellei satoja kertoja, ja jokainen tällainen toiminto on emuloitava. Samalla on havaittavissa, että nopeus putoaa suuruusluokkaa, mikä on erittäin tehotonta. Kävi selväksi, että tuntemattomat kollegat käyttivät erilaista, tehokkaampaa mekanismia emulointiin. Ja dokumentaatiosta löysin vihjeitä kummasta tarkalleen. Intel-isäntä itsessään on virtuaalinen ympäristö, eli itse asiassa se ei tässä suhteessa eroa tehtävän suoritusympäristöstä ja sitä yksinkertaisesti ohjaa eri VMCB (katso kaavio). Lisäksi dokumentaatiossa kuvataan "kaksoismonitorin" käsite SMM-tilan virtualisoimiseksi (järjestelmänhallintatila), kun itse asiassa kaksi isäntäkonetta ja siten kaksi VMCB-lohkoa ovat aktiivisia kerralla ja isäntä virtualisoi järjestelmänhallintatilan. ohjaa pääpalvelinta tehtävänä, mutta vain pisteissä, joissa järjestelmän hallintakeskeytyksiä kutsutaan. Tämä joukko tosiasioita viittaa siihen, että Intelin virtualisointilaitteistossa on todennäköisesti mekanismi useiden toissijaisten isäntien ohjaamiseksi juuriisäntäkoneella, vaikka tätä mekanismia ei ole kuvattu missään. Sitä paitsi järjestelmäni toimi juuri näin, eikä minulla ole vieläkään muuta selitystä juurihypervisorin lähes huomaamattomille toimille. Asiat muuttuivat vieläkin mielenkiintoisemmiksi: näyttää siltä, ​​että joku pääsi käsiksi näihin dokumentoimattomiin ominaisuuksiin ja otti ne käytännön käyttöön. Noin kuusi kuukautta ennen yhteistyöni Craftwayn kanssa ryhdyin passiivisen tarkkailijan asemaan, mutta jatkoin kuitenkin säännöllisesti järjestelmäni käynnistämistä uusille sarja-emolevyerille Kiinasta ja uusille näytteille. Näytteissä kaikki toimi edelleen vakaasti. Kun vaihdoin kiinalaisiin levyihin, järjestelmään ilmestyi yhä enemmän ihmeitä. Näytti siltä, ​​että ulkomaiset kollegat paransivat aktiivisesti juurihypervisorinsa suorituskykyä. Viimeisimmät epäilyttävät levyerät käyttäytyivät lähes normaalisti, eli hyperdriverini ensimmäinen käynnistys johti järjestelmän uudelleenkäynnistykseen käyttöjärjestelmän käynnistyksen yhteydessä, mutta kaikki myöhemmät hyperdriverin ja käyttöjärjestelmän käynnistykset sujuivat ongelmitta. Lopulta tapahtui se, mitä olin odottanut pitkään: saapui uusi erä sarjaemolevyjä, joita käytettäessä hyperdriverini ei jäätynyt ollenkaan. Olin jo alkanut epäillä vainoharhaisia ​​epäilyksiäni, mutta uusi tapaus vahvisti niitä. On huomattava, että Intel kehittää aktiivisesti virtualisointilaitteita. Jos laitteiston ensimmäinen versio, jolla aloitin työskentelyn, oli numero 7, niin kuvattu tilanne tapahtui 11. versiossa, eli noin vuoden aikana versio päivitettiin kahdesti (jostain syystä versioissa on vain parittomat numerot). Joten versiossa 11 virtualisointilaitteiden tehtävätilan mukaisia ​​lähtöehtoja isäntään laajennettiin merkittävästi, minkä mukaan VMCB-lohkoon otettiin jopa uusi ohjauskenttä. Kun malliprosessorit ilmestyivät tämän virtualisointilaitteiston version kanssa, halusin testata uusia ominaisuuksia käytännössä. Paransin hyperohjainta virtualisointilaitteiston 11. version uusilla ominaisuuksilla, asensin malliprosessorin Kiinasta peräisin olevalle sarjalevylle, jossa kaikki toimi jo ilman ongelmia, ja aloitin virheenkorjauksen. Laitteen uudet ominaisuudet eivät ilmenneet millään tavalla, ja vaivuin jälleen uupumukseen, tehden syntiä näyteprosessorille ja dokumentaatiolle. Jonkin ajan kuluttua emolevyä tarvittiin toiseen tehtävään, ja kokeiluja jatkettaessa vaihdoin varmuuden vuoksi prosessorit virtualisointilaitteiden 11. versiolla kanadalaiseen näytteeseen. Kuvittele yllätykseni, kun kaikki toimi tässä näytteessä! Aluksi luulin, että olen mennyt pieleen jossain sarjalevyn kanssa, koska isäntäkoneen uusilla lähdöillä ei ollut mitään tekemistä emolevyn kanssa, se oli puhtaasti prosessoritoiminto. Testatakseni sitä siirsin näyteprosessorin sarjalevylle, ja kaikki lakkasi toimimasta uudelleen. Tämä tarkoittaa, että en sotkenut mitään, mutta ongelma oli siinä, että emolevy vaikutti jotenkin prosessorin virtualisointilaitteiston uusiin ominaisuuksiin. Epäilykseni huomioon ottaen ainoa johtopäätös, joka itse ehdotti, oli, että emolevyn flash-muistiin ommeltu ulkomailta tulleiden kollegoiden laiton juurijoukko ei tiennyt virtualisointilaitteiston uudesta versiosta. Kun tämä tuntematon laitteisto alkoi toimia, se lakkasi välittämästä oikein lähtöjä tehtävätilasta toissijaiselle isännälleni oman tapahtumakäsittelijän kautta. Tietäen jo kuinka käsitellä tätä vitsausta, latasin Navy-yksikön laiteohjelmiston Intelin verkkosivustolta sarjalevylle, käynnistin järjestelmän luottavaisin mielin, että kaikki toimisi heti, ja olin jälleen pettynyt, koska jäätymiset pysyivät. Tämä oli jotain uutta. Teoriani mukaan laiton hypervisor tuli röyhkeäksi ja luotti haavoittumattomuuteensa. Ilmeisesti sen kirjoittajat katsoivat, että heidän aivonsa oli läpäissyt testausvaiheen, eikä enää ollut tarvetta naamioida virheenkorjaamatonta ohjelmistoa BIOS-virheeksi. Kun toiminto, joka suojaa alustuskoodia päällekirjoitukselta flash-muistiin, otettiin käyttöön, kirjanmerkki muuttui käytännössä poistettavaksi. Minulla ei ollut luottamusta siihen, että olin oikeassa; kontrollikokeita tarvittiin. Minun piti keksiä oma menetelmä laitteistohypervisorin havaitsemiseksi. Sitten kuitenkin kävi ilmi, että minä olin keksinyt pyörän. Menetelmä mahdollisti suoritusajan hallinnan järjestelmän komennot, joka vaatii pakollisen emuloinnin hypervisor-isännässä. Käytin USB-ohjaimen laitteistossa ajastimena syklistä kehyslaskuria ja kirjoitin ohjelman todelliselle toimintatilalle minimoidakseni sivuttaiset ja hallitsemattomat keskeytykset, jotka peittävät järjestelmäkomentojen todellisen suoritusajan. Ensimmäinen testi, jonka tein, oli puhdas järjestelmä, joka perustui Kanadan malliemolevyihin.
Kuvassa näkyvä suoritusaika on jokin mielivaltainen arvo, joka vastaa suunnilleen prosessorin kellojaksoa. Sitten suoritin saman testin sarjamuotoisella emolevyllä ja olin vakuuttunut vainoharhaisista olettamuksistani - komentojen suoritusjaksot olivat huomattavasti pidempiä.
Toisin sanoen Intel-merkin alla tuotetun Kiinan Navy-palvelinlevylohkon flash-muistiin oli tuotantovaiheessa asennettuna ilmoittamaton ohjelmistomoduuli, joka toimi hypervisor-isäntänä. Ei jää muuta kuin vakuuttaa muut tästä. Ensimmäinen asia, jonka tein, oli ottaa yhteyttä Intelin venäläiseen edustajaan. Tämä ei ollut ollenkaan vaikeaa, koska Venäjän toimiston työntekijät ilmestyivät usein Craftwaylle. Kerroin ja näytin kaiken, mutta en ollut varma, ymmärsikö teknikko kaikkea. Nämä niin sanotut tekniset asiantuntijat eroavat vähän johtajista osaamistasoltaan. Hän lupasi kuitenkin raportoida kaikesta johdolle. En tiedä tekikö hän tämän, mutta Intel ei vastannut, kaikki meni viemäriin. Työ Craftwaylla oli päättynyt siihen mennessä, ja aloitin uusi projekti tietoturvajärjestelmiin liittyvässä yrityksessä. Tämän yrityksen johtaja, jonka kanssa jaoin "löydösteni", otti sanani vakavasti. Tältä osin päätettiin ottaa yhteyttä FSB:n tietosuoja- ja erityisviestintäkeskuksen johtoon. Tämä FSB:n rakenne vastaa maan tietoturvan varmistamisesta ja säätelee valtion ja kaupallisten organisaatioiden tietoturvaan liittyviä toimia. Se säätelee myös turvaluokiteltuja ja luottamuksellisia tietoja käsittelevien valtion virastojen ja kaupallisten yritysten tietosuojatoimenpiteitä. Yritys, jossa työskentelin tuolloin, piti virallisia yhteyksiä keskukseen kaupallisten projektiensa sertifioimiseksi ja lisensoimiseksi, joten tapaamisen järjestäminen asiantuntijatasolla oli melko helppoa. Oletuksena oli, että keskuksen asiantuntijat raportoivat mielipiteensä johdolle, ja jos sen jälkeen johto katsoi tarpeelliseksi kuunnella meitä, niin seuraava vaihe olisi korkeamman tason kokous. Kokous pidettiin, kerroin ja näytin kaiken, mitä onnistuin saamaan selville, sitten osoitin laittoman ohjelmistomoduulin olemassaolon käyttämällä esimerkkejä Kanadan ja Kiinan levyistä. Muuten, se oli ensimmäinen kerta, kun kuulin ammattitermin "kirjanmerkki", joka tarkoittaa tällaista moduulia. Kun keskustelu kääntyi kierukkaan, keskuksen kollegoiden silmiin ilmestyi väärinkäsitys. Minun piti järjestää koulutusohjelma. Matkan varrella kävi ilmi, että he eivät edes epäilleet erityisen mikroprosessorin olemassaoloa eteläsillalla, jolla oli pääsy verkkosovittimeen, ja kryptografisen moduulin olemassaoloa laivaston yksikössä, joka rikkoi Venäjän lakia. Lopuksi kuulimme täysin odottamatta, että tätä uhkamallia on jo tutkittu, niihin sovelletaan joukko vastatoimia, ja yleensä emme pelkää kirjanmerkkejä, koska järjestelmillämme ei ole pääsyä Internetiin. Lisäkysymykset eivät johtaneet mihinkään, kaikki meni salassapitoon, kuten, olemme älykkäitä ja superlukutaitoja, mutta sinun ei tarvitse tietää mistään. Epäilin kuitenkin vakavasti heidän teknistä lukutaitoaan, koska he eivät yksinkertaisesti ymmärtäneet suurinta osaa siitä, mitä kerroin ja näytin. He erosivat siitä, että he raportoivat esimiehilleen ja päättäisivät jatkotoimista. Hieman myöhemmin sain selville, mikä tämä "salainen menetelmä" isäntäohjelmien havaitsemiseen oli. Lisäksi sain tietää aivan vahingossa neuvottelujen aikana yrityksessä - keskuksen lisenssinhaltijalla, jolla on oikeus tarkistaa BIOSista kirjanmerkit. Tämän BIOS-tutkimusta suorittavan yrityksen tekniset asiantuntijat sanoivat, että sen virtualisointilaitteistoa käyttäviä ohjelmistomoduuleja on etsittävä virtualisointikomentojen allekirjoituksilla. Itse asiassa virtualisointilaitteiston suorittimen komennot sisältävät kolme tai neljä tavua ohjelmakoodissa, mutta kuka sanoi, että tämä ohjelmakoodi löytyvätkö ne salaamattomina flash-sirulta? Kuinka he skannaavat tämän koodin RAM-muistiin, jos nämä muistialueet on suojattu laitteistolta? Yleisesti ottaen ensimmäisen tapaamisen tulos jätti epämiellyttävän jälkimaun, ja olin synkimmällä tuulella odottaessani tapahtumien kehitystä. Puolitoista kuukautta myöhemmin meidät kutsuttiin itse Tietosuoja- ja erityisviestintäkeskukseen esittelemään löytämäämme kirjanmerkkiä. Tällä kertaa meitä ei kokoontunut kuuntelemaan tavalliset työntekijät, vaan johtajat ja johtavat asiantuntijat (näin he ainakin esittelivät itsensä). Tapaaminen muuttui luennolle, he kuuntelivat minua tarkkaavaisesti lähes kolme tuntia, oli selvää, että he kuulivat ensimmäistä kertaa, mistä kerroin heille. Luettelin x86-alustan uudet haavoittuvuudet, näytin kirjanmerkin ja kerroin kuinka se havaitaan, ja vastasin moniin kysymyksiin. Lopussa kiitettiin, sanottiin, että aihetta on kehitettävä erityisten tutkimusprojektien puitteissa, ja sillä erosimme. Euforia katosi, kun epävirallisia kanavia pitkin meille saapui tieto, jota he eivät yksinkertaisesti halunneet uskoa meitä. Tämä ei kuitenkaan vähentänyt haluani todistaa olevani oikeassa. Minusta tuntui silloin, että ratkaisu oli ilmeinen: minun piti kirjoittaa tällainen kirjanmerkkiohjelmistomoduuli itse. En olisi voinut sijoittaa kirjanmerkkiä Navyn flash-muistiin, mutta voisin laittaa sen helposti pääBIOS:iin. Päätin varustaa hypervisorin omalla suojausmoduulillaan peittämistä varten muistiin ja flash-sirulle, ja myös estää kirjoittamisen flash-sirulle, jossa kirjanmerkkikoodi sijaitsee, minkä jälkeen se voidaan poistaa vain juottamalla BIOS ja ohjelmoimalla uudelleen. se ulkoisella ohjelmoijalla. Jäljelle jäi vain päättää "haitallinen" toiminto, joka hypervisorin tulisi suorittaa. Muistin erään FSB-asiantuntijan lausunnon, että he eivät pelänneet kirjanmerkkejä, koska heidän järjestelmänsä oli irrotettu maailmanlaajuisesta Internetistä. Mutta ulkomaailman tiedon on jotenkin päästävä näihin suojattuihin tietoihin paikalliset verkot ainakin kertakäyttöisten optisten levyjen kautta. Siten päädyin ilmeiseen johtopäätökseen ja päätin analysoida kirjanmerkkiin tulevaa tietovirtaa hyperajurin avulla toteuttaakseni niin sanotusti tuomiopäivän aseen, eli käyttää kirjanmerkkiä tietokonejärjestelmän tuhoamiseen ulkopuolinen tiimi, välittää sen syötetietovirran kautta steganografisesti. Tietovirran skannaus piilotettuna ilman suorituskyvyn heikkenemistä on vaikeaa vain virtualisointilaitteille. On myös selvää, mistä skannata: I/O-puskureissa levyjärjestelmät ja verkkosovitin. I/O-puskurien skannaus on pala kakkua virtualisointilaitteistolle. Ei aikasemmin sanottu kuin tehty! Tämä noin 20 kilotavun kokoinen hyperajuri kirjoitettiin emolevyn BIOS:iin ja varustettu tunnistuksenestotoiminnolla. Se esti yritykset kirjoittaa se uudelleen BIOSia päivitettäessä ja suoritti yhden toiminnon: se nollasi BIOS-flash-sirun, kun tuhoamiskäsky vastaanotettiin. Toteutuksen helpottamiseksi itse komento upotettiin DOC-tekstitiedostoon määritystunnisteisiin. Kun kaikki oli valmista, yrityksen johto otti jälleen FSB:n puoleen ehdotuksella, että katsoisimme oman kirjanmerkkimme työtä ja varmistaisimme, että virtualisointiteknologiat muodostavat todellisen uhan. Mutta kukaan ei halunnut katsoa kirjanmerkkiämme toiminnassa; ylhäältä tuli käsky (en koskaan saanut selville, kenen tilaus se oli) olla kommunikoimatta kanssamme enää. Tietoturvan päätaistelijat eivät halunneet kuunnella meitä. Sitten, toivoen käytännössä mitään, itse asiassa omantunnon puhdistamiseksi, yritimme välittää tietoa ongelmasta tietoturvajärjestelmien käyttäjille. Otimme yhteyttä Gazpromiin tiedottaaksemme yrityksen asiantuntijoille hajautettujen prosessinohjausjärjestelmien nykyaikaisista uhista. Oli mahdollista järjestää tapaaminen tämän yhtiön monimutkaisten turvajärjestelmien yrityssuoja- ja hallintapalvelun johdon kanssa. Erityisesti heille valmistettiin visuaalisempi versio kirjanmerkistä yksinkertaistetulla komentoliittymällä. Kirjanmerkki aktivoitui, kun tietokoneelle oli ladattu tekstitiedosto, jonka sisältö sisälsi kaksi sanaa - "Gazprom" ja "stop" - satunnaisessa järjestyksessä. Tämän jälkeen tietokone kuoli, mutta ei heti, vaan viiden minuutin viiveellä. Luonnollisesti sitä oli mahdollista lykätä päivällä, mutta silloin emme olisi saavuttaneet mielenosoitukselle varattua aikaa. Gazpromin työntekijät valittivat heikkoa tietoturvatasoa ja sanoivat, ettei se ollut heidän asiansa, koska heitä ohjasivat FSB:n asettamat vaatimukset ja säännöt. Ympyrä sulkeutui, kävi selväksi, että tätä monoliittista "tietovastuuttomuuden" järjestelmää ei voitu murtaa. Sen jälkeen kuluneiden yli kolmen vuoden aikana en ole koskaan kuullut kenenkään puhuvan virtualisointilaitteistosta työkaluna tunkeutua kohdejärjestelmiin. Paradoksi? Älä ajattele. Aiheen erityispiirre on, että opimme vain epäonnistuneista teknologioista. Emme tiedä teknologioista, joita ei ole löydetty, ja niiden kirjoittajat tietysti vaikenevat. On otettava huomioon, että kirjanmerkkien luotettava sijoittaminen BIOSiin on mahdollista vain tehdasolosuhteissa. Käyttöolosuhteissa tämä vaatii keskittymistä tiettyyn emolevymalliin, eivätkä tällaiset vaihtoehdot ole kovin mielenkiintoisia hakkereille. He tarvitsevat massaosallistumista, he työskentelevät, kuten he sanovat, "alueilla". On kuitenkin myös niitä, jotka hyökkäävät tarkasti, "kuin ampuja". Tekniikat kirjanmerkkien sijoittamiseksi BIOSiin ja jopa virtualisointilaitteiden aktivointi, jonka avulla voit piilottaa ne tehokkaasti, ovat tietysti kätevä työkalu sellaisille "snipereille". Kerran he jäivät melkein kiinni, melkein vahingossa. Luulen, että nyt tämä ei ole enää mahdollista, ja kuten luultavasti ymmärsit, kukaan ei saa sitä kiinni.

Huoli siitä, että jos vastustaja on riittävän tekninen, on olemassa vaara, että hän tekee salaisia ​​muutoksia mihin tahansa siruun. Muokattu siru toimii kriittisissä solmuissa, ja käyttöön otettu "Troijan hevonen" tai "laitteisto" jää huomaamatta, mikä heikentää maan puolustuskykyä kaikkein perustavimmalla tasolla. Pitkään tällainen uhka pysyi hypoteettisena, mutta kansainvälinen tutkijaryhmä pystyi äskettäin toteuttamaan sen fyysisellä tasolla.

Georg T. Becker Massachusettsin yliopistosta loi yhdessä sveitsiläisten ja saksalaisten kollegoiden kanssa osana konseptin todistetta kaksi versiota "laitteistotason troijalaisesta", joka häiritsee (pseudo)satunnaislukugeneraattorin toimintaa ( RNG) prosessorien salausyksikössä Intelin arkkitehtuuri Ivy Bridge. Salausavaimet, jotka on luotu muokatulla PRNG:llä mille tahansa salausjärjestelmälle, ovat helposti ennustettavissa.

Laitteistovirheen olemassaoloa ei määritetä millään tavalla tähän tarkoitukseen suunnitelluilla sisäänrakennetuilla testeillä tai prosessorin ulkoisella tarkastuksella. Miten tämä voi tapahtua? Tähän kysymykseen vastaamiseksi on palattava PRNG-laitteiston syntyhistoriaan ja tutustuttava sen toiminnan perusperiaatteisiin.

Salausjärjestelmiä luotaessa on välttämätöntä eliminoida mahdollisuus nopea valinta avaimet. Niiden pituus ja arvaamattomuus vaikuttavat suoraan hyökkäävän puolen vaihtoehtojen määrään. Pituus voidaan asettaa suoraan, mutta avainvaihtoehtojen ainutlaatuisuuden ja niiden yhtäläisen todennäköisyyden saavuttaminen on paljon vaikeampaa. Tätä varten avaimen luomisen aikana käytetään satunnaislukuja.

Tällä hetkellä on yleisesti hyväksyttyä, että käyttämällä vain ohjelmistoalgoritmeja on mahdotonta saada todella satunnaista numerovirtaa niiden tasaisella kaoottisella jakautumisella koko määritellylle joukolle. Niillä on aina korkea esiintymistiheys jossain alueen osassa ja ne pysyvät jossain määrin ennustettavissa. Siksi useimmat käytännössä käytetyt numerogeneraattorit tulisi nähdä näennäissatunnaisina. Ne ovat harvoin tarpeeksi vahvoja kryptografisessa mielessä.

Ennustettavuuden vaikutuksen vähentämiseksi mikä tahansa numerogeneraattori vaatii luotettavan satunnaisen kylvölähteen - satunnaisen siemenen. Yleensä sitä käytetään joidenkin kaoottisten fysikaalisten prosessien mittausten tuloksena. Esimerkiksi valon värähtelyn voimakkuuden vaihtelut tai radiotaajuisen kohinan rekisteröinti. Olisi teknisesti kätevää käyttää tällaista satunnaisuuden elementtiä (ja koko laitteiston PRNG:tä) kompaktissa versiossa ja ihannetapauksessa tehdä siitä sisäänrakennettuna.

Intel on rakentanut (pseudo)satunnaislukugeneraattoreita siruihinsa 1990-luvun lopulta lähtien. Aikaisemmin niiden luonne oli analoginen. Satunnaiset lähtöarvot saatiin vaikeasti ennustettavien fyysisten prosessien - lämpökohinan ja sähkömagneettisten häiriöiden - vaikutuksesta. Analogiset oskillaattorit olivat suhteellisen helppoja toteuttaa erillisinä lohkoina, mutta niitä oli vaikea integroida uusiin piireihin. Prosessin pienentyessä tarvittiin uusia ja aikaa vieviä kalibrointivaiheita. Lisäksi luonnollinen syöttöjännitteen lasku heikensi signaali-kohinasuhdetta tällaisissa järjestelmissä. PRNG:t toimivat jatkuvasti ja kuluttivat huomattavan määrän energiaa, ja niiden toimintanopeus jätti paljon toivomisen varaa. Nämä puutteet asettivat rajoituksia mahdollisille sovellusalueille.

Ajatus täysin digitaalisesta (pseudo)satunnaislukugeneraattorista on tuntunut pitkään oudolta, ellei absurdilta. Loppujen lopuksi minkä tahansa tila digitaalinen piiri aina tiukasti määrätietoinen ja ennakoitava. Kuinka tuoda siihen tarvittava satunnaisuuden elementti, jos analogisia komponentteja ei ole?

Intelin insinöörit ovat yrittäneet saavuttaa haluttua kaaosta pelkästään digitaalisten elementtien pohjalta vuodesta 2008 lähtien, ja ne kruunasivat menestyksen parin vuoden tutkimuksen jälkeen. Teos esiteltiin vuonna 2010 VLSI Summer Symposiumissa Honolulussa ja tuotti pienen vallankumouksen nykyaikaisessa kryptografiassa. Ensimmäistä kertaa täysin digitaalinen, nopea ja energiatehokas PRNG otettiin käyttöön massatuotetuissa yleiskäyttöisissä prosessoreissa.

Sen ensimmäinen työnimi oli Bull Mountain. Sen jälkeen se nimettiin uudelleen Secure Key. Tämä kryptografinen lohko koostuu kolmesta perusmoduulista. Ensimmäinen luo satunnaisten bittien virran suhteellisen hitaalla 3 Gbps:n nopeudella. Toinen arvioi niiden varianssin ja yhdistää ne 256 bitin lohkoiksi, joita käytetään satunnaisen siemennyksen lähteinä. Kun sarja matemaattisia menettelyjä kolmannessa lohkossa enemmän suuri nopeus generoidaan 128 bitin pituinen satunnaislukuvirta. Niiden perusteella luodaan uuden RdRand-käskyn avulla tarvittaessa tarvittavan pituiset satunnaisluvut, jotka sijoitetaan erityisesti määrättyyn rekisteriin: 16, 32 tai 64 bittiä, jotka lopulta lähetetään niitä pyytäneelle ohjelmalle.

Virheet (pseudo)satunnaislukugeneraattoreissa ja niiden haitalliset muunnelmat aiheuttavat luottamuksen menetyksen suosittuihin salaustuotteisiin ja itse niiden sertifiointimenettelyyn.

Koska PRNG on poikkeuksellisen tärkeä kaikissa salausjärjestelmissä, Secure Keyssä on sisäänrakennetut testit luotujen satunnaislukujen laadun varmistamiseksi, ja johtavia asiantuntijaryhmiä on ollut mukana sertifioinnissa. Koko yksikkö täyttää ANSI X9.82- ja NIST SP 800-90 -standardien kriteerit. Lisäksi se on sertifioitu tasolle 2 NIST FIPS 140-2 -vaatimusten mukaisesti.

Tähän asti suurin osa laitteistotroijalaisten parissa tehdystä työstä on ollut hypoteettista. Tutkijat ovat ehdottaneet pieniä logiikkapiirejä, jotka pitäisi jotenkin lisätä olemassa oleviin siruihin. Esimerkiksi Samuel Talmadge King ja hänen kirjoittajansa esittelivät LEET-08-konferenssissa muunnelman laitteistotroijalaisesta keskusprosessorille, joka tarjoaisi täydellisen järjestelmän hallinnan etähyökkääjälle. Yksinkertaisesti lähettämällä tietyllä tavalla konfiguroitu UDP-paketti, voit tehdä muutoksia sellaiseen tietokoneeseen ja saada rajoittamattoman pääsyn sen muistiin. Lisälogiikkapiirejä on kuitenkin suhteellisen helppo tunnistaa mikroskoopilla, puhumattakaan erikoismenetelmistä tällaisten modifikaatioiden etsimiseen. Beckerin ryhmä valitsi toisen reitin:

Sen sijaan, että lisäsimme piiriin lisäpiirejä, toteutimme laitteistotason ominaisuuksia yksinkertaisesti muuttamalla joidenkin siinä jo olevien mikrotransistorien toimintaa. Useiden yritysten jälkeen pystyimme valikoivasti muuttamaan lisäaineen napaisuutta ja tekemään haluttuja muutoksia koko salausyksikön toimintaan. Siksi troijalaisperheemme osoittautui kestäviksi useimpia tunnistusmenetelmiä vastaan, mukaan lukien skannausmikroskopia ja vertailu referenssisiruihin.

Tehdyn työn tuloksena 128 bitin pituisten yksilöllisten numeroiden sijaan kolmas Secure Key -lohko alkoi kerääntyä sekvenssejä, joissa vain 32 bittiä erosi. Sellaisten pohjalta luotu näennäissatunnaisia ​​lukuja kryptografiset avaimet ovat hyvin ennustettavissa ja ne voidaan murtaa muutamassa minuutissa tyypillisellä kotitietokoneella.

Laitteiston taustalla oleva selektiivinen sähkönjohtavuuden muutos toteutettiin kahdessa versiossa:

  1. Intelin suojatun avaimen signaalien digitaalinen jälkikäsittely;
  2. käyttää sivukanavalla käyttäen taulukon bittikorvausmenetelmää (Substitution-box).

Jälkimmäinen menetelmä on yleismaailmallisempi ja sitä voidaan käyttää pienin muutoksin muissa siruissa.

Mahdollisuus käyttää sisäänrakennettua PRNG:tä RdRand-käskyn kautta ilmestyi ensimmäisen kerran Intelin prosessorit Ivy Bridge -arkkitehtuuri. Intel on kirjoittanut yksityiskohtaisia ​​oppaita ohjelmoijille. He puhuvat menetelmistä salausalgoritmien optimaaliseen toteuttamiseen ja tarjoavat linkin Secure Keyn toimintaperiaatteiden kuvaukseen. Tietoturvaasiantuntijoiden ponnistelut kohdistuivat pitkään ohjelmiston haavoittuvuuksien etsimiseen. Ehkä ensimmäistä kertaa piilotetut häiriöt laitteistotasolla osoittautuivat paljon vaarallisemmaksi ja täysin käyttökelpoisemmaksi tekniikaksi.

Lyhyesti sanottuna se sanoo seuraavaa (tässä tekstissä on subjektiivinen vapaa parafraasini).

Väitetään, että suuret yritykset ympäri maailmaa, mukaan lukien Apple, Amazon ja muut heidän kaltaiset, ovat tilannut kalliita huippupalvelimia SuperMicrolta useiden vuosien ajan. Jälkimmäinen oli kyllästynyt sellaisiin tilausmääriin, sen omat tehtaat eivät enää jaksaneet. Sitten se ulkoisti tietyn määrän emolevyjä kiinalaisille alihankkijoilleen.

Kohteliaat kiinalaiset tulivat samojen alihankkijoiden luo ja tekivät heille tarjouksen, josta he eivät voineet kieltäytyä. Kuten, hyvät kaverit, asennat pyynnöstämme lisäksi toisen pienen, dokumentoimattoman sirun valmistamillesi emolevyille. Jos teet niin, veloitamme sinulta ylimääräistä rahaa, mutta jos et, pilaamme yrityksesi erilaisilla shekeillä. Tämän seurauksena tällä tavalla "muokattuja" emolevyjä levitettiin ympäri maailmaa, ja osa niistä päätyi suuriin ensiluokkaisiin amerikkalaisiin yrityksiin, pankkeihin ja valtion virastoihin.

Jonkin verran aikaa kului. Yksi Amazonin toimialoista, tietty yritys nimeltä "Elements", on huolissaan kehittämiensä ratkaisujen turvallisuudesta videovirtojen massakäsittelyn alalla. He tilasivat muun muassa laitteistoturvatarkastuksen eräälle kanadalaiselle yritykselle. Ja täältä löydettiin taidokkaasti piilotetut, emolevyihin istutetut, dokumentoimattomat sirut. Joita ei ole niin helppo havaita. Koska ensinnäkin ne ovat hyvin pieniä ja harmaita. Toiseksi ne on naamioitu tavallisiksi juotosliittimiksi tai sirukondensaattoreiksi. Kolmanneksi, viimeisimmissä versioissa ne alkoivat piilottaa suoraan tekstoliitin paksuuteen niin, että ne näkyvät vain röntgenkuvissa.

Jos uskot tekstiä, sulautetun mikrokoodin kautta vakoojasiru ajoittain "pingtaa" BMC-moduulin läpi yhden nimettömän "nukkenäyttelijän", jolta se saa lisäohjeita toimintaan. Ja oletetaan, että tämäkin vastustaja pystyy lataamaan "tarpeesta" jonkin koodin, joka sitten ruiskutetaan suoraan käyttöjärjestelmän käynnissä olevaan ytimeen tai sovelluskoodiin.

No, seuraavaksi huudahtaa kuinka iso turva-aukko tämä on, mitä kusipäitä nämä kiinalaiset ovat, mitä heidän röyhkeytensä ja ylimielisyytensä on, kaikki miehet ovat kusipäitä, keneenkään ei voi luottaa, "nyt me kaikki kuolla”, ja siinä kaikki. Tekniseltä kannalta mielenkiintoiset keskustelut päättyvät tähän.

Olen yleensä suuri skeptikko elämässä. Kiistämättä kiinalaisten neroutta, jotkut näkökohdat vaikuttavat minusta edelleen hyvin epärealistisilta. Ottaako se vain sellaisena, insinöörien ja johdon ovelaksi, ja tehdä muutoksia emolevyn suunnitteluun valmistajan tasolla vaikuttamatta sen suorituskykyyn? Ja jos johtamisen tietämyksellä, niin kuinka hän motivoitui altistamaan niin suuren yrityksen niin vakavalle maineriskille? Lisäätkö koodisi käyttöjärjestelmään ja sovelluksiin? No, Windowsin kanssa se on edelleen kunnossa, olen valmis uskomaan sen narisemalla. Mutta Linuxissa, jossa et tiedä etukäteen, kuka sen keräsi ja miten? Näytetäänkö offline-verkkotoiminta? Joka voidaan haluttaessa havaita ja suodattaa. Puhumattakaan siitä tosiasiasta, että tavalliset järjestelmänvalvojat eivät koskaan aseta BMC:itä "hohtelemaan paljaat perseensä Internetissä", ja hyvät ylläpitäjät yleensä heittävät ne erilliseen VLANiin ilman pääsyä mihinkään.

No, taas, viime aikoina amerikkalaiset ovat kehittäneet jonkinlaista kovaa vakoojamaniaa ja vainoharhaisuutta. Ja he päättivät myös riidellä Kiinan kanssa. Alkuperäisen artikkelin objektiivisuus ja puolueettomuus on siis kyseenalainen. Toisaalta en oikein ymmärrä, mistä he saavat niin kauniita tarinoita. Vuonna 2011 tabloidilehti "Xakep" kirjoitti samoista kiinalaisista kirjanmerkeistä mikrokooditasolla BMC-muistitikulla. Tuo artikkeli haisee myös vainoharhaiselta deliriumilta, mutta savua ilman tulta ei ole. Vai tapahtuuko se?

Yleisesti ottaen jaa mielipiteesi kommenteissa. On erityisen mielenkiintoista kuulla toveri. kvazimoda24 aiheesta mahdollisuudesta integroida jonkinlaisia ​​vakoilumikropiirejä tekstoliitin paksuuteen.

Monet tietojärjestelmät toimivat tällä perusteella Laitteisto ei tuo mitään uhkauksia. Tässä tilanteessa ei edes suoriteta alustavia ja säännöllisiä tarkastuksia. Kirjanmerkki- looginen/laitteisto, joka toteuttaa tietyt dokumentoimattomia toimintoja yleensä tietyn käyttäjän vahingoksi tietojärjestelmä. Kirjanmerkki voi tallentaa tai lähettää järjestelmätietoja.

Kaikilla yrityksillä ei ole tarvittavia asiantuntijoita, jotka pystyvät tunnistamaan laitteisto-ongelmia. Jotta voit aluksi luottaa siihen, ettei uusissa laitteissa ole tällaisia ​​kirjanmerkkejä, sinun on luotettava toimittajan toimittamiin todistuksiin. Voit lisätä luottamusta tällaisiin laitteisiin kutsumalla asiantuntijoita suorittamaan laitteiden täydellisen tai satunnaisen tarkastuksen.

Säännöllisten tarkastusten toteuttaminen on mahdollista eri tavoilla, kaikki riippuu tietyn tietoluokan vaatimuksista tai sen kanssa työskentelymenetelmistä. Varmistusmenetelmät voivat olla seuraavat:

  • Tiettyjen valtuutettujen rakenteiden kutsuttujen asiantuntijoiden suorittama laitteiden määräaikainen tarkastus
  • Analyysi sarjanumerot laitteet
  • Automaattinen inventointi laitteistokomponenteista yrityksen tietopiirissä
  • Laitekoteloiden eri osien tiivistys säännöllisillä eheystarkastuksilla

Kriittisillä alueilla on mahdollista toteuttaa laitteita jatkuvaan valvontaan tai erilaisten yrityksen ulkopuolelta tulevien lähetyssignaalien vaimentamiseen. Tällaisia ​​keinoja ovat: radiolähetykset, langalliset tiedonsiirtoverkot, sähköverkot, infrapuna-alue, taustaääni.

Tärkeä kriteeri turvallisuuden toteutusmekanismille tässä asiassa on käyttäjien kouluttaminen, joiden tulee epäiltäessä ilmoittaa yrityksen tietoturvapalvelulle. Tällaisia ​​menetelmiä työskennellä käyttäjien kanssa kutsutaan.