Udostępnianie bezpiecznych usług. ug w sieci Internet. Gerard Frankowski. VII Seminarium StartUp-IT 2008



Podobne dokumenty
sklepów w internetowych Gerard Frankowski, BłaŜej Miga PCSS

Bezpieczeństwo danych i usług w Internecie na przykładzie technologii e-sklepówe

Zabezpieczanie platformy Windows Server 2003

Bezpieczeństwo aplikacji webowych

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Poznańskie Centrum Superkomputerowo-Sieciowe Operator sieci PIONIER oraz POZMAN Uczestnik projektów naukowo-badawczych Główne obszary zainteresowań:

ASP.NET. Gerard Frankowski. XVI Spotkanie Poznańskiej Grupy ASP.NET 2009

SQL z perspektywy hakera - czy Twoje dane są bezpieczne? Krzysztof Bińkowski MCT,CEI,CEH,ECSA,ECIH,CLFE,MCSA,MCSE..

Projektowani Systemów Inf.

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

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

Program szkolenia: Bezpieczny kod - podstawy

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

Dokumentacja fillup - MS SQL

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Bezpieczeństwo systemów komputerowych

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

Bezpieczeństwo w firmie dobre praktyki korzystania z rozwiąza

Drobne błędy w portalach WWW

Bezpieczeństwo aplikacji. internetowych. 2. Szkolenie dla administratorów stron internetowych hufców Śląskiej Chorągwi ZHP

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

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

OCHRONA PRZED RANSOMWARE

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

OCHRONA PRZED RANSOMWARE. Konfiguracja ustawień

The OWASP Foundation Session Management. Sławomir Rozbicki.

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

REFERAT O PRACY DYPLOMOWEJ

Win Admin Monitor Instrukcja Obsługi

Agenda. Quo vadis, security? Artur Maj, Prevenity

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Bezpieczne strony WWW dla edukacji, organizacji non-profit i uŝytkowników indywidualnych.

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Sprawozdanie Laboratorium 4

Tomasz Nowocień, Zespół. Bezpieczeństwa PCSS

POLITYKA PRYWATNOŚCI SERWIS:

Win Admin Replikator Instrukcja Obsługi

Polityka prywatności serwisu

Smarty PHP. Leksykon kieszonkowy

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Projektowanie bezpieczeństwa sieci i serwerów

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem

ActiveXperts SMS Messaging Server

Tomasz Greszata - Koszalin

Pracownia internetowa w szkole ZASTOSOWANIA

Kontrola dostępu w ASP.NET

KONFIGURACJA PRZEGLĄDAREK. Poniższa konfiguracja dedykowana jest dla Bankowości Internetowej SGB

WorkingDoc CostControl: Precyzyjna kontrola kosztów wydruku na urządzeniach Grupy Ricoh

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

Kancelaria Prawna.WEB - POMOC

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Cookie Policy. 1. Informacje ogólne.

Jak bezpieczne są Twoje dane w Internecie?

Audyty bezpieczeństwa dla samorządów i firm. Gerard Frankowski, Zespół Bezpieczeństwa PCSS

EXSO-CORE - specyfikacja

Panel administracyjny serwera: admin.itl.pl

Rozdział 6 - Z kim się kontaktować Spis treści. Wszelkie prawa zastrzeżone WiedzaTech sp. z o.o Kopiowanie bez zezwolenia zabronione.

Kim jesteśmy? PCSS i MIC. Paweł Berus, Zespół Bezpieczeństwa PCSS

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Problemy z bezpieczeństwem w sieci lokalnej

OWASP. The Open Web Application Security Project. OWASP Top rc1. Dziesięć najbardziej krytycznych zagrożeń w web aplikacjach

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

INSTRUKCJA OBSŁUGI DLA SIECI

Instrukcja konfiguracji funkcji skanowania

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

Wybrane działy Informatyki Stosowanej

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Załącznik nr 2. Przewodnik instalacyjny systemu e-broker Technologiczny v.1.0. Część 4 - Narzędzia informatyczne przeznaczone dla ośrodków innowacji

PROJEKT ARAKIS DOŚWIADCZENIA Z OBSERWACJI ZAGROŻEŃ W SIECI Tomasz Grudziecki (CERT Polska / NASK)

