O Projekcie:
Przedmiotem projektu było przeprowadzenie, jako niezależny audytor zewnętrzny, specjalistycznych testów bezpieczeństwa i wydajności Platformy e-Zamówienia, której powstanie kosztowało 41 594 304,00 PLN. Wykonawcą platformy był Pentacomp Systemy Informatyczne S.A. a Inżynierem Kontraktu: SOFTIQ Sp. z o.o.
Nowo powstała Platforma udostępnia usługi elektroniczne, wspierające realizację procesu udzielania zamówienia publicznego, w tym komunikacji elektronicznej między zamawiającymi a wykonawcami. Rejestracja na Platformie jest obowiązkowa dla wszystkich, jeśli Zamawiający chce opublikować plan postępowań oraz ogłoszenia w Biuletynie Zamówień Publicznych Celem realizacji Audytu bezpieczeństwa była identyfikacja podatności stanowiących lub mogących stanowić zagrożenie dla bezpieczeństwa przetwarzanych, przesyłanych i przechowywanych informacji i danych oraz ocena wydajności i dostępności Platformy na podstawie testów wydajnościowych i obciążeniowych, jak również identyfikacja potencjalnych pojedynczych punktów awarii: single point of failure (SPOF). Audyt miał wykazać niezależność i skalowalność poszczególnych usług Platformy w kontekście możliwości ich rozwoju przez niezależnych wykonawców.
Wyzwanie:
Zbudowana Platforma e-Zamówienia ma na celu wsparcie procesu elektronizacji zamówień publicznych, w trzech głównych obszarach:
- Zapewnienie narzędzia umożliwiającego użycie elektronicznych środków w komunikacji między zamawiającymi i wykonawcami, zgodnie z ustawą Pzp, w szczególności w zakresie składania ofert, wniosków, oświadczeń w postępowaniu o udzielenie zamówienia publicznego oraz innych dokumentów,
- Wydawanie w formie elektronicznej Biuletynu Zamówień Publicznych, służącego publikacji ogłoszeń w sprawach zamówień publicznych,
- Obsługa spoczywającego na zamawiających obowiązku składania rocznych sprawozdań z udzielonych zamówień w formie elektronicznej.
Platforma składa się z szeregu funkcjonalności, które zostały pogrupowane w logiczne moduły i komponenty obejmujące następujące obszary funkcjonalne. Moduły:
- Moduł Tożsamości (MT)
- Moduł Ogłoszeń (MO) a. Przygotowanie ogłoszeń i planów postępowań b. Biuletyn Zamówień Publicznych (BZP)
- Moduł Postępowań (MP) a. Inicjacja postępowania, aktualizacja statusu postępowania b. Komunikacja interesariuszy postępowania (pytania/odpowiedzi, zaproszenia, wyjaśnienia, odwołania, zawiadomienia)
- Moduł Ofert/Wniosków (MOW) a. Przygotowanie, składanie ofert/wniosków/prac konkursowych b. Przechowywanie i zabezpieczenie ofert/wniosków/prac konkursowych c. Otwarcie ofert/wniosków/prac konkursowych
- Moduł Monitorowania i Analiz (MMiA)Komponenty wspierające realizację e-usług:
- Centralne Repozytorium Danych (CRD)
- Komponent Komunikacji (KOM)
- System mailingowy (SM)
- Koordynator powiadomień (KP)
- Komponent Kryptograficzny (KK)
- Zarządca Kluczy (ZK)
- Zarządca Logów (ZL)
- Zarządca API (ZA)
- Portal Deweloperski (PD)
- e-Sender
- Komponent Administracyjny (KA)
- Komponent Edukacyjny (KE)
- System Obsługi Zgłoszeń (SOZ)
- Portal dostępowy (front-end WEB GUI)
Zamawiający udostępnił TestArmy następującą dokumentację: a. Projekt Techniczny (PT), b. Dokumentacja Techniczno-Powykonawcza.
Proces:
Audyt bezpieczeństwa realizowany był w 4 cyklach, związanych z przyrostem uruchamianych w ramach modułów funkcjonalności Platformy e-Zamówienia. Dla każdego cyklu zrealizowano następujące fazy działań:
- Faza 1 – planowanie testów
- Faza 2 – analiza architektury rozwiązania pod kątem zagadnień bezpieczeństwa
- Faza 3 – testy penetracyjne, wydajnościowe i obciążeniowe
- Faza 4 – przegląd kodu oprogramowania
- Faza 5 – opracowanie raportu końcowego z przeprowadzonych testów (Fazy 2-4)
- Faza 6 – przeprowadzenie re-testów po poprawieniu błędów krytycznych stwierdzonych w Fazach 2 – 4. Wnioski robocze z re-testów przekazywaliśmy Zamawiającemu najpóźniej w dniu zakończenia Fazy 6, natomiast końcowy raport z re-testów przekazaliśmy w ciągu 1 dnia roboczego od zakończenia testów tej Fazy.
Rezultaty:
- Przeprowadzono przegląd kodu źródłowego Platformy e-Zamówienia pod kątem zagadnień bezpieczeństwa (ze szczególnym uwzględnieniem poprawności walidacji przesyłanych do Platformy danych).
- Samodzielne zbudowano mapy testowanej Platformy, uwzględniającej liczbę i rodzaj urządzeń sieciowych, serwerowych oraz wersję udostępnianych usług, wg. modelu testowego Gray-Box.
- Zbadano podatności zastosowanej infrastruktury sieciowej, serwerowej oraz aplikacyjnej od strony Internetu oraz z wnętrza sieci.
- Przeprowadzono odpowiednio dobrane ataki na infrastrukturę sieciową, serwerową oraz aplikacyjną w zakresie: – Przeprowadzenia testów bezpieczeństwa Platformy poprzez próbę przełamania zabezpieczeń z zewnątrz i wewnątrz sieci, metodami wykorzystywanymi obecnie przez „cyberprzestępców” w tym backdoring, brute-force, łamanie kluczy PSK, rozszywania transmisji SSL/TLS, i innych na podstawie doświadczenia Wykonawcy. – Testów web aplikacji w oparciu co najmniej o standard OWASP (Open Web Applications Security Project), a w szczególności o klasyfikację OWASP Top 10, jak również na podstawie doświadczenia Wykonawcy. – Przeprowadzono testy bezpieczeństwa Platformy poprzez próbę nieautoryzowanego dostępu do zasobów, próbę nieautoryzowanego dostępu do web aplikacji [uwzględniając OWASP], próbę nieautoryzowanego dostępu do serwerów, próbę nieautoryzowanego dostępu do infrastruktury sieciowej, próbę nieautoryzowanego dostępu do danych w tym ich modyfikacji. – Przeprowadzono testy bezpieczeństwa w zakresie błędów logiki biznesowej. Przetestowane mają zostać wszystkie formularze GUI oraz wszystkie usługi REST API Platformy. – Przeprowadzono testy bezpieczeństwa Platformy e-Zamówienia wg przygotowanego przez Wykonawcę testów bezpieczeństwa planu i scenariuszy, na poziomie użytkownika niezalogowanego oraz zalogowanego, w tym eskalację uprawnień poprzez wykorzystanie funkcjonalności spoza danej roli (funkcjonalności dedykowanych dla innych ról). Zamawiający dostarczy po 2 konta użytkowników testowych z każdej z klas użytkowników, w sumie 6 kont. Przetestowane mają zostać wszystkie formularze GUI oraz wszystkie usługi REST API Platformy.
- Przeprowadzono, przy asyście Wykonawcy Platformy, weryfikacji konfiguracji i parametryzacji infrastruktury Platformy w celu zidentyfikowania podatności i błędów, w tym analizę konfiguracji serwerów baz danych, serwerów webowych konfiguracji poszczególnych urządzeń powinna być przeprowadzona dla wszystkich urządzeń (nawet w przypadku, jeżeli mają zbliżoną konfigurację).
- Przeprowadzono testy wydajnościowe Platformy e-Zamówienia wg przygotowanego planu i scenariuszy mających na celu zbadanie rzeczywistej wydajności modułów i komponentów Platformy w badanej konfiguracji oraz oceny braku wycieków zasobów.
- Przeprowadzono testy obciążeniowe Platformy e-Zamówienia wg przygotowanego planu i scenariuszy mających na celu określenie warunków granicznych obciążenia, dla których Platforma przestaje spełniać założone wymagania co do responsywności i dostępności, i przeprowadzenie analizy skalowalności.
- Przeprowadzenie testy w zakresie identyfikacji potencjalnych pojedynczych punktów awarii -Single point of failure (SPOF).
- Zweryfikowano wpływ opracowanych procedur eksploatacyjnych na bezpieczeństwo Platformy.
Podsumowanie wykonanych testów, przeglądu kodu źródłowego Platformy e-Zamówienia oraz przeglądu dokumentacji eksploatacyjnej w postaci szczegółowego raportu z przeprowadzonych testów, z wyszczególnieniem wykorzystanych narzędzi oraz technik, sporządzono zgodnie z klasyfikacją błędów dla wszystkich podatności i dodatkowo dla web aplikacji według wytycznych standardów OWASP. Platforma e-Zamówienia pozwala na cyfryzację procesu zamówień publicznych. Nie byłoby to możliwe bez zapewnienia odpowiedniej wydajności i bezpieczeństwa systemów. Projekty takie jak ten świadczą o odpowiedzialnym podejściu do budowania państwowej infrastruktury cyfrowej.