Trivy 공급망 공격, Docker 및 GitHub 저장소로 확산
Source: Bleeping Computer

개요
Trivy 공급망 공격을 주도한 TeamPCP 해커들이 Aqua Security를 계속해서 표적으로 삼아 악성 Docker 이미지를 배포하고, 회사의 GitHub 조직을 장악해 수십 개의 리포지토리를 변조했습니다. 이는 위협 행위자가 GitHub 빌드 파이프라인 for Trivy를 손상시켜 Aqua Security의 스캐너를 통해 주말 동안 Docker Hub까지 확장된 공급망 공격에서 정보 탈취 악성코드를 전달한 것에 이은 조치입니다.
Trivy는 GitHub에서 33,800개 이상의 스타를 보유하고 있으며, 소프트웨어 아티팩트와 인프라 전반에 걸쳐 취약점, 잘못된 구성 및 노출된 비밀을 탐지하는 데 널리 사용됩니다.
손상된 Docker 이미지
Supply‑chain 보안 회사 Socket은 일요일에 발표한 보고서에서 Docker Hub에 게시된 손상된 Trivy 아티팩트를 확인했다고 밝혔습니다.
“새 이미지 태그 0.69.5와 0.69.6이 3월 22일에 해당 GitHub 릴리스나 태그 없이 푸시되었습니다,” 라고 Socket 연구원들이 말합니다. 그들의 분석에 따르면, 두 이미지에는 TeamPCP가 Aqua Security의 GitHub 조직에 접근한 후 배포한 인포스틸러와 관련된 침해 지표가 포함되어 있습니다.
연구원들은 마지막으로 알려진 Trivy 릴리스가 0.69.3이며, Docker Hub 태그는 불변이 아니므로 조직이 무결성을 위해 태그 이름에만 의존해서는 안 된다고 경고했습니다. 또한, 이전 이미지나 바이너리가 게시 후 수정된 증거는 보지 못했지만, 태그만으로는 충분하지 않다고 강조했습니다.
Source: https://web.archive.org/web/20260307200451/https://github.com/aquasecurity/trivy/discussions/10265
AquaSec의 GitHub 침해
3월 20일, Aqua Security는 위협 행위자가 같은 도구를 대상으로 한 이전 사건의 불완전한 격리 때문에 회사의 GitHub 조직에 접근하게 되었다고 밝혔습니다.
“우리는 비밀과 토큰을 교체했지만, 프로세스가 원자적이지 않아 공격자가 새로 고친 토큰을 알 수 있었을 가능성이 있습니다.” – Aqua Security
이로 인해 공격자는 Trivy에 자격 증명 수집 코드(TeamPCP Cloud stealer)를 주입하고 악성 버전의 도구를 배포할 수 있었습니다. Aqua는 3월 20일에 새로운 안전 버전의 Trivy를 공개하고, 복구 및 포렌식 조사를 위해 사고 대응 업체인 Sygnia와 협력했습니다.
오늘 발표된 업데이트를 통해 Aqua는 3월 22일에 추가적인 의심스러운 활동이 있었으며, 동일한 위협 행위자가 다시 무단 접근을 재설정하고 “무단 변경 및 저장소 변조”를 수행했다고 밝혔습니다. 회사는 당시 Trivy 자체는 영향을 받지 않았다고 강조했습니다.
OpenSourceMalware의 분석에 따르면, TeamPCP는 Aqua Security가 독점 코드를 호스팅하는 aquasec‑com GitHub 조직에 접근했으며, 이는 공개 aquasecurity 조직과 별개였습니다. 해커들은 자동화 스크립트를 사용해 사설 조직의 44개 저장소 모두에 tpcp‑docs‑ 접두사를 추가하고, 설명을 “TeamPCP Owns Aqua Security.”로 변경했습니다.
연구진은 공격자가 Argon‑DevOps‑Mgt라는 서비스 계정을 탈취했으며, 이 계정은 두 GitHub 조직 모두에 접근 권한을 가지고 있었다고 높은 확신을 가지고 있습니다. 해당 계정은 GitHub App 대신 표준 사용자의 개인 액세스 토큰(PAT)을 사용해 작업을 승인했습니다. PAT 인증은 비밀번호와 같은 역할을 하며 GitHub App 토큰보다 오래 유효하고, 서비스 계정은 다중 인증(MFA)이 설정되지 않았습니다.
관리자 권한을 시연하기 위해 TeamPCP는 공개 aquasecurity/trivy-plugin-aqua 저장소에 update-plugin-links-v0.218.2라는 새 브랜치를 만들고 “정확히 같은 순간”에 삭제했습니다. 연구진은 Argon‑DevOps‑Mgt 서비스 계정의 PAT가 TeamPCP Cloud stealer를 통해 획득되었다고 보고 있으며, 이 스틸러는 GitHub 토큰, SSH 키, 클라우드 자격 증명 및 CI 러너의 환경 변수를 수집합니다.
“trivy‑plugin‑aqua에서 워크플로를 트리거하는 서비스 계정으로서, 해당 토큰은 러너 환경에 존재했습니다.” – OpenSourceMalware
OpenSourceMalware는 방어자가 공급망 공격에 의해 영향을 받았는지 판단할 수 있도록 일련의 침해 지표(IOC)를 제공했습니다.
Aqua Security는 자사의 상용 제품에 사용되는 Trivy 버전이 영향을 받았다는 증거가 없다고 밝혔습니다. “설계상 Aqua의 상용 플랫폼에서 포크된 버전은 통제된 통합 프로세스를 통해 Trivy 오픈 소스보다 늦게 업데이트됩니다.” 회사는 새로운 세부 사항이 밝혀지는 대로 업데이트를 공유하겠다고 약속했습니다.