Aneks A, deo 23: A.8.25–8.31 i A.8.34 — Bezbedan razvoj softvera
Dvadeset treći i poslednji deo serije o Aneksu A. Ova grupa od osam kontrola zatvara Aneks A — i, kao što smo najavili u prethodnom delu, ovo je prilika da pokažemo kako izgleda grupa kontrola koja se za jednu firmu potpuno isključuje, a za drugu je jedna od najvažnijih u celom standardu.
Šta ove kontrole traže
A.8.25 — Bezbedan životni ciklus razvoja. Pravila za bezbedan razvoj softvera i sistema treba da budu uspostavljena i primenjena kroz ceo proces, ne dodata na kraju.
A.8.26 — Bezbednosni zahtevi aplikacije. Bezbednosni zahtevi treba da budu identifikovani, precizirani i odobreni pri razvoju ili nabavci aplikacija — pre nego što razvoj uopšte počne.
A.8.27 — Bezbedna arhitektura i inženjerski principi. Principi za izgradnju bezbednih sistema treba da budu uspostavljeni, dokumentovani i primenjeni na svaku razvojnu aktivnost.
A.8.28 — Bezbedno kodiranje. Principi bezbednog kodiranja treba da se primenjuju u razvoju softvera.
A.8.29 — Bezbednosno testiranje u razvoju i prihvatanju. Procesi bezbednosnog testiranja treba da budu definisani i primenjeni kroz ceo razvojni ciklus.
A.8.30 — Autsorsovan razvoj. Firma treba da usmerava, prati i pregleda aktivnosti vezane za razvoj softvera koji poverava spoljnim stranama.
A.8.31 — Razdvajanje razvojnog, test i produkcionog okruženja. Ova tri okruženja treba da budu razdvojena i obezbeđena.
A.8.34 — Zaštita informacionih sistema tokom audit testiranja. Testovi i druge aktivnosti provere koje uključuju procenu operativnih sistema treba da budu planirani i dogovoreni između onoga ko testira i odgovarajućeg rukovodstva.
Zašto su ove kontrole bitne — i zašto, za knjigovodstvenu agenciju, nisu
Knjigovodstvena agencija, koju smo pratili kroz veći deo ove serije, ne razvija sopstveni softver. Nema izvorni kod, nema razvojno okruženje, ne poverava razvoj spoljnim stranama. Svih osam kontrola iz ove grupe, baš kao i A.8.4 ranije u seriji, obeleženo je u njenoj Izjavi o primenljivosti kao neprimenljivo, sa istim, kratkim obrazloženjem — firma ne razvija softver, koristi gotova rešenja trećih strana.
To ne znači da je ova grupa kontrola nevažna — znači samo da nije relevantna za baš ovu firmu. Da bismo pokazali gde jeste, vratimo se poslednji put u ovoj seriji na softversku agenciju iz mini-serije primera, čija je čitava delatnost upravo ovo.
Primer iz prakse: ista grupa kontrola, druga firma
A.8.25 i A.8.26, bezbednost od prvog dana projekta: kad softverska agencija počinje rad na novom klijentskom projektu, bezbednosni zahtevi — koji podaci će aplikacija obrađivati, koji nivo zaštite je potreban — definišu se i odobravaju pre nego što se napiše prva linija koda, ne dodaju naknadno kad klijent postavi pitanje.
A.8.27 i A.8.28, principi koji oblikuju svaku odluku: timovi prate uspostavljene principe bezbedne arhitekture — princip najmanjeg privilegija ugrađen u sam dizajn aplikacije, bezbedna podrazumevana podešavanja — i bezbedno kodiranje kroz korišćenje proverenih okvira koji sami sprečavaju uobičajene ranjivosti, uz redovan pregled koda.
A.8.29, provera pre nego što klijent uopšte vidi proizvod: pre nego što se aplikacija preda klijentu, prolazi kroz bezbednosno testiranje — automatizovano skeniranje na poznate ranjivosti, kao minimalan standard za svaki projekat.
A.8.30, ista pažnja i za honorarne saradnike: setite se honorarnog developera iz teksta o klauzuli 5.1, čiji je pristup GitHub repozitorijumu jednog klijenta ostao aktivan mesec dana posle prestanka saradnje. A.8.30 je tačno kontrola koja bi trebalo da spreči takav propust — agencija sada aktivno nadgleda i pregleda rad svakog honorarnog developera kome poveri deo razvoja, ne samo interni tim.
A.8.31, razdvajanje koje bi ograničilo štetu čak i da je propust ostao neotkriven: ovo je možda najvažnija kontrola u ovoj grupi za tu konkretnu firmu. Da su razvojno, test i produkciono okruženje bila jasno razdvojena, čak i produženi pristup honorarnog developera ne bi značio automatski pristup stvarnim, produkcionim podacima klijenta — samo razvojnom i test okruženju, sa znatno manje osetljivim sadržajem. Razdvajanje okruženja ne sprečava propust u upravljanju pristupom, ali značajno ograničava koliko taj propust može da naškodi.
A.8.34, dogovor pre nego što se bilo šta testira na živom sistemu: kad agencija sprovodi bezbednosno testiranje na produkcionim sistemima klijenta, to se radi isključivo uz prethodni dogovor sa klijentom o tačnom vremenu i obimu testiranja — ne iznenada, čak i kad je namera dobra, jer nepripremljeno testiranje na živom sistemu samo po sebi može izazvati prekid rada.
Gde se dokumentuje
Za knjigovodstvenu agenciju, dovoljna je jedna rečenica u Izjavi o primenljivosti za svih osam kontrola. Za softversku agenciju, svaka kontrola zahteva sopstvenu dokumentaciju — smernice za bezbedno kodiranje, proces bezbednosnog testiranja, ugovorne zahteve za honorarne saradnike, jasno definisanu arhitekturu okruženja.
Najčešća greška
Najčešća greška, bez obzira na firmu, jeste primena iste dubine dokumentacije bez obzira na to da li je grupa kontrola stvarno relevantna — firma koja ne razvija softver, a troši nedelje pišući detaljne procedure za bezbedno kodiranje, gubi vreme koje je moglo biti utrošeno na stvarno relevantne kontrole. Za firmu poput softverske agencije, najčešća greška je suprotna — tretiranje ove grupe kao manje bitne od kontrola pristupa i mreže, iako je za nju upravo ovo srce stvarnog rizika.
Ovim se zatvara serija o Aneksu A
Dvadeset tri teksta, devedeset tri kontrole, četiri teme — od politika i uloga, preko fizičke bezbednosti, do bezbednog razvoja softvera. Kroz čitavu seriju, ista knjigovodstvena agencija pratila je nas kroz većinu kontrola, uz povremene izlete kod ostalih devet firmi iz mini-serije, kad je njihov profil rizika bolje pristajao temi.
Ako ste pratili blog od prvog teksta — „Šta je ISO 27001 i da li ga moja firma stvarno treba" — do ovog poslednjeg, prošli ste kroz čitav standard: zašto postoji, koliko realno košta, kako se sprovodi, kroz svaku klauzulu glavnog tela, i kroz svaku kontrolu Aneksa A. To je više materijala nego što ima većina plaćenih kurseva na ovu temu — i sad je na vama da ga primenite.
Comments
Post a Comment