Amazon Web Services 한국 블로그

AWS Security Hub, 계정 보안 상태 통합 서비스 정식 출시 (서울 리전 포함)

자동화된 규정 준수 검사 및 다양한 서비스의 통합된 통찰력을 지원하는 서비스인 AWS Security Hub 를 정식 출시합니다. 이를 통해 여러분의 AWS 계정 내에 클라우드의 보안 상태를 쉽게 파악할 수 있습니다.  다양한 AWS 서비스 및 외부 회사 제품과 통합도 할 수 있고, Security Hub API를 사용하여 사용자의 맞춤형 보안 서비스를 생성할 수도 있습니다.

AWS Security Hub 시작하기

AWS Security Hub를 활성화하면 권한이 IAM 서비스에 링크된 역할을 통해 자동으로 생성됩니다. 자동화되고 지속적인 규정 준수 검사가 즉시 시작됩니다. 규정 준수 표준에서 이러한 규정 준수 검사 및 규칙을 결정합니다. 사용 가능한 첫 번째 규정 준수 표준은 CIS(Center for Internet Security) AWS Foundations 벤치마크입니다. 올해 계속해서 더 많은 표준을 추가할 예정입니다.

이러한 규정 준수 검사의 결과를 조사 결과라고 합니다. 각각의 조사 결과는 문제의 심각성, 문제를 보고한 시스템, 영향을 받는 리소스, 기타 유용한 메타데이터를 알려줍니다. 예를 들어, 조사 결과를 통해 루트 계정에 대해 MFA(Multi-Factor Authentication)를 활성화해야 하는지 또는 90일 동안 사용되지 않아서 해지해야 하는 자격 증명이 있는지 알아볼 수 있습니다.

조사 결과는 집계 문 및 필터를 사용하여 통찰력으로 그룹화할 수 있습니다.

다양한 AWS 보안 서비스 통합

규정 준수 표준 조사 결과 외에도 AWS Security Hub는 다양한 서비스의 데이터를 집계하고 표준화합니다. 이는 AWS Guard Duty, Amazon Inspector, Amazon Macie 외에도 30개의 AWS 파트너 보안 솔루션에서 확보한 조사 결과의 중앙 리소스입니다.

AWS Security Hub는 사용자 지정 또는 독점 시스템에서 조사 결과를 가져오는 기능도 지원합니다. 조사 결과의 형식은 AWS Security Finding Format JSON 객체로 지정해야 합니다. 다음은 형식에 대한 최소 요구 사항을 충족하도록 생성한 객체의 예입니다. 사용자 계정에 맞게 작동하도록 하려면 AwsAccountIdProductArn에 실제 내용을 입력하십시오. ProductArn에서 사용자 지정 조사 결과를 얻으려면 arn:aws:securityhub:REGION:ACCOUNT_ID:product/ACCOUNT_ID/default 문자열에서 REGIONACCOUNT_ID를 바꾸십시오.

{
    "Findings": [{
        "AwsAccountId": "12345678912",
        "CreatedAt": "2019-06-13T22:22:58Z",
        "Description": "This is a custom finding from the API",
        "GeneratorId": "api-test",
        "Id": "us-east-1/12345678912/98aebb2207407c87f51e89943f12b1ef",
        "ProductArn": "arn:aws:securityhub:us-east-1:12345678912:product/12345678912/default",
        "Resources": [{
            "Type": "Other",
            "Id": "i-decafbad"
        }],
        "SchemaVersion": "2018-10-08",
        "Severity": {
            "Product": 2.5,
            "Normalized": 11
        },
        "Title": "Security Finding from Custom Software",
        "Types": [
            "Software and Configuration Checks/Vulnerabilities/CVE"
        ],
        "UpdatedAt": "2019-06-13T22:22:58Z"
    }]
}

그런 다음 importFindings.js라는 이름의 간단한 node.js 스크립트를 작성하여 JSON 파일을 읽고 AWS JavaScript SDK를 통해 AWS Security Hub로 보냅니다.

const fs    = require('fs');        // For file system interactions
const util  = require('util');      // To wrap fs API with promises
const AWS   = require('aws-sdk');   // Load the AWS SDK

AWS.config.update({region: 'us-east-1'});

