Auditovateľnosť by sa nemala pridávať neskôr
Priečinok, ktorý prišiel neskoro
Rokovacia miestnosť mala obvyklé znaky inštitucionálnej vážnosti: sklenené steny, kávovar, ktorý sa statočne snažil tváriť ako tlaková nádoba, a priečinok s názvom evidence pack na zdieľanej obrazovke. Systém, ktorý bol predmetom kontroly, fungoval už deväť mesiacov. Smeroval interné prípady, odporúčal ďalšie kroky, niektoré postúpil špecialistom a iné potichu zamietol, pretože tak určili nastavené prahy. Nikto v miestnosti ho pri obstarávaní neoznačil za vysoko rizikový systém. Bol to nástroj produktivity, čo je označenie, ktoré organizácie používajú pre rozhodovaciu infraštruktúru, kým sa niekto nespýta, koho sa to dotklo.
Audítor položil malú otázku. Pre tento prípad, ktorá verzia politiky bola aktívna, keď bolo odporúčanie vytvorené. Produktový vlastník sa pozrel na architekta. Architekt sa pozrel na dátového špecialistu. Dátový špecialista otvoril dashboard, potom export logov, potom tiket. Vývojár si spomenul, že verzie politík boli počas prvého vydania uložené v environmentálnej premennej a po januárovej migrácii v databázovej tabuľke. Niekto povedal, že zmena bola pravdepodobne neškodná. Toto nie je veta, pri ktorej by sa audítor uvoľnil.
Nič nebolo postavené so zlým úmyslom. Tím mal logy, monitorovanie, riadenie prístupu, zálohy, tikety incidentov a internú wiki s dostatkom stránok na to, aby zničili tlačiareň. Ale dôkazy neboli vlastnosťou systému. Boli to rekonštrukčné cvičenie vykonané dodatočne ľuďmi, ktorí si nasadenie ešte pamätali. To nie je auditovateľnosť. To je orálna história s časovými pečiatkami.
Auditovateľnosť by sa nemala pridávať neskôr, pretože neskôr je presne ten moment, keď sa pamäť stala politickou. Ľudia sú nervózni. Systém sa zmenil. Dodávatelia sa vystriedali. Dashboardy boli prerobené. Jediný inžinier, ktorý rozumel pôvodnému importu dát, má teraz iný pracovný názov a o tomto období hovorí s pokojom človeka, ktorý prežil haváriu vodovodu. Ak záznam nebol vytvorený v čase, keď sa práca udiala, neskorší príbeh bude vždy obsahovať viac interpretácie ako dôkazov.
Auditovateľnosť je vlastnosť návrhu
Mnohé tímy považujú auditovateľnosť za dokumentáciu. Predstavujú si ju ako súbor diagramov, kontrol, schválení, tlačidiel na export a vyhlásení o politikách, ktoré sa dajú zostaviť, keď sa systém blíži k vydaniu. Tento pohľad je lákavý, pretože dokumentácia sa zdá byť lacnejšia ako návrh. Umožňuje projektu pokračovať v pohybe, zatiaľ čo governance čaká zdvorilo na chodbe s klipboardom. Účet príde neskôr, aj s úrokmi.
Auditovateľnosť je bližšie k trvácnosti ako k dokumentácii. Trvácny systém sa nestane trvácnym tým, že niekto napíše správu, že strecha by pravdepodobne prežila dážď. Strecha buď vodu odvádza, alebo nie. Auditovateľný systém buď zachováva fakty potrebné na kontrolu svojho správania, alebo nie. Fakty môžu byť nudné: verzia, zdroj, časová pečiatka, aktér, pravidlo, prah, výnimka, schválenie, identifikátor modelu, šablóna výzvy, rozsah údajov, stav uchovávania. Nuda je v poriadku. Most tiež držia nudné časti. Ozdobné lampy nie sú nosnou cestou.
Ťažká časť je, že audítorské fakty sa musia zachytávať na rovnakej úrovni, na akej sa rozhoduje. Ak pracovný postup používa pravidlo politiky, verzia pravidla patrí do udalosti. Ak je výstup modelu prijatý do spisu prípadu, verzia modelu, spoľahlivosť, rozsah zdroja a pravidlo prijatia patria do záznamu. Ak človek prepíše odporúčanie, dôvod prepísania patrí vedľa akcie, nie do poznámky zo stretnutia o dva týždne neskôr. Systém by nemal vyžadovať historika, aby odvodzoval, čo stroj už vedel počas behu.
Preto auditovateľnosť nie je to isté ako logovanie. Logy sú užitočné, ale ich prvá lojalita je zvyčajne prevádzka. Vysvetľujú zlyhania, časy, opakovania, výnimky a výkon. Auditovateľnosť kladie iný súbor otázok: aká autorita bola použitá, aké dôkazy sa zvažovali, aký stav sa zmenil, kto alebo čo to spôsobilo, a dá sa postupnosť skontrolovať bez dôvery v aktuálnu službu. Logy môžu túto prácu podporovať. Málokedy ju nesú samy.
Prvé rozhodnutie je, čo sa počíta
Skôr ako môže byť systém auditovateľný, organizácia musí rozhodnúť, čo sa počíta ako auditovateľná udalosť. Toto znie administratívne, ale tu začína skutočná architektúra. Ak je každé kliknutie udalosťou, záznam sa stane skládkou. Ak sú udalosťami iba konečné výsledky, záznam sa stane kúzelníckym trikom. Užitočný stred je zachytiť momenty, kde si autorita, dôkazy alebo stav menia ruky.
Príjem prípadu je taký moment. Vstup zdrojového dokumentu do rozsahu je ďalší. Odporúčanie modelu je jedným, ak môže ovplyvniť prácu. Spustenie politickej brány je jedným. Ľudské schválenie je jedným. Odmietnutie, eskalácia, výnimka, oprava údajov, zmena uchovávania, žiadosť o vymazanie a odvolanie sú všetko kandidáti. Nejde o zachovanie každého dychu systému. Ide o zachovanie spojov, kde by sa neskorší kontrolór oprávnene spýtal: prečo sa systém pohol odtiaľto sem.
Tento výber musí byť explicitný. Inak tím počas kontroly zistí, že dôležitá udalosť žila v tieni medzi dvoma komponentmi. Frontend vie, že používateľ videl varovanie. Backend vie, že prípad zmenil stav. Služba modelu vie, že vrátila skóre. Nástroj pracovného postupu vie, že bola vybraná vetva. Žiadny jednotlivý záznam nehovorí, že varovanie, skóre, pravidlo a vetva patrili k rovnakému rozhodnutiu. Každý má kúsok vázy. Stôl je stále mokrý.
Keď je súbor udalostí pomenovaný, inžinieri môžu navrhnúť kontrakty okolo neho. Každá udalosť môže mať povinné polia. Každé pole môže mať vlastníctvo. Každá zmena schémy môže byť verzovaná. Každé pravidlo uchovávania môže byť viazané na právnu a prevádzkovú potrebu. Toto nie je papierovanie sediace vedľa systému. Je to súčasť hranice systému. Záznam sa stáva produktom pracovného postupu, nie ospravedlnením napísaným pracovným postupom po obede.
Čas nie je dekorácia
Auditná práca sa z dobrého dôvodu posadnuto zameriava na čas. Rozhodnutie prijaté pred zmenou politiky nie je to isté ako rozhodnutie prijaté po nej. Výstup modelu vytvorený pred opravou údajov nie je to istý ako výstup vytvorený po nej. Prípad eskalovaný po termíne sa líši od prípadu eskalovaného pred termínom. Čas nie sú metadáta roztrúsené po udalostiach. Je súčasťou významu udalosti.
Distribuované systémy robia čas nepríjemným. Hodiny sa rozchádzajú. Fronty menia poradie. Opakovania sa dejú. Pracovníci spracúvajú správy neskoro. Dávky sa načítavajú cez noc úlohami, ktoré boli v roku 2021 pomenované ako dočasné a dnes sú kultúrne trvalé. Ak auditný dizajn predpokladá jednu čistú časovú os, prvá udalosť ho to naučí. Táto lekcia sa zvyčajne odohrá v tabuľke, čo je drahá učebňa.
Auditovateľný dizajn rozlišuje čas udalosti, čas spracovania, čas účinnosti a čas kontroly tam, kde rozdiel záleží. Čas udalosti hovorí, kedy sa vec stala v obchodnom procese. Čas spracovania hovorí, kedy ju komponent spracoval. Čas účinnosti hovorí, kedy sa pravidlo alebo stav stal platným. Čas kontroly hovorí, kedy to niekto neskôr skontroloval alebo opravil. Tieto rozdiely môžu pôsobiť pedantsky, kým jeden prípad neprekročí polnoc, jedno pravidlo sa nezmení o 09:00 a jeden front sa nevyprázdňuje pomaly, pretože niekto zmenil veľkosť fondu pracovníkov s istotou a bez dôkazov.
Rovnaká starostlivosť sa týka identity. Aktérom môže byť osoba, služba, agent, plánovaná úloha, delegovaný používateľ alebo externý systém. Systém by mal povedať, kto to je. Nemal by sa skrývať za administrátorom, pretože tam žije integračný účet. Keď je autorita delegovaná, delegovanie by malo byť viditeľné. Keď služba koná automaticky, vlastniaca služba a pravidlo by mali byť viditeľné. Auditovateľnosť vyžaduje pomenovanú zodpovednosť, aj keď meno nie je ľudská bytosť.
Rekonštrukcia nie je prehratie
Keď tímy pridávajú auditovateľnosť neskoro, často sa uspokoja s rekonštrukciou. Zhromažďujú denníky, snímky databáz, tikety, chatové správy a poznámky k vydaniam. Vytvárajú vierohodnú časovú os. Niekedy je časová os správna. Niekedy je to veľmi uprataná fikcia s úprimnými autormi. Problém nie je v tom, že ľudia klamú. Problém je v tom, že rekonštrukcia žiada ľudí, aby vyplnili medzery pod tlakom, a inštitúcie sú veľmi dobré v tom, aby medzery vyzerali zámerne, keď sa začne porada vyššieho vedenia.
Replay je iný štandard. Replay znamená, že systém si uchoval dostatok štruktúrovanej histórie na to, aby mohol sekvenciu prejsť znova. Neznamená to, že treba znova zavolať pôvodný model alebo že sa dá oživiť každá externá závislosť. Znamená to, že záznam môže ukázať, aký vstup bol prijatý, ktorá verzia pravidiel sa použila, aký výstup vznikol, aká akcia sa vykonala a aký stav z toho vyplynul. Recenzent by mal byť schopný preskúmať reťazec bez toho, aby sa musel spoliehať na to, že súčasná aplikácia rozpráva lichotivý príbeh o svojom mladšom ja.
Replay mení správanie v inžinierstve. Ak tím vie, že rozhodnutia sa môžu prehrávať znova, je ťažšie skryť politiku v cestách kódu s názvami ako helper2. Je ťažšie nechať prahy plynúť bez zaznamenania toho, kto ich zmenil. Je ťažšie zaobchádzať so šablónami promptov ako s miestnymi remeselnými predmetmi na notebooku. Replay žiada, aby každá závažná akcia niesla svoj vlastný kontext. Toto je nepríjemné tak, ako sú nepríjemné bezpečnostné pásy: väčšinou pred nehodou.
Replay tiež umožňuje, aby sa správa stala rutinou. Namiesto čakania na incident môžu tímy vzorkovať prípady, skúmať reťazce, porovnávať výsledky naprieč verziami politík a odhaľovať chýbajúce záznamy. Auditná stopa sa stáva niečím, čo organizácia používa, nie niečím, čo vytvára len vtedy, keď je zahnaná do kúta. Tento rozdiel sa počíta. Kontroly, ktoré sa vykonávajú len počas strachu, majú tendenciu byť dekoratívne.
Cena jeho dodatočného pridania
Neskorá auditovateľnosť má veľmi špecifický zápach. Vonia novými tabuľkami s názvami ako audit_log_final. Vonia dátovým exportom, ktorý má väčšinu stĺpcov, ale nie tie, ktoré súvisia s otázkou. Vonia konzultantom, ktorý sa pýta, či existuje zdroj pravdy, a dostane prehliadku piatich systémov. Vonia predovšetkým spätným inžinierstvom zámeru z vedľajších účinkov.
Priame náklady sú inžiniersky čas. Tímy musia identifikovať, kde sa rozhodnutia udiali, pridať zachytávanie udalostí, doplniť historické záznamy, opraviť medzery, zdokumentovať predpoklady a vytvoriť exportné rozhrania. Táto práca často prichádza, keď systém už nesie používateľov, incidenty, požiadavky na funkcie a očakávania. Nepriame náklady sú horšie: dôvera klesá. Ak organizácia nedokáže odpovedať na základné otázky o svojom vlastnom systéme, každá neskoršia odpoveď sa stretáva s podozrením, dokonca aj tie správne.
Existuje aj dizajnová cena. Keď sa systém vybuduje bez auditovateľnosti, jeho hranice nemusia zodpovedať potrebám dôkazov. Rozhodnutie môže byť rozdelené medzi komponenty. Stav sa môže prepísať namiesto toho, aby sa pripájal. Dôvody sa môžu vypočítať na zobrazenie, ale neukladať. Vstupy modelu sa môžu transformovať a zahodiť. Ľudské zásahy môžu žiť v komentároch. Dodatočné zavádzanie auditovateľnosti potom nie je ako pridanie okna, ale skôr zistenie, že stena je nosná.
Cena nie je len technická. Neskorá auditovateľnosť vytvára politické spory o tom, čo sa naozaj stalo. Ľudia bránia svoje tímy. Dodávatelia bránia svoje rozhrania. Manažéri bránia rozhodnutia o spustení. Každý sa stáva amatérskym filozofom kauzality. Je to pochopiteľné a väčšinou zbytočné. Dobrý záznam znižuje potrebu pravdy založenej na osobnostiach. Umožňuje inštitúcii diskutovať o politike a zlepšovaní namiesto sporov o tom, či minulosť existuje.
Dobré záznamy nie sú divadlo dohľadu
Existuje oprávnený strach, že auditovateľnosť sa stane dohľadom. Niektoré organizácie počujú zaznamenávajte všetko a správajú sa, akoby každé ľudské zaváhanie malo dostať časovú pečiatku. To nie je auditovateľnosť. To je inštitucionálna úzkosť s pridaným úložiskom. Dobrý dizajn auditu je selektívny, primeraný a viazaný na závažné zmeny. Zaznamenáva oprávnenie a stav, nie súkromný šum.
Pre zamestnancov je tento rozdiel dôležitý. Operátor, ktorý schváli výnimku, by mal očakávať, že schválenie bude zaznamenané. Nemal by očakávať, že každý pohyb kurzora sa stane súčasťou trvalej morálnej hry. Špecialista, ktorý prepíše odporúčanie modelu, by mal zanechať kód dôvodu a poznámku, keď rozhodnutie ovplyvní prípad. Nemal by byť trestaný za nesúhlas s automatizáciou, ktorá bola aj tak neistá. Auditovateľnosť by mala zviditeľniť profesionálny úsudok, nie urobiť z profesionálov bojazlivých ľudí.
Pre občanov, zákazníkov, pacientov alebo študentov by auditovateľnosť mala podporovať práva. Mala by umožniť vysvetliť rozhodnutie, opraviť nesprávne údaje, napadnúť výsledok, dokázať vymazanie alebo ukázať, že zdroj nebol použitý. Záznam, ktorý chráni len inštitúciu, je neúplný. Auditná stopa by nemala byť jednostranné zrkadlo. Ak systém ovplyvňuje ľudí, záznam by mal pomáhať odpovedať aj na ich oprávnené otázky.
Tu sa stretáva minimalizácia údajov s auditovateľnosťou. Odpoveďou nie je uchovávať všetko navždy. Odpoveďou je uchovávať správne fakty po správne obdobie, s jasným účelom, pravidlami prístupu a logikou vymazania alebo uchovávania. Usporiadaný, dobre štruktúrovaný záznam je často úctivejší a užitočnejší ako obrovská kopa zachyteného výfuku. Kopa pôsobí bezpečne, kým sa niekto nespýta, čo je v nej. Potom sa stane zodpovednosťou s vyhľadávaním.
Register rizík by mal komunikovať so schémou udalostí
Registre rizík často žijú v riadiacich dokumentoch, zatiaľ čo schémy udalostí žijú v inžinierskych repozitároch. Toto oddelenie je pohodlné a nebezpečné. Register rizík hovorí, že existuje riziko neoprávnenej eskalácie. Schéma udalostí by preto mala zaznamenávať, kto eskaloval, na základe akého oprávnenia, z akého stavu, do akého stavu a či bola eskalácia automatická alebo manuálna. Ak schéma nezachytáva tieto fakty, kontrola je len aspiratívna. Aspirácie sú lacnejšie ako kontroly, čo vysvetľuje ich popularitu.
To isté platí pre riziko modelu. Ak register hovorí, že odporúčania s nízkou spoľahlivosťou sa musia preskúmať, systém by mal zaznamenávať spoľahlivosť, prah, požiadavku na preskúmanie, recenzenta, výsledok a dôvod uvoľnenia alebo odmietnutia. Ak register hovorí, že rozsah zdrojov je dôležitý, udalosti by mali zaznamenávať rozsah zdrojov. Ak je uchovávanie rizikom, udalosti by mali zaznamenávať zmeny stavu uchovávania. Register rizík by nemal byť prózou vznášajúcou sa nad softvérom. Mal by byť súborom tvrdení, ktoré môže runtime pomôcť overiť.
To neznamená, že sa každá požiadavka na riadenie okamžite stane kódom. Niektoré kontroly sú ľudské, zmluvné alebo organizačné. Ale aj ľudské kontroly potrebujú dôkazy. Manuálne preskúmanie môže stále vytvoriť záznam. Zmluvná povinnosť môže stále zodpovedať požadovanému potvrdeniu. Proces dodávateľa môže byť stále reprezentovaný prijatou udalosťou, podpísanou správou alebo stavom chýbajúceho dôkazu. Ide o to prepojiť jazyk rizika s jazykom dôkazov skôr, než systém začne vytvárať dôsledky.
Tichým prínosom je lepšia konverzácia. Inžinieri prestanú vnímať riadenie ako neskoré napomínanie. Tímy riadenia prestanú vnímať inžinierstvo ako festival okrajových prípadov. Obaja sa môžu pozrieť na rovnakú schému udalostí a opýtať sa, či nesie fakty potrebné na riadenie rizika. Toto je menej efektné ako workshop o stratégii umelej inteligencie. Je tiež menej pravdepodobné, že vytvorí PDF, ktoré nikto nedokáže uviesť do praxe.
Auditovateľnosť mení konverzáciu o vývoji
Keď je auditovateľnosť prítomná od začiatku, preskúmania návrhov sú konkrétnejšie. Tím sa nepýta len, či funkcia funguje. Pýta sa, aký záznam funkcia zanecháva. Pýta sa, kto môže záznam preskúmať, ako dlho žije, čo možno opraviť, čo sa nikdy nesmie prepísať a na ktorú budúcu otázku by mal vedieť odpovedať. Tieto otázky zlepšujú funkciu, pretože odhaľujú skrytý stav a nejasnú právomoc.
Mení sa aj obstarávanie. Namiesto otázky, či dodávatelia podporujú audítorské denníky, na ktorú takmer každý dokáže veselo odpovedať áno, môže organizácia žiadať konkrétne schopnosti v oblasti dôkazov. Dajú sa exportovať verzie politík s každým rozhodnutím. Dajú sa zahrnúť identifikátory modelov a rozsahy zdrojov. Dajú sa ľudské zásahy odlíšiť od automatizovaných akcií. Dajú sa záznamy uchovávať, mazať, podpisovať alebo prehrávať podľa našich pravidiel. Môžeme preskúmať stopu bez toho, aby sme platili za hrdinský profesionálny servis. Posledná položka je často miestom, kde sa miestnosť stáva vzdelávacou.
Menia sa aj operácie. Reakcia na incidenty je menej špekulatívna. Tím dokáže identifikovať dotknuté prípady, porovnať ich so známymi verziami politík, nájsť chýbajúce záznamy a ukázať cestu od signálu k akcii. Práca na dodržiavaní predpisov sa stáva menej sezónnou. Zlepšovanie produktu je úprimnejšie, pretože tím vidí nielen to, čo systém urobil, ale aj za akých podmienok to urobil. Auditovateľnosť nie je brzdou dodávky. Je jednou z vecí, ktoré bránia tomu, aby sa dodávka stala budúcim vykopávkami.
Nič z tohto nerobí systém dokonalým. Auditovateľný systém môže stále robiť zlé rozhodnutia. Môže stále zakódovať zlú politiku, používať slabé dáta alebo byť prevádzkovaný ľuďmi, ktorí majú veľmi ľudský utorok. Auditovateľnosť nezaručuje múdrosť. Zaručuje, že inštitúcia má lepšiu šancu vidieť, čo sa stalo, poučiť sa z toho a dokázať, že si odpoveď jednoducho nevymyslela dodatočne.
Ponaučenie
Ústrednou chybou je veriť, že auditovateľnosť patrí na koniec, pretože audity sa robia na konci. Nie je to tak. Audity prichádzajú po dôsledkoch, ale auditovateľnosť musí existovať pred dôsledkami. Záznam sa musí narodiť spolu s činom. Udalosť musí niesť svoj kontext, kým je kontext ešte pravdivý. Systém musí zachovať rozdiel medzi faktom, odvodením, politikou, prepísaním a opravou.
Toto nie je výzva na ťažkopádne procesy okolo každého malého nástroja. Je to výzva na primeranosť. Čím viac systém mení práva, prístup, peniaze, bezpečnosť, oprávnenosť, pracovné zaťaženie alebo inštitucionálnu pamäť, tým viac musí zanechávať štruktúrované dôkazy. Začnite s hranicami, ktoré majú dôsledky. Pomenujte udalosti. Verzujte pravidlá. Zachovajte čas a identitu. Robte opravy aditívne. Testujte prehrávanie skôr, než do miestnosti vstúpi strach.
Na tejto disciplíne je niečo takmer komické. Budúcnosť dôveryhodnej automatizácie závisí menej od ohromujúcej inteligencie a viac od zapamätania si, ktoré pravidlo sa spustilo v daždivú februárovú stredu. Ale vážne inštitúcie sú postavené na takomto druhu pamäti. Nedôverujú systémom preto, že systémy znejú sebavedomo. Dôverujú systémom preto, že systémy sa dajú preskúmať, keď sebavedomie už nestačí.
Takže pridávajte dôkazy, kým je práca ešte obyčajná. Pred oslavou spustenia, pred incidentom, pred migráciou, predtým, než tím zabudne, prečo bolo to pole voliteľné. Neskôr príde. Neskôr prichádza vždy a nesie priečinok s názvom balík dôkazov a otázku, ktorá si zaslúži lepšiu odpoveď ako pravdepodobne.