Phân tích chi tiết về sát thủ mạng công nghiệp INCONTROLLER

nktung

Super Moderator
Thành viên BQT
08/10/2013
400
985 bài viết
Phân tích chi tiết về sát thủ mạng công nghiệp INCONTROLLER
Vào đầu năm 2022, hãng bảo mật Mandiant kết hợp công ty thiết bị điện Schneider Electric, đã phân tích một bộ công cụ tấn công mạng có chủ đích vào hệ thống điều khiển công nghiệp (ICS), được gọi là INCONTROLLER (hay còn gọi là PIPEDREAM) - được xây dựng để nhắm mục tiêu vào các thiết bị máy móc tự động hóa công nghiệp. Phần mềm độc hại này gây ra rủi ro nghiêm trọng cho các công ty sử dụng các thiết bị công nghiệp nằm trong tầm ngắm. INCONTROLLER được cho là có sự bảo trợ từ chính phủ với khả năng làm gián đoạn, phá hoại và khả năng phá hủy vật lý.

incontroller.png

INCONTROLLER thể hiện khả năng tấn công mạng đặc biệt "hiếm" và nguy hiểm. Nó có thể so sánh với TRITON, loại phần mềm độc hại đã vô hiệu hóa hệ thống an toàn công nghiệp vào năm 2017; Hoặc INDUSTROYER đã gây mất điện ở Ukraine năm 2016; Hay như STUXNET - đã phá hoại chương trình hạt nhân của Iran vào khoảng năm 2010. Để giúp các công ty công nghiệp phát hiện và phòng thủ trước INCONTROLLER, Mandiant đã khuyến nghị các giải pháp phát hiện và làm giảm thiệt hại do INCONTROLLER gây ra. Phương pháp phát hiện dựa trên hành vi sẽ hiệu quả nhất.

INCONTROLLER bao gồm ba công cụ chính:
Công cụ
Mô tả
TAGRUNQuét các máy chủ OPC, phát hiện cấu trúc / thẻ OPC, brute force thông tin đăng nhập và đọc / ghi các giá trị thẻ OPC.
CODECALLMột framework Modbus —giao thức công nghiệp phổ biến nhất — và Codesys. CODECALL chứa các mô-đun để tương tác, quét và tấn công ít nhất ba dạng điều khiển logic lập trình Schneider Electric (PLC).
OMSHELLMột framework có khả năng tương tác và quét một số loại PLC Omron thông qua giao thức HTTP, Telnet và Omron FINS. Công cụ này cũng có thể tương tác với các ổ đĩa servo của Omron, sử dụng điều khiển phản hồi để cung cấp năng lượng cho động cơ nhằm điều khiển chuyển động chính xác.

INCONTROLLER được xây dựng để thao túng và phá vỡ các quy trình công nghiệp

INCONTROLLER bao gồm ba công cụ cho phép kẻ tấn công gửi hướng dẫn đến các thiết bị ICS bằng giao thức mạng công nghiệp, chẳng hạn như OPC UA; Modbus; Codesys, được sử dụng bởi EcoStruxure Machine Expert và SoMachine; và Omron FINS. Trong khi các tính năng của công cụ cho phép giao tiếp với nhiều loại sản phẩm từ các nhà sản xuất thiết bị gốc (OEM) khác nhau, tập trung chính vào hãng Schneider Electric và Omron. Các thiết bị gồm:
  • Máy chủ OPC
  • Schneider Electric Modicon M251, Modicon M258 và Modicon M221 Nano PLC
    • Các thiết bị khác sử dụng Modbus và Codesys cũng có thể bị ảnh hưởng
  • Omron NX1P2 và NJ501 PLC và ổ đĩa servo R88D-1SN10F-ECT
    • Các thiết bị khác từ dòng PLC NJ và NX cũng có thể bị ảnh hưởng
1660374708261.png

Hình 1: Các thành phần của INCONTROLLER trong kiến trúc phân tầng mạng công nghiệp
TAGRUN

