1. 개요

- Github의 논리적 결함으로 인해 공격자가 수천 개의 리포지터리를 제어할 수 있게되는 취약점이 발견
- 공격자는 해당 결함으로 리포지터리를 악용해 공급망 공격으로 이어질 가능성이 존재

 

2. RepoJacking [1]

- Github에서는 사용자 계정마다 고유한 URL을 부여

> 사용자 이름 및 저장소 이름 변경이 자주 발생 (사명변경, 인수합병, 관리자 변경 등)

 

- 이름 변경 등으로 프로젝트의 종속성이 깨지는 것을 방지하기 위해 리다이렉션 생성
> 이름 A에서 이름 B로 변경시 새로운 URL이 생성되고, 원 URL과 연결되어 있던 모든 리포지터리들이 자동으로 새 URL과 연결
① 사용자는 계정 A 생성
② 계정 A에대한 고유한 URL 생성 (ex, hxxp://github.com/A~)
③ 사용자는 계정을 B로 변경
④ 계정 B에대한 고유한 URL 생성 (ex, hxxp://github.com/B~)

⑤ 계정 A의 리포지터리가 자동으로 계정 B로 리다이렉션

 

RepoJacking이란 공격자가 위 과정에 개입하여 이름 A를 등록해 공격자의 리포지터리에서 접근하도록 하는 공격
리포지터리를 생성하는 과정과 사용자의 이름을 변경하는 과정에서 경합 조건이 발동된다는 것이 취약점의 핵심적인 내용
① 사용자는 "A/Repo" 네임스페이스를 소유
② 사용자는 "A"의 이름을 "B"로 변경
③ "A/Repo"는 폐기처리
④ 공격자 "C"는 동시에 "Repo" 리포지터리를 생성하며, "A"로 이름을 변경하는 명령 수행
⑤ 사용자는 공격자 소유의 "A/Repo"에 접근하여 공격자가 업로드한 파일, 명령을 사용

 

※ Race Condition 공격과 유사한 공격으로 판단됨 [2][3]

- Race Condition: 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황
> 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때,
> 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라
> 그 실행 결과가 같지 않고 달라지는 상황

- Race Condition Attack: 실행 프로세스가 임시파일을 생성할 시, 실행 중에 끼어들어 임시 파일을 목적 파일로 연결(심볼릭 링크)하여 권한 상승(setuid를 이용) 등 악용

 

3. 대응방안

① 해당 취약점을 발견한 Checkmarx는 Github에 해당 문제를 전달
> Github은 "인기 있는 저장소 네임스페이스 종료"를 도입 [4]
> Checkmarx는 모니터링을통해 우회 방법들이 발견될때마다 내용 공유를 통해 지속 대응중으로 확인됨

> Checkmarx는 RepoJacking 공격에 취약한 리포지터리를 확인하는 도구를 개발해 제공 [5]

 

② 무차별 대입 공격 및 프로젝트 탈취를 방지하기 위해 저장소에 2FA 적용
③ 엄격한 형상관리
④ 프로젝트 모니터링과 검토를 통해 취약점 조기 식별 및 조치 등

 

4. 참고

[1] https://checkmarx.com/?s=Repojacking
[2] https://iredays.tistory.com/125
[3] https://isc9511.tistory.com/120
[4] https://github.blog/2018-04-18-new-tools-for-open-source-maintainers/#popular-repository-namespace-retirement
[5] https://github.com/Checkmarx/chainjacking
[6] https://blog.aquasec.com/github-dataset-research-reveals-millions-potentially-vulnerable-to-repojacking
[7] https://thehackernews.com/2023/09/critical-github-vulnerability-exposes.html
[8] https://www.boannews.com/media/view.asp?idx=111102&page=1&kind=1
[9] https://www.boannews.com/media/view.asp?idx=121918&page=3&kind=1 

요약 - 깃허브(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에서 매우 높은 탐지율을 보이며, 기존에 알려진 형태의 문자열이 포함

- 현재 관련된 깃허브 및 트위터 계정은 삭제 또는 일시정지된 상태 
기타 - 깃허브는 세계 최대의 오픈 소스 코드 저장소이며 트위터 또한 다수의 사용자들을 보유
> 전문가들은 매우 정교하고 심각한 결과를 초래할 수 있는 공급망 공격이 될 수 있다고 주장

 

보안뉴스

 

제로데이 개념증명용 코드인 줄 알았는데 사실은 멀웨어

보안 외신 핵리드에 의하면 깃허브(GitHub) 생태계에서 또 다시 멀웨어 유포 시도가 발견됐다고 한다. 이번에는 유명 보안 전문가가 개발한 개념증명용 코드로 둔갑해 있는데, 이를 다운로드 받으

www.boannews.com

 

Warning: Fake GitHub Repos Delivering Malware as PoCs

Follow us on Twitter @Hackread - Facebook @ /Hackread

www.hackread.com

 

Fake Security Researcher GitHub Repositories Deliver Malicious Implant - Blog - VulnCheck

VulnCheck discovers a network of fake security researcher accounts promoting hidden malware.

vulncheck.com

 

1. 개요

- 2023.03.21 Zscaler사에 의해 북한 해킹 그룹 APT37(ScarCruft, Temp.Reaper)이 사용중인 Github 저장소가 발견

- 저장소에는 APT37 그룹에서 다양한 분야의 기업, 기관을 공격 하기위해 사용하는 파일들이 다수 존재

- CHM, HTA, HWP, MS Excel Add-in XLL, Macro-Based MS Office 등 공격 초기에 사용되는 피싱용 파일이 확인

 

2. 주요 내용

2.1 CHM 파일

- 악성 HTA 파일을 다운로드하는 CHM 파일 Decoy 파일압축한 파일 이용

HTA 파일 (HTML Application)
> 인터넷 브라우저 보안 모델의 제약 없이 실행되며,  "완전히 신뢰할 수 있는" 응용 프로그램으로 실행
> 따라서, 웹 브라우저의 보안을 우회하기 때문에, 공격에 자주 악용됨

CHM 파일 (Compiled HTML Help)
> 컴파일된 HTML 도움말 파일 형식
> 소프트웨어 응용 프로그램에 대한 온라인 도움말, 교육 가이드, 대화형 책 등에 이용

Decoy 파일

> 사용자들을 속이기위한 정상 파일로 위장한 악성 파

 

- Decoy 파일비밀번호가 설정되어 있으며, 해당 비밀번호CHM 파일 실행 시 확인 됨

> CHM 파일에는 C2 URL이 저장되어 있어, 실행 시 Mshta.exe를 통해 해당 URL로 접속

> 최종적으로 Chinotto PowerShell-based 백도어 설치

mshta.exe
> Microsoft HTML 응용 프로그램(HTA)을 실행하는 유틸리티
> mshta.exe를 활용해 파일 내 인라인 스크립트로 mshta.exe에 의해 실행될 수 있음

 

[사진 1] CHM 파일 내 비밀번호 및 악성 URL(C2)

2.2 LNK 파일

- LNK 파일의 경우 국내 기업의 로그인 페이지로 위장한 HTML 파일이 RAR로 압축되어 있음

> "html.lnk" 및 "pdf.lnk"와 같이 이중 확장자를 사용

> Mshta.exe를 통해 C2로 접속하여 Chinotto PowerShell-based 백도어 설치

LNK 파일 (Link)
> 윈도우 운영체제에서 사용되는 바로가기 파일

 

- 공격에 사용된 LNK 파일 분석 결과 동일한 가상 머신을 재사용한 것으로 확인됨

> 가상 머신의 Mac 주소 00:0c:29:41:1b:1c로 확인

[사진 2] LECmd를 사용하여 추출한 LNK 시스템 세부 정보

 

2.3 Macro-Based MS Office

- MS Office 파일에 내장된 매크로를 통해 MSHTA를 실행하고, Chinotto PowerShell-based 백도어를 다운

[사진 3] MSHTA를 실행하는 VBA 스크립트

2.4 OLE 개체가 포함된 HWP 파일

- Chinotto PowerShell-based 백도어를 유포하기 위해 OLE 개체 악용

> OLE 개체는 악성 PE 페이로드를 포함하며, 해당 페이로드를 통해 C2 접속 및 Chinotto PowerShell-based 백도어 다운

OLE (Object Linking & Embedding)
> 응용프로그램에서 다른 응용프로그램의 객체를 포함 또는 참조할 수 있게 해주는 기술
> 문서에 다양한 종류의 미디어 및 데이터를 쉽게 삽입할 수 있음

 

[사진 3] MSHTA 실행 및 백도어 다운로드 스크립트

2.5 MS Excel Add-in XLL

- 현재까지 APT37 그룹이 사용하는 방법 외 새로운 공격 방식 MS Excel Add-in 방식이 확인

> Add-in은 XLL 파일로, MS Excel 응용프로그램에서 추가 기능으로 동작하는 DLL

> Excel 응용프로그램과 통신을 위한 다양한 콜백함수(ex. xlAutoOpen())가 포함

- Office Add-ins platform
> Office 응용 프로그램을 확장하고 Office 문서의 콘텐츠와 상호 작용하는 솔루션을 구축할 수 있음
> HTML, CSS 및 JavaScript를 사용하여 MS Office를 확장하고 상호 작용할 수 있음

- 콜백함수
> 특정 이벤트에 의해 호출되는 함수

 

- 동작 방식은 다음과 같음

① 문자열 'EXCEL'을 통해 리소스 섹션에 저장된 Decoy 파일을 추출 및 저장

ex. C:\programdata\20230315_세종지원[.]xls

② XLS 파일에 내장된 URL로  MSHTA를 사용해  Chinotto PowerShell-based 백도어를 포함한 HTA 파일 다운

[사진 4] 악성 MS Office Excel 추가 기능의 xlAutoOpen() 서브루틴

3. 대응방안

① 불분명한 출처의 파일 등 실행 금지/주의 등 일반적인 보안 상식 준수

② "4. 참조" 내 확인되는 침해지표 보안 장비 등록 및 모니터링

 

4. 참조

 

The Unintentional Leak: A glimpse into the attack vectors of APT37 | Zscaler

An operational security failure by the North Korean threat actor - APT37, led to the discovery of many previously unknown tools and techniques used by them

www.zscaler.com

+ Recent posts