
דלתות אחוריות בחומרה הפכו לאיומים מזיקים במיוחד בתחום אבטחת הסייבר, מאתגרות מגנים מחברות Fortune 500 ועד חובבים ביתיים. בניגוד לאיומי תוכנה—המטופלים על ידי אנטי וירוס ושגרות תיקון קבועות—דלתות אחוריות בחומרה נסתרות במרכיבים הפיזיים של מחשבים ומכשירים משובצים. הן יכולות להתחמק כמעט מכל זיהוי קונבנציונלי, תחתם ביטחון גם בסביבות עם שליטה קפדנית.
בפוסט בלוג מפורט זה, נדריך אתכם מהבסיס של דלתות אחוריות בחומרה דרך גישות טכניות מתקדמות לזיהוי והפחתתן. נשתמש בדוגמאות מהעולם האמיתי, דיון במחקרים אקדמיים—במיוחד מאמר מאוניברסיטת קולומביה “Trustworthy Hardware: Identifying and Diagnosing Hardware Backdoors”—ונראה טכניקות מעשיות עם Bash ו-Python. בסוף תהיו מצוידים בהבנה חזקה של האתגר ובארגז כלים לטפל בו במספר רמות.
דלתות אחוריות בחומרה הן מנגנונים סמויים המותקנים בשבב או רכיב אלקטרוני בשלב התכנון, הייצור או שרשרת האספקה. מטרתן להעניק גישה או יכולת בלתי מורשה: חטיפת נתונים, עקיפת אימות, שליטה מרחוק או מנגנוני כיבוי.
בניגוד לדלתות אחוריות בתוכנה, דלתות חומרה נחרטות פיזית בסיליקון או מוחבאות בקושחה. הן עמידות למחיקה: פירמוט כונן קשיח, התקנה מחודשת של מערכת הפעלה או הרצת אנטי וירוס לא עושים דבר, היות והקוד הזדוני מקודד בחומרה.
דלתות אחוריות בחומרה יכולות להיות:
מדוע נחשבות דלתות אחוריות בחומרה לכאלה מאיימות במיוחד?
תובנה מרכזית מאוניברסיטת קולומביה: כפי שמתוארת במאמר (Simha Sethumadhavan & Salvatore Stolfo, 2011), דלתות כאלה יכולות לשכב בשקט במהלך תהליך האימות והבדיקות המקיף—מופעלות רק תחת וקטורי מבחן ייחודיים ולא ברירת מחדל. הנראות הנמוכה שלהן היא כוחן הגדול ביותר.
“אספקט מרכזי בדלתות אחוריות בחומרה שהופך אותן לקשות לגילוי במהלך האימות הוא שהן יכולות לשכב בשקט במהלך (מקום או מבחן מכוון) בדיקות.” (מאמר אוניברסיטת קולומביה)
ב-2015, רשתות Juniper חשפו דלת אחורית בקוד הקריפטוגרפי של חומות האש שלהם מדגם NetScreen. מאמינים שהפגיעות נבעה מהמחלף Dual_EC_DRBG בנקודת מחולל המספרים האקראיים—שכנראה הוכנס בשלב החומרה או הקושחה.
השפעה: תוקף בעל ידע על הדלת האחורית יכול לפענח את תעבורת ה-VPN—ללא תגליות.
חוקרים אקדמיים הוכיחו (למשל, “A2: Analog Malicious Hardware”, USENIX) ש"טרויאני חומרה" יכול להיות משובץ ב-FPGAs, עם יכולת להדליף מפתחות קריפטוגרפיים או להזריק שגיאות—מופעלים רק לפי אירועים נדירים במיוחד (כמו רצף ביטים ייחודי).
דו"ח של בלומברג טען ששחקנים סיניים השחילו שבבים זעירים זדוניים על לוחות שרתים של Supermicro שנשלחו לספקי ענן גדולים. למרות המחלוקת, האירוע מדגיש את היתכנות וההשלכות הגלובליות של התקפות שרשרת אספקת חומרה. (מקור)
חובבי קוד פתוח גילו שחלק מה-SoC של ARM AllWinner נשארו פעילים במערכות שורש על פורט סידורי של דיבוג, או כללו נתיבי קוד "sunxi-debug" ללא הסבר. בעוד פחות מתוחכמים מטרויאני חומרה טהורים, דלתות אחוריות "דיבוג" אלו מדגישות כיצד SoC או מבצבץ שנשמטו עשויים להפוך לפתח פגיעות ענק.
דלת אחורית "חכמה" בחומרה פעילה רק בתנאים נדירים, ספציפיים (לדוגמה: כתיבת סדרת ביטים מסוימת לרגיסטר). שבבים מאומתים תוך שימוש בוקטורי מבחן, אך וקטורים אלו יכולים לא לעורר את התנאי הזדוני.
תמונה: טרויאני חומרה רדומים מופעלים רק על ידי כיוונים סמויים
שבבים מודרניים מכילים מיליארדי טרנזיסטורים. טרויאני יכול להיות קטן כשער יחיד. אף חברה לא יכולה לאמת כל שער ידנית.
ייצור חיצוני הופך את האמון בצדדים חיצוניים עם תכניות והרכבה פיזית לחיוני.
לא קיימת "אנטי וירוס" לחומרה. לא קיימות כלים או רשימות תיוג מקיפות ובעלות קבלה אוניברסלית.
“קשה לזהות ולהסיר באמצעים קונבנציונלים כמו תוכנת אנטי וירוס...” (וויקיפדיה: דלת אחורית בחומרה)
בואו נחקור שיטות זיהוי מעשיות—מדורגות מתחילים עד מתקדמים—עם הקשר בעולם האמיתי ובמידת האפשר, כלים קוד פתוח.
בריחה". - כלים: מולטי-מטר, מנתח לוגיקה (Saleae, Bus Pirate)
לעיתים קרובות, דלתות אחוריות בחומרה נתמכות על ידי קושחה או מטעני אתחול ברמת נמוכה.
binwalk, strings, grep, Ghidrabinwalk -e firmware.bin
strings _firmware_extracted/* | grep -i "debug\|backdoor\|admin\|root"
לחומרה קוד פתוח או מותאמת אישית (קוד Verilog/VHDL זמין):
נניח שבדקו את הזיהוי לטריגר הדלת האחורית בקובץ רגיסטר:
from itertools import product
# דוגמה פשוטה: נניח שטריגר הרישום הוא רצף של 4 ערכים בפעולת כתיבה
TRIGGER_SEQ = [0xdead, 0xbeef, 0xfeed, 0xcafe]
def test_trigger_seqs():
space = range(0, 0xffff)
for seq in product(space, repeat=4):
if list(seq) == TRIGGER_SEQ:
print("נמצא רצף טריגר דלת אחורית פוטנציאלי בחומרה!:", seq)
test_trigger_seqs()
כמובן, בחומרה אמיתית, מרחב החיפוש הזה הרבה יותר גדול—ולכן טריגרים כמעט בלתי אפשריים לבודקים להפעיל בטעות.
השתמשו ב-nmap לבדוק פתחים מאזינים בלתי צפויים—לעיתים סימן לדלתות אחוריות דיבוג.
sudo nmap -p 1-10000 192.168.1.10
פרקו את תוכן רגיסטרי ה-I2C; חלק מהדלתות האחוריות נחשפות כאן.
# רשימת אוטובוסים ל-i2c
i2cdetect -l
# סריקת אוטובוס
i2cdetect -y 1
# פריקה של רגיסטר
i2cdump -y 1 0x50
נניח שפרקתם נתונים ורוצים למצוא תבנית:
import re
with open("register_dump.txt") as f:
data = f.read()
# דוגמה: חיפוש ערכים קסומים כ-0xdeadbeef או ASCII 'admin'
if re.search(r'deadbeef', data) or 'admin' in data:
print("נמצאה תבנית חשודה בפריקת רגיסטר!")
אם יש לכם גישה ל-Verilog/VHDL:
yosys -p "read_verilog mydesign.v; synth; write_json design.json"
# עכשיו בצע הכלה על design.json עבור שערים או בלוקים לוגיים בלתי צפויים
ילה.
למרות שדלתות אחוריות בחומרה קשות להסרה, רבות מהן נתמכות על ידי תוכנה שניתן לנטרל או למתן על ידי הסרת קוד קושחה או ניטרול ממשקי דיבוג.
עליית AllWinner, Rockchip ושאר ה-SoCs “פתוחים” מדגישים איך שהפתיחות היא לא פתרון לכל. מסלולי דלתות אחוריות, רבים מהשבבים הללו מפרסמים סטטוס קוד פתוח, אך לעיתים קרובות נכשלים לחשוף תכנונים מלאים של HDL/RTL, וייתכן שישאירו בלוקים קנייניים סגורים כקופסאות שחורות.
דלתות אחוריות בחומרה מהוות סיכון אבטחת סייבר מרשים—מחוץ להישג כלים תוכנתיים, עמידות וקשות לביקורת. הגילוי דורש תערובת של טכניקות: ביקורת קוד וקושחה, בדיקה פיזית, ניתוח ערוץ צדדי, ו(אם אפשרי) אימות חומרה קוד פתוח. המחקר מאוניברסיטת קולומביה מציג את הנושא ברור: האיום הגדול ביותר מגיע מ_דלתות אחוריות רדומות_ שמסתתרות מבדיקת רגילות.
בעוד מגנים פרטיים אולי לא יכולים להנדס לאחור סיליקון, כל אחד יכול:
לבסוף, אקוסיסטם מונע על ידי קוד פתוח ופרטנות, מגובה על ידי כלים חדשנים וביקורת קהילתית מציע את התקווה הטובה ביותר.
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.