

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# GuardDuty에서 조사 결과 필터링
<a name="guardduty_filter-findings"></a>

결과 필터를 사용하면 지정한 기준과 일치하는 결과를 보고 일치하지 않는 결과를 필터링할 수 있습니다. Amazon GuardDuty 콘솔을 사용하여 결과 필터를 손쉽게 생성하거나 JSON을 사용한 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateFilter.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateFilter.html) API로 검색 필터를 생성할 수 있습니다. 콘솔에서 필터를 생성하는 방법을 이해하려면 다음 섹션을 검토하세요. 이러한 필터를 사용하여 발생한 결과를 자동으로 보관하려면 [GuardDuty의 억제 규칙](findings_suppression-rule.md) 섹션을 참조하세요.

필터를 생성할 때 다음 목록을 고려하세요.
+ 특정 필터 기준으로 최소 1개부터 최대 50개까지 속성을 지정할 수 있습니다.
+ **같음** 또는 **같지 않음** 연산자를 사용하여 Account ID 같은 속성 값을 필터링하면 최대 50개의 값을 지정할 수 있습니다.
+ 각 필터 기준 속성은 `AND` 연산자로 평가됩니다. 동일한 속성에 대한 여러 개의 값은 `AND/OR`로 평가됩니다.
+ 각의에서 생성할 수 있는 저장된 필터의 최대 수 AWS 계정 에 대한 자세한 내용은 섹션을 AWS 리전참조하세요[GuardDuty 할당량](guardduty_limits.md).

다음 섹션에서는 GuardDuty 콘솔, API 및 CLI 명령을 사용하여 필터를 생성하고 저장하는 방법에 대한 지침을 제공합니다. 계속하려면 원하는 액세스 방법을 선택합니다.

## GuardDuty 콘솔에서 필터 설정 생성 및 저장
<a name="filter_console"></a>

GuardDuty 콘솔을 통해 결과 필터를 생성하고 테스트할 수 있습니다. 콘솔을 통해 생성된 필터는 억제 규칙 또는 향후 필터 작업에 사용할 수 있도록 저장할 수 있습니다. 필터는 하나 이상의 필터 기준으로 구성되고, 이 기준은 하나 이상의 값과 쌍을 이루는 하나의 필터 속성으로 구성됩니다.

**필터 기준을 생성하고 저장하려면(콘솔)**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) GuardDuty 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **조사 결과**를 선택합니다.

1. **조사 결과** 페이지에서 **저장된 규칙** 메뉴 옆의 *조사 결과 필터링* 막대를 선택합니다. 그러면 **속성 필터**의 확장된 목록이 표시됩니다.  
![\[속성 필터를 선택하여 GuardDuty 콘솔에서 조사 결과를 필터링합니다.\]](http://docs.aws.amazon.com/ko_kr/guardduty/latest/ug/images/guardduty-findings-page-console.png)

1. 확장된 필터 목록에서 조사 결과 테이블을 필터링할 기준이 되는 속성을 선택합니다.

   예를 들어 잠재적으로 영향을 받을 수 있는 리소스가 **S3Bucket**인 조사 결과를 보려면 **리소스 유형**을 선택합니다.

1. **연산자**에서 원하는 결과를 얻기 위해 조사 결과를 필터링하는 데 도움이 되는 연산자를 선택합니다. 이전 단계의 예제를 계속하려면 **리소스 유형 =**을 선택합니다. 그러면 GuardDuty의 리소스 유형 목록이 표시됩니다.  
![\[GuardDuty 콘솔에서 소가 결과를 필터링하기 위해 같음 또는 같지 않음 연산자를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/guardduty/latest/ug/images/guardduty-findings-page-filters-operator-console.png)

   사용 사례에서 특정 조사 결과를 제외해야 하는 경우 **같지 않음** 또는 **\$1=** 연산자를 선택할 수 있습니다.

1. 선택한 속성 필터의 값을 지정합니다. 필요한 경우 **적용**을 선택합니다. 이전 단계의 예제를 계속하려면 **S3Bucket**을 선택하면 됩니다.

   그러면 적용된 필터와 일치하는 조사 결과가 표시됩니다.

1. 필터 기준을 두 개 이상 추가하려면 3\$16단계를 반복합니다.

   전체 속성 목록은 [GuardDuty의 속성 필터](#filter_criteria)을 참조하세요.

1. 

**(선택 사항) 지정된 속성과 값을 필터로 저장합니다.**

   나중에 이 필터 조합을 다시 적용하려면 지정된 속성과 해당 값을 필터 세트로 저장할 수 있습니다.

   1. 속성 필터를 하나 이상 사용하여 필터 기준을 생성한 후 **필터 지우기** 메뉴에서 *화살표*를 선택합니다.  
![\[조사 결과를 다시 필터링할 수 있도록 GuardDuty 콘솔에 필터 세트를 저장합니다.\]](http://docs.aws.amazon.com/ko_kr/guardduty/latest/ug/images/guardduty-findings-page-filters-console.png)

   1. 필터 세트 **이름**을 입력합니다. 이름은 3\$164자여야 합니다. 유효한 문자는 a\$1z, A\$1Z, 0\$19, .(마침표), -(하이픈) 및 \$1(밑줄)입니다.

   1. **설명**은 선택 사항입니다. 설명을 입력하면 최대 512자까지 입력할 수 있습니다.

   1. **생성(Create)**을 선택합니다.

## GuardDuty API 및 CLI를 사용하여 필터 세트 생성 및 저장
<a name="guardduty-creating-filters-using-api-cli"></a>

API 또는 CLI 명령을 사용하여 조사 결과 필터를 생성하고 테스트할 수 있습니다. 필터는 하나 이상의 필터 기준으로 구성되고, 이 기준은 하나 이상의 값과 쌍을 이루는 하나의 필터 속성으로 구성됩니다. 나중에 [억제 규칙](findings_suppression-rule.md)을 생성하거나 다른 필터 작업을 수행하기 위해 필터를 저장할 수 있습니다.

**API/CLI를 사용하여 조사 결과 필터를 생성하려면**
+ 필터를 생성 AWS 계정 하려는의 리전 탐지기 ID를 사용하여 [CreateFilter](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateFilter.html) API를 실행합니다.

  계정 및 현재 리전에 대한 `detectorId`를 찾으려면 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) 콘솔의 **설정** 페이지를 참조하거나 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html) API를 실행합니다.
+ 또는 [create-filter](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/create-filter.html) CLI를 사용하여 필터를 생성하고 저장할 수 있습니다. [GuardDuty의 속성 필터](#filter_criteria)에서 하나 이상의 필터 기준을 사용할 수 있습니다.

  빨간색으로 표시된 자리 표시자 값을 대체하여 다음 예제를 사용합니다.  
**예제 1**: 특정 조사 결과 유형과 일치하는 모든 조사 결과를 볼 수 있는 새 필터 생성  
다음 예제에서는 특정 이미지에서 생성된 인스턴스의 모든 `PortScan` 조사 결과와 일치하는 필터를 생성합니다. 자리 표시자 값은 빨간색으로 표시됩니다. 이러한 값을 귀하의 계정에 적합한 값으로 바꿉니다. 예를 들어 *12abc34d567e8fa901bc2d34EXAMPLE*을 자체 리전 탐지기 ID로 바꿉니다.  

  ```
  aws guardduty create-filter \
  --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \
  --name FilterExampleName \
  --finding-criteria '{"Criterion": {"type": {"Equals": ["Recon:EC2/Portscan"]}, "resource.instanceDetails.imageId": {"Equals":["ami-0a7a207083example"]}} }'
  ```  
**예제 2**: 심각도 수준과 일치하는 모든 조사 결과를 볼 수 있는 새 필터 생성  
다음 예제에서는 `HIGH` 심각도 수준과 관련된 모든 결과와 일치하는 필터를 생성합니다. 자리 표시자 값은 빨간색으로 표시됩니다. 이러한 값을 귀하의 계정에 적합한 값으로 바꿉니다. 예를 들어 *12abc34d567e8fa901bc2d34EXAMPLE*을 자체 리전 탐지기 ID로 바꿉니다.  

  ```
  aws guardduty create-filter \
  --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \
  --name FilterExampleName \
  --finding-criteria '{"Criterion": {"severity": {"Equals": ["7", "8"]}} }'
  ```
+ API/CLI의 경우 [검색 조사 결과 심각도 수준](guardduty_findings-severity.md)는 숫자로 표시됩니다. 심각도 수준을 기준으로 조사 결과를 필터링하려면 다음 값을 사용합니다.
  + `LOW` 심각도 수준의 경우 `{ "severity": { "Equals": ["1", "2", "3"] } }` 사용
  + `MEDIUM` 심각도 수준의 경우 `{ "severity": { "Equals": ["4", "5", "6"] } }` 사용
  + `HIGH` 심각도 수준의 경우 `{ "severity": { "Equals": ["7", "8"] } }` 사용
  + `CRITICAL` 심각도 수준의 경우 `{ "severity": { "Equals": ["9", "10"] } }` 사용
  + 심각도 수준이 여러 개인 조사 결과의 경우 다음 예와 유사한 자리 표시자 값(`{ "severity": { "Equals": ["7", "8", "9", "10"] } }`)을 사용

    이 예제에서는 `HIGH` 또는 `CRITICAL` 심각도 수준이 있는 조사 결과를 보여줍니다.
**참고**  
심각도 수준과 연결된 모든 숫자 값 대신 숫자 값이 하나뿐인 예제를 지정하면 API 및 CLI에 필터링된 조사 결과가 표시될 수 있습니다. GuardDuty 콘솔에서 이 저장된 필터 세트를 사용하면 예상대로 작동하지 않습니다. 이는 GuardDuty 콘솔이 필터 값을 `CRITICAL`, `HIGH`, `MEDIUM` 및 `LOW`로 간주하기 때문입니다. 예를 들어 `{ "severity": { "Equals": ["9"] } }`를 포함하는 CLI 명령으로 생성된 필터는 API/CLI에 적절한 출력을 표시할 것으로 예상됩니다. 그러나 이 저장된 필터는 GuardDuty 콘솔에서 사용할 때 부분 심각도 수준을 포함하며 예상되는 출력을 표시하지 않습니다. 따라서 API 및 CLI가 각 심각도 수준과 연결된 모든 값을 지정해야 합니다.

## GuardDuty의 속성 필터
<a name="filter_criteria"></a>

API 작업을 사용하여 필터를 만들거나 결과를 정렬할 때는 JSON에서 필터 기준을 지정해야 합니다. 이러한 필터 기준은 결과의 세부 정보 JSON과 상관관계가 있습니다. 다음 표에는 필터 속성에 대해 콘솔에 표시되는 이름 및 해당 JSON 필드 이름 목록이 나와 있습니다.


| 콘솔 필드 이름 | JSON 필드 이름 | 
| --- | --- | 
| 계정 ID | accountId | 
| 결과 ID | id | 
| 리전 | 리전 | 
| 심각도 | severity 검색 결과 유형의 심각도 수준에 따라 검색 결과 유형을 필터링할 수 있습니다. 심각도 값에 대한 자세한 내용은 [GuardDuty 조사 결과의 심각도 수준](guardduty_findings-severity.md)를 참조하세요. API AWS CLI또는와 `severity` 함께 CloudFormation를 사용하는 경우 숫자 값이 할당됩니다. 자세한 내용은 *Amazon GuardDuty API 참조*에서 [findingCriteria](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateFilter.html#guardduty-CreateFilter-request-findingCriteria)를 참조하세요. | 
| 찾기 유형 | type | 
| 업데이트된 시간 | updatedAt | 
| 액세스 키 ID | resource.accessKeyDetails.accessKeyId | 
| 보안 주체 ID | resource.accessKeyDetails.principalId | 
| 사용자 이름 | resource.accessKeyDetails.userName | 
| 사용자 유형 | resource.accessKeyDetails.userType | 
| IAM 인스턴스 프로파일 ID | resource.instanceDetails.iamInstanceProfile.id | 
| 인스턴스 ID | resource.instanceDetails.instanceId | 
| 인스턴스 이미지 ID | resource.instanceDetails.imageId | 
| 인스턴스 태그 키 | resource.instanceDetails.tags.key | 
| 인스턴스 태그 값 | resource.instanceDetails.tags.value | 
| IPv6 주소 | resource.instanceDetails.networkInterfaces.ipv6Addresses | 
| 프라이빗 IPv4 주소 | resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress | 
| 공개 DNS 이름 | resource.instanceDetails.networkInterfaces.publicDnsName | 
| 퍼블릭 IP | resource.instanceDetails.networkInterfaces.publicIp | 
| 보안 그룹 ID | resource.instanceDetails.networkInterfaces.securityGroups.groupId | 
| 보안 그룹 이름 | resource.instanceDetails.networkInterfaces.securityGroups.groupName | 
| 서브넷 ID | resource.instanceDetails.networkInterfaces.subnetId | 
| VPC ID | resource.instanceDetails.networkInterfaces.vpcId | 
| Outpost ARN | resource.instanceDetails.outpostARN | 
| 리소스 유형 | resource.resourceType | 
| 버킷 권한 | resource.s3BucketDetails.publicAccess.effectivePermission | 
| 버킷 이름  | resource.s3BucketDetails.name | 
| 버킷 태그 키 | resource.s3BucketDetails.tags.key | 
| 버킷 태그 값 | resource.s3BucketDetails.tags.value | 
| 버킷 유형 | resource.s3BucketDetails.type | 
| 작업 유형 | service.action.actionType | 
| API 호출됨 | service.action.awsApiCallAction.api | 
| API 호출자 유형 | service.action.awsApiCallAction.callerType | 
| API 오류 코드 | service.action.awsApiCallAction.errorCode | 
| API 호출자 도시 | service.action.awsApiCallAction.remoteIpDetails.city.cityName | 
| API 호출자 국가 | service.action.awsApiCallAction.remoteIpDetails.country.countryName | 
| API 호출자 IPv4 주소 | service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 | 
| API 호출자 IPv6 주소 | service.action.awsApiCallAction.remoteIpDetails.ipAddressV6 | 
| API 호출자 ASN ID | service.action.awsApiCallAction.remoteIpDetails.organization.asn | 
| API 호출자 ASN 이름 | service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg | 
| API 호출자 서비스 이름 | service.action.awsApiCallAction.serviceName | 
| DNS 요청 도메인 | service.action.dnsRequestAction.domain | 
| DNS 요청 도메인 접미사 | service.action.dnsRequestAction.domainWithSuffix | 
| 네트워크 연결 차단됨 | service.action.networkConnectionAction.blocked | 
| 네트워크 연결 방향 | service.action.networkConnectionAction.connectionDirection | 
| 네트워크 연결 로컬 포트 | service.action.networkConnectionAction.localPortDetails.port | 
| 네트워크 연결 프로토콜 | service.action.networkConnectionAction.protocol | 
| 네트워크 연결 도시 | service.action.networkConnectionAction.remoteIpDetails.city.cityName | 
| 네트워크 연결 국가 | service.action.networkConnectionAction.remoteIpDetails.country.countryName | 
| 네트워크 연결 원격 IPv4 주소 | service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 | 
| 네트워크 연결 원격 IPv6 주소 | service.action.networkConnectionAction.remoteIpDetails.ipAddressV6 | 
| 네트워크 연결 원격 IP ASN ID | service.action.networkConnectionAction.remoteIpDetails.organization.asn | 
| 네트워크 연결 원격 IP ASN 이름 | service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg | 
| 네트워크 연결 원격 포트 | service.action.networkConnectionAction.remotePortDetails.port | 
| 원격 계정 연결 | service.action.awsApiCallAction.remoteAccountDetails.affiliated | 
| Kubernetes API 호출자 IPv4 주소 | service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4 | 
| Kubernetes API 호출자 IPv6 주소 | service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6 | 
| Kubernetes 네임스페이스 | service.action.kubernetesApiCallAction.namespace | 
| Kubernetes API 호출자 ASN ID | service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn | 
| Kubernetes API 호출 요청 URI | service.action.kubernetesApiCallAction.requestUri | 
| Kubernetes API 상태 코드 | service.action.kubernetesApiCallAction.statusCode | 
| 네트워크 연결 로컬 IPv4 주소 | service.action.networkConnectionAction.localIpDetails.ipAddressV4 | 
| 네트워크 연결 로컬 IPv6 주소 | service.action.networkConnectionAction.localIpDetails.ipAddressV6 | 
| 프로토콜 | service.action.networkConnectionAction.protocol | 
| API 호출 서비스 이름 | service.action.awsApiCallAction.serviceName | 
| API 호출자 계정 ID | service.action.awsApiCallAction.remoteAccountDetails.accountId | 
| 위협 목록 이름 | service.additionalInfo.threatListName | 
| 리소스 역할 | service.resourceRole | 
| EKS 클러스터 이름 | resource.eksClusterDetails.name | 
| Kubernetes 워크로드 이름 | resource.kubernetesDetails.kubernetesWorkloadDetails.name | 
| Kubernetes 워크로드 네임스페이스 | resource.kubernetesDetails.kubernetesWorkloadDetails.namespace | 
| Kubernetes 사용자 이름 | resource.kubernetesDetails.kubernetesUserDetails.username | 
| Kubernetes 컨테이너 이미지 | resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image | 
| Kubernetes 컨테이너 이미지 접두사 | resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix | 
| 스캔 ID | service.ebsVolumeScanDetails.scanId | 
| EBS 볼륨 검사 위협 이름 | service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name | 
| S3 객체 검사 위협 이름 | service.malwareScanDetails.threats.name | 
| 위협 심각도 | service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity | 
| 파일 SHA | service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash | 
| ECS 클러스터 이름 | resource.ecsClusterDetails.name | 
| ECS 컨테이너 이미지 | resource.ecsClusterDetails.taskDetails.containers.image | 
| ECS 작업 정의 ARN | resource.ecsClusterDetails.taskDetails.definitionArn | 
| 독립형 컨테이너 이미지 | resource.containerDetails.image | 
| 데이터베이스 인스턴스 ID | resource.rdsDbInstanceDetails.dbInstanceIdentifier | 
| 데이터베이스 클러스터 ID | resource.rdsDbInstanceDetails.dbClusterIdentifier | 
| 데이터베이스 엔진 | resource.rdsDbInstanceDetails.engine | 
| 데이터베이스 사용자 | resource.rdsDbUserDetails.user | 
| 데이터베이스 인스턴스 태그 키 | resource.rdsDbInstanceDetails.tags.key | 
| 데이터베이스 인스턴스 태그 값 | resource.rdsDbInstanceDetails.tags.value | 
| 실행 파일 SHA-256 | service.runtimeDetails.process.executableSha256 | 
| 프로세스 이름 | service.runtimeDetails.process.name | 
| 실행 가능한 경로 | service.runtimeDetails.process.executablePath | 
| Lambda 함수 이름 | resource.lambdaDetails.functionName | 
| Lambda 함수 ARN | resource.lambdaDetails.functionArn | 
| Lambda 함수 태그 키 | resource.lambdaDetails.tags.key | 
| Lambda 함수 태그 값 | resource.lambdaDetails.tags.value | 
| DNS 요청 도메인 | service.action.dnsRequestAction.domainWithSuffix | 