콘텐츠로 이동하기
위협 인텔리전스

FortiManager 제로데이 공격 (CVE-2024-47575) 조사

2024년 10월 23일
Mandiant

보안 상담

보안에 대한 문의사항을 해당 전문가가 상담해 드립니다.

문의하기

* 해당 블로그의 원문은 2024년 10월 24일 Google Cloud 블로그(영문)에 게재되었습니다. 


작성자: Foti Castelan, Max Thauer, JP Glab, Gabby Roncone, Tufail Ahmed, Jared Wilson


요약

2024년 10월, Mandiant는 Fortinet과 협력하여 다양한 산업 분야에 걸쳐 50개 이상의 FortiManager 어플라이언스가 악용된 사례를 조사했습니다. CVE-2024-47575 / FG-IR-24-423로 명명된 이 취약점을 통해 공격자는 권한 없이 제어하는 FortiManager 장치를 사용하여 취약한 FortiManager 장치에 대해 임의의 코드나 명령을 실행할 수 있습니다.

Mandiant는 현재 UNC5820으로 추적 중인 새로운 위협 그룹이 2024년 6월 27일부터 FortiManager 취약점을 악용하는 것을 관찰했습니다. UNC5820은 악용된 FortiManager에서 관리하는 FortiGate 장치의 구성 데이터를 스테이징하고 유출했습니다. 이 데이터에는 관리되는 어플라이언스의 자세한 구성 정보와 사용자 및 해당 FortiOS256 해시 암호가 포함되어 있습니다. UNC5820은 이 데이터를 사용하여 FortiManager를 추가로 손상시키고, 관리되는 Fortinet 장치로 수평 이동하며, 궁극적으로 기업 환경을 공격할 수 있습니다.

현재 Mandiant에서 분석한 데이터 소스에는 공격자가 FortiManager 취약점을 악용하는 데 사용한 특정 요청이 기록되지 않았습니다. 또한, 현재 조사 단계에서는 UNC5820이 획득한 구성 데이터를 활용하여 측면 이동을 하고 환경을 추가로 손상시켰다는 증거가 없습니다. 결과적으로 게시 시점에는 공격자의 동기나 위치를 평가할 수 있는 충분한 데이터가 부족합니다. 조사를 통해 추가 정보가 확보되면 Mandiant는 블로그를 통해 후속 업데이트할 예정입니다.

FortiManager가 인터넷에 노출되었을 가능성이 있는 조직은 즉시 포렌식 조사를 수행해야 합니다.

악용 세부 정보

Mandiant가 관찰한 가장 초기의 악용 시도는 2024년 6월 27일에 발생했습니다. 당일 FortiManager 장치는 기본 포트 TCP/541에서 IP 주소 45[.]32[.]41[.]202의 인바운드 연결을 수신했습니다. 거의 동시에 파일 시스템에 /tmp/.tm이라는 Gzip 압축 아카이브에 다양한 Fortinet 구성 파일이 스테이징되는 것이 기록되었습니다. 이 아카이브에는 표 1에 나열된 파일과 폴더가 포함되어 있습니다.

파일명

설명

/var/dm/RCS

관리되는 FortiGate 장치의 구성 파일이 포함된 폴더

/var/dm/RCS/revinfo.db

관리되는 FortiGate 장치의 추가 정보가 포함된 데이터베이스

/var/fds/data/devices.txt

FortiGate 시리얼 번호와 해당 IP 주소 목록이 포함됨

/var/pm2/global.db

객체 구성, 정책 패키지, IPS용 헤더 및 푸터 센서 구성이 포함된 전역 데이터베이스

/var/old_fmversion

현재 FortiManager 버전, 빌드 및 브랜치 정보 포함

표 1: /tmp/.tm 정보

2024년 9월 23일, Mandiant는 동일한 지표를 가진 두 번째 악용 시도를 관찰했습니다. 두 악용 사례 모두에서 아카이브 생성 직후 아웃바운드 네트워크 트래픽이 발생했습니다. 각 대상 IP 주소로 전송된 바이트 수는 아카이브 크기보다 약간 큽니다. 표 2는 이 활동의 세부 정보를 나열합니다.

타임 스탬프

세부 정보

사이즈

2024-06-27 12:44:04

/tmp/.tm (File creation)

Unknown

2024-06-27 12:44:11

Outbound traffic to 195[.]85[.]114[.]78:443

1,819,425 bytes

2024-09-23 11:31:12

/tmp/.tm (File modification)

1,772,650 bytes

2024-09-23 11:31:19

Outbound traffic to 104[.]238[.]141[.]143:443

1,822,968 bytes

