Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji (czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium)

Podobne dokumenty
Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Fuzzing OWASP The OWASP Foundation Piotr Łaskawiec J2EE Developer/Pentester

Bezpieczeństwo aplikacji Czy musi być aż tak źle? OWASP The OWASP Foundation

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

OWASP Day - Spring of Code 2k7 OWASP The OWASP Foundation

Testowanie oprogramowania. Piotr Ciskowski

Koncepcja systemu zarządzania jakością w dużym projekcie informatycznym zgodnie z normą ISO/IEC 9001:2008

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Testowanie i walidacja oprogramowania

Narzędzia OWASP dla developerów OWASP ESAPI & AppSensor OWASP The OWASP Foundation

Usługa: Audyt kodu źródłowego

Maciej Oleksy Zenon Matuszyk

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

OWASP OWASP. The OWASP Foundation Mariusz Burdach Prevenity

Obsługa incydentów bezpieczeństwa: część I, z punktu widzenia menadżera. OWASP The OWASP Foundation

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Szablon Planu Testów Akceptacyjnych

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Cykle życia systemu informatycznego

Program szkolenia: Continuous Integration i Git

TESTER OPROGRAMOWANIA STUDIA PODYPLOMOWE

Etapy życia oprogramowania

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Zasady organizacji projektów informatycznych

Testowanie oprogramowania

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

OWASP i Top 10 Sposób tworzenia Top 10 Czym jest a czym NIE jest Top 10? Zmiany w wersji 2013 Omówienie nowych podatności na liście Podsumowanie

Dwuwymiarowy sposób na podróbki > 34

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

z testów penetracyjnych

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Bezpieczeństwo aplikacji WWW. Klasyfikacja zgodna ze standardem OWASP. Zarządzanie podatnościami

ISO w Banku Spółdzielczym - od decyzji do realizacji

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Bezpieczeństwo IT Audyty bezpieczeństwa i testy penetracyjne

Procesowa specyfikacja systemów IT

REFERAT PRACY DYPLOMOWEJ

Secure Development Lifecycle w chmurze w modelu public i. Aleksander P. Czarnowski AVET Information and Network Security Sp z o.o.

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Metodyka wdrożenia. Bartosz Szczęch. Starszy Konsultant MS Dynamics NAV

Szczegółowy plan szkolenia

Microsoft Test Manager

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

Dlaczego testowanie jest ważne?

Egzamin / zaliczenie na ocenę*

Agile Project Management

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Metodyka Sure Step. Agenda:

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Bezpieczeństwo systemów internetowych

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Usługa skanowania podatności infrastruktury IT Banków oraz aplikacji internetowych

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Optymalizacja Automatycznych Testów Regresywnych

czynny udział w projektowaniu i implementacji procesów produkcyjnych

Dobre wdrożenia IT cz. I Business Case.

Narzędzia CASE dla.net. Łukasz Popiel

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

BIM jako techniczna platforma Zintegrowanej Realizacji Przedsięwzięcia (IPD - Integrated Project Delivery)

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Programowanie zespołowe

kompetencji zawodowych Dobrze poprowadzone na bazie PMBOK Guide, 6th Edition Grzegorza Szałajko. zespół Indeed wzmocnić korzyści

Michał Olejnik. 22 grudnia 2009

Modele sprzedaży i dystrybucji oprogramowania Teoria a praktyka SaaS vs. BOX. Bartosz Marciniak. Actuality Sp. z o.o.

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Opis metodyki i procesu produkcji oprogramowania

ALLPLAN SERIA PODSTAWY BIM PRZEWODNIK ZARZĄDZANIA BIM

Bezpieczeństwo aplikacji webowych - standardy, przewodniki i narzędzia OWASP OWASP The OWASP Foundation

Agenda. Quo vadis, security? Artur Maj, Prevenity

System zarządzający grami programistycznymi Meridius

Księgarnia PWN: Kevin Kenan - Kryptografia w bazach danych. Spis treści. Podziękowania O autorze Wprowadzenie... 15

Przypadki bez przypadków. Jak dobierać scenariusze testowe.

Application Security Verification Standard. Wojciech Dworakowski, SecuRing

Overlord - Plan testów

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA

Usprawnienie procesu zarządzania konfiguracją. Marcin Piebiak Solution Architect Linux Polska Sp. z o.o.

PRINCE2 czy PMI? Czyli o wyŝszości Świąt Wielkanocnych, nad Świętami BoŜego Narodzenia 11 maja Autor: Jolanta Łabędzka-Benisz.

Leszek Dziubiński Damian Joniec Elżbieta Gęborek. Computer Plus Kraków S.A.

MSF. Microsoft Solution Framework

