הפריצה לערוץ 10 מראה כמה הפרטים הקטנים חשובים

הנה דוגמה לאיך חולשת אבטחה לא מהותית מובילה להשחתת אתר מוביל
ההתקפה על ערוץ 10 - צילום מסך

לפחמימות ומאפים יש קשר הדוק להאקינג. אפילו האקינג דה-לה-שמאטע. למה? כי אפשר לתזמן האקינג לפי מאפים. כן, כן! ואני אדגים באמצעות מלוואח. אחד המאפים התימניים האהובים עלי ביותר הוא מלוואח. רגע, למה מלוואח? הוא טעים, משמין ואפשר להכין אותו ב-10 דקות בערך. וזה בדרך כלל הזמן שלוקח למצוא פרצות אבטחה במקומות שונים ובאתרים שונים. אני שם את המלוואח במחבת (או בתנור), נכנס לאתר, עושה view source ומוצא משהו ואז אוכל את המלוואח ומשמין מנחת.

נעם ר. חבר ופרחח צעיר (קראו את הבלוג שלו! יש שם מידע חשוב שמונגש באופן נהדר לכל הרמות) שמרבה לחטט במקומות שונים מתזמן את ההענות לדיווחים שהוא מדווח לפי הכנת מאפים. כשהוא מבצע הסגרה של באג אבטחתי חמור, הוא מתחיל להכין מאפים. כיוון שהכשרון הקולינרי שלו יותר מורכב משלי – המאפים שהוא מכין הם קשים וארוכים להכנה. למרבה הצער, הוא מספיק לעשות סמבוסק באפיה איטית במילוי חצילים עד שמישהו חוזר אליו וגם אז אומרים לו ׳זה משהו קטן׳ או ׳זה לא רלוונטי׳ או ׳התקלה שמצאת לא משפיעה על האתר׳. יש לנו שלל של תירוצים של מנהלי פיתוח ואבטחה לבאגים עם השלכה אבטחתית שמוצאים אצלם במערכת. עד כדי כך שאם לא מדובר בפרצה ממשית – אנחנו מעדיפים שלא לעשות הסגרה כי אין לנו כוח שוב להתווכח עם מנהלי פיתוח בורים שלא מבינים שכל תקלה שהיא מספיק חשובה כדי ש owasp (גוף האבטחה המוביל היום) יתייחסו אליה – היא תקלה חשובה. הבעיה היא שהפרטים הקטנים האלו והתקלות הקטנות האלו יכולות להוביל לקטסטרופה אמיתית. המקרה של ערוץ 10 הוא דוגמה נהדרת.

לא נעים לי לדווח על פרצות או חולשות באמצעי תקשורת. מדובר בגופים שגם כך פועלים במציאות בעייתית, נתונים לאיומים ולא סובלים מעודף כסף. את ערוץ 10 אני מחבב במיוחד ולפיכך לא נעים לי לספר שבראשון לאוגוסט בשעה 23:00 ארעה השחתה של אתר הערוץ. במקום לראות את תכני הערוץ, הגולשים לאתר יכלו לראות כתבות המתרברבות בהצלחת ׳צבא הסייבר של תימן׳ במתקפה על ׳8200׳.

ההתקפה על ערוץ 10 - צילום מסך
ההתקפה על ערוץ 10 – צילום מסך

צילום המסך הזה נעשה על ידי סמי עבד אלחמיד כתב ערוץ 10:

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

ניתוח המתקפה התימנית

כל מה שאני כותב כאן הוא קצת ספקולציה, כי לא עשיתי פורנזיקה. כאמור נעזרתי רבות בנעם שהיה גם אשכרה ער כשהיתה את המתקפה ולא נחר בשלווה. בגדול, התימנים ירו את כל מה שיש להם על ערוץ 10. ייתכן שהשתמשו בסקריפטים פשוטים כדי לבצע את המתקפה – כלומר מתקפה בלי ידע טכני משמעותי. כאשר משתמשים במתקפה כזו, הרבה פעמים לא מצליחים להוריד את האתר או לגרום לו לנזק – אבל אפשר לקבל מידע מוצלח וזה בדיוק מה שהתימנים קיבלו. אחת המתקפות גרמה להודעה שגיאה באתר.

