Zabezpečené podle návrhu - Secure by design

Secure by design , in software engineering , means that software products and capabilities have been designed to be foundationally secure .

Na začátku návrhu softwaru jsou zvažovány alternativní bezpečnostní strategie, taktiky a vzorce a nejlepší jsou vybírány a vynucovány architekturou a jsou používány jako hlavní zásady pro vývojáře . Doporučuje se také používat strategické vzory návrhu, které mají příznivý vliv na zabezpečení, přestože tyto vzory návrhu nebyly původně navrženy s ohledem na zabezpečení.

Secure by Design se stále více stává hlavním vývojovým přístupem k zajištění bezpečnosti a soukromí softwarových systémů. V tomto přístupu je zvažováno zabezpečení, které je integrováno do systému v každé vrstvě, a začíná robustním návrhem architektury. Rozhodnutí o architektonickém návrhu zabezpečení vycházejí ze známých bezpečnostních strategií, taktik a vzorů definovaných jako opakovaně použitelné techniky pro dosažení konkrétních problémů s kvalitou. Taktika/vzorce zabezpečení poskytují řešení pro vynucení nezbytných požadavků na autentizaci , autorizaci, důvěrnost, integritu dat , soukromí, odpovědnost, dostupnost, bezpečnost a neodmítnutí, i když je systém napaden. Aby byla zajištěna bezpečnost softwarového systému, je nejen důležité navrhnout robustní zamýšlenou architekturu zabezpečení, ale je také nutné mapovat aktualizované bezpečnostní strategie, taktiky a vzorce vývoje softwaru, aby byla zachována bezpečnost.

Očekávejte útoky

Mělo by se předpokládat, že dojde ke škodlivým útokům na software, a je dbáno na minimalizaci dopadu. Očekávají se bezpečnostní chyby spolu s neplatným vstupem uživatele . S tím úzce souvisí praxe používání „dobrého“ softwarového designu, jako je doménový design nebo cloud nativní , jako způsob, jak zvýšit zabezpečení snížením rizika chyb při otevírání zranitelností-přestože použité principy návrhu nebyly původně koncipovány pro zabezpečení. účely.

Vyhněte se zabezpečení pomocí nejasností

Obecně platí, že dobře fungující návrhy nespoléhají na to, že jsou tajné . Utajení často snižuje počet útočníků demotivací podmnožiny ohrožené populace. Logika je taková, že pokud dojde ke zvýšení složitosti útočníka, odrazí ho zvýšená snaha útočníka kompromitovat cíl. I když tato technika znamená snížení inherentních rizik, prakticky nekonečný soubor aktérů ohrožení a technik aplikovaných v průběhu času způsobí selhání většiny metod utajení. Ačkoli to není povinné, řádné zabezpečení obvykle znamená, že každý může znát a rozumět designu, protože je bezpečný . To má tu výhodu, že mnoho lidí se dívá na počítačový kód , což zvyšuje pravděpodobnost, že jakékoli nedostatky budou nalezeny dříve (viz Linusův zákon ). Nevýhodou je, že útočníci mohou také získat kód, což jim usnadňuje nalezení zranitelností, které lze zneužít. Obecně se však věří, že výhoda otevřeného počítačového kódu převažuje nad nevýhodou.

Nejméně oprávnění

Je také důležité, aby vše fungovalo s co nejmenším počtem oprávnění (viz princip nejmenších oprávnění ). Například webový server, který běží jako administrativní uživatel („root“ nebo „admin“), může mít oprávnění odebírat soubory a uživatele. Chyba takového programu by proto mohla ohrozit celý systém, zatímco webový server, který běží v izolovaném prostředí a má pouze oprávnění pro požadované funkce sítě a souborového systému , nemůže ohrozit systém, na kterém běží, pokud kolem něj není zabezpečení samo o sobě je také vadné.

Metodiky

Secure Design by měl být zvážen ve všech bodech životního cyklu vývoje (bez ohledu na zvolenou metodiku vývoje ).

Existuje několik předem připravených metodik vývoje Secure By Design (např. Životní cyklus vývoje Microsoft Security ).

Životní cyklus vývoje zabezpečení společnosti Microsoft

Společnost Microsoft vydala metodiku a pokyny založené na klasickém spirálovém modelu .

Standardy a legislativa

Standardy a legislativa existují proto, aby napomáhaly bezpečnému návrhu řízením definice „zabezpečeného“ a poskytováním konkrétních kroků k testování a integraci zabezpečených systémů.

Několik příkladů standardů, které pokrývají nebo se dotýkají zásad Secure By Design:

  • ETSI TS 103 645, který je částečně obsažen ve vládě Spojeného království „Návrhy na regulaci kybernetické bezpečnosti inteligentních produktů pro spotřebitele“
  • Řada ISO/IEC 27000 pokrývá mnoho aspektů bezpečného návrhu.

Architektury server/klient

V architektuře server/klient nemusí být program na druhé straně autorizovaným klientem a server klienta nemusí být autorizovaným serverem. I když jsou, útok typu muž uprostřed by mohl ohrozit komunikaci.

Nejsnadnějším způsobem, jak prolomit zabezpečení systému klient/server, není přejít k bezpečnostním mechanismům, ale naopak je obejít. Útok muže uprostřed je toho jednoduchým příkladem, protože jej můžete použít ke shromažďování podrobností k zosobnění uživatele. Proto je důležité ve vašem návrhu zvážit šifrování , hašování a další bezpečnostní mechanismy, abyste zajistili, že informace shromážděné od potenciálního útočníka neumožní přístup.

Další klíčovou funkcí návrhu zabezpečení klient-server jsou osvědčené postupy kódování . Například při dodržování známé struktury návrhu softwaru, jako je klient a makléř, může pomoci při navrhování dobře postavené struktury s pevným základem. Kromě toho, má -li být software v budoucnu upravován, je ještě důležitější, aby sledoval logický základ oddělení mezi klientem a serverem. Důvodem je, že pokud přijde programátor a nemůže jasně pochopit dynamiku programu, může se stát, že přidá nebo změní něco, co může přidat bezpečnostní chybu. I u nejlepšího designu je to vždy možnost, ale čím lepší je standardizace designu, tím menší je šance, že k tomu dojde.

Viz také

Reference

externí odkazy