
התקדמות בתחום הוירטואליזציה של תוכנה ועיבוד רשת חוללה מהפכה באיך שאנו מאפיינים ומפעילים רשתות, מה שהוביל לצמיחה של רשתות מוגדרות תוכנה (SDN). כאשר הרשתות נעשות יותר ויותר "מתוכננות תוכנה", מופיעים אתגרי אבטחה חדשים - במיוחד, ביסוס אמון בסביבות ענק, דינמיות וניתנות לתכנות. בלב התקשורת המאובטחת ושרשרת האמון נמצאים עוגני האמון: הישויות הקריפטוגרפיות מהן נובעת סמכות כל האמירות האבטחה. מאמר זה מספק מדריך מקיף להבנת, הגדרת וניהול עוגני אמון ב-SDN - משורשי חומרה כמו TPM, דרך ניהול תעודות, עד לדוגמאות קוד מעשיות ומקרי שימוש מתקדמים.
עוגן אמון הוא ישות קריפטוגרפית ידועה היטב - לרוב מפתח ציבורי או תעודה (כמו תעודת רשות אישורים ראשית) - שנאמנה בפירוש לאמת ולאמת מפתחות או תעודות אחרים במערכת מרושתת. כל שאר המבצעים הבטוחים חייבים להתחקות אחר לגיטימיותם חזרה לעוגני אמון אלה. בלעדיהם, אין בסיס לזהות מאובטחת, הצפנה או אישור.
בהקשר של אבטחת רשת:
נקודות מפתח:
רשתות מסורתיות מסתמכות על מכשירים מבוססי חומרה קבועה. רשתות מוגדרות תוכנה (SDN), לעומת זאת, מפשטות את מישור הבקרה לתוך תוכנה, ומאפשרות תשתית ניתנת לתכנות, דינמית ואוטומטית.
SDN הם אטרקטיביים במיוחד לתוקפים בגלל:
תוצאה: הגבול בין ישויות מהימנות ולא מהימנות הוא יותר דינמי וחודרני.
TPM (מודול פלטפורמה מהימן) הוא שבב מחשב ייעודי שמטרתו להבטיח חומרה על ידי אינטגרציה של מפתחות קריפטוגרפיים בתוך מכשירים.
“מערכות מודרניות בונות אמון מהחומרה כלפי מעלה. TPM יושב בשרשרת זו כעוגן בטחון מובנה."
– שורש האמון בחומרה מאחורי מערכות מאובטחות מודרניות
שרשרת האמון מתקדמת כך:
+-----------------------------+
| שורש האמון (TPM/HSM) |
+-------------+---------------+
|
+-------------v---------------+
| BIOS/UEFI / Boot ROM |
+-------------+---------------+
|
+-------------v---------------+
| קרנל/מערכת הפעלה / היפרוויזור |
+-------------+---------------+
|
+-------------v---------------+
| אפליקציה / שירותי SDN |
+-----------------------------+
הפרת השרשרת בנקודה כלשהי (למשל, קושחה פגומה) מערערת את האמון בכל המערך.
רשות תעודות (CA) היא שורש אמון במרבית מודלי אבטחת הרשת. כל מערכת הפעלה או אפליקציה מחזיקה חנית אמון המכילה עוגן אמון אחד או יותר:
תסריט: כאשר בקר SDN שלך או האפליקציה מקבלים תעודת TLS, היא "נאמן" זאת רק אם נשמרה חזרה לעוגן אמון בחנות האמון של המערכת.
בלינוקס, חבילת ca-certificates מספקת פקודות ניהול:
# עדכן תעודות CA (Debian/Ubuntu)
sudo apt update
sudo apt install ca-certificates
# הוסף תעודת CA חדשה
sudo cp myCustomCA.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
תוצאה: התעודה החדשה הופכת לעוגן אמון לכל פעולות TLS על המערכת.
בעת שימוש בטא
לספריות ssl ו-requests של פייתון, עוגני אמון מגיעים מחנות האמון של המערכת, או יכולים להיות מסופקים ידנית:
import requests
# השתמש בתעודות המערכת (ברירת המחדל)
r = requests.get('https://example.com')
print(r.status_code)
# השתמש בעוגן אמון מותאם אישית
r = requests.get('https://example.com', verify='/path/to/custom_trust_anchor.pem')
print(r.status_code)
רוצה לרשום את כל תעודות השורש המותקנות במערכת לינוקס?
# רשום את כל התעודות בחנות האמון של המערכת
ls /etc/ssl/certs/*.pem
# הדפס את הנושא של כל תעודה (OpenSSL)
for crt in /etc/ssl/certs/*.pem; do
openssl x509 -in "$crt" -noout -subject
done
זה מקל על בדיקה ואימות של עוגני האמון המותקנים.
מישור הבקרה של SDN (ה"מוח" של הרשת) חייב להיות מוגן:
# דוגמה: תצורת TLS של בקר SDN (למשל, ONOS, OpenDaylight)
tls:
enabled: true
keystore: /etc/onos/keystore.jks
keystorePassword: changeme
truststore: /etc/onos/truststore.jks
truststorePassword: changeme
# חנות האמון מכילה תעודות CA של שורש (עוגני אמון)!
אפילו ברמת המכשירים והזרימה, האבטחה תלויה בעוגני אמון:
עקרונות אפס אמון מופעלים יותר ויותר ב-SDN:
“לעולם לא יש לתחום, תמיד לבדוק.”
יצירת CA שורשי:
openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
יצירת תעודת קליינט חתומה:
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out client.crt -days 500 -sha256
ה-rootCA.pem הוא עוגן האמון.
תסריט:
מטרות אבטחה:
פתרון:
מה קורה אם עוגן אמון (CA שורשית) נפרץ?
נוהגים מיטביים:
ככל שה-SDNs מתפתחים, ניהול עוגני האמון הנידני הופך לבלתי אפשרי.
עם בוא המחשוב הקוונטי, הצפנה מסורתית עשויה להיפרץ. עוגני אמון יעותקו לאלגוריתמים עמידים לקוונטום כמו קריפטוגרפיה מבוססת מבוך.
המלצה:
התעדכן במפתחים ב-PKI חסין קוונטי. ספקים רבים בוחנים שורשים היברידיים המושתתים גם על חתימות קלסיות וגם על פוסט-קוונטום.
# רשום את כל תעודות ה-CA בחנות האמון
sudo trust list
# מצא עוגן אמון התואם למילת מושא נתונה
sudo trust list | grep "Organization Name"
מתקפה נפוצה היא הוספה שקטה של CA שורשית לא מורשית.
תסריט Bash לזהות שינויים בעוגני אמון:
#!/bin/bash
# צילום בסיסי
cp /etc/ssl/certs/ca-certificates.crt baseline.crt
# מאוחר יותר: השווה להבדלים
diff baseline.crt /etc/ssl/certs/ca-certificates.crt
חלץ והדפס את כל שמות הנושאים מחנות האמון של המערכת:
import ssl
import os
from OpenSSL import crypto
certs_dir = '/etc/ssl/certs'
for filename in os.listdir(certs_dir):
if filename.endswith('.pem'):
path = os.path.join(certs_dir, filename)
with open(path, 'rt') as f:
certdata = f.read()
try:
cert = crypto.load_certificate(crypto.FILETYPE_PEM, certdata)
print(cert.get_subject())
except Exception as e:
continue
קוד זה מסייע בבדיקה תוך עינית של עוגני האמון שלך.
עוגני אמון הם היסוד שעליו נבנית כל אבטחת הרשת המודרנית, כולל רשתות מוגדרות תוכנה. בין אם הם מושרשים בחומרה (TPM), מנוהלים על ידי רשויות תעודות, או מופצים דרך ניהול תצורה, עוגני אמון מאפשרים לנו לסמן קווים ברורים בין ישויות מהימנות ולא מהימנות בסביבות מתוכנתות ודינמיות.
סיכום:
ssl של פייתוןעל ידי הקפדה על עקרונות, דוגמאות מעשיות וסקריפטים אלו, יכולים מהנדסי אבטחה לנהל בבטחה עוגני אמון בסביבות SDN הכי תובעניות.
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.