pod tytułem: Zakup usług doradczych celu poszerzenia oferty o możliwość automatycznego tworzenia i upubliczniania kart lokali w sieci

Przewodnik użytkownika (instrukcja) AutoMagicTest

Wstęp do testowania : Szymon Ramczykowski

Transkrypt:

Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji (czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium) dr inż. Jakub Botwicz CISSP, ECSA 9.10.2012 jakub.botwicz@pl.ey.com Copyright The Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the License. The Foundation http://www.owasp.org

Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium Koszty naprawy błędów na różnych etapach życia aplikacji Projekty: SAMM (Software Assurance Maturity Model) BSIMM (Building Security In Maturity Model) Wybrane aktywności: Szkolenia Specyfikacja wymagań bezpieczeństwa Testy automatyczne Użycie komponentów zewnętrznych 2

Motywacje Przypuśćmy, że w naszej aplikacji został znaleziony błąd po wdrożeniu produkcyjnym Jakie są konsekwencje? Straty reputacyjne Utracone zyski (przerwy w działaniu aplikacji lub błędne działanie aplikacji) Koszty poprawek projektu, kodu, ponownego testowania i wdrożenia Czy można było tego uniknąć?

Koszty naprawy błędów w aplikacjach 100 Koszt naprawy błędu 90 80 70 60 50 40 30 20 10 0 Zbieranie wymagań Implementacja Po wdrożeniu Tworzenie architektury Implementacja Zbieranie wymagań Faza popełnienia błędu Faza naprawy błędu Źródło: McConnell, Steve (2004). Code Complete. Microsoft Press.

Motywacje Im wcześniej wykryjemy i usuniemy błędy tym mniejsze poniesiemy koszty z nimi związane Profilaktyka choć wymagająca dodatkowych nakładów, w efekcie okazuje się być opłacalna W jaki sposób można tworzyć aplikacje z mniejszą liczbą błędów oraz szybciej wykrywać błędy?

BUILDING SECURITY IN MATURITY MODEL 6

Building Security In Maturity Model v.4 Badanie praktyk w dziedzinie bezpieczeństwa przeprowadzone w 51 firmach: Google, Intel, Microsoft, VMware, Adobe, SAP, Bank of America, EMC, Nokia, Symantec, Visa Firmy różnej wielkości: w przedziale od 11 do 30000 programistów, średnio 4455 Pierwsze wyniki opublikowano w 2009 roku i od tego czasu były 3-krotnie aktualizowane Powstał zbiór 12 praktyk ze 111 aktywnościami 7

BSIMM praktyki Szkolenie Strategia i metryki Analiza architektury Polityka bezpieczeństwa i zgodność z regulacjami Standardy i wymagania Modelowanie ataków Projektowanie i funkcjonalności bezpieczeństwa Przeglądy kodu źródłowego Testy bezpieczeństwa Testy penetracyjne Zabezpieczenie środowiska uruchomieniowego Zarządzanie konfiguracją i podatnościami 8

BSIMM poziomy aktywności Poziom 0: brak aktywności w tym obszarze Poziom 1: podstawowy, najłatwiejszy do wdrożenia, niezbędne niezależnie od wielkości firmy i branży Testowanie aplikacji przez niezależnych pentesterów Poziom 2: bardziej zaawansowane, dopasowane do specyfiki firmy Testowanie penetracyjne aplikacji okresowo z analizą pokrycia wszystkich funkcji Poziom 3: najbardziej kosztowne i wyrafinowane metody, na które mogą sobie pozwolić największe firmy Przygotowywanie własnych narzędzi do testów penetracyjnych dopasowanych do specyfiki aplikacji 9

BSIMM wykorzystanie Pozwala na ocenę i wizualizację aktualnego stanu praktyk bezpieczeństwa (wykres radarowy: odległość od środka = poziom zaawansowania w określonej praktyce) Dostawcy oprogramowania Instytucje finansowe Źródło: Building Security In Maturity Model 4, Gary McGraw, Sammy Migues & Jacob West (2012)

BSIMM Software Security Group Grupa pracowników firmy ekspertów w dziedzinie bezpieczeństwa (w różnych obszarach i stanowiskach) Liderzy zmian i projektów Przekazują wiedzę pozostałym pracownikom Liczba osób w SSG w badanych firmach: od 1 do 100 osób średnio 19,48 11

SOFTWARE ASSURANCE MATURITY MODEL 12

Software Assurance Maturity Model Podtytuł: A guide to building security into software development Bazuje na doświadczeniu i wiedzy autorów, a nie na wynikach przeglądu firm Opisuje zbiór 12 praktyk z 72 aktywnościami

