AWS GuardDuty PoC code with boto3

아래 코드는 AWS Boto3 SDK를 사용하여 GuardDuty Finding 목록 및 세부 이벤트 정보를 가져오는 PoC코드입니다.  GuardDuty API 및 Boto3 SDK에 대해서 문서화는 되어 있으나, 샘플코드 및 디테일한 설명은 부족한 면이 있습니다. 특히 주의할 점으로, 필터링 파라미터로 사용되는  updatedAt key에 대한 값으로,  Python time모듈에서 제공하는 time 함수를 사용할 경우, 자리 수가 틀려서 필터링 조건이 적용되지 않습니다. 반드시 유닉스타임스탬프자릿수를 10자리가아닌 13자리로해야합니다


#!/usr/bin/python3

# -*- coding:utf-8 -*-

import boto3

...

...

UPDATEDAT=(CURRENT_UNIXTIME - PERIOD_UNIXTIME) * 1000 # 13자리를 맞추기 위해서 1000를 곱함.

client = boto3.client('guardduty')

def get_Findinglists(x_tokenlist):

...

while True :

token_x = []

response = client.list_findings(

DetectorId=DETECTORID_STRING,

MaxResults=1,

NextToken=nextToken_id,

FindingCriteria={

'Criterion': {

'severity': {

'Gte': 2, #원하는 severity 명시(예, 2, 5, 8 등등)

},

'updatedAt': {

'Gte': UPDATEDAT # 13자리 유닉스타임(정수형)

}

}

},

SortCriteria={

'AttributeName': 'service.eventLastSeen',

'OrderBy': 'ASC'

}

)

nextToken_id = response.get('NextToken')

...

)

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: