Zabezpečení vývoje softwaru - Software development security
Část série na |
Informační bezpečnost |
---|
Související kategorie zabezpečení |
Hrozby |
Obrana |
Bezpečnostní jako součást proces vývoje softwaru, je neustálý proces zahrnující lidi a postupy a zajišťuje důvěrnost, integritu a dostupnost aplikací. Zabezpečený software je výsledkem procesů vývoje softwaru zaměřených na zabezpečení, kde je integrováno zabezpečení, a proto je software vyvíjen s ohledem na zabezpečení.[1]
Zabezpečení je nejúčinnější, pokud je plánováno a spravováno v každé fázi životní cyklus vývoje softwaru (SDLC), zejména v kritických aplikacích nebo v těch, které zpracovávají citlivé informace.
Řešení vývoj softwaru bezpečnost není jen technologie.
Výzvy pro vývoj softwaru
Tak jako technologie zálohy, aplikační prostředí složitější a zabezpečení vývoje aplikací se stává náročnějším. Aplikace, systémy a sítě jsou neustále pod různými bezpečnostními útoky, jako jsou Škodlivý kód nebo odmítnutí služby. Některé výzvy z zabezpečení vývoje aplikací hledisko zahrnuje viry, trojské koně, logické bomby, červy, agenty a applety.[2]
Aplikace mohou obsahovat chyby zabezpečení které může zavést softwaroví inženýři buď úmyslně, nebo nedbale.
Software, životní prostředí a hardware řízení jsou vyžadovány, i když nemohou zabránit problémům způsobeným špatnou programovací praxí. Používání kontrol limitů a posloupností k ověření vstupu uživatelů zlepší kvalitu dat. I když programátoři mohou postupovat podle osvědčených postupů, aplikace může stále selhat kvůli nepředvídatelným podmínkám, a proto by měla neočekávaná selhání úspěšně zpracovat tak, že nejprve zaznamená všechny informace, které dokáže zachytit v rámci přípravy na audit. Jak se zvyšuje bezpečnost, rostou i relativní náklady a administrativní režie.
Aplikace se obvykle vyvíjejí na vysoké úrovni programovací jazyky které samy o sobě mohou mít bezpečnostní důsledky. Mezi hlavní činnosti nezbytné pro proces vývoje softwaru pro výrobu bezpečných aplikací a systémů patří: koncepční definice, funkční požadavky, specifikace ovládání, kontrola designu, kontrola kódu a procházení, kontrola testů systému a správa údržby a změn.
Vytváření zabezpečeného softwaru není pouze odpovědností a softwarový inženýr ale také odpovědnost zúčastněných stran, mezi něž patří: management, projektoví manažeři, obchodní analytici, manažeři zabezpečování kvality, techničtí architekti, bezpečnostní specialisté, vlastníci aplikací a vývojáři.
Základní principy
Existuje celá řada základních hlavní zásady zabezpečení softwaru. Znalost zúčastněných stran o nich a o tom, jak mohou být implementovány do softwaru, je pro zabezpečení softwaru zásadní. Tyto zahrnují:
- Ochrana před zveřejněním
- Ochrana před změnami
- Ochrana před zničením
- Kdo podává žádost
- Jaká práva a oprávnění má žadatel
- Schopnost vytvářet historické důkazy
- Správa konfigurace, relací a chyb / výjimek
Základní postupy
Následující seznam uvádí některé z doporučených postupy zabezpečení webu které jsou konkrétnější pro vývojáře softwaru.
- Sanitizujte vstupy na straně klienta a serveru
- Zakódujte požadavek / odpověď
- Pro položky domény použijte HTTPS
- Používejte pouze aktuální šifrovací a hashovací algoritmy
- Nepovolit výpis adresářů
- Neukládejte citlivá data uvnitř cookies
- Zkontrolujte náhodnost relace
- Nastavte v cookies soubory zabezpečené a HttpOnly
- Použijte TLS, ne SSL
- Nastavte silnou politiku hesel
- Neukládejte citlivé informace do skrytých polí formuláře
- Ověřte funkčnost nahrávání souborů
- Nastavte záhlaví zabezpečené odpovědi
- Ujistěte se, že jsou knihovny třetích stran zabezpečené
- Skrýt informace o webovém serveru
Testování zabezpečení
Společné atributy testování bezpečnosti zahrnují autentizaci, autorizaci, důvěrnost, dostupnost, integritu, nepopiratelnost a odolnost. Testování zabezpečení je nezbytné k zajištění toho, aby systém zabránil neoprávněným uživatelům v přístupu k jeho zdrojům a datům. Některá data aplikací se odesílají přes internet, který prochází řadou serverů a síťových zařízení. To dává bezohledným hackerům dostatek příležitostí.
souhrn
Implementují se všechny zabezpečené systémy bezpečnostní kontroly v rámci software, Hardware, systémy, a sítí - každá součást nebo proces má vrstvu izolace, která chrání nejcennější zdroj organizace, kterými jsou její data. Do procesu vývoje aplikace lze začlenit různé ovládací prvky zabezpečení, které zajišťují zabezpečení a zabraňují neoprávněnému přístupu.
Reference
- ^ Zabezpečení podnikových webových aplikací u zdroje: Perspektiva zabezpečení aplikací, OWASP
- ^ Stewart, James (2012). Studijní příručka pro CISSP Certified Information Systems Security Professional Šesté vydání. Kanada: John Wiley & Sons, Inc. str. 275–319. ISBN 978-1-118-31417-3.
- Stewart, James (2012). Studijní příručka pro CISSP Certified Information Systems Security Professional Šesté vydání. Kanada: John Wiley & Sons, Inc. str. 275–319. ISBN 978-1-118-31417-3.
- Zpráva ze semináře Dagstuhl 12401 Zabezpečení webových aplikací Upravili Lieven Desmet, Martin Johns, Benjamin Livshits a Andrei Sabelfeld, http://research.microsoft.com/en-us/um/people/livshits/papers%5Ctr%5Cdagrep_s12401.pdf
- Konsorcium pro zabezpečení webových aplikací, pravidlo 80/20 pro zabezpečení webových aplikací, Jeremiah Grossman 2005, http://www.webappsec.org/projects/articles/013105.shtml
- Stránka Zabezpečení webové aplikace Wikipedia, Zabezpečení webových aplikací
- Stránka Wiki zabezpečení webu, https://www.w3.org/Security/wiki/Main_Page
- Stránka Wikipedia Web Security Exploits, Kategorie: Využití zabezpečení webu
- Otevřete projekt zabezpečení webových aplikací (OWASP), https://www.owasp.org/index.php/Main_Page
- Stránka Zabezpečení sítě Wikipedia, Zabezpečení sítě
- Otevřete webovou stránku Web Application Security Project (OWASP), https://www.owasp.org/images/8/83/Securing_Enterprise_Web_Applications_at_the_Source.pdf