
האימוץ המהיר של עיצובים מבוססי שבבים מחולל מהפכה בתעשיית המוליכים למחצה, ומאפשר ביצועים גבוהים יותר, גמישות ויעילות חשמלית. עם זאת, פרדיגמה חדשה זו מביאה עמה מערך מתפתח של אתגרים בתחום האבטחה, במיוחד מהתקפות ערוץ צד (SCAs) ופגיעויות מיקרוארכיטקטוריות.
במאמר זה נחקור את המפגש בין עיצוב חומרה, שבבים, ואבטחה. נבאר את התקפות ערוץ הצד – מהבסיס ועד איומים מתקדמים, נדון בחיבוריות מיותרת כאסטרטגיית אבטחה, נספק דוגמאות מהעולם האמיתי של האקרים / מגינים, ונדגים דוגמאות קוד מעשיות לזיהוי וניתוח איומים. מדריך זה מיועד הן למתחילים והן למקצוענים ותיקים.
שבבים הם בלוקים בניין מסיליקון מודולריים. במקום לייצר את כל הפונקציות המערכתיות על גבי מתחם מונוליתי יחיד (שהוא יקר וסובל מבעיות תשואה), המעצבים בונים בלוקים פונקציונליים קטנים יותר – שבבים, המיוצרים בנפרד ולאחר מכן מורכבים בחבילה באמצעות חיבוריות מתקדמות.
דוגמה:
חבילת מעבד מודרנית עשויה להכיל שבבים נפרדים לליבות עיבוד, זכרונות מטמון, IO, בקרי זיכרון, ומאיצי AI.
טכנולוגיות מרכזיות:
בעוד שלשבבים יש יתרונות כלכליים וטכנולוגיים ברורים, הם מייצרים סיכונים חדשים לאבטחה ואמינות:
התקפות ערוץ צד (SCAs) מנצלות מידע שנזל דרך אמצעים עקיפים כמו צריכת חשמל, שונות זמם, פליטות אלקטרומגנטיות, ושינויים במצב המטמון/TLB כדי לחשוף סודות כמו מפתחות קריפטוגרפיים או נתונים פרטיים.
ערוצי צד אינם שוברי את האלגוריתם – הם שוברי את ההטמעה.
ערוצי צד נפוצים:
התקפת ה"משקפת" [1, 2] מדגימה כיצד ערוצי צד מיקרוארכיטקטוריים יכולים לפתוח נתיבים חדשים לתקיפה.
מנגנון:
הליכות עמוד – אופן שבו מעבד מתרגם כתובות וירטואליות לפיזיות – יכול להיות מואץ או מואט בהתאם למצב הזיכרון של שבבים או ליבות אחרות. על ידי מדידת שונות בזמני אלה, תוקף יכול להסיק פעילות סודית במקום אחר על המקולת או החבילה.
השפעה על מערכות מבוססות שבבים:
מכיוון שפעולות זיכרון מתפרסות על פני שבבים וממשקים מרובים, ישנם מקומות רבים יותר להתרחשות דליפות אלו. פעילות מטמון, הליכות עמוד או TLB בֵּין-שבביתּ כולה מעלה את הסיכונים.
Rowhammer היא התקפת מניפולציית ביטים מפורסמת המטרגטת תאים בזיכרון DRAM על ידי פתיחה וסגירה מהירה של שורות סמוכות. במערכות שבבים, אם בקרי הזיכרון נפרדים מהמעבדים או משולבים כמו שבבים שלהם, הימצאותה של Rowhammer עשויה להעלות עקב רעשי הצלב וּשינויים בזמם.
# דוגמה: שימוש ב-rowhammer-test (כלי לינוקס)
sudo apt-get install rowhammer-test
sudo rowhammer-test
# מעקב אחר פלט עבור היפוכי ביטים
הערה: הפעל בדיקה זו רק על חומרה לא קריטית!
Spectre וMeltdown מנצלים ביצוע ספקולטיבי – תכונת ביצוע מפתח במעבדים. תוקפים יכולים להשתמש בשינויים בזמני המטמון כדי לחלץ מידע סודי (כמו סיסמאות) מתוכניות אחרות.
דוגמה למדידת זמני גישה למטמון:
// קוד דמה למדידת זמני גישה למטמון
start = rdtsc();
access_memory(address);
end = rdtsc();
printf("זמן: %d\n", end - start);
תוקפים מפנים קווי מטמון ומודדים זממים לצורך הסקת מידע.
החיבוריות – חוטים, רצועות, פרוטוקולים המחברים שבבים – היא גם עמוד השדרה וגם האזור החשוף ביותר של חבילות שבבים. אבטחה כאן קריטית כמו ביחידות העיבוד עצמן.
חיבורים מיותרים פירושם הוספת מסלולי נתונים מקבילים (נתיב נתונים ראשי + נתיב צד/ביטחון). מטרותיהם:
דוגמת עיצוב:
הנתיב הצדדי יכול לשמש ל:

תמונה: דוגמת נתיב נתונים מיותר ונתיבי בריאות צדדיים בחיבוריות שבבים.
פלטפורמות מודרניות חושפות מוני חומרה, רשימות מעקב ותלמטריה אחרת שיכולים להתריע על פעילות בלתי רגילה הקשורה לערוצי צד.
כלים פופולריים:
perf (כלי לניטור ביצועי לינוקס)perf בלינוקס# רשימת אירועי חומרה זמינים
perf list
# מעקב אחרי פספוסי מטמון L1-בונחית על תהליך עם PID 1234:
sudo perf stat -e L1-dcache-load-misses -p 1234 sleep 10
# מעקב אחר פספוסי TLB עבור כל המעבדים למשך 30 שניות
sudo perf stat -e dTLB-load-misses -a sleep 30
נניח שיש לך IPMI או חיישנים מובנים לניטור צריכת החשמל של המעבד או חבילת שבבים.
import time
import subprocess
def read_power():
# החלף עם הפקודה האמיתית של קריאת IPMI או חיישן
output = subprocess.getoutput('ipmitool sensor | grep "CPU Power"')
# דוגמה לפירוק פלט
try:
return float(output.split('|')[1].strip().split(' ')[0])
except:
return None
while True:
power = read_power()
if power and power > 120: # סף בוואט
print(f"אזהרה: זוהתה צריכת חשמל גבוהה: {power}W")
time.sleep(1)
#!/bin/bash
perf stat -e L1-dcache-load-misses -a sleep 10 2>&1 | grep "L1-dcache-load-misses"
תסריט זה מציג סיכום של פעילות פספוסי מטמון בִּירות ה-10 שניות. אם אתה רואה קפיצה פתאומית ובלתי מוסברת, ייתכן שכדאי לחקור עמוק יותר.
מוני ביצועים אינם כלים לאבטחה בפני עצמם, אך דפוסים יוצאי דופן יכולים לחשוף פעילות ערוץ צד:
מתקדם: פילוח התעבורה על גבי חיבוריות עבור ספירה של תנועה יכולה לזהות ערוצים נסתרים.
כאשר המהפכת שבבים מאיצה, אבטחת החומרה עוברת מבעיה שולית למצוות מחויבות. פני השטח לתקיפה משתנים: מודולריות מעלה את האפשרויות והסיכונים.
הגנה יעילה תדרוש סינרגיה של חומרה, קושחה וניטור תפעולי. חברות מוליכים למחצה, אינטגרטורים מערכיים, ומומחי אבטחה חייבים לעבוד ביחד כדי להבטיח שלא רק ההגיונה בתוך כל שבב מוגנת, אלא גם ה"בד" המאגד אותם.
על ידי אימוץ חיבוריות מיותרת, ניצול מסלולי ניטור בריאות, ושימוש בכלים לזיהוי מודרניים, נוכל לחזק מערכות מבוססות שבבים בפני התקפות ערוץ צד ואיומים מיקרוארכיטקטוריים – להגן על הכל מ-מכונות על ל-רכבים קריטיים לבטיחות.
perf בלינוקסמעוניינים בסימולציות מתקפה ספציפיות, מדריכי קוד או דיאגרמות ארכיטקטוניות? השארו את בקשותיכם בתגובות!
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.