Pređi na sadržaj

Bezbednost je funkcionalnost, a ne tiket

Strahinja Polovina · Bezbednost8 min čitanja

Uđite u skoro svaku softversku firmu i pitajte gde živi njena bezbednost. Odgovor retko bude osoba sa jasnim mandatom. Obično je to tabela sa nalazima sa poslednjeg pen-testa, red tiketa koji neko polako rešava i polje za usklađenost koje mora da bude šekirano pre lansiranja. Ništa od toga nije pogrešno, u užem smislu - samo nije strategija bezbednosti. To je gomila stvari koje su se desile, a sada se otplaćuju sa zakašnjenjem.

Razlika je važna zato što model sa tiketima ima plafon. Ume samo da reaguje na ono što je već pronađeno i tretira bezbednost kao mesto troška čiji je jedini posao da naknadno zatvara rupe. Funkcionalnost je, nasuprot tome, nešto što projektujete, imenujete, definišete, gradite i - ključno - merite. Do te druge vrste se ne stiže preko tiketa.

Zašto model sa tiketima otkazuje sa zakašnjenjem

Zaliha nalaza iz audita deluje utešno jer stvara aktivnost: tiketovi se prijavljuju, dodeljuju, zatvaraju. Ali ta aktivnost gleda unazad. Čisti ono što je poslednji audit slučajno primetio, što nije isto što i znati do čega bi odlučan napadač stvarno mogao da dopre. Lista nalaza govori o prošlosti. Model pretnji govori o sadašnjosti - i o budućnosti koja je bitna, onoj u kojoj se vaš proizvod menja.

Gore od toga, model sa tiketima nema prirodnog vlasnika osim onoga ko trenutno drži miša kad stigne sledeći audit. Bezbednost postaje stvar koja pripada svima, što u praksi znači da ne pripada nikome. Tim objavi izmenu koja tiho proširi neko pravilo pristupa, i niko ne primeti sve do sledećeg kvartalnog skeniranja. Nalaz se evidentira, krug se ponavlja i sistem svaki put malo više sklizne.

Odgovornost živi u vlasniku, ne u redu tiketa

Prvi korak ka tome da bezbednost postane funkcionalnost jeste imenovani vlasnik sa mandatom koji preživljava objavu verzije. Ne bezbednosno odeljenje koje proverava izdaleka - nego osoba ili tim u čijem opisu posla stoji "secure by design" i koji sedi za stolom kad se odlučuju arhitektura i obim, a ne samo kad se prekorači rok. Kad developer ima pitanje o odluci za kontrolu pristupa, postoji jedna nedvosmislena osoba kojoj se obraća, i ta osoba ima ovlašćenje da kaže ne.

Vlasništvo je razlika između kontrolne liste koja se konsultuje i kontrolne liste koja se okrivljuje. Na papiru obe izgledaju isto. Razlika se pokaže prvi put kada neko pod pritiskom mora da donese procenu, a odgovor na pitanje "ko odlučuje?" jeste jedna osoba, a ne sastanak.

Pođite od modela pretnji, ne od liste za usklađenost

Liste za usklađenost su plafoni prerušeni u podove. One govore šta auditor minimum želi da vidi, a odlučnom napadaču je za vašeg auditora stalo koliko i toboganu. Ono što stvarno predviđa koliku štetu napadač može da napravi jeste model pretnji: pisani prikaz onoga što bi napadač hteo od vašeg sistema, puteva kojima može do toga da dođe i koji od tih puteva bi vas najviše pogodio.

Model nije dokument koji jednom arhivirate. To je živi artefakt koji se ažurira kad god se sistem promeni na način koji menja površinu napada - novi tip podataka, nova integracija, nova uloga. Ako se put promeni, menjaju se i kontrole koje ga štite. Lista odgovara na pitanje "šta smo dužni da pokažemo?" Model pretnji odgovara na pitanje koje vas zaista drži budnima noću: "kako ovo najgore može da otkaže i da li smo odlučili da je taj rizik prihvatljiv?"

Usklađenost vam kaže šta će auditor proveriti. Model pretnji vam kaže šta će napadač pokušati. Samo jedno od toga vas štiti.

Merite kontrole, ne polje u listi

Kontrola koju ne možete da izmerite jeste polje u listi. "API zahteva autentifikaciju" zvuči kao tvrdnja, a ponaša se kao nada. Merena bezbednost izgleda drugačije: koliko ima izloženih akreditiva u kodu i da li ta brojka opada? Koliko dugo treba da se primeti da je pravilo pristupa prošireno bez odobrenja, i može li se ta brojka spustiti sa meseci na minute? Koliki procenat tajni se rotira po rasporedu, i koliko je stara najdugovečnija izuzetak?

Biranje metrika i samo je deo posla projektovanja. Bezbednosna funkcionalnost se meri kao i svaka druga: složite se oko ishoda, instrumentišete ga i gledate liniju kretanja kroz verzije umesto binarnog prošao/pao jednog dana. Kad se bezbednost meri, postaje nešto čime možete da upravljate, za šta možete da budžetirate i što možete da poboljšavate - što je tačno ono što funkcionalnost jeste, i što tiket nije.

Naplaćujte bezbednost kao funkcionalnost, ne kao taksu

Timovi koji bezbednost tretiraju kao taksu guraju je u poslednjih pet odsto sprinta, baš kad je pritisak da se objavi najveći, što garantuje da dobije najmanje promišljenog posla. Timovi koji je tretiraju kao funkcionalnost definišu je isto kao i svaku drugu sposobnost: eksplicitno vreme, sopstvenog vlasnika i tačku pregleda na kojoj se njena delotvornost preispituje, umesto da se uzima zdravo za gotovo. Razlika nije u trudu - nego u trenutku u ciklusu kad taj trud nastaje.

Ovo je i odluka o ceni. Partner koji bezbednost ugradi uzgred nema motiv da je učini merljivom, jer njena cena je sakrivena u paušalu, a kvalitet se nikad ne proverava. Partner koji bezbednost tretira kao posebnu radnu celinu daje vam dve stvari koje model sa tiketima nikad ne pruža: vidljivu stavku za koju ga možete držati odgovornim i način da, dok posao traje - a ne tek posle incidenta - znate da li dobijate ono za šta plaćate.

Pitanja za sledećeg dobavljača

Ko u vašem timu vodi bezbednost i da li je ta osoba u prostoriji kad se dogovara obim - ili tek kad nešto pukne? Kako izgleda vaš trenutni model pretnji i kada je poslednji put ažuriran? Prođite sa mnom kroz jednu bezbednosnu kontrolu koju merite kroz verzije i šta pokazuje linija kretanja. Kad zatražim bezbednosni audit, ko snosi posledice nalaza - vi ili ja? Ako su odgovori uopšteni, uopštena je i bezbednost, a tiketovi će biti vaši.

Bezbednost kao funkcionalnost način je na koji softver ostaje nešto što posedujete, umesto nečega za šta samo odgovarate. Pošteno računato, ne košta više - trud se ulaže ranije i vidljivo, tamo gde se može meriti i usmeravati, umesto kasnije i nevidljivo, tamo gde se samo može platiti. Premija koju plaćate nije za više bezbednosti. Ona je za to da u svakom trenutku tačno znate koliko ste bezbedni.

Želite bezbednost koja se projektuje, a ne krpi?

Pitajte kako izgleda model pretnji za vaš sistem - i kako ćemo dokazati da kontrole rade.