Cisco Umbrella Web Proxy 로그 수집

다음에서 지원:

이 문서에서는 Amazon S3를 사용하여 Cisco Umbrella 웹 프록시 로그를 Google Security Operations로 수집하는 방법을 설명합니다. Cisco Umbrella Web Proxy는 클라우드 기반 보안 웹 게이트웨이 (SWG) 역할을 하며 웹 트래픽에 대한 전체 URL 가시성과 제어 기능을 제공합니다. 웹 프록시 로그는 Umbrella 지능형 프록시를 통해 프록시된 요청의 전체 URL, 사용자 ID, 콘텐츠 유형, 보안 평결을 비롯한 HTTP 및 HTTPS 트래픽 세부정보를 캡처합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • 전체 관리자 또는 읽기 전용 관리자 역할이 있는 Cisco Umbrella 대시보드에 대한 권한 있는 액세스
  • AWS (S3, IAM)에 대한 액세스 권한
  • 지능형 프록시가 사용 설정된 Cisco Umbrella 보안 인터넷 게이트웨이 (SIG) 또는 DNS Security Advantage 라이선스

Amazon S3로 Cisco Umbrella 로그 내보내기 구성

Cisco Umbrella는 기본적으로 관리하는 Amazon S3 버킷으로 웹 프록시 로그를 내보내는 기능을 지원합니다. Umbrella DNS 로그에 대해 S3 로그 내보내기를 이미 구성한 경우 동일한 S3 버킷과 IAM 구성을 재사용할 수 있습니다. Umbrella는 프록시 로그를 별도의 접두사에 저장합니다.

  1. https://dashboard.umbrella.com에서 Cisco Umbrella 대시보드에 로그인합니다.
  2. 관리 > 로그 관리로 이동합니다.
  3. S3 로그 내보내기가 아직 구성되지 않은 경우 회사 관리 Amazon S3 버킷 사용을 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 버킷 이름: S3 버킷의 이름을 입력합니다 (예: umbrella-logs).
    • 리전: 버킷이 있는 AWS 리전을 선택합니다.
  5. 아직 저장하지 않은 경우 Umbrella에 표시된 AWS 계정 ID외부 ID를 복사합니다.
  6. 저장을 클릭합니다.

Google SecOps용 AWS S3 버킷 및 IAM 구성

  1. 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
  2. 나중에 참조할 수 있도록 버킷 이름리전을 저장합니다(예: umbrella-logs).
  3. 이 사용자 가이드(IAM 사용자 만들기)에 따라 사용자를 만듭니다.
  4. 생성된 사용자를 선택합니다.
  5. 보안용 사용자 인증 정보 탭을 선택합니다.
  6. 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
  7. 사용 사례서드 파티 서비스를 선택합니다.
  8. 다음을 클릭합니다.
  9. 선택사항: 설명 태그를 추가합니다.
  10. 액세스 키 만들기를 클릭합니다.
  11. CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키보안 비밀 액세스 키를 저장합니다.
  12. 완료를 클릭합니다.
  13. 권한 탭을 선택합니다.
  14. 권한 정책 섹션에서 권한 추가를 클릭합니다.
  15. 권한 추가를 선택합니다.
  16. 정책 직접 연결을 선택합니다.
  17. AmazonS3FullAccess 정책을 검색합니다.
  18. 정책을 선택합니다.
  19. 다음을 클릭합니다.
  20. 권한 추가를 클릭합니다.

Cisco Umbrella S3 액세스를 위한 IAM 정책 및 역할 구성

Cisco Umbrella가 S3 버킷에 로그를 쓰려면 교차 계정 IAM 역할이 필요합니다.

  1. AWS 콘솔에서 IAM > 정책 > 정책 만들기 > JSON 탭으로 이동합니다.
  2. 다음 정책을 복사하여 붙여넣습니다 (다른 버킷 이름을 입력한 경우 umbrella-logs를 바꿈).

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowUmbrellaPutObjects",
          "Effect": "Allow",
          "Action": [
            "s3:PutObject",
            "s3:GetBucketLocation"
          ],
          "Resource": [
            "arn:aws:s3:::umbrella-logs",
            "arn:aws:s3:::umbrella-logs/*"
          ]
        }
      ]
    }
    
  3. 다음 > 정책 만들기를 클릭합니다. 이름을 UmbrellaS3WritePolicy로 지정합니다.

  4. IAM > 역할 > 역할 만들기 > 맞춤 신뢰 정책으로 이동합니다.

  5. 다음 신뢰 정책을 붙여넣고 UMBRELLA_AWS_ACCOUNT_IDUMBRELLA_EXTERNAL_ID을 Umbrella 대시보드에서 복사한 값으로 바꿉니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::UMBRELLA_AWS_ACCOUNT_ID:root"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "sts:ExternalId": "UMBRELLA_EXTERNAL_ID"
            }
          }
        }
      ]
    }
    
  6. 다음을 클릭합니다.

  7. UmbrellaS3WritePolicy 정책을 연결합니다.

  8. 역할 이름을 UmbrellaS3Role로 지정하고 역할 만들기를 클릭합니다.

  9. Umbrella 대시보드에서 사용할 역할 ARN을 복사합니다.

