용어와 정의
영문 또는 원어: Dependency Confusion
한글명: 의존성 혼동
의존성 혼동은 내부용 패키지와 같은 이름의 외부 패키지 등을 의존성 해석 과정에서 잘못 선택하여 의도하지 않은 코드를 가져오는 공급망 공격 방식입니다.
정확한 의미와 원리
패키지 관리자가 여러 저장소를 조회할 때 이름과 버전 및 저장소 우선순위를 어떻게 결정하는지가 중요합니다. 내부 패키지 이름이라는 이유만으로 내부 저장소의 내용만 받아온다고 가정하면 위험할 수 있습니다.
쉽게 이해하는 예시
조직 내부에서만 쓰려던 라이브러리 이름이 공개 저장소에도 존재하고 빌드가 잘못된 쪽을 선택하는 상황입니다. 실제 선택 규칙은 사용하는 패키지 관리자와 설정에 따라 다릅니다.
종류와 버전 및 관련 개념의 차이
이름 오타 공격과의 차이
의존성 혼동은 내부 이름과 외부 이름 또는 해석 규칙의 혼동에 초점을 둡니다. 타이포스쿼팅은 정상 패키지와 비슷한 이름을 이용해 사용자의 선택을 속이는 방식입니다.
취약한 정상 패키지와의 차이
정상 패키지의 알려진 취약점을 사용하는 문제와 가져올 패키지의 출처 자체를 잘못 선택하는 문제는 다릅니다. 취약점 검사만으로 출처 혼동을 모두 막지는 못합니다.
적용 대상과 조건
사설 저장소와 공개 저장소를 함께 쓰는 빌드에서 확인합니다. 이름 공간, 저장소 제한, 고정 버전과 무결성 검사 및 설정 파일 관리를 함께 검토합니다.
확인할 부분과 오해하기 쉬운 점
버전을 고정해도 고정 대상이 처음부터 잘못됐으면 안전하지 않습니다. 저장소와 소유 주체를 확인한 정상 자료에 근거해 잠금 기록을 관리해야 합니다.
공식 참고 자료
아래 공식 자료의 정의와 적용 범위를 바탕으로 작성했습니다. 예시는 개념을 설명하기 위한 상황이며 실제 작업 기록을 뜻하지 않습니다.
검토 기준일: 2026-10-26