TL;DR
| 뉴스 | 한 줄 요약 | 관심도 |
|---|---|---|
| Trivy 공급망 공격 | 보안 스캐너 자체가 감염돼 CI/CD 시크릿 탈취 — 자기 증식까지 | ⭐⭐⭐⭐⭐ |
| LiteLLM PyPI 공급망 공격 | Trivy 공격으로 훔친 인증 정보로 PyPI 패키지 감염, 40분간 11.9만 다운로드 | ⭐⭐⭐⭐⭐ |
| Axios npm 공급망 공격 | 북한 해커가 주간 7천만 다운로드 패키지에 RAT 삽입 | ⭐⭐⭐⭐⭐ |
| Cloudflare API 취약점 스캔 | 엣지에서 AI로 API 취약점 자동 탐지하는 DAST 도구 오픈 베타 | ⭐⭐⭐⭐⭐ |
1. 🔥 보안 도구가 무기가 됐어요 — Trivy 공급망 공격
무슨 일이야?
이번 주 가장 충격적인 뉴스예요. 오픈소스 보안 스캐너의 대명사 Trivy가 공급망 공격을 당했어요. 보안 도구가 오히려 공격 벡터가 된 거죠.
2월 말, 공격자 그룹 TeamPCP가 Trivy의 GitHub Actions 환경 설정 오류를 이용해 특권 액세스 토큰을 탈취했어요. 3월 1일에 Trivy 팀이 인지하고 인증 정보를 교체했는데, 완전하지 않았어요. 잔존 접근 권한이 남아 있었거든요.
결국 공격자가 악성 v0.69.4 태그를 푸시했고, 자동화된 릴리즈 파이프라인이 백도어가 심긴 바이너리를 GitHub Releases, Docker Hub, GHCR, Amazon ECR까지 전부 배포했어요. 더 무서운 건, aquasecurity/trivy-action의 76개 버전 태그 중 75개를 강제 푸시해서 악성 커밋으로 바꿔치기한 거예요. 워크플로우 파일은 전혀 안 바뀌었는데 실행되는 코드가 바뀐 거죠.
이 페이로드는 AWS, GCP, Azure 크레덴셜, SSH 키, Kubernetes 토큰, Docker 설정, Git 인증 정보 같은 CI/CD 시크릿을 싹 쓸어갔어요.
1인 개발자에게 왜 중요해?
GitHub Actions에서 trivy-action을 쓰시는 분들은 지금 바로 확인해보셔야 해요. @v0.28.0 같은 태그로 참조하고 계셨다면, 워크플로우 파일은 그대로인데 실행된 코드는 공격자 거였을 수 있어요.
지난주 GlassWorm(#37), 그 전주 GitHub Actions 봇 공격(#36), 1월의 AWS CodeBuild 정규식 취약점(#15)까지 — 올해만 벌써 네 번째 공급망 공격 뉴스예요. 패턴이 보이시죠? CI/CD 파이프라인이 집중적으로 노려지고 있어요.
주의할 점
GitHub Actions를 쓰신다면 태그 대신 커밋 SHA로 고정하세요. uses: aquasecurity/trivy-action@v0.28.0 대신 uses: aquasecurity/trivy-action@<full-sha> 형태요. 태그는 누구든 덮어쓸 수 있지만 SHA는 바꿀 수 없어요. 이건 모든 서드파티 Action에 적용해야 할 원칙이에요.
참고: InfoQ | CrowdStrike 분석 | Aqua Security 공식
2. 🔥 AI 도구 쓰시는 분들, LiteLLM 버전 확인하세요 — PyPI 공급망 공격
무슨 일이야?
1번 Trivy 공격의 직접적인 후속타예요. TeamPCP가 Trivy 공격으로 탈취한 인증 정보를 이용해서 이번엔 LiteLLM의 PyPI 패키지를 감염시켰어요.
3월 24일, litellm 1.82.7과 1.82.8 버전이 PyPI에 올라왔어요. GitHub 저장소에는 해당 태그나 릴리즈가 없었어요 — 정상 릴리즈 과정을 완전히 우회해서 직접 PyPI에 업로드한 거예요.
악성 패키지 안에는 litellm_init.pth라는 파일이 들어있었는데, 이게 litellm이 설치된 환경에서 모든 Python 프로세스 시작 시 자동 실행돼요. import 하지 않아도요. SSL/SSH 키, 클라우드 크레덴셜, Kubernetes 설정, API 키, 쉘 히스토리, 심지어 암호화폐 지갑까지 전부 유출 대상이었어요.
다행히 PyPI 팀이 40분 만에 격리했지만, 그 짧은 시간 동안 11만 9천 건 넘게 다운로드됐어요.
1인 개발자에게 왜 중요해?
LiteLLM은 여러 LLM API를 하나로 묶어주는 프록시 도구로, AI 개발하시는 분들이 많이 쓰세요. 특히 Claude, GPT, Gemini 같은 모델을 번갈아 쓰시는 분들한테 인기 있는 도구거든요.
만약 3월 24일 전후로 pip install litellm을 하셨다면, 설치된 버전을 꼭 확인해보세요. 1.82.7이나 1.82.8이 깔렸다면 즉시 제거하고 크레덴셜 전체를 로테이션해야 해요.
주의할 점
PyPI 패키지 설치 시 버전을 고정하세요 (litellm==1.82.6 같은 식으로). requirements.txt에 >= 를 쓰면 이런 악성 버전이 자동으로 설치될 수 있어요. 그리고 CI/CD에서 pip install을 할 때는 해시 검증(--require-hashes)을 활용하면 변조된 패키지를 걸러낼 수 있어요.
참고: PyPI 공식 인시던트 리포트 | InfoQ | Snyk 분석
3. 🔥 Axios까지 뚫렸어요 — 북한 해커 그룹의 npm 공급망 공격
무슨 일이야?
3월 31일, JavaScript 생태계에서 가장 많이 쓰이는 HTTP 클라이언트 중 하나인 Axios가 공급망 공격을 받았어요. 주간 다운로드 7천만 건 이상인 패키지예요.
공격자가 Axios의 핵심 메인테이너 계정을 탈취해서 1.14.1과 0.30.4 버전을 39분 동안 배포했어요. 이 버전들에는 plain-crypto-js@4.2.1이라는 가짜 의존성이 주입돼 있었고, 설치 후 자동으로 C2 서버에 연결해서 OS별 맞춤 RAT(원격 접근 트로이목마)를 내려받았어요. macOS, Windows, Linux 전부 대상이었어요.
Microsoft Threat Intelligence는 이 공격을 북한 국가 행위자 Sapphire Sleet으로 귀속시켰고, Google GTIG도 UNC1069(2018년부터 활동한 북한 연계 금전 동기 위협 행위자)로 분석했어요.
1인 개발자에게 왜 중요해?
솔직히 이건 거의 모든 JavaScript 개발자에게 해당되는 뉴스예요. package.json에 axios가 없어도 의존하는 다른 패키지가 axios를 쓰고 있을 확률이 높거든요.
3월 31일 전후로 npm install이나 yarn install을 하신 적 있다면, node_modules/axios/package.json에서 버전을 확인해보세요. 1.14.1이나 0.30.4가 있으면 즉시 제거하고, 개발 머신에서 접근 가능했던 모든 시크릿을 로테이션하세요.
주의할 점
안전한 버전은 1.14.0 또는 0.30.3 이하예요. package-lock.json이나 yarn.lock을 커밋하고 계신다면 이미 어느 정도 보호가 되지만, lockfile이 있어도 npm install 시 새 버전이 받아질 수 있으니 정확한 버전을 확인하세요. 그리고 npm audit 실행을 CI에 필수로 넣어두세요.
참고: Microsoft Security Blog | InfoQ | Snyk 분석
4. 🔥 Cloudflare, AI로 API 취약점을 자동으로 찾아줘요 — API Shield 취약점 스캐너
무슨 일이야?
공급망 공격 뉴스만 있으면 암울하니까, 방어 쪽 소식도 하나 가져왔어요. Cloudflare가 API Shield에 능동적 취약점 스캐너를 오픈 베타로 출시했어요. DAST(Dynamic Application Security Testing) 도구예요.
첫 릴리즈는 OWASP API Top 10에서 1위인 BOLA(Broken Object Level Authorization) 탐지에 집중해요. API 호출 그래프를 만들어서 공격자 컨텍스트와 소유자 컨텍스트를 시뮬레이션한 다음, 실제 HTTP 요청을 보내서 테스트하는 방식이에요.
재밌는 건 Cloudflare Workers AI 플랫폼을 활용해서 OpenAPI 스펙의 빈 부분을 AI가 현실적인 가짜 데이터로 채워 넣는다는 거예요. 데이터 의존성 매칭도 AI가 처리하고요.
1인 개발자에게 왜 중요해?
API를 만드시는 분들한테 BOLA는 정말 흔하면서도 잡기 어려운 취약점이에요. /users/123/orders에서 123을 124로 바꿨을 때 다른 사용자의 데이터가 나오는 그런 거죠. 테스트를 직접 작성하려면 시나리오가 많아서 놓치기 쉬운데, 자동으로 찾아준다면 큰 도움이 돼요.
다만 현재는 Enterprise API Shield 고객만 사용할 수 있어요. 1인 개발자가 바로 쓰기엔 가격 장벽이 있지만, 이런 접근 방식 자체를 알아두면 직접 비슷한 테스트를 구성할 수 있어요.
주의할 점
Enterprise 전용이라 당장 사용은 어렵지만, BOLA 테스트의 핵심 아이디어는 직접 적용할 수 있어요. API 엔드포인트마다 “다른 사용자 토큰으로 접근했을 때 403이 나오는지” 테스트를 작성해보세요. Postman이나 REST Client에서 토큰 두 개를 번갈아 쓰는 것만으로도 기본적인 BOLA 검증이 가능해요.
참고: Cloudflare Blog | InfoQ
이전 글
- 1인 개발자 뉴스 #37 - GlassWorm 공급망 공격, Unicode로 숨어드는 악성코드
- 1인 개발자 뉴스 #36 - GitHub Actions AI 봇 공격
- 1인 개발자 뉴스 #15 - AWS CodeBuild 정규식 실수로 공급망 위험
📋 이번 주 스킵한 소식
| 소식 | 사유 |
|---|---|
| Google Gemma 4 오픈 모델, Apache 2.0 전환 | 중요한 릴리즈지만 이번 주 보안 테마와 맞지 않아 다음 회차 검토 |
| Cloudflare Dynamic Workers AI 에이전트 샌드박싱 | 엔터프라이즈 대상, 1인 개발자 직접 활용 어려움 |
| ESLint v10 Flat Config 완전 전환 | 주요 릴리즈지만 긴급성 낮음, 다음 회차 검토 |
| Ollama MLX Mac 로컬 LLM 성능 향상 | 실용적이지만 보안 긴급 뉴스 우선 |
| Claude Code CLI 소스코드 유출 | 흥미 위주, 실무 영향 제한적 |
1인 개발자 관점에서 기술 소식을 정리하고 있습니다.