1. 개요

- 북한 Lazarus 해킹 그룹이 INISAFE CrossWeb EX, MagicLine4NX 외에도 VestCert, TCO!Stream 제로데이 취약점 악용

> INISAFE CrossWeb EX, MagicLine4NX 취약점 또한 공격에 지속적으로 활용

 

- VestCert: 예티소프트社에서 제작한 Non-ActiveX 방식의 웹 보안 소프트웨어(공인인증서 프로그램)

- TCO!Stream: (주)엠엘소프트社에서 제작한 자산관리 프로그램

> TCO!Stream은 서버-클라이언트로 구성

> 서버: 소프트웨어 배포 및 원격제어 등의 기능을 제공

> 클라이언트: 서버와 통신을 위해 항상 3511/TCP Listening 상태

 

- Lazarus는 지속해서 국내 사용 소프트웨어의 취약점을 찾아 공격에 악용하므로, 해당 소프트웨어를 사용할 경우 반드시 최신 버전 업데이트 적용

 

2 주요 내용

2.1 VestCert 취약점

- 공격자는 기업 내부로 최초 침입을 위해 워터링 홀 기법을 사용

① 사용자가 취약한 버전의 VestCert가 설치된 환경에서 감염된 웹 사이트에 접속

② VestCert의 써드파티 라이브러리 실행 취약점으로 인해 PowerShell 실행

③ PowerShell을 이용해 C2 서버 접속 및 악성코드 다운, 실행

워터링 홀(Watering Hole)
- 물웅덩이 근처에 매복해 먹잇감을 노리는 사자의 모습에서 유래
- 공격자는 대상에 대한 정보를 미리 수집하여, 자주 방문하는 웹 사이트를 알아낸 뒤 해당 사이트의 취약점을 이용해 침해하여 악성코드 업로드
- 피해자가 해당 웹 사이트에 접속할 경우 악성코드를 유포
- 특정대상을 대상으로 하거나, 해당 웹 사이트에 접속하는 모든 사용자들을 대상으로 할 수도 있음

써드파티 라이브러리 실행 취약점
- 써드파티(Third-party)란 제품이나 서비스의 개발과 관련하여 직접적으로 관련이 없는 외부 업체나 개인을 뜻 함
- 즉, 소프트웨어 개발에서 써드파티는 애플리케이션 개발자가 직접 개발하지 않은 외부 제공 요소
- 써드파티(Third-party) 라이브러리 실행 취약점은 애플리케이션에서 사용되는 외부 제공 라이브러리에 존재하는 보안 취약점을 의미

 

[사진 1] VestCert 취약점으로인해 실행된 악성코드를 다운로드하는 PowerShell 명령어

 

2.2 TCO!Stream

- 공격자는 최초 침입 후 내부 전파를 위해 TCO!Stream의 취약점을 이용

> 공격자는 자체 제작한 악성코드를 이용해 서버에서 특정 파일을 다운로드하고 실행하는 명령어를 생성하여 클라이언트에 전달

> 명령을 수신한 클라이언트는 서버에 접근해 악성파일을 다운로드 및 실행

 

- 공격자가 제작한 악성코드의 커맨드 라인은 다음과 같음

[사진 2] 커멘드 라인

 

파라미터 설명
<Malware> 악성 파일명 (MicrosoftVSA.bin, MicroForic.tlb, matrox86.bic, matrox86.tcm, matrox86.tcm, wincert.bin, mseng.bin)
<TCO DeviceID> TCO 서버의 Device ID
<Destination IP> 대상 클라이언트 시스템의 IP
<Destination Port> 대상 클라이언트 시스템의 포트 (3511)
<Job ID> 서버에서 사용되는 Job ID

 

- 악성코드 파일 배포 위치와 실행명령은 다음과 같음

> 배포 파일 위치: C:\Packages\<배포 모듈 이름>\<버전>\<최종 경로>\<배포 파일명>

> 실행 명령: loadconf.exe –rt5y65i8##7poi88++5t4t54t54t5n

> 해당 명령은 백도어 다운로더 loadconf.exe를 C:\Temp\ 경로에 다운로드하고 인자와 함께 실행시키는 명령

[사진 3] 복호화된 명령 中 일부

 

3. 대응방안

① 최신 버전 업데이트 적용

- 해당 취약점을 분석해 KISA와 관련 업체에 전달 및 현재는 패치가 완료된 상태

> 해당 소프트웨어들은 자동 업데이트가 적용되지 않는 소프트웨어로 업데이트를 적용하지 않은 환경이 많음

제품명 영향받는 버전 해결 버전
VestCert 2.3.6 ~ 2.5.29 2.5.30
TCO!stream 8.0.22.1115 이하 8.0.23.215

 

- 서비스 운영자: 벤더사를 통해 최신 버전 교체

- 서비스 이용자

> 작업관리자의 프로세스 탭에서 ① Goji → ② VestCert를 반드시 순서대로 종료

> [제어판]-[프로그램]-[프로그램 및 기능]에서 VestCert 버전 확인 후 제거 클릭

