CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC PHẦN CỨNG 1.1 Tổng quan về mã độc phần cứng 1.1 Khái niệm về mã độc phần cứng Mã độc phần cứng (Hardware Trojan - HT) là một khái niệm còn tương đối mới ở Việt Nam. HT được định nghĩa là một loại mã độc được nhúng vào các mạch tích hợp (chíp điện tử - IC) bởi một số cổng logic và hoạt động khi có kích hoạt, hoặc HT cũng có thể được cài đặt thông qua việc khai thác các lỗi bên trong phần cứng.2 Cấu tạo của mã độc phần cứng Các Trojan đều được kích hoạt theo một lược đồ xác định (gọi là khối kích hoạt) để được thực hiện chức năng chỉ định (gọi là tải tin). Trojan cứng cũng gồm hai khối: Trigger (khối kích hoạt) và Payload (khối tải tin). Cấu tạo của Trojan cứng Khối kích hoạt thường là một mạch điện tử số tuần tự hoặc một mạch kết hợp để kiểm soát hoạt động tải tin và duy trì “ẩn” các tác động của HT đến khi xảy ra điều kiện kích hoạt nó.
Tải tin có thể ở dạng số hoặc tương tự được “cấy” cố ý vào IC để gửi ra các tín hiệu gây hại theo điều kiện kích thích. Hình dưới đây thể hiện cơ chế hoạt động của Trojan cứng ở mức cổng: các đầu vào (T1, T2, …Tk) cấp cho khối kích hoạt lấy từ các đường dẫn (các net) khác nhau trong mạch. Còn khối tải tin nhận tín hiệu Neti (của mạch không có Trojan) và tín hiệu “Trigger Enable” (đầu ra của khối kích hoạt). Do đó, khối kích hoạt sẽ nằm trong “điều kiện hiếm” (rare condition), đầu ra của khối tải tin hầu như luôn có cùng giá trị với Neti tại hầu hết các thời điểm.
Tuy nhiên, khi khối Trigger bị kích hoạt, ví dụ TriggerEnable là “0”, thì đầu ra khối Payload sẽ khác biệt so với Neti; điều này dẫn tới xung đột giữa các khối (tạo giá trị lỗi) trong mạch tổng hợp và gây ra lỗi ở đầu ra. Cơ chế hoạt động của Trojan cứng 1.3 Phân loại mã độc phần cứng Có nhiều cách phân loại HT nhằm mục đích dễ dàng đánh giá các rủi ro do HT gây ra. Một trong các cách phân loại đơn giản được đề xuất trong đó là Trojan gồm 2 loại là kết hợp (combinational – cơ chế kích hoạt phụ thuộc vào sự xuất hiện của một điều kiện cụ thể tại các node bên trong mạch) và tuần tự (sequential – cơ chế kích hoạt phụ thuộc vào sự xuất hiện của một chuỗi các giá trị “rare logic” tại các node bên trong). Tuy nhiên, trong, Swarup Bhunia Mark Tehranipoor phân loại Trojans lại dựa trên ba thuộc tính: đặc điểm vật lý, kích hoạt và hoạt động.
Một số phân loại khác như Wang, X., và Plusquellic lại dựa vào các cơ chế kích hoạt (đề cập như Trojan trigger) và một phần của mạch hoặc chức năng bị ảnh hưởng bởi hoạt động của Trojan (được đề cập như Trojan payload). Như vậy, dù theo tiêu chí nào thì HT cơ bản gồm một số đặc điểm về vật lý, cơ chế kích hoạt và vào cách thức hoạt động. 2 Phân loại Trojan Đặc điểm vật lý Cơ chế kích hoạt Cách thức hoạt động Kích Dạng Phân bố Cấu trúc thước Hình 1. Phân loại Trojan 1.1 Phân loại dựa vào đặc điểm vật lý Các đặc điểm vật lý của HT bao gồm: Dạng; kích thước; phân bố và cấu trúc.
Đặc điểm vật lý Dạng Kích thước Phân bố Cấu trúc Chức Transistor Cổng lớn/ Thay đổi Không Tham số Kín Rời rạc năng nhỏ/ Dây Marco thiết kế thay đổi Hình 1. Đặc điểm vật lý của Trojan - Dạng (type): Dạng lại được chia thành các nhóm chức năng và tham số. Nhóm chức năng bao gồm các Trojan mà đặc tính vật lý được nhận diện thông qua việc thêm hoặc bớt các transistor hoặc các cổng, trong khi nhóm tham số đề cập đến các Trojan được thực hiện thông qua những thay đổi các dây và trạng thái logic hiện có như việc dây dẫn bị làm mỏng, giảm hiệu suất của transistor hoặc bất kỳ 3 những sửa đổi nào của dạng vật lý được thiết kế để làm mất đi độ tin cậy hoặc tăng khả năng gây lỗi chức năng hoặc làm giảm hiệu suất hoạt động. - Kích thước: Kích thước thể hiện số lượng các thành phần trong chip mà đã được thêm vào, xóa đi hoặc bị thỏa hiệp.
Kích thước của một Trojan có thể là một yếu tố quan trọng trong quá trình kích hoạt. Một Trojan có số lượng đầu vào ít hơn sẽ có xác suất kích hoạt cao hơn so với một Trojan có số lượng đầu vào lớn hơn. - Phân bố: Nhóm phân bố mô tả vị trí của Trojan trong thiết kế vật lý của chip. Ví dụ, một phân bố kín mô tả một Trojan mà các thành phần của nó đóng kín về mặt cấu trúc thiết kế trong khi phân bố rời rạc mô tả các Trojan được phân tán dọc trên bố cục của chip.
Dạng: Chức năng Kích thước: Lớn Phân bố: Kín Dạng: Tham số Kích thước: Bé Phân bố: Rời rạc Hình 1. Các đặc điểm vật lý của Trojan Lưu ý rằng việc phân bố các Trojan phụ thuộc vào sự sẵn có của khoảng trống có hại (không gian chết) trên thiết kế. Nếu không gian chết có sẵn rất nhỏ trên thiết kế, thì thám mã có thể buộc phải đặt và định tuyến các phần nhỏ hơn của Trojan trong các không gian chết khác nhau (giả thiết rằng đối thủ không thể thay đổi kích thước vật lý của thiết kế). 4 - Cấu trúc: Nếu thám mã buộc phải tạo lại bố cục để có thể chèn Trojan, thì kích thước của chip thay đổi.
Thay đổi này có thể dẫn đến vị trí khác nhau cho một số hoặc tất cả các thành phần thiết kế. Bất kỳ những thay đổi nào trong cách bố trí vật lý đều có thể thay đổi độ trễ và đặc điểm điện năng của chip, điều này sẽ dễ dàng hơn trong việc phát hiện Trojan. Để giảm thiểu xác suất bị phát hiện, thám mã sẽ áp dụng một chiến lược, đó là làm cho “vết” vật lý của Trojan là nhỏ nhất. Đối với các Trojan tham số nhỏ, được liên kết kín (chặt chẽ), mục tiêu có thể dễ dàng đạt được vì các thông số của Trojan có thể được biết đến bằng cách thay đổi hình dạng của một dây hoặc transistor.
Đối với các Trojan chức năng, kích thước và phân bố lại có ảnh hưởng đáng kể đến “vết” vật lý của Trojan. Đối với Trojan có kích thước lớn hơn, quá trình phân bố Trojan dọc trên thiết kế có thể cải thiện các “vết” vật lý bởi vì quá trình phát hiện Trojan dựa trên những bất thường trong điện năng cục bộ. Tuy nhiên, quá trình phân bố Trojan trên thiết kế cũng có thể làm lộ “vết” vật lý của nó ở các khía cạnh khác. Ví dụ, độ dài của các dây kết nối với Trojan tăng đáng kể, điều này làm thay đổi phân bố điện dung của chip không có Trojan và làm tăng khả năng Trojan sẽ thay đổi các đặc tính độ trễ của chip.
Vì lý do này, các Trojan được thiết kế để liên kết chặt chẽ (kín) với nhau, đặc biệt là sử dụng các kỹ thuật che dấu điện năng để giảm “vết” của nó như đo năng lượng qua các ngăn bán dẫn.2 Phân loại dựa vào cơ chế kích hoạt Như đã đề cập phía trên, phân loại HT dựa vào các cơ chế kích hoạt (đề cập như Trojan trigger) và một phần của mạch hoặc chức năng bị ảnh hưởng bởi hoạt động của Trojan (được đề cập như Trojan payload).Theo đó, các cơ chế kích hoạt có thể chia làm 2 loại là Digital và Analog. Các Trojan được kích hoạt Digital lại được chia thành các dạng kết hợp và tuần tự như hình sau: 5 Trojan Trigger Payload Digital Analog Digital Analog Other On chip Circult Bridging Information Combinational Sequential sensors Nodes Leakage Delay Denial of Activity Memory Service Rare value Synchronous Content Activity Asynchronous Hybrid Rare Sequences Hình 1. Phân loại Trojan dựa trên cơ chế kích hoạt 1. Các trojan được kích hoạt Digital a.
Trojan kết hợp: Trojan kết hợp trong đó khi điều kiện chỉ định: A = 0 và B = 0 xảy ra tại các nút kích thích ở cổng NOR, dẫn đến tải tin sẽ gửi ra tín hiệu đảo C mod ified. Mã thám có thể chọn một điều kiện kích hoạt cực hiếm vì vậy rất khó có khả năng Trojan được kích hoạt trong suốt quá trình kiểm tra thông thường. Mạch Trojan kết hợp b. Trojan tuần tự: Trojan đồng bộ tuần tự (còn gọi là “bom hẹn giờ”) được kích hoạt khi có sự xuất hiện của một dãy số hoặc một chu trình hoạt động liên tiếp.
Trojan tuần tự đơn giản nhất là các trojan dùng một bộ đếm đơn để kích hoạt. Mạch Trojan tuần tự Bộ kích hoạt chứa một bộ đếm k − bit và cổng AND, còn tải tin chứa một cổng XOR. Trojan này được kích hoạt sau khi xác lập 2 k − 1 nhịp đếm, để tạo ra một tín hiệu đảo ER*. Trojan không đồng bộ (phiên bản dị bộ) của Trojan này được thành lập bằng cách thay thế tín hiệu xung nhịp (CLK) bởi khối logic khác (tại đầu ra của cổng AND với các đầu vào p và q).
Trojan dị bộ c. Trojan lai ghép Trojan lai ghép, mạch này gồm cả bộ đếm đồng bộ (k1 − bit ) và bộ đếm dị bộ (k 2 − bit ). Cả hai bộ đếm này cùng đạt các giá trị xác lập trước thì Trojan này mới kích hoạt để tạo ra tín hiệu đảo ER* của ER. Mạch Trojan lai ghép 1.
Trojan được kích hoạt Analog Cơ chế kích hoạt trigger có thể cũng là analog trong đó các bộ cảm biến trên chip được sử dụng để kích hoạt gây lỗi hoặc hỏng hóc. Hình dưới đây là 7 một mạch Trojan tương tự, trong đó có một tụ điện nạp điện tích theo định kỳ khi đầu ra cổng AND (được điều khiển bởi q1 và q2 ) thiết lập ở mức 1, và tạo ra tín hiệu đảo ER*. Nếu đầu ra cổng AND không được thiết lập ở mức logic cao trong đúng khoảng thời gian định kỳ, thì tụ điện sẽ phóng điện tích xuống đất và Trojan sẽ không kích hoạt. Mạch Trojan tương tự Từ các thực tế trên cho thấy rằng các Trojan cứng kèm theo các bộ kích thích số (Digital) hoặc kích thích tương tự (Analog) sẽ đều đưa ra tải tin ở dạng số.
Và các tải tin số được thiết kế để tác động vào các giá trị logic số tại những nút chỉ định bên trong mạch. Trojan cũng có thể được phân loại dựa trên những kích thích payload của chúng, và được chia thành hai lớp chính là digital và analog.