תקיפת קנקן – הטמעת הודעה בתוך הודעה לעקיפת הגנות בעולם הרכב מתן זיו, חוקר אבטחה בכיר

“אל תסתכל בקנקן אלא במה שיש בו”

פרוטוקול ה-CANBUS הוא פרוטוקול תקשורת המשמש את עולם הרכב כבר שנים רבות. בשנת 2012 נכנס לשימוש פרוטוקול חדש בשם CAN-FD, המספק תמיכה לאחור לפרוטקול ה-CANBUS, אך בנוסף מציע אפשרויות חדשות לשליחת הודעות. בפרט, פרוטוקול זה תומך בשליחת חלקים מההודעה בקצב גבוה ביחס לפרוטוקול ה-CANBUS, ובנוסף מאפשר שליחה של הודעות המכילות הרבה יותר בתים של מידע (64 בתים לעומת 8 בתים בפרוטוקול ה-CANBUS).

תקיפה חדשה בשם “קנקן” (CANCAN) פורסמה לאחרונה (ב-15 ביוני 2022) בכנס ESCAR USA על ידי החוקר מתן זיו מחברת סיימוטיב טכנולוגיות (CYMOTIVE Technologies). תקיפה זו מנצלת את היכולת לשלוח מידע מהיר על מנת “לקודד” בעזרתו מידע הנראה כהודעה תקנית אחרת.

הודעות CANBUS (ו-CAN-FD) כוללים מספר זיהוי המכונה CANID. מספר זה מייצג את סוג ההודעה, ומסביר כיצד מקבל ההודעה אמור להתייחס למידע הכלול בה.

מנגנוני הגנה שונים בעולם הרכב מבוססים על סינון וניתוב הודעות בהתבסס על אותו ה-CANID. בעזרת תקיפת ה”קנקן”, ניתן במקרים מסוימים לעקוף ולהתגבר על מנגנוני הגנה אלו.

תמונה 1 :דגימה בקצב איטי של ביטים שנשלחו בקצב מהיר קרדיט: סיימוטיב טכנולוגיות

רקע: CANBUS ו-CAN-FD

פרוטוקול ה-CANBUS מאפשר תקשורת בין רכיבים פנימיים ברכב. ברוב תצורות השימוש הרכב יכיל מספר רשתות CAN נפרדות, כאשר רכיבים המשמשים לצרכים דומים יישבו יחדיו באותה הרשת. על מנת לנתב הודעות בין רכיבים היושבים ברשתות נפרדות, נעשה שימוש ברכיב מיוחד בשם Gateway, המחובר במקביל למספר רשתות.

תמונה 2 :הפרדת רשתות CAN ברכב קרדיט: סיימוטיב טכנולוגיות

פרוטוקול ה-CAN-FD תואם לאחור לפרוטוקול ה-CANBUS. בפרט, הודעה הנשלחת בפרוטוקול זה תתחיל באותו קצב שליחת ביטים, אשר יכלול את שליחת ה-CANID, ועוד נתונים שונים לגבי ההודעה.

אחד הביטים שנוספו בפרוטוקול ה-CAN-FD הוא ביט ה-Bitrate Switch) BRS). אם ביט זה נשלח כשהוא דולק, כל הביטים החל מהביט שאחריו הכוללים את אורך ההודעה, המידע עצמו, ושדה ה-CRC יישלחו בקצב גבוה יותר.

דוגמה אחת לקצבים המשמשים את עולם הרכב הם 500 Kbps עבור הביטים הנשלחים בקצב האיטי, ו-2 Mbps עבור הביטים הנשלחים בקצב המהיר.

קידוד ביטים איטיים בעזרת מהירים

קידוד הביטים הנשלחים בקצב איטי בעזרת הביטים הנשלחים בקצב מהיר תלוי ביחס בין הקצבים. עבור יחס של 4, קידוד זה ייעשה בהסתמך על טבלת ההמרה המצורפת.

תמונה 3 :טבלת המרה לקידוד ביטים איטיים על ידי ביטים מהירים קרדיט: סיימוטיב טכנולוגיות

הקידוד יהיה שונה עבור השימוש הראשון בערך מסוים, והשימושים העוקבים.

פרוטוקול ה-CANBUS ובעקבותיו ה-CAN-FD אינם כוללים אות שעון. סנכרון בין יחידות שונות ברשת עושה שימוש בזמן בו ביטים מתחלפים מ-1 ל-0. לכן, הפרוטוקול איננו מאפשר מעל 5 ביטים רצופים בעלי אותו ערך, ו”דוחף” ביט ערך הפוך לאחר כל 5 ביטים רצופים מאותו הערך. ביטים אלו נקראים “Stuff Bits”.

לכן, לא ניתן להשתמש בקידוד נאיבי המקודד תמיד ביט איטי ל-4 פעמים אותו הביט.

דרישות התקיפה

על מנת שתקיפת ה”קנקן” תצלח, על היחידה הנתקפת להתחיל דגימה של הודעה תוך כדי שליחה של הודעה אחרת. התחלת דגימה תוך כדי שליחת הודעה עלולה לקרות במספר תרחישים, הכוללים:

  • שגיאת מדידה באורך ההודעה המתקבלת, כך שקבלת ההודעה מסתיימת מוקדם מדי
  • התעוררות היחידה הנתקפת בזמן השליחה
  • רשת מעורבת הכוללת יחידות שאינן תומכות באופן מלא בפרוטוקול ה-FD, ובמקרה של קבלת הודעת CAN-FD יפסיקו את הקבלה עד להודעת ה-CANBUS הבאה.

תאימות מלאה לפרוטוקול ה-CAN-FD צפויה שלא לאפשר את שני התרחישים האחרונים, שכן קבלת הודעה תדרוש ספירת 11 ביטים רצופים בעלי הערך 1, ללא קצוות (edges) הנובעות משליחה מהירה של ביטים אחרים.

ניסויים

שני התרחישים הראשונים המתוארים נבדקו על יחידות אמיתיות.

התרחיש הראשון הוכח על כל יחידה שנבדקה, שכן הוא מובנה בפרוטוקול. ניתן לראות את התקיפה המוצלחת בהקלטה המצורפת.

תמונה 4 :הדגמת “קנקן” במקרה של שגיאה בביט של אורך ההודעה הנשלחת. קרדיט: סיימוטיב טכנולוגיות

התרחיש השני הוכח אך ורק על יחידה מסוג PCAN FD Pro, וגם בהם רק על גרסת תוכנה ישנה. כל שאר היחידות שנבדקו לא היו פגיעות לתרחיש זה. ניתן לראות את ההדגמה המוצלחת בהקלטה הבאה.

תמונה 5 :הדגמת “קנקן” במקרה של התעוררות בזמן שליחת ההודעה. קרדיט: סיימוטיב טכנולוגיות

התרחיש השלישי לא נבדק, שכן תצורה של רשת מעורבת איננה נפוצה.


מתן זיו, חוקר אבטחה בכיר, סיימוטיב טכנולוגיות

תגובות סגורות