

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

# 결과를 AWS Security Finding 형식(ASFF)으로 매핑하기 위한 지침
<a name="guidelines-asff-mapping"></a>

다음 지침을 사용하여 조사 결과를 ASFF에 매핑하세요. 각 ASFF 필드 및 객체에 대한 자세한 설명은 [AWS 사용 설명서](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html)의 *AWS Security Hub Security Finding Format (ASFF)*을 참조하세요.

## 식별 정보
<a name="asff-identifying-information"></a>

`SchemaVersion`은 항상 `2018-10-08`입니다.

`ProductArn`는가 할당하는 ARN AWS Security Hub CSPM 입니다.

`Id`는 Security Hub CSPM이 조사 결과를 인덱싱하는 데 사용하는 값입니다. 조사 결과 식별자는 다른 조사 결과를 덮어쓰지 않도록 고유해야 합니다. 조사 결과를 업데이트하려면 동일한 식별자를 사용하여 조사 결과를 다시 제출하세요.

`GeneratorId`는 `Id`와 동일할 수도 있고, Amazon GuardDuty 탐지기 ID, AWS Config 레코더 ID 또는 IAM Access Analyzer ID와 같은 개별 로직 단위를 참조할 수도 있습니다.

## Title 및 Description
<a name="asff-title-description"></a>

`Title`에는 영향을 받는 리소스에 대한 몇 가지 정보가 포함되어야 합니다. `Title`은 공백을 포함하여 256자로 제한됩니다.

`Description`에 더 자세한 정보를 추가하세요. `Description`은 공백을 포함하여 1024자로 제한됩니다. 설명에 잘라내기를 추가하는 것도 고려해 볼 수 있습니다. 다음은 예시입니다.

```
"Title": "Instance i-12345678901 is vulnerable to CVE-2019-1234",
"Description": "Instance i-12345678901 is vulnerable to CVE-2019-1234. This vulnerability affects version 1.0.1 of widget-1 and earlier, and can lead to buffer overflow when someone sends a ping.",
```

## 결과 유형
<a name="asff-finding-types"></a>

`FindingProviderFields.Types`에서 결과 유형 정보를 제공합니다.

`Types`은 [ASFF의 유형 분류](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format-type-taxonomy.html)와 일치해야 합니다.

필요한 경우 사용자 지정 분류자(세 번째 네임스페이스)를 지정할 수 있습니다.

## 타임스탬프
<a name="asff-timestamps"></a>

ASFF 형식에는 몇 가지 다른 타임스탬프가 포함됩니다.

**`CreatedAt` 및 `UpdatedAt`**  
각 결과에 대해 [https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchImportFindings.html](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchImportFindings.html)를 호출할 때마다 `CreatedAt` 및 `UpdatedAt`을 제출해야 합니다.  
값은 Python 3.8의 ISO8601 형식과 일치해야 합니다.  

```
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
```

**`FirstObservedAt` 및 `LastObservedAt`**  
`FirstObservedAt`과 `LastObservedAt`은 시스템에서 결과를 관찰한 시점과 일치해야 합니다. 이 정보를 기록하지 않으면 이러한 타임스탬프를 제출할 필요가 없습니다.  
값은 Python 3.8의 ISO8601 형식과 일치합니다.  

```
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
```

## Severity
<a name="asff-severity"></a>

다음 필드가 포함된 `FindingProviderFields.Severity` 객체에서 심각도 정보를 제공합니다.

**`Original`**  
시스템의 심각도 값입니다. `Original`은 사용하는 시스템에 맞게 어떤 문자열이든 사용할 수 있습니다.

**`Label`**  
결과 심각도에 대한 필수 Security Hub CSPM 지표입니다. 허용되는 값은 다음과 같습니다.  
+ `INFORMATIONAL` - 문제를 찾을 수 없습니다.
+ `LOW` - 자체적으로 조치가 필요하지 않은 문제입니다.
+ `MEDIUM` - 해결해야 하지만 긴급하지는 않은 문제입니다.
+ `HIGH` - 우선적으로 해결해야 할 문제입니다.
+ `CRITICAL` - 추가 피해를 방지하기 위해 즉시 해결해야 하는 문제입니다.
규정을 준수하는 결과는 항상 `Label`이 `INFORMATIONAL`로 설정되어 있어야 합니다. `INFORMATIONAL` 조사 결과의 예로는 통과한 보안 검사 결과와 해결된 AWS Firewall Manager 조사 결과가 있습니다.  
고객은 보안 운영 팀에 할 일 목록을 제공하기 위해 심각도별로 조사 결과를 정렬하는 경우가 많습니다. 결과 심각도를 `HIGH` 또는 `CRITICAL`로 설정할 때는 보수적으로 설정하세요.

