Hiện nay việc ứng dụng công nghệ điều khiển tích hợp trạm biến áp (TBA) truyền tải và phân phối là xu hướng chung của thế giới nhằm giảm chi phí đầu tư, nâng cao độ tin cậy cung cấp điện. Rất nhiều các giao thức truyền thông được sử dụng trong việc giám sát điều khiển xa TBA, các giao thức phổ biến như Modbus, DNP3 và IEC 61850, … Vậy DNP3 là gì? Hôm nay, MC&TT và các bạn cùng tìm hiểu sơ bộ về khái niệm cơ bản của giao thức DNP3 nhé!
DNP3 là gì?
DNP3 viết tắt của (Distributed Network Protocol, version 3) 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, nhất là trong ngành điện và nước. Trong các ngành công nghiệp khác, DNP3 được ít ứng dụng hơn. DNP3 được thiết kế để truyền thông giữa thiết bị thu thập dữ liệu và các phần tử điều khiển được tại hiện trường. DNP3 là một thành phần quan trọng trong hệ thống điều khiển công nghiệp – ICS (Industrial Control System), nơi nó được sử dụng bởi các trạm Master/ Slave Station, RTU (Remote Terminal Units), các IED (Intelligent Electronic Device – thiết bị điện thông minh) và các thiết bị thông minh khác. Hiện nay, giao thức DNP3 được sử dụng chính trong việc truyền thông giữa trạm Master/Slave, các thiết bị RTU, các IED.
Lịch sử phát triển
IEC đã định nghĩa giao thức điều khiển từ xa IEC 60870-5-101. Tuy nhiên, vì tiêu chuẩn này không đáp ứng tất cả các yêu cầu tiện ích tại Mỹ. Năm 1993, GE-Harris Canada (trước đây gọi là Westronic) đã phát triển phiên bản đầu tiên của tiêu chuẩn DNP3. Dựa trên các thông số kỹ thuật của giao thức IEC 60870-5 đã được hoàn thiện để làm một phần làm cơ sở cho một giao thức mở và có thể triển khai ngay lập tức phục vụ riêng cho các yêu cầu của Bắc Mỹ.
Ban đầu DNP3 sử dụng giao tiếp nối tiếp như IEC 60870-5-101, ngày nay DNP3 cho phép sử dụng giao tiếp TCP / IP hoặc UDP / IP qua mạng IP để cải thiện thời gian đáp ứng giao tiếp của hệ thống.
DNP3 là một giao thức dựa trên nhận dạng số của các đối tượng dữ liệu. Nó được thiết kế để giám sát và điều khiển các trạm từ xa được gọi là Outstation trong đặc tả DNP3. Việc sử dụng nó cũng có thể được tìm thấy trong quá trình tự động hóa một số quy trình như trạm biến áp năng lượng, ngay cả đối với giao tiếp của các thiết bị bảo vệ với SCADA hoặc GATEWAY cục bộ.
Năm 2010, thông số kỹ thuật DNP3 đã được chuẩn hóa theo tiêu chuẩn IEEE 1588.
Trong ngành điện, giao thức DNP3 được sử dụng phổ biến ở Mỹ và các thiết bị đến từ Mỹ trong khi giao thức IEC 60870-5-101/104 được sử dụng phổ biến ở Châu Âu và các thiết bị đến từ Châu Âu.
Cấu trúc giao thức DNP3
Giao thức DNP 3 dựa trên mô hình EPA (Enhanced Performance Architecture).
Mô hình EPA
Mô hình giao thức DNP3
Mỗi lớp trong mô hình trên lấy thông tin được truyền từ lớp cao hơn và thêm thông tin về việc kết nối với các dịch vụ được thực hiện bởi lớp đó. Thông tin bổ sung được thêm vào dưới dạng header. Do đó kích thước thông điệp được tăng lên qua từng lớp mà nó đi qua. Quá trình nhận thông điệp DNP3 diễn ra ngược lại, thông điệp đi từ lớp vật lý qua lớp Data link, Pseudo-Transport để đến lớp Application. Khi nhận, thông điệp DNP3 cũng được tách rời, bỏ bớt dần các header trong quá trình ngược lại.
Lớp ứng dụng (Application layer)
Lớp ứng dụng chịu trách nhiệm thực hiện các thao tác trên các đối tượng dữ liệu trên thiết bị, bao gồm trả về giá trị thực (chức năng đọc), gán giá trị mới (chức năng ghi) cho thiết bị điều khiển, thiết bị giám sát. Các dịch vụ lớp ứng dụng được sử dụng để gửi các thông điệp đến các thiết bị DNP3 và nhận các thông điệp từ các thiết bị DNP3 khác.
Có thể hiểu lớp ứng dụng như giao diện vận hành (HMI – human machine interface), ứng dụng quản lý nhà máy, quản lý doanh nghiệp. Dữ liệu có thể là dữ liệu cảnh báo (alarm) và sự kiện (event), dữ liệu tín hiệu số (digital) hoặc tương tự (analog), thậm chí là file cấu hình được gửi đi từ trạm Master đến các RTU hoặc các IED. Ban đầu lớp ứng dụng hình thành dữ liệu thành các khối có kích thước có thể quản lý được gọi là ASDU (Application Service Data Unit – đơn vị dữ liệu dịch vụ ứng dụng). Sau đó, lớp ứng dụng tạo APDU (Application Protocol Data Unit – đơn vị dữ liệu giao thức ứng dụng) bằng cách kết hợp tiêu đề (header) với dữ liệu ASDU. Header của ứng dụng được gọi là APCI (Application Protocol Control Information – Thông tin điều khiển giao thức ứng dụng). Tùy thuộc tổng kích thước của dữ liệu được truyền (kích thước của ASDU) mà sẽ có một hay nhiều APDU được tạo ra – trường hợp yêu cầu nhiều APDU gọi là có nhiều đoạn phân mảnh. Kích thước của ASDU không bị giới hạn, kích thước của mỗi phân mảnh được giới hạn tối đa là 2048 byte.
Lớp Transport Layer
- Phân mảnh dữ liệu người dùng thành một hoặc nhiều khung liên kết dữ liệu và truyền dữ liệu đến lớp Data link.
- Ghép nối các khung liên kết dữ liệu nhận được từ lớp liên kết dữ liệu vào dữ liệu người dùng
- Kiểm soát tất cả các khía cạnh của liên kết dữ liệu ngoại trừ cấu hình liên kết dữ liệu
- APDU từ lớp ứng dụng có thể được gọi là TSDU (Transport Service Data Unit – đơn vị dữ liệu dịch vụ vận chuyển) trong lớp Pseudo-Transport Layer. Lớp truyền tải chia TSDU thành các đơn vị nhỏ hơn được gọi là TPDU (Transport Protocol Data Unit– đơn vị dữ liệu giao thức vận chuyển ứng dụng). Chúng được hình thành khi kết hợp với 1 byte header, kích thước data lớn nhất cho TPDU là 249 byte. Kích thước tổng thể của mỗi TPDU là 250 byte, vừa một ‘frame’ LPDU ở lớp Data link layer.
Lớp liên kết dữ liệu (Data link layer).
Lớp liên kết dữ liệu Data link được thiết kế để hoạt động được với các lớp vật lý. Chức năng của Data link bao gồm:
- Đóng gói dữ liệu người dùng thành định dạng khung và truyền dữ liệu đến lớp vật lý.
- Giải nén khung liên kết dữ liệu nhận được từ lớp vật lý vào dữ liệu người dùng, kiểm tra và loại bỏ CRC.
- Kiểm soát lớp vật lý.
- Đáp ứng tất cả các khung hợp lệ nhận được từ lớp vật lý.
- Lớp này lấy TPDU từ lớp Pseudo-Transport Layer và thêm một header 10 byte và 32 byte CRC vào mỗi TPDU, thành LPDU
Lớp vật lý (Physical layer).
Lớp vật lý đề cập cách kết nối mạng. Với truyền thông nối tiếp có RS232, RS485, có thể có thêm sự chuyển đổi quang điện để sử dụng cáp quang cho khoảng cách truyền xa. DNP3 có thể được đóng gói trong TCP/IP để sử dụng đường truyền Ethernet.
Phương thức liên kết
Các thiết bị sử dụng giao thức DNP3 liên kết với nhau như sau:
Liên kết Master – Outstation (Slave)
Liên kết Master với nhiều Slave
Kết nối có nhiều Master và có sự phân cấp
Kết nối nhiều Master và Outstation, có phân cấp với bộ tập trung dữ liệu trung gian
Cấu trúc kết nối với TCP/IP
Kết nối DNP3 TCP/IP
Bảo mật giao thức DNP3
Truyền thông công nghiệp với mục đích ban đầu được thiết kế cho một hệ thống điều khiển công nghiệp độc lập, nên khi kết nối hệ thống OT với IT thì sẽ có rất nhiều các lỗ hổng bảo mật mà một kẻ tấn công có thể lợi dụng để thâm nhập vào hệ thống điều khiển đó và tiến hành các hành động phá hoại. Ta có thể kể ra các điểm yếu bảo mật của giao thức DNP3 như sau:
- DNP3 là một giao thức truyền thông mở, nó cho phép các IED giao tiếp với nhiều giao thức khác nhau như là TCP, UDP, HTTP, … Điều này sẽ dẫn đến việc có nhiều mối đe dọa và lỗ hổng trong hệ thống điều khiển công nghiệp phức tạp, các nhà máy thông minh.
- Thông điệp DNP3 rõ ràng, không mã hóa, hỗ trợ truy cập mạng từ xa cho tất cả các loại dữ liệu trong các IED. Một kẻ tấn công có thể đọc hiểu được các thông điệp DNP3 và tiến hành các hành động phá hoại.
- Hiện tại hệ thống điều khiển công nghiệp sử dụng nhiều thiết bị với các version DNP khác nhau. Một kẻ phá hoại có thể lợi dụng lỗ hổng của phiên bản DNP cũ hơn để tấn công vào hệ thống ICS.
- DNP3 không có bất kỳ cơ chế bảo mật nào cho các IED và biện pháp bảo mật duy nhất để xác thực truy cập từ xa là tên người dùng và mật khẩu chỉ có sẵn cho phiên bản DNP3-SA.
- Giao thức 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, …
Ngoài ra giao thức truyền thông DNP3 có các điểm yếu chung của các giao thức truyền thông công nghiệp như:
- Các thiết bị truyền thông đang sử dụng trong các hệ thống công nhiệp thường không đáng tin cậy về khía cạnh bảo mật thông tin. Các thiết bị điều khiển, thiết bị mạng… thường có thể bị truy cập với tên và mật khẩu mặc định của nhà sản xuất thiết bị.
- Hệ thống điều khiển tích hợp nhiều giao thức truyền thông khác nhau được kết nối với DNP3 để truyền nhận dữ liệu phục vụ chức năng điều khiển giám sát thiết bị trường. Một kẻ tấn công có thể thông qua giao thức khác để truy cập vào các thiết bị đang sử dụng dữ liệu và tín hiệu của thiết bị DNP3, sau đó thực hiện các hành vi phá hoại.
- Trong các hệ thống ICS, các trạm điều khiển có chức năng giống nhau thường sử dụng chung một thiết kế. Một kẻ tấn công có thể dùng những thông tin đã khai thác được từ trạm điều khiển này để tấn công vào một trạm điều khiển khác có chức năng tương tự.
- Các phần mềm trong hệ thống điều khiển công nghiệp không thường xuyên được cập nhật, cập nhật chậm hoặc không được đồng bộ hóa. Kẻ tấn công có thể tận dụng điểm yếu của các phiên bản cũ, thâm nhập vào hệ thống để thực hiện các hành vi phá hoại.
Kết luận
Giống như giao thức truyền thông IEC 101/ 104, giao thức truyền thông DNP3 cũng là một giao thức truyền thông được sử dụng phổ biến trong ngành điện (Nhà máy điện, trạm điện, hệ thống lưới điện). Trong khi IEC 101/ 104 dùng chủ yếu ở Châu Âu và các thiết bị đến từ Châu Âu thì giao thức DNP3 được sử dụng phổ biến ở Mỹ và các thiết bị đến từ Mỹ. Giao thức DNP3 chứa nhiều điểm yếu và lỗ hổng bảo mật mà một kẻ tấn công có thể lợi dụng thâm nhập tấn công vào các hệ thống điều khiển để tiến hành các hành vi phá hoại. Vì vậy cần nghiên cứu, thử nghiệm, triển khai các giải pháp để quản lý, khắc phục, giảm thiểu các điểm yếu, lỗ hổng bảo mật liên quan đến giao thức truyền thông DNP3.
Nguồn
https://en.wikipedia.org/wiki/DNP3
https://www.dnp.org
DNP3 Smart Grid, https://www.researchgate.net/publication/289529740_Smart_Grid_DNP3_Vulnerability_Analysis_and_Experimentation