פרק ג - סיכום ולקחים
אם קראת עד לפה, אז כל הכבוד ותודה רבה!
השקעתי בפוסט זה, והעובדה שאנשים קוראים ולומדים ונהנים מצדיק לי את ההשקעה
שמחתי להטעים אתכם טעימה על קצה המזלג מעולם הסייבר. הנושא מעניין אותי גם מהפן של מתכנת וגם מהפן של אחד שמעוניין בעולם הסייבר. אני חושב שבאג זה נמצא איפשהו באמצע בין הבאגים הפשוטים להבנה וניצול (כמו לדוגמה log4shell) לבין הבאגים המאוד מסובכים להבנה וניצול. ולכן רציתי להשתמש בו בתור דוגמה וטעימה מעולם מרתק זה.
למתכנתנים
הלקח למתכנתים ברור:
תשתמשו בשפות בטוחות. בשפה אחרת באג זה היה נשאר באג, ולא היה מגיע לכדי חולשה.
תבדקו את ההנחות הסמוייות בקוד שלכם, בקוד הזה יש הנחה סמוייה שתמיד יש לפחות ארגומנט אחד במערך argv. הנחה שהתבררה כשגויה.
גם קוד נפוץ כזה שנמצא כבר בפרודקשיין 12 שנים חשוף לבאגים כאלו. אל תמעיטו בהערכת היצירתיות של התוקפים, והסיכוי לבאגים בקוד שלכם.
למתעניינים בסייבר
נהנית מהמאמר? אולי אתה אוהב את תחום הסייבר?
תוכל להפיק מכאן כמה לקחים:
להיות מצליח בתחום, יעזור מאוד כישורים אלו:
הבנה מקיפה ומעמיקה בפלטפורמה והתוכנה שאתה בודק
ירידה לפרטי פרטים בלי לדלג על שום פרט
יצירתיות. הבאג הזה נמצא על ידי מישהו אחר כבר בשנת 2013, אבל הוא לא הצליח למצוא אקספלויט. צריך לפעמים הרבה יצירתיות למצוא דרכים לנצל באגים.
וכמובן הרבה סבלנות. צריך לקרוא ולהבין ולנתח הרבה קוד עד שאתה מגיע למציאה כזו
אם יש לך מה להוסיף או להעיר, אשמח מאוד לשמוע בתגובות. תודה רבה!
נ.ב. אם לא הבנתם, או השתמעמתם מכל הפרטים, זה גם בסדר גמור, לא הפסדתם כלום זה לא אומר כלום על יכולתכם לתכנת או ליכנס לתחום טכני אחר. זה תחום נישה שמעניין רק חלק קטן מהאנושות.