AWS CloudTrail에서「로그 파일 검증」을 통해 무결성 검사해 보기

AWS CloudTrail에서「로그 파일 검증」을 통해 무결성 검사해 보기

AWS CloudTrail에서「로그 파일 검증」을 통해 무결성 검사해 보는 방법을 정리해 봤습니다.
Clock Icon2024.07.10 06:22

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CloudTrail에서「로그 파일 검증」을 통해 무결성 검사해 보는 방법을 정리해 봤습니다.

무결성 검사란?

jw-logcloud-blg-1
AWS CloudTrail에서 추적을 생성할 때 추가 설정에서「로그 파일 검증」을 선택할 수 있습니다. 이 로그 파일 검증은 AWS CloudTrail에서 생성된 로그를 Amazon S3와 같은 저장소에 로그 파일을 전송하고, 해당 로그 파일이 수정, 삭제 혹은 변경되지 않았는지 무결성 검사를 진행합니다.

여기서 로그 파일 검증을 활성화하면, 한 시간 동안의 로그 파일을 참조하여 각 파일의 해시를 포함하는 파일을 만들어 지정한 S3 버킷으로 전송합니다. 이 파일을 다이제스트 파일이라고 합니다. 이 다이제스트 파일은 로그 파일과는 별도의 디렉토리에 저장됩니다.

https://docs.aws.amazon.com/ko_kr/awscloudtrail/latest/userguide/cloudtrail-log-file-validation-intro.html#cloudtrail-log-file-validation-intro-how-it-works

※ 해시는 데이터를 다루는 기법 중 하나로 검색과 저장을 빠르게하는 자료 구조이며, 다이제스트 파일은 이 해시 함수에 의해 생성되는 값을 의미합니다.

https://developer.mozilla.org/ko/docs/Glossary/Digest

무결성 검사를 사용하는 이유는 AWS 공식 문서에서 다음과 같이 설명하고 있습니다.

검증된 로그 파일은 보안 및 과학수사에서 중요한 역할을 합니다. 예를 들어, 검증된 로그 파일을 사용하면 로그 파일 자체가 변경되지 않았음을 또는 특정 사용자 자격 증명이 특정 API 활동을 수행했음을 확실하게 주장할 수 있습니다. 또한 CloudTrail 로그 파일 무결성 검증 프로세스를 통해 로그 파일이 삭제 또는 변경되었는지 알 수 있으며 일정 기간 동안 계정에 로그 파일이 전송되지 않았는지 확인할 수 있습니다.

https://docs.aws.amazon.com/ko_kr/awscloudtrail/latest/userguide/cloudtrail-log-file-validation-intro.html#cloudtrail-log-file-validation-intro-use-cases

CloudTrail 추적 생성

jw-logcloud-blg-8

CloudTrail 추적을 생성할 때「로그 파일 검증」을 체크합니다. 그 외 값들은 디폴트를 유지합니다.

jw-logcloud-blg-3

추적을 생성할 로그는 S3에서 읽고 쓰는 이벤트의 로그를 전부 지정한 S3 버킷으로 전송합니다.

결과 확인

jw-logcloud-blg-4

추적을 생성하고 Amazon S3로 들어와 보면, S3 버킷이 생성되어 있는 것을 확인할 수 있습니다. 해당 버킷에 들어와 보면,「CloudTrail-Digest/」와「CloudTrail/」 폴더가 생성되어 있는 것을 확인할 수 있습니다.

「CloudTrail-Digest/」는 이름으로 알 수 있듯이 다이제스트 파일이 전송되어 보존되는 폴더이며「CloudTrail/」은 추적을 생성할 때 설정한 S3에서 읽고 쓰는 이벤트의 로그를 저장하는 폴더입니다.

jw-logcloud-blg-5

「CloudTrail/」폴더를 확인해 보면 로그가 생성된 것을 확인할 수 있습니다.
※ 로그 파일이 생성되지 않는다면 S3 버킷에 객체를 업로드하는 등, 읽고 쓰기 작업을 진행하여 이벤트를 발생시켜 보세요.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-northeast-1:xxxxxxxxxx:trail/test-logs --start-time 20240710T08:00:00Z --end-time 20240710T17:00:00Z

마지막으로 AWS CLI를 이용하여 무결성 검사를 진행합니다. CloudTrail의 Arn은 생성한 추적의 Arn을 의미합니다.

무결성 검사 결과는 다음 블로그를 참고했습니다.

https://dev.classmethod.jp/articles/validating-cloudtrail-log-file-integrity/#toc-3

Results requested for 2021-06-25T08:00:00Z to 2021-06-25T09:00:00Z
Results found for 2021-06-25T08:46:47Z to 2021-06-25T09:00:00Z:

2/2 digest files valid
66/66 log files valid

로그 파일에 어떠한 위조도 이루어지지 않은 경우 즉, 로그 파일에 문제가 없다면 상기와 같은 결과가 표시됩니다.

Log file        s3://aws-cloudtrail-logs

Results requested for 2021-06-25T08:00:00Z to 2021-06-25T09:00:00Z
Results found for 2021-06-25T08:46:47Z to 2021-06-25T09:00:00Z:

2/2 digest files valid
65/66 log files valid, 1/66 log files INVALID

로그 파일에 변경이 이루어졌다면 상기와 같은 결과가 표시됩니다.

Log file        s3://aws-cloudtrail-logs

Results requested for 2021-06-25T08:00:00Z to 2021-06-25T09:00:00Z
Results found for 2021-06-25T08:46:47Z to 2021-06-25T09:00:00Z:

2/2 digest files valid
65/66 log files valid, 1/66 log files INVALID

마지막으로 로그 파일이 삭제된 경우 상기와 같은 결과가 표시됩니다.

로그 파일이 삭제되거나 변조가 이루어진 경우 어떠한 로그 파일인지 로그 파일에 대한 정보 또한 출력해주는 것을 확인할 수 있습니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 kis2702@naver.com로 보내주시면 감사하겠습니다.

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.