BLOG

CloudHSM 감사 로그, Splunk에 전송하고 중요한 이벤트 모니터링하기
작성일: 2020-04-07

본 글의 원문은 AWS의 보안 엔지니어인 Lanre Ogunmola와 AWS의 클라우드 지원 엔지니어인 Eduardo Suzuki에 의해 작성되었습니다.

저희는 고객들에게서 “어떻게 CloudHSM 감사 로그를 시각화하고 의미 있는 인사이트를 얻을 수 있을까요?”라는 질문을 가장 많이 듣고 있습니다. .

 

하여 오늘은 블로그 글을 통해 CloudHSM에서 생성된 감사 로그를 Splunk로 보내는 방법을 보여드리고자 합니다. 또한, Splunk에 암호화 관리자 로그인 시도 실패, 암호화 키 생성 및 삭제 이벤트와 같은 중요한 메트릭을 시각화하는 대시 보드도 만들어 보겠습니다.

 

AWS CloudHSM은 암호화 키를 쉽게 생성, 저장, 가져오기, 내보내기 및 관리 할 수 있는 클라우드 기반 하드웨어 보안 모듈 (HSM)입니다.

 

또한, hash 함수가 메시지 digests 및 hash 기반 메시지 인증 코드 (HMAC)를 계산하고 FIPS 140-2 레벨 3 검증 HSM을 사용하여 Amazon Web Services (AWS)에서 데이터를 암호화하여 서명하고 서명을 확인할 수 있습니다.

 

CloudHSM은 또한 HSM 어플라이언스에서 실행되는 모든 관리 명령에 대한 감사 로깅 기능을 제공합니다. 감사 로깅은 기본적으로 활성화되어 있으며 각 HSM에서 생성된 다음 CloudHSM에 의해 사용자 대신 Amazon CloudWatch 로 전달됩니다.

 

감사 로그에 의해 캡처된 이벤트의 예로는 키 생성, 사용자 로그인, 키 내보내기 및 사용자 또는 키 삭제가 있습니다.

 

본 게시물에서는 HSM 감사 로그를 Splunk로 전송하는 파이프 라인 생성을 위한 AWS서비스를 다뤄보겠습니다. 또한 감사 이벤트를 해석하고 CloudHSM 어플라이언스에서 발생하는 중요한 이벤트를 표시할 수 있는 특정 데이터 인사이트를 얻는 방법을 배우게 됩니다. 여기에는 실패한 암호화 사용자/ 관리자 로그인, HSM에서 암호화 키 자료 생성 및 삭제가 포함될 수 있습니다.

 

Splunk는 데이터 및 분석, DevOps 및 보안과 같은 영역에서 다양한 AWS 컴피턴시을 보유한 AWS 파트너 네트워크(APN) Select Technology Partner입니다. Splunk 소프트웨어 및 클라우드 서비스를 통해 고객은 웹 사이트, 어플리케이션, 서버, 네트워크, IoT 및 모바일 장치에서 머신 기반 생성 빅데이터 빅데이터를 검색, 모니터링, 분석 및 시각화할 수 있습니다.

 

 

CloudHSM 감사 이벤트를 시각화하는 Splunk 대시 보드

 

아래의 그림 1 에서는 CloudHSM 어플라이언스에서 Splunk로 보내진 감사 이벤트의 총 개수와 로그인 실패 횟수, HSM에 실행된 명령 고장, 암호화의 키 삭제와 같은 중요한 이벤트 개수가 있는 Splunk 대시보드를 보실 수 있습니다.

 

그림 1 – Splunk를 사용한 CloudHSM 감사 이벤트 시각화

 

