MỤC LỤC
Sử dụng thiết bị an ninh tường lửa (Firewall) để ngăn cách gữa mạng internet và mạng LAN của công ty và Firewall khác cho vùng Air Gap ngăn chặn truy nhập trái phép xuống tầng điều khiển giám sát của hệ thống SCADA phía dưới. Ưu điểm của giải pháp này dễ triển khai khi thiết kế nhưng không khắc phục triệt để các lỗ hổng, chỉ tạo ra bảo vệ được vòng ngoài, không ngăn chặn được các tấn công từ bên trong hệ thống và các cuộc tấn công tinh vi vượt qua tường lửa.
Phép biến đổi ngược Inverse shift rows thực hiện ngược lại, dòng 1 giữ nguyên, các dòng 2, 3 và 4 được dịch vòng phải tương ứng 1 byte, 2 byte và 3 byte. Phép biến đổi ngược Inverse mix cols, thực hiện tương tự mỗi cột của khối dữ liệu vào được nhân với đa thức b(x) = 11x3+13x2+9x+14, sau đó cũng thực hiện phép chia modulo cho đa thức n(x)=x4+1, cuối cùng thu được bốn hệ số của đa thức kết quả, các hệ số này thay thế cho cột tương ứng.
+ SubWord: Thay thế mỗi byte trong word đầu vào bằng cách tra cứu bảng S-Box trong thao tác Substitute Bytes. Quá trình xác thực người gửi thì tiến hành ngược lại, người gửi mã hóa bằng khóa riêng của mình, bên nhận giải mã bằng khóa công khai của bên gửi để xác thực.
Thông thường một chức năng của hệ thống phải được thực hiện và hoàn thành theo một yêu cầu thời gian định trước để đảm bảo thông tin cập nhật kịp thời cho phần xử lý của các chức năng khác và có thể ảnh hưởng trực tiếp tới sự hoạt động đúng và chính xác của toàn hệ thống. Tuỳ theo sự thoả hiệp giữa các yêu cầu và xu thế phát triển chính vì vậy cũng không có gì ngạc nhiên khi chúng ta thấy sự tồn tại song song của rất nhiều các Chip vi xử lý nhúng, vi điều khiển nhúng 8 bit, 16 bit hay 32 bit cùng với các Chíp siêu xử lý khác vẫn đang được ứng dụng rộng rãi cho hệ nhúng. Đứng sau sự phổ cập rộng rãi của các Chip vi xử lý vi điều khiển nhúng, DSP phải kể đến các công nghệ cũng đang rất được quan tâm hiện nay như ASIC, CPLD FPGA, PSOC, AVR, dsPIC, ARM…và sự tổ hợp của chúng..Kèm theo đó là các kỹ thuật phát triển phần mềm cho phép.
Ngoài một số các hệ điều hành Windows quen thuộc dùng cho PC, Microsoft cũng đã tung ra các phiên bản mini như WindowsCE, WindowsXP Embedded và các công cụ phát triển ứng dụng kèm theo để phục vụ cho các thiết bị nhúng, điển hình như các thiết bị PDA, một số thiết bị điều khiển công nghiệp như các máy tính nhúng, IPC của Siemens.
Về bản chất nhân cũng là một chương trình phần mềm nhưng ở cấp độ hệ thống có vai trò điều khiển các thành phần của hệ thống, quản lý tài nguyên của hệ thống, cung cấp một số dịch vụ và phần mềm cơ bản cho lớp cao hơn, cung cấp môi trường thực thi có các ứng dụng khác nhau chạy trên hệ thống. Khối độc lập kiến trúc (architeture-independent): Khối gọi các hàm từ khối phụ thuộc kiến trúc và khối luật để chuyển giữa các tiến trình đồng thời nó còn gọi các hàm của khối quản lý bộ nhớ (Memory Manager) để thiết lập bộ nhớ ảo cho các tiến trình được hồi phục lại. Linux device driver có thể được tích hợp vào trong kernel theo 2 phương pháp: Biên dịch trực tiếp vào kernel hoặc biên dịch thành một định dạng đối tượng (object format có tập tin là device_driver.o) để kernel có thể tải lên khi có nhu cầu (sử dụng lệnh install module “insmod device_driver.o”).
Thư mục /usr: Thư mục này chứa nhiều thư mục con như /usr/bin, /usr/local… và đây cũng là một trong những thư mục con quan trọng của hệ thống, bên trong thư mục con này (/usr/local) cũng chứa đầy đủ các thư mục con tương tự ngoài thư mục gốc như sbin, lib, bin… Nếu nâng cấp hệ thống thì các chương trình người dùng cài đặt trong thư mục /usr/local vần giữ nguyên và không sợ các chương trình bị mất.
Slave nhận được thông điệp mã hóa tiến hành giải mã bằng khóa SCk, sau đó tính lại CRC so sánh với CRC của thông điệp nhận được, tiếp đến kiểm tra mã số định danh thông điệp S có trùng với thông điệp cũ không, tất cả đều hợp lệ thì lọc ra mã hàm, dữ liệu để quyết định trả lời yều cầu của Master. Tính chứng thực này chống lại được tất cả các hình thức tấn công mạo danh Master gửi lệnh cho Slave, vì giả sử một bên thứ ba nào đó mạo danh Master gửi thông điệp cho Slave do không có khóa bí mật SCk nên bên thứ ba phải gửi một thông điệp theo truyền thống hoặc theo sơ đồ H.9 với khóa bí mật nào đó khác SCk hoặc gửi thông điệp bất kỳ nào đó khác, khi Slave nhận được thông điệp đó tiến hành giải mã với khóa bí mật SCk, tính lại CRC so sánh với CRC của thông điệp sẽ thấy không khớp nên biết được thông điệp không phải do Master gửi và loại bỏ. Tính toàn vẹn gói tin: Giả sử một bên thứ ba nhận được thông điệp trung gian (bản mã) muốn sửa đổi nội dung thông điệp nhưng do không có khóa bí mật SCk để giải mã, rồi sửa nội dung, tính lại CRC, mã hóa lại gửi cho Slave nên buộc phải sửa đổi bản mã theo một cách nào đó khác do vậy khi Slave nhận được thông điệp này.
Tuy nhiên trong hệ thống SCADA sử dụng Modbus TCP giao tiếp theo cơ chế yêu cầu/đáp ứng nên các Slave luôn bị động không gửi bất cứ thông điệp nào nếu Master không yêu cầu nên một Slave nhận được thông điệp yêu cầu có địa chỉ, mã định danh thông điệp S, CRC… hợp lệ chứng tỏ thông điệp đó phải do Master gửi đi (Master không thể từ chối đã gửi yêu cầu này).
Như vậy độ dài của phần PDU chỉ có 5 byte nhưng một khối dữ liệu mã hóa bằng AES tối thiểu 128 bit (16 byte) do vậy kết hợp H.9 cần thực hiện như sau: Trước tiên chèn mã định danh thông điệp 2 byte, chèn tiếp 5 byte dữ liệu với thao tác tương ứng như trong bảng 1,2 ở trên, tiếp đó chèn thêm 7 byte giá trị bằng không, tính CRC 16 bít của 14 byte này rồi chèn vào cuối ta được khối dữ liệu 16 byte ký hiệu là M. Bằng cách thay đổi khóa bí mật trên giao diện rồi nhấn các nút start, stop quan sát không thấy động cơ thay đổi trạng thái và trên màn hình LCD của board Tiny 6410 hiển thị thông báo nhận được gói tin không hợp lệ điều này chúng tỏ tấn công giả mạo Master đã được phát hiện. Tiếp tục sử dụng tính năng debug của C#, để sửa đổi nội dung bảm mã, thay bản mó bằng thụng điệp rừ, sau đú mới gửi yờu cho board Tiny 6410, ghi lại toàn bộ bản mã rồi gửi lại cho board Tiny 6410 đều cho kết quả tương tự như trường hợp tấn công giả mạo đơn giản ở trên.
Kết hợp tiêu chuẩn mã hóa tiên tiến AES và các yêu cầu của một hệ thống truyền thông an toàn, các tác giả đã xây dựng và thử nghiệm thành công giao thức Modbus TCP có thêm bảo mật, xác thực ở tầng ứng dụng có khả năng khắc phục các lỗ hổng bảo mật của giao thức.
Trường thời gian gồm (1 byte lưu hai số cuối của năm, 1 byte lưu tháng trong năm, 1 byte lưu ngày trong tháng, và một word 4 byte lưu mini giây trong ngày lấy từ hệ thống Master), với cơ chế dấu thời gian này sau 100 năm sau mới có dấu thời gian hai khung trùng nhau. Do trong mạng sử dụng giao thức Modbus giao tiếp theo cơ chế yêu cầu/đáp ứng, hai Slave sẽ không trực tiếp trao đổi thông tin cho nhau được nên có hai cách phân phối khóa cho các thiết bị trong hệ thống; Cách 1 Master sử dụng một cặp khóa, tất cả các Slave sử dụng chung một cặp khóa khác; Cách 2 cả Master và các Slave sử dụng các cặp khóa riêng biệt. Do kẻ tấn công không có khóa riêng PR của MTU nên chúng chỉ có thể tạo lệnh không có chữ ký số hoặc lệnh có chữ ký số như hình 4.6a, 4.6b nhưng với khóa riêng khác PR nên RTU dễ dàng phát hiện và loại bỏ tấn công này bằng cơ chế xác thực gói tin từ MTU gửi đi.
Tấn công từ chối dịch vụ (DoS), cũng do tính chất xác thực giữa MTU và RTU, một kể tấn công hay mã độc hại muốn thực hiện tấn công DoS để làm tắc nghẽn vòng điều khiển giữa MTU và RTU thì chúng sẽ phải liên tục gửi các gói tin cho các thiết bị này làm cho chúng không còn thời gian xử lý.