피드로 돌아가기
ReuseLessSoftware - 소프트웨어, '덜' 재사용하기
GeekNewsGeekNews
Security

ReuseLessSoftware - 소프트웨어, '덜' 재사용하기

Dependency Vendoring 통한 공급망 공격 방어 및 의존성 가시성 확보

neo2026년 6월 12일13intermediate

Context

자동화된 패키지 관리자와 CI/CD 파이프라인의 확산으로 인해 악성 코드가 CI 러너 속도로 전파되는 공급망 공격 위험 증가. 낮은 배포 비용으로 인한 무분별한 라이브러리 재사용이 의존성 지옥과 시스템 비대화를 초래하는 구조적 한계 직면.

Technical Solution

  • 외부 네트워크 기반의 자동 의존성 획득 방식을 배제하고 모든 소스 코드를 프로젝트 저장소에 직접 포함하는 Vendoring 구조 채택
  • 업스트림 소스 제어 내용을 Git 저장소에 복사 및 커밋하여 외부 변경 사항에 의한 예고 없는 빌드 깨짐 현상 방지
  • SemVer의 의도 기반 버전 관리를 배제하고 모든 버전을 고유한 식별자로 취급하여 버전 불일치 및 변조 가능성 차단
  • 의존성 추가 시 발생하는 저장소 크기 증가를 의도적인 비용으로 설정하여 불필요한 라이브러리 도입을 억제하는 심리적 허들 구축
  • 전이 의존성(Transitive Dependency)의 공유를 포기함으로써 외부 라이브러리에 의한 제어권 상실 문제 해결

1. 외부 의존성 개수를 2~3개 수준으로 최소화 가능한지 검토

2. 중요 라이브러리의 경우 Vendoring을 통해 소스 코드 직접 관리 및 통제권 확보

3. 신규 의존성 추가 시 코드 라인 수와 전이 의존성 규모를 정량적으로 확인

4. 자동 버전 갱신 설정을 제거하고 명시적인 수동 업데이트 프로세스 수립

원문 읽기