Kim jesteśmy? PCSS i MIC Paweł Berus, Zespół Bezpieczeństwa PCSS Konferencja IT Academic Day Poznań, 10.11.2011 1
PCSS Poznańskie Centrum Superkomputerowo-Sieciowe (1993) Operator sieci PIONIER oraz POZMAN Uczestnik projektów naukowobadawczych Główne obszary zainteresowań: HPC i gridy Sieci nowej generacji, portale Bezpieczeństwo sieci i systemów http://www.pcss.pl
Zespół Bezpieczeństwa PCSS Zespół Bezpieczeństwa PCSS istnieje od 1996r. Zabezpieczanie infrastruktury PCSS Zadania bezpieczeństwa w projektach R&D Szkolenia, transfer wiedzy Badania własne Usługi zewnętrzne Wybrane badania z ostatnich lat Badania sieci bezprzewodowych na terenie Poznania Raport nt. bezpieczeństwa bankowości elektronicznej Bezpieczeństwo serwerów WWW (Apache, MS IIS) Bezpieczeństwo sklepów internetowych Zabezpieczenia przeglądarek internetowych 3
Centrum Innowacji Microsoft Centrum bezpieczeństwa i usług outsourcingowych http://mic.psnc.pl Działa od 1.06.2006r. Partnerzy projektu Microsoft Polska PCSS Politechnika Poznańska
Główne zadania MIC w 2011 Nowe obszary badań Przetwarzanie chmurowe (cloud computing) Bezpieczeństwo danych Realizacja wybranych scenariuszy biznesowych Kontynuacja zadań z lat poprzednich Wirtualizacja (Hyper-V) Realizacja programu szkoleniowego Microsoft Speaker Biuro Doroczna Konferencja MIC Nowoczesne Technologie Bliżej Nas 5
6
Dane kontaktowe Prelegent pawel.berus@man.poznan.pl Centrum Innowacji Microsoft mic@man.poznan.pl http://mic.psnc.pl Zespół Bezpieczeństwa PCSS security@man.poznan.pl http://security.psnc.pl 7
Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure Paweł Berus, Zespół Bezpieczeństwa PCSS Konferencja IT Academic Day Poznań, 10.11.2011 8
Agenda Uwierzytelnianie Sesja Logowanie SQL Azure Hybrydy i aplikacje ON-PREMISES Monitorowanie Zagrożenia Podsumowanie 9
Uwierzytelnianie Rozwiązania mechanizmu logowania OpenID Systemy federacyjne AppFabric ACS (Access Control Service) Własne rozwiązania 10
Uwierzytelnianie AD FS (1) Przykładowa konfiguracja serwera System Microsoft Windows Server 2008 R2 Enterprise SP1 Active Directory Domain Services Web Service (IIS) Active Directory Federation Services 2.0 11
Uwierzytelnianie AD FS (2) Stacja dewelopera System Microsoft Windows Vista Enterprise x64 Microsoft Visual Studio 2010 Enterprise Windows AzureSDK v 1.4 Windows Azure Tools for Microsoft Visual Studio 2010 1.3 Windows Identity Foundation SDK v4.0 x64 12
Uwierzytelnianie AD FS (3) Tworzymy projekt Dodajemy WebRole Dodajemy referencję STS (Security Token Service) 13
Uwierzytelnianie AD FS (4) Uruchamiamy kreator Federation Utility 14
Uwierzytelnianie AD FS (5) Wskazujemy nasz serwer AD FS 15
Uwierzytelnianie AD FS (6) Wybieramy metodę walidacji certyfikatu 16
Uwierzytelnianie AD FS (7) Wybieramy certyfikat do szyfrowania tokena 17
Uwierzytelnianie AD FS (8) Lista właściwości poświadczenia 18
Uwierzytelnianie AD FS (9) Po pomyślnym zakończeniu kreatora mamy utworzony plik opisujący połączenie oraz sposób wymiany informacji z serwerem AD FS 19
Uwierzytelnianie AD FS (10) 20
Uwierzytelnianie AD FS (11) Konfiguracja serwera AD FS Uruchamiamy konsolę AD FS i przechodzimy do dodawania zaufanych stron 21
Uwierzytelnianie AD FS (12) Wskazujemy plik z deskryptorem wygenerowany przez kreator w Visual Studio 22
Uwierzytelnianie AD FS (13) Ustawiamy wstępną politykę dostępu do zasobów naszej aplikacji 23
Uwierzytelnianie AD FS (14) Ekran podsumowujący 24
Uwierzytelnianie AD FS (15) Czas na załadowanie aplikacji do Windows Azure, pod adres który podaliśmy jako adres serwisu przy tworzeniu pliku metadanych opisujących komunikację z AD FS-em Z poziomu Visual Studio Generując pakiet pod Visual Studio i tworząc instancję korzystając z panelu na stronie https://windows.azure.com/ 25
Uwierzytelnianie AD FS (16) Wpisujemy adres naszej strony w Windows Azure Mamy przekierowanie na serwer AD FS https://xxx.xxx.225.251/adfs/ls/?wa=wsignin1.0&w trealm=https%3a%2f%2fpbazurehs.cloudapp.net&wc tx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct= 2011-06-15T16%3a21%3a31Z 26
Uwierzytelnianie AD FS (17) Po przekierowaniu i podaniu danych autoryzacyjnych następuje przekierowanie do naszej aplikacji znajdującej się w Windows Azure z przekazaniem poświadczeń (Claims) 27
Uwierzytelnianie AD FS (18) Po pomyślnej autoryzacji zostajemy przekierowani na naszą stronę 28
Uwierzytelnianie AD FS (19) DEMO 29
Uwierzytelnianie AD FS (20) Pobieranie informacji o użytkowniku 30
Uwierzytelnianie AppFabric Access Control Service 31
Sesja (1) Cookie Mode Serwis jest bezstanowy Zawsze działa na farmach webowych Zazwyczaj bardzo wydajny Zalecane podejście w aplikacjach Musi być użyte przy WCF 32
Sesja (2) Session Mode Mała ilość danych przesyłanych po kablu Serwis musi być stanowy Działa na farmach webowych z współdzieloną bazą Zalecane dla ASP.NET, gdy cookies są za duże 33
Logowanie (1) Jak logować? 34
Logowanie (2) SQL Azure Azure Storage Azure Drive Serwery zewnętrzne 35
SQL Azure(1) Rozszerzenie SQL Server-a dla chmury Zgodne z produktem pudełkowym Database as a service Uruchomiony na klastrach w MS Dostęp przez protokół TDS Symetryczność z dotychczasowymi produktami Przenośność Skalowalność 36
SQL Azure(2) Nie musimy się obawiać o aktualizowanie serwera Nie trzeba się bawić w konfigurowanie High Availability, replikację Awarie nie trzeba się martwić o awarie sprzętu, dysków, wszystkich rzeczy, które mogą się popsuć Każda baza, jaka jest tworzona, jest od razu replikowana Serwer nie jest fizycznym serwerem czy maszyną wirtualną Firewall 37
SQL Azure poziomy bezpieczeństwa Usługa Wymagany SSL Wykrywanie ataków DoS Inspekcja pakietów Serwer Lista dozwolonych adresów IP Usuwanie bezczynnych (idle) połączeń Generowane nazwy serwerów Baza danych Niedozwolone często atakowane nazwy użytkowników (SA, Admin, root, guest itd.) 38
Hybrydy i aplikacje ON-PREMISES Dostęp do danych chronionych Ochrona infrastruktury Specyfika aplikacji ON-PREMISES AppFabric ServiceBus 39
Monitorowanie Windows Azure Diagnostics Śledzenie zdarzeń Zbieranie logów IIS Gromadzenie danych diagnostycznych Konfigurowany przez użytkownika Zbieranie danych co określony czas lub na żądanie 40
Monitorowanie uruchomienie 41
Monitorowanie Web.config 42
Monitorowanie generowanie danych diagnostycznych 43
Monitorowanie przechowywanie danych lokalnie (1) 44
Monitorowanie przechowywanie danych lokalnie (2) 45
Monitorowanie Web.config(dla IIS) 46
Monitorowanie zaplanowany transfer danych 47
Monitorowanie transfer danych na żądanie 48
Zagrożenia Wyciek kluczy Wyciek certyfikatów Konieczność wprowadzania zmian w ustawieniach frameworka Aplikacje zewnętrzne 49
Aplikacje rodzaje ataków XSS/HTML Injection SQL Injection XML Injection Information Disclosure Buffer Overflow Inne 50
Aplikacje kompromitacja (zasady) DEMO 51
Aplikacje jak się zabezpieczyć? Sprawdzanie danych wejściowych Sprawdzanie danych wyjściowych Modyfikacja reprezentacji danych Parametryzowanie zapytań SQL Odpowiednia obsługa wyjątków 52
Wyzwania dla bezpiecznego projektu Bezpieczeństwo = problem kompleksowy (wielowarstwowy) Kto może popełnić błąd? Projektanci Programiści Wdrożeniowcy Użytkownicy Prawdziwa dogłębna ochrona (security-in-depth) ma miejsce, jeśli bezpieczeństwo zaadresują w odpowiedni sposób wszystkie te grupy 53
Projektanci (1) Modelowanie zagrożeń na etapie koncepcji 54
Projektanci (2) Zasady Privacy by Design Proaktywne, a nie reaktywne działania Domyślne ustawienia zapewniające prywatność Prywatność wbudowana od etapu projektowania i obecna na wszystkich etapach SDLC Prywatność i, a nie albo bezpieczeństwo Transparentność Poszanowanie prywatności użytkowników Microsoft Privacy Principles http://www.microsoft.com/privacy/principles.aspx 55
Programiści Dokładna realizacja rozsądnie napisanego projektu Tworzenie bezpiecznego kodu Aplikacje np. dla Azuresą rozwijane pod Microsoft Visual Studio nie zastąpi ono programisty w myśleniu o bezpieczeństwie Źle napisany kod podatny jest na klasyczne podatności bezpieczeństwa (XSS, Injections itd.) Częściową pomocą mogą być rozwiązania takie, jak Microsoft Anti-Cross-Site-Scripting Library 56
Podsumowanie Duże możliwości integracji Monitorowanie i logi Zrównoważona wygoda i bezpieczeństwo Security-In-Depth 57
Kontakt Paweł Berus pawel.berus@man.poznan.pl 58