Bezpieczeostwo aplikacyjne

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

Bezpieczeostwo chmury szansa czy zagrożenie dla Banków Spółdzielczych?

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

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

Opis Przedmiotu Zamówienia na przeprowadzenie testów bezpieczeństwa systemu wspomagania nadzoru archiwalnego e-nadzór

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Application Security Verification Standard. Wojciech Dworakowski, SecuRing

Zgodność, fraudy i inne wyzwania oraz zagrożenia w Bankach Spółdzielczych. Aleksander Czarnowski AVET Information and Network Security Sp. z o.o.

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Agenda. Quo vadis, security? Artur Maj, Prevenity

REFERAT PRACY DYPLOMOWEJ

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Program szkolenia: Bezpieczny kod - podstawy

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

Zarządzanie bezpieczeństwem w Banku Spółdzielczym. Aleksander P. Czarnowski AVET Information and Network Security Sp. z o.o.

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

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

Piotr Bubacz Cloud Computing

2.11. Monitorowanie i przegląd ryzyka Kluczowe role w procesie zarządzania ryzykiem

Spis treści Wstęp 1. Wprowadzenie 2. Zarządzanie ryzykiem systemów informacyjnych

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

Drobne błędy w portalach WWW

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

Tomasz Grześ. Systemy zarządzania treścią

CSA STAR czy można ufać dostawcy

Szczegółowy opis przedmiotu zamówienia:

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

Szczegółowy opis przedmiotu zamówienia

Jarosław Żeliński analityk biznesowy, projektant systemów

Jak bezpieczne są Twoje dane w Internecie?

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

HP Service Anywhere Uproszczenie zarządzania usługami IT

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

Nowoczesny Bank Spółdzielczy to bezpieczny bank. Aleksander Czarnowski AVET Information and Network Security Sp. z o.o.

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

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

Wybrane działy Informatyki Stosowanej

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

INFORMATYKA Pytania ogólne na egzamin dyplomowy

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

Administratorzy kontrolują systemy IT, a kto kontroluje administratorów?

Pytania z przedmiotów kierunkowych

Bezpieczeństwo systemów internetowych

Ekspert MS SQL Server Oferta nr 00/08

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Wybrane działy Informatyki Stosowanej

Migracja bazy danych Microsoft Access *.mdb do Microsoft SQL 2008 Server R2 SP1 dla oprogramowania Płatnik

Zapytanie ofertowe. Skawina 7 listopada 2014

Etapy życia oprogramowania

Wdrożenie technologii procesowej IBM BPM w EFL

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

Usługa: Testowanie wydajności oprogramowania

Programowanie Komponentowe WebAPI

Bezpieczeństwo systemów komputerowych

Projektowani Systemów Inf.

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

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

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

Mateusz Kurleto NEOTERIC. Analiza projektu B2B Kielce, 18 października 2012

Szczegółowy opis zamówienia:

Jak znaleźć prawdziwe zagrożenia w infrastrukturze IT

Szkolenie wycofane z oferty

Opis metodyki i procesu produkcji oprogramowania

Robotic Process Automation

Program szkolenia: Continuous Integration i Git

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

SAP w 24 godziny / Michael Missbach, George Anderson. Gliwice, cop Spis treści

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

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

risk AB ZARZĄDZANIE RYZYKIEM OPERACYJNYM Dodatkowe możliwości programu: RYZYKO BRAKU ZGODNOŚCI PRALNIA

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Przypadek testowy. Teoria i praktyka

Aurea BPM. Unikalna platforma dla zarządzania ryzykiem Warszawa, 25 lipca 2013

Metodyka Sure Step. Agenda:

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Architektura bezpieczeństwa informacji w ochronie zdrowia. Warszawa, 29 listopada 2011

Referat pracy dyplomowej

DLA SEKTORA INFORMATYCZNEGO W POLSCE

PureSystems zautomatyzowane środowisko aplikacyjne. Emilia Smółko Software IT Architect

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Dwuwymiarowy sposób na podróbki > 34

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Zarządzanie relacjami z dostawcami

Przetwarzanie danych w chmurze

Portal Security - ModSec Enterprise

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

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

Zasady organizacji projektów informatycznych

REFERAT O PRACY DYPLOMOWEJ

Transkrypt:

Bezpieczeostwo aplikacyjne Aleksander P. Czarnowski AVET Information and Network Security Sp. z o.o.

Agenda Kilka słów o SDL Przypadki Cloud a bezpieczeostwo aplikacyjne Podsumowanie

Jak wytwarzad bezpieczne aplikacje SECURE DEVELOPMENT LIFECYCLE

Podstawowe elementy składowe bezpiecznej aplikacji Założenia biznesowe Projekt Architektura Bezpieczne programowanie Standardy i procedury Testowanie Scenariusze testów Środowiska wykonania Procedury eksploatacyjne

SDL Secure Development Lifecycle (SDL/SDLC) Doświadczenia Microsoft z ostatnich 10 lat prowadzenia programu Różnice pomiędzy programami prowadzonymi w Polsce a na świecie Zastosowanie SDL w praktyce

