238
2
부
공격
지로 메이븐 프로젝트와 플러그인도 침해당할 수 있으며 정당한 애플리케이션에 임포트될 수
있다. 패키지 관리 소프트웨어는 이러한 위험을 벗어날 수 없다.
15.2.3
기타 언어
C
#,
C
,
C
++을 포함한 주요 프로그래밍 언어는 모두 자바스크립트나 자바와 비슷한 패키지 관
리자 (
NuGet
,
Conan
,
Spack
등 )를 갖추고 있어 공격을 당할 수 있다. 악의적 패키지를 추가
해서 정당한 애플리케이션의 코드베이스에 섞여 들어가는 방식이나, 악의적 의존성을 추가해
서 정당한 패키지에 섞여 들어간 뒤 정당한 애플리케이션의 코드베이스에 섞여 들어가는 방식
이다.
패키지 관리자를 통해 공격하려면 사회 공학과 코드 난독화 기법의 조합이 필요할 수 있다. 악
성코드는 평범한 사이트에 존재해 식별이 어렵지만 실행 가능성이 있다.
어떤
OSS
통합 방식을 따르더라도 패키지 관리자로 인한 위험은 있다. 대규모
OSS
패키지의
코드를 완전히 검토하기는 어렵고 의존성까지 고려한다면 더욱 그렇다.
15.3
CVE
데이터베이스
일반적으로 패키지 관리자에 패키지를 배포하고 애플리케이션에 통합하는 것은 공격 벡터가
될 수 있지만 장기간에 걸쳐 상당한 노력과 계획이 필요하다. 단시간에 서드파티 의존성을 익
스플로잇하기 위해서는 애플리케이션의 의존성에서 이미 알려진 취약점이 아직 패치되지 않은
것을 찾아 공격하는 방식이 많이 사용된다.
다행히 많은 패키지에서 공개된 취약점을 찾을 수 있다. 이러한 취약점은 미국 상무부
United
States
Department ...