Giải pháp bảo đảm an toàn cho giao thức DNP3 trong hệ thống điện

nktung

Super Moderator
Thành viên BQT
08/10/2013
401
989 bài viết
Giải pháp bảo đảm an toàn cho giao thức DNP3 trong hệ thống điện
GIỚI THIỆU

DNP3 là tên viết tắt của (Distributed Network Protocol), là một giao thức truyền thông giữa các thiết bị trong hệ thống tự động hóa. Hiện nay DNP3 là giao thức được sử dụng rộng rãi trong ngành điện và ngành nước. Tuy nhiên khi thiết kế DNP3, các kỹ sư không đưa vào các biện pháp bảo đảm tính xác thực và toàn vẹn, do đó giao thức này có thể dễ dàng trở thành mục tiêu tấn công của tội phạm mạng. Bài viết này nêu lên nguyên lý hoạt động và khuyến nghị sử dụng giao thức DNP3-SA an toàn hơn.

Giao thức DNP3 được thiết kế để truyền thông giữa thiết bị thu thập dữ liệu (master) và các phần tử được điều khiển ở hiện trường (outstation). Có ba chế độ truyền thông phổ biến được sử dụng với DNP3:

- Chế độ Unicast: master gửi một bản tin tới outstation để yêu cầu thông tin hoặc ra lệnh. Ví dụ master gửi yêu cầu đọc một giá trị trạng thái máy cắt tại outsation, khi nhận được yêu cầu, outstation trả về thông tin trạng thái máy cắt. Hoặc khi master gửi lệnh điều khiển tới outstation thì outstation sẽ trả về một bản tin ACK để phản hồi rằng lệnh đã được thực thi hoặc nếu không phải ACK thì sẽ là một mã lỗi.

- Chế độ Broadcast: master gửi lệnh tới tất cả các outstation để yêu cầu thực thi, các outstation KHÔNG phản hồi bản tin broadcast.

- Chế độ gửi thông tin từ outstation: theo định kỳ hoặc khi có bất thường, outstation có thể gửi bản tin thông báo tới master.

upload_2021-12-5_10-17-6.png

Hình 1. Ngăn xếp giao thức DNP3​

CẤU TRÚC GÓI TIN DNP3

upload_2021-12-5_10-17-27.png

Hình 2. Cấu trúc gói tin DNP3​

Phần mào đầu gói tin DNP3 có các trường thông tin sau:

(1) start bytes: byte khởi đầu

(2) length: độ dài gói

(3) control: byte điều khiển

(4) destination: địa chỉ đích

(5) source: địa chỉ nguồn

(6) CRC error checking: kiểm tra toàn vẹn mào đầu gói tin

ĐIỂM YẾU AN NINH MẠNG GIAO THỨC DNP3

Giao thức này cho phép các ứng dụng client từ xa truy cập vào IED để tải xuống tệp định nghĩa cấu hình (Configuration Definition), từ đó tạo ra khả năng tương tác với IED, điều khiển IED từ xa, cấu hình lại IED, khởi động lại IED. Kẻ tấn công có thể tận dụng các Client này để có được tệp Configuration Definition của IED, từ đó có thể thâm nhập vào hệ thống để tiến hành các hành động phá hoại như tắt các IED, cấu hình lại IED với mục đích xấu, hoặc lợi dụng IED này để tải xuống cấu hình của các IED khác, …

Bản tin DNP3 ở dạng bản rõ (không mã hóa) do đó một kẻ tấn công có thể đọc hiểu được các thông điệp DNP3, từ đó dẫn đến các hậu quả bị tấn công dưới các hình thức:

- Tấn công MiTM: kẻ gian bắt và thay đổi nội dung bản tin DNP3, từ đó làm sai lệch việc điều khiển giữa Master và Remote.

- Tấn công DoS: kẻ gian định kỳ gửi một bản tin DNP3 “dị dạng” tới Master/Remote khiến cho 2 bên này gặp lỗi khi xử lý bản tin dị dạng đó, gây ra một vụ tấn công DoS.

- Tấn công tái chuyển (Replay): kẻ gian gửi lặp lại bản tin hoặc bắt và giữ bản tin lại một thời gian, sau đó mới gửi. Điều này có thể gây ra sự giả mạo trong truyền thông.

GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG

Khi sử dụng giao thức DNP3 có thể kết hợp với tính năng Secure Authentication (SA) ở tầng ứng dụng để thực hiện thủ tục xác thực giữa Master và Outstation. Thủ tục này được thực hiện thông qua phương thức Challenge-Response và HMAC. Mỗi khi Master yêu cầu Outstation thực hiện một lệnh, phía Outstation sẽ gửi một Challenge là một chuỗi ngẫu nhiên và sau đó được băm bởi khóa của phiên truyền thông (đã được chia sẻ trước bởi 2 bên) tới Master. Việc băm Challenge dùng khóa phiên để đảm bảo bản tin gửi đi không thể bị thay đổi bởi kẻ đứng giữa vì nếu có thay đổi thì Master sẽ phát hiện ra.


upload_2021-12-5_10-18-4.png

Hình 3. Kiểm tra tính toàn vẹn của bản tin Challenge​

Sau khi thực hiện thủ tục kiểm tra tính toàn vẹn, phía Master sẽ mã hóa Challenge sử dụng thuật toán AES với khóa riêng để tạo ra Response, tiếp tục thực hiện HMAC với bản tin Response để gửi về cho cho Outstation. Outstation kiểm tra Response bằng cách kiểm tra toàn vẹn, sau đó giải mã để thẩm tra câu trả lời của Master xem có đúng không. Điều này thêm 1 lớp xác thực để đảm bảo rằng nếu khóa phiên bị lộ thì vẫn có khóa riêng AES xác minh.
 
Chỉnh sửa lần cuối bởi người điều hành:
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
Thẻ
distributed network protocol dnp3 dnp3-sa
Bên trên