표 2: 두 악용 시도에서 스테이징된 구성 데이터와 아웃바운드 트래픽의 상관관계

두 번째 악용 시도 중에 공격자의 장치가 대상 FortiManager에 등록되었습니다. 그림 1은 권한 없는 FortiManager가 추가된 타임스탬프와 함께 전역 객체 데이터베이스에 나열된 것을 보여줍니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/fortinet-zero-day-fig1.max-600x600.png

그림 1: 공격자의 장치가 전역 객체 데이터베이스에 추가

공격자가 FortiManager를 성공적으로 익스플로잇한 경우 알 수 없는 Fortinet 장치가 FortiManager 콘솔에 보였습니다. 

https://storage.googleapis.com/gweb-cloudblog-publish/images/fortinet-zero-day-fig2.max-600x600.png

그림 2: FortiManager 콘솔에 나열된 권한 없는 장치

성공적으로 익스플리잇된 또 다른 지표는 권한 없는 장치 시리얼 번호 "FMG-VMTM23017412"와 해당 IP 주소 45[.]32[.]41[.]202가 /fds/data/unreg_devices.txt 파일에 추가된 것입니다. 그림 3은 이 파일의 내용을 보여줍니다.

FMG-VMTM23017412|45.32.41.202

그림 3: /fds/data/unreg_devices.txt 정보

/fds/data/subs.dat 및 /fds/data/subs.dat.tmp 파일에는 그림 4에 나열된 것처럼 연결된 일회용 이메일 주소와 회사 이름을 포함하여 익스플로잇 추가 지표가 포함되어 있습니다. 

SerialNumber=FMG-VMTM23017412|AccountID=
0qsc137p@justdefinition.com|Company=Purity Supreme|UserID=1756868

그림 4: /fds/data/subs.dat 정보

Mandiant는 공격자 활동의 추가적인 아티팩트를 찾기 위해 FortiManager의 메모리 이미지를 스크랩했으며 "FMG-VMTM23017412" 및 "45[.]32[.]41[.]202" 키워드를 포함하는 JSON blob을 탐지했습니다. 이 JSON blob에는 값으로 에포크 시간 1726999303을 포함하는 "first_tunnel_up" 키도 포함되어 있습니다. 이 타임스탬프는 2024-09-22 10:01:43 UTC로 변환됩니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/fortinet-zero-day-fig5a.max-1100x1100.png

그 5: 터널 업 아티팩트

후속 공격 활동은 부족한 것으로 보여

Mandiant는 /bin에 마운트되는 장치용 initramfs(RAM 디스크)인 rootfs.gz를 검토했습니다. 악용 활동 기간 동안 생성되거나 수정된 악성 파일은 찾지 못했습니다.

Google Cloud는 환경에서 유사한 활동을 보인 영향을 받는 고객에게 알렸습니다. 또한 Google Threat Intelligence는 이 활동에 대한 탐지를 개발하는 동안 레트로헌트를 실행했으며 영향을 받는 SecOps 고객에게 사전 릴리스 탐지 규칙 알림을 수동으로 에스컬레이션하여 Fortinet 장치의 악용 시도를 탐지하는 데 도움을 주었습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/fortinet-zero-day-fig6.max-1000x1000.png

그 6: 사전 릴리즈 탐지 규 — Fortinet 장치의 제로데이 악용 의심

Mandiant와의 협력 외에도 Fortinet은 고객이 광범위한 공개 공개 전에 보안 태세를 강화할 수 있도록 자문에 대한 조기 경고로 고객에게 사전에 연락을 취했습니다.

위협 행위자들의 활동 타임라인

타임 스탬프

이벤트

2024-06-27 12:44:04

45[.]32[.]41[.]202.File creation /tmp/.tm에서 들어오는 네트워크 연결.

2024-06-27 12:44:07

포트 443에서 45[.]32[.]41[.]202로의 아웃바운드 네트워크 연결.

2024-06-27 12:39:11

포트 443에서 195[.]85[.]114[.]78로의 아웃바운드 네트워크 연결. 전송된 바이트는 /tmp/.tm의 크기와 거의 같습니다.

2024-09-22 10:01:47

45[.]32[.]41[.]202에서 들어오는 네트워크 연결.

2024-09-22 10:01:50

158[.]247[.]199[.]37:443 및 45[.]32[.]41[.]202:443으로의 아웃바운드 네트워크 연결. 158[.]247[.]199[.]37로의 연결은 거부되었습니다.

2024-09-22 10:02:21

/log/locallog/elogmsg="Unregistered device localhost add succeeded"에서 악용을 나타내는 문자열 (등록되지 않은 장치 localhost 추가 성공)

