Hàng ngàn thiết bị sử dụng FortiOS và FortiProxy chưa cập nhật bản vá cho các lỗ hổng bảo mật nghiêm trọng - Phần II

Hàng ngàn thiết bị sử dụng FortiOS và FortiProxy chưa cập nhật bản vá cho các lỗ hổng bảo mật nghiêm trọng - Phần II

3. CVE-2022-42475 | Lỗ hổng Heap-based Buffer Overflow trên Fortinet SSL-VPN

- Phiên bản ảnh hưởng:

o FortiProxy: 7.2.1, 7.2.0, 7.0.7, 7.0.6, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0, 2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.11, 2.0.10, 2.0.1, 2.0.0, 1.2.9, 1.2.8, 1.2.7, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.13, 1.2.12, 1.2.11, 1.2.10, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0

o FortiOS: 7.2.2, 7.2.1, 7.2.0, 7.0.8, 7.0.7, 7.0.6, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0, 6.4.9, 6.4.8, 6.4.7, 6.4.6, 6.4.5, 6.4.4, 6.4.3, 6.4.2, 6.4.10, 6.4.1, 6.4.0, 6.2.9, 6.2.8, 6.2.7, 6.2.6, 6.2.5, 6.2.4, 6.2.3, 6.2.2, 6.2.11, 6.2.10, 6.2.1, 6.2.0, 6.0.9, 6.0.8, 6.0.7, 6.0.6, 6.0.5, 6.0.4, 6.0.3, 6.0.2, 6.0.15, 6.0.14, 6.0.13, 6.0.12, 6.0.11, 6.0.10, 6.0.1, 6.0.0, 5.6.9, 5.6.8, 5.6.7, 5.6.6, 5.6.5, 5.6.4, 5.6.3, 5.6.2, 5.6.14, 5.6.13, 5.6.12, 5.6.11, 5.6.10, 5.6.1, 5.6.0, 5.4.9, 5.4.8, 5.4.7, 5.4.6, 5.4.5, 5.4.4, 5.4.3, 5.4.2, 5.4.13, 5.4.12, 5.4.11, 5.4.10, 5.4.1, 5.4.0, 5.2.9, 5.2.8, 5.2.7, 5.2.6, 5.2.5, 5.2.4, 5.2.3, 5.2.2, 5.2.15, 5.2.14, 5.2.13, 5.2.12, 5.2.11, 5.2.10, 5.2.1, 5.2.0, 5.0.9, 5.0.8, 5.0.7, 5.0.6, 5.0.5, 5.0.4, 5.0.3, 5.0.2, 5.0.14, 5.0.13, 5.0.12, 5.0.11, 5.0.10, 5.0.1, 5.0.0

- Điều kiện khai thác:

o Hệ thống sử dụng Fortinet FortiOS và FortiProxy phiên bản tồn tại lỗ hổng có cấu hình sử dụngSSL-VPN.

o Tin tặc có thể kết nối mạng tới hệ thống.

- Dựa trên các tiêu chí:

o Thông tin chi tiết của lỗ hổng đã được công bố trên không gian mạng.

o Tin tặc không cần xác thực để khai thác lỗ hổng.

o Khai thác lỗ hổng thành công cho phép tin tặc thực thi mã tùy ý trên máy chủ.

o Lỗ hổng đã được khai thác trong thực tế.

o Lỗ hổng đã có bản vá từ phía hãng.

Viettel Threat Intelligence đánh giá lỗ hổng ở mức Nghiêm Trọng.

- Thông tin chi tiết:

Dịch vụ Fortinet SSL-VPN (sslvpnd) trong FortiOS/FortiProxy tồn tại lỗ hổng Integer Overflow cho phép tin tặc thực thi mã tuỳ ý trên máy chủ.

Cụ thể, khi đọc một yêu cầu HTTP từ người dùng, dịch vụ này sẽ tạo ra một vùng nhớ mới để chứa phần thân yêu cầu (request body) có độ dài bằng với giá trị header Content-Length cộng 1. Lỗ hổng tồn tại do giá trị Content-Length được lưu trong một biến có độ dài 4 byte với giá trị tối đa là 2,147,483,647. Như vậy nếu giá trị này là 2,147,483,647 tương ứng với phần thân yêu cầu có độ dài khoảng 2GB, dịch vụ sẽ tạo ra một vùng nhớ rất nhỏ để chứa phần dữ liệu này, gây ra lỗi Heap-based Buffer Overflow.

Hình 10. Mã nguồn tồn tại lỗ hổng CVE-2022-42475

Khai thác lỗ hổng thành công cho phép tin tặc ghi đè các đối tượng khác trong vùng nhớ heap, kết hợp với các phương pháp khai thác đã biết để thực thi mã tuỳ ý trên máy chủ/thiết bị.

- Kịch bản tấn công:

1. Tổ chức sử dụng FortiOS/FortiProxy làm tường lửa và được kết nối trực tiếp với Internet.

2. Tin tặc khai thác lỗ hổng CVE-2022-42475 bằng cách gửi các yêu cầu HTTP đến cổng 443/10443 (mặc định) tương ứng với dịch vụ SSL VPN.

3. Tin tặc chiếm được quyền điều khiển máy chủ/thiết bị, từ đó xâm nhập mạng nội bộ của tổ chức.

- Dấu hiệu nhận biết:

Để nhận biết máy chủ/thiết bị đã bị tấn công, quản trị viên cần kiểm tra log của máy chủ/thiết bị (vị trí của log phụ thuộc cấu hình của quản trị viên) có chứa nội dung dạng:

o Logdesc="Application crashed" and msg="[...] application:sslvpnd,[...], Signal 11 received, Backtrace: [...]“

Hình 11. Log cho thấy hệ thống crash bởi việc khai thác lỗ hổng (Nguồn: SCRT)

Truy vấn HTTP độc hại của tin tặc có các đặc điểm:

o Phương thức: POST

o Cổng: 443 hoặc 10443 (mặc định)

o Header Content-Length có giá trị 2147483647 trở lên.

o Phần thân truy vấn có độ dài lớn hơn 2GB.

Để kiểm tra phiên bản của thiết bị, quản trị viên vui lòng sử dụng lệnh sau:

o   diagnose sys fortiguard-service status

- Biện pháp khắc phục:

Để đảm bảo an toàn thông tin cho tổ chức, Viettel Threat Intelligence khuyến nghị quản trị viên cập nhật phiên bản đã bao gồm bản vá cho các máy chủ/thiết bị bị ảnh hưởng:

o FortiOS phiên bản:

+  7.2.3 hoặc cao hơn.

+  7.0.9 hoặc cao hơn.

+  6.4.11 hoặc cao hơn.

+  6.2.12 hoặc cao hơn.

+  6.0.16 hoặc cao hơn.

o FortiOS-6K7K phiên bản:

+  7.0.8 hoặc cao hơn.

+  6.4.10 hoặc cao hơn.

+  6.2.12 hoặc cao hơn.

+  6.0.15 hoặc cao hơn.

o FortiProxy phiên bản:

+  7.2.2 hoặc cao hơn.

+  7.0.8 hoặc cao hơn.

+ 2.0.12  hoặc cao hơn.

Trong trường hợp chưa thể cập nhật bản vá, Viettel Threat Intelligence khuyến nghị quản trị viên tắt SSL-VPN trên hệ thống để đảm bảo an toàn thông tin. Chi tiết hướng dẫn xem thêm tại:

o https://community.fortinet.com/t5/FortiGate/Technical-Tip-How-to-disable-SSL-VPN-Web-Mode-or-Tunnel-Mode-in/ta-p/217990

Một số IOC được sử dụng trong các chiến dịch tấn công khai thác lỗ hổng này:

IOCs:

Filenames:

Files from /var/w.

/data/lib/libips.bak

/data/lib/libgif.so

/data/lib/libiptcp.so

/data/lib/libipudp.so

/data/lib/libjepg.so

/var/.sslvpnconfigbk

/data/etc/wxd.conf

/flash

IP/Domains

188[.]34[.]130[.]40

103[.]131[.]189[.]143

193[.]36[.]119[.]61

172[.]247[.]168[.]153

139[.]180[.]184[.]197

66[.]42[.]91[.]32

158[.]247[.]221[.]101

107[.]148[.]27[.]117

139[.]180[.]128[.]142

155[.]138[.]224[.]122

185[.]174[.]136[.]20

139[.]180[.]184[.]197

66[.]42[.]91[.]32

158[.]247[.]221[.]101

107[.]148[.]27[.]117

139[.]180[.]128[.]142

155[.]138[.]224[.]122

185[.]174[.]136[.]20

45[.]86[.]229[.]220

45[.]86[.]231[.]71

139[.]99[.]35[.]116

139[.]99[.]37[.]119

194[.]62[.]42[.]105

45[.]86[.]231[[.]71

45[.]86[.]229[[.]220

185[.]250[.]149[[.]32

137[.]175[.]30[.]138

146[.]70[.]157[[.]133

156[.]251[.]162[.]76

156[.]251[.]163[.122

156[.]251[.]163[.]19

156[.]251[.]162[.111

File Path Samples

MD5

f68c3f72270800ea675889e82bb02fb8

e3f640d8785c0c864739529889b1863a

08cbaafb176ce6118f7e4e0b2d2d77cf

bdc2d2f5d5246f8956711bcce9f456b6

4548fa6625cb154ab320833186117393

e5d989b651b3eb351e10e408d5a062b3

3191cb2e06e9a30792309813793f78b6

12e28c14bb7f7b9513a02e5857592ad7

ae0839351721db5a9c269fd75dcb57ce

856341349dd954d82b112ba9165c4563

54bbea35b095ddfe9740df97b693627b

bf2b95ac267823f6588b2436bc537b26

4. CVE-2022-40684 | Lỗ hổng bỏ qua xác thực trên FortiOS | FortiProxy | FortiSwitchManager

- Phiên bản ảnh hưởng:

o FortiOS: 7.2.1, 7.2.0, 7.0.6, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0

o FortiProxy: 7.2.0, 7.0.6, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0

o FortiSwitchManager: 7.2.0, 7.0.0

- Điều kiện khai thác:

o Hệ thống sử dụng Fortinet FortiOS và FortiProxy hoặc FortiSwitchManager phiên bản có chứa lỗ hổng.

o Tin tặc có thể gửi các truy vấn HTTP/HTTPS đến máy chủ.

- Dựa trên các tiêu chí:

o Thông tin chi tiết của lỗ hổng đã được công bố trên không gian mạng.

o Tin tặc không cần xác thực để khai thác lỗ hổng.

o Khai thác lỗ hổng thành công cho phép tin tặc lấy cắp thông tin nhạy cảm hoặc thực thi mã tùy ý trên máy chủ.

o Lỗ hổng đã được khai thác trong thực tế.

o Lỗ hổng đã có bản vá từ phía hãng.

Viettel Threat Intelligence đánh giá lỗ hổng ở mức Nghiêm Trọng.

- Thông tin chi tiết:

Quan sát bản vá cho lỗ hổng, nguy cơ xảy ra cụ thể tại /bin/init/node-scripts/index.js:

Hình 12. Mã nguồn của bản vá khắc phục lỗ hổng CVE-2023-40684

Tại hàm is_trusted_ip_and_user_agent:

Hình 13. Mã nguồn của hàm is_trusted_ip_and_user_agent

Hàm này kiểm tra client_ip có phải là 127.0.0.1 hay không và kiểm tra User-Agent header có trùng với tham số thứ 2 hay không. Hàm này sẽ gọi tới 2 tham số “Node.js” và “Report Runner”. Sử dụng tham số "Report Runner"  trong truy vấn cho phép tin tặc bỏ qua xác thực và truy cập API không được phép.

- Kịch bản tấn công:

1. Tin tặc gửi truy vấn HTTP đặc biệt đến hệ thống, từ đó khai thác lỗ hổng CVE-2022-40684.

2. Khai thác thành công lỗ hổng, tin tặc có được SSH key để SSH tới hệ thống với đặc quyền quản trị viên.

3. Tin tặc SSH tới hệ thống với quyền quản trị viên, từ đó thực thi mã từ xa.

Ngoài ra, tin tặc cũng có thể khai thác lỗ hổng để:

o Thêm người dùng cục bộ mới để đăng nhập hệ thống.

o Tải xuống hoặc sửa đổi cấu hình hệ thống.

o Lấy cắp thông tin nhạy cảm trên hệ thống.

- Dấu hiệu nhận biết:

Gói tin tin tặc sử dụng để khai thác lỗ hổng có các dấu hiệu sau:

o Truy vấn HTTP phương thức PUT.

o Truy vấn đến endpoint "/api/v2/cmdb/system/admin/"

o Có chứa các chuỗi: "for=", "by=", "127.0.0.1" "Report Runner".

- Ví dụ về truy vấn của tin tặc:

PUT /api/v2/cmdb/system/admin/admin HTTP/1.1 Host: 10.0.40.67 User-Agent: Report Runner Content-Type: application/json Forwarded: for=”[127.0.0.1]:8000″;by=”[127.0.0.1]:9000″; Content-Length: 612 { “ssh-public-key1”: “\”ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIOC0lL4quBWMUAM9g/g9TSutzDupGQOnlYqfaNEIZqnSLJ3Mfln6rGSYol/WSm6/N7TNpuVFScRtmdUZ9O8oSamyaizqMG5hcRKRiI49F49judolcffBCTaVpQpxqt+tjcuGzZAoIqg6TyHg1BNojadev@devs-MacBook-Pro.local\”” }

o Để kiểm tra xem hệ thống đã bị tấn công hay chưa, kiểm tra Logging xem ai đã đăng nhập vào thiết bị thông qua từ khóa “Local_Process_Access”  như dưới đây thiết bị đã bị tấn công và kẻ tấn công đã tải xuống file config của Fortigate.

Hình 14. Log cho thấy dấu hiệu khai thác lỗ hổng CVE-2023-40684

o Để kiểm tra phiên bản của thiết bị, quản trị viên vui lòng sử dụng lệnh sau:

§ diagnose sys fortiguard-service status

- Biện pháp khắc phục:

Viettel Threat Intelligence khuyến nghị quản trị viên cập nhật các sản phẩm bị ảnh hưởng lên các phiên bản đã bao gồm bản vá cho lỗ hổng. Cụ thể các phiên bản đã bao gồm bản vá như sau:

o FortiOS phiên bản 7.2.2 hoặc cao hơn.

o FortiOS phiên bản 7.0.7 hoặc cao hơn.

o FortiProxy phiên bản 7.2.1 hoặc cao hơn.

o FortiProxy phiên bản 7.0.7 hoặc cao hơn.

o FortiSwitchManager phiên bản 7.2.1 hoặc cao hơn.

Trong trường hợp chưa thể cập nhật phiên bản, quản trị viên vui lòng thực hiện các biện pháp khắc phục tạm thời như sau:

o FortiOS:

+  Vô hiệu hóa truy cập giao diện quản trị thông qua HTTP/HTTPS (HTTP/HTTPS administrative interface)

+  Giới hạn IP truy cập giao diện quản trị:

config firewall address

edit "my_allowed_addresses"

set subnet <MY IP> <MY SUBNET>

end

+  Tạo Address Group:

config firewall addrgrp

edit "MGMT_IPs"

set member "my_allowed_addresses"

end

+  Tạo Local in Policy để hạn chế quyền truy cập vào nhóm được xác định trước trên giao diện quản lý (Ví dụ cổng dưới đây là port1):

config firewall local-in-policy

edit 1

set intf port1

set srcaddr "MGMT_IPs"

set dstaddr "all"

set action accept

set service HTTPS HTTP

set schedule "always"

set status enable

next

edit 2

set intf "any"

set srcaddr "all"

set dstaddr "all"

set action deny

set service HTTPS HTTP

set schedule "always"

set status enable

end

+  Nếu sử dụng các cổng không phải mặc định, hãy tạo đối tượng dịch vụ thích hợp cho quyền truy cập quản trị GUI:

config firewall service custom

edit GUI_HTTPS

set tcp-portrange <admin-sport>

next

edit GUI_HTTP

set tcp-portrange <admin-port>

end

o FortiProxy:

+  Vô hiệu hóa truy cập giao diện quản trị thông qua HTTP/HTTPS (HTTP/HTTPS administrative interface)

+  Giới hạn IP truy cập giao diện quản trị (Ví dụ cổng dưới đây là port1):

config system interface

edit port1

set dedicated-to management

set trust-ip-1 <MY IP> <MY SUBNET>

end

o FortiSwitchManager:

+  Vô hiệu hóa truy cập giao diện quản trị thông qua HTTP/HTTPS (HTTP/HTTPS administrative interface)

- Rule Detection:

Suricata

alert http any any -> any any (msg:"Detecting CVE-2022-40684 attack"; flow:to_server; content:"PUT"; http_method; content:"/api/v2/cmdb/system/admin/"; startswith; http_uri; content:"for="; http_header; content:"by="; http_header; content:"127.0.0.1"; http_header; content:"Report Runner"; http_header; metadata: author by Viettel Cyber Security; classtype:web-application-attack; sid:20224408; rev:1;)

Theo ghi nhận của Viettel Threat Intelligence, CVE-2022-40684 được sử dụng nhiều trong các chiến dịch tấn công nhắm vào các tổ chức doanh nghiệp. Điển hình có thể kể đến chiến dịch tấn công của nhóm Volt Typhoon vào cuối năm 2022.

Hình 15. Kịch bản tấn công được sử dụng trong chiến dịch của nhóm Volt Typhoon (Nguồn: Microsoft)

Nhìn vào hình trên có thể thấy, tin tặc sử dụng CVE-2022-40684 để dành quyền truy cập ban đầu vào hệ thống (dựa trên IOCs ghi nhận được, các tài khoản quản trị viên `fortinet-tech-support` và `fortigate-tech-support` được tìm thấy trong các thiết bị của khách hàng liên quan trong chiến dịch này). Sau đó, tin tặc tận dụng bất cứ đặc quyền nào mà thiết bị Fortinet cung cấp, trích xuất các thông tin đăng nhập vào tài khoản Active Directory mà thiết bị sử dụng, sau đó cố gắng xác thực với các thiết bị khác trên mạng bằng những thông tin đăng nhập này. Sau đó nhóm tấn công tiến hành các hành động độc hại tiếp theo trên hệ thống mục tiêu.

- IOCs:

SHA-256:

baeffeb5fdef2f42a752c65c2d2a52e84fb57efc906d981f89dd518c314e231c

b4f7c5e3f14fb57be8b5f020377b993618b6e3532a4e1eb1eae9976d4130cc74

4b0c4170601d6e922cf23b1caf096bba2fade3dfcf92f0ab895a5f0b9a310349

c0fc29a52ec3202f71f6378d9f7f9a8a3a10eb19acb8765152d758aded98c76d

d6ab36cb58c6c8c3527e788fc9239d8dcc97468b6999cf9ccd8a815c8b4a80af

9dd101caee49c692e5df193b236f8d52a07a2030eed9bd858ed3aaccb406401a

450437d49a7e5530c6fb04df2e56c3ab1553ada3712fab02bd1eeb1f1adbc267

93ce3b6d2a18829c0212542751b309dacbdc8c1d950611efe2319aa715f3a066

7939f67375e6b14dfa45ec70356e91823d12f28bbd84278992b99e0d2c12ace5

389a497f27e1dd7484325e8e02bbdf656d53d5cf2601514e9b8d8974befddf61

c4b185dbca490a7f93bc96eefb9a597684fdf532d5a04aa4d9b4d4b1552c283b

e453e6efc5a002709057d8648dbe9998a49b9a12291dee390bb61c98a58b6e95

6036390a2c81301a23c9452288e39cb34e577483d121711b6ba6230b29a3c9ff

cd69e8a25a07318b153e01bba74a1ae60f8fc28eb3d56078f448461400baa984

17506c2246551d401c43726bdaec800f8d41595d01311cf38a19140ad32da2f4

8fa3e8fdbaa6ab5a9c44720de4514f19182adc0c9c6001c19cf159b79c0ae9c2

d17317e1d5716b09cee904b8463a203dc6900d78ee2053276cc948e4f41c8295

472ccfb865c81704562ea95870f60c08ef00bcd2ca1d7f09352398c05be5d05d

3e9fc13fab3f8d8120bd01604ee50ff65a40121955a4150a6d2c007d34807642

IV. Lời kết:

Qua các thông tin trong bài viết này, chúng ta có thể thấy được mức độ ảnh hưởng của các lỗ hổng này CVE-2023-33308, CVE-2023-27997, CVE-2022-42475, CVE-2022-40684. Việc thực hiện các biện pháp khắc phục, giảm thiểu, và rà soát các hành vi khai thác cho các lỗ hổng là rất cấp thiết để đảm bảo an toàn thông tin cho tổ chức, doanh nghiệp.

Ngoài các lỗ hổng ở trên, FortiOS và FortiProxy còn tồn tại rất nhiều lỗ hổng từ các năm trước được các nhóm tấn công sử dụng nhiều trong các chiến dịch tấn công. Song song với đó, Viettel Threat Intelligence dự đoán trong thời gian tới, các sản phẩm của Fortinet cũng như các giải pháp bảo mật của các hãng lớn sẽ tiếp tục xuất hiện các lỗ hổng bảo mật mới có mức độ ảnh hưởng cao và nghiêm trọng. Quản trị viên cần kịp thời nắm bắt thông tin và kịp thời đưa ra các phương án kịp thời phản ứng với các nguy cơ này.

Reference

https://www.fortiguard.com/psirt/FG-IR-23-183
https://www.fortiguard.com/psirt/FG-IR-23-183
https://www.fortiguard.com/psirt/FG-IR-22-398
https://blog.scrt.ch/2023/03/14/producing-a-poc-for-cve-2022-42475-fortinet-rce/
https://www.fortinet.com/blog/psirt-blogs/analysis-of-fg-ir-22-398-fortios-heap-based-buffer-overflow-in-sslvpnd
https://blog.lexfo.fr/xortigate-cve-2023-27997.html
https://github.com/BishopFox/CVE-2023-27997-check
https://dashboard.shadowserver.org/
https://www.horizon3.ai/fortios-fortiproxy-and-fortiswitchmanager-authentication-bypass-technical-deep-dive-cve-2022-40684/
https://www.fortinet.com/blog/psirt-blogs/analysis-of-cve-2023-27997-and-clarifications-on-volt-typhoon-campaign
https://www.microsoft.com/en-us/security/blog/2023/05/24/volt-typhoon-targets-us-critical-infrastructure-with-living-off-the-land-techniques/