다음 AWS 서비스 및 Splunk HEC를 사용하여 HSM 감사 로그를 Splunk로 전송하는 파이프라인을 생성해보겠습니다.

 

  • AWS CloudHSM: 암호화 작업을 처리하고 암호화 키를 위한 안전한 스토리지를 제공하는 AWS의 하드웨어 보안 모듈입니다. 감사 로그는 CloudHSM에서 CloudWatch Logs로 보내집니다.
  • AWS Lambda: 필요할 때만 코드를 실행하고 하루에 몇 번의 요청에서 초당 수천까지 자동으로 확장합니다. Lambda를 사용하여 Amazon S3(Amazon Simple Storage Service) 버킷의 데이터 변경 또는 CloudWatch Logs의 데이터 입력과 같은 이벤트에 대한 응답으로 코드를 실행할 수 있습니다.
  • Amazon CloudWatch Logs: 리소스, 애플리케이션 및 서비스에서 거의 실시간으로 로그를 수집하고 저장할 수 있습니다. CloudHSM은 클러스터의 모든 HSM에서 감사 로그를 수집하여 CloudWatch Logs에 게시합니다.
  • Splunk HEC 클러스터: Splunk는 다양한 어플리케이션의 데이터에 액세스하고, 대용량 파일을 인덱싱하고, 데이터를 이해할 수 있도록 구문 분석하는 구성 요소들의 포트폴리오를 구축했습니다. Splunk는 HTTP 및 보안 HTTPS 프로토콜을 통해 Splunk 클러스터에 데이터 및 어플리케이션 이벤트를 보낼 수 있는 HTTP 이벤트 수집기 (HEC)를 개발했습니다.

 

 

솔루션 개요

 

아래 그림 2 의 참조 아키텍처는 CloudHSM 어플라이언스의 감사 로그가 Splunk(Enterprise 또는 Cloud)로 스트리밍되는 방법을 보여줍니다.

 

여기에는 CloudHSM에서 CloudWatch로의 감사 로그의 기본 전달 및 CloudWatch에서 이벤트를 수신하여 Splunk HEC로 전송하는 Lambda 함수가 포함됩니다.

 

그림 2 – CloudHSM 감사 이벤트를 Splunk로 보내기

 

프로세스 작동 방식은 다음과 같습니다.

  1. CloudHSM은 HSM 어플라이언스에서 감사 로그를 수집하여 계정의 CloudWatch Logs에 게시합니다.
  2. 감사 로그 이벤트는 Lambda 함수로 스트리밍되어 Splunk HEC에 로그를 전달합니다.
  3. 데이터가 Splunk에 도달하면 대시 보드를 사용하여 쿼리 및 시각화할 수 있습니다.

 

 

전제 조건

 

전제조건 완료에 도움이 필요하시다면 AWS CloudHSM 가이드 시작하기를 살펴보십시오.

 

  • CloudHSM 클러스터를 생성하십시오.
  • AWS Elastic Compute Cloud (아마존 EC2) 인스턴스를 시작하십시오.
  • HSM을 작성하십시요.
  • CloudHSM 클러스터를 초기화하십시요.
  • AWS CloudHSM 클라이언트를 설치하고 구성하십시요.

 

 

배포 단계

 

이 섹션에서는 CloudWatch Logs에서 Splunk로 감사 이벤트를 전송하고 이러한 이벤트를 의미 있는 시각화된 데이터로 변환하는 배포 단계를 설명해드리겠습니다.

 

  1. 블루 프린트 Lambda 함수를 작성하고 구성하세요.
  2. HSM 감사 로그를 Lambda 블루 프린트 기능으로 스트리밍하도록 CloudWatch Log Group을 구성합니다.
  3. 감사 로그를 수집하고 시각화하는 Splunk 대시 보드를 만듭니다.
  4. 키 및 사용자 관리 작업을 수행하여 HSM 감사 이벤트를 작동시킵니다.
  5. Splunk에서 HSM 감사 로그 이벤트를 검색하고 대시 보드를 검토합니다.

 

1 단계: 블루 프린트 Lambda 함수 생성 및 구성

 

  • AWS Lambda Console에 로그인합니다.
  • Get Started 하단의 Create a Function를 선택합니다.
  • HEC를 사용하여 CloudWatch 로그들을 Splunk로 처리할 설계안을 얻기 위해 Create Function에서 Blueprints를 선택하고 Filtersplunk-cloudwatch-logs-processor를 입력합니다.
  • blueprint function 선택하고 Configure 클릭합니다.
  • friendly function name입력하고 Lambda execution role 실행 역할을 선택합니다.
  • Lambda 로그를 CloudWatch로 푸시할 수 있도록 AWS Identity and Access Management (IAM) 역할에 적절한 권한이 적용되어 있는지 확인합니다.

 

해당 링크의 설명서는 본 프로세스에 대한 역할을 생성하는 방법을 보여줍니다. 아래는 권한 방침의 예시입니다:

{    “Version”: “2012-10-17”,          “Statement”: [    {            “Effect”: “Allow”,            “Action”: [              “logs:CreateLogGroup”,              “logs:CreateLogStream”,              “logs:PutLogEvents”            ],            “Resource”: “arn:aws:logs:*:*:*”          }   ]

}

  • CloudWatch Logs Trigger에서 계정의 클러스터 이름인 로그 그룹을 선택하고 friendly filter name를 준비합니다.

 

  • 환경 변수에는 Splunk HEC 토큰과 HEC URL이 필요합니다. Splunk웹에서 HEC 토큰을 만들 수 있습니다.
    • Settings 메뉴로 이동하여 Data Inputs을 선택한 다음 HTTP Event Collector를 선택합니다.
    • Global Settings 선택하고 All Tokens 활성화되어 있는지 확인한 다음 Save 을 선택합니다.
    • New Token을 선택하여 새 HEC 엔드 포인트 및 토큰을 생성합니다.
  • Lambda 환경 변수에 HEC 토큰 및 HEC URL을 제공하고 Create Function 클릭합니다.

 

 

  • 새로 작성된 Lambda 함수를 편집하고 아래 표시된 대로 소스 코드의 주석을 해제합니다
  • 기본 httpevent, 주석처리 timeindexevent 및 save 을 대체 하는 friendly sourcetype을 준비합니다.
  • 데모 목적으로 aws : cloudwatch : cloudhsm 지정합니다. 여기에 지정된 소스 유형은 Splunk의 검색 쿼리에 사용될 것입니다.

 

 

 

2 단계: HSM 감사 로그를 Lambda로 스트리밍하도록 CloudWatch Log Group 구성

 

  • Amazon CloudWatch Console을 열고 탐색 창에서 Logs 선택합니다.
  • 클러스터의 log group을 선택하세요. 로그 그룹 이름은  / aws / cloudhsm / <cluster ID> 입니다.
  • Action 클릭 하고 Stream to AWS Lambda 선택합니다.
  • 1단계에서 생성한 Lambda 함수를 선택하고 Next 클릭합니다.
  • 로그의 경우 Format, 드롭 다운에서 Others을 선택하고 Next를 클릭합니다.
  • Start Streaming을 클릭하여 완료합니다.

 

 

3 단계: Splunk 대시 보드를 만들어 HSM 감사 로그를 수집하고 시각화

 

  • 대시 보드 정의가 포함된 XML 파일을 가져와서 Splunk 대시 보드를 만듭니다. 이를 위해 Splunk 대시 보드 및 시각화 정의 XML 파일을 다운로드합니다.
  •  Splunk Console에서 Create New Dashboard를 선택합니다.
  • Title과 Description 준비한 다음, Create Dashboard를 클릭합니다.
  •  Edit Dashboard 페이지에서 Source를 선택합니다.
  • 아래 표시 창에서 컨텐츠를 지우고 1 단계에서 다운로드한 XML 정의 파일의 컨텐츠를 붙여넣고 Save을 클릭합니다.

 

 

4 단계: 감사 로그를 작동시키기 위해 HSM에서 작업 수행

 

cloudhsm_mgmt_util,key_mgmt_util 또는 SDK (Software Developer Kit) 라이브러리를 사용하여 HSM 어플라이언스와 상호 작용할 수 있습니다. key_mgmt_util을 사용하여 HSM에서 암호화 작업을 진행할 수 있습니다.

 

클라이언트 인스턴스에 연결하여 시작하고 cloudhsm-client가 실행 중인지 확인하세요. 확실하지 않은 경우 start 명령을 실행하십시오.

 

아마존 리눅스

$ sudo start cloudhsm-client

 

윈도우

C:\Program Files\Amazon\CloudHSM> net.exe start AWSCloudHSMClient

 

이제 다음 명령을 실행하여 key_mgmt_util을 시작합니다.

$ /opt/cloudhsm/bin/key_mgmt_util

 

프롬프트가 표시되면 CU로 로그인하여 키를 작성하고 <USERNAME> 및 <PASSWORD>를 실제 CU 사용자의 사용자 이름 및 비밀번호로 바꿉니다.

Command: loginHSM -u CU -s <USERNAME> -p <PASSWORD>

 

이 예제의 키를 만들기 위해 key_mgmt_util을 사용하여 대칭 키를 생성합니다. 다음은 예시입니다.

genSymKey -t 31 -s 32 -l aes256

 

