종속성 공격으로 PayPal, Microsoft, Apple, Netflix, Uber 및 기타 30 개 회사에서 코드 실행 가능

몇일 전에 응용 프로그램의 종속성을 공격 할 수있는 놀랍도록 간단한 방법이 출시되었습니다. 내부 패키지 저장소를 사용하여 개발되었습니다. 문제를 확인한 연구원 그들은 당신의 코드를 실행할 수있었습니다 PayPal, Microsoft, Apple, Netflix, Uber, Tesla 및 Shopify를 포함한 35 개 회사의 내부 서버

해킹은 공격을받은 회사와 협력하여 버그 바운티 프로그램의 일부로 수행되었으며, 가해자들은 이미 취약성을 식별하기 위해 130.000 달러의 보너스를 받았습니다.

이 방법은 많은 회사가 내부 애플리케이션에서 NPM, PyPI 및 RubyGems의 표준 저장소 종속성을 사용합니다., 공개적으로 배포되지 않거나 자체 저장소에서 다운로드되지 않은 내부 종속성도 포함됩니다.

문제는 패키지 관리자가 npm, pip 및 gem과 같은 그들은 심지어 공용 저장소에서 회사의 내부 종속성을 다운로드하려고합니다. 공격의 경우 내부 종속성이있는 패키지의 이름을 정의하고 동일한 이름으로 고유 한 패키지를 만듭니다. NPM, PyPI 및 RubyGems의 공용 저장소에 있습니다.

이 문제는 NPM, PyPI 및 RubyGems에만 국한되지 않으며 NuGet, Maven 및 Yarn과 같은 다른 시스템에서도 나타납니다.

제안 된 방법에 대한 아이디어는 연구원이 GitHub에 게시 된 공개 코드에서 우연히 많은 회사가 매니페스트 파일에서 추가 종속성에 대한 언급을 제거하지 않습니다. 내부 프로젝트에서 또는 확장 된 기능을 구현할 때 사용됩니다. 웹 서비스 용 JavaScript 코드는 물론 많은 회사의 Node.JS, Python 및 Ruby 프로젝트에서도 유사한 추적이 발견되었습니다.

주요 유출은 콘텐츠 삽입과 관련이 있습니다. 빌드 프로세스 중에 공개적으로 사용 가능한 JavaScript 코드의 package.json 파일에서, 종속성 이름을 판단하는 데 사용할 수있는 require () 호출의 실제 경로 요소 사용.

수백만 개의 기업 도메인을 스캔 한 결과 수천 개의 JavaScript 패키지 이름이 밝혀졌습니다. NPM 저장소에 없었습니다. 연구원은 내부 패키지 이름 데이터베이스를 수집 한 후 버그 바운티 프로그램에 참여하는 기업의 인프라를 해킹하는 실험을 수행하기로 결정했습니다. 결과는 놀랍도록 효과적이었습니다. 연구원은 지속적인 통합 시스템을 기반으로 구축 또는 테스트를 담당하는 많은 개발 컴퓨터와 서버에서 자신의 코드를 실행할 수있었습니다.

종속성을 다운로드 할 때 패키지 관리자 npm, pip 및 gem은 주로 더 높은 우선 순위로 간주되는 기본 공용 저장소 NPM, PyPI 및 RubyGems에서 패키지를 설치했습니다.

개인 회사의 저장소에 동일한 이름을 가진 유사한 패키지의 존재는 경고를 표시하거나 충돌을 일으키지 않고 무시되었습니다. 관리자의 관심을 끌 수 있습니다. PyPI에서 다운로드 우선 순위는 버전 번호의 영향을 받았습니다 (저장소에 관계없이 패키지의 최신 버전이 다운로드 됨). NPM 및 RubyGems에서 우선 순위는 저장소에만 의존했습니다.

연구원은 발견 된 내부 종속성의 이름을 교차하는 패키지를 NPM, PyPI 및 RubyGems 저장소에 배치하고, 설치 전에 실행되는 스크립트 (NPM에 사전 설치됨)에 코드를 추가하여 시스템에 대한 정보를 수집하고 수신 된 정보를 외부 호스트.

해킹 성공에 대한 정보를 전달하려면 DNS 프로토콜을 통해 비밀 채널 통신을 구성하는 방법 인 외부 트래픽을 차단하는 방화벽을 우회합니다. 실행중인 코드는 공격 도메인의 제어하에 공격 도메인의 호스트를 확인하여 DNS 서버에서 성공적인 작업에 대한 정보를 수집 할 수있게했습니다. 호스트, 사용자 이름 및 현재 경로에 대한 정보가 전달되었습니다.

기록 된 모든 코드 실행의 75 %는 주로 Python 및 Ruby의 종속성 이름보다 JavaScript의 내부 모듈 이름이 훨씬 더 많기 때문에 NPM 패키지 다운로드와 관련되었습니다.

출처 : https://medium.com/


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.