Cisco Umbrella 로그 내보내기 확인

  1. Cisco Umbrella 대시보드로 돌아갑니다.
  2. 관리 > 로그 관리로 이동합니다.
  3. 아직 구성하지 않은 경우 생성한 IAM 역할의 역할 ARN을 입력합니다.
  4. 확인을 클릭하여 Umbrella가 S3 버킷에 쓸 수 있는지 확인합니다.
  5. 인증이 완료되면 Umbrella에서 프록시 로그를 S3 버킷으로 내보내기 시작합니다.

Cisco Umbrella Web Proxy 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. + 새 피드 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다(예: Cisco Umbrella Web Proxy logs).
  4. 소스 유형으로 Amazon S3 V2를 선택합니다.
  5. 로그 유형으로 Cisco Umbrella 웹 프록시를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.

    • S3 URI: s3://umbrella-logs/proxylogs/
    • 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키
    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.

  9. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
ampDisposition security_result.detection_fields[].value 원시 로그의 ampDisposition 값입니다.
ampMalware security_result.detection_fields[].value 원시 로그의 ampMalware 값입니다.
ampScore security_result.detection_fields[].value 원시 로그의 ampScore 값입니다.
avDetections security_result.detection_fields[].value 원시 로그의 avDetections 값입니다.
blockedCategories security_result.threat_name 원시 로그의 blockedCategories 값입니다.
certificateErrors security_result.detection_fields[].value 원시 로그의 certificateErrors 값입니다.
contentType security_result.detection_fields[].value 원시 로그의 contentType 값입니다.
destinationIp target.ip 원시 로그의 destinationIp 값입니다.
destinationListID security_result.detection_fields[].value 원시 로그의 destinationListID 값입니다.
dlpstatus security_result.detection_fields[].value 원시 로그의 dlpstatus 값입니다.
externalIp principal.ip 원시 로그의 externalIp 값입니다.
fileAction security_result.detection_fields[].value 원시 로그의 fileAction 값입니다.
fileName target.file.names 원시 로그의 fileName 값입니다.
identitiesV8 principal.hostname 원시 로그의 identitiesV8 값입니다.
identity principal.location.name 원시 로그의 identity 값입니다.
internalIp principal.ip 원시 로그의 internalIp 값입니다.
isolateAction security_result.detection_fields[].value 원시 로그의 isolateAction 값입니다.
referer network.http.referral_url 원시 로그의 referer 값입니다.
requestMethod network.http.method 원시 로그의 requestMethod 값입니다.
requestSize security_result.detection_fields[].value 원시 로그의 requestSize 값입니다.
responseBodySize security_result.detection_fields[].value 원시 로그의 responseBodySize 값입니다.
responseSize security_result.detection_fields[].value 원시 로그의 responseSize 값입니다.
ruleID security_result.rule_id 원시 로그의 ruleID 값입니다.
rulesetID security_result.detection_fields[].value 원시 로그의 rulesetID 값입니다.
sha security_result.about.file.sha256 원시 로그의 sha 값입니다.
statusCode network.http.response_code 원시 로그의 statusCode 값입니다.
ts timestamp 원시 로그의 ts 값이 타임스탬프로 파싱됩니다.
url target.url 원시 로그의 url 값입니다.
userAgent network.http.user_agent 원시 로그의 userAgent 값입니다.
verdict security_result.detection_fields[].value 원시 로그의 verdict 값입니다.
warnstatus security_result.detection_fields[].value 원시 로그의 warnstatus 값입니다. 원시 로그의 collection_time 값입니다. NETWORK_HTTP로 하드코딩되었습니다. Cisco로 하드코딩되었습니다. Umbrella로 하드코딩되었습니다. UMBRELLA_WEBPROXY로 하드코딩되었습니다. URL 필드 (http 또는 https)의 스키마에서 파생됩니다. 사용자 에이전트 파싱 라이브러리를 사용하여 userAgent 필드에서 파싱됩니다. 원시 로그의 requestSize 값이 정수로 변환됩니다. 원시 로그의 responseSize 값이 정수로 변환됩니다. identityType (또는 identitiesV8이 있는 identityTypeV8)이 사용자를 나타내는 경우 identity 필드에서 파생됩니다. 표시 이름, 이름, 성, 이메일 주소와 같은 사용자 세부정보를 추출하기 위해 추가로 파싱됩니다. verdict 필드에서 매핑됨: allowed 또는 allowed -> ALLOW, 기타 값 -> BLOCK categories이 비어 있지 않으면 NETWORK_CATEGORIZED_CONTENT로 설정합니다. 원시 로그의 categories 값입니다. verdict 및 기타 필드를 기반으로 합니다. 일반적으로 Traffic allowed 또는 Traffic blocked입니다. verdictallowed 또는 blocked이 아니고 statusCode이 있으면 요약은 Traffic %{statusCode}입니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.