- 북한 Lazarus 해킹 그룹이 INISAFE CrossWeb EX, MagicLine4NX 외에도 VestCert, TCO!Stream 제로데이 취약점 악용
> INISAFE CrossWeb EX, MagicLine4NX 취약점 또한 공격에 지속적으로 활용
- VestCert: 예티소프트社에서 제작한 Non-ActiveX 방식의 웹 보안 소프트웨어(공인인증서 프로그램)
- TCO!Stream: (주)엠엘소프트社에서 제작한 자산관리 프로그램
>TCO!Stream은 서버-클라이언트로 구성
> 서버: 소프트웨어 배포 및 원격제어 등의 기능을 제공
> 클라이언트: 서버와 통신을 위해 항상 3511/TCPListening 상태
- Lazarus는 지속해서 국내 사용 소프트웨어의 취약점을 찾아 공격에 악용하므로, 해당 소프트웨어를 사용할 경우 반드시 최신 버전 업데이트 적용
2 주요 내용
2.1 VestCert 취약점
- 공격자는 기업 내부로 최초 침입을 위해워터링 홀 기법을 사용
① 사용자가 취약한 버전의 VestCert가 설치된 환경에서 감염된 웹 사이트에 접속
② VestCert의 써드파티 라이브러리 실행 취약점으로 인해 PowerShell 실행
③ PowerShell을 이용해 C2 서버 접속 및 악성코드 다운, 실행
워터링 홀(Watering Hole) - 물웅덩이 근처에 매복해 먹잇감을 노리는 사자의 모습에서 유래 - 공격자는 대상에 대한 정보를 미리 수집하여, 자주 방문하는 웹 사이트를 알아낸 뒤 해당 사이트의 취약점을 이용해 침해하여 악성코드 업로드 - 피해자가 해당 웹 사이트에 접속할 경우 악성코드를 유포 - 특정대상을 대상으로 하거나, 해당 웹 사이트에 접속하는 모든 사용자들을 대상으로 할 수도 있음
써드파티 라이브러리 실행 취약점 - 써드파티(Third-party)란 제품이나 서비스의 개발과 관련하여 직접적으로 관련이 없는 외부 업체나 개인을 뜻 함 - 즉, 소프트웨어 개발에서 써드파티는 애플리케이션 개발자가 직접 개발하지 않은 외부 제공 요소 - 써드파티(Third-party) 라이브러리 실행 취약점은 애플리케이션에서 사용되는 외부 제공 라이브러리에 존재하는 보안 취약점을 의미
2.2 TCO!Stream
- 공격자는 최초 침입 후 내부 전파를 위해 TCO!Stream의 취약점을 이용
> 공격자는 자체 제작한 악성코드를 이용해 서버에서 특정 파일을 다운로드하고 실행하는 명령어를 생성하여 클라이언트에 전달
- 영상 회의 솔루션인 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 애플리케이션을 대신 사용할 것을 권장