Przypisywanie bibliotek w architekturze SAS

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Programowanie Komponentowe WebAPI

SAS Institute TECHNICAL SUPPORT )

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Aspekty bezpieczeństwa aplikacji internetowych

Danych Osobowych oświadcza, że za wyjątkiem sytuacji uregulowanych w prawie polskim dane dotyczące IP oraz cookies nie będą przekazywane osobom

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok

Bazy danych i usługi sieciowe

Wybrane ataki na urządzenia sieciowe Secure Michał Sajdak, Securitum sekurak.pl

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

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

Transkrypt:

Udostępnianie bezpiecznych usług ug w sieci Internet Gerard Frankowski Zespół Bezpieczeństwa PCSS VII Seminarium StartUp-IT Poznań, 24.10.2008 2008

Agenda Wprowadzenie Nowoczesny startup w Internecie Specyfika masowych usług elektronicznych Kto odpowiada za bezpieczeństwo? Błędy, zagrożenia, sposoby ochrony Błędy w projekcie i kodzie aplikacji Błędy w konfiguracji usług i systemów Podsumowanie, pytania, dyskusja 2

Wprowadzenie 3

Cel prezentacji Ułatwienie startu działalności nowoczesnego mikroprzedsiębiorstwa dzięki oferowaniu bezpiecznych usług w Internecie Dla kogo jest ta prezentacja? Decydent / właściciel Projektant / programista Administrator Prezentacja nie jest dla użytkowników! 4

Nowoczesny startup w Internecie StartUp-IT nowoczesne mikrobiznesy Firma z sektora IT Rodzaj oferowanej usługi (np. e-sklep, e hosting, płatności, portal aukcyjny / społecznościowy) Kwestie niezależne od specyfiki firmy Reklama, kontakt z użytkownikami (strona WWW, forum, helpdesk) Dostęp do usług z poziomu sieci wewnętrznej (poczta, WWW) Wymogi zewnętrzne np. e-rozliczeniae 5

Specyfika usług internetowych Większość usług ma za zadanie dotrzeć do maksymalnie licznej grupy docelowej Przeciętny użytkownik nie posiada wiedzy na temat bezpieczeństwa IT Usługi zorientowane na użyteczność Charakter przetwarzanych danych Dane uwierzytelniające, osobowe (np. adres) Historia działań (np. zakupów) Numery kart kredytowych, płatności elektroniczne 6

Ogólne zagroŝenia usług WWW Ataki na serwery sieciowe Szpiegostwo przemysłowe Szkodzenie konkurencji Ataki na komputery użytkowniku ytkowników Przejmowanie maszyn Kradzież mocy obliczeniowej Kradzież danych osobowych i tożsamo samości Rozsyłanie spamu Szantaż Organizowanie botnetów ataki DDoS itd. 7

Kto odpowiada za bezpieczeństwo? 8

Kto odpowiada za bezpieczeństwo? Decydent / projektanci Pomysł jaka usługa będzie oferowana? Jaki jest budżet? Przetarg: użyteczność a bezpieczeństwo Programiści Implementacja projektu Ograniczani przez zakres projektu Administratorzy Konfigurują i udostępniaj pniająusługę, system operacyjny, sieć, urządzenia dostępowe,... Ograniczeni przez możliwości usług i systemów, budżet na bezpieczeństwo,... 9

Inwestycje w bezpieczeństwo w firmie Inwestycja w bezpieczeństwo nie przynosi natychmiastowych, namacalnych korzyści Za to istnieją koszty (często spore) Specyfika mikroprzedsiębiorstw Rolę decydenta, projektanta, programisty i testera pełnić może nawet jedna osoba! 10

Problem uŝytkownika? Zwłaszcza w przypadku usług masowych, użytkownik nie posiada specjalistycznej wiedzy Powinien za to mieć (i stosować) ) wiedzę ogóln lną Rola usługodawcy w kształtowaniu świadomości użytkownika-klienta klienta Promocja pożądanych zachowań Odpowiedni interfejs użytkownika Strawnie podana wiedza Bezpieczeństwo usługi nie może być tylko problemem jej użytkownika 11

Błędy, zagroŝenia, sposoby ochrony 12

