Web Security Scanner 개요

>

이 페이지에서는 Web Security Scanner 개요를 제공합니다.

소개

Web Security Scanner는 App Engine, Google Kubernetes Engine(GKE), Compute Engine 웹 애플리케이션의 보안 취약점을 확인합니다. 애플리케이션을 크롤링하여 시작 URL 범위 내에 있는 모든 링크를 확인하고 최대한 많은 사용자 입력과 이벤트 핸들러 실행을 시도합니다. 현재 Web Security Scanner 방화벽으로 보호되지 않는 공개 URL과 IP만 지원합니다.

Web Security Scanner는 현재 App Engine 표준 환경 및 App Engine 가변형 환경, Compute Engine 인스턴스, GKE 리소스를 지원합니다.

Web Security Scanner는 기존의 보안 설계 및 개발 프로세스를 보완하도록 설계되었습니다. 거짓양성에 주의가 분산되지 않도록 하기 위해 Web Security Scanner는 지나치다 싶을 정도로 보고를 적게 하는 경향이 있으며 신뢰도가 낮은 알림은 표시하지 않습니다. 또한 이 스캐너는 수동 보안 검토를 대신할 수 없으며 이 스캐너를 사용한다고 해서 애플리케이션에 보안 결함이 없는 것은 아닙니다. 웹 보안에 대한 자세한 내용은 OWASP Top Ten Project를 참조하세요.

Google Cloud Security에 대해 자세히 알아보기

스캔 유형

Web Security Scanner는 공개 App Engine, GKE, Compute Engine 서비스 웹 애플리케이션을 위한 관리형 커스텀 웹 취약점 스캔을 제공합니다.

관리형 스캔

Web Security Scanner 관리형 스캔은 Security Command Center에서 구성하고 관리합니다. 관리형 스캔은 매주 자동으로 실행되며 공개 웹 엔드포인트를 감지하고 스캔합니다. 이러한 스캔은 인증을 사용하지 않으며 GET 전용 요청을 전송하므로 실시간 웹사이트에서 양식을 제출하지 않습니다.

관리형 스캔은 프로젝트 수준에서 정의한 커스텀 스캔과 별도로 실행됩니다. 관리형 스캔을 사용하면 개별 프로젝트팀을 구성할 필요 없이 조직의 프로젝트에 대한 기본 웹 애플리케이션 취약점 감지를 중앙에서 관리할 수 있습니다. 결과가 발견되면 해당 팀과 협력하여 더욱 포괄적인 커스텀 스캔을 설정할 수 있습니다.

Web Security Scanner를 서비스로 사용 설정하면 Security Command Center 취약점 탭과 관련 보고서에서 관리형 스캔 결과를 자동으로 사용할 수 있습니다. Web Security Scanner 관리형 스캔을 사용 설정하는 방법에 대한 자세한 내용은 Security Command Center 구성을 참조하세요.

커스텀 스캔

Web Security Scanner 커스텀 스캔은 오래된 라이브러리, 교차 사이트 스크립팅 또는 혼합 콘텐츠 사용과 같은 애플리케이션 취약점 발견 항목에 대한 세부적인 정보를 제공합니다. Web Security Scanner 커스텀 스캔 설정 가이드를 완료하면 Security Command Center에서 커스텀 스캔 발견 항목을 확인할 수 있습니다.

발견 항목 스캔

다음 테이블에는 지원되는 감지기 간의 매핑과 관련 규정 준수 원칙에 대한 최선의 매핑이 포함되어 있습니다.

CIS Google Cloud Foundation 1.0 매핑은 CIS Google Cloud Computing Foundations Benchmark v1.0.0에 맞게 조정되도록 인터넷 보안 센터에서 검토 및 인증하였습니다. 추가 규정 준수 매핑은 참조용으로 포함되어 있으며 결제 카드 산업 데이터 보안 표준 또는 OWASP 재단에서 제공하거나 검토하지 않습니다. 이러한 위반을 수동으로 확인하는 방법에 대한 자세한 내용은 CIS Google Cloud Computing Foundations Benchmark v1.0.0(CIS Google Cloud Foundation 1.0), 결제 카드 산업 데이터 보안 표준 3.2(PCI-DSS v3.2), OWASP Top Ten, 미국 국립 표준기술연구소 800-53(NIST 800-53) 국제표준화기구(ISO 27001)를 참조하세요.

이 기능은 규정 준수 제어 위반을 모니터링하기 위한 것입니다. 이 매핑은 규제 또는 업계 벤치마크나 표준을 준수하는 제품 또는 서비스의 규정 준수, 인증, 보고를 기반으로 사용하거나 대안으로 제공되지 않습니다.

다음은 Web Security Scanner 커스텀 스캔 및 관리형 스캔에서 식별된 발견 유형입니다.

표 18.Web Security Scanner 발견 항목
카테고리 발견 설명 CIS GCP Foundation 1.0 PCI-DSS v3.2 OWASP 상위 10개 NIST 800-53 ISO-27001
ACCESSIBLE_GIT_REPOSITORY GIT 저장소가 공개적으로 노출됩니다. 이 문제를 해결하려면 GIT 저장소에 대한 의도하지 않은 공개 액세스를 삭제합니다. A3
ACCESSIBLE_SVN_REPOSITORY SVN 저장소가 공개적으로 노출됩니다. 이 문제를 해결하려면 SVN 저장소에 대한 의도하지 않은 공개 액세스를 삭제합니다. A3
CLEAR_TEXT_PASSWORD 비밀번호가 명확한 텍스트로 전송되고 가로채기될 수 있습니다. 이 문제를 해결하려면 네트워크를 통해 전송된 비밀번호를 암호화하세요. A3
INVALID_CONTENT_TYPE 리소스가 로드되었지만 응답의 콘텐츠 유형 HTTP 헤더와 일치하지 않습니다. 이 문제를 해결하려면 `X-Content-Type-Options` HTTP 헤더를 올바른 값으로 설정하세요. A6
INVALID_HEADER 보안 헤더에 구문 오류가 있으며 브라우저에서 무시됩니다. 이 문제를 해결하려면 HTTP 보안 헤더를 올바르게 설정하세요. A6
MISMATCHING_SECURITY_HEADER_VALUES 보안 헤더에 중복되고 일치하지 않는 값이 존재하여 정의되지 않은 동작이 발생합니다. 이 문제를 해결하려면 HTTP 보안 헤더를 올바르게 설정하세요. A6
MISSPELLED_SECURITY_HEADER_NAME 보안 헤더가 잘못 입력되어 무시됩니다. 이 문제를 해결하려면 HTTP 보안 헤더를 올바르게 설정하세요. A6
MIXED_CONTENT 리소스가 HTTPS 페이지에서 HTTP 페이지를 통해 제공됩니다. 이 문제를 해결하려면 모든 리소스가 HTTPS를 통해 제공되는지 확인하세요. A6
OUTDATED_LIBRARY 알려진 취약점이 있는 라이브러리가 감지되었습니다. 이 문제를 해결하려면 라이브러리를 최신 버전으로 업그레이드하세요. A9
XSS 이 웹 애플리케이션의 필드는 교차 사이트 스크립팅(XSS) 공격에 취약합니다. 이를 해결하려면 신뢰할 수 없는 사용자 제공 데이터를 검증하고 이스케이프 처리하세요. A7
XSS_ANGULAR_CALLBACK 사용자가 제공한 문자열은 이스케이프 처리되지 않으며 AngularJS에서 보간될 수 있습니다. 이 문제를 해결하려면 Angular 프레임워크에서 처리하는 신뢰할 수 없는 사용자 제공 데이터를 검증하고 이스케이프 처리하세요. A7
XSS_ERROR 이 웹 애플리케이션의 필드는 교차 사이트 스크립팅 공격에 취약합니다. 이 문제를 해결하려면 신뢰할 수 없는 사용자 제공 데이터를 검증하고 이스케이프 처리합니다. A7

사용 시 주의사항

Web Security Scanner를 사용할 때는 다음과 같은 몇 가지 중요한 사항을 알아두어야 합니다.

  • Web Security Scanner는 지속적으로 개선되기 때문에 현재 스캔에서 보고되지 않은 문제가 향후 스캔에서 보고될 수 있습니다.
  • 애플리케이션의 일부 기능 또는 섹션이 테스트되지 않을 수도 있습니다.
  • Web Security Scanner는 발견되는 모든 컨트롤 및 입력을 활성화하려고 시도합니다.
  • 테스트 계정이 권한을 갖고 있는 상태 변경 작업을 노출할 경우 Web Security Scanner가 해당 작업을 활성화하게 될 수 있습니다. 이로 인해 원치 않는 결과가 발생할 수 있습니다.