מה הבעיה עם הודעת שגיאה? הודעות שגיאה יכולות לגרום לחשיפת מידע קריטי. שימו לב למשל להודעת השגיאה הזו שנחשפה על ידי ההאקר הקקמייקה ׳שמעון ריקלין infosec` כאשר הוא חיטט בשירות סמס של ספקית גדולה:

הודעת שגיאה ב-PHP
הודעת שגיאה ב-PHP

לעין הלא מיומנת, אפשר לחשוב שמדובר בהודעת שגיאה סטנדרטית. אבל מי שמבין מעט בתכנות יכול לראות כמה דברים חשובים מאוד – למשל נתיב הקובץ, שמו, חשיפת גרסת ה-PHP ועוד. אחת ההתקפות של התימנים זעזעה את מסד הנתונים וגרמה לאתר להדפיס את פלט השגיאה הבא:

שגיאה בערוץ 10
שגיאה בערוץ 10

צילום המסך באדיבות נעם שהיה מספיק עירני.

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

הפרטים הקטנים הם הכי חשובים

כשאנו באים למנהל פיתוח ואומרים לו שהודעות השגיאה חשופות לחלוטין, הדבר הראשון שהוא יגיד זה ״זה לא משמעותי״ או ״זה לא מעניין״ או (המשפט החביב עלי) – ״זו אכן בעיה אבל לא משהו מהותי״. אני מת על אנשים שמחליטים לבד מה ״מהותי״ ומה לא. לי יש כלל אצבע אחד – אם זה מספיק חשוב ש OWASP – גוף האבטחה המוביל בעולם יזכיר את זה בדיווחים שלו – אז זה מהותי. ואכן, OWASP מדווח על אופן טיפול בתקלות במאמר נרחב. בגדול – לא מסגירים תקלות בכלל באתר שנגיש ברשת. למה? הנה – הדוגמה הזו. כי כל פריט מידע שאנחנו נותנים יכול להוביל למתקפה.

אני אדגים עם פרצה ששמעון ריקלין infosec מצא באתר של עו״ד נוגה ויזל. האתר של עורכת הדין מצהיר בכל בקשה על גרסה ה PHP שלו. לכאורה לא משהו ״מהותי״, נכון?

הבעיה היא שהגרסה של ה-PHP הזו היא ישנה ומכילה מספר פרצות שכל אחד עם ידע טכני מינורי יכול להוריד כלי ולנצל אותה לצרכיו.

איך מתמגנים מדבר כזה?

הקורא הפשוט יכול להתמלא באימה ויאוש -אבל מתכנת עם ניסיון מינימלי אמור לדעת איך למנוע תקלות כאלו והקלות של הפתרון היא מגוחכת ויכולה להיות מובנת גם לאנשים לא טכניים בעליל. בגדול – באתר PHP כמו האתר של ערוץ 10 יש קובץ הגדרות שנקרא php.ini. הוא לא ארוך במיוחד והוא מאוד מוכר לכל מתכנת PHP. שם יש שורה שצריך להקפיד עליה:

error_Reporting = off

כן, בגדול זה הכל.

וכמובן שאפשר לעשות את זה בכל פלטפורמה שהיא. למשל אם יש לכם node.js\express – הקפידו שכל השגיאות לא יגיעו למשתמש באמצעות תפיסת כל השגיאות עם middleware.

ואיך נמנעים משגיאות כאלו? ראשית אתר OWASP הוא התחלה טובה לכל מתכנת שרוצה לשפר את היכולת שלו. אבל נדרש ממתכנת, בטח ובטח ממתכנת מנוסה – לקרוא גם ספרים, להגיע למיטאפים ולקרוא קבוצות מקצועיות. מי שמעוניין בספרים – ב-15$ אפשר לרכוש ממש עכשיו חבילה ענקית של ספרי אבטחה מומלצים בהאמבל-בנדל. אם אתם מתכנתי node, אני ממליץ בחום רב על הספר של לירן טל על אבטחת מידע ב-node.js שהוא קצר וקולע וגם זול יחסית. מי שרוצה להגיע לכנס – אני הולך לדבר על אבטחת מידע בכנס רברסים (יחד עם רבים וטובים אחרים) ועלות הכניסה – 50 שקלים בלבד ליום שלם. הקבוצה המקצועית הטובה ביותר שאני מכיר לענייני אבטחה היא DC9723 המעולה בפייסבוק (כן, כן).

שיפור הידע המקצועי באמצעות הגעה למיטאפים, כנסים, קריאת ספרים, התעדכנות בקבוצות מקצועיות וכו׳ היא קריטית לכל מתכנת או מנהל פיתוח. הדבר הכי חשוב הוא לזכור שכמעט כל דבר הוא מהותי. אתם לא אנשים טכניים, קיבלתם דיווח על תקלת אבטחה ומנהל הפיתוח/המתכנת אומר לכם ש״זו בעיה לא מהותית״? תתחילו לדאוג.

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

גלילה לראש העמוד