통합 문서에는 매핑 근거가 포함되어야 합니다.

## Remediation
<a name="asff-remediation"></a>

`Remediation`에는 두 가지 요소가 있습니다. 이러한 요소는 Security Hub CSPM 콘솔에서 결합됩니다.

`Remediation.Recommendation.Text`는 결과 세부 정보의 **문제 해결** 섹션에 나타납니다. `Remediation.Recommendation.Url` 값에 하이퍼링크되어 있습니다.

현재 Security Hub CSPM 표준, IAM Access Analyzer 및 Firewall Manager의 조사 결과만 조사 결과 해결 방법에 대한 설명서 하이퍼링크를 표시합니다.

## SourceUrl
<a name="asff-sourceurl"></a>

특정 결과에 대해 콘솔에 딥링크 URL을 제공할 수 있는 경우에만 `SourceUrl`을 사용하세요. 그렇지 않으면 매핑에서 생략하세요.

Security Hub CSPM은이 필드의 하이퍼링크를 지원하지 않지만 Security Hub CSPM 콘솔에 노출됩니다.

## Malware, Network, Process, ThreatIntelIndicators
<a name="asff-malware-network-process-threatintel"></a>

해당하는 경우, `Malware`, `Network`, `Process` 또는 `ThreatIntelIndicators`를 사용하세요. 이러한 각 객체는 Security Hub CSPM 콘솔에 노출됩니다. 전송 중인 조사 결과의 맥락에서 이러한 객체를 사용하세요.

예를 들어, 알려진 명령 및 제어 노드에 대한 아웃바운드 연결을 만드는 악성 코드를 탐지하는 경우 `Resource.Details.AwsEc2Instance`에 EC2 인스턴스에 대한 세부 정보를 제공하세요. 해당 EC2 인스턴스에 대한 관련 `Malware`, `Network`, `ThreatIntelIndicator` 객체를 제공하세요.

### Malware
<a name="asff-malware"></a>

`Malware`는 최대 5개의 멀웨어 정보 배열을 허용하는 목록입니다. 리소스 및 결과와 관련된 멀웨어 항목을 만드세요.

각 항목에는 다음과 같은 필드가 있습니다.

**`Name`**  
멀웨어의 이름입니다. 값은 최대 64자의 문자열입니다.  
`Name`은 검증된 위협 인텔리전스 또는 연구원 소스에서 나온 것이어야 합니다.

**`Path`**  
멀웨어의 경로입니다. 값은 최대 512자의 문자열입니다. `Path`는 다음 경우를 제외하고 Linux 또는 Windows 시스템 파일 경로여야 합니다.  
+ YARA 규칙에 따라 S3 버킷 또는 EFS 공유의 객체를 스캔하는 경우 `Path`는 S3://또는 HTTPS 객체 경로입니다.
+ Git 리포지토리의 파일을 스캔하는 경우 `Path`는 Git URL 또는 클론 경로입니다.

**`State`**  
멀웨어의 상태입니다. 허용 값은 `OBSERVED` \$1` REMOVAL_FAILED` \$1 `REMOVED`입니다.  
결과 제목과 설명에 멀웨어가 발생한 상황에 대한 컨텍스트를 제공해야 합니다.  
예를 들어 `Malware.State`가 `REMOVED`인 경우 조사 결과 제목과 설명에 제품이 경로에 있는 멀웨어를 제거했음을 반영해야 합니다.  
`Malware.State`가 `OBSERVED`인 경우 조사 결과 제목과 설명에 제품이 경로에 있는 이 멀웨어를 발견했음을 반영해야 합니다.

