- PyPI 플랫폼에서 새로운 공급망 공격 시도인 Revival Hijack 적발 - PyPI의 패키지 삭제 관련 정책을 교묘하게 악용
내용
- PyPI 플랫폼에서 22,000개 이상의 패키지에 영향을 미치는 공급망 공격 Revival Hijack 확인 > PyPI에서 개발자가 자신의 패키지를 삭제한 경우, 누구나 동일한 이름으로 패키지를 생성할 수 있음 > 공격자는 이를 악용해 유명 패키지와 동일한 이름을 가진 악성 패키지를 등록 > 관련된 실험을 진행한 결과, PyPI 플랫폼에서는 아무런 경고도 발생하지 않음
기타
- PyPI은 이와 관련된 정책을 검토하는 중 > 해당 정책이 적용되기 전까지 다운로드하는 패키지를 철저히 검사하는 과정 필요
- Typosquatting을 이용한 공급망 공격은 오래전부터 인기 - CI/CD 솔루션 GitHub Actions이 Typosquatting에 취약한 것이 확인
내용
- CI/CD 솔루션 GitHub Actions이 Typosquatting에 취약 > 개발자가 알아차리지 못하는 사이에 애플리케이션이 악성코드를 실행하도록 만들 수 있음 > 누구나 임시 이메일 계정으로 GitHub 계정을 만들어 GitHub Action을 게시할 수 있기 때문에 가능
- GitHub Actions에서 Typosquatting를 악용한 약 198개의 파일이 발견
- Apple에서 나온 거의 모든 장비에 영향을 주는 10년간 방치되어 있다 발견 [1] - 취약점은 종속성 관리자 CocoaPods 프로그램에서 발생 [2] - 악용한 시도는 아직까지 확인되지 않았으며, 취약점은 패치됨
1.1 관련 용어
구분
설명
Pod
프로젝트의 Dependency 상황을 서술하고 있는 파일
Dependency(의존성)
소프트웨어를 구성하는 요소들끼리 상호 의존하는 관계
CocoaPods
Swift와 Objective-C 언어로 만들어진 애플리케이션들의 디펜던시 관리를 편리하게 해 주는 오픈소스로, 팟들을 관리
Swift
개발 언어 중 하나
Objective-C
Trunk
코코아팟즈와 연결된 서버로, 팟들을 저장하고 관리
2. 주요내용
2.1 CocoaPods 마이그레이션
- 2014년 CocoaPods은 새롭게 구축한 Trunk 서버로 마이그레이션 - 마이그레이션으로 인해 모든 Pod의 소유자가 초기화 - Pod의 원 소유자들은 CocoaPods에 연락해 Pod에 대한 소유권을 주장 - 그러나 일부 Pod 소유자들은 소유권을 주장하지 않았고, 1,870개의 Pod가 주인 없이 방치
2.2 CVE-2024-38368 [3]
- 임의의 사용자가 방치된 Pod의 소유권을 획득할 수 있는 취약점 (CVSS: 9.3)
> 누구나 Pod에 접근 및 내용을 수정이 가능하여 악성코드 삽입 가능 > 방치된 Pod는 기본 CocoaPods 계정(unclaimed-pods[@]cocoapods.org)과 연결되어 있었음 > 또한, Pod의 소유권을 주장할 수 있는 공개 API 엔드포인트가 사용가능해 누구나 검증 없이 Pod의 소유권을 획득할 수 있었음
- 공격자는 해당 API에 대상 Pod를 포함한 간단한 CURL 요청을 통해 소유권 획득 가능
# Curl request for changing ownership of a targeted orphaned pod curl -X 'POST' \ -H 'Host: trunk.cocoapods.org' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data-binary 'owner[name]=EVA&email=research@evasec.io' --data-binary 'pods[]=[TARGET_UNCLAIMED_POD]&button=SEND' 'hxxps://trunk.cocoapods.org/claims'
2.3 CVE-2024-38366 [4]
- 이메일 도메인의 MX 레코드 유효성을 확인하는 rfc-822 라이브러리에의해 발생하는 원격 코드 실행 취약점 (CVSS: 10.0)
> rfc-822 라이브러리는 MX 레코드 유효성 검증을 위해 셸 명령을 실행하여 이로 인해 원격 코드 실행이 가능해짐 > 익스플로잇에 성공시 모든 Pod 소유자들의 세션 토큰 덤프하고 클라이언트 트래픽 조작 가능하며, 서버 자체를 완전히 셧다운 시키는 것도 가능
① mx_records() > 38행: 이메일 주소를 받아 모듈의 EMAIL 정규식 패턴과 비교하여 검증 > 41행: 제공된 이메일 주소에서 분할된 도메인 부분을 이용해 raw_mx_records() 호출 ② raw_mx_records() > 49~51행: 도메인 부분 수신 및 DNS MX 레코드 검증을 위해 host_mx() 호출 ③ host_mx() > 53~55행: 임의의 OS 명령 '/usr/bin/env host -t MX #{domain}'을 실행하고, 이를 사용자가 제공한 이메일의 도메인과 연결 > 적절한 검증 없이 제공된 이메일 주소에 대해 OS 명령을 실행하여 취약점 발생
2.4 CVE-2024-38367 [6]
- 사용자들의 상호작용 없이 세션 인증 토큰을 탈취할 수 있는 제로클릭 취약점 (CVSS: 8.2)
> 취약점은 세션 유효성 검사 URL을 구성하는 sessions_controller 클래스의 'Trunk' 서버 소스 코드에 위치
① request.host_wth_port() > 21행: 세션 검증 URL의 도메인 부분을 생성하며, 새 세션이 생성 및 생성된 링크가 이메일을 통해 전송 > request.host_wth_port()는 Host 헤더나 다른 환경 변수 값보다 X-Forwarded-Host 헤더를 우선시
- 공격자는 조작된 X-Forwarded-Host를 통해 스푸핑된 도메인이 포함된 세션 검증 URL을 생성 및 공격자 메일로 전송 > 공격자는 검증 URL을 통해 세션 토큰을 탈취할 수 있음
- 인프라를 운영하며 관련 법률에서 제정한 다양한 규정 준수 및 보안 인증 등을 위해 다양한 솔루션이 사용
- 솔루션 증가는 공격자 입장에서 더 많은 선택권이 주어지는 것이므로, 현재 사용되는 솔루션의 위험성을 인식할 필요
- 금보원은 공격자의 관점에서 모의해킹을 진행해 공급망 공격을 분석한 ‘레드아이리스 인사이트 리포트 : Campaign ThirdEye’를 발간 [1]
※ 내용의 민감성을 고려하여 요약본 게시
2. 주요 내용
2.1 3rd Party 솔루션 유형 분류
구분
설명
형태별 분류
- 단일 소프트웨어 형태 - 하드웨어와 소프트웨어가 포함된 어플라이언스 장비 형태
기능별 분류
- 업무용 솔루션: 그룹웨어 / 웹 메일 / 메신저 / 문서 편집 / 업무포탈 등 - 보안 솔루션: 통합인증 / 망분리 및 망연계 / 계정관리 / 서버접근통제 등
2.2 3rd Party 취약점 분석
구분
설명
파일 업로드 취약점
- 파일업로드 기능을 이용해 악의적인 웹쉘 파일을 업로드하는 취약점 > 웹쉘 업로드 성공시 구동하는 웹 서비스 권한으로 쉘 획득 및 후속 공격이 가능 > 게시판 모듈의 취약점을 악용한 사례가 가장 많이 발견(개발사 폐업, 지원 종료, 업데이트 미적용 등)
- 세부 사례 ① 업로드 확장자 검증 미흡 > 대부분 최신 버전 에디터는 기본적으로 JSP 등 악의적인 파일 업로드를 방지하기 위해 확장자 제한 > 일부 구버전 게시판 에디터의 경우 별도 검증 없이 파일 첨부 기능을 제공
② 관리자 페이지를 통한 파일 업로드 > 관리용 기능에서는 별도의 보안 검증을 수행하지 않는 경우가 많음 > 실질적으로 관리자 페이지 및 URL이 노출되지 않더라도 추측 및 무작위 대입을 통해 URL 식별 가능 > 원활한 관리를 위해 원격 접근을 허용하는 경우 또한 존재
2.3 써드아이(ThirdEye) 캠페인
- 3rd Party 솔루션 모의해킹 시나리오를 심층 분석해 가상의 해킹작전 (오퍼레이션)으로 재구성
> 이와 연관된 모든 활동을 써드아이(ThirdEye) 캠페인으로 명명
> 공격자 관점으로 시나리오별 세부적인 TTPs를 공유해 효율적으로 선제적 대응을 할 수 있도록 지원하는 것이 목표
- 오퍼레이션별 TTPs 프로파일링
구분
설명
초기 침투
- 초기 침투시 공통적으로 파일 업로드 활용 - 각각 테스트 페이지, 에디터, 파일 전송 모듈을 찾아 악용
지속성 유지
- 재접속을 위해 웹쉘, SSH 많이 이용 - 비밀번호 변경 없이 SSH 키를 등록하거나, 관리자 계정을 생성하는 방법을 주로 사용
인증정보
- WAS 설정 파일을 복호화하여 DB 접속 정보, 관리자 계정 정보 등 탈취
접근 네트워크 확장
- 정상 프로토콜을 악용해 터널링 생성 - 주로 HTTP와 SSH 터널링을 활용 - 터널링을 맺게 되면 연결된 포트를 통해 패킷이 경유지를 거쳐 방화벽을 우회하여 직접 접근하지 못하던 네트워크에 접근이 가능 (=네트워크 피보팅)
측면 이동
- 더 많은 서버와 PC의 권한을 획득하는 것이 목적 - 정상 인증정보 확보 또는 솔루션 취약점 악용
2.3 대응방안
구분
설명
파일 업로드 취약점 원인 제거 및 관리
- 여러 곳에 구현된 업로드 기능을 우선적 파악 - 일반적인 기능 외에도 다양한 업로드 기능이 존재할수 있음 - 예시: 업로드 허용 확장자, 타입, 용량 제한 / 업로드 경로 실행권한 제거 / 업로드 경로 분리 등
서버 내 인증정보 관리
- 비밀번호 하드코딩 금지 - 필요시 암호화 적용 및 엄격한 파일 권한 설정
비밀번호 설정 및 점검 강화
- 유추하기 쉬운 키워드가 포함되지 않도록 설정 - 비밀번호 설정 정책, 가이드, 교육 외에도 실제 점검을 수반
솔루션 점검 및 계정 모니터
- 솔루션은 다수의 PC 및 서버와 연동되어 있으며, 높은 권한을 지님 - 솔루션 자체에 대해서도 계정, 포트, 정책 등 다양한 점검이 필요
3. 결론
- 솔루션 도입을 통해 효율적으로 관리를 시도하나, 관리 인원이 추가되지 않고 관리 요소만 증가하는 경향
- 공격자들은 이미 수년전부터 공급자인 제조사를 해킹해 소스코드 탈취해 취약점 확보 후 공격에 악용
- 패치 되지 않았거나, 계정 관리가 되지 않거나, 중앙 집중 관리 솔루션 등에 대해 접근통제 및 모니터링 필요
- 23.06.07 지니언스社 Genian NAC 업데이트 서버에 침해사고 의심 정황 발견 > Genian NAC 솔루션 고객사는 금융권, 가상자산 거래소, 제약회사, 방송사, 언로사 등 약 2400 곳 > 23.06.07 경찰의 본사 시스템 조사 후 23.06.08 KISA 신고 > 23.06.30 홈페이지에 관련 입장문 게시 ※ 지니언스: NAC, EDR 솔루션 등을 제공하는 보안 기업 ※ Genian NAC: 지니언스에서 개발 및 서비스하는 네트워크 접근 제어 솔루션 ※ NAC: 네트워크에 접속하는 사용자나 기기를 식별, 인증, 통제
2. 주요내용
- 지니언스 업데이트 서버에서 고객사 NAC 정책서버로 임의의 파일이(확인되지 않은 파일) 전송된 것을 확인 > 업데이트 서버가 침해되었다고 판단 후 공격자 및 침투 경로 확인 중 ※ 업데이트 서버는 클라우드에 위치해 고객사에 설치된 NAC 정책서버와 통신하여 GPDB(Genian Platform DB) 등 동작에 필요한 정보를 주기적으로 업데이트하는 기능을 수행
- 솔루션 자동 업데이트를 설정한 고객사를 중심으로 피해 사례가 확산 > 자동 업데이트를 설정한 고객사에 관련 정보 통보
- 업데이트 서버의 로그 파일 전수 조사를 통해 파일이 전송된 일부 고객사 확인 및 고지 조치 > 관계당국과 협조하여 고객사의 침해 여부 조사 및 장비 교체 완료
- 현재까지 확인된 사항 ① 고객사 피해는 확인되지 않음 ② 기존 업데이트 체계 전면 중단 ③ 새로운 업데이트 체계 및 서버 준비 완료 ④ Genian NAC 패치 준비 완료 ⑤ 침해 여부 확인을 위한 점검 툴 개발 완료 및 배포
3. 기타
- EDR, GPI(내PC지키미) 및 Cloud NAC 제품은 영향 없음 - 고객의 NAC 정책 서버가 폐쇄망에 설치되어 있는 경우 영향 없음 - 추가 진행사항이 있는 경우 지속적 공지 약속
- 깃허브(GitHub) 생태계에서 또 다시 멀웨어 유포 시도가 발견 - 유명 보안 전문가가 개발한 개념증명용 코드로 위장하여 멀웨어 유포
내용
- GitHub 및 Twitter를 대상으로 하는 공급망 공격이 발견 > 7개의 깃허브 계정과 4개의 트위터 계정 확인 ※ 깃허브 계정: AKuzmanHSCS, RSahHSCS, BAdithyaHSCS, DLandonHSCS, MHadzicHSCS, GSandersonHSCS, SSankkarHSCS ※ 트위터 계정: AKuzmanHSCS, DLandonHSCS, GSandersonHSCS, MHadzicHSCS > 멀웨어를 Google Chrome, Signal, Microsoft Exchange Server, Discord 등의 제로데이 PoC로 속여 배포 > 배포된 멀웨어는 Windows 및 Linux에서 모두 동작 > 멀웨어 배포에 성공했는지 여부는 확실하지 않음
- 정상적인 사용자로 보이도록 하기위해 허구 정보 추가 > 존재하지 않는 보안회사 "High Sierra Cyber Security"의 직원인 것처럼 가장 > 보안 전문가의 프로필 사진 도용 > 사용자들의 관심을 끌기위한 여러 태그 사용
- "Discord 0-day RCE PoC" 저장소의 poc.py 파일은 사용자 호스트 OS에 따라 다른 페이로드를 사용 > Windows인 경우 "cveswindows.zip" 파일을 다운로드 > Linux인 경우 "cveslinux.zip" 파일을 다운로드 > 각각의 파일은 VT에서 매우 높은 탐지율을 보이며, 기존에 알려진 형태의 문자열이 포함
- 현재 관련된 깃허브 및 트위터 계정은 삭제 또는 일시정지된 상태
기타
- 깃허브는 세계 최대의 오픈 소스 코드 저장소이며 트위터 또한 다수의 사용자들을 보유 > 전문가들은 매우 정교하고 심각한 결과를 초래할 수 있는 공급망 공격이 될 수 있다고 주장
- 영상 회의 솔루션인 PBX와 기업용 통신 앱(윈도용, 맥OS용, 리눅스용)인 3CX 데스크톱앱을 제공하는 벤더사
2. 취약점
-3CX는전 세계 60만 개 기업이 고객사로 알려져 있으며, 솔루션을 사용하는 사람은 매일 약 1200만 명으로 알려짐
- 다수의 보안 업체에서 3CX 데스크톱앱 바이너리의 정상 업데이트 파일에서 수상한 행동 패턴의 확인을 알렸고, 관련 조사를 통해 확인
- 국내 모 대학에서 공급망 공격이 알려지기 이전에 18.12.407 버전과 18.12.416 버전의 3CX Electron Windows App 설치 로그 확인
- 북한의 라자루스(Lazarus)로 추정되는 해킹 그룹이 CVE-2013-3900 및 고푸람 멀웨어를 이용, 윈도우와 맥 사용자들을 대상으로 3CX의 VoIP 데스크톱 애플리케이션을 침해
고푸람(Gopuram) - 2020년 동남아시아 암호화폐 기업에서 최초 발견된 백도어 - 여러 기능을 가진 모듈을 포함: 데이터 탈취, 추가 멀웨어 설치, 임의 서비스 시작, 종료 및 삭제, 피해자 시스템의 직접 제어 권한 등 - 애플제우스(AppleJeus)라는 또 다른 백도어가 함께 설치 - 고푸람, 애플제우스 모두 라자루스와 연관
영향받는 제품 및 버전 ① Electron Windows application shipped in Update 7 - 18.12.407 - 18.12.416
② Electron macOS application - 18.11.1213 - 18.12.402 - 18.12.407 - 18.12.416
2.1 CVE-2013-3900
- 2013년에 발견되고 패치된 취약점
- 당시 MS의 설명에 따르면, 익스플로잇에 성공한 공격자들은 서명된 실행파일에 악성 코드를 삽입할 수 있게 된다고함
- MS는 윈도 오센티코드(Windows Authenticode)로 서명된 바이너리들의 인증 방식 자체를 변경
> 서명된 바이너리를 누군가 변경하면 해당 바이너리를 더 이상 서명된 바이너리로 윈도우가 인식하지 않도록 한 것
> ‘옵트인’ 방식으로 이루어졌으며, 사용자들이 패치를 적용할 것인지 말 것인지를 선택하도록 함
2.2 공격 방식
- 애플리케이션의 설치 패키지(MSI 파일) 내에 있는 두 개의 DLL이 공격자에 의해 감염
- 3CX의 인증서로 서명되어 있었으며, 자동 업데이트를 통해 DLL 파일을 유포
- 유포된 DLL은 추가 악성 파일을 설치 및 실행하여 정보 유출형 악성코드 인포스틸러 설치
- 공격 방식은 다음과 같음
① 침해된 파일 3CXDesktopApp.exe가 실행되면, DLL Side-Loading 기법으로 ffmpeg.dll이 로드됨
> ffmpeg.dll: d3dcompiler.dll에서 악성쉘 코드를 읽고 로드 및 실행하기 위해 사용되는 트로이목마 DLL
② ffmpeg.dll은 다시 d3dcompiler.dll을 DLL Side-Loading 기법으로 로드
> d3dcompiler.dll: 입력된 16진수 문자열 뒤에 암호화된 쉘코드가 추가된 DLL
③ d3dcompiler.dll은 쉘코드를 복호화해 C2 접근을 위한 ICO 파일이 있는 GitHub 저장소 엑세스
> 3jB(2bsG#@c7 키와 함께 RC4를 사용하여 악성 쉘코드 복호화
> GitHub에 엑세스하지 못하면 프로세스 종료
> GitHub 저장소: raw[.]githubusercontent[.]com/IconStorages/images/main/icon[.]ico_현재는 삭제되어 접속 불가
④ ICO 파일을 이용해 C2 엑세스 시도
- Window
> ICO 파일: Based64 인코딩 및 AES+GCM 암호화 사용
> ICO 파일의 뒷부분에는 실제 C&C 서버의 주소들이 인코딩되어 존재하며, 이를 복호화 할 경우 실제 C&C 서버 주소가 확인
> 다운로더는 ICO 파일의 뒷부분에서 “$” 시그니처를 검색한 후 인코딩된 문자열을 찾아 복호화
- MAC
> 공격자는 DMG 설치 파일에 악성코드를 삽입
> 설치 파일 내부에 존재하는 공유 라이브러리 파일들 중 libffmpeg.dylib 파일에는 C&C 주소가 XOR 인코딩되어 저장되어 있음
⑤ 인포스틸러 멀웨어로 정보 수집
> 지정된 애플리케이션이 아닌 임의 애플리케이션에 의해 로드되면 에러 발생
> 3CXDesktopApp 폴더에서 config.json 파일을 확인하여 호스트 이름, 도메인 이름, OS 버전 정보 수집
> 미리 정의된 문자열 목록을 이용해 Chrome, Edge, Brave 브라우저의 History 및 FireFox의 places.sqlite 정보 수집
2.2.1 DLL Side-Loding 기법
- 안티바이러스 S/W에 의해 탐지되는 것을 우회하여 악성코드를 전파하기 위해 사용하는 기법 중 하나
- 윈도우 OS의 DLL loading 메카니즘을 악용한 기법
- 윈도우 애플리케이션 실행 과정에서 필요한 시점에 동적으로 라이브러리를 호출하는데, 이를 DLL (Dynamic Linking Library)이라 함
- 이때, 필요한 DLL의 이름은 애플리케이션에 따라 내부에 명시되어 있거나, 없을 수도 있음
- 만약 DLL이 애플리케이션 내부에 명시되어 있지 않은 경우 OS에 미리 정의된 순서에 따라 DLL을 찾음
Window OS의 DLL 검색 순서 ① Application이 load 된 Directory ② 현재 Directory ③ 시스템 Directory ④ 16비트 시스템 Directory ⑤ Windows Directory ⑥ PATH 환경 변수에 나열된 Directory
- DLL 검색 순서를 악용해, 특정 애플리케이션이 사용하는 DLL이 아닌 악성코드가 포함된 DLL을 OS가 먼저 검색하여 실행하도록하는 기법
- 단, 악성 DLL의 이름은 정상 DLL의 이름과 동일해야 함
3. 조사 보고서
- MANDIANT는 해당 사건에 대한 분석 보고서를 발표
- 해당 공격은 과거 발생한 1차 공급망 공격이 2차 공급망 공격으로 이어진 최초의 사례
3.1 내용 요약
① 최초 침입 벡터: 트레이딩 테크놀로지스(Trading Technologies) 소프트웨어 엑스트레이더(X_TRADER) 설치 패키지
- 엑스트레이더는 금융거래를 목적으로 사용하는 소프트웨어
- 공격자는 모종의 사유로 트레이딩 테크놀로지스를 침해해 엑스트레이더 설치 패키지를 감염
> 공격에 사용된 파일명: X_TRADER_r7.17.90p608.exe (MD5: ef4ab22e565684424b4142b1294f1f4d)
> 엑스트레이더는 2020년 서비스가 종료되었지만, 웹 사이트에서 2022년에도 다운로드가 가능했음
> 또한, 감염된 소프트웨어에를 서명하는데 사용된 인증서는 2022.10 만료되도록 설정
② 3CX 직원이 감염된 설치 패키지 다운 및 실행
- 감염된 소프트웨어 설치파일 setup.exe를 실행 및 악성 파일이 추출되어 백도어 설치
> SIGFLIP: RC4로 페이로드를 해독하고 바이트 시퀀스 FEEDFACE를 사용하여 쉘코드 검색
> DAVESHELL: 드로퍼 역할을 수행하는 쉘코드
> VEILEDSIGNAL (MD5: c6441c961dcad0fe127514a918eaabd4): C2 통신을 위한 백도어로, C2 주소 하드코딩
③ 공격자의 내부 이동 및 공격 지속성 유지
- 백도어와 오픈 소스 FRP를 이용해 3CX 내부를 이동하며 자격 증명을 수집
> FRP: NAT 또는 방화벽 뒤에 있는 로컬 서버를 인터넷에 노출할 수 있는 빠른 역방향 프록시
- 공격을 지속하기 위해 추가작업 수행
> Window: Taxhaul 멀웨어로 DLL 사이드로딩을 사용하여 지속성을 달성하고 탐지 가능성을 줄이며, Coldcat 다운로더를 배포
> Mac: POOLRAT 백도어로 지속성 달성
④ UNC4736 공격 그룹
> 3CX 공급망 공격과 트레이딩 테크놀로지스 공급망 공격의 배후를 모두 북한 해킹그룹으로 추정되는 UNC4736로 지목
⑤ 3CX는 공격을 탐지하는 데 사용할 수 있는 YARA 규칙 및 IoC 공유
4. 대응방안
① 벤더사 관련 공지 참고
> 3CX에서는 현재 새로운 인증서 발급 준비 중이며, 인증서 발급 전까지 PWA 애플리케이션을 대신 사용할 것을 권장
- 정체를 알 수 없는 사이버 공격자가 파이토치(PyTorch)라는 머신러닝 프로젝트에 악성 바이너리를 몰래 삽입 - 악성 프로젝트를 PyPI에 등록 후 파이토치와 관련된 누군가가 12월 25 ~ 30일 사이에 이를 다운로드
내용
- 공격자들이 디펜던시 혼동 공격(dependency confusion attack)을 실시 ※ 디펜던시 혼동 공격 > 소프트웨어 개발 도구가 공개 및 비공개 저장소에서 서드파티 패키지를 끌어오는 기본 방식에서 새롭게 발견된 논리적 결함 > 비공개 저장소에 호스팅된 커스텀 패키지 대신에 커뮤니티 저장소에 게시된 악성 패키지를 끌어오도록 만드는 것
- 공격자들은 torchtriton이라는 이름의 악성 패키지를 만들어 PyPI에 등록 - torchtriton은 파이토치 프로젝트와 관련이 있는 코드 라이브러리 - 악성 패키지에는 torchtriton의 여러 기능이 똑같이 포함 + 훔친 데이터를 특정 도메인에 업로드하는 기능 - 피해자의 시스템 정보, 사용자 이름, 환경 변수, 피해자의 시스템과 연결된 모든 호스트, 비밀번호 해시 목록, 피해자의 홈 디렉토리에 저장된 파일 1천 개를 훔쳐가는 것으로 조사
- PyPI를 노리는 공격 시도는 크게 증가 > PyPI는 파이썬 생태계에서 중요한 위치에 있으며, 같은 이름의 패키지 등록이 가능함
- PyPI 리포지터리는 공공 리포지터리에 있는 패키지가 비공개 리포지터리에 있는 패키지보다 우선 검색 및 로딩 > torchtriton은 파이토치 프로젝트 개발자들이 프로젝트의 비공개 리포지터리에서부터 로딩 > 누군가 파이토치 내부 패키지 이름을 정확하게 알아냈다는 것을 의미
결론
- 파이토치 측은 문제를 발견하자마자 즉시 악성 패키지가 아니라 정상 패키지로 연결되도록 조치 및 torchtriton과 관련이 있는 모든 빌드들을 삭제
- 25일부터 30일 사이에 계속 파이토치로 작업을 했다면 침해의 증거가 직접적으로 존재하지 않더라도 새로운 SSH 키 값들을 생성해 활용하는 게 안전
- 12월 29일, 보안 전문가가 디펜던시 혼동 공격을 조사하며 실험하는 과정 중에 발생한 실수 게시글 업로드