Opis przedmiotu zamówienia
Transkrypt
Opis przedmiotu zamówienia
Stronaǀ 1z5 Załącznik nr 1 do zapytania ofertowego Opis Przedmiotu Zamówienia na przeprowadzenie testów bezpieczeństwa systemu wspomagania nadzoru archiwalnego e-NADZÓR I. Definicje. 1. Dostawca – wykonawca systemu wspomagania nadzoru archiwalnego e-NADZÓR. 2. System – system wspomagania nadzoru archiwalnego e-NADZÓR (aplikacja Web). 3. Wykonawca – wyłoniony w ramach postępowania o udzielenie zamówienia publicznego poniżej 30000 euro – wykonawca zamówienia przedmiotem którego jest przeprowadzenie testów bezpieczeństwa Systemu e-NADZÓR. 4. Zamawiający – Naczelna Dyrekcja Archiwów Państwowych. 5. Fuzz testing (fuzzing) – automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim błędów. II. Kontekst zamówienia. 1. Ogólne informacje o zakładanej funkcjonalności Systemu. System wspomagania nadzoru archiwalnego ma umożliwiać wprowadzanie, przechowywanie, edytowanie oraz analizę danych dotyczących stanu przechowywania materiałów archiwalnych w jednostkach organizacyjnych ustalonych jako wytwarzających materiały archiwalne. 2. Ogólne informacje o systemie. System będzie zbudowany z wykorzystaniem oprogramowania bazującego na otwartych standardach i bezpłatnych licencjach (technologia WAMP/LAMP). System w swym ogólnym założeniu będzie aplikacją web opartą na języku PHP i bazie danych MySQL. Oprogramowanie powinno pozwolić na jednoczesną pracę 50 użytkowników. Szacowany maksymalny rozmiar pamięci dyskowej zajmowanej przez dane nie powinien przekroczyć 2 GB, a w początkowym okresie eksploatacji nie powinien być większy niż 300 MB. III. Przedmiot zamówienia. 1. Przedmiotem zamówienia jest przeprowadzenie przez Wykonawcę na rzecz Zamawiającego testów bezpieczeństwa opracowywanego systemu wspomagania nadzoru archiwalnego e-NADZÓR. 2. Wykonawcą testów bezpieczeństwa nie powinien być Dostawca Systemu lub podmiot zależny od Dostawcy Systemu. Stronaǀ 2z5 3. Testy bezpieczeństwa wykonane zostaną w ramach sprawdzenia działania Systemu w zakresie zgodności z postawionymi Dostawcy wymaganiami i przeprowadzone zostaną w dwu etapach: a. Etap pierwszy – testy przeprowadzone przed odbiorem oprogramowania Systemu (w ramach testowania funkcjonalności systemu – testów działania), które stanowić mają praktyczną ocenę stanu bezpieczeństwa wykonanego Systemu. Oprogramowanie zostanie przetestowane na serwerze Dostawcy. b. Etap drugi – testy zostaną przeprowadzone w ramach testów powdrożeniowych przed odbiorem wdrożonego Systemu, zainstalowanego na serwerze Zamawiającego i traktowane będą jako ostatnie sprawdzenie stanu bezpieczeństwa i poprawności funkcjonowania Systemu. IV. Założenia realizacyjne. 1. Wykonawca dostarczy Zamawiającemu kompletny model zagrożeń uwzględniający wszystkie role w testowanym Systemie oraz technologie, na których oparto testowany System (w terminie określonym w ppkt. V 1a). Model będzie wykonany według ogólnie przyjętej metodyki. 2. Na podstawie modelu Wykonawca opracuje i przekaże Zamawiającemu do akceptacji szczegółowy plan testów penetracyjnych opisanych w pkt. IV i VI (w terminie określonym w ppkt. V 1b). 3. Po zakończeniu testów przeprowadzonych w ramach wykonania pierwszej części przedmiotu umowy, w przypadku wykrycia nieprawidłowości Wykonawca nawiąże kontakt z przedstawicielami Dostawcy systemu, w celu wypracowania właściwych metod usunięcia wykrytych podatności. Po wprowadzeniu przez Dostawcę poprawek rekomendowanych przez Wykonawcę, Wykonawca przeprowadzi retest Systemu. Retest należy wykonać niezależnie od stopnia ryzyka wykrytych podatności (klasyfikacji ryzyka - krytyczne, średnie, niskie). W ramach retestu Wykonawca powinien min.: a) zweryfikować, czy wykryte podczas testów podatności i problemy z bezpieczeństwem zostały poprawnie rozwiązane, b) powtórzyć test penetracyjny typu white-box interfejsów dostępnych z Internetu, c) powtórzyć wewnętrzny test penetracyjny typu white-box interfejsów dostępnych w poszczególnych strefach DMZ, d) powtórzyć wewnętrzny test penetracyjny typu white-box styku interfejsów systemu i księgi głównej, 4. Na podstawie przeprowadzonych testów opisanych powyżej Wykonawca opracuje i przekaże Zamawiającemu (w terminie określonym w ppkt. V 1c), raport z przeprowadzonych testów. Raport powinien obejmować min.: a) streszczenie dla Kierownictwa Zamawiającego, b) opis wszystkich wykrytych podatności wraz z informacją o zastosowanej metodzie ich usunięcia, c) opinię o stanie bezpieczeństwa systemu, d) pozostałe rekomendacje. 5. Po zakończeniu testów przeprowadzonych w ramach wykonania drugiej części przedmiotu umowy, w przypadku wykrycia nieprawidłowości Wykonawca nawiąże kontakt z przedstawicielami Dostawcy systemu, w celu wypracowania właściwych Stronaǀ 3z5 metod usunięcia wykrytych podatności. Po wprowadzeniu przez Dostawcę poprawek rekomendowanych przez Wykonawcę, Wykonawca przeprowadzi retest Systemu. 6. Po zakończeniu testów opisanych powyżej, Wykonawca opracuje i przekaże Zamawiającemu (w terminie określonym w ppkt. V 1f), raport końcowy, opisujący aktualny poziom bezpieczeństwa i zawierający streszczenie dla Kierownictwa oraz opinię o stanie bezpieczeństwa Systemu i finalne rekomendacje zmierzające do dalszego podnoszenia poziomu jego bezpieczeństwa. Raport końcowy powinien również zawierać: a) definicje fuzzerów użytych do testowania aplikacji - materiał ten będzie stanowił część raportu końcowego jako załącznik, b) wynik automatycznego skanu kodu źródłowego jako załącznik do raportu końcowego. V. Harmonogram realizacji zamówienia. 1. Wykonawca zobowiązuje się w szczególności do wykonania wszystkich prac opisanych w opisie przedmiotu zamówienia, zgodnie z następującym harmonogramem prac: a) Wykonanie i dostarczenie (na informatycznym nośniku danych i w wersji papierowej) Zamawiającemu kompletnego modelu zagrożeń (opisanego w pkt. IV 1) w terminie do 29 września 2015 r. b) Wykonanie i dostarczenie (na informatycznym nośniku danych i w wersji papierowej) Zamawiającemu planu testów penetracyjnych (opisanych w pkt. IV, VI i VII) w terminie do 29 września 2015 r. c) przeprowadzenie testów penetracyjnych Systemu (opisanych w pkt. IV, VI i VII OPZ), w ramach testów działania w terminie do 29 września 2015 r., d) Wykonanie i dostarczenie (na informatycznym nośniku danych i w wersji papierowej) Zamawiającemu raportu z przeprowadzonych testów (opisanego w pkt. IV 4), w terminie do 29 września 2015 r. e) przeprowadzenie testów penetracyjnych Systemu (opisanych w pkt. IV, VI i VII OPZ),w ramach testów powdrożeniowych, w terminie do 12 listopada 2015 r. f) Wykonanie i dostarczenie (na informatycznym nośniku danych i w wersji papierowej) Zamawiającemu raportu końcowego z przeprowadzonych testów (opisanego w pkt. IV 6), w terminie do 12 listopada 2015 r. VI. Rodzaje przeprowadzonych testów penetracyjnych. 1. Testy penetracyjne przy założeniu zerowej wiedzy na temat badanego Systemu prowadzone z Internetu - typu „black-box”, (adres strony www na której będzie dostępny system zostanie podany Wykonawcy po podpisaniu umowy); a) analiza podatności Systemu pod kątem występowania błędów bezpieczeństwa, obejmująca co najmniej: - Configuration Management Testing, - Authorization and Authentication Testing, - Session Management Testing, - Data Validation Testing, Stronaǀ 4z5 2. 3. 4. 5. 6. 7. 8. VII. - Testing for Denial of Service, - Web Service Testing, Testy penetracyjne przy założeniu dysponowania standardowymi kontami w badanym systemie, mające na celu analizę podatności aplikacji na nieautoryzowane działania uprawnionych użytkowników (typu „grey-box”); Testy penetracyjne z dostępem testującego do kodu źródłowego i konfiguracji testowanej aplikacji oraz jej środowiska wykonania (typu „white-box”). Wykonawca otrzyma także dokumentację projektową aplikacji przed rozpoczęciem testu; a) testy penetracyjne typu white-box interfejsów dostępnych z Internetu, b) testy penetracyjne wewnętrzne typu white-box interfejsów dostępnych w poszczególnych strefach DMZ, c) testy penetracyjne wewnętrzne typu white-box styku interfejsów systemu i księgi głównej, d) przegląd krytycznych fragmentów kodu (autoryzacja, uwierzytelnienie, filtrowanie danych, dostęp do bazy danych), e) raportowanie wykrytych podatności w trybie on-line, uznanych przez Wykonawcę jako „krytyczne”, natychmiast po ich wykryciu, do Zamawiającego, f) każda wykryta podatność musi zawierać opis oraz sugerowaną metodę jej wykorzystania, a także analizę skutków dla Zamawiającego możliwości jej wykorzystania. Na przykład w przypadku podatności typu przepełnienie bufora lub sterty należy podać adres powrotu oraz sugerowany sposób uruchomienia sheilcode”u z uwzględnieniem wykorzystanych w docelowym systemie zabezpieczeń. W przypadku podatności w aplikacji webowej należy zademonstrować działający adres URL lub gotowy skrypt pozwalający na wykorzystanie podatności. Testy wydajnościowe systemu w celu identyfikacji tzw. „wąskich gardeł” i błędów w implementacji na poziomie architektury sieciowej oraz samej aplikacji; Testy wydajnościowe modułów raportujących; Testy wydajnościowe krytycznych formularzy; Testy wydajnościowe określające maksymalną liczbę użytkowników obsługiwanych równolegle; Strategia usunięcia podatności; Minimalne wymagania wobec testów penetracyjnych. 1. Test penetracyjny typu „white-box” interfejsu webowego: a) test wszystkich klas podatności z aktualnej listy OWASP Top 10, a w szczególności Injection (Al) i XSS (A2), b) testy bezpieczeństwa implementacji i konfiguracji protokołu SSL (A3, A6, A9), c) analiza bezpieczeństwa modelu i procesu uwierzytelnienia i autoryzacji, zgodnie z założeniami projektowymi oraz pod kątem bezpieczeństwa (A3), d) analiza bezpieczeństwa mechanizmu zarządzania sesją włącznie z jej kończeniem (A3), e) analiza walidacji danych wejściowych, f) analiza walidacji danych wyjściowych, g) zarządzanie plikami tymczasowymi, h) zarządzanie prawami dostępu do struktur katalogów na serwerach www (A8), Stronaǀ 5z5 i) j) k) l) m) n) fuzzing wszystkich pól formularzy, fuzzing wszystkich pól ciasteczek, fuzzing wszystkich pól protokołu aplikacyjnego, fuzzing wiadomości zapisywanych do dziennika zdarzeń (A7), ocena zgodności z ustawą o ochronie danych osobowych, przegląd wybranych przez Wykonawcę fragmentów kodu aplikacji: - przegląd za pomocą automatycznego skanera, - manualny przegląd kodu. 2. Testy penetracyjne typu „white-box” pozostałych interfejsów: a) skanowanie w poszukiwaniu podatności, b) fuzzing dostępnych protokołów sieciowych, c) test słabych haseł i domyślnych kont, d) testy procedur składowych baz danych. 3. Testy penetracyjne typu „white-box” komponentów Systemu: a) skanowanie pełnego zakresu portów TCP, b) skanowanie pełnego zakresu portów UDP; 4. Zakres zadań przeprowadzonych w ramach w/w testów obejmuje również min: a) próby enumeracji i wykorzystania znanych podatności w celu uzyskania nieautoryzowanego dostępu, b) próby podszywania się pod użytkownika/administratora i uzyskania nieautoryzowanego dostępu do systemu, c) próby zablokowania/umożliwienia dostępu do Systemu wszystkim lub wybranym jej użytkownikom, d) próby uzyskania nieautoryzowanego dostępu do danych przetwarzanych w systemie, e) próby uzyskania nieautoryzowanego dostępu do klientów zewnętrznych (np. poprzez podsłuch ruchu). f) próby dokonania nieautoryzowanych modyfikacji/usunięcia informacji w systemie, g) testy bezpieczeństwa aplikacji pod kątem typowych zagrożeń: - ataki semantyczne na adres URL, - ataki związane z ładowaniem plików, - ataki typu Cross-Site Scripting, - ataki typu CSRF, - podrabianie zarządzania formularza, - sfałszowanie żądania http, - ujawnienie uwierzytelnień dostępu, - wstrzykiwanie kodu SQL lub innych języków programowania, - ujawnienie danych przechowywanych w bazie, - kradzież cookies, - przechwytywanie sesji, - trawersowanie katalogów, - wstrzykiwanie poleceń systemowych.