USB Debug Whitelist

מי מכם שקרא את המאמר "כספת של סוכריות גומי" שכתבתי במגזין (בגיליון 38), קרא בחלקו על חור אבטחה המאפשר לפתוח מכשיר הנעול בסיסמה/צורה. כחלק מהעדכון בגרסה 4.2.2, גוגל הוסיפה פיצ'ר אבטחה הנקרא USB Debug Whitelist. הפיצ'ר הנל מהווה חסימה של החור, אך לפני שנתחיל להסביר עליו קצת יותר בואו ניזכר על איזה חור מדובר:

"אז נעלת את המכשיר ו?... 
נעילת המכשיר, רובנו מבצעים את זה, האם זה בטוח? לא ממש ,הרי המערכת "מקליטה" את הצורה או את הסיסמה, היא צריכה להשוות עם משהו. איפה ההקלטה הזאת יושבת? בנתיבים הבאים: 
/data/system/gesture.key
/data/system/password.key 
 
למרות שהקובץ מאובטח, לא ניתן להיכנס אליו ופשוט למשוך את הצורה או הסיסמה. אבל מה שניתן לעשות הוא פשוט למחוק את הקובץ, במידה ואין עם מה להשוות, המערכת מקבלת כל סיסמה או צורה שתכניסו.
 
אז מה צריך בשביל זה: 
על מנת לבצע זאת, אנו צריכים USB Debugging פועל, במידה והוא לא פועל ניתן להריץ את הפקודות דרך ה-Recovery) במידה ויש. במידה ואין, לא יהיה ניתן למחוק את הקובץ כשהמכשיר כבר נעול, למרות שלרוב ניתן "לדחוף" את ה-Recovery המפותח "בכוח", במצב של Fastboot).  
 
יש לציין כי לא חשוב אם קיימות הרשאות root או לא. הפקודה: 
adb shell rm /data/system/gesture.key
או: 
adb shell rm /data/system/password.key
 
הפקודה רצה כמובן דרך ה-ADB, לאלה שלא מוכר להם העניין חיפוש קצר בגוגל של הערך "Android ADB" יעזור מאוד. מה אנחנו בעצם עושים בפקודה הזאת?
 
rm זהו קיצור של remove. ובכך אנחנו מסירים את הקובץ gesture.key (או password.key) שנמצא בנתיב data/system/ (לפעמים לאחר הרצת הפקודה יש לכבות-ולהדליק את המכשיר). בנוסף יש לציין כי הפרצה נבדקה ועובדת על גרסאות 4.2 - 4.1.2,  4.0.3 - 2.3.3, 2.2 - 2.1 המהווים קצת יותר מ-95% מסך המכשירים המאוקטבים היום (וניתן להניח כי הפרצה עובדת גם על
גרסאות קודמות יותר).
 
יש לציין כי הפרצה נוסתה על גרסת AOSP - גרסה נקייה של אנדרואיד, ואשמח לשמוע אם היא עובדת על המכשירים עם הממשקים השונים (sense של touchwiz ,HTC של Samsung וכד')."

 
אז כמו שהזכרתי בהתחלה, שם הפיצ'ר הוא USB Debug Whitelist. דרך העבודה שלו למעשה די פשוטה - באופן כללי: כאשר אתה מחבר את המכשיר למחשב (באמצעות USB), המערכת (אנדרואיד) מקבלת מפתח RSA של המחשב שלך (Token), כעת הפיצ'ר מאפשר לך לנהל רשימה של אותם Token-ים (או במילים אחרות: רשימה של כל החיבורים).
 
כשהפיצ'ר פעיל תקפוץ הודעה (במכשיר) בעת החיבור:
  
 
ההודעה תבקש ממך לאשר שברצונך לאפשר USB Debugging מהמחשב. ותאפשר לך להוסיף את ה-Token של המחשב לרשימה הלבנה כדי שהמערכת לא תבקש ממך לאשר זאת שוב עבור אותו המחשב (תשמור את ה-Token שלו ברשימה הלבנה של המכשיר).
 
מכך נובע, שאם גנבו לנו את המכשיר (בהנחה שיש סיסמה/צורה וכ'ו) הגנב לא יצליח לגשת למכשיר דרך ה ADB ממחשב שאינו נמצא ברשימה הלבנה.
 
להלן, תמונה המראה כיצד יראה המכשיר במחשב שה-Token שלו לא נמצא ברשימה הלבנה (ובגלל שהמכשיר אינו פתוח, הגנב אינו יכול לאשר את ההודעה הקופצת ולאפשר חיבור USB Debugging):

 
הפוסט נכתב ע"י ניר גלאון. כתובת אימייל ליצירת קשר: nirgn975@gmail.com   


תגובות על 'USB Debug Whitelist':



#1 

שמיל (אורח):
מעניין מאוד, תודה רבה על המידע!
06.04.2013 23:10:14

#2 

אבי (אורח):
מאד מעניין, תודה
למיטב הבנתי, גם אחרי הפיצ'ר הנ"ל עדיין יהיה ניתן להכנס דרך ה-Recovery, לא?
07.04.2013 10:04:49

#3 

nirgn975 (אורח):
אבי,
לא הצלחתי להריץ את הפקודות במצב ריקברי למרות שהמחשב נמצא ברשימה הלבנה (אני עדיין בודק מאיפה השינוי מגיע - שינוי מערכת/ADB או ריקברי - הגרסאות של הריקברי והADB עודכנו מאז..)

בכל מקרה, כתבתי סקריפט שניתן להרצה דרך הריקברי והוא מבצע את אותם הפעולות:
בשביל להריץ את הזיפ דרך הריקברי ניתן:
לשים את הזיפ על כרטיס הSD (כמובן שבמידה ויש למכשיר אופציה לSD), או לטוען את הזיפ בעזרת הפקודה adb sideload (במצב ריקברי).

להורדה של הזיפ:
https://docs.google.com/file/d/0B7RkqHKoREPqbE5ZcUtoVnJwSkk/edit?usp=sharing
07.04.2013 14:36:53

#4 

דייב (אורח):
תודה רבה! פוסט מעניין מאוד! אגב, אם אנחנו כבר כאן: ניר, נשמח לראות מאמרים נוספים שלך במגזין!
07.04.2013 19:45:22

#5 

nirgn975 (אורח):
דייב, עובדים על זה (:
08.04.2013 12:45:00

#6 

דייב (אורח):
כיף לשמוע! :) תודה רבה!
08.04.2013 16:40:08

#7 

כסיף דקל (אורח):
היי ניר, תודה על הפוסט!
בדקתי הרגע על ה SGS3 שלי ממשק touchwiz רום מקורי של סמסונג בגירסת אנדרואיד 4.1.2 :

rm failed for /data/system/gesture.key, Permission denied
09.04.2013 15:10:09

#8 

כסיף דקל (אורח):
שכחתי לציין שזה כן עובד עם הרשאות רוט.
09.04.2013 15:42:04

#9 

nirgn975 (אורח):
כסיף, לא כל כך הבנתי.

Permission denied ממה שאני מכיר זאת הודעת שגיאה של המחשב ולא של המכשיר, ז"א שלא הרצת את הפקודה כאדמין (או עם הרשאות רוט, במקרה של לינוקס).

כשהתכוונת שזה כן עובד עם הרשאות רוט, התכוונת להרשאות רוט של המכשיר? או של המחשב?
10.04.2013 18:57:33

#10 

כסיף דקל (אורח):
הרצתי את הפקודה תחילה בתוך adb shell וקיבלתי permission denied.
לאחר מכן עברתי למשתמש רוט (su) וזה כן הצליח..
10.04.2013 22:22:35

#11 

כסיף דקל (אורח):
והשגיאה היא לא של המחשב אלא של המכשיר כי יש שם התייחסות לפקודה שביצעתי.
10.04.2013 22:23:39

#12 

אסף (אורח):
תודה על הפרסום, בברכה, אסף כהן.
26.04.2013 21:58:26

#13 

Dor (אורח):
זה בעצם סוג של מדריך לפריצת/עקיפה סיסמה ?
28.04.2013 14:03:14

#14 

nirgn975 (אורח):
לא ממש. (וכפי שניתן לראות, אפשר להגיד שזה "היה", זה רק עדכון לגבי חלק ממאמר שנכתב)
01.05.2013 00:43:58



הוסף את תגובתך:
כינוי:
תגובה:
קוד אבטחה:
העתק לכאן את הקוד:
 
Digital Whisper © 2009 - 2017 - כל הזכויות שמורות ל-אפיק קסטיאל ול-ניר אדר.