※ TCO!stream은 서비스 운영자가 최신버전으로 교체 시 자동 업데이트됨

> 이용 중인 금융사이트에 접속하여 해결된 버전의 프로그램 재설치

[사진 4] 삭제 방법

 

② 침해지표 보안 장비 적용

 

3. 참고

[1] https://asec.ahnlab.com/ko/53832/
[2] https://www.boannews.com/media/view.asp?idx=119059&page=1&kind=1
[3] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=4&categoryCode=&nttId=71008

1. 3CX

- 영상 회의 솔루션인 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

[사진 1] d3dvompiler.dll 로드 과정

 

③ d3dcompiler.dll은 쉘코드를 복호화해 C2 접근을 위한 ICO 파일이 있는 GitHub 저장소 엑세스

> 3jB(2bsG#@c7 키와 함께 RC4를 사용하여 악성 쉘코드 복호화

> GitHub에 엑세스하지 못하면 프로세스 종료

> GitHub 저장소: raw[.]githubusercontent[.]com/IconStorages/images/main/icon[.]ico_현재는 삭제되어 접속 불가

[사진 2] 하드코딩된 GitHub 저장소

 

④ ICO 파일을 이용해 C2 엑세스 시도

- Window

> ICO 파일: Based64 인코딩 및 AES+GCM 암호화 사용

> ICO 파일의 뒷부분에는 실제 C&C 서버의 주소들이 인코딩되어 존재하며, 이를 복호화 할 경우 실제 C&C 서버 주소가 확인

[사진 3] 공격에 사용된&nbsp;ICO 파일

 

> 다운로더는 ICO 파일의 뒷부분에서 “$” 시그니처를 검색한 후 인코딩된 문자열을 찾아 복호화

[사진 4]&nbsp;ICO 파일에 삽입된 인코딩 데이터

 

[사진 5] 복호화된 C2 주소

 

- MAC

> 공격자는 DMG 설치 파일에 악성코드를 삽입

[사진 6] MAC 공격에 사용된 파일

 

> 설치 파일 내부에 존재하는 공유 라이브러리 파일들 중 libffmpeg.dylib 파일에는 C&C 주소가 XOR 인코딩되어 저장되어 있음

[사진 7] XOR 인코딩된 C2 주소 목록

 

⑤ 인포스틸러 멀웨어로 정보 수집

> 지정된 애플리케이션이 아닌 임의 애플리케이션에 의해 로드되면 에러 발생

> 3CXDesktopApp 폴더에서 config.json 파일을 확인하여 호스트 이름, 도메인 이름, OS 버전 정보 수집

[사진 8] config.json 확인

> 미리 정의된 문자열 목록을 이용해 Chrome, Edge, Brave 브라우저의 History 및 FireFox의 places.sqlite 정보 수집

[사진 9] 미리 정의된 문자열 목록

 

[사진 10] 공격 방식 요약

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차 공급망 공격으로 이어진 최초의 사례

[사진 11] 공격 과정 요약

 

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 애플리케이션을 대신 사용할 것을 권장

> PWA 설치 가이드: https://www.3cx.com/blog/releases/web-client-pwa/

 

② 관련 프로그램 삭제

> 제어판 > 프로그램 및 기능 > 3CX Desktop App 제거

 

③ 공개된 IoC 정보 등을 보안 장비에 적용 및 모니터링

 

④ CVE-2013-3900 패치를 찾아 적용

> 윈도 11의 경우 해당 패치를 적용하였더라도, 재적용 필요_새 버전의 OS가 패치를 되돌리기도 하기 때문

 

⑤ 안티바이러스 S/W, OS 최신 버전 업데이트 등의 기본 보안수칙 준수

 

5. 참고

[1] https://www.trendmicro.com/en_us/research/23/c/information-on-attacks-involving-3cx-desktop-app.html
[2] https://www.sentinelone.com/blog/smoothoperator-ongoing-campaign-trojanizes-3cx-software-in-software-supply-chain-attack/
[3] https://www.kaspersky.com/blog/supply-chain-attack-on-3cx/47698/
[4] https://www.bleepingcomputer.com/news/security/cryptocurrency-companies-backdoored-in-3cx-supply-chain-attack/
[5] https://www.bleepingcomputer.com/news/security/hackers-compromise-3cx-desktop-app-in-a-supply-chain-attack/
[6] https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/3cx-supply-chain-attack
[7] https://asec.ahnlab.com/ko/50797/
[8] https://www.boannews.com/media/view.asp?idx=116815&page=1&kind=1
[9] https://www.boannews.com/media/view.asp?idx=116779&page=1&kind=1
[10] https://www.boannews.com/media/view.asp?idx=115665&kind=1&search=title&find=3cx 

[11] https://www.boannews.com/media/view.asp?idx=116997&kind=1&search=title&find=3cx

[12] https://asec.ahnlab.com/ko/50965/

[13] https://www.mandiant.com/resources/blog/3cx-software-supply-chain-compromise

[14] https://github.com/fatedier/frp

[15] https://www.boannews.com/media/view.asp?idx=117351&page=3&kind=1 

+ Recent posts