Enne Heatraili kirjutas üks Eesti veebipood oma raporti riiklikule CERT-ile nii, nagu enamik poode: käsitsi, pärast, eksportidest, mis tuli uuesti järjekorda panna, ja inimese mälust selle nädala kohta. See võttis päevi. Sama raport koostatakse nüüd kirjest, mida juba kirjutati, kuni intsident juhtus. See artikkel räägib sellest kirjest, ja sellest, kus ta peatub.
Omadus
Iga kaalukas sündmus lisatakse räsiahelaga logiraamatusse, mis allkirjastatakse igal ööl ja kontrollitakse võtme vastu, mida hoitakse andmebaasist väljas. Kui pood peab organiteni minema, genereeritakse tehniline toimik sellest kirjest, ja memo on mustand, mida inimene loeb, toimetab ja saadab. Minutid, mitte nädalad.
Miks see kehtib
Raport, mis võttis varem päevi
See toode tuleb poest, mitte tema kassast. Ta tuleb nädalast pärast, kui keegi peab seletama, mis juhtus, inimesele, keda seal ei olnud. See veebipood oli seda teinud: tellimuste ekspordid ühest süsteemist, makseviited teisest, ja jada, kes mida märkas, rekonstrueeritud postkastist. Päevade töö, ja toimiku nõrgimad osad olid osad, millel juhtum pöördub: järjekord, milles asjad juhtusid, ja kas midagi puudutati pärast.
Muutub koostamine. Faktid on samad faktid, ja ükski kirje ei tee nõrka juhtumit tugevaks. Sündmused salvestati juhtumise hetkel, järjekorras, ja järjekord ise on kaitstud, seega toimiku tootmine on eksport, mitte uurimine.
Mida ahel püüab, ja mida allkiri püüab
Iga kaalukas sündmus, kontrollid, mis loetsid, sildid, operaatori teod, skoorimise konfiguratsiooni muudatused, lisatakse logiraamatusse. Iga rida hoiab oma kanoniseeritud payloadi SHA-256 ja rea räsi üle oma järjekorranumbri, sündmuse tüübi, selle payloadi räsi ja eelmise rea räsi, geneesist kuuekümne nelja nulliga. Lisamised serialiseeritakse andmebaasi nõuandval lukul, seega järjekorranumbrid on pidevad ja sisestus väljaspool rakendust murrab ahela. Murre on lõksuöör.
Igaöine käsk arvutab ahela geneesist uuesti ja võrdleb iga rida tema salvestatud räsidega. Pööratud bait, kustutatud rida või sisestatud rida teatatakse esimesel järjekorranumbril, mis ei klapi, ja käsk väljub nullist erineva koodiga. See püüab muutmist, aga mitte ümberkirjutamist, sest keegi, kes saab ühe rea ümber kirjutada, saab kõik ümber kirjutada ja ahela edasi uuesti räsida millekski, mis on iseendaga kooskõlas.
Seega ankurdatakse pea igal ööl kell 00:05 UTC Ed25519 allkirjaga, ja kontroll kell 00:15 UTC kontrollib seda allkirja operaatori seadistatud avaliku võtme, mitte ankru kõrval hoitava võtme vastu. Ümberkirjutatud ahel, mis on uuesti allkirjastatud ründaja võtmega, ei lähe läbi, sest võti, mille vastu teda kontrollitakse, ei ole kohas, kuhu ründaja jõudis.
Joonis 1
Mida andmebaas keelab
Avastamine on palju väärt ja ta ei ole ennetamine, seega on kolmas kiht. Deploy'tud rakendus ühendub andmebaasi rolliga, kellel on logiraamatu, auditilogi ja ankrutabeli peal ainult INSERT ja SELECT, ning UPDATE, DELETE ja TRUNCATE on tühistatud. See kontrolliti, ühendudes selle rollina ja proovides keelatud kirjutamisi: permission denied, andmebaasist, mitte meie enda koodist. Kiht kannab kuupäeva, 2. september 2026, nii et lugeja näeb, milliseid kandeid ta katab. Enne seda kirjutatud kanded on kinnitatud ahela ja tema ankrutega.
Selle väite piir on lepingus samade sõnadega. Tühistamised seovad rolli, millega rakendus käitusel ühendub. Nad ei seo eraldi omaniku volitust, mida hostingplatvorm hoiab skeemimuudatusteks, ja see volitus hoitakse eemal igast protsessist, mis päringut teenindab. Kõige vastu, mis selle volituseni jõuab, on garantii avastamine, mitte ennetamine: räsiahel, igaöised allkirjastatud ankrud, ja kirje ahela pikkusest väljaspool andmebaasi, nii et tühjendatud logiraamat ei saa ennast esitada noorena, keda keegi pole veel ankurdanud.
Memo, ja kus ta peatub
Kui pood otsustab viia intsidendi organiteni, genereeritakse toimik kirjest: jada, mis juhtus ja millal, kaasatud tellimuste viited, sildid ja kes need millal pani, ning logiraamatu kanded ja räsiprefiksid, mis seovad narratiivi tagasi ahelaga, millest ta tuli. Ta kannab identifikaatoreid ja räsisid, mitte tooreid kontaktandmeid.
Siis ta peatub. Memo on mustand. Inimene avab ta, loeb ta, parandab, mis masin valesti sai, allkirjastab ja saadab oma nime all. Integratsiooni politseiga ei ole, ühendust CERT-iga ei ole, partnerite jaotusnimekirja ei ole, midagi kohaletoimetamise järjekorras ei ole. See ei ole poliitika saatmisest hoiduda. Mehhanismi, mis saata saaks, ei ole. Ainus automaatne teavitus, mis süsteemil on, läheb selle poe adminile, kelle tellimusele intsident kuulub.
Joonis 2
Kuidas kontrollida
Lugege turvalehe tervikluse jaotist. Ta ütleb kolm kihti kuupäevaga, mil igaüks jõusse läks, ja ta kannab seda, mida ajastatud kontroll produktsioonis raporteerib: logiraamat on terve ja kontrollitud allkirjastatud ankru vastu.
Seejärel lugege andmetöötluslepingu lõiget 5(3). Ta kannab sama kuupäeva, sama lauset, et õigused seovad rolli, millega rakendus ühendub, sama ainult avastamise kaitset enne seda kirjutatud kannetele, ja omaniku volituse piiri: platvorm hoiab volitust, mida need õigused ei seo, ja selle vastu toetub ahel avastamisele. Kahe dokumendi võrdlemine on kontroll. Nad kirjeldavad seda kontrolli sama tugevusega, klausel klausli haaval.
Õiguslik alus
Logiraamat on vastutuskohustuse tõendipool artiklis 5(2), mis küsib võimet vastavust näidata, mitte väita. Ta ei ole töötlemistoimingute register artikli 30 alusel, mis on kategooriate, saajate, säilituse ja meetmete register, ja on eraldi dokument: sündmuselogi vastab, mis juhtus, ja artikkel 30 vastab, mida me teeme. Memo valmistatakse poe juhiste alusel vastutava töötlejana ja toetab poe enda seaduslikku avalikustamist pädevale organile, näiteks artikli 6(1)(c) või (f) alusel, nagu see pood kohaldub. Heatrail OÜ ei avalikusta organitele omal algatusel, ja ei saakski: mehhanismi ei ole. Kirjed, mida hoitakse aktiivse intsidendi tõendina, toetuvad artiklile 17(3)(e), ja artikkel 11 selgitab, millal see hoie vabastatakse.
Seotud
- Kinnitus, reegel, et võrgu kuumus vajab kahte sõltumatult omatud poodi, ja operaatori teod (poe kinnitamine, sõltumatuse otsus), mis lähevad sellesse kirjesse.
- Unustamine ajakava järgi, kuidas püsiv tervikluse tõend ja üheksakümne päeva kustutusaken elavad ühes süsteemis.
- Turvalisus, jaotis 07, kihtide ja nende jõustumiskuupäevade jaoks.