
מחבר: [שמך]
תאריך: [תאריך נוכחי]
אבטחת חומרה נשארת אתגר קריטי בשרשראות האספקה המודרניות. ככל שעיצובי מוליכים למחצה יותר ויותר מתבצעים על ידי יצרני צד שלישי, הסיכון להוספת טרויאנים חומרתיים (Hardware Trojans - HT) למעגלים משולבים (ICs) גדל באופן משמעותי. בפוסט זה, נבחן לעומק את TrojanForge—מסגרת המשתמשת בלמידת חיזוק (RL) ליצירת דוגמאות תוקפניות של טרויאני חומרתי המיועדות לבלבל מנגנוני זיהוי. נסקור את מטרות העיצוב, הטכניקות שבבסיס המערכת, ואת תוצאות הניסויים המדגישות את יכולותיה ואת האתגרים שבה. ממדריך למתחילים על HTs ועד לדיונים מתקדמים על אימון תוקפני וגיזום רשימות רשת (netlist pruning), מאמר זה ייקח אותך שלב אחר שלב דרך החידושים הטכנולוגיים של TrojanForge.
טרויאנים חומרתיים (HTs) מהווים איום ממשי ומתמשך על תעשיית המוליכים למחצה. באופן מסורתי, גילוי ונטרול HTs הוא מרוץ חימוש תמידי בין תוקפים לבין מגנים—כאשר כל צד משתדל להקדים את השני עם טכניקות חדשות. TrojanForge מציע גישה חדשה להחדרת HT תוך שימוש בלמידת חיזוק (RL) בלולאה דמוית GAN (רשת יוצר-מבקר). הסוכן של RL לומד להחדיר HT ל-netlists בצורה כזו שתתחמק ממנגנוני זיהוי מתקדמים.
לב המסגרת הוא באוטומציה ואופטימיזציה של תהליך ההחדרה. היא בוחרת רשתות מפעיל פוטנציאליות, גוזמת אותן בטכניקות פונקציונליות ומבניות, ומשכללת את ההחדרות בעזרת אינטראקציה עם מודלים לגילוי HT. גישה אדפטיבית זו מוכיחה לא רק את חולשתם של מנגנוני גילוי קיימים, אלא גם מרחיבה את הבנתנו לגבי התחבאות של HT.
בהמשך נסקור את הרקע, נבחן כלים קיימים להחדרה וגילוי HT, ונצלול למנגנון הפנימי של TrojanForge.
במהלך השנים, נעשה שימוש בסטנדרטים כגון TrustHub ליצירת בסיסי נתונים למחקר על HT. עם זאת, קיימים מספר חסרונות:
לכן, חוקרים פיתחו כלים אוטומטיים כגון:
גישה חדשה זו, כפי שמודגם ב-TrojanForge, שואפת לייצר דוגמאות תוקפניות קשות לגילוי.
במקביל, פותחו מגוון טכניקות לזיהוי HT:
התרומה של TrojanForge ייחודית בכך שהיא מחברת אימון תוקפני בלולאה—בדומה למבנה GAN—כאשר סוכן ההחדרה לומד לעקוף את הגלאים.
TrojanForge נועדה לייצר דוגמאות טרויאני תוקפניות הקשות לגילוי על ידי גלאים מודרניים. המסגרת כוללת טכניקות מתקדמות כמו גיזום רשתות נדירות, אימון תוקפני, ותמיכה במערכת תגמולים מתוחכמת.
רשת נדירה היא אות שמופעל לעיתים נדירות במהלך פעולת המעגל. היא מועמדת אידאלית לשמש כטריגר ל-HT. עם זאת, לא כל רשת נדירה שימושית. לכן נעשה גיזום דו-שלבי:
בודק האם שינוי הרשת ישפיע על תפקוד המעגל.
דוגמה לקוד Python מוצג במקור, המדגים כיצד לספור הפעלות רשת.
בודק האם השימוש ברשת מתאים לטופולוגיה של המעגל:
שילוב זה מייצר קבוצת מועמדים איכותית להכנסת HT.
השלב הבא הוא אימון סוכן RL כך שיפעל מול גלאי HT בלולאה מתמשכת:
ישנן רשתות נדירות שאינן פועלות בו זמנית, מה שהופך אותן לבלתי שמישות כסט טריגר אחיד.
גישה דינמית זו מונעת בזבוז ניסיונות.
כדי לאמוד את TrojanForge, נערכו ניסויים בשלושה מישורים:
מדד ג'קרד מודד חפיפה בין סטים של רשתות.
דוגמה בקוד Python מוצגת לביצוע חישוב פשוט של מדד זה.
תוצאות הראו כי בחירת סטים עם JSI גבוה שיפרה את שיעורי הצלחת ההפעלה של HT.
במהלך ניסוי במעגלים בפיקוח, הסוכן שינה netlist מול מזהים שונים.
מסקנות עיקריות:
לולאת האימון התוקפנית המודגשת יכולה להועיל או להזיק—תלוי בנקודת המבט.
TrojanForge מציגה פרדיגמה חדשה באבטחת חומרה דרך שילוב טכניקות מתקדמות של RL ולמידה תוקפנית.
התרומות העיקריות:
חשיבות כלים כדוגמת TrojanForge עולה במציאות מורכבת של תעשיית שבבים חכמה ומתפתחת.
חיפוש רשתות נדירות:
#!/bin/bash
NETLIST_FILE="my_circuit.v"
grep -oP 'wire\s+\K\w+' "$NETLIST_FILE" | sort | uniq -c | sort -nk1 > net_counts.txt
THRESHOLD=5
echo "רשתות נדירות מועמדות (פחות מ-$THRESHOLD מופעים):"
awk -v thresh="$THRESHOLD" '$1 < thresh {print $2 " מופיע " $1 " פעמים"}' net_counts.txt
קריאה והצגה גרפית של פיזור רשתות:
import matplotlib.pyplot as plt
def load_net_counts(filename):
nets = {}
with open(filename, 'r') as file:
for line in file:
parts = line.split()
if len(parts) == 3:
count, net, _ = parts
nets[net] = int(count)
return nets
def plot_net_distribution(nets):
net_names = list(nets.keys())
counts = list(nets.values())
plt.bar(net_names, counts, color='skyblue')
plt.xlabel('רשתות')
plt.ylabel('שכיחות')
plt.title('התפלגות מופעים של רשתות')
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()
סביבת Gym מדומה לפעילות הסוכן מול Netlist:
import gym
from gym import spaces
import numpy as np
class NetlistTrojanEnv(gym.Env):
def __init__(self, num_nets=10):
super(NetlistTrojanEnv, self).__init__()
self.num_nets = num_nets
self.observation_space = spaces.Box(low=0, high=1, shape=(num_nets,), dtype=np.float32)
self.action_space = spaces.Discrete(num_nets)
self.state = np.random.rand(num_nets)
def step(self, action):
reward = 0
self.state[action] = 1.0
if self.state[action] < 0.5:
reward = 10
else:
reward = -5
done = np.sum(self.state) > self.num_nets * 0.9
return self.state, reward, done, {}
def reset(self):
self.state = np.random.rand(self.num_nets)
return self.state
def render(self, mode='human'):
print("מצב רשת נוכחי:", self.state)
TrustHub – סטנדרט טרויאנים לחומרה
https://www.trust-hub.org/
Bhunia & Tehranipoor – אבטחת חומרה
https://www.springer.com/gp/book/9783319832292
Xing et al. (2023) – מודל עסקי fabless
קישור מלא
Krieg – ניתוח HT מ-TrustHub
קישור
Cruz et al. (2018) – כלי יצירת HT אוטומטי
קישור
Sarihi et al. (2022) – RL להכנסת HT
קישור
Nozawa et al. (2021) – דוגמאות תוקפניות לגלאי HT
קישור
Pandit et al. (2011) – שימוש במדד ג’קרד
קישור
Gohil et al. (2022a) – ATTRITION
קישור
Gohil et al. (2024) – AttackGNN
קישור
מדריך מקיף זה מספק מסגרת רעיונית וכלים מעשיים לחקור ואף לשפר את השיטות להחדרת טרויאנים חומרתיים תוקפניים באמצעות למידת חיזוק. הבנת טכניקות אלה תסייע לחוקרים ולמתכננים לפתח מערכות הגנה מתקדמות בעולם מאוים יותר ויותר של חומרה חכמה.
תכנתו בבטחה, ותכננו חומרה מאובטחת!
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.