Mở đầu
Mã độc phần cứng hay Trojan phần cứng (Hardware Trojan - HT) ngày càng trở thành nguy cơ hiện hữu đối với an toàn phần cứng cho các thiết bị mật mã nói riêng và thiết bị an ninh mạng nói chung. Các thiết bị này bao gồm nhiều mạch tích hợp cho phép thực hiện nhiều nhiệm vụ khác nhau. Các mạch tích hợp này có thể là các bộ vi xử lý (Microprocessor), bộ nhớ (RAM, ROM), khối truyền thông nối tiếp (Universal Asynchronous Receiver/Transmitter – UART), các cổng song song, khối điều khiển truy xuất bộ nhớ trực tiếp (DMA controller)…
Hệ thống trên chip (System on Chip - SoC) được xây dựng trên ý tưởng tích hợp tất cả các thành phần của một hệ thống tính toán lên trên một vi mạch đơn (chip đơn). SoC thường bao gồm các vi xử lý, bộ nhớ và các lõi mạch tích hợp (Integrated Circuit - IC). IP có thể là các lõi mã hoá/giải mã hoặc các khối xử lý/tính toán, các đơn vị vào/ra… Tuy nhiên, do áp lực thời gian cung ứng sản phẩm ra thị trường và giảm thiểu chi phí thiết kế, với chiến lược tích hợp theo chiều ngang trong ngành công nghiệp bán dẫn, hầu hết các lõi IP này được mua lại từ bên thứ 3 (3PIP), các môđun được xây dựng sẵn bởi phía đối tác cho phép tích hợp vào thư viện thiết kế…
Chính việc sử dụng phổ biến các thành phần 3PIP đã tạo ra khả năng một vùng thiết kế của phần cứng không tin cậy trong SoC, tạo ra lỗ hổng bảo mật lớn. Do đó, việc mô hình hóa chuẩn xác các HT là điều cần thiết để có thể xác định chính xác các mối đe dọa đối với phần cứng, từ đó, có giải pháp phù hợp với từng mô hình.
Bên cạnh SoC đang thống trị thị trường, các hệ thống đa xử lý trên chip (Multiprocessor system on a chip – MPSoC) được coi là tương lai của các hệ thống máy tính hiệu năng cao tiết kiệm năng lượng. Đặc biệt, mạng trên chip (Network on Chip - NoC) đóng vai trò quyết định trong việc mở rộng SoC và hiệu quả về tiêu thụ điện năng [1].
NoC là tập hợp các bộ định tuyến (router), các liên kết (link) và các tài nguyên dữ liệu (reource) được tích hợp thêm giao diện mạng/định tuyến (router/Network Interface - RNI) để tạo thành mô hình mạng truyền thông trao đổi dữ liệu. NoC ra đời với mục đích thay thế kết nối truyền thông Bus giữa các thành phần trong chip, được coi là mô hình hệ thống mạng ưu việt triển khai trên chip. Bên cạnh đó, NoC khắc phục được các điểm yếu của kiến trúc Bus truyền thống như: tiết kiệm điện năng, giao tiếp giữa các thành phần trong mạng bị giới hạn tại một thời điểm, khó mở rộng tài nguyên...
Ngoài ra, NoC còn có những hiệu quả tích cực trong thiết kế và triển khai các hệ thống logic. Do vai trò quan trọng của NoC trong SoC, điều cần thiết là phải xem xét sự hiện diện của các HT trong chính mạch NoC của 3PIP.
Mã độc phần cứng trong NoC
NoC kết nối các khối IP trên chip một cách mềm dẻo để hoạt động hiệu quả. Nó trực tiếp liên quan đến tất cả các tài nguyên trong SoC. Vì vậy, tồn tại một sự thỏa hiệp NoC 3PIP, phá hủy SoC bằng cách khai thác thông tin; chiếm một khu vực an toàn để thực hiện các hành vi sửa đổi; dẫn đến các cuộc tấn công làm rò rỉ thông tin, sai lệch dữ liệu và từ chối dịch vụ.
Tấn công rò rỉ thông tin
Hình 1: Mô hình tấn công trong NoC [3]
Trong môi trường điện toán đám mây của MPSoC mà người dùng chia sẻ tài nguyên phần cứng; nhà cung cấp IP của bên thứ ba đã nhúng một HT vào NoC trong giai đoạn thiết kế IP. Khi đó, bên tích hợp SoC không biết và đã cung cấp cho người dùng cuối. Trong quá trình thiết lập, một “mạch thỏa hiệp” ẩn dưới dạng ứng dụng của bên thứ ba được “chỉ định” làm việc trên một trong các phần tử xử lý trên chip. Ứng dụng độc hại này tiến hành thiết lập kênh liên lạc bí mật với HT trong NoC để kích hoạt.
Một “mạch thỏa hiệp” trong NoC - nút X trong hình trên có thể gửi lệnh đến nút W để kích hoạt Trojan trong bộ định tuyến NoC. HT được thiết kế để theo dõi thông tin liên lạc từ giao diện mạng và sao chép các gói tin đến một trong các cổng đầu vào. Trojan trong nút W rò rỉ tất cả giao tiếp giữa các nút Y và Z. Mạch độc hại có trong bộ định tuyến NoC của W sẽ sao chép tất cả các gói tin đi qua nó và gửi đến “mạch thỏa hiệp” trong nút X. Cuối cùng, HT được thông báo dừng hoạt động độc hại bằng cách được gửi một chuỗi thông điệp được mã hóa.
HT được thực hiện với ba trạng thái chính: trạng thái không hoạt động, chờ đợi và rò rỉ thông tin. Những thay đổi trạng thái chỉ có thể được thực hiện thông qua “mạch thỏa hiệp” bằng cách sử dụng một chuỗi các đoạn mã hóa cụ thể. Để chống lại HT, Dean et al [3] đã chứng minh rằng quá trình lấy cắp thông tin có thể được thực hiện bởi một HT với sự có mặt của một phần mềm dữ liệu, mà không truy cập bộ nhớ.
Dean et al cũng đề xuất giải pháp chống lại việc lấy cắp thông tin sử dụng phương pháp bảo vệ 3 lớp. Trong đó, Lớp 1 sẽ làm xáo trộn dữ liệu trước khi truyền dữ liệu lên mạng để ngăn quá trình kích hoạt Trojan. Lớp 2 xác thực gói tin để ngăn chặn các gói tin không hợp lệ đến từ những đích không mong muốn. Tại lớp trên cùng, các nút nguồn và nút đích của các nút tham gia truyền thông được phân tách bằng cách di chuyển định kỳ các ứng dụng đang hoạt động.
Tấn công gây lỗi
Mục tiêu của kẻ tấn công là phá vỡ mã hóa gói tin bằng cách đưa các lỗi vào các liên kết của bộ định tuyến. Kẻ tấn công kiểm soát các đầu vào của bộ mã hóa phát hiện thao tác đại số (Algebric Manipulation Detection - AMD) và tạo ra một tập các vectơ lỗi trên liên kết. Bằng cách sử dụng dữ liệu thu được từ việc kết hợp đầu vào khác nhau của AMD và quan sát ảnh hưởng của tấn công đối với bộ mã hóa/giải mã, kẻ tấn công có thể tìm ra khóa mã. Khi đã biết khóa mã, kẻ tấn công có thể sử dụng dữ liệu được tính toán và liên lạc trong MPSoC.
Tấn công từ chối dịch vụ
Rajesh và cộng sự đề xuất tấn công từ chối băng thông được tập trung trong NoC, trong đó chỉ một tập hợp con của các nút NoC bị gián đoạn [4]. Bằng cách từ chối đối với các gói tin nhất định, HT được nhúng vào NoC gây ra nghẽn về băng thông nghiêm trọng. Tuy nhiên, hiệu suất tổng thể của hệ thống vẫn không bị ảnh hưởng nhiều, do đó vẫn che giấu được các hoạt động độc hại này. Để thực hiện từ chối dịch vụ trong một mạng lớn, thách thức nằm ở việc lựa chọn nút “nạn nhân” để gây ra sự sụt giảm đáng kể về hiệu suất ứng dụng.
Hình 2: Trojan phần cứng trong bộ định tuyến NoC [4]
Mạch độc hại được nhúng trong bộ định tuyến NoC tự động xác định một nút (nạn nhân) có tần suất sử dụng cao trong mạng. Quy trình lựa chọn nạn nhân được thực hiện theo 2 giai đoạn:
Trong giai đoạn đầu tiên, một khu vực có lưu lượng truy cập lớn được chọn bằng cách sử dụng các kỹ thuật tổng hợp lưu lượng truy cập. Giai đoạn thứ 2 sẽ lựa chọn nạn nhân trong khu vực có tốc độ giao tiếp mạng vào/ra (ingress/egress) cao. Khi Trojan chọn được nạn nhân làm phần cứng đích, nó sẽ điều khiển truy cập các luồng liên quan tập trung vào nút nạn nhân. Để che giấu tấn công, kẻ tấn công điều khiển luồng lưu lượng theo cách phân tán với độ trễ nhỏ ở mỗi bước nhảy cho các gói tin nạn nhân. Bằng cách chọn độ trễ chính xác ở mỗi bảng định tuyến, kẻ tấn công có thể làm suy giảm lượng gói tin ứng dụng của nạn nhân lên tới 72% [4].
Hình 3: Quá trình lựa chọn nạn nhân [4]
Để phát hiện sự bất thường về lưu lượng trong NoC, [4] cũng đưa ra một phương pháp được sử dụng đó là “runtime” không xâm lấn nhằm theo dõi độ trễ gói. Phương pháp này dựa trên sự so sánh về thời gian đến cần thiết giữa gói tin ban đầu và gói tin được chèn vào để phát hiện hoạt động độc hại. Các gói tin có độ trễ gói là tương đương nhau khi đáp ứng đủ các điều kiện đó là các gói tin phải có các đặc điểm tương tự nhau về kích thước, lớp tin nhắn. Đồng thời, các gói tin đó phải đi qua cùng một đường dẫn giữa hai nút và phải có số lượng hop là tương đương với nhau.
Mã độc phần cứng trong SoC
Các dạng tấn công của HT vào SoC có thể được chia thành ba giai đoạn: giai đoạn phát triển lõi IP, giai đoạn phát triển SoC và giai đoạn chế tạo. Ba giai đoạn này dẫn đến ba nhóm thực thể có khả năng tấn công lên thiết kế phần cứng, đó là: 3PIP, nhà phát triển SoC và xưởng sản xuất. Dưới đây là 7 mô hình tấn công đối với SoC [2].
Bảng 1: 7 mô hình tấn công Trojan phần cứng lên SoC [2]
Bên cạnh đó, một hoặc nhiều khối của 3PIP không tin cậy lại có thể chứa một mạch độc hại. Dưới đây là minh họa về Trojan phần cứng được chèn vào trong quá trình thiết kế khối IP.
Hình 4: Trojan trong SoC [1]
Vòng đời của một HT trong SoC gồm các quá trình: Chèn, kích hoạt và hoạt động Trojan. Trong giai đoạn chèn Trojan, mạch độc hại có thể được chèn trong giai đoạn thiết kế (Register Transfer Level - RTL) bởi các kỹ sư thiết kế IP. Hành động này có thể làm cho nhà cung cấp IP không nghi ngờ rằng Trojan được nhúng vào các sản phẩm và sau đó lại được cung cấp cho khách hàng của họ. Khi được kích hoạt, để tránh bị phát hiện trong quá trình xác minh IP và kiểm tra SoC, Trojan được thiết kế để không hoạt động. Khi cần thiết, các Trojan này có thể được kích hoạt bằng các yếu tố bên trong hoặc bên ngoài bằng cách sử dụng các trigger tuần tự hoặc kết hợp. Trong thời gian được kích hoạt, Trojan payload có thể gây ra nhiều tấn công như rò rỉ thông tin, từ chối dịch vụ hoặc thay đổi chức năng…
SoC tiềm ẩn nhiều nguy cơ bị chèn HT bởi thiết kế SoC rất phức tạp bao gồm nhiều giai đoạn kết hợp cả quy trình thiết kế phần cứng và phần mềm dành riêng cho ứng dụng. Trong quá trình kết hợp này, thiết kế được vận chuyển từ nơi này đến nơi khác, một số bước được lặp lại nhiều lần trong các giai đoạn chính của thiết kế SoC, các nhà cung cấp IP bên thứ ba thường sử dụng các công cụ tự động hóa không tin cậy… đây là cơ hội để kẻ tấn công có thể thực hiện các hành vi chèn HT độc hại và trái phép.
Hơn nữa, do chi phí xác minh cao, các khối IP đã mua thường không được kiểm tra lại và nếu được kiểm tra lại thì các công cụ kiểm tra hiện đại cũng chỉ phát hiện được các chức năng còn thiếu so với các thông số kỹ thuật được chấp nhận nhưng lại không thể phát hiện được các chức năng hay các mạch không hoạt động ở mức lớn hoặc những thiết kế kỹ thuật số phức tạp.
Bên cạnh đó, bảo mật SoC lại có chi phí cao. Đối với các ứng dụng nhỏ hơn, SoC không thể thực hiện các tính năng bảo mật cao cấp vì nó có thể dẫn đến các yêu cầu khắt khe trong diện tích chip, hiệu năng và chi phí. Tất cả những vấn đề này đã và đang là thách thức với bảo mật SoC.
Kết luận
Với những nguy cơ luôn hiện hữu về mã độc phần cứng trong thiết bị điện tử hiện nay thì việc đảm bảo an toàn SoC, NoC là thực sự cần thiết. Vì vậy, cần có những giải pháp thiết kế tin cậy (Design for Trust - DFT), giải pháp liên quan đến độ trễ (Design for Delay - DFD)… phù hợp cả về chi phí thiết kế cũng như các vấn đề bảo mật, an toàn thông tin. Đồng thời, các giải pháp đó phải hướng tới sự minh bạch trong thiết kế để có thể kiểm chứng được trong khi vẫn duy trì được tính bí mật của các thiết kế bên trong.
TÀI LIỆU THAM KHẢO[1]. Swarup Bhunia, Mark M. Tehranipoor “The Hardware Trojan War: Attacks, Myths and Defenses”, 2018. [2]. K. Xiao, D.forte, Y.Jin. Karri, S.Bhunia, M.Tehranipoor, Hardwares Trojan: lessons learned after one decade of research, 2016. [3]. D.M. Ancajas, K. Chakraborty, S. Roy, Fort-NoCs: mitigating the threat of a compromised NoC, in Proceedings of the 51st Annual Design Automation Conference (ACM, 2014). [4]. J.S. Rajesh et al., Runtime detection of a bandwidth denial attack from a rogue network-on chip, in Proceedings of the 9th International Symposium on Networks-on-Chip (ACM, 2015) |