TAGRUN dò quét và liệt kê ra các máy chủ OPC UA. OPC là một giao thức truyền thông trung tâm để thu thập và lưu trữ dữ liệu từ các thiết bị máy móc công nghiệp. Việc truy cập vào dữ liệu này có thể cung cấp cho những kẻ tấn công một cái nhìn tổng quan chi tiết về hệ thống sản xuất và quy trình kiểm soát. Công cụ này có khả năng được phát triển để do thám, nhưng nó cũng có thể ghi/thay đổi các giá trị thẻ nhằm hỗ trợ một cuộc tấn công. TAGRUN cũng xác minh xem môi trường đích có đang chạy hệ điều hành Windows hay không và cung cấp các lệnh ping khác nhau tùy thuộc vào giá trị trả về.
Các khả năng của TAGRUN bao gồm:
  • Quét tìm máy chủ OPC UA trên mạng
  • Đọc cấu trúc của máy chủ OPC UA
  • Đọc / ghi các giá trị thẻ cho dữ liệu trên máy chủ OPC UA
  • Brute force thông tin đăng nhập
  • Xuất ra các tệp nhật ký
CODECALL

CODECALL giao tiếp với các thiết bị công nghiệp bằng giao thức chuẩn hóa Modbus cho khả năng tương tác với các thiết bị từ các nhà sản xuất khác nhau. Tuy nhiên, công cụ này chứa một mô-đun cụ thể để tương tác, quét và tấn công PLC Modicon M251 (TM251MESE) của Schneider Electric bằng cách sử dụng thư viện Codesys (hãng EcoStruxure Machine Expert). Ngoài ra công cụ này cũng nhắm mục tiêu đến Modicon M221 Nano PLC của Schneider Electric và Modicon M258 PLC.
Các khả năng chung của CODECALL bao gồm:
  • Nhận dạng Schneider Electric và các thiết bị hỗ trợ Modbus trên mạng
  • Kết nối với các thiết bị cụ thể qua Modbus hoặc Codesys
  • Đăng ký thiết bị đọc / ghi qua Modbus
  • Yêu cầu ID thiết bị từ một phiên qua Modbus
  • Xác định, kết xuất hoặc tải (các) tệp macro lệnh
  • Thực thi các lệnh cụ thể của thiết bị qua Codesys, chẳng hạn như:
    • Cố gắng đăng nhập bằng tên người dùng / mật khẩu và bằng cách brute force các thông tin đăng nhập sử dụng một tệp từ điển được cung cấp
    • Tải xuống / tải tệp lên thiết bị PLC
    • Truy xuất danh sách tệp / thư mục
    • Xóa tệp
    • Ngắt kết nối các phiên khỏi thiết bị PLC
    • Cố gắng tấn công DDoS
    • Làm ngưng trệ hoạt động của thiết bị bằng một gói tin dị dạng
    • Định tuyến qua default gateway
OMSHELL
OMSHELL được thiết kế để có được quyền truy cập shell vào các PLC Omron, bao gồm ổ đĩa servo Omron NX1P2, NJ501, R88D-1SN10F-ECT và có thể là các thiết bị tương tự khác từ các dòng sản phẩm NJ/NX. Công cụ chủ yếu hoạt động bằng giao thức HTTP, tuy nhiên nó cũng sử dụng giao thức FINS độc quyền của Omron để quét và nhận dạng thiết bị.
Các khả năng của OMSHELL bao gồm:
  • Quét và xác định các thiết bị Omron trên mạng
  • Xóa bộ nhớ chương trình của thiết bị và reset thiết bị
  • Tải cấu hình hoặc khôi phục dữ liệu vào thiết bị
  • Kích hoạt daemon telnet trên thiết bị
  • Kết nối với thiết bị thông qua daemon telnet và thực hiện lệnh tùy ý
  • Kết nối với một cửa hậu có sẵn trên một thiết bị và cung cấp khả năng thực thi lệnh tùy ý
  • Thực hiện thu thập lưu lượng mạng
  • Kill các tiến trình đang chạy trên thiết bị
  • Truyền tệp vào thiết bị
  • Kết nối và giao tiếp với các ổ đĩa servo đính kèm
Phát hiện INCONTROLER dựa trên dấu hiệu sẽ không hiệu quả vì kẻ tấn công gần như chắc chắn sẽ tùy chỉnh công cụ trước khi sử dụng nó trong một môi trường cụ thể. Thay vào đó, những chuyên gia bảo mật nên tập trung nỗ lực vào phương pháp phát hiện dựa trên hành vi.

Hai công cụ hỗ trợ tấn công chạy trên Windows

INCONTROLLER có thể được hỗ trợ bởi hai công cụ:
  • Công cụ khai thác lỗ hổng CVE-2020-15368 trong driver AsrDrv103.sys. Driver này được phát hành bởi hãng sản xuất bo mạch ASRock.
  • Công cụ khác là ICECORE - một cửa hậu cung cấp chức năng do thám và chỉ huy, kiểm soát.