SAMM elementy opisu aktywności Szczegółowy opis aktywności: Rezultaty: Źródło: Software Assurance Maturity Model, OpenSAMM Project, Pravir Chandra (2009)

SAMM elementy opisu aktywności Koszty wdrożenia: Wskaźniki powodzenia: Źródło: Software Assurance Maturity Model, OpenSAMM Project, Pravir Chandra (2009)

SAMM Building Assurance Programs Przykładowe plany wdrożenia praktyk: w jakiej kolejności wdrażać które można pominąć Profile: Dostawcy oprogramowania Dostawcy usług Instytucje finansowe Instytucje rządowe Dodatkowe wskazówki: Oprogramowania tworzone zewnętrznie Transakcje przetwarzanie w sieci Źródło: Software Assurance Maturity Model, OpenSAMM Project, Pravir Chandra (2009)

SAMM vs. BSIMM porównanie Źródło danych BSIMM Wyniki ankiety przeprowadzonej w 51 firmach SAMM Wiedza autorów Liczba aktualizacji 3 0 Liczba opisanych aktywności 111 72 Liczba stron 60 90 Poziom opisu aktywności Sposób wdrażania aktywności Pobieżny Brak opisu Szczegółowy Opisany 17

Jak korzystać z SAMM lub BSIMM 1. Uzyskanie wsparcia od kadry zarządzającej sponsorzy prac i projektów decydenci w sprawach strategicznych 2. Zbadanie stanu początkowego jednego, kilku wybranych lub wszystkich obszarów 3. Zebranie grupy Software Security Group 4. Określenie celów i etapów ich osiągnięcia

Jak wdrażać SAMM lub BSIMM 5. Wdrożenie pilotażowe (w mniejszym obszarze lub części funkcjonalności) a) planowanie b) wdrożenie c) sprawdzenie kosztów i korzyści d) wyciągnięcie wniosków i doświadczeń 6. Wdrożenie pełne (dla całej firmy lub wszystkich aplikacji)

NAJLEPSZE PRAKTYKI 20

Szkolenia najlepsze praktyki Dla nowych pracowników Powtarzane i uaktualniane okresowo (raz na rok) Wykorzystujące historyczne dane firmy (np. przypadki popełnionych wcześniej błędów) Dopasowane do stanowiska (programista, tester, architekt) Obejmujące również kadrę zarządzającą Z udostępnionymi materiałami do dalszej nauki

Wymagania dotyczące bezpieczeństwa Wymagania bezpieczeństwa powinny być dokładnie opisane razem z wymaganiami funkcjonalnymi Wymagania powinny być opisane pozytywnie Aplikacja ma być odporna na ataki SQL Injection Aplikacja ma walidować dane wejściowe pod względem występowania w nich znaków ze składni języka SQL i prawidłowo je kodować lub usuwać Defensywne aplikacje są łatwiejsze do obrony Pole login może zawierać dowolne znaki testowe Pole login może zawierać litery, cyfry i podkreślenia 22

Testy automatyczne Zalety testów automatycznych krótszy czas wykonania niż w testów manualnych możliwość sprawdzenia dużej liczby przypadków testowych powtarzalność testów i wyników Wady testów automatycznych konieczność przygotowania testów (konfiguracji narzędzi) jakość wyników uzależniona od jakości testów

Testy bezpieczeństwa najlepsze praktyki Aby połączyć zalety testów automatycznych i manualnych Testy automatyczne: wykonywać jak najczęściej np. przy każdym wprowadzeniu poprawek do systemu kontroli wersji używać jako testy regresyjne Testy manualne: wykonywać przy istotnych zmianach w aplikacji na podstawie ich wyników uaktualniać testy automatyczne

Użycie komponentów zewnętrznych Użycie sprawdzonego kodu zewnętrznego daje duże korzyści dostajemy gotowy do użycia kod oszczędzamy czas korzystamy z pracy innych programistów i testerów oszczędzamy koszty pracy naszych pracowników Ale w zamian za to błędy w użytym kodzie stają się błędami naszych aplikacji powinniśmy śledzić informacje o wykrytych błędach w kodzie, który używamy

PODSUMOWANIE 26

Podsumowanie Im wcześniej wykryjemy i usuniemy błędy tym mniejsze poniesiemy koszty z nimi związane Najlepiej uczyć się na cudzych błędach i nie popełniać własnych Dokumenty SAMM i BSIMM mogą służyć do sprawdzenia aktualnego stanu praktyk naszej firmy i przygotowania planu poprawy tego stanu Mocne strony: SAMM: szczegółowy opis praktyk, podane sposoby wdrożenia BSIMM: wyniki oparte na rzeczywistym badaniu praktyk, zawiera więcej aktywności

Dziękuję za uwagę! Czy mają Państwo jakieś pytania? 28