Secure Development Lifecycle

Przypadek Microsoft SDL czy warto?

Różnice w realizacji SDL Polska Bezpieczeostwo staje się ważną funkcją lub wymaganiem Jakośd nie jest jeszcze postrzegana jako problem Zastępy testerów nie nadążają z testami tymczasem jakośd oprogramowania nie rośnie wraz ze wzrostem liczby testów Relatywnie niski budżet na SDL Brak stałego zespołu programistów USA/Europa Bezpieczeostwo jest istotną funkcjonalnością SDL może mied odpowiedni budżet i zespół Silny outsourcing, często w Indiach = istotne różnice kulturowe Stałe zespoły programistyczne

Modelowanie zagrożeo Usystematyzowana metoda identyfikacji zagrożeo charakterystycznych dla danego systemu Aby zapewnid rzeczywistą wartośd dodaną proces musi spełniad minimum następujące warunki: Słowniki: pojęd, zagrożeo, podatności i komponentów Powtarzalnośd Efektywnośd czasową

Modelowanie zagrożeo Identyfikacja problemów w obszarze projektu Identyfikacja problemów w obszarze architektury Identyfikacja konfliktów w procesie uwierzytelnienia Identyfikacja konfliktów w procesie zarządzania bezpieczeostwem Identyfikacja minimalnych wymaganych uprawnieo (zazwyczaj jednak bardzo wysokopoziomowo) Zrozumienie i nadanie priorytetów zidentyfikowanemu ryzyku

Przykład Źródło: http://msdn.microsoft.com/en-us/windows/hardware/gg487497 Threat Modeling for Drivers

Przypadek #1: ochrona aplikacji w środowisku produkcyjnym USUWAJ PODATNOŚCI U ICH ŹRÓDŁA

Podstawowe założenia Aplikacja webowa Projekt dotyczy istniejącej aplikacji Aplikacja działa już na środowisku produkcyjnym Brak dobrego i zgranego zespołu programistycznego Nieaktualne wersje w repozytorium Brak dokumentacji projektowej Fatalne udokumentowanie kodu Około 2 tygodni kalendarzowych na uporządkowanie sytuacji

Wyniki wstępnego audytu Bałagan w repozytorium kodu = bałagan w kolejnych releasach = problem rollback u Możliwośd dostępu programistów do środowiska produkcyjnego z prawami administratora Edycja kodu w ramach poprawek w trybie online Nikt nie wie, która tak naprawdę wersja oprogramowania działa w środowisku produkcyjnym Brak systemu śledzenia zgłoszeo Brak procedury zarządzania poprawkami Modelowanie zagrożeo: Nie ma na to czasu (nawet w przypadku metody rapid threat modeling) Nie ma sensu prościej jest użyd gotowego modelu dla aplikacji webowej (pod warunkiem, że taki akurat istnieje) Selekcja oczywistych obszarów kodu do audytu

Przed audytem kodu 1. Ustalenie procedur dostępu do kodu źródłowego 2. Ustalenie procedur zgłaszania i naprawiania błędów 1. Każdy błąd wymaga naprawy 2. Nie ma znaczenia czy podatnośd jest w tym momencie do wykorzystania czy też nie każda jest naprawiana 3. Podatności których nie można naprawid w prosty sposób na poziomie kodu źródłowego zostaną zaadresowane tymczasowo przez inne zabezpieczenia 3. Uporządkowanie repozytorium kodu 4. Checkout z repozytorium do audytu 5. Zastąpienie tradycyjnych ticketów zgłoszeniami z systemu Barracuda 6. Programiści nie używają żadnego narzędzia do statycznej lub dynamicznej analizy kodu 7. Przystosowanie platformy SecureCode do wymagao projektu

Gotowy model zagrożeo Walidacja danych wejściowych / wyjściowych Autoryzacja i uwierzytelnienie użytkowników Zarządzanie sesją i stanem Styki różnych komponentów Serwer aplikacyjny baza danych Serwer HTTP serwer aplikacyjny Konfiguracje różnych komponentów Standard OWASP Top 10 dobry punkt wyjścia, ale nie złoty środek

Walidacja danych wejściowych Podstawowe zasady Nigdy nie ufaj danym z zewnętrznego (niezaufanego) źródła Nigdy nie przetwarzaj stanu / sesji po stronie użytkownika Nigdy nie ufaj ograniczeniom formularzy Obszary Formularze Protokół aplikacyjny Zapytania GET, POST Pozostałe metody Cookies Trzymanie stanu Sesja (ze szczególnym uwzględnieniem jej kooczenia)

Walidacja danych - problemy Procedury walidacji danych nie są łatwe i szybkie do napisana (zwłaszcza danych wyjściowych) Częśd stanu zawsze jest przetwarzana po stronie użytkownika: Ajax ActiveScript JavaScript

