W portalu ArcGIS Enterprise dostępne jest narzędzie skryptowe języka Python o nazwie portalScan.py, które wykonuje skanowanie pod kątem często spotykanych zagrożeń bezpieczeństwa. Narzędzie to wykrywa problemy na podstawie dobrych praktyk dotyczących konfigurowania bezpiecznego środowiska portalu.. Analizuje ono wiele kryteriów lub właściwości konfiguracyjnych i dzieli je na trzy poziomy ważności: Critical, Important oraz Recommended. Kryteria te zostały opisane poniżej:
ID | Ranga | Właściwość | Opis |
---|---|---|---|
PS01 | Critical | Ograniczenia serwera proxy | Określa, czy możliwości serwera proxy portalu zostały ograniczone. Domyślnie serwer proxy portalu zezwala na każdy adres URL. Aby uchronić się przed skutkami potencjalnych ataków typu odmowa usług (DoS) lub złośliwe żądania po stronie serwera (SSRF), zaleca się ograniczenie możliwości serwera proxy portalu do obsługi jedynie zatwierdzonych adresów internetowych. |
PS02 | Critical | Żądania tokena | Określa, czy jest obsługiwane generowanie żądań tokena z poświadczeniami w parametrach zapytań. Jeśli tak, wówczas podczas generowania tokenów poświadczenia użytkowników mogą być przekazywane jako część adresu URL i mogą zostać uwidocznione w historii przeglądarki albo w dziennikach sieci. Zaleca się wyłączenie tego elementu, chyba że jest wymagany przez inne aplikacje. |
PS03 | Important | Katalog usług portalu | Określa, czy katalog usług portalu jest dostępny z poziomu przeglądarki internetowej. Możliwość ta powinna być zablokowana, aby zmniejszyć prawdopodobieństwo przeglądania elementów, usług, map internetowych, grup i innych zasobów portalu, ich odnalezienia podczas wyszukiwania sieciowego lub tworzenia odnoszących się do nich zapytań za pomocą formularza HTML. |
PS04 | Important | Bezpieczna komunikacja | Określa, czy portal może się komunikować jedynie za pośrednictwem protokołu HTTPS. Aby zapobiec przechwyceniu jakiejkolwiek komunikacji w obrębie portalu, zalecane jest skonfigurowanie portalu i serwera internetowego hostującego aplikację Web Adaptor tak, aby wymuszały szyfrowanie SSL. |
PS05 | Recommended | Rejestracja wbudowanych kont | Określa, czy użytkownicy mogą kliknąć przycisk Utwórz konto na stronie rejestrowania portalu w celu utworzenia wbudowanego konta portalu. W przypadku używania kont specyficznych dla instytucji lub jeśli wszystkie konta mają być tworzone ręcznie, tę opcję należy zablokować. |
PS06 | Recommended | Dostęp anonimowy | Określa, czy dozwolony jest dostęp anonimowy. Aby zapobiec uzyskiwaniu dostępu do zasobów przez użytkowników bez wcześniejszego podania poświadczeń portalu, zalecane jest skonfigurowanie portalu tak, aby nie zezwalał na dostęp anonimowy. |
PS07 | Polecane | Magazyn tożsamości LDAP | Jeśli portal jest skonfigurowany z magazynem tożsamości LDAP, określa, czy używana jest komunikacja szyfrowana. Zaleca się użycie protokołu LDAPS we właściwościach ldapURLForUsers i ldapURLForRoles wymienionych w parametrach konfiguracji magazynu użytkowników i magazynu grup. |
PS08 | Polecane | Certyfikat SSL portalu | Decyduje o tym, czy w portalu jest używany certyfikat z podpisem własnym. Aby ograniczyć liczbę ostrzeżeń generowanych przez przeglądarki internetowe i inne nieoczekiwane działania aplikacji klienckich komunikujących się z portalem, zalecane jest zaimportowanie i używanie certyfikatu SSL wystawionego przez CA i powiązanego z portem 7443. |
PS09 | Polecane | Żądania międzydomenowe | Określa, czy żądania międzydomenowe (CORS) nie są ograniczane. Aby zmniejszyć ryzyko uzyskania dostępu do udostępnionego elementu portalu przez nieznaną aplikację, zaleca się ograniczyć żądania międzydomenowe wyłącznie do aplikacji hostowanych w zaufanych domenach. |
PS10 | Krytyczne | Administracyjny adres URL serwera sfederowanego | Określa, czy adres URL administratora serwera sfederowanego jest dostępny dla portalu i czy certyfikat SSL używany w tym adresie URL jest zaufany. Jeśli certyfikat jest niezaufany lub adres jest nieosiągalny, wiele funkcji i operacji w portalu kończy się niepowodzeniem. |
PS11 | Polecane | Adres URL usług serwera sfederowanego | Określa, czy adres URL usług serwera sfederowanego jest dostępny dla portalu i czy certyfikat SSL używany w tym adresie URL jest zaufany. Jeśli certyfikat jest niezaufany lub adres jest nieosiągalny, portal działa, ale niektóre operacje w portalu mogą kończyć się niepowodzeniem. |
PS12 | Polecane | Zasoby publiczne | Jeśli portal skonfigurowano w taki sposób, że jego członkowie nie mogą udostępniać zasobów publicznie, wyświetlona zostanie lista elementów, które są wciąż udostępniane wszystkim użytkownikom (ustawienie Wszyscy). |
Skrypt portalScan.py znajduje się w katalogu <Portal for ArcGIS installation location>/tools/security. Uruchom skrypt z poziomu okna lub wiersza poleceń. Dla tego skryptu można określić jeden lub kilka parametrów jego uruchamiania.
Parametry skryptu portalScan.py
W poniższej tabeli opisano parametry skryptu portalScan.py:
Parametr | Opis |
---|---|
-n | W pełni kwalifikowana nazwa domeny komputera, na którym jest zainstalowany portal (innymi słowy portalgis.domena.com). Domyślnie jest to nazwa hosta komputera, na którym działa skrypt. |
-u | Nazwa użytkownika konta administratora. |
-p | Hasło konta administratora. |
-o | Katalog, w którym będzie zapisywany raport skanowania bezpieczeństwa. Domyślnie jest to ten sam katalog, w którym został uruchomiony skrypt. |
-t | Może być wygenerowany token i używany zamiast nazwy użytkownika oraz hasła. Przy generowaniu tokena, w polu Webapp URL należy podać wartość portalScan. Po dostarczeniu tokena zastępuje on przekazaną nazwę użytkownika i hasło. |
--ignoressl | Wyłączenie weryfikacji certyfikatu SSL. Począwszy od wersji 10.7.1 skrypt będzie domyślnie próbował zweryfikować wszystkie certyfikaty SSL. Jeśli środowisko Python nie ufa wystawcy certyfikatów, wykonanie skryptu zakończy się niepowodzeniem. Jeśli to konieczne, można podać ten parametr, aby ignorować wszystkie certyfikaty. |
-h lub -? | Wyświetla listę dozwolonych parametrów uruchamianego skryptu. |
Przykład (plik wyjściowy zapisany w katalogu domowym użytkownika):./portalScan -n portal.domain.com -u admin -p my.password -o ~
Jeśli skrypt portalScan zostanie uruchomiony bez żadnych parametrów, pojawi się monit o wprowadzenie ich ręcznie lub wybranie wartości domyślnej. Jeśli ma być używany token, musi on być przekazany jako parametr przy uruchamianiu skryptu.
W wyniku skanowania jest generowany raport w formacie HTML zawierający listę znalezionych dla danego portalu problemów spośród przedstawionych wyżej.
Domyślnie raport jest zapisywany w tym samym folderze, w którym został uruchomiony skrypt i ma nazwę portalScanReport_[hostname]_[date].html.