Các tình huống tấn công
Mỗi công cụ có thể được sử dụng độc lập hoặc phối hợp cả ba công cụ để tấn công một mục tiêu. Các thiết bị mà INCONTROLLER nhắm mục tiêu thường được tích hợp trong máy móc tự động hóa trong nhiều lĩnh vực và quy trình công nghiệp khác nhau.

Có 3 kịch bản tấn công sử dụng INCONTROLLER như sau:

Kịch bản 1: Đánh sập hoạt động của các bộ điều khiển công nghiệp (PLC) dẫn đến ngưng trệ hoạt động của nhà máy.

Kịch bản 2: Lập trình lại các PLCs dẫn đến máy móc hoạt động sai cách, gây ra hỏng hóc.

Kịch bản 3: Tắt các PLCs có chức năng đảm bảo an toàn hoạt động, sau đó lập trình lại các PLCs khác, dẫn đến phá hủy các máy móc.

INCONTROLLER rất có thể là phần mềm độc hại do chính phủ tài trợ

INCONTROLLER rất có thể do nhà nước tài trợ vì 2 đặc điểm:

  • Phần mềm được thiết kế rất phức tạp, tích tụ kiến thức chuyên gia trong nhiều lĩnh vực khác nhau (IT, OT).
  • Được thiết kế để phá hủy chứ không vì mục tiêu thu lợi nhuận (như ransomware)
Cách làm giảm thiểu rủi ro cuộc tấn công

Đối với hệ thống OPC UA, đề xuất một số bước để giảm thiểu rủi ro và chống lại hoạt động tấn công:
  • Phân đoạn mạng IT và OT để hỗ trợ ngăn chặn những kẻ tấn công chuyển hướng từ mạng IT vào OT
  • Xác định rõ những thiết bị được phép sử dụng, các mẫu hành vi hợp lệ, những lệnh hợp lệ, từ đó thiết lập các đường cơ sở và phát hiện các điểm bất thường với sự hỗ trợ của công cụ giám sát mạng.
  • Triển khai tường lửa công nghiệp với khả năng kiểm tra gói tin sâu để hỗ trợ kiểm soát quyền truy cập và các khả năng đã được phê duyệt.
  • Triển khai các hệ thống bảo vệ chống xâm nhập vào hệ thống ICS để giám sát các mã lệnh đến từ các nguồn độc hại.
  • Giám sát và chặn lưu lượng bên ngoài đến các cổng OPC UA, để hỗ trợ phát hiện lưu lượng bất thường và ngăn chặn lưu lượng mạng bên ngoài hướng đến các cổng liên kết OPC UA.
  • Bật và tổng hợp nhật ký hoạt động trên máy chủ và máy khách OPC.
  • Xem xét định kỳ nhật ký kiểm tra để tìm các kết nối bất thường, sự kiện thỏa hiệp bảo mật, thay đổi cấu hình hoặc sự kiện liên quan đến user.
Để giúp giữ an toàn và bảo vệ các sản phẩm Schneider Electric, nên thực hiện các phương pháp hay nhất về an ninh mạng như được chỉ ra trong tài liệu: Sách trắng về Các phương pháp hay nhất về an ninh mạng được khuyến nghị | Schneider Electric. Ngoài ra, Hướng dẫn an ninh mạng dành cho Chuyên gia máy EcoStruxure, Bộ điều khiển Modicon và PacDrive và Hướng dẫn sử dụng thiết bị liên kết giúp bạn đảm bảo rằng chỉ những người dùng hợp pháp mới có thể truy cập vào sản phẩm Schneider Electric: Hướng dẫn an ninh mạng cho Chuyên gia máy EcoStruxure, Bộ điều khiển Modicon và PacDrive và Thiết bị liên quan, Hướng dẫn sử dụng | Schneider Electric .
Nên đặc biệt chú ý đến các tính năng và thiết bị an ninh mạng giúp hạn chế quyền truy cập, chỉ cho phép những người dùng được ủy quyền. Một số hệ thống hỗ trợ: phát hiện xâm nhập, tường lửa mạng, truy cập từ xa an toàn, xác thực thiết bị, tường lửa thiết bị, vô hiệu hóa / lọc các giao thức không an toàn.

Đối với sản phẩm hãng Omron cần lưu ý trong bản tóm tắt bảo mật của hãng, chỉ ra rằng tường lửa bên ngoài đối với các cổng giao thức FIN đã xác định có thể được sử dụng như một biện pháp giảm thiểu.

