오픈소스 인사이트
home
오픈소스 기술 동향
home

개발자가 여전히 악성 패키지를 다운로드하는 5가지 이유

7 more properties
참고: 아래 글은 소나타입(Sonatype)의 공식 블로그 글을 번역하여 작성되었습니다. 원문은 Sonatype 공식 블로그에서 확인하실 수 있습니다.

에스코어 인사이트

원문 번역에 앞서 국내 개발/보안 조직에서 확인해볼 관점만 간단히 정리했습니다.
•
패키지 이름·게시자·생태계 맥락을 함께 확인하고 AI 도구가 추천한 의존성도 자동 검증
•
개발자 단말·CI/CD·컨테이너·공개 레지스트리 직접 접근 등 모든 유입 경로에 동일한 정책과 차단 기준을 적용
•
다운로드·설치 전에 의심 패키지를 평가·격리하고 개발 환경에서의 초기 실행을 차단
소프트웨어 개발 조직은 의존성 스캐너를 배포하고, 개발자 교육을 진행하며, 엔드포인트를 보호하고, 오픈소스 구성요소 사용 정책을 마련합니다. 그럼에도 악성 패키지는 여전히 개발자 워크스테이션과 빌드 시스템, CI/CD 환경까지 도달합니다.
이를 개발자가 패키지 이름을 잘못 입력했거나 의존성을 충분히 확인하지 않았기 때문이라고 설명하기 쉽지만, 갈수록 그러한 설명만으로는 실제 상황을 충분히 설명하기 어려워지고 있습니다.
Sonatype의 최신 악성 오픈소스 패키지 연구에 따르면 합법적인 소프트웨어를 모방하기 위해 전통적인 타이포스쿼팅을 사용한 사례는 9%에 불과했습니다. 나머지 91%는 정상적인 플러그인, 설정 패키지, SDK, 유틸리티, 래퍼, 스코프 모듈, 버전 확장 패키지처럼 보이도록 더 폭넓은 이름 변형을 사용했습니다.
공격자는 단순한 입력 실수뿐 아니라 개발자가 익숙하게 받아들이는 이름 규칙과 업무 흐름을 악용하고 있습니다.
따라서 소프트웨어 개발 책임자는 개발자가 잘못된 패키지를 선택한 이유를 따지기보다, 그럴듯하게 위장한 패키지가 검증 전에 실행될 수 있었던 개발 절차의 허점을 살펴봐야 합니다.
이 문제는 다음 다섯 가지 구조적 과제에서 비롯됩니다.
•
악성 패키지는 이제 겉모습만으로 구분하기 어렵습니다.
•
빠른 개발 속도로 인해 패키지를 직접 검증할 시간이 부족합니다.
•
다운로드 이후의 탐지는 이미 늦을 수 있습니다.
•
악성 패키지는 평판 정보가 쌓이기도 전에 빠르게 확산됩니다.
•
공격자는 개발 과정에서 통제가 가장 약한 유입 경로를 노립니다.

악성 패키지는 이제 겉모습만으로 구분하기 어렵습니다

공격자는 악성 패키지를 소프트웨어 생태계의 정상적인 구성요소처럼 보이도록 설계합니다. 그 결과 악성 패키지는 겉으로 쉽게 구분되지 않습니다.
Sonatype 연구진이 분석한 브랜드재킹 악성코드 가운데 91%는 전통적인 타이포스쿼팅의 범위를 넘어섰습니다. 단순한 철자 오류 대신 접두사와 접미사, 스코프 모듈, plugin, config, sdk처럼 익숙한 용어를 조합해 신뢰할 만한 패키지처럼 보이게 했습니다.
이 변화는 중요합니다. 기존 타이포스쿼팅이 입력 실수를 이용했다면, 현대적인 이름 변형 공격은 개발자의 기대를 이용합니다. 플러그인과 래퍼, 다양한 통합 모듈이 넘쳐나는 생태계에서는 악성 패키지가 그 안에 자연스럽게 속해 보이기만 하면 됩니다.
따라서 패키지 이름만 확인하는 것으로는 충분하지 않습니다. 소프트웨어가 개발자에게 도달하기 전에 패키지의 게시자, 이름 패턴, 생태계 맥락과 같은 정보를 함께 평가하는 보안 통제가 필요합니다.