Styk różnych komponentów: przypadek MySQL Typowe problemy Konto aplikacyjne ze zbyt wysokimi uprawnieniami Brak adekwatnej ochrony interfejsów sieciowych Brak fuzzingu na poziomie zapytao SQL Przykładowe zapytania CVE-2008-3963: select b''; CVE-2010-2008: alter database `#mysql50#.` alter database `#mysql50#../` CVE-2009-2446: %s%s%s%s%s CVE-2010-3833: LEAST() GREATEST()

Styki różnych komponentów: przypadek MS SQL Server Typowe obszary zagrożeo Użytkownik aplikacyjny ze zbyt wysokimi uprawnieniami Brak adekwatnej kontroli intefejsów sieciowych Procedury składowe Rozszerzone procedury składowe Nadal nadużywanie konta sa Nadal zakładanie że konto sa jest bez hasła Przykłady nietypowych ataków SQL Server 2000: 3 bajtowy patch wyłączający kontrolę dostępu Używanie procedur składowych do dalszego ataku Przepełnienia bufora w procedurach składowych

Konfiguracje różnych komponentów: allow_url_fopen disable_functions display_errors enable_dl error_reporting file_uploads log_errors magic_quotes_gpc memory_limit open_basedir register_globals Safe_mode przypadek PHP

Przypadek #2: Stworzenie modelu bezpieczeostwa ZAPROJEKTUJ OD POCZĄTKU JAKO BEZPIECZNY SYSTEM

Podstawowe założenia Biznes rozumie rolę bezpieczeostwa Compliance jest istotnym elementem dla projektowanego systemu Projekt ma zdefiniowad pojęcie bezpiecznego systemu już na etapie projektu Gotowa, wysokopoziomowa lista kontrolna dla audytu

Podstawowe ryzyka projektowe Dostawca aplikacji posiada już pewną bazę kodu i architekturę, która nie była projektowana zgodnie z wynikiem projektu Koszty i czas wdrożenia modelu umowa została podpisana z Dostawcą przed podpisaniem modelu Edukacja biznesu biznes musi zrozumied pewne istotne elementy zarządzania bezpieczeostwem Edukacja ekspertów ds. bezpieczeostwa - muszą oni zrozumied założenia biznesu

Model zagrożeo Założenia biznesowe zmapowane na ryzyko biznesowe Ryzyko biznesowe definiuje zagrożenia biznesowe Zagrożenia biznesowe mają wpływ na zagrożenia techniczne Różne modele zagrożeo ze względu na wykorzystanie cienkiego i grubego klienta Więcej niż jeden profil użytkownika

Przypadek #3: System developerski DAJ SZANSĘ DEVELOPEROM

Podstawowe założenia Biznes rozumie rolę bezpieczeostwa Produkowane oprogramowanie ma byd bezpieczne Developerzy mają mied zapewnione środowisko, które spełni oczekiwania biznesu Wykorzystanie metodyki Agile XP odpadło z kilku powodów: najważniejszym był brak własności wybranych obszarów kodu źródłowego

Ogólna architektura z wykorzystaniem koncepcji stepping stone Kontrola dostępu do systemu System śledzenia zgłoszeo i przeglądarka repozytorium Repozytorium w modelu rozproszonym Kontrola dostępu do systemu śledzenia zgłoszeo Kontrola dostępu do repozytorium Automatyzacja procesu build

Rozproszony system kontroli wersji Zalety Łatwośd zapewnienia ciągłości Łatwośd pracy w chmurze Łatwośd współpracy z systemem Wady Odmiejscowienie repozytorium Wymagana dodatkowa dyscyplina

Statyczny audyt kodu Operacja clone Akceptacja Operacja add Weryfikacja Audyt kodu w lokalnym repozytorium Audyt kodu w zdalnym repozytorium Poprawki Operacja push Audyt kodu w lokalnym repozytorium Operacja add

Inne istotne aspekty Zestaw reguł tworzenia kodu Unit-testy Scenariusze testowania Proces testów

Zmiana paradygmatu bezpieczeostwa BEZPIECZEOSTWO APLIKACYJNE W CHMURZE

Ważne pytania Czy rodzaj chmury ma znaczenie dla bezpieczeostwa? Czy technologia chmury ma znaczenie dla bezpieczeostwa? Czy technologia aplikacji ma znaczenie dla bezpieczeostwa? Czy aplikacje tradycyjne wyrzucone do chmury stają się bardziej (nie)bezpieczne? Czy aplikacje tworzone z myślą o chmurze są bezpieczniejsze od tradycyjnych? Compliance

Zmiana paradygmatu bezpieczeostwa Jak wygrad wojnę jeśli nie mamy nawet komputera? Kto będzie miał komputer: Amazon, IBM, NASA, NSA Przetwarzanie rozproszone: penetracja jednego miejsca oznacza penetrację wszystkich punktów? Patch management Wirtualizacja

Podsumowanie Wszystkie komponenty aplikacji oraz środowiska wykonania są równie ważne Procedury wytwarzania i zarządzania konfiguracją oprogramowania są równie ważne co procedury eksploatacyjne Do incydentu i podatności trzeba się przygotowad wcześniej

Dziękuję za uwagę Pytania? aleksander.czarnowski@avet.com.pl