1. 사건 개요
2025년 8월 20일, Airflow 개발 환경에서 민감한 자격 증명(credential) 정보가 포함된 로그 파일이 실수로 GitHub에 업로드되는 보안 사고가 발생했습니다. 이 사고는 Airflow의 로컬 개발 환경에서 Airflow Connection을 사용하던 중, 초기에 생성된 로그 파일 중 .gitignore
가 누락되어 생성되었던 로그 파일에 의해 발생했습니다. 발견된 즉시 해당 파일은 삭제 및 격리 조치되었고, GitHub 저장소의 커밋 히스토리에서 해당 정보는 영구적으로 삭제되었습니다.
2. 사건 타임라인
- 8월 20일 15시 30분 : AWS IAM 유저의 액세스 키와 시크릿 액세스 키를 발급 받음
- 8월 20일 16시 : Airflow Connection 설정 및 로컬 개발 작업 시작
- 8월 20일 16시 10분 : 작업 과정에서 자격 증명 정보 포함된 Airflow 로그 파일이 생성됨
- 8월 20일 16시 23분 :
.gitignore
파일 설정 후 .gitignore
에 누락된 로그 파일이 있는 것을 인지하지 못한 채 git commit
, git push
을 실행하여 깃허브 레포지토리에 Airflow 로그 파일이 업로드됨
- 8월 20일 22시 38분 : EC2 대쉬보드에서 필요치 않은 고비용의 EC2 인스턴스가 19시 18분 경 생성된 것을 시작 시간 로그를 통해 발견하고, 팀 내에 생성자가 없음을 확인하고, 사건이 발생했음을 인지함
- 8월 20일 22시 45분 : 슬랙을 통해 바로 Dangle님께 사건이 발생한 것을 보고
- 8월 20일 22시 50분 : AWS 계정들의 액세스 키와 시크릿 액세스 키 비활성화와 권한 회수
- 8월 20일 23시 30분 : 사건의 원인이 깃허브에 올라간 로그 파일에서 비롯됨을 파악하여, 발견 즉시 레포지토리에서 해당 로그 파일을 삭제함
- 8월 20일 23시 42분 : 파악된 사건 발생 원인을 Dangle님께 보고
3. 문제 대응 분석 및 평가
- 문제 대응이 효과적이였던 점
- 사건 발생을 인지한 즉시 바로 인스턴스 삭제를 시도하였고, 사건이 발생된 것을 즉시 지체하지 않고 보고하였습니다.
- 깃허브에 올라간 로그 파일에 액세스 키가 올라가있는 걸 확인하여 바로 삭제하고, 사건 발생의 원인점을 바로 보고하였습니다.
- 사건 원인을 인지한 후 즉시 git filter-repo를 통해 모든 브랜치 히스토리에서 원인이 되는 파일을 삭제하였습니다.
- 문제 대응에서 개선이 필요한 점
- 사건의 원인이 팀 내에서 일어난 것이 아닐 것이라는 생각으로 인해, 원인 분석이 늦어졌습니다.
4. 사건 재발 방지 대책
- 모든 로그, 캐시, 설정 파일 경로를 명시적으로
.gitignore
에 추가하고, 관련 템플릿(github/gitignore
등)을 활용하여 외부로 중요한 데이터가 유출되는 것을 사전에 방지합니다.