2024-09-22 10:02:55

수정된 파일: /fds/data/unreg_devices.txt

내용: "FMG-VMTM23017412|45.32.41.202"

2024-09-22 10:07:36

/log/locallog/elogchanges="Edited device settings (SN FMG-VMTM23017412)" 에서 악용을 나타내는 문자열 (장치 설정 편집됨 (SN FMG-VMTM23017412))

2024-09-23 11:31:12

45[.]32[.]41[.]202에서 대상 포트 541로 들어오는 네트워크 연결

수정된 파일: /tmp/.tm

2024-09-23 11:31:16

104[.]238[.]141[.]143으로의 아웃바운드 네트워크 연결. 전송된 바이트는 /tmp/.tm의 크기와 거의 같습니다.

표 3: 활동 타임라인

완화 전력 / 해결 방법

  1. 승인된 내부 IP 주소에 대해서만 FortiManager 관리 포털에 대한 액세스를 제한합니다.

  2. 허용된 FortiGate 주소만 FortiManager와 통신하도록 허용합니다.

  3. 알 수 없는 FortiGate 장치가 FortiManager와 연결되는 것을 거부합니다.

7.2.5, 7.0.12, 7.4.3 이상에서 사용 가능(7.6.0에서는 기능적 해결 방법이 아님).

config system global
    set fgfm-deny-unknown enable
end

그림 7: 알 수 없는 장치를 거부하는 구성

탐지

YARA-L

If you are a Google SecOps Enterprise+ customer, rules were released to the “Mandiant Intel Emerging Threats” rule pack (within the Windows Threats group), and IOCs listed in this blog post are available for prioritization with Applied Threat Intelligence.

Google SecOps Enterprise+ 고객인 경우 "Mandiant Intel Emerging Threats" 규칙 세트(Windows Threats 그룹 내)에 규칙이 릴리스되었으며 이 블로그 게시물에 나열된 IOC는 Applied Threat Intelligence를 사용하여 우선 순위를 지정할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/fortinet-zero-day-fig8.max-700x700.png

관련 규칙

  • Suspicious FortiManager Inbound and Outbound Connection
  • UNC5820 Fortinet Exploitation and File Download
  • UNC5820 Fortinet Exploitation and non-HTTPS Command and Control
  • UNC5820 Fortinet Exploitation and HTTPS Command and Control

기타 SIEM

Develop searches against Fortiguard logs for the following relevant IOCs. In particular, the Malicious Fortinet Device ID should provide a high fidelity alert if triggered.

다음 관련 IOC에 대한 Fortiguard 로그 검색을 개발합니다. 특히 악성 Fortinet 장치 ID가 트리거되면 신뢰할 수 있는 알럿(alert)을 제공해야 합니다.

FortiManager 로그에서 고유 작업에 대한 기준선을 설정하고 임계값을 설정합니다. 특히 이 취약점을 패치할 때까지 조직에서 실행 가능한 경고를 제공하기에 "장치 추가" 및 "장치 수정" 작업이 충분히 드물 수 있습니다. 

마찬가지로 FortiManager 로그의 변경 필드에 대한 기준선을 설정하고 임계값을 설정하고 변경 필드에 '등록되지 않음'이라는 단어가 포함된 경우 더 높은 민감도를 고려합니다. 

매일 Fortigate 장치를 열거하고 이전에 보지 못한 장치 이름이 로그에서 관찰될 때 경고합니다. 

IOC(Indicators of Compromise)

네트워크 기반 IOCs

IOC

세부 정보

45.32.41.202

UNC5820

104.238.141.143

UNC5820

158.247.199.37

UNC5820

195.85.114.78

UNC5820

호스트 기반 IOCs

IOC

세부 정보

.tm

구성 파일 아카이브

9DCFAB171580B52DEAE8703157012674

unreg_devices.txt의 MD5 해시

추가 키워드

키워드

세부 정보

FMG-VMTM23017412

악성 Fortinet 장치 ID

msg="Unregistered device localhost add succeeded"

/log/locallog/elog에서 악용을 나타내는 문자열

changes="Edited device settings (SN FMG-VMTM23017412)"

/log/locallog/elog에서 악용을 나타내는 문자열

changes="Added unregistered device to unregistered table."

/log/locallog/elog에서 악용을 나타내는 문자열

0qsc137p@justdefinition.com

subs.dat 및 subs.dat.tmp에서 관찰됨. 이것은 공격자가 생성한 일회용 이메일 주소입니다.

Purity Supreme

subs.dat 및 subs.dat.tmp에서 관찰됨

게시 위치