Krótki przegląd Błędy w projekcie i kodzie Błędy w projektowaniu funkcjonalności Znaczenie filtrowania danych Ataki XSS (Cross( Site Scripting) Ataki SQL Injection Remote Code Execution Błędy w konfiguracji serwerów Ataki Information Disclosure ASP.NET / IIS MS SQL Server 2005 Powyższa lista absolutnie nie wyczerpuje tematu! 13

Błędy w projekcie funkcjonalności Przyjęcie niewłaściwych założeń co do funkcjonalności Przykład: logowanie 2-etapowe: 2 zatwierdzenie nazwy użytkownika, a dopiero potem prośba o podanie hasła Możliwość enumeracji użytkowników Uwzględnienie niewystarczających metod zabezpieczenia usługi Przykład: brak szyfrowania komunikacji lub brak wymuszania silnych algorytmów 14

Główna przyczyna problemów Nieodpowiednie filtrowanie danych (lub jego brak) to bezpośredni rednia przyczyna większo kszości najpoważniejszych niejszych luk bezpieczeństwa Przepełnienie bufora XSS (Cross( Site Scripting) SQL Injection Remote Code Execution Nie można ufać ć żadnym ż danym wejściowym, zwłaszcza pochodzącym cym od użytkownika u Także: bazy danych, zmienne środowiskowe,... ALL INPUT IS EVIL!!! 15

Jak sytuacja wygląda w praktyce? Czy filtrowanie jest istotnie aż takim problemem? Grafika: http://webappsec.org 16

Wprowadzenie do filtrowania danych Brak Czarne listy (black( lists) Definiujemy dane, które odrzucimy Białe e listy (white( lists) Definiujemy dane, które dopuścimy Problemem obu rodzajów w list może e być skomplikowana definicja Wyrażenia regularne Dodatkowe mechanizmy weryfikacji Sprawdzanie typu i wartości Enumeracja wartości (np. dni tygodnia, nazwy miesięcy) 17

Przykład: wyraŝenie regularne w ASP Zadanie: Przesłać kod pocztowy metodą GET wyrażenie regularne: ^[0-9]{2,2} 9]{2,2}-[0-9]{3,3}$ adres URL: http://anyserver anyserver.com/code.asp?code=61-874 <% set code = request.querystring querystring(" ("code") set re = new RegExp re.pattern Pattern="^[0-9]{2,2} 9]{2,2}-[0-9]{3,3}$" if re.test(.test(code) then ' Postal code OK - run normally else ' Bad postal code - handle the error end if %> 18

Atak XSS - opis XSS: Cross Site Scripting Zagrożone one sąs strony, na których wyświetlana wietlana treść częś ęściowo zależy y od użytkownikau komentarze, fora dyskusyjne formularze internetowe, wyszukiwarki strony pobierające parametry tekstowe metodą POST/GET Opis ataku Napastnik wysyła a do podatnej strony ciąg g znaków w będący b kodem np. JavaScript Nazywam się <script>alert( >alert(document.cookie)</ )</script> Ciąg g znaków w staje się elementem wyświetlanej wietlanej strony, przeglądarka wykonuje kod 19

Atak XSS - przykład Trywialny przykład strona pobiera z URL parametr o nazwie name <%response response.write(request.querystring querystring(" ("name"))%> http://service service.com?name=<script>alert( >alert(document.cookie) </script script> 20

Ataki XSS - zagroŝenia Utrudnianie życia użytkownikomu Wyskakujące okienka Kradzież danych sesji użytkownikau Przesyłanie cookies na serwer kontrolowany przez napastnika Zaawansowane ataki XSS Skanowanie portów w TCP w zdalnej sieci Podsłuchiwanie rozmów w (ActiveX( EasycallLite.ocx ocx) Odwołania do wybranych stron z przeglądarki ofiary 21

Obrona przed atakami XSS Odpowiedzialny: projektant/programista Odpowiednie filtrowanie danych, w szczególno lności pod kątem występowania znaków w <, > O ile to możliwe, najlepiej stosować technikę białej listy Definiowanie cookies z atrybutem httponly 22

Atak SQL Injection SQL Injection atak na bazę danych Zagrożone one sąs strony budujące zapytania bazodanowe przy pomocy parametrów w uzyskanych od użytkownikau Przebieg ataku Napastnik przekazuje złośliwe z parametry do zapytania Sfałszowane zapytanie powoduje wyświetlenie wietlenie na wynikowej stronie WWW innych danych niżn zakładano, adano, ich większej ilości lub informacji o strukturze bazy W skrajnym przypadku zostaje wykonane polecenie języka obsługi baz danych Napastnik uzyskuje dalsze informacje, pozwalające mu lepiej ukierunkować atak 23

Atak SQL Injection - podatny kod Strona pobiera z formularza parametr nazwisko set nazwisko = request.form("nazwisko") set objconn = Server.CreateObject("ADODB.Connection") objconn.open <CONNECTION_STRING> strsql = "SELECT * FROM pensje WHERE Nazwisko ='" strsql = strsql & nazwisko strsql = strsql & "'" set objrs = Server.CreateObject("ADODB.Recordset") objrs.open strsql, objconn do while not objrs.eof response.write("<br>") for each x in objrs.fields response.write(" " & x.name & " = " & x.value & " ") next objrs.movenext loop objconn.close 24

Atak SQL Injection - przykład Dostęp do danych nazwisko: Baker or 1=1-- SQL Server 2005 SELECT * FROM pensje WHERE Nazwisko = Baker or 1=1-- 25

Atak SQL Injection - przykład 2 Modyfikacja danych Nazwisko: ' insert into pensje (Lp, Imie, Nazwisko, Pensja) values(5, Gerard, Frankowski', 10000)-- SQL Server 2005 26

Atak SQL Injection - zagroŝenia Nieautoryzowany dostęp p do danych Modyfikacja rekordów w bazy danych Dodanie lub usunięcie rekordów Usunięcie bazy danych Wykonywanie poleceń ń środowiska ś bazy danych i potencjalnie poleceń systemowych 27

Atak SQL Injection - obrona Odpowiedzialny: programista Filtrowanie danych wejściowych użytkownika u pod kątem k obecności ci znaków w specjalnych używanej u wersji języka j obsługi baz danych Filtrowanie równier wnież danych odczytanych z bazy! Odpowiedzialny: administratora Bezpieczna konfiguracja k środowiska bazodanowego Zasada minimalnych uprawnień Odpowiednia polityka kontroli dostępu Restrykcje dostępu na poziomie systemu operacyjnego 28

Sesja internetowa Protokół HTTP jest bezstanowy Rozróżnianie tożsamości użytkowników jest kluczowe dla korzystania z e-usługe Sesja internetowa Wyróżniany przez session ID zbiór r informacji o połą łączeniu Po stronie serwera plik sesji lub baza danych Po stronie klienta ciasteczka (cookies( cookies) 29

Ataki na sesje przykład Warunki Usługa umożliwia zdefiniowanie własnego w session ID Przebieg ataku Napastnik podsuwa p ofierze link Jak oszukać skarbówkę?? KliknijK tutaj! Pod linkiem kryje sięurl URL: http://usluga usluga.pl/< /<script>document.cookie= sessionid=abcd ;</script> Ofiara klika link,, co powoduje nawiązanie sesji z usługąu usluga.pl z identyfikatorem sesji abcd Napastnik co jakiś czas próbuje nawiąza zaćsesję z tym samym identyfikatorem Po udanej próbie napastnik przechwytuje sesję ofiary 30

Ataki na sesje zagroŝenia Ujawnienie informacji o serwerze Poszczególne serwery WWW obsługują sesje w różny sposób Kradzież sesji użytkownika u Podszycie się pod ofiarę Kradzież tożsamo samości ofiary...... i jej konsekwencje: kradziek radzieżdanych, zawarcie fałszywej umowy, kradzież środków w finansowych, uzyskanie danych będących podstawą do szantażu,... 31

Ataki na sesje - obrona Odpowiedzialny: administrator Odpowiednia konfiguracja serwera WWW /.NET Unikanie wyświetlania wietlania informacji o błęb łędach użytkownikowi Odpowiedzialny: projektant/programista Bezpieczna konfiguracja sesji Czas życia ciasteczka oraz sesji Atrybuty secure, httponly Wymuszanie wartości session ID po stronie serwera 32

Ataki Information Disclosure Narażone sąs źle skonfigurowane serwery Usługi ujawniają szczegółowe informacje o błęb łędach, wersje oprogramowania, ścieżki,... ASP: trace.vxd PHP: phpinfo.php Informacje te mogą być przydatne w planowaniu dalszych ataków Bezpośrednie zagrożenie dla samej usługi, pośrednie dla jej klientów Odpowiedzialny: administrator Wyłą łączenie raportowania błęb łędów w na stronach WWW Zapis informacji o błęb łędach do pliku logu 33

Information Disclosure - przykład Dodatkowe metody ochrony: Własne pliki z komunikatami o błędach Wyłączenie możliwości przeglądania zawartości katalogów 34

Zdalne wykonywanie poleceń Zagrożone one sąs strony: Pozwalające na załadowanie adowanie przez użytkownika u własnych w plików, a następnie odwoływanie się do nich Uruchamiające ce polecenia systemowe z parametrami przekazanymi przez użytkownikau Odpowiedzialny: projektant/programista Rozważenie, czy funkcjonalność jest konieczna Filtrowanie typów w plików ładowanych na serwer Filtrowanie treści parametrów w poleceń pod kątem k występowania znaków w specjalnych powłoki oki 35

Zdalne wykonywanie poleceń atak Warunki: Użytkownik forum może wgrać plik z informacjami o sobie Można odwołać się bezpośrednio do ścieżki, w której znajduje się wgrany plik Nie jest sprawdzana nazwa i zawartość pliku Przebieg ataku Użytkownik wgrywa skrypt ASP/PHP zawierający polecenia systemowe Użytkownik wywołuje adres URL odwołujący się do pliku Polecenia są wykonywane z uprawnieniami serwera WWW 36

Zdalne wykonywanie poleceń atak 2 37

Błędy w konfiguracji systemów 38

Serwer WWW Dlaczego serwer WWW? Hosting strony WWW firmy Udostępnianie usług hostingowych Oferowanie innych usług przez WWW Aplikacje intranetowe Należy pamiętać o atakach z wewnątrz sieci Narzędzia testujące Dinis Cruz, OWASP ANSA Asp.Net Security Analyser ANBS Asp.Net Baseline Security v. 0.55 39

40

Top 10 don ts in ASP.NET conf. files Custom Errors Disabled Leaving Tracing Enabled Leaving Debugging Enabled Cookies Accessible Through Client-Side Script Cookieless Session State Enabled Cookieless Authentication Enabled Failure to Require SSL for Authentication Cookies Sliding Expiration Used Non-Unique Authentication Cookie Used Hardcoded Credentials Used 41

Bezpieczna konfiguracja.net / IIS Pliki konfiguracyjne ASP.NET Web.config (globalny i lokalne) Machine.config config (globalny) Ograniczenie uprawnień aplikacji webowych (do poziomu medium) Współdzielony hosting: : blokada możliwości zmiany uprawnień na poziomie pojedynczej aplikacji webowej Restrykcje dostępu do usługi ugi WMI,, WSH IIS: Tworzenie oddzielnych pul aplikacji Limity przydziału czasu procesora Limity przydziału pamięci 42

Web.config C:\WINDOWS WINDOWS\Microsoft.NET\Framework\<versi on>\config CONFIG\Web. Web.config <location allowoverride="false false"> <system.web web> <securitypolicy>... </securitypolicy securitypolicy> <trust level="medium" originurl="" /> </system.web web> </location location> 43

Web.config / Machine.config Globalny Web.config config: <system.web web> <trace enabled=" ="false" localonly=" ="true" " /> <httpcookies httponlycookies=" ="true"/> <customerrors mode=" ="RemoteOnly" " /> <authentication mode=" ="Forms"> <forms name="{abcd1234...}" slidingexpiration=" ="false" requiressl=" ="true" " /> </authentication authentication> </system.web web> Machine.config config: <system.web web> <deployment retail=" ="true" /> </system.web web> 44

Serwer baz danych Dlaczego serwer baz danych? Wsparcie dla serwera WWW Bazy danych produktów, klientów,... Baza danych w intranecie Ataki z wewnątrz sieci Narzędzia, materiały Narzędzia konfiguracyjne SQL Server 2005 SQL Server Best Practices Analyser http://www www.microsoft.com/poland/technet/ /technet/article/art0056_01.mspx http://blogs blogs.msdn.com/sqlrem Skrypty Gustavo o Duarte SQL Server 2005 http://duartes duartes.org/gustavo/articles/lock-down-sql-server Server-2005. 2005.aspx 45

Procedury składowane Procedury składowane Zwykłe: sp_xxx _xxx,, rozszerzone: r xp_xxx Domyślnie dostępne dla zwykłego użytkownikau ytkownika, np.: xp_regread (odczyt kluczy z rejestru Windows) xp_revokelogin / xp_grantlogin (nadawanie i odbieranie uprawnień logowania) Procedury nie zwrócą sensownych wyników w przy założ łożeniu dobrej konfiguracji systemu operacyjnego Blokada użycia u procedury składowane adowanej: REVOKE EXECUTE ON <name< name> > FROM public Szczególną uwagę należy zwrócić na procedurę xp_shellcmd 46

Ciekawostka: procedury składowane Enumeracja kont użytkowniku ytkowników w przy pomocy procedury xp_revokelogin Istniejąca nazwa konta Nieistniejąca nazwa konta 47

Ochrona serwera baz danych Ochrona na wyższych poziomach Sieć, firewall,, IDS/IPS,... System operacyjny Unikanie Mixed Mode Authentication Restrykcje dostępowe do baz master, msdb (USE master) REVOKE VIEW ANY DATABASE FROM public (USE msdb) ) REVOKE CONNECT TO guest Logowanie zdarzeń Osobna grupa użytkowniku ytkowników-administratorów w SQL Wykorzystanie schematów w i rólr Zastrzeżenie enie dostępu do metadanych 48

Podsumowanie 49

Przygotowanie bezpiecznej usługi (1) Pomysł Projekt Jaka funkcjonalność i dla kogo? Wybór technologii i rozwiązań Zgodność z prawem polskim i międzynarodowym Wiedza i świadomość Znajomość zagrożeń związanych z usługą Znajomość zagrożeń związanych z technologiami Ogólne zasady bezpieczeństwa IT Zasada minimalnych przywilejów (minimum privileges principle) Zasada dogłębnej ochrony (security( in-depth depth) 50

Przygotowanie bezpiecznej usługi (2) Budowa i konfiguracja środowiska System operacyjny Rozwiązania serwerowe Konfiguracja sieci Tworzenie usługi CMS czy własny kod? Konfiguracja usługi Wybór rozwiązania bezpiecznych płatności Niezależny audyt bezpieczeństwa Wstępny Cykliczny 51

Co warto zapamiętać? Usługi internetowe są narażone na szereg ataków Szczególnie zagrożone one sąs usługi ugi związane zane z przepływem danych osobowych i środków w finansowych (np. e-sklepy, e portale społecznościowe) Główną rolę w zabezpieczaniu e-use usług ug odgrywają ich twórcy oraz administratorzy systemów Najpoważniejszym i najczęściej występującym błędem jest nieodpowiednie filtrowanie danych lub jego brak Odpowiednie zabezpieczenie usług to kwestia kluczowa i złożona, ale nie do uniknięcia Knowing how to live with insecurity is the only security J. Allen Paulos 52

Więcej informacji (przykłady) Planowany cykl artykułów na portalu Startup-it it.pl,, rozszerzający tematykę dzisiejszej prezentacji Raport Zespołu u Bezpieczeństwa PCSS nt. bezpieczeń eństwa e-sklepe sklepów (np. sesje internetowe) http://security security.psnc.pl/reports/sklepy_internetowe_cookies.pdf Szkolenia MIC http://mic mic.psnc.pl/pl/events/ev_181207. _181207.html (bezpieczny kod) http://mic mic.psnc.pl/pl/events/ev_240608. _240608.html (bezpieczeństwo w firmie) MS Security Guidance for IIS http://www www.microsoft.com/technet/security/prodtech/iis. /IIS.mspx TOP 10 Don ts in ASP.NET configuration files http://www www.devx.com/dotnet/article/32493 The Open Web Application Security Project http://www www.owasp.orgorg 53

Informacje kontaktowe Autor prezentacji gerard.frankowski frankowski@man.poznan.plpl Centrum Innowacji Microsoft http://mic mic.psnc.plpl mic@man man.poznan.plpl PCSS http://www www.pcss.plpl Zespół Bezpieczeństwa PCSS http://security security.psnc.plpl security@man man.poznan.plpl 54

Pytania i dyskusja Dziękuj kuję za uwagę! 55