
AMIRA: 자동화된 악성코드 사고 대응 및 분석

AMIRA는 OSXCollector 출력 파일에 대해 자동으로 분석을 실행하는 서비스입니다. 자동화된 분석은 OSXCollector Output Filters, 특히 모든 필터를 통합하는 하나의 필터인 Analyze Filter를 통해 수행됩니다. AMIRA는 S3 버킷에서 출력 파일을 검색하고, Analyze Filter를 실행한 후 분석 결과를 다시 S3에 업로드하는 작업을 처리합니다 (관련 JIRA 티켓에 첨부하는 방식도 고려할 수 있습니다).
다음 단계에서는 시스템에 tox가 설치되어 있다고 가정합니다.
설치되어 있지 않은 경우 다음 명령어를 실행하세요:
$ sudo pip install tox
AMIRA는 실제 분석을 위해 OSXCollector Output Filters를 사용하므로, 작업 디렉터리에 유효한 osxcollector.yaml 설정 파일이 필요합니다.
예시 설정 파일은 OSXCollector Output Filters에서 찾을 수 있습니다.
설정 파일에는 파일 해시 및 도메인 블랙리스트의 위치가 명시되어 있습니다. AMIRA 실행 시 설정 파일에 언급된 블랙리스트 위치를 사용할 수 있는지 확인하세요.
AMIRA는 AWS와의 인터페이스를 위해 boto3를 사용합니다. 가능한 구성 옵션 중 하나를 사용하여 자격 증명을 제공할 수 있습니다.
자격 증명은 AMIRA 설정에 지정된 SQS 대기열에서 SQS 메시지를 읽고 삭제할 수 있는 권한과 OSXCollector 출력 파일이 저장된 S3 버킷의 객체에 대한 읽기 권한이 있어야 합니다. 분석 결과를 AMIRA 설정 파일에 지정된 S3 버킷에 업로드하려면 자격 증명에 이 버킷에 대한 쓰기 권한도 있어야 합니다.
이 서비스는 S3 버킷 이벤트 알림을 사용하여 분석을 트리거합니다.
OSXCollector 출력 파일을 위한 S3 버킷을 구성하여 파일이 추가될 때 알림이 SQS 대기열(아래 그림의 AmiraS3EventNotifications)로 전송되도록 해야 합니다.
AMIRA는 주기적으로 대기열에서 새 메시지를 확인하고, 메시지를 수신하면 S3 버킷에서 OSXCollector 출력 파일을 가져옵니다.
그런 다음 검색된 파일에 대해 Analyze Filter를 실행합니다.
Analyze Filter는 OSXCollector Output Filters 패키지에 포함된 모든 필터를 순차적으로 실행합니다. 일부 필터는 도메인 및 해시 블랙리스트(또는 화이트리스트) 및 위협 인텔 API(예: VirusTotal, OpenDNS Investigate 또는 ShadowServer)와 같은 외부 리소스와 통신합니다. 원본 OSXCollector 출력에는 이 모든 정보가 추가되며, Analyze Filter가 실행하는 마지막 필터는 모든 발견 사항을 사람이 읽을 수 있는 형태로 요약합니다. 필터 실행이 완료되면 분석 결과가 Analysis Results S3 버킷에 업로드됩니다.
전체 프로세스 및 관련 시스템 구성 요소에 대한 개요는 아래에 설명되어 있습니다:

AMIRA의 주요 진입점은 amira/amira.py 모듈에 있습니다.
먼저 AWS 리전 이름(OSXCollector 출력 버킷의 이벤트 알림이 있는 SQS 대기열이 위치한)과 SQS 대기열 이름을 제공하여 AMIRA 클래스의 인스턴스를 생성해야 합니다:
from amira.amira import AMIRA
amira = AMIRA('us-west-1', 'AmiraS3EventNotifications')
그런 다음 분석 결과 업로더(예: S3 결과 업로더)를 등록할 수 있습니다:
from amira.s3 import S3ResultsUploader
s3_results_uploader = S3ResultsUploader('amira-results-bucket')
amira.register_results_uploader(s3_results_uploader)
마지막으로 AMIRA를 실행합니다:
amira.run()
커피 한 잔 하면서 편히 쉬고 S3 버킷에 분석 결과가 나타날 때까지 기다리세요!