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 I
Trong quá trình giám sát nguy cơ trên không gian mạng, Viettel Threat Intelligence ghi nhận các lỗ hổng chưa được vá trên các sản phẩm phổ biến hiện đang là mục tiêu ưa thích của các nhóm tấn công nhắm vào các tổ chức doanh nghiệp. Một trong số đó là các sản phẩm, giải pháp bảo mật. Trong bài viết này, Viettel Threat Intelligence cảnh báo về nguy cơ khai thác các lỗ hổng nghiêm trọng trên FortiOS và FortiProxy - một sản phẩm của Fortinet được sử dụng rộng rãi tại Việt Nam và trên thế giới.
Danh sách các lỗ hổng đáng chú ý trên FortiOS và FortiProxy trong khoảng thời gian cuối năm 2022 tới nay bao gồm: CVE-2023-33308, CVE-2023-27997, CVE-2022-42475, CVE-2022-40684. Đây đều là các lỗ hổng ở mức Cao và Nghiêm trọng cho phép tin tặc không cần xác thực có thể thực thi mã từ xa trên hệ thống mục tiêu, tuy nhiên vẫn còn nhiều hệ thống trên thế giới chưa cập nhật bản vá hoặc thực hiện các biện pháp khắc phục cho các lỗ hổng. Viettel Threat Intelligence sẽ đưa ra các thông tin chi tiết liên quan đến các lỗ hổng này.
Tuyên bố miễn trừ trách nhiệm
Tuyên bố miễn trừ trách nhiệm: Báo cáo này hoàn toàn phục vụ mục đích duy nhất là chia sẻ thông tin kỹ thuật cho cộng đồng an toàn thông tin và các tổ chức doanh nghiệp nhằm nâng cao nhận thức về An toàn thông tin cũng như có các phương án đảm bảo đề phòng cho các vấn đề về rủi ro an toàn thông tin mạng. Mọi cáo buộc khác nội dung của báo cáo này đều không đúng với mục đích xuất bản của chúng tôi. Báo cáo có sử dụng một số thông tin thu thập được trong quá trình cung cấp dịch vụ cho khách hàng của Viettel Cyber Security và tham khảo thông tin của một số báo cáo chi tiết trong phụ lục.
I. FortiOS và FortiProxy là gì?
FortiOS là hệ điều hành được sử dụng trong phần cứng của Fortinet, chẳng hạn như tường lửa Fortigate và các thiết bị switch. FortiOS được phát triển dựa trên Linux.
FortiProxy là một giải pháp proxy giúp bảo vệ người dùng trước các cuộc tấn công từ Internet. FortiProxy kết hợp các tính năng quan trọng như lọc URL, DLP, khả năng hiển thị và kiểm soát ứng dụng, chống vi-rút, ngăn chặn xâm nhập, phân tích nội dung, giải mã SSL hiệu suất cao và cách ly trình duyệt máy khách.
Theo thống kê từ Shodan, trên thế giới hiện có hơn 262 nghìn thiết bị sử dụng FortiGate đang cho phép truy cập công khai trên Internet.
Tại Việt Nam con số này là gần 3000 địa chỉ IP:
Còn theo số liệu từ Shadowserver, hơn 476.000 thiết bị cho phép truy cập công khai trên toàn thế giới sử dụng FortiOS SSL-VPN.
Những con số trên có thể cho thấy được sự phổ biến của FortiOS và FortiProxy trong môi trường doanh nghiệp tổ chức trên thế giới cũng như ở Việt Nam.
II. Thực trạng
Theo số liệu của Shadowserver, có ít nhất 16.000 địa chỉ IP trên toàn thế giới sử dụng FortiOS và FortiProxy công khai trên Internet đang tồn tại các lỗ hổng CVE-2023-33308, CVE-2023-27997, CVE-2022-42475 chưa được vá.
Tại Việt Nam, theo thống kê của Shadowserver, có 150 máy chủ cho phép truy cập công khai trên Internet chưa được cập nhật bản vá cho các lỗ hổng này.
Tại thời điểm tháng 10-2022, có hơn 17.000 hệ thống trên thế giới tồn tại lỗ hổngCVE-2022-40684 và chưa được cập nhật bản vá.
Tại Việt Nam có hơn 500 máy chủ vào tháng 10/2022 chưa thực hiện các biện pháp khắc phục dành cho lỗ hổng CVE-2022-40684. Tại ngày 25/7/2023, theo ghi nhận của Viettel Threat Intelligence, số lượng máy chủ ảnh hưởng đã lên tới 226 máy.
Riêng với lỗ hổng CVE-2023-27997 được công bố thông tin vào ngày 12/6/2023, có hơn 20.000 hệ thống tồn tại lỗ hổng này chưa được vá trên toàn thế giới. Tuy nhiên tới thời điểm hiện tại, vẫn còn hơn 16.000 thiết bị ảnh hưởng bởi lỗ hổng CVE-2023-27997.
Như vậy, chỉ có khoảng 4000 hệ thống được cập nhật bản vá hoặc không cho phép truy cập công khai trong khoảng hơn một tháng từ khi lỗ hổng được phát hành bản vá. Nghĩa là chỉ có khoảng 25% các hệ thống thực hiện các biện pháp bảo mật nhằm khắc phục lỗ hổng này.
III. Thông tin chi tiết về các lỗ hổng:
1. CVE-2023-27997 | Lỗ hổng Heap-Based Buffer Overflow trên Fortinet FortiOS và FortiProxy SSL-VPN
- Phiên bản ảnh hưởng:
o FortiOS-6K7K: 7.0.5, 7.0.10, 6.4.8, 6.4.6, 6.4.2, 6.4.12, 6.4.10, 6.2.9, 6.2.7, 6.2.6, 6.2.4, 6.2.13, 6.2.12, 6.2.11, 6.2.10, 6.0.16, 6.0.15, 6.0.14, 6.0.13, 6.0.12, 6.0.10
o FortiProxy: 7.2.3, 7.2.2, 7.2.1, 7.2.0, 7.0.9, 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, 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.12, 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
o FortiOS : 7.2.4, 7.2.3, 7.2.2, 7.2.1, 7.2.0, 7.0.9, 7.0.8, 7.0.7, 7.0.6, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.11, 7.0.10, 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.12, 6.4.11, 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.13, 6.2.12, 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.16, 6.0.15, 6.0.14, 6.0.13, 6.0.12, 6.0.11, 6.0.10, 6.0.1, 6.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ụng SSL-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ó bản vá từ phía hãng.
Viettel Threat Intelligence đánh giá lỗ hổng ở mức Cao.
- Thông tin chi tiết:
Lỗ hổng tồn tại trong giao diện web cho dùng cho người dùng xác thực khi truy cập VPN. Hệ thống cho phép người dùng gửi truy vấn GET hoặc POST tới endpoint /remote/hostcheck_validatecùng với tham số enc.
Cấu trúc của tham số enc:
Tại đây tồn tại lỗ hổng Heap-Based Buffer Overflow. Lỗi này cho phép tin tặc phân bổ một đoạn vùng nhớ có kích thước tùy ý N là ‘out’, sau đó XOR các byte phía sau bộ đệm với keystream của MD5 hash, giá trị này có thể do tin tặc truyền vào. Do đó, tin tặc có thể kiểm soát kích thước của bộ đệm được phân bổ và kích thước của XOR overflow.
Với việc kích hoạt lỗ hổng 2 lần với độ dài lần lượt là L và L+1, tin tặc có thể chỉnh sửa byte trên bộ nhớ.
SSL cho phép phân bổ bộ nhớ mỗi khi máy khách kết nối tới worker process của sslvpn và được giải phóng khi máy khách hoặc máy chủ đóng socket. Tin tặc có thể khai thác lỗi trên với SSL bằng cách kiểm soát giá trị của con trỏ hàm và buộc socket thực hiện SSL handshake.
- Kịch bản khai thác:
· Với hệ thống 64 bit:
Cấu trúc SSL có kích thước là 0x1db8 bytes. Nó được phân bổ vùng nhớ có kích thước là 0x2000 bytes. Tin tặc cần gửi truy vấn có kích thước lớn hơn 0x2000 bytes.
1. Tạo số lượng lớn socket đến dịch vụ HTTPd
2. Gửi một yêu cầu HTTP với kích thước lớn trên socket cuối cùng, để buộc bộ đệm được phân bổ lại:
3. Sử dụng một socket khác để khai thác lỗ hổng, ‘out’ được phân bổ vào vùng mà tin tặc muốn.
· Với hệ thống 32 bit:
Cấu trúc SSL được phân bổ vùng nhớ với kích thước là 0x1000 bytes. Tuy nhiên chương trình cấp phát 0x1000 bytes để lưu trữ phản hồi HTTP. Tương tự như trên:
1. Tin tặc tạo nhiều socket tới HTTPd service.
2. Với kết nối cuối cùng, truyền vào tham số POST lớn.
3. Tham số được lặp lại, buộc phân bổ lại bộ đệm phản hồi HTTP.
4. Sử dụng một socket khác để khai thác lỗ hổng, ‘out’ được phân bổ vào vùng mà tin tặc muốn.
- Dấu hiệu nhận biết:
Gói tin tặc sử dụng để khai thác lỗ hổng có các dấu hiệu sau:
Truy vấn lấy giá trị salt:
o Truy vấn HTTP phương thức GET
o Truy vấn tới các endpoint /remote/info với hệ thống 32 bit
o Truy vấn tới các endpoint /remote/saml/logoutvới hệ thống 32 bit
Gói tin khai thác lỗ hổng Heap-Based Buffer Overflow:
o Truy vấn HTTP phương thức GET hoặc POST.
o Cổng: 443 hoặc 10443 (mặc định)
o Truy vấn tới các endpoint /remote/hostcheck_validatehoặc /remote/logincheck, chứa tham số enc.
o Kích thước truy vấn lớn hơn 0x2000 bytes với hệ thống 64 bit và lớn hơn 0x1000 bytes với hệ thống 32 bit.
- Ví dụ về các log truy vấn trong quá trình khai thác:
Khi khai thác lỗ hổng, hệ thống có thể bị crash. Quản trị viên có thể kiểm tra nhật kí crash của tiến trình /bin/sslvpnd. Tuy nhiên cũng có trường hợp trong khi khai thác, hệ thống không bị crash.
Để 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:
Để đảm bảo an toàn cho tổ chức, VCT-TI khuyến nghị quản trị viên cập nhật các sản phẩm lên các phiên bản đã bao gồm bản vá cho lỗ hổng. Chi tiết gồm:
o FortiOS-6K7K phiên bản:
+ 7.0.12 hoặc cao hơn
+ 6.4.13 hoặc cao hơn
+ 6.2.15 hoặc cao hơn
+ 6.0.17 hoặc cao hơn
o FortiProxy phiên bản:
+ 7.2.4 hoặc cao hơn
+ 7.0.10 hoặc cao hơn
+ 7.4.0 hoặc cao hơn
+ 7.2.5 hoặc cao hơn
+ 7.0.12 hoặc cao hơn
+ 6.4.13 hoặc cao hơn
+ 6.2.14 hoặc cao hơn
+ 6.0.17 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
Công cụ để kiểm tra hệ thống có tồn tại hệ thống hay không:
o https://github.com/BishopFox/CVE-2023-27997-check
2. CVE-2023-33308 | Lỗ hổng Stack-based buffer overflow FortiOS/FortiProxy
- Phiên bản ảnh hưởng:
o FortiOS : 7.2.3, 7.2.2, 7.2.1, 7.2.0, 7.0.10, 7.0.9, 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
o FortiProxy : 7.2.2, 7.2.1, 7.2.0, 7.0.9, 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
- Điều kiện khai thác:
o Hệ thống sử dụng Fortinet FortiOS và FortiProxy có cấu hình “HTTP/2 support in proxy mode SSL inspection”
o Tin tặc có thể kết nối mạng tới hệ thống.
- Thông tin tổng quan: Lỗ hổng Stack-based buffer overflow trên FortiOS/FortiProxy cho phép tin tặc có thể thực thi mã từ xa trên 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 Thông tin chi tiết và mã khai thác của lỗ hổng chưa được công bố trên không gian mạng.
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.
- Biện pháp khắc phục:
o Viettel Threat Intelligence khuyến nghị quản trị viên cập nhật FortiOS/FortiProxy lên các phiên bản đã bao gồm bản vá cho lỗ hổng:
+ FortiOS 7.4.0 hoặc cao hơn.
+ FortiOS 7.2.4 hoặc cao hơn.
+ FortiOS 7.0.11 hoặc cao hơn.
+ FortiProxy 7.2.3 hoặc cao hơn.
+ FortiProxy 7.0.10 hoặc cao hơn.
o Trong trường hợp chưa thể cập nhật phiên bản, vui lòng thực hiện biện pháp khắc phục tạm thời sau:
+ Tắt “HTTP/2 support” trong cấu hình SSL inspection được sử dụng bởi proxy policies hoặc firewall policies với proxy mode.
+ Ví dụ:
config firewall ssl-ssh-profile
edit "custom-deep-inspection"
set supported-alpn http1-1
next
end
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