예제 명령에서:

  • genSymKey 는 대칭 키를 작성합니다.
  • -t는 키 유형을 선택합니다. 이 경우 AES입니다.
  • -s는 키 크기를 나타내며 이 경우 32 바이트입니다.
  • -l은 키를 쉽게 인식 할 수 있는 레이블을 작성합니다.

 

그런 다음 아래 단계에 따라 CloudHSM Java 라이브러리를 사용하여 HSM에서 작업을 수행하십시오.

 

 

5 단계: Splunk에서 HSM 이벤트 검색 및 대시 보드 검토

 

  • 감사 로그 이벤트가 Splunk로 스트리밍되었는지 확인합니다. 검색 창을 열고 쿼리를 실행하세요.

index=main sourcetype=”aws:cloudwatch:cloudhsm”

 

아래에서 소스 유형이 aws: cloudwatch: cloudhsm인 검색이 실행될 때 감사 이벤트가 Splunk에 표시되는 것을 볼 수 있습니다.

 

그림 3 – 로그 유형별 이벤트 필터링

 

작동 중인 대시 보드

 

이 섹션에서는 MGMT_KEY_DETAIL_LOG (암호화 작업) 및 MGMT_USER_DETAIL_LOG (사용자 관리 작업)와 같은 로그 유형을 기준으로 대시 보드를 탐색하고 이벤트를 필터링하는 방법을 보여줍니다.

  • Splunk Console에서 상단 바의 Dashboards 선택하세요.
  • 목록에서CloudHSM Event Dashboard를 선택하세요.

그림 4 – 로그 유형별로 이벤트 필터링

 

  • Log Type에서 MGMT_USER_DETAILS_LOG을 선택하고 Submit을 클릭해 사용자 작업만 볼 수 있도록 합니다. 로그 유형 MGMT_USER_DETAILS_LOG는 로그인, 로그 아웃, 비밀번호 변경, 삭제 또는 사용자 작업 생성과 같은 사용자 관련 이벤트를 캡처합니다.
  • 대시 보드에서 HSM Command를 위한 이벤트만 보려면 드롭다운 CN_GENERATE_KEY에서 명령을 선택하고, 생성된 대칭 키에 대한 이벤트를 보려면 Submit을 클릭하세요. CN_GENERATE_KEY는 비대칭 키가 HSM에서 생성될 때 기록되는 이벤트입니다.

자세한 내용은 HSM 감사 로그 해석 문서를 참고해 주시기 바랍니다.

 

그림 5 – HSM 명령 별 Splunk 대시 보드 필터

 

CN_GENERATE_KEY 이벤트를 클릭하면 유용한 정보를 캡처하는 추가 필드가 포함된 더 자세한 보기가 표시됩니다. 예를 들면 다음과 같습니다.

  • Opcode 는 CN_GENERATE_KEY를 기록 중인 관리 명령을 식별합니다.
  • Sequence No는 로그 스트림에서 이벤트를 식별하고 기록된 순서를 나타냅니다.
  • Priv/Secret key handle은 생성된 대칭 키의 논리적 식별자를 나타냅니다.
  • Response field는 관리 명령에 대한 응답을 기록하며 값은 SUCCESS 및 ERROR입니다.

 

 

글을 마치며…

 

이 게시물에서는 Amazon CloudWatch Log Group, Blueprint AWS Lambda 함수 및 Splunk HTTP 이벤트 콜렉터 (HEC)를 사용하여 AWS CloudHSM에서 Splunk로 전송된 감사 이벤트를 해석하고 시각화하는 방법을 보여드렸습니다.

 

Amazon CloudHSM은 고객이 AWS 클라우드 내 전용 HSM(Hardware Security Module) 인스턴스를 사용하여 데이터 보안에 대한 기업, 계약 및 규정 준수 요구 사항을 충족하도록 도와줍니다.

 

이 솔루션을 사용하여 조직은 CloudHSM에서 생성된 감사 로그를 분석하여 CloudHSM 어플라이언스 내에서 발생하는 중요한 활동에 대한 가시성을 확보하고 보안 또는 운영 요구 사항에 대한 시각화 및 대시 보드를 구축할 수 있습니다.

원문 URL: https://aws.amazon.com/ko/blogs/apn/how-to-send-cloudhsm-audit-logs-to-splunk-and-monitor-critical-events-on-the-hsm

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 개제하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달 드리도록 하겠습니다.