Phương pháp phát hiện

TAGRUN
  • Tìm kiếm và điều tra các kết nối không hợp lệ tới các điểm đầu cuối OPC UA và bật ghi nhật ký kiểm tra sâu đối với các ứng dụng OPC UA. Các nhật ký cần được thu thập tập trung tại một nơi để dễ phân tích.
  • Kiểm tra nhật ký OPC UA để phát hiện brute-force mật khẩu, các chứng chỉ không hợp lệ, các kết nối bất thường, sự thay đổi cấu hình, sự thay đổi thẻ OPC (tags).
  • Tìm kiếm và điều tra lệnh ping TAGRUN.
  • Xem lại lưu lượng mạng OT để tìm bằng chứng về hành vi pingsweep.
CODECALL
  • Bật tính năng ghi nhật ký chi tiết cho các thiết bị Schneider Electric PLC và thu tập trung vào một nơi.
  • Xem lại nhật ký thiết bị điện Schneider để biết bằng chứng về hoạt động sau:
    • Bruteforce mật khẩu
    • Mã lỗi liên quan đến sự cố / khởi động lại thiết bị bất thường
    • Tệp được tải lên hoặc tải xuống
    • Hành vi xóa tệp
    • Thay đổi trái phép trong cấu hình thiết bị và thực hiện các lệnh
    • Kết nối với các thiết bị lạ.
  • Tìm kiếm và điều tra hành vi quét ARP, theo sau bởi lưu lượng Modbus / Codesys bất thường.
  • Tìm kiếm các luồng lưu lượng Modbus và Codesys bất thường so với đường cơ sở.
OMSHELL
  • Tìm kiếm và điều tra bằng chứng về việc tạo ra/có tồn tại các dấu hiệu trên các hệ thống có quyền truy cập vào tài nguyên OT và kết nối (ví dụ: bắt gói tin).
  • Bật tính năng ghi nhật ký chi tiết cho các thiết bị Omron PLC và thu thập tập trung vào một nơi để phân tích.
  • Xem lại nhật ký thiết bị Omron để biết bằng chứng về hoạt động sau:
    • Kích hoạt daemon Telnet trên thiết bị.
    • Các kết nối Telnet trái phép (bao gồm cả việc sử dụng thông tin đăng nhập mặc định.)
    • Hành vi xóa bộ nhớ CHƯƠNG TRÌNH và đặt lại thiết bị.
    • Thay đổi trái phép trong cấu hình thiết bị và thực hiện các lệnh.
    • Kết nối với các thiết bị lạ.
    • Các tệp được tải lên hoặc tải xuống.
  • Xác định và điều tra hoạt động pingsweep bất thường, lưu lượng telnet và lưu lượng HTTP trên các hệ thống có quyền truy cập và kết nối với tài nguyên/thiết bị OT:
  • Tìm kiếm và điều tra bằng chứng về lưu lượng Omron FINS bất thường.
Thu thập, xác định và điều tra dữ liệu HTTP POST bất thường đến các thiết bị Omron có chứa các lệnh API Omron.

Phụ lục: Quy tắc YARA

rule MTI_Hunting_AsRockDriver_Exploit_PDB
{
meta:
author = "Mandiant"
date = "03-23-2022"
description = "Searching for executables containing strings associated with AsRock driver Exploit."

strings:
$dos_stub = "This program cannot be run in DOS mode"
$pdb_bad = "dev projects\\SignSploit1\\x64\\Release\\AsrDrv_exploit.pdb"
$pdb_good = "c:\\asrock\\work\\asrocksdk_v0.0.69\\asrrw\\src\\driver\\src\\objfre_win7_amd64\\amd64\\AsrDrv103.pdb"

condition:
all of them and (@pdb_bad < @dos_stub[2]) and (#dos_stub == 2) and (@pdb_good > @dos_stub[2])
}

rule MTI_Hunting_AsRockDriver_Exploit_Generic
{
meta:
author = "Mandiant"
date = "03-23-2022"
description = "Searching for executables containing strings associated with AsRock driver Exploit."

strings:
$dos_stub = "This program cannot be run in DOS mode"
$pdb_good = "c:\\asrock\\work\\asrocksdk_v0.0.69\\asrrw\\src\\driver\\src\\objfre_win7_amd64\\amd64\\AsrDrv103.pdb"

condition:
all of them and (#dos_stub == 2) and (@pdb_good > @dos_stub[2])
}
Tham khảo
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên