עוד סיבה למה (על חלונות) תוכנות עובדות אחרת ב-Debugger

ובהמשך לפינתנו “דברים שלומדים כשעובדים על Wine“.

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

מסתבר שיש לזה עוד סיבה אפשרית. הסיבה נקראת “OutputDebugString“.

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

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

אין לי מילים.

שחר

IDS – טוב או רע?

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

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

בשלב זה שאלתי את השאלה הבאה:
“האם אתה יכול לספר על מקרה שבו ראית בעיניך מצב שמערכת ה-IDS עשתה משהו מועיל”.

התשובה היתה, בגדול, שעיקר השימושיות הינו עבור Forensics – לגלות מה קרה. אני אציין רק שהשימושיות הנ”ל מוטלת בספק. במקרה היחידי הידוע לי שבו ניצלו מידע שהגיע מ-IDS לצורך הגשת תביעה, לא היתה מחלוקת על העובדות, והנאשם יצא זכאי. במילים אחרות, לעניות דעתי, הקמה חכמה ומושקעת של מערכות התרעות על חדירות הינה, לעיתים מאוד קרובות (לא נחטוא לאמת ונגיד תמיד) בזבוז משאבים.

זה לא שהן לא מתריעות על נסיונות חדירה. זה פשוט שאין כל כך מה לעשות עם ההתרעות הנ”ל.

שחר

Bear