// Create our Security Hub client
const sh = new AWS.SecurityHub();

// Wrap readFile so it returns a promise and can be awaited 
const readFile = util.promisify(fs.readFile);

async function getFindings(path) {
    try {
        // wait for the file to be read...
        let fileData = await readFile(path);

        // ...then parse it as JSON and return it
        return JSON.parse(fileData);
    }
    catch (error) {
        console.error(error);
    }
}

async function importFindings() {
    // load the findings from our file
    const findings = await getFindings('./findings.json');

    try {
        // call the AWS Security Hub BatchImportFindings endpoint
        response = await sh.batchImportFindings(findings).promise();
        console.log(response);
    }
    catch (error) {
        console.error(error);
    }
}

// Engage!
importFindings();

node importFindings.js를 빠르게 실행하면 { FailedCount: 0, SuccessCount: 1, FailedFindings: [] } 결과를 얻게 됩니다. 이제 Security Hub 콘솔에서 저의 사용자 지정 결과를 볼 수 있습니다.

사용자 맞춤형 작업

AWS Security Hub는 사용자 지정 작업을 사용하여 대응 및 문제 해결 워크플로와 통합할 수 있습니다. 사용자 지정 작업을 통해 선택한 조사 결과의 일괄 처리는 CloudWatch 이벤트를 생성하는 데 사용됩니다. CloudWatch 규칙을 사용하면 이러한 이벤트가 채팅 시스템이나 페이징 도구를 통해 알림을 보내거나 이벤트를 시각화 서비스로 보내는 등의 다른 작업을 트리거할 수 있습니다.

먼저 AWS Security 콘솔에서 [Settings(설정)]를 열고 [Custom Actions(사용자 지정 작업)]를 선택합니다. 사용자 지정 작업을 추가하고 ARN을 기록하십시오.

그런 다음, 다음과 같이 이벤트 패턴에서 리소스로 생성한 사용자 지정 작업을 사용하여 CloudWatch 규칙을 생성합니다.

{
  "source": [
    "aws.securityhub"
  ],
  "detail-type": [
    "Security Hub Findings - Custom Action"
  ],
  "resources": [
    "arn:aws:securityhub:us-west-2:123456789012:action/custom/DoThing"
  ]
}

CloudWatch 규칙에는 Amazon Simple Notification Service(SNS) 항목, Amazon Simple Queue Service(SQS) 대기열, AWS Lambda 함수 등 다양한 종류의 대상이 포함될 수 있습니다.. 작업과 규칙이 정립되면 조사 결과를 선택하고 작업 드롭다운 목록에서 작업을 선택할 수 있습니다. 그러면 선택한 조사 결과가 Amazon CloudWatch Events로 전송됩니다. 이러한 이벤트가 정립된 규칙과 일치하면 이벤트 대상이 호출됩니다.

참고 사항

  • 규정 준수 검사를 실행하려면 AWS Config를 활성화해야 합니다.
  • AWS Security Hub미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), 미국 서부(캘리포니아 북부), 캐나다(중부), 남아메리카(상파울루), EU(아일랜드), EU(런던), EU(파리), EU(프랑크푸르트), 아시아 태평양(싱가포르), 아시아 태평양(도쿄), 아시아 태평양(시드니), 아시아 태평양(서울)아시아 태평양(뭄바이)의 15개 리전에서 사용할 수 있습니다.
  • AWS Security Hub는 AWS Security Hub가 생성된 리전 외부로 데이터를 전송하지 않습니다. 데이터는 여러 리전에 걸쳐 통합되지 않습니다.

AWS Security Hub는 이미 제가 운영하는 대부분의 AWS 계정에서 활성화할 수 있는 서비스 유형입니다. 올해 더 많은 규정 준수 표준이 제공됨에 따라 많은 도구 상자에서 표준 도구가 될 것으로 기대합니다. 30일 무료 평가판이 제공되므로, 사용해 보고 비용을 예상해 볼 수 있습니다. 언제나 그랬듯, 여러분의 의견을 듣고 여러분이 AWS Security Hub를 어떻게 사용하고 있는지 알고 싶습니다. 계속 연락해 주시고 행복하게 지내시기 바랍니다!

— Brandon West;