누가 보안 스캔을 실행할 수 있나요?

Web Security Scanner에 사용할 수 있는 Identity and Access Management(IAM) 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.

보안 스캔에 얼마나 많은 시간이 필요한가요?

보안 스캔은 즉시 실행되는 것이 아니라, 대기열에 추가되었다가 이후에 실행되며, 시스템 부하에 따라서는 몇 시간 후에 실행될 수도 있습니다. 스캔이 실행되기 시작한 후 완료될 때까지 걸리는 시간은 애플리케이션의 크기에 따라 다릅니다. URL이 많은 대규모 애플리케이션은 완료하는 데 몇 시간이 걸릴 수도 있습니다.

대상 제한

Web Security Scanner에는 스캔 대상을 해당 스캔이 생성된 특정 App Engine 인스턴스로 제한하는 필터가 설정되어 있습니다. 다른 App Engine 프로젝트 또는 외부 도메인의 URL에 액세스하면 오류 메시지가 표시됩니다.

프로젝트 내에서 Web Security Scanner는 자동으로 로그아웃 URL과 스캔에 부정적인 영향을 줄 수 있는 그 밖의 일반 위치를 피하려고 시도합니다. 하지만 확실히 하기 위해 스캔 설정을 사용하여 수동으로 URL을 제외할 수도 있습니다.

권장사항

Web Security Scanner는 필드를 채우고 버튼을 누르고 링크를 클릭하는 등의 작업을 수행하므로 주의해서 사용해야 합니다. Web Security Scanner 사용 시 데이터 또는 시스템의 상태를 변경하는 기능이 활성화되어 원치 않는 결과가 발생할 수 있습니다.

예:

  • 공개 댓글을 허용하는 블로그 애플리케이션에서 Web Security Scanner가 모든 블로그 기사에 대한 댓글로 테스트 문자열을 게시할 수 있습니다.
  • 이메일 등록 페이지에서 Web Security Scanner가 다수의 테스트 이메일을 생성할 수 있습니다.

다음과 같은 몇 가지 기술을 개별적으로 또는 조합하여 사용하면 원치 않는 결과를 방지할 수 있습니다.

  1. 테스트 환경에서 스캔을 실행합니다. 별도의 App Engine 프로젝트를 만들고 애플리케이션과 데이터를 해당 프로젝트로 로드하여 테스트 환경을 설정합니다. gcloud 명령줄 도구를 사용하는 경우 앱을 업로드할 때 명령줄 옵션으로 대상 프로젝트를 지정할 수 있습니다.
  2. 테스트 계정을 사용합니다. 민감한 정보나 유해한 작업에 액세스할 수 없는 사용자 계정을 만들고 앱을 스캔할 때 사용합니다. 많은 애플리케이션에서는 사용자가 최초로 로그인할 때 약관 동의, 프로필 생성 등의 특별한 워크플로가 진행됩니다. 이처럼 워크플로가 다르기 때문에 초기 사용자의 테스트 계정을 사용할 경우에는 기존 사용자 계정을 사용할 때와는 다른 스캔 결과가 생성될 수 있습니다. 최초 로그인 과정이 완료된 후 일반적인 사용자 상태에 있는 계정으로 스캔하는 것이 가장 좋습니다.
  3. CSS 클래스 inq-no-click을 적용하여 활성화하지 않으려는 개별 UI 요소를 차단합니다. 이 요소에 연결된 이벤트 핸들러는 적절한 이벤트 핸들러 속성을 설정하여 인라인 자바스크립트이거나 addEventListener를 사용하여 연결되었는지 여부에 관계없이 크롤링 및 테스트 중에 활성화되지 않습니다.
  4. 백업 데이터를 사용합니다. 스캔하기 전에 데이터를 백업하는 것이 좋습니다.
  5. 제외되는 URL입니다. 크롤링 또는 테스트하지 않을 URL 패턴을 지정할 수 있습니다. 구문에 대한 자세한 내용은 URL 제외를 참조하세요.

스캔하기 전에 애플리케이션을 주의 깊게 감사하여 원하는 스캔 범위를 넘어 데이터, 사용자 또는 시스템에 영향을 미칠 수 있는 기능이 있는지 확인하세요.

다음 단계