빠른 개발은 패키지 검증 시간을 줄입니다

현대의 소프트웨어 개발 흐름은 수동 검증보다 속도를 우선하는 경우가 많기 때문에 개발자가 위험한 패키지를 다운로드하게 됩니다.
개발 과정에서 의존성 추가는 빠르게 처리해야 할 여러 작업 중 하나가 되기 쉽습니다. 개발자는 다음과 같은 상황에서 패키지를 설치하게 됩니다.
•
빌드 오류를 해결할 때
•
새로운 프레임워크를 시험할 때
•
온라인 문서를 따라 작업할 때
•
마감 일정에 쫓길 때
•
AI 코딩 도우미가 제안한 패키지를 받아들일 때
이러한 순간에는 악성 패키지와 정상 패키지가 거의 다르게 보이지 않을 수 있습니다. 둘 다 그럴듯한 이름과 전문적으로 작성된 문서를 갖고 있으면서 게시 이력이 짧을 수 있습니다.
그러므로 패키지 검증은 개별 개발자의 문제가 아니라 시스템의 문제로 다뤄야 합니다. 구성요소가 개발자 워크스테이션이나 빌드 파이프라인에 도달하기 전에 자동으로 평가하는 통제가 필요합니다.

다운로드 이후 탐지는 이미 늦을 수 있습니다

많은 악성 패키지는 설치되는 즉시 실행되기 때문에 다운로드 후 탐지만으로는 늦을 수 있습니다.
정상 소프트웨어에 의도치 않게 존재하는 약점인 취약점과 달리, 악성코드는 데이터 탈취, 접근 권한 확보, 추가 페이로드 전달을 목적으로 의도적으로 만들어집니다. 악성 패키지는 설치 직후부터 이러한 행위를 시작할 수 있습니다.
Sonatype 분석에서는 악성 패키지의 74%가 환경 정보나 비밀정보 또는 둘 모두를 포함한 개발자 데이터를 표적으로 삼았습니다. 대표적인 행위에는 호스트 정보 유출, 비밀정보 탈취, 드로퍼, 백도어, 난독화 코드가 포함됩니다.
개발 환경에는 API 키, GitHub 토큰, 클라우드 자격증명, 레지스트리 토큰, SSH 키, CI/CD 비밀정보 등 공격자에게 가치가 높은 정보가 존재하는 경우가 많습니다.
스캐너가 매니페스트나 저장소에서 악성 패키지를 식별할 때는 이미 최초 침해가 발생했을 수 있습니다. 따라서 소프트웨어 공급망 보안 도구를 평가할 때는 악성코드를 탐지하는지뿐 아니라 다운로드 전에 차단할 수 있는지도 확인해야 합니다.

공격 캠페인은 패키지 평판보다 빠르게 움직입니다

새로운 악성 패키지는 평판 기반 방어 체계가 위험을 파악하는 속도보다 빠르게 확산될 수 있습니다.
공개 보고서나 다운로드 수, 기타 신뢰 신호가 패키지의 위험성을 보여줄 때쯤에는 이미 개발자 워크스테이션, 테스트 환경, 빌드 시스템에 유입되었을 가능성이 있습니다.
Sonatype은 패키지와 생태계를 가로질러 이름 짓기 방식, 게시자 행동, 인프라, 악성 목적을 반복적으로 재사용한 174개 캠페인 패밀리를 식별했습니다. 공격자는 고립된 악성 패키지를 한 번씩 게시하는 것이 아니라 전통적인 평판 시스템보다 빠르게 움직이는 반복 가능한 캠페인을 운영하고 있습니다.
이 때문에 자동 격리가 중요합니다. 모든 낯선 패키지를 신뢰하거나 반대로 모든 신규 패키지를 차단하는 대신, 의심스러운 구성요소를 임시 보류하고 추가 분석 결과에 따라 허용 또는 차단할 수 있습니다.

공격자는 통제가 가장 약한 개발 유입 경로를 노립니다

보안 통제가 소프트웨어가 조직으로 들어오는 모든 경로를 포괄하지 못하기 때문에 공격자는 가장 관리가 약한 경로를 이용합니다.
의존성은 중앙 관리 저장소를 통해서만 들어오지 않습니다. 다음과 같은 다양한 경로로 조직에 유입됩니다.
•
공개 레지스트리에서의 직접 다운로드
•
개발자 워크스테이션
•
CI/CD 파이프라인과 빌드 시스템
•
컨테이너와 컨테이너 이미지
•
AI가 생성한 의존성 추천
•
임시 또는 관리되지 않는 개발 환경
악성코드 예방 수준은 통제가 가장 약한 경로에 의해 결정됩니다. 내부 저장소를 엄격하게 관리하더라도 다른 경로를 통해 소프트웨어가 거의 검사 없이 들어올 수 있습니다.
소프트웨어 개발 책임자는 소프트웨어가 조직에 유입되는 모든 경로를 식별하고 각 업무 흐름에 일관된 통제를 적용해야 합니다. Sonatype Firewall은 저장소와 엔드포인트, 네트워크 경계 전반으로 악성 패키지 보호를 확장하여 유입 방식과 관계없이 안전하지 않은 구성요소가 개발자에게 도달하지 않도록 지원합니다.

더 나은 모델: 다운로드 전에 악성코드를 차단합니다

조직은 소프트웨어가 환경 안으로 들어온 뒤가 아니라 개발자에게 도달하기 전에 평가함으로써 악성 패키지 위험을 줄일 수 있습니다.
이를 위해서는 다음과 같은 조치가 필요합니다.
•
설치 전에 패키지를 평가합니다.
•
게시자, 이름, 생태계, 캠페인 맥락을 분석합니다.
•
의심스러운 구성요소를 자동으로 격리합니다.
•
소프트웨어가 개발 과정에 들어오는 모든 경로를 보호합니다.
•
신뢰할 수 있는 소프트웨어는 불필요한 지연 없이 사용할 수 있게 합니다.
현대적인 악성 패키지는 평범하게 보이도록 설계됩니다. 이제 공격자는 철자 오류만 노리는 것이 아니라, 신뢰할 만한 패키지처럼 보이도록 의도적으로 설계합니다.
조직에는 구성요소가 개발자에게 도달하기 전에 평가하고, 악성 패키지가 저장소에 들어오기 전에 차단하며, 모든 의존성 판단을 개별 개발자에게 맡기는 대신 신뢰할 수 있는 구성요소를 지속적으로 안내하는 오픈소스 보안 통제가 필요합니다.
이 접근 방식에는 정확하고 시의성 있는 인텔리전스가 필요합니다. 공개 취약점 데이터베이스와 평판 신호는 유용한 맥락을 제공하지만 새롭게 등장하는 악성코드 캠페인보다 늦거나, 확신을 갖고 정책을 결정하기에는 세부 정보가 부족할 수 있습니다.
Sonatype Research Labs는 악성 오픈소스 패키지를 지속적으로 조사하고 공개 정보 이상의 근거로 결과를 검증하며, 조직이 악성 구성요소를 더 일찍 식별하고 차단할 수 있도록 독자적인 위협 인텔리전스를 제공합니다.
이러한 인텔리전스는 소프트웨어 공급망 보안 기능을 뒷받침하여 소프트웨어 개발팀이 개발 속도를 늦추지 않으면서도 신뢰할 수 있는 소프트웨어를 구축할 수 있게 합니다.
에스코어는 Sonatype 공식 파트너로서 소프트웨어 공급망 보안 및 오픈소스 거버넌스 구축을 지원합니다. Sonatype 솔루션 도입이나 공급망 보안 체계 구축에 대해 궁금한 점이 있으시면 언제든 문의해 주세요. Nexus Repository · Repository Firewall · Lifecycle · Sonatype Guide