**`Type`**  
멀웨어 유형을 나타냅니다. 허용되는 값은 `ADWARE` \$1 `BLENDED_THREAT` \$1 `BOTNET_AGENT` \$1 `COIN_MINER` \$1 `EXPLOIT_KIT` \$1 `KEYLOGGER` \$1 `MACRO` \$1 `POTENTIALLY_UNWANTED` \$1 `SPYWARE` \$1 `RANSOMWARE` \$1 `REMOTE_ACCESS` \$1 `ROOTKIT` \$1 `TROJAN` \$1 `VIRUS` \$1 `WORM`입니다.  
에 대한 추가 값이 필요한 경우 Security Hub CSPM 팀에 `Type`문의하세요.

### Network
<a name="asff-network"></a>

`Network`는 단일 객체입니다. 네트워크 관련 세부 정보는 여러 개 추가할 수 없습니다. 필드를 매핑할 때는 다음 지침을 사용하세요.

**대상 및 소스 정보**  
대상과 소스는 TCP, VPC 흐름 로그 또는 WAF 로그를 쉽게 매핑할 수 있습니다. 공격에 대한 탐지 결과를 얻기 위해 네트워크 정보를 설명할 때는 사용하기가 더 어렵습니다.  
일반적으로 소스는 공격이 시작된 위치이지만 아래에 나열된 것과 같은 다른 소스가 있을 수 있습니다. 문서에서 소스를 설명하고 조사 결과 제목 및 설명에도 소스를 설명해야 합니다.  
+ EC2 인스턴스에 대한 DDoS 공격의 경우 소스는 공격자이지만 실제 DDoS 공격은 수백만 개의 호스트를 사용할 수 있습니다. 대상은 EC2 인스턴스의 퍼블릭 IPv4 주소입니다. `Direction`은 IN입니다.
+ EC2 인스턴스에서 알려진 명령 및 제어 노드로 통신하는 것으로 관찰된 멀웨어의 경우 소스는 EC2 인스턴스의 IPV4 주소입니다. 대상은 명령 및 제어 노드입니다. `Direction`은 `OUT`입니다. 또한 `Malware` 및 `ThreatIntelIndicators`도 제공합니다.

**`Protocol`**  
특정 프로토콜을 제공할 수 없는 경우 `Protocol`은 항상 IANA(Internet Assigned Numbers Authority) 등록 이름에 매핑됩니다. 항상 이를 사용하고 포트 정보를 제공해야 합니다.  
`Protocol`은 소스 및 대상 정보와 독립적입니다. 적절한 경우에만 제공하세요.

**`Direction`**  
`Direction`는 항상 AWS 네트워크 경계를 기준으로 합니다.  
+ `IN`는 입력 중임을 의미합니다 AWS (VPC, 서비스).
+ `OUT`는 AWS 네트워크 경계를 벗어남을 의미합니다.

### Process
<a name="asff-process"></a>

`Process`는 단일 객체입니다. 프로세스 관련 세부 정보는 여러 개 추가할 수 없습니다. 필드를 매핑할 때는 다음 지침을 사용하세요.

**`Name`**  
`Name`은 실행 파일의 이름과 일치해야 합니다. 최대 64자까지 허용됩니다.

****`Path`****  
`Path`는 프로세스 실행 파일의 시스템 경로입니다. 최대 512자까지 허용됩니다.

**`Pid`, `ParentPid`**  
`Pid` 및 `ParentPid`는 Linux PID(프로세스 식별자) 또는 Windows 이벤트 ID와 일치해야 합니다. 차별화하려면 EC2 Amazon Machine Image(AMI)를 사용하여 정보를 제공하세요. 고객은 아마도 Windows와 Linux를 구별할 수 있을 것입니다.

**타임스탬프(`LaunchedAt` 및 `TerminatedAt`)**  
이 정보를 안정적으로 검색할 수 없고 밀리초 단위까지 정확하지 않은 경우에는 제공하지 마세요.  
포렌식 조사를 위해 타임스탬프를 사용하는 고객의 경우 타임스탬프가 없는 것이 잘못된 타임스탬프를 입력하는 것보다 낫습니다.

### ThreatIntelIndicators
<a name="asff-threatintelindicators"></a>

`ThreatIntelIndicators`는 최대 5개의 위협 인텔리전스 객체로 구성된 배열을 허용합니다.

