안녕하세요, 사이버 보안에 관심 있는 모든 분들을 위한 블로그입니다! 오늘은 최근 GeeksNews에 실린 흥미로운 사례를 다루어보려고 합니다. 특히 개발자분들이라면 귀 기울여야 할 내용이니 주목해 주세요!
CodeQL의 공급망 공격 – GitHub 비밀키가 불러온 보안 위협
우리는 종종 보안 문제를 대수롭지 않게 여기곤 하지만, 그 작은 허점이 얼마나 큰 문제를 일으킬 수 있는지 살펴보겠습니다. 이번 사례는 GitHub의 정적 분석 도구인 CodeQL이 보안 취약점으로 인해 공격에 노출된 사건입니다. 특히 공개된 시크릿 키(Secret Key)로 인해 다양한 보안 위협 시나리오가 펼쳐졌다고 합니다.
사건의 전말
이 사건의 시작은 짧게는 1.022초, 길게는 그 이후의 영향력까지 미친 비밀 키 유출에서 비롯되었습니다. 놀랍게도 이 짧은 순간 동안 공격자는 GitHub Actions 워크플로우에서 임의의 코드를 실행할 수 있었으며, 이는 지적재산권 침해, 비밀키 탈취 등의 다양한 피해로 이어질 수 있었습니다.
왜 이 문제는 중요한가?
공개된 비밀 키는 단일 프로젝트의 문제가 아닙니다. 왜냐하면 대부분의 사용자들이 CodeQL을 쉽게 활성화하기 위해 GitHub 설정만 활용하기 때문이죠. 이는 매우 간단하게 v3 태그를 참조하는 방식으로 설정됩니다. 하지만 이러한 편리함 뒤에는 숨겨진 위험이 도사리고 있습니다. 공격자가 v3 태그를 악성 커밋으로 덮어쓴다면, 수많은 프로젝트에서 자동으로 악성 코드가 실행될 수 있는 것입니다!
주요 피해 시나리오
- 소스코드 유출: 공격자는 CodeQL을 사용하는 리포지토리의 소스코드를 유출하여 지적재산을 침해할 수 있었습니다.
- 비밀키 탈취 및 2차 공격: GitHub Actions의 비밀키를 탈취하여, 더 큰 피해를 가할 가능성이 열렸습니다.
- 내부 인프라 침투: CodeQL 워크플로우를 통해 내부 시스템에 침투할 가능성도 있었습니다.
GitHub의 빠른 대응
다행히 GitHub은 문제 보고 후 3시간 내에 취약한 워크플로우를 중단하고, 비밀키 업로드를 방지하는 PR을 등록했습니다. 공격 가능성을 줄이기 위해 CodeQL Action v3.28.3의 패치 버전을 신속하게 배포하였습니다.
우리의 교훈
- 워크플로우 보안: 아티팩트 업로드 시 파일 제한을 강화하고, 비밀 키가 포함되지 않도록 주의해야 합니다.
- 보안 도구 사용: Nosey Parker 같은 도구를 활용하여, 업로드 전 비밀 키를 스캔하는 습관을 가지는 것이 좋습니다.
- GitHub 설정 철저히 이해하기: GitHub의 기본 설정을 사용하더라도 보안 취약점이 있을 수 있으므로 주기적인 점검과 업데이트가 필요합니다.
이번 사건은 개발자들이 보안 취약점에 얼마나 더 주의를 기울여야 하는지 보여주는 사례였습니다. 앞으로도 이러한 문제를 방지하기 위해 꾸준한 관심과 보안 점검이 필요하다는 것을 기억하세요. 이상으로 오늘의 블로그를 마치겠습니다. 여러분의 프로젝트가 항상 안전하길 바랍니다!