
הקושחה היא התוכנה הבסיסית שמחברת בין החומרה לתוכנת המערכת ברמה גבוהה יותר. במחשבים מודרניים, התקפות על קושחה הפכו להיות וקטור איום גובר, ומהוות מטרה מתמדת לתוקפים ולאויבי מדינה. על מנת להתמודד עם הסיכונים הללו, המכון הלאומי לתקנים וטכנולוגיה (NIST) פרסם את SP 800-193: הנחיות לחוסן של קושחה בפלטפורמה, המגדיר מנגנונים חזקים להבטחת יכולות ההגנה, הזיהוי והשחזור של קושחה בפלטפורמה.
מדריך זה מציע בדיקה מעמיקה של NIST SP 800-193 ואת הקונספט של חוסן קושחה בפלטפורמה (PFR), ומספק תובנות מהיסודות ועד ליישומים מתקדמים. אנו משלבים דוגמאות מהעולם האמיתי, גישות של סריקה ודוגמאות קוד ב-Bash וב-Python. מאמר זה הוא משאב בלעדי לאנשי IT, מהנדסי אבטחה וארגונים המכוונים לעמוד בסטנדרטים מודרניים לאבטחת קושחה.
חוסן קושחה בפלטפורמה (PFR) מתייחס לגישה ארכיטקטונית המספקת מנגנונים להגנה, זיהוי ושחזור קושחה בפלטפורמה כנגד איומים בסייבר. קושחה מוטמעת כמעט בכל רכיבי החומרה: לוחות אם, כרטיסי רשת, מכשירי אחסון וכו'. תוכנה ברמה נמוכה זו לרוב אינה ניתנת לשינוי או שמתעדכנת לעיתים נדירות, מה שהופך אותה למטרה אטרקטיבית לתוקפים המעוניינים להשיג שליטה נמוכה ומתמדת במערכת.
התקפות סייבר רבות בפרופיל גבוה ניצלו חולשות בקושחה כדי להשיג גישה פריבילגית ונסתרת למערכת, לעיתים קרובות ממשיכות גם לאחר התקנה מחדש של המערכת או הרצת imaging מחדש.
NIST SP 800-193 הוא הנחיה שמסטנדרת את הדרישות והטכניקות לארגונים להשיג חוסן בקושחה של הפלטפורמות, ולהבטיח המשכיות עיסקית והקטנת שטחי התקפה.
לקושחה, בשל מיקומה היסודי בסטאק המחשובי, תכונות ייחודיות:
השפעה בעולם האמיתי:
בקרות אבטחה מסורתיות אינן מספיקות לקושחה. לכן, יש להשתמש במסגרת ייעודית והגנה מחמירה, כמו אלו המוגדרות ב-SP 800-193, חובה לפלטפורמות קריטיות.
NIST פרסמה את המדריך המיוחד (SP) 800-193: הנחיות לחוסן קושחה בפלטפורמה כתגובה לגל ההתקפות הגוברות הקשורות לקושחה. הוא מספק המלצות למתכנני פלטפורמות, יצרנים ומפעילים על יישום מנגנונים להגנה על קושחה ולהבטיח חוסן בסייבר.
SP 800-193 מתמקד בקושחת פלטפורמה, כמו UEFI, BIOS, BMC (בקר ניהול לוח אם), ROMs אפשרות, וקושחה של מכשירים בשרתים, מחשבים ניידים, מחשבים נייחים וציוד רשת.
NIST SP 800-193 מארגן את החוסן בקושחה לשלושה עמודים עיקריים:
בואו נעמיק בכל אחד מהם.
מטרה: למנוע שינוי או שחיתות לא מורשים של קושחת הפלטפורמה ונתוני התצורה.
תהליך עדכון קושחת UEFI בודק חתימות לפני מתן אפשרות לכתיבה באחסון:
# בדיקת חתימת תמונת קושחת UEFI (באמצעות 'sbverify' מתוך sbsigntools בלינוקס)
sbverify --list /path/to/firmware_update.cap
פלט:
חיתום 1
בעלים: X.509 Cert SHA1:11:22:33:..
מוציא: CN=Vendor Signer, O=Vendor..
אם חסרה חתימה או שהיא אינה חוקית, העדכון נדחה.
מטרה: לזהות שינויים לא מורשים או זדוניים בקושחה או נתוני תצורה, גם בזמן התנעה וגם בזמן ריצה.
שימוש ב-TPM (Trusted Platform Module) למדידת קושחת UEFI בזמן התנעה:
אתם עשויים להשתמש ב-tpm2-tools בלינוקס:
# קרא את PCR 0, שיכול לאחוז ב-hash הקשור למצב קושחת המערכת.
tpm2_pcrread sha256:0
# פלט:
# sha256:
# 0 : 6e5e144f3e10a0a79f0e7d1bdfbbae1bcad9b7e5d480442e1edb3448c3816a3a
השווה ערך זה למול המהידוע כ-refeence (golden) hash.
מטרה: לשחזר קושחה מהימנה ונתוני תצורת אבטחה אם זוהתה שינוי זדוני.
שורש האמון הוא סט של רכיבי חומרה, תוכנה, ו/או קושחה המבצעים פונקציות אבטחה קריטיות. ב-SP 800-193, ה-RoT בדרך כלל:
הנה מקטע פייתון המשתמש בספרייה tpm2-pytss לקרוא PCR מתוך TPM 2.0 ולהשוות לתי הגבול התקינה הידועה.
from tpm2_pytss import *
import binascii
# זהב hash למבטח אזור קושחה
GOLDEN_PCR0 = "6e5e144f3e10a0a79f0e7d1bdfbbae1bcad9b7e5d480442e1edb3448c3816a3a"
with ESAPI() as sapi:
pcrs = sapi.PCR_Read(
pcrSelectionIn=[TPM2_PCR_SELECTION(hash=TPM2_ALG.SHA256, pcrSelect=[0])]
)
actual_pcr0 = binascii.hexlify(pcrs.pcrValues[0]).decode()
if actual_pcr0 == GOLDEN_PCR0:
print("מדידת הקושחה תואמת לערך הידוע כתקין.")
else:
print("מדידת הקושחה לא תואמת! זוהתה אפשרות של שיבוש.")
מדידת קושחה כוללת hashing של קוד ואזורי נתונים ואחסון הערכים באחסון חסין שינויים.
נניח שאתם על מערכת לינוקס ויודעים שהקושחה שלכם נמצאת ב-/dev/mtd0 (החל בכתובת המתאימה):
sudo sha256sum /dev/mtd0
# פלט: <hash value> /dev/mtd0
השוו ערך זה לערך ה-golden hash המאוחסן.
חולשות קושחה מנוצלות על ידי:
הרוטקיט הראשון מסוג UEFI שנמצא בשטח; שינה את קוד UEFI לשרוד מודולים זדוניים ולהישרדות לאחר התקנה מחדש של מערכת ההפעלה. הוא התרכז בשבב ה-SPI flash.
שינויים מותאמים אישית בקושחה אפשרו קריאה/כתיבה גם לאחר עיצוב דיסקים.
תארה שיטות להזרקת קוד זדוני ל-ROMs אפשרות Thunderbolt.
NIST SP 800-193 מעודד סריקה מתמדת לאמינות קושחה וניהול עדכונים נכון.
fwupd לבדיקת שלמות קושחהfwupd הוא שרת דמון בלינוקס שמנהל עדכוני קושחה מערכתיים ויכול לבדוק קושחת מכשיר אל מול גרסאות ידועות כטובות.
# רשום את כל המכשירים הנתמכים וגרסאות הקושחה
fwupdmgr get-devices
# קבל היסטוריית עדכוני קושחה
fwupdmgr get-history
# הפעל בדיקת אבטחה לאיומים ידועים
fwupdmgr security
Bash:
sudo flashrom -p internal -r bios_dump.bin
sha256sum bios_dump.bin
שמור את ה-golden hash הידוע באחסון מאובטח לצורך השוואה עתידית.
flashrom ב-Pythonנניח שצריך לאוטומט את זיהוי השינויים של BIOS.
import subprocess
import hashlib
def dump_and_hash_bios(output_file='bios_dump.bin'):
subprocess.run(['sudo', 'flashrom', '-p', 'internal', '-r', output_file], check=True)
with open(output_file, 'rb') as f:
bios_data = f.read()
sha256_hash = hashlib.sha256(bios_data).hexdigest()
print(f"SHA256: {sha256_hash} {output_file}")
return sha256_hash
# ערך hash ידוע כתקין (מאחסון מאובטח)
GOLDEN_HASH = "xxx..."
if __name__ == "__main__":
current_hash = dump_and_hash_bios()
if current_hash == GOLDEN_HASH:
print("הקושחה תואמת לתמונה ה-golden.")
else:
print("אזהרה: הקושחה השתנתה! ייתכן שנחשפה פריצה.")
ומומחי אבטחה על הסיכונים בקושחה.
בהתבסס על NIST SP 800-193 ועל מומחיות בתעשייה, הנה קווים מנחים ישימים:
הקושחה היא בלוק הבנייה הבסיסי בתשתית המחשוב, מה שהופך את הגנתה לחשובה ביותר בכל אסטרטגיית אבטחת סייבר מקיפה. NIST SP 800-193 מספק בסיס ישים ונייטרלי ליישום לבניית פלטפורמות חוסנות לעתיד. בין אם מגנים על שרתי ארגון, מערכות בקרה תעשייתיות או תשתיות IoT קריטיות, עמידה במודל "הגנה, זיהוי, שחזור" תבטיח שהארגון שלך עומד במתקפת וקטור מתוחכמת ומסוכנת במיוחד.
סריקה רגילה, שימוש במנגנוני עדכון מאובטחים, שורש חוסן בחומרה, ופרקטיקות תפעול מיטביות - יחד עם הנחיות NIST SP 800-193 - יעלו את הרף לפולשים ויאפשרו שחזור מהיר מכל חדירה.
למידע נוסף על ארכיטקטורות סייבר מגנות, הירשם לבלוג הטכני שלנו ופעל לפי ההמלצות המיטביות הללו לאבטחה מבוססת חומרה!
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.