각 항목에 대해 `Type`은 특정 위협의 맥락을 따릅니다. 허용되는 값은 `DOMAIN` \$1 `EMAIL_ADDRESS` \$1 `HASH_MD5` \$1 `HASH_SHA1` \$1 `HASH_SHA256` \$1 `HASH_SHA512` \$1 `IPV4_ADDRESS` \$1 `IPV6_ADDRESS` \$1 `MUTEX` \$1 `PROCESS` \$1 `URL`입니다.

다음은 위협 인텔리전스 지표를 매핑하는 방법의 몇 가지 예입니다.
+ Cobalt Strike와 관련된 것으로 알고 있는 프로세스를 발견했습니다. FireEye의 블로그에서 이 내용을 배웠습니다.

  `Type`를 `PROCESS`으로 설정합니다. 프로세스에 사용할 `Process` 객체도 만듭니다.
+ 메일 필터에서 누군가가 알려진 악성 도메인에서 잘 알려진 해시 패키지를 보내는 것을 발견했습니다.

  두 개의 `ThreatIntelIndicator` 객체를 만듭니다. 한 객체는 `DOMAIN`용입니다. 다른 하나는 `HASH_SHA1`용입니다.
+ Yara 규칙(Loki, Fenrir, Awss3VirusScan, BinaryAlert)이 포함된 멀웨어를 발견했습니다.

  두 개의 `ThreatIntelIndicator` 객체를 만듭니다. 하나는 멀웨어를 위한 것입니다. 다른 하나는 `HASH_SHA1`용입니다.

## Resources
<a name="asff-resources"></a>

`Resources`의 경우 가능하면 제공된 리소스 유형과 세부 정보 필드를 사용하세요. Security Hub CSPM은 ASFF에 새로운 리소스를 지속적으로 추가하고 있습니다. ASFF 변경 사항에 대한 월간 로그를 받으려면 securityhub-partners@amazon.com에 문의해 주세요.

모델링된 리소스 유형에 대한 세부 정보 필드의 정보를 맞출 수 없는 경우 나머지 세부 정보를 `Details.Other`에 매핑하세요.

ASFF에서 모델링되지 않은 리소스의 경우 `Type`을 `Other`로 설정합니다. 자세한 정보를 보려면 `Details.Other`를 사용하세요.

비AWS 조사 결과에 리소스 `Other` 유형을 사용할 수도 있습니다.

## ProductFields
<a name="asff-productfields"></a>

`ThreatIntelIndicators`, `Network` 또는 `Malware`와 같은 설명 객체 또는 `Resources`에 대해 다른 큐레이트된 필드를 사용할 수 없는 경우에만 `ProductFields`를 사용하세요.

`ProductFields`를 사용할 경우 이 결정에 대한 엄격한 근거를 제시해야 합니다.

## Compliance
<a name="asff-compliance"></a>

결과가 규정 준수와 관련된 경우에만 `Compliance`를 사용하세요.

Security Hub CSPM은 제어를 기반으로 생성하는 결과에 `Compliance`를 사용합니다.

Firewall Manager는 규정 준수와 관련된 결과이므로 `Compliance`를 사용합니다.

## 제한되는 필드
<a name="asff-restricted-fields"></a>

이 필드는 고객이 조사 결과에 대한 조사 내용을 추적할 수 있도록 하기 위한 것입니다.

이러한 필드나 개체에 매핑하지 마세요.
+ `Note`
+ `UserDefinedFields`
+ `VerificationState`
+ `Workflow`

이러한 필드의 경우 `FindingProviderFields` 객체에 있는 필드에 매핑하세요. 최상위 필드에 매핑하지 마세요.
+ `Confidence` - 서비스가 유사한 기능을 제공하거나 조사 결과를 100% 신뢰할 수 있는 경우에만 신뢰도 점수(0\$199)를 포함합니다.
+ `Criticality` - 중요도 점수(0\$199)는 결과와 관련된 리소스의 중요성을 표현하기 위한 것입니다.
+ `RelatedFindings` - 동일한 리소스 또는 결과 유형과 관련된 결과를 추적할 수 있는 경우에만 관련 결과를 제공합니다. 관련 조사 결과를 식별하려면 이미 Security Hub CSPM에 있는 조사 결과의 조사 결과 식별자를 참조해야 합니다.