Portal for ArcGIS에는 일반적인 보안 문제를 검사하는 Python 스크립트 도구(portalScan.py)가 포함되어 있습니다. 이 도구는 포털의 보안 환경 구성을 위한 몇 가지 모범 사례를 기반으로 문제를 검사합니다. 이 도구는 여러 조건 또는 구성 등록정보를 분석하여 3가지 단계의 심각도(위험, 중요, 권장)로 나눕니다. 이러한 조건에 대한 설명은 다음과 같습니다.
ID | 심각도 | 등록정보 | 설명 |
---|---|---|---|
PS01 | 매우 중요 | 프록시 제한 | 포털의 프록시 기능이 제한되는지를 확인합니다. 기본 설정에 따라 포털 프록시 서버는 모든 URL에 열립니다. DoS(Denial of Service) 또는 SSRF(Server Side Request Forgery) 공격 가능성을 완화하기 위해서는 포털의 프록시 기능이 승인된 웹 주소로 제한하는 것을 권장합니다. |
PS02 | 매우 중요 | 토큰 요청 | 쿼리 매개변수에 자격 증명이 포함된 토큰 생성 요청이 지원되는지를 확인합니다. 지원되는 경우 토큰 생성 시 사용자의 자격 증명을 URL의 일부로 제공할 수 있으며 이러한 자격 증명은 브라우저 기록이나 네트워크 로그를 통해 노출될 수 있습니다. 다른 응용프로그램에서 필요하지 않은 경우 이를 비활성화하는 것을 권장합니다. |
PS03 | 중요 | 포털 서비스 디렉터리 | 웹 브라우저를 통해 포털 서비스 디렉터리에 접근할 수 있는지를 확인합니다. 포털 항목, 서비스, 웹 맵, 그룹, 기타 리소스가 탐색되거나 웹 검색에서 찾아지거나 HTML 양식을 통해 쿼리될 수 있는 가능성을 줄이려면 이 옵션을 비활성화해야 합니다. |
PS04 | 중요 | 보안 통신 | 포털이 HTTPS를 통해서만 통신하는지를 확인합니다. 포털 내부 통신의 가로채기를 방지하려면 Web Adaptor를 호스팅하는 웹 서버와 포털을 SSL을 적용하도록 구성하는 것이 좋습니다. |
PS05 | 권장 | 빌트인 계정 등록 | 사용자가 포털 신청 페이지의 계정 생성 버튼을 클릭하여 빌트인 포털 계정을 생성할 수 있는지를 확인합니다. 기관별 계정을 사용하거나 모든 계정을 수동으로 생성하려면 이 옵션을 비활성화합니다. |
PS06 | 권장 | 익명 접근 | 익명 접근이 허용되는지를 확인합니다. 사용자가 포털에 자격 증명을 제공하지 않고는 콘텐츠에 접근하지 못하도록 하려면 익명 접근을 금지하도록 포털을 구성하는 것이 좋습니다. |
PS07 | 권장 | LDAP 아이덴티티 저장소 | 포털이 LDAP 아이덴티티 저장소로 구성되어 있으면 암호화된 통신이 사용되는지 여부를 확인합니다. 사용자 저장소 및 그룹 저장소 구성 매개변수에 나열된 ldapURLForUsers 및 ldapURLForRoles 등록정보에서 LDAPS를 사용하는 것을 권장합니다. |
PS08 | 권장 | 포털 SSL 인증서 | 포털에서 자체 서명된 인증서를 사용하는지를 확인합니다. 포털과 통신하는 클라이언트의 웹브라우저 경고 또는 기타 예기치 않은 동작을 줄이기 위해 포트 7443에 바인딩된 CA 서명 SSL 인증서를 가져와서 사용하는 것을 권장합니다. |
PS09 | 권장 | 도메인 간 요청 | 도메인 간(CORS) 요청에 제한이 없는지를 확인합니다. 알 수 없는 응용프로그램이 공유 포털 항목에 접속하는 가능성을 줄이기 위해 도메인 간 요청을 신뢰할 수 있는 도메인에서만 호스팅되는 응용프로그램으로 제한하는 것을 권장합니다. |
PS10 | 매우 중요 | 페더레이션된 서버 관리 URL | 포털에서 페더레이션된 서버의 관리자 URL에 연결될 수 있는지 여부와 이 URL에 사용된 SSL 인증서를 신뢰할 수 있는지를 확인합니다. 신뢰할 수 없거나 연결할 수 없는 경우 많은 포털 기능 및 작업에 실패합니다. |
PS11 | 권장 | 페더레이션된 서버 서비스 URL | 포털에서 페더레이션된 서버의 서비스 URL에 연결될 수 있는지 여부와 이 URL에 사용된 SSL 인증서를 신뢰할 수 있는지를 확인합니다. 신뢰할 수 없거나 연결할 수 없는 경우 포털은 계속 작동되지만 일부 포털 작업에 실패할 수 있습니다. |
PS12 | 권장 | 공개 콘텐츠 | 구성원이 공개적으로 콘텐츠를 공유할 수 없도록 포털이 구성되어 있으면 모든 사람과 계속 공유되는 항목이 나열됩니다. |
PS13 | 중요 | SAML 구성 설정 | 포털이 SAML 인증을 사용하도록 구성되어 있으면 암호화된 어설션 및 서명된 요청이 활성화되었는지 여부를 확인합니다. ID 공급자가 지원하는 경우, 포털이 암호화된 어설션 및 서명된 요청을 모두 요구하도록 구성하는 것을 권장합니다. |
PS14 | 중요 | 기본 인쇄 서비스 상태 | ArcGIS Server가 페더레이션되면 일반적으로 포털에서 기본 설정에 따라 구성되는 인쇄 서비스를 덮어씁니다. 기본 인쇄 서비스를 사용하지 않는 경우 비활성화하는 것을 권장합니다. |
PS15 | 권장 | 범례 서비스 상태 | 범례 서비스는 포털에서 이전 맵 및 피처 서비스로(SOAP를 통해) 범례 아이콘을 검색하는 데 사용됩니다. REST를 통해 범례 검색을 지원하지 않는 이전 서비스에 접근하지 않는 한 해당 서비스를 비활성화하는 것을 권장합니다. |
PS16 | 권장 | RSS 서비스 상태 | RSS 서비스는 포털에서 GeoRSS 피드와 통신하는 데 사용됩니다. 포털의 웹 맵을 통해 GeoRSS 피드에 접근할 수 없는 경우 해당 서비스를 비활성화하는 것을 권장합니다. |
PS17 | 권장 | KML 서비스 상태 | KML 서비스는 포털에서 KML 끝점과 통신하는 데 사용됩니다. 포털의 웹 맵을 통해 KML 끝점에 접근할 수 없는 경우 해당 서비스를 비활성화하는 것을 권장합니다. |
portalScan.py 스크립트는 <Portal for ArcGIS installation location>/tools/security 디렉터리에 있습니다. 동일한 디렉터리에 있는 portalScan Bash 스크립트를 사용하여 셸에서 스크립트를 실행합니다. 스크립트를 실행할 때는 매개변수를 하나 이상 지정할 수 있습니다.
portalScan.py 매개변수
다음 테이블에는 portalScan.py 매개변수에 대한 설명이 나와 있습니다.
매개변수 | 설명 |
---|---|
-n | Portal for ArcGIS에 설치되어 있는 머신의 정규화된 도메인 이름(즉, gisportal.domain.com)입니다. 기본값은 스크립트를 실행하는 머신의 호스트 이름입니다. |
-u | 관리자 계정의 사용자 이름입니다. |
-p | 관리자 계정의 비밀번호입니다. |
-o | 보안 스캔 보고서가 저장되는 디렉터리입니다. 기본 디렉터리는 스크립트를 실행하는 폴더입니다. |
-t | 사용자 이름과 비밀번호 대신 토큰을 생성하여 사용할 수 있습니다. 토큰을 생성할 때는 portalScan을 Webapp URL 필드에 입력해야 합니다. 토큰을 제공하면 입력된 사용자 이름이나 비밀번호는 무시됩니다. |
--ignoressl | SSL 인증서 확인을 비활성화합니다. 10.7.1부터 스크립트는 기본 설정에 따라 모든 SSL 인증서를 확인합니다. Python이 인증서 발급자를 신뢰하지 않으면 스크립트가 완료되지 않습니다. 필요한 경우 이 매개변수를 지정하여 모든 인증서를 무시할 수 있습니다. |
-h 또는 -? | 스크립트를 실행할 때 지정할 수 있는 매개변수 목록을 출력합니다. |
예시(사용자 홈 디렉터리에 기록된 결과 파일 사용):./portalScan -n portal.domain.com -u admin -p my.password -o ~
매개변수를 지정하지 않고 portalScan 스크립트를 실행하면 매개변수를 수동으로 입력하거나 기본값을 선택하라는 메시지가 표시됩니다. 토큰을 사용하려는 경우 스크립트를 실행할 때 매개변수로 제공해야 합니다.
검사를 통해 HTML 형식의 보고서가 생성되는데 이 보고서에는 지정된 포털에서 발견된 위의 문제가 나와 있습니다.
기본 설정에 따라 보고서는 스크립트를 실행하는 폴더에 portalScanReport_[hostname]_[date].html(이)라는 이름으로 저장됩니다.