Domov      Nastavenia 
RSS English Slovensky

Aktuálne
Ukážka forenznej analýzy pamäte RAM
Tlačové správy
13.08.2018
Mesačný prehľad za mesiac júl 2018
Tlačové správy
01.08.2018
Mesačný prehľad za mesiac jún 2018
Tlačové správy
03.07.2018
Zahraničné zdroje
US CERT - zraniteľnosti


ICS CERT - varovania
Meltdown and Spectre Vulnerabilities (Update H)


ICS CERT - odporúčania
Philips PageWriter TC10, TC20, TC30, TC50, and TC70 Cardiographs
16.08.2018
Nahlásené incidenty
1.1.2017 - 31.12.2017
 

Graf

Bezpečnosť pri vývoji IS

Na vytvorenie bezpečného informačného systému (IS) je potrebné myslieť na bezpečnosť už od začiatku procesu vývoja a priebežne zapracovať potrebné bezpečnostné mechanizmy. Pokúšať sa o zabezpečenie IS po nasadení alebo v neskorej fáze vývoja je takmer nemožné a to nielen z hľadiska samotného vývoja, ale aj potrebných finančných prostriedkov.

Pri návrhu bezpečnostných funkcionalít je vhodné sa riadiť prístupom „Defense-in-depth“, ktorý hovorí, že bezpečnostné opatrenia je potrebné implementovať na viacerých (najlepšie všetkých) úrovniach systému, t.j. okrem dát a aplikácie je potrebné zabezpečiť aj sieťovú prevádzku, konfiguráciu zariadení a pod. Pre zaistenie bezpečnosti pri vývoji IS existuje metodika - Secure Development Lifecycle (SDL). Jedná sa o súbor odporúčaní ako zapracovať bezpečnosť do procesu vývoja softvérového systému.

Každá vývojová spoločnosť si môže definovať vlastné pravidlá pre zaistenie bezpečného vývoja podľa svojich potrieb. Odkaz na príklad procesu používanom v spoločnosti Cisco Systems, Inc. môžete nájsť v referenciách tohto článku. Základné odporúčania podľa SDL možno rozdeliť do niekoľkých kategórií:

  • Bezpečný návrh,
  • Bezpečná implementácia,
  • Bezpečné nasadzovanie (vrátane penetračných testov).

Bezpečný návrh
Analýza rizík a hrozieb – popri štandardnej analýze je potrebné vykonať analýzu rizík a hrozieb, ktoré môžu potenciálne ohroziť bezpečnosť daného IS. Taktiež je odporúčané analyzovať profily možných útočníkov, ich motiváciu a zistené výsledky zdokumentovať.

Definovanie požiadaviek na bezpečnosť - dôležitým krokom po zistení rizík a hrozieb je definovanie bezpečnostných požiadaviek na systém. Pri tom je možné sa inšpirovať z odporúčaných bezpečnostných postupov. Požiadavky by mali byť rozumné, špecifické a ľahko merateľné (maximálny tolerovaný čas nedostupnosti služby, periodicita vykonávania záloh a iné).

Bezpečný návrh/architektúra – pre uľahčenie vývoja s ohľadom na bezpečnosť je žiaduce vytvoriť zoznam odporúčaných „dôveryhodných“ frameworkov a iných softvérových komponentov a tiež vytvoriť zoznam odporúčaní, podľa ktorých sa bude postupovať pri návrhu IS.

Kontrola návrhu – po dokončení návrhu je vhodné overiť ho z hľadiska možných miest útoku (analýza tzv. „attack surface“) a analyzovať bezpečnosť samotného návrhu voči známym rizikám. Podľa zistení je následne možné návrh upraviť a vyhnúť sa problémom v neskorších fázach vývoja.

Bezpečná implementácia
Vytvorenie odporúčaných postupov pre bezpečný vývoj – na zjednodušenie zapracovania bezpečnosti do vývoja je praktické mať k dispozícii bezpečnostné odporúčania pre jednotlivé používané technológie vo forme checklistov. Následne je vhodné kontrolovať ich používanie.

Školenie vývojárov v oblasti bezpečnosti – softvéroví vývojári nie sú bezpečnostní experti, preto je potrebné ich vzdelávať v oblasti IB a zvyšovať tak ich bezpečnostné povedomie. Tiež ich treba oboznámiť s používanými bezpečnostnými odporúčaniami, ktoré sa pri vývoji v danej spoločnosti používajú.

Kontrola zdrojového kódu – kontrola zdrojového kódu na prítomnosť bežných problémov a programátorských chýb je dôležitým prvkom bezpečného vývoja. Na tieto účely je vhodné vytvoriť checklisty, ktoré uľahčia proces kontroly. Tiež existujú rôzne automatizované softvérové nástroje na kontrolu zdrojového kódu.

Bezpečné nasadzovanie
Bezpečná základná konfigurácia – v produkčnom systéme sa nemôžu nachádzať žiadne prednastavené („defaultné“) mená/heslá, ktoré je možné jednoducho uhádnuť. Základná konfigurácia pri nasadzovaní by tiež mala spĺňať aspoň minimálne bezpečnostné požiadavky.

Vytvorenie bezpečnostných testovacích scenárov – vo fáze testovania je okrem testov štandardnej funkcionality potrebné otestovať funkcionalitu bezpečnostných prvkov. Za týmto účelom je potrebné vytvoriť testovacie scenáre.

Zabezpečenie prostredia – operačný systém zariadenia, na ktorom systém beží, je potrebné zabezpečiť, aby sa zamedzilo prevzatiu kontroly v prípade, že by bol IS kompromitovaný útočníkom.

Penetračné testy – pred ostrým nasadením systému je vhodné vykonanie penetračných testov na overenie jeho bezpečnosti. Existuje viacero druhov takýchto testov, pričom je spravidla možné dohodnúť si rozsah a podrobnosti testov podľa potreby.

Manažment bezpečnostných incidentov – po nasadení IS do prevádzky je potrebné určiť zodpovedné osoby, ktoré budú riešiť prípadné vzniknuté bezpečnostné incidenty.

Odporúčania pri návrhu a implementácii webových IS

  • Neveriť vstupu od klienta  – je možné ho jednoducho modifikovať, preto je potrebné všetky vstupy overovať na serveri (napr. „hidden“ polia vo formulároch, cookies, pole Referer v HTTP hlavičke, URL parametre ...).
  • V prípade nutnosti vymieňať citlivé aplikačné údaje s klientom s použitím šifrovania a digitálneho podpisovania.
  • Zaistiť bezpečnosť prenosu pri aplikáciách poskytujúcich funkcionalitu prihlasovania sa na zabránenie odchytenia mena/hesla (HTTPS, bezpečné autentifikačné metódy).
  • Korektne ukončovať relácie po odhlásení klienta (napr. vymazanie session cookie).
  • Nezobrazovať klientovi chybové hlásenia aplikácie – často obsahujú citlivé informácie o systéme a aplikácii (napr. verzie použitých technológií a pod.).
  • Pri implementácii funkcionality zmeny hesla a strateného hesla dbať na dostatočné overenie identity klienta.
  • Ochrana voči útokom brute-force (zamknutie účtu na určitý čas ...).
  • Neobmedzovať zložitosť hesiel v aplikácii, správne kontrolovať (validovať) prihlasovacie údaje (neignorovať časti hesiel a pod.), neukladať heslá v otvorenej forme.
  • V prípade použitia databázového systému použiť mechanizmy na obranu voči útokom SQL Injection (pozri odporúčania OWASP).
  • Implementovať bezpečnostné mechanizmy voči útokom zo zoznamu OWASP Top Ten 2013, ktorý bol zostavený na základe výskytu zraniteľností vo webových IS.

Referencie
https://www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet
http://www.cisco.com/web/about/security/cspo/csdl/index.html
https://www.nsa.gov/ia/_files/support/defenseindepth.pdf
https://www.owasp.org/index.php/Top_10_2013-Top_10
https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet