공급망 보안
OWASP의 2025년 커뮤니티 설문에서 개발자들은 소프트웨어 공급망 실패를 가장 큰 위험으로 꼽았습니다. 응답자의 약 절반이 이를 1위로 선택했습니다. 기존의 ‘알려진 취약점이 있는 구성 요소 사용’에서 범위가 넓어진 개념으로, 소프트웨어를 빌드·배포·업데이트하는 동안 생길 수 있는 문제를 다룹니다. 취약한 의존성, 버전을 고정하지 않은 CI/CD 액션, 유출된 토큰 등이 해당합니다.
2025년 Shai-Hulud npm 웜은 실제 사례입니다. 스스로 퍼지는 패키지가 확산 과정에서 개발자의 시크릿과 npm 토큰을 수집했습니다. SolarWinds와 Log4Shell도 널리 알려진 사례입니다.
실질적인 보호 방법
- 의존성 파악하기 — 전이 의존성까지 포함해 배포하는 모든 패키지를 파악하세요. 소프트웨어 자재 명세서(SBOM)가 도움이 됩니다.
- 최신 상태 유지하기 — Dependabot을 설정하면 지원되는 업데이트를 제안받을 수 있습니다. 변경 사항을 리뷰하고 테스트하세요.
- GitHub Actions 고정하기 — 변경될 수 있는 태그나 브랜치 대신 전체 커밋 SHA로 서드파티 GitHub Actions를 참조하세요.
- 토큰에 최소 권한 부여하기 — 워크플로에는 작업에 필요한 권한만 부여하세요.
- 시크릿을 커밋하지 않기 — 푸시 보호는 지원되는 시크릿 패턴을 차단할 수 있지만 모든 유출을 탐지한다고 보장하지는 않습니다.
특별한 도구가 필요한 것은 아닙니다. Dependabot, 의존성 검토, 시크릿 검사를 활용하고 워크플로 YAML을 주의 깊게 작성하세요. 설정 방법은 직접 해보기에서 확인하세요.