קטגוריה: אבטחת מידע

מתכנת IT

הרבה שנים שאני מנסה להסביר לאנשים מה המקצוע שלי. אני מנסה להסביר כי המקצוע שלי הוא "מתכנת IT", אבל אנשים חושבים כי אני מדבר על DevOps.
התשובה היא לא, זה לא DevOps.

תנו לי רגע להסביר מה זה בעצם IT, שכולם אוהבים להתייחס אליו.
IT הם ראשי תיבות של Information Technology. כלומר מי שמוגדר כאיש IT, מתעסק בטכנולוגיות העוסקות במידע.

עכשיו אשאל אתכם שאלה: האם איש DBA שייך לקבוצה הזו? התשובה היא כן. האם הוא איש DevOps? התשובה היא לא.

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

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

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

איש DBA יודע למשל המון על IO ועל דיסקים, וזיכרון, אבל זה לא אומר שהוא יודע מספיק בשביל להחליף ציוד, או לבחור חומרה בצורה נכונה. הוא רק יודע מה מסוגל לתת ביצועים טובים, אבל האם לוח מסוים עדיף? האם שרת מסוג מסוים? האם בקר מסוים? האם מעבד מדגם אחד טוב יותר וכיוב', הם פחות מהמומחיות שלו. זה לא אומר שהוא אינו יודע, זה אומר שהוא פחות חי את זה. זה יותר סוג של by-product של העבודה, מאשר המומחיות.

להמשיך לקרוא

אנדרואיד, mms ובעיית אבטחה עם פתרון ישים

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

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

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

בעולם הסלולרי, יש לנו יכולת לשלוח הודעות קצרות (אם כי לאחרונה זה הפך להיות יותר כמו מגילה מאשר הודעה קצרה) בשם SMS. הפירוש של SMS הוא Short Message Service.
הוא נשלח באמצעות אותות בשם ss7 ממכשיר לאנטנה, ומאנטנה לספק טלפון כלשהו. עכשיו הספק מעביר את זה הלאה לספק אחר שהוא שולח את ההודעה למכשיר אחר.

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

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

כיצד עובד ה MMS? אני שולח הודעת SMS במבנה מסוים שאומר כי יש לי משהו כדוגמת תמונה בשרת שניתן להוריד באמצעות WAP.

אז עכשיו אחרי שהבנו, מבלי להיכנס לעובי הקורה כיצד הדברים עובדים, הנה הפתרון הכל כך פשוט:
ספקי הסלולר המחזיקים שרתי WAP, או בכלל ספקי SMSc המחזיקים בשרת WAP, יכניסו משהו פשוט שנקרא "אנטי וירוס", אשר מזהה מערך התקפות על קבצי מולטימידיה, ובכך בעצם הבעיה קיבלה מענה די הולם, אם כי לא מושלם.

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

NaCl, Sodium והצפנה

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

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

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

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

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

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

תם עידן הפרטיות, תחי הפרטיות

Le roi est mort, vive le roi !

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

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

האם אני רוצה לשתף את הרחוב בכל דבר העובר עלי, או האם אני מעוניין להשאיר לעצמי דברים ?
האם אני באמת חושש מכך שיראו תמונה שלי וידעו שזה אני, או האם אין לי בעיה בכך ?

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

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

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

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

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

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

זה תלוי בנו בלבד, ובבחירות שלנו. אני מקווה שכולנו ננהג בחוכמה בנושא.

מוגש כחומר למחשבה.

הסכנות בשימוש md5 כסיסמה

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

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

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

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

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

במידה אתם מעוניינים לבצע שמירה של סיסמאות, ישנם כ3 אלגוריתמים מומלצים כיום:

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

ספאם פוליטי – רשויות מקומיות

לפי חוק הספאם, לפוליטיקאים מותר לשלוח לנו ספאם.

בבחירות שיהיו היום (22/10/2013) לרשויות המקומיות, יש המון ספאם.
למשל, אני זוכה לספאם הבא:
שלמה גלבוע הספאמרזהו ספאם ממתמודד לראשות חיפה, בשם שלמה גלבוע.
פרט קטן ושולי, מעולם לא גרתי בחיפה, אין לי יכולת חוקית להצביע בחיפה, ואין לי קשר לעיר חיפה מבחינה מוניציפלית.
כלומר הספאמר שלמה גלבוע, שולח לי סמס זבל להצביע לו, כאשר אין לי יכולת בכלל להצביע לו.

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

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

האם תושבי העיר חיפה באמת רוצים לבחור בספאמר שלמה גלבוע לרשות עיר ?
או האם עדיף אולי ללמד ספאמרים כדוגמת שלמה גלבוע שהספאם עובד נגדם, ולא תצביעו לו.

תעודת זהות חכמה, ואנשים ?

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

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

הנה תסריט "דמיוני" אשר מתרחש מידי יום בעולם, כולל במדינת ישראל:

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

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

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

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

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

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

מוקדש כחומר למחשבה.

האם זיהוי ביומטרי יפתור בעיות זיהוי ?

פרולוג

יום אRudolf_Abel_FBI_mugshotחד, משום מקום, קם לו  אדם, אשר קיבל על עצמו את השם רודולף אבל, ומצא עצמו בניו יורק, שם התבקש להמשיך בעבודות הריגול שעשה עבור ה KGB, רק הפעם במקום הגרמנים, היה זה כנגד ארה"ב.

אדם "חביב" בגיל ה50, אשר היה משתמש במטבע ניקל להחביא בתוכו מיקרופילם עם מידע אשר היה מגיע לסוכני KGB.
רק הלשנה עלתה על אבל, אשר נתפס על ידי הFBI ב1957, וב1962, בעקבות משבר הפלת מטוס הריגול U2 שנים קודם לכן, הועבר חזרה לידי הרוסים.

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

"מתקפת הסייבר" – או איך שוב פעם כושלת העיתונות הישראלית

ב7 באפריל היתה צריכה להיות "מתקפה" מקוונת על אתרים בישראל על מנת לפגוע בהם.

התקשורת בישראל עשתה Cybermanהמון רוח, רעש, וגרמה לאנשים לפחד הרבה מעבר לצורך, אבל שכחה כמעט כולה (למעט "צינור לילה" של ערוץ 10), לשאול שאלות מאוד קשות וחשובות – מצב אבטחת המידע בישראל.

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

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

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

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

אז גם כאן, שוב פעם נכשלה העיתונות הישראלית, ואח"כ זו בוכה על מצבה ועל כך שהיא מאבדת קהל וכסף …

encryptfs

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

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

על מנת להתחיל לעבוד, צריך קודם כל לטעון מודול קרנל:

$ sudo modprobe ecryptfs

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

$ ecryptfs-setup-private

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

לאחר מכן, צרו ספרייה רגילה ובצעו פעולת mount עם עצמה בשימוש במערכת הקבצים של ecryptfs:

$ sudo mount -t ecryptfs /path/to/directory /path/to/directory

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

Key type: passphrase
Passphrase: ThisIsAVeryWeakPassphrase
Cipher: aes
Key byte: 16
Plaintext passtrough: no
Filename encryption: no
Add signature to cache: yes 

החתימות נשמרות תחת ‎/root/.ecryptfs/sig-cache.txt .

לעוד מידע, וטיפים בנושא, אני ממליץ לכם בחום לקרוא את דף הוויקי הבא.

הממשל אינו זמין כעת, אנא נסה במועד מאוחר יותר

כל מי שצריך לעבוד מול מדינת ישראל, מוצא את עצמו צריך תמיד להתמודד עם בעיות (בירוקרטיות).

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

משום מה החליטו בפרוייקט "ממשל זמין", ליצור סרגל כלים המכיל דברים כמו תעודות הצפנה מבוססות סוקט (SSL/TLS מישהו ?), חתימה דיגיטלית על מנת לגשת למקומות כמו הגשת טפסים מיוחדים (ריח העו"ד עולה לאוויר), תשלום רישיונות וכו'. אממה. הוא תומך רק ב2 דפדפנים – IE ופיירפוקס (טוב לפחות יש חלופה). והם גם מכירים בכך שאנשים עובדים בלינוקס, אז סרגל הכלים יותר גם להתאים את עצמו ללינוקס (יש צדיק בסדום ?).

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

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

מדוע להגביל דפדפנים, ופשוט לא לעבוד לפי תקנים ?

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

HOT כי זליגת מידע לא מעניינת אותנו

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

SMS By HOT

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

  1. אני לא מחזיק במקלט טלויזיה. אני לא צופה בשידורי טלויזיה בכלל בשום צורה !
  2. אני לא לקוח של הוט
  3. חשבונית המס מציגה לי פרטים של לקוח שלהם, שכאמור הוא לא אני

ניסיתי לפנות בדוא"ל לדואר שממנו שלחו לי את החשבונית, והוא לא תיבה קיימת.

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

הגדלתי ראש, הלכתי ועשיתי whois לdns של הוט, הדוא"ל שם של abuse, ובכן התיבה של הבן אדם לא קיימת ויש bounce בגלל זה. חברה רצינית, אין מה להגיד.

עם משחק באתר, בסוף מצאתי מקום שאני לא צריך להיות לקוח שם, ועדיין אפשר לכתוב להם טקסט. פניתי אליהם, ולאחר 3 ימי עסקים קיבלתי תשובה:

hot

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

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

והנה מספר שאלות עבורכם כחומר מחשבה:

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

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

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

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

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

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

כשהשעון מראה 25

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

אז ככה: יש ניסויים של מאגרים ביומטרים. זה לא "ה"ניסוי, זה לא "ה" מאגר, זה רק ניסויים, מאגרים ובעיקר סיפורים ותירוצים.

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

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

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

יותר מזה, מה עם קוד פתוח, תמיכה אמיתית בכלכלה בה המשחק אינו מכור מראש לקבוצה מסויימת של עסקים, יוקר המחייה בישראל והרשימה עוד רחוקה מלהסתיים ?

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

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

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

מוגש כחומר למחשבה

מלח הארץ

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

כאשר שומרים פרטים של משתמש וסיסמה, חשוב לא לשמור את הסיסמה עצמה, אלא חתימה חד חד ערכית שלה.
הסיבה לכך מאוד פשוטה: אם בטעות מישהו מצליח לגשת למסד הנתונים, הוא לא ידע מה הסיסמה של המשתמשים שלך, ובכך לפחות עמודת הסיסמאות אינה שימושית בצורה ה"רגילה" שלה.
בשביל שהיא כן תהיה שימושית, צריך בעצם ליצור סוג של מילון שמתרגם hash למה שהרכיב אותו.

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

השימוש בSalt אומר כי החתימה היא בעצם הSalt פלוס הסיסמה (או הסיסמה פלוס ה Salt). יש עוד הרבה דרכים לעשות את זה, כדוגמת הוספת ביטים/בתים לסוג הhash וכו' כאשר משתמשים בSalt, אבל העיקרון בסופו של דבר אומר, כי החתימה של הסיסמה זה Salt וסיסמה בייחד, ולא רק הסיסמה לבד.

כאשר "חותמים", כיום מומלץ בחום לא לעבוד יותר עם md5, היות ויש לו התנגשויות. כלומר ישנה יותר מסדרת בתים אחת שיכולה להיות עם אותה חתימה. אז אני משתמש ב sha256 במקום. הנה קוד רובי המדגים כיצד יש לבצע זאת: להמשיך לקרוא

מידע, כריית מידע ואתם

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

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

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

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

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

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

Why PHP must be abandoned (in my opinion)‎

Foreword

Every now and then, I find myself using PHP as a programming language.
I started using it since the early of 2000, and never really liked it.
Most people like it not because it is good, but because it is easy to "get inside" and start developing stuff with it.

But that's exactly one of it's biggest problems in the world.
I do not want that a programming language will be "easy" to start with, I want it to be good with what it suppose to provide.

First of all, easy is a relative word. That is, you must compare it to something. Back in the days, it was easier to start with PHP then with Perl for example. But when you actually start to "enter" inside the language, well, it's not really a programming language per-se, but a group of a lot of tools that allow you to have some sort of glue to use them.
It does not really act as a language (like with Perl), but a borrow stuff from other languages, such as Perl, C and few others.

Recently I found yet another problem with PHP. I got a 3rd party source code that explains to me how to implement a protocol that reinvent the wheel of HTTP REST using "JSON" like code, but with it's own TCP header, rather then to use plain old HTTP.

Problem

The way that they implement it, is really weird, because instead of using the "pack" function, they are using their own bit manipulation code (poorly), and use the "chr" function to convert each byte into an ASCII value representative.

They code it like so:

 chr(1000 >> 0) . chr(1000 >> 8) ....
The problem is that chr(1000)  (shift right by 0, keeps 1000 as 1000) must report an error, because 1000 is bigger then the last ASCII code (127), or extended ASCII code (255).
I'll explain it again: 1000 is bigger then the range of 255 . ASCII is only at the range of 0..127 chars, but extended ASCII provides extra chars up to 255 (full byte length).
Note: Even a numeric value of 256 is bigger then one byte !
With Ruby for example, I get "RangeError" exception for such action, so does with Python, Pascal, Perl (with strict bytes) and few other programming languages.
While with PHP, well it returns the value of 232.
You must shout out loud, "wait, WHAT ?" if you haven't done it by now.
I'll say it again: "chr(1000)" with PHP returns the value of 232.
It is doing so due to bit manipulation ($value & 255), but it's actually type of an integer overflow IMHO.Why you ask ? Well, the aim of "chr" is to provide one character of ASCII value. The spec of ASCII chars is very very very simple:
Range of a char is 0 to 127 (they write ASCII and not extended ASCII).If you are converting an integer value to it's ASCII value, and the last value is 255 (going extended ASCII here), then what is the representation of the 1000 value in extended ASCII ?
Answer: You do not have one.
That's why normal languages (give or take) return an error that you are out of range.When you give an answer that is not an error, then it means that there is a representation for the value. but 1000 is not 232, it's 1000, and 1000 is out of range.So you might call it a bug right ?
Well according to a person that works at Zend, it is a feature, and the bug is that it is undocumented feature.

Here it is (typos are from the original email):

First of all, this is not integer overflow. integer overflow is hwen the aritmethic result can not be held in integer. here, the function translate what it can and should, which is the last significant byte. I don't see a problem with that except of that is should be documented. if you test 1000 & 255 (the last byte of 1000) you will see that the result is indeed 232.

Oh, and this is the bug I opened for it, so you can follow it yourself.
And It's not the first or last of such "features" within the so called "language".

End

I for one, do not welcome our PHP overlords.
And I think that it's time to abandon this patched "ship" you call a language. The benefits of going in fast, are payed in the long run. with many problems that you actually require an IDE for not loosing your leg by hitting a mine.

הוליווד פורצת

"אקדח במערכה הראשונה ימשיך לירות כל הסרט אין סוף כדורים פחות אחד"
אני

חלק כללי

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

כבר בעבר הזכרתי את נושא הCSI עם חיקוי העבודה של שלומי ישראלי, ועד כמה זה מגוכח.

Brute Force הוא שם המייצג גישה האומרת "בואו ננסה כל אפשרות ברשימה עד שנצליח או שנגמרו האפשרויות".

בBrute Force אשר מתבצע בסרטים, נראה ריצה על מספר ידוע מראש של ספרות (ואולי [אף] תווים), וגם הם בסדר עולה/יורד או ממש מנסים להציג מערכת פסודו ראנדומאלית. "המהדרי"ן", יפרקו את זה ל"ביטים" או "בתים" (תלוי מה הם מנסים להציג), ויציגו כל דבר כזה ב"קופסא" משל עצמה, כאילו החיפוש הוא על ביט/בית.
זה מצחיק כי אם עדיין אין לי מושג ירוק מה קורה שם, איך אפשר לדעת אם הביט/בית נכון ? רק אם יש לי מידע מוצפן, אוכל לכתוב משהו שינסה לפתוח את הקידוד, אבל זה לא זהה כמו מציאת סיסמה במערכת מרוחקת.

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

העניין הוא, כי לא משנה כמה פשוט לרוץ רק על מספרים, עדיין מספר כדוגמת 123456789 לקח אצלי על המחשב קרוב ל5 שעות ריצה של התוכנה !

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

פרצת אבטחה חמורה בFreePBX 2.10.0 / Elastix 2.2.0

גרסת FreePBX 2.10.0 וגרסת Elastix 2.2.0‏ ואולי גם גרסאות ישנות יותר, מכילות בעיית אבטחה בה ניתן בצורה מרוחקת להריץ קוד על השרת כמשתמש root, ובכך לחדור למכונה.

הבעיה מתרחשת בעקבות בעיית Cross Site Scripting אשר כותבת ללא פילטר מסויים לקובץ את התוכן ששמים ב URL. חשוב מאוד לעדכן את המערכת לגרסה האחרונה ביותר אשר מתקנת את הבעיה.

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

מבוסס על רעיון אמיתי – פרק ראשון – חלק א'

חלק א'

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

הצלחתי ! הוא שלי ! נכנס למלכודת, אפילו לא הייתי צריך להתאמץ. להמשיך לקרוא

האם Framework צריך להתערב בגישות אבטחה ?

במהלך השבוע התפרסם מקרה בו Rails – ‏ framework בשפת רובי, מכיל בעיית אבטחה אשר מאפשרת לבצע סוג של הזרקת תוכן למידע שאסור לערוך אותו. למשל לפתוח מחדש דיווחי באגים ב GitHub (כפי שמגלה הבעיה הדגים, כולל שינוי תאריכים לעתיד).

לאחר קריאה יותר מעמיקה, הסתבר כי הבעיה היא לא ב Rails, אלא בחוסר שימוש ביכולות שיש לו, או חוסר שימוש נבון בהם, אשר גורמים לבעיה.

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

Rails מאוד שונה בגישה שלו מהרבה frameworks, בכך שהיא מגיעה בפילוסופיה האומרת כי הוא מכריח אותך לעבוד בגישה שלו:

Rails is opinionated software. It makes the assumption that there is a “best” way to do things, and it’s designed to encourage that way – and in some cases to discourage alternatives. If you learn “The Rails Way” you’ll probably discover a tremendous increase in productivity. If you persist in bringing old habits from other languages to your Rails development, and trying to use patterns you learned elsewhere, you may have a less happy experience.

כלומר  עלייך לעבוד בגישה שלו, או בכלל לא לעבוד איתו, אחרת לא תסתדר במיוחד.

כך שאנו זקוקים לשאול את השאלה: כיצד Rails צריך להתנהג בנושא ?

האם עליו להכתיב את הדרך להגן על שדות ?

או האם מתכנתים צריכים לדאוג לנושא בכל פעם מחדש (למשל Rails מוסיף לכל טבלה 2 שדות בעצמו, אבל לא מגן עליהם, למרות שברירת מחדל הוא מנהל אותן) ?

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

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

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

מה אתם חושבים ?

ככה לא עושים פיטצ'ר אבטחה

בשעה טובה ומוצלחת הפצת הלינוקס האהובה עלי – Arch הכניסה לתוכה חתימת חבילות התקנה.

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

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

אז ארצ' נכנסו סוף כל סוף לעולם של הגדולים -> דביאן וredhat. ומציעים גם חתימה של חבילות ! אבל המימוש שלהם לא נכון.

בעוד שב redhat החתימה היא על כל חבילה, ובדביאן (כל הנגזרות), החתימה היא על ה repository – כלומר מאגר חבילות, החתימה בארצ' היא לפי חבילה. אממה, למי שאינו יודע באמת עד הסוף כיצד הם מימשו את הדברים, זה סיוט וכמעט בלתי אפשרי לגרום לכך שאנחנו נאשר חבילות. וזה בנוסף לעבודה הסיזיפית לאשר לפחות 30 מפתחות ציבוריים של מפתחי ארצ'. ולכן הרבה אנשים מכבים את הפיטצ'ר הזה (וגם האנשים של ארצ', ממליצים למי שלא מבין לעשות את זה).

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

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

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

אז כאשר האנשים הטובים בהפצה הבינו את הבעיה, הם פתרו אותה על ידי יצירת מספר מפתחות "על" (master keys  ואנחנו מייבאים אותם בצורה הבאה:

$ sudo -s
# for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done

במידה ואתם לא בוטחים בי, תמיד אפשר לאשר ידנית את המפתחות בצורה הבאה:

sudo pacman-key --lsign-key

כאשר מפתח נראה בסגנון הבא: FFF979E7.

את המפתחות אתם מקבלים על ידי pacman – מנהל החבילות עצמו.

בהצלחה !

עוד פוסט חסר תועלת בנושא הפריצות

infrastructures

ב21 לנובמבר 2011 פרסמתי פוסט בנושא הבעיות של חנויות ישראליות ברשת האינטרנט.

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

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

ואז הגיע 0mar. הוא במקום להגיד שהמלך הוא עירום, פשוט שם לנו תמונה מול העיניים, נתן לנו כמה סטירות לחי, ועדיין ביט כמנהגו נוהג – במקום להבין את הבעיה שיש ולתקן אותה, סמוך על ביז'ו חזר, ופלוני מאשים את אלמוני, שמאשים את John Doe שמאשים את Jane Doe שבכלל עוד לא נולדו באותו היום … (כמובן שאני לא באמת רוצה לפגוע בביז'ו הוא לא באמת אשם)

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

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

אם תהיה אחריות מינימאלית של בעלי אותם אתרים כלפי הלקוחות בצורה כזו שהם יכולים להיפגע – אז אולי יבוא השינוי.

בנתיים צריך להבין כי מחשבים זה לא תחביב, וזה שהבן (או הבת) של השכנים "מבין" משהו, כמו מתי לוחצים על מקש ימני ומתי על שמאלי, ואיך לחצים על next עשרות פעמים, זה לא הופך אותו למבין. העולם הזה של המחשבים – יש בו הרבה מאוד מקצועות של אנשים שמשקיעים המון שנים ללמוד. ה Next והמקש הימני הם רק בצד המשתמש לא בצד של בעלי המקצוע.

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

זהירות מחנויות ישראליות ברשת

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

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

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

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

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

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

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

ביומטריה – הדרך לגזול ממכם עוד כסף לטובת מיזם כושל

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

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

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

בין IE ל Firefox

אתמול יצא לי לראות משהו מאוד מעניין. מחשב שלא היה בחשמל הרבה זמן, והסוללת BIOS שלו כבר לא מתפקדת הודלק, ועלה הWindows שהיה על המחשב, והשתמשו ב IE8 בשביל לגלוש לGmail.
ואז הגיעה ההפתעה: יש הודעה שמשהו לא תקין בתעודת הצפנה, אבל הכל המשיך כמו שצריך למרות זאת.

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

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

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

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

כך שהאם אתם באמת מוכנים לסמוך על הדפדפן הזה ?

עידן (אבטחת) המידע או "מידע רוצה להיות חופשי"

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

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

הבנת אבטחת מידע בנוגע ל SIP

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

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

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

נתחיל מהסוף. SIP הוא פרוטוקול Voice Over IP אשר אומר כי הוא מעביר מידע אודות השיחה וההתנהלות שלה מצד אחד לצד שני, אבל הוא לא אחראי למה שקורה בשיחה, אלא רק למידע שמנסה ליצור את השיחה ומה מתרחש בשיחה. כלומר הוא מעביר אותות שונים אודות השיחה בלבד (משהו בסגנון של צליל חיוג, תפוס, לא זמין וכו' לאנשים הפחות טכניים שקוראים את הפוסט).

הבעיה היא ש SIP חשוף לגמרי בעולם, כלומר המבנה שלו הוא clear text אשר גלוי לכל מאזין ומקשיב.  המתחכמים יגידו עכשיו שאם הוא היה בינארי אז הכל היה תקין, אבל התשובה היא "אז זהו שלא". הבעיה היא שהוא חשוף בעולם ולא בזה שהוא גלוי. כלומר גם מידע בינארי אפשר להשתמש ולשנות, הרי יש לפחות עוד צד אחד שצריך לפרש את המידע, ולכן המידע הבינארי עדיין צריך להיות בר פירוש, ואז עדיין אפשר לגנוב שיחות באותה מידה.

אז איך כן אפשר להגן על SIP ?

דבר ראשון תעשו סיסמה חזקה ומיוחדת לשלוחה שלכם.

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

מAsterisk גרסה 1.8, אפשר להשתמש במנהרת SSL להצפנה, אבל זה תלוי גם בתמיכה של הטלפוני SIP בצד השני, ואם הם תומכים בגישה הזו. אבל זה לא פותר את בעיית הגניבה, אלא רק את בעיית "אדם באמצע" (Man In the middle), אשר לא יוכל להאזין למה שקורה, אבל כן לנסות ליצור שיחות בעצמו ולהתחבר בעצמו.

עוד דרך היא לעבוד עם VPN מאובטח. הבעיה היא ש iPhone ללא פריצה אינו מסוגל לעשות דבר כזה למעט SSL VPN של חברת fortigate (אשמח לגלות שאפל מאשרים ליותר vpn מאובטחים לעבוד על הצעצוע שלהם), וAndroid דורש גישת root להתקנה של מרבית ה VPN כדוגמת openvpn, כך שצריך אנשים טכניים בשביל לגרום לדברים לעבוד, ומשתמש "פשוט" שלא רוצה להבין טכנולוגיה ולא רוצה לשנות את דרכיו ורק רוצה שהכל יעבוד בשבילו לא יכול לקבל כלום.

עוד דרך, אשר לא תמנע Man In the Middle אבל תגן על המרכזייה שלכם מגניבת שיחות היא שימוש בכתובת IP קבועה. אז מה עושים אנשים עם כתובת מ DHCP או מבית קפה ? ובכן תמצאו מקום טוב יותר להיות בו, או שתעבדו עם VPN, כל כך "פשוט".

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

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

בישראל 2011 מדינה שולטת בך

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

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

נראה על פניו כי ישראל הולכת לצעוד לקראת דיקטטורה "נאורה" מאשר דמקורטיה "נאורה", אשר אם אתם מקורבים לשלטון תוכלו להנות מפירות ההצלחה, אבל אם אתם רחוקים, ובכן אתם לא קיימים יותר…

עירא כבר כתב הרבה מאוד על מה שיש להגיד על התעודות הביומטרית, אז כל מה שנשאר (כבר אמרתי את זה פעם) זה להתחיל להעיר את כולם רגע לפני, ממש כמו שהעירו את שימי … ו"תודה רבה" למי שמשתף אותי בפרטים הלא חושבים האלו בפגישות עסקים וזה נתקע לי בראש ולא יוצא 😦

בעיית Stack Overflow ב Asterisk עם SIP

שוחרר היום Advisory של חברת Digium אודות Stack Overflow במימוש של SIP במרכזיית Asterisk.

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

במקרה הזה, הבעיה היא במימוש ה URI אשר יוצרים עבור SIP. כך  ניתן באמצעות שימוש ב CallerID לעקוף את גבול ולהריץ קוד "זדוני".

כיצד אפשר להתגונן ? ובכן אם אתם יכולים לשדרג את הגרסה של המרכזייה לאחת מהגרסאות הבאות:

  • 1.4.38.1
  • 1.4.39.1
  • 1.6.1.21
  • 1.6.2.15.1
  • 1.6.2.16.1
  • 1.8.1.2
  • 1.8.2.1

אם לא ניתן לשדרג, אז הנה טריק בנושא:

exten => s,1,Set(CALLERID(num)=${CALLERID(num):0:40})
exten => s,n,Set(CALLERID(name)=${CALLERID(name):0:40})

ובכל זאת מומלץ לשדרג כאשר ניתן את המרכזייה.

לאן הרוח הטכנולוגית נושבת ?

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

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

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

הזרקת קוד

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

הרבה פעמים מערכות אשר לא נחשבות לקריטיות (כלומר ה"ציבור" לא נחשף אליהן), הן הפתח לפגיעה יותר חמורה מאשר מערכות קריטיות (חשוף בעולם האינטרנט). נגיד אם יש לי גישה ל switch מנוהל באמצעות HTTP, ואני מוצא שם XSS או SQL Injection, עד כמה מסובך להשיג את סיסמת המנהל למערכת ? ומכאן עד כמה מסובך לנחש את שאר הסיסמאות למערכות השונות ? עד כמה מסובך לקבל אח"כ "אינטרנט בחינם" או עוד הרבה דברים אחרים, כולל נזק אמיתי לארגון במטרה לעשות לו נזק ?

יותר מזה, הרבה מתכנתים אף פעם לא לומדים להבין את המשמעות של הזרקת קוד, ולא חושבים בכלל לכיוון. כבר שמעתי ממתכנת .NET שמצאתי לו SQL Injection "אבל אתה לא באמת יכול לשנות לי כלום כי יש לי Javascript שמאפשר רק לתווים מסויימים לעבור", ולקח לי 2 דקות להראות לו איך אני עוקף את ה"הגנה" הזו…

העניין הוא שהזרקת קוד זה לא רק Cross Site Scripting (כלומר XSS) או SQL Injection, אלא אני ממש רואה מקומות שמשתמשים ב eval לקוד שמגיע מהמשתמש, או ניתוח קבצי JSON למשל ב Javascript/Python במקום לנתח את הטקסט וליצור מזה מבנה אמיתי בשפה, פשוט עושים קיצורי דרך מסוכנים. תארו לכם שאני יכול להיכנס לשרת שלכם ולעשות כל העולה על רוחי אם אתם מריצים eval (או evil כמו שאני קורא לזה) ולהכניס קוד שפותח לי "שרת" לגישה ישירה ל bash ללא הזדהות וללא שהות, ולפעמים אפילו לקבל הרשאות root עליו.

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

אני מקווה שזה יעזור יותר לאנשים מאשר המאמרים שלי על תכנות בטוח.

הגנה על מערכות VoIP

כמו שכתבתי בעבר בDigital Whisper, יש הרבה דרכים להגן על המרכזייה של הארגון שלכם, או המרכזייה כאפליקציה בארגון.

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

הנה כמה דברים שאתם חייבים להבין על אבטחת מידע בכל מה שנוגע למרכזייה שלכם בנקודות:

  • טלפוניה (ללא קשר לסוג המערכת) רגישה להתקפות כדוגמת Man In The Middle – כלומר מחשב באמצע התעבורה באיזשהו צד יכול לעשות נזק לשיחה או רק להאזין לה בברירת מחדל.
  • טלפוניה רגישה להתקפות כדוגמת DoS – כלומר מניעת שירות. זה יכול להיות מניתוקים רבים של כל בקשה ליצירת שיחה, זה יכול להיות הרבה התקשרויות מעבר למה שהקו או המרכזייה מסוגלים לטפל, זה יכול להיות עוד הרבה דברים שימנעו שימוש בטלפון אצלכם בארגון.
  • ניתוב לא נכון יכול לעלות לארגון הרבה כסף. נגיד שיחות לחו"ל, שיחות למספרים "אסורים" (שעולים הרבה כסף) וכו' יכולים לגרום לכם להיות קורבנות של גניבת שיחות.
  • מתן גישה לכל דורש למרכזייה אומר שאפשר לעשות כל מה שרוצים בה.

אז איך מגנים על המרכזייה ? ובכן אתם יכולים לקרוא את המאמר הקצת טכני שלי שקישרתי למעלה, או להתחיל לנקוט בצעדים הבאים (להתחלה):

  1. כל התקשורת מ ואל המרכזייה מתבצעת רק מהרשת המקומית של הארגון.
  2. כל תקשורת יוצאת ונכנסת חייבת להיכנס דרך VPN מוצפן.
  3. ספקי SIP או VoIP חיצוניים צריכים להיות מאושרים לגשת למרכזייה ברמת ה IP שלהם ורק לפורטים הספציפיים שהם עבור SIP: פורט 5060 ועבור תעבורת המידע של RTP ו SDP בטווח של 10,000 עד 20,000 פורטים. שיטת התקשורת היא UDP.
  4. בתוך הארגון אפשרו למרכזייה להיות ברשת משל עצמה (VLAN) ותגבילו גישה רק לMac Address ידוע של טלפונים מורשים בנוסף לכתובות IP סטטיות מוקצות מראש עבור כל טלפון וטלפון.

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

כמו כן, תוכלו למצוא עוד יעוץ בנושא אצלי בעסק.

שם זמני

כל מי שמתכנת, מגיע באיזשהו שלב למצב בו הוא צריך לשמור בצורה זמנית מידע לקובץ. בשביל זה המציאו את הספריות שנועדו לזה בשמות שונים ומשונים.  עד כאן הכל נחמד. הבעיה היא שיש הרבה מאוד בעיות עם שמות הקבצים הזמניים. למשל אם אני אקרא לקובץ temp1.tmp אז אולי יהיה סיכוי שהוא יהיה קיים כבר. אז מה עושים ? ובכן יש כאלו שמספקים את שם ה pid ביוניקס/לינוקס כשם הקובץ. יש כאלו שמספקים את שם אפליקציה עם ה pid, וכאלו שמספקים מספר של השם האחרון הלא קיים מתבנית מסויימת.

העניין הוא שיש בעיה עם הגישות האלו, וזה שאפשר לגרום למצב בו יהיה DoS או גרוע מזה במכונה. בד"כ ניתן לעשות את זה על ידי התקפה שנקראת Symlink Attach, כלומר יוצרים קובץ שהוא symlink לקובץ אמיתי שקיים, ובעצם התוכנה שחושבת שהיא יצרה את הקובץ, כי הרגע היא ראתה שאין קובץ כזה, משכתבת קובץ אמיתי, נגיד init או bash או אם אין לתוכנה הרשאות, בד"כ (אלא אם ציפו למצבים כאלו של חוסר הרשאות בזמן כתיבה) היא תקרוס, ועוד הרבה בעיות, כולל איבוד מידע שמנסים לכתוב אותו.

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

אבל יחסית מאוד קל לפתור את הבעיה, וזה על ידי 4 או 5 מהלכים פשוטים:

  1. קביעת שם רנדומאלי לחלוטין ולהבטיח שהוא לא קיים
  2. לפתוח את הקובץ שאחרים לא יכולים לגעת בו כל עוד הוא פתוח אצלנו (לא תמיד אפשרי)
  3. בפתיחת הקובץ להגיד לAPI שאסור ללכת לsymlink, כך שתהיה כתיבה ישירה לקובץ ולא למסלול שהוא מצביע אליו.
  4. בדיקה האם הקובץ הוא symlink ואם כן, אז לשנות שוב פעם את השם.
  5. לעגן בצורה מיוחדת את ספריות ה tmp (בהתאם לצורך, יכול להיות ספרייה שונה לגמרי), כך שמראש בהגדרת ה mount אי אפשר לעקוב אחרי symlink.

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

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

"אני בסה"כ רוצה לעבוד קצת על המחשב, לא להיות מהנדס חלל"

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

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

רוב האנשים אינם מוכנים לקחת אחריות וללמוד לעבוד עם המחשב, ולהבין את ההשלכות של השימוש בו ושל הטכנולוגיות אשר קשורות בכלי הזה – קרי לימוד מעמיק של הסביבה והחשיבה שנדרשת בשביל זה. הם כן רוצים שזה פשוט יעבוד להם כמו שהם רוצים. ואז מגיע מצב בו יש התקפה מאוד גדולה על אנשים (במקרה הזה מסיבות פוליטיות/"דתיות" [ובעיקר עסקיות]), ופתאום כולם באים בטענות על "האקרים" תורכים ש"פרצו" לאתרים וקיבלו סיסמאות. העניין הוא שזה כל כך פשוט לגלות את המידע הזה בלי להיות "האקר", "קראקר", "כובע שחור" וכו'…

הרבה מאוד מהסיסמאות ש"נפרצו" היו תאריכי לידה, שמות משתמשים, מקומות, מילים שקיימות במילון רגיל, משחקי אותיות של:

q1w2e3r4t5y6u7i8o9p0

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

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

גילוי סוג הקובץ ברובי

כאשר יש תוכנה שצריכה לקרוא ולהשתמש בקבצים שונים, מומלץ מאוד לבדוק שסוג הקובץ שקיבלנו הוא בכלל מה שאנחנו צריכים.

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

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

דוגמא לשימוש ב ruby-filemagic אפשר למצוא כאן.

אבטחת מידע באסטריסק (ובכלל במערכות VoIP)

ניר סמיונוביץ' מנכ"ל חברת GreenfieldTech התראיין לאבי ויס מ The com על אבטחת מידע בכל הנוגע לאסטריסק ושירותי VoIP. ניר מדבר על אסטריסק היות וזו המרכזייה איתה הוא מתעסק קרוב לעשור, אך מרבית הדברים שהוא כתב, דווקא תקפים לכל מערכות הטלפוניה בכלל, ה VoIP בפרט, לינוקס ומערכות מחשב בכלל, כמו שניסיתי להציג במאמר ב Digital Whispers .

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

איכות מול מחיר

אחת הבעיות הקשות במדינת ישראל מבחינת עסקים היא שקהל העסקים חושב לטווח הקרוב מידי באמצעות הכיס בלבד ללא חזון של 5 ואפילו לפעמים 10 שנים קדימה (גם בתחום המדיני, את האמת ולא רק העסקי). יש בשוק החופשי בישראל הרבה עסקים אשר מעוניינים לשלם כל פעם מחדש 100 ש"ח על מכשיר מסויים 100 פעמים בגלל שהמכשיר מתקלקל וכבר אין אחריות, מאשר לקנות בפעם אחת מכשיר איכותי וטוב ב$200. אז כן, $200 קצת יותר יקר מ 100 ש"ח, אבל לקנות 100 פעמים את אותו מכשיר במקום פעם אחת, עולה הרבה יותר. למעשה 100 פעמים לקנות מחדש מכשיר מסויים שעולה 100 ש"ח יגרום לכם להשקיע 10,000 ש"ח סה"כ, בעוד ש$200 יגרום לכם להוציא (לפחות בזמן כתיבת פוסט זה) רק 760 ש"ח. אז אולי ההוצעה של ה10,000 ש"ח תהיה ב5 שנים, אבל תארו לכם שבמקום לשלם את הסכום הזה ב5 שנים, תשלמו רק 760 ש"ח פעם אחת ? יותר מזה, מה עם זמן העבודה שירד עד שתקבלו תחליף ? למעשה יש תשלום של למעלה מ10,000 ש"ח אחרי ה5 שנים במבט שהוא יותר ממוקד כאשר מחשיבים את הפגיעה בעבודה עצמה ואת המחיר של זה.

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

למשל כאשר אני מנסה למכור מרכזיות אסטריסק (העלות היא החומרה והעבודה שלי בלבד), אנשים לא רוצים לשלם הרבה כסף כי אפשר ללכת לחנות "רגילה" ולקנות מרכזייה באיזה 500-900 ש"ח במקום ב $1000. ההבדל הוא שהמרכזיות ב900 ש"ח אינן גמישות בכלל, ומותאמות למצב הנוכחי שלך בלבד. כל שינוי הכי קטן מהמצב הזה, והכסף שלך מתחיל לנזול בלי הפסקה, דבר שאצלי לא קורה. העסקים אינם חושבים קדימה כאשר מדובר במרכזייה, למרות שמרכזייה זה לא כלי שמחליפים אחת לחצי שנה, אלא כלי שאמור להיות שם לשנים, אז צריך לתכנן קדימה בקשר לגידול ולשינוי צורות עבודה (נגיד מחר מקימים call center של 5 אנשי מכירות דבר שלא היה לפני חצי שנה בכלל על הפרק, אבל יש צורך פתאומי לזה אחרי שהמנכ"ל ו3 משקיעים החליטו בכך ושכנעו את כל הוועד של החברה להקים את זה), מה קורה עם המרכזיות ה"זולות" האלו אז ? אז פתאום המרכזייה כבר לא מתאימה וצריך לקנות מרכזייה חדשה, רק הפעם במקום 900 ש"ח צריך לרכוש מרכזייה "זולה" ב$2000. אם היו משקיעים באסטריסק למשל, שמראש קצת יקרה יותר, ההשקעה היתה "חד פעמית" (למעט דברים ספציפיים). היות והמחיר הולך על חומרה אמינה וטובה, בעוד שהתוכנה מאפשרת לכם להתרחב עד שכמות הזיכרון RAM, מקום הדיסק הקשיח והמעבד של המרכזייה אינם מספיקים יותר לעבודה שלכם, אבל אם לקחתם אנשים כמוני, או עשיתם מחקר לבד ובחרתם בחומרה לטווח ארוך זה לא יקרה מאוד מהר.

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

תכנות בטוח חלק ראשון

אתמול שוחרר חלק ראשון של מאמר שכתבתי אודות נושא עצום, חשוב ובד"כ לא נלמד בשם "תכנות בטוח" באתר  Digital Whisper.

החלק הראשון של המאמר זכה להרבה ביקורת בסגנון של "למה לא הכנסת את נושא X", או "למה לא כתבת איך מבצעים התקפה Y". עוד ביקורת שלדעתי הכי פחות עניינית קיבלתי מכמה אנשים בעלי תארים דווקא (חשוב לציין את זה לדעתי): "כתבת שיש דבר כזה SQL Injection אבל לא כתבת מה זה עושה", למרות שזה היה תחת כותרת של "הזרקת קוד", ואם זה לא מספיק, אז צויין שבהזרקת קוד, מורץ קוד במקום שהוא ישמש בתור מידע… קיבלתי עוד כמה ביקורות כאלו של "לא ברור מה בעיה Z עושה" מאותם בעלי תארים.

מדהים אותי שכל התשובות לכל ההתקפות שחוויתי קיבלו מענה כבר בחלק הראשון של המאמר:

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

‫…

מאמר זה מספק רק הצצה מקדימה על הנושא, אך חשוב להבין כי הנושא "תכנות בטוח" דורש הרבה‬
‫יותר מאשר מאמר שכזה ולכן מאמר זה אינו נחשב לשלם
. עוד חשוב להדגיש כי במידה ואתם מחפשים‬
‫מידע איך להזיק, ”לפרוץ" ולחבל במערכות מבוססות מחשבים, מאמר זה אינו מסייע בכך אלא על מסביר‬
‫איך ניתן להתגונן מפני התקפות שכאלו כאשר כותבים תוכנה.‬
‫ ‬ ‫ ‬ ‫ ‬

איפה יכולות הבנת הקריאה של אנשים לחלק הראשון של הטענות ?

אז הנה החלק השני של הטענות:

כאשר המשתמש מזין קלט לתוכנה היא צריכה לעבוד עם הקלט ולהשתמש בו לצרכיה ומטרותיה. הבעיה‬ ‫היא שכאשר משתמשים במידע בצורה המדויקת בה הוא התקבל, ללא יצירת מסננים או טיפול במידע‬ ‫בעייתי, המשתמש יכול להזין קוד כלשהו (בין אם זה‪ SQL‬או כל קוד אחר), להריץ אותו דרך התכנה‬ ‫ולעשות כל העולה ברוחו באמצעות הקוד שהוא הזריק. 2 דוגמאות מאוד נפוצות בעולם ה- ‪  web‬הן‬ ‫הזרקת ‪ SQL‬ והזרקת ‪ HTML/Javascript‬ (המוכר בשם ‪  Cross Site Scripting‬או ‪  XSS‬בקיצור), אך ישנם עוד‬ ‫סוגים רבים ונוספים של הזרקות קוד שונות.‬

כמו שאפשר לראות, גם כאן יש מענה שלם אליהם.

כך שאולי מישהו יוכל להסביר לי פעם אחת ולתמיד את הבעיה בבקשה ?

מרוב תקלות ואבסורד לא רואים את היער

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

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

אחרי שהצלחתי להבין כי לשם שינוי הוט היו בסדר (זה לא דבר שקורה הרבה אני חייב לציין), ישבתי והתחלתי לחקור את הנושא ב4 רמות שונות. כאשר הכל נכשל, החלטתי לעשות test case ואז גיליתי את הגורם לבעיה. לאחר מכן דיווחתי על זה באג, והאדם האמון על הנושא שקשור לבאג הזה, היה עם אצבע מהירה על ה"סגור" וסיפק תחושה בסגנון של "עזוב אותי באימשך, מה אתה מדווח באגים, זה בכלל פיטצ'ר". בזכות צפריר הבאג נפתח שוב, אבל היות וכל המידע בפנים, ורק צריך לעשות copy paste למה שכתבתי ולקבל את הבאג, אין לי הרבה מה להוסיף, אבל האדם שאחראי על הבאג יותר מעניין אותו הכותרת ששמתי לבאג מאשר כל המידע ששפכתי על הבאג לאחר הכותרת.

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

איך משווים בין מחורזות בג'אווה (הנה כמה אפשרויות) ?

"a" == "a"

"a".equals("a")

"a".compare("a")

ובכן, 2 השורות הראשונות זהות, והן מבצעות השווה של האם instance זהה. התשובה השלישית היא התשובה שאנחנו מחפשים לביצוע השוואה של מחרוזות.

אבל זה לא נגמר כאן. נגיד ואתה מעוניין לעשות wait בתוך טרד רץ. ובכן תאורטית אתה צריך לטפל בחריגה אחת. הבעיה היא שבפועל יש לך עוד חריגה שצריך לטפל בה. ואם היא מתרחשת, אי אפשר לעשות wait אלא Thread.sleep אשר שונה לגמרי בגישה שלו מ wait.

יש לי עוד המון מה להגיד על הזוועה הזו שנקראת ג'אווה אבל הזמן קצר והזעם רב.

יש לי לקוח אשר מחזיק router + ips בכלי אחד של Fortigate. יש לי כמה שרתי לינוקס אצלו ברשת (למעשה שרתים שלו שאני היחיד שנוגע בהם) והשאר זה הכל Windows. נטוויז'ן שמנהלים לו את הכלי הזה, החליטו ש ssh זה פרוטוקול לא מאובטח ולכן אני מחוייב להתחבר ב ssl vpn ואז משם אני יכול להתחבר לאן שאני רוצה ברשת, אם זה rdp או ssh.

כמה בעיות בגישה הזו:

  1. שניהם עובדים על אותו סוג מנהרה
  2. אני עדיין יכול לעשות מה שאני רוצה בתוך הרשת שלו
  3. יש לי עוד שכבה שיכולה/עושה בעיות ומאיטה את הרשת
  4. בשניהם אפשר להחליט איזו סוג הצפנה (עד כמה שאני יודע) אפשר להשתמש
  5. ב ssh אפשר לשים עוד כמה הגנות שאני לא יודע אם אפשר להכניס אותם ל ssl vpn

ככה שאני מאמין בלב שלם שנטוויז'ן טועים בקטע הזה.

בכל מקרה, אני מתחיל להישמע כמו זהבי עם הרבה מאוד עצבים, אז אסיים בזה.

בעיית אבטחה לוגית באסטריסק

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

הבעיה היא מאוד פשוטה לתאור, ומאוד לא פשוטה לפתרון.

במידה ויש לי בתכנית החיוג דבר כזה:

exten => _X.,n,Dial(SIP/${EXTEN})

אז אני יכול להזריק למשתנה EXTEN ערכים שאני רוצה שהוא יכיל, לדוגמא (איך זה יראה אחרי תרגום המשתנה):

exten => _X.,n,Dial(SIP/123@context&SIP/0123456789@anothercontext&DAHADI/g1/03123456789@anothercontext)

ואז במקום שהתכנית תחייג רק ל 123 בפרוטוקול SIP היא תחייג גם ל SIP עם המספר 123456789 וגם תצא לכרטיס טלפוניה בקבוצה 1 עם המספר 03123456789 ובכך הזרקנו עוד מספרים לחיוג.

אבל זה לא הכול, אפשר להזריק כל דבר שרוצים, כך שאפשר לתת הרשאות או הגדרות ל Dial אשר המשתמש הרגיל לא צריך לבצע.

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

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

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

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

ההודעה המקורית ברשימת הדיוור.

לזהות את עצמך או "לך תוכיח שאין לך אחות"

"אדם חכם יודע לפתור בעיות שאדם פיקח יודע לא להיכנס אליהם מההתחלה"

בדיון שפתחתי בwhatsup. יש כיום בעיה בארץ, בה כל תעודת זהות שלישית בארץ זויפה או שוכפלה על ידי משרד הפנים בכבודו ובעצמו, וכך מסתובבות להן הרבה מאוד תעודות זהות עם כפילויות או מזויפות.

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

רוצים להחליף את תעודת הזהות הקיימת שלנו למשהו חדש שזכה לשם "תעודת זהות חכמה", עם מידע שנשמר שם על הזהות של הנושא שלה.

כיום אם מישהו זייף את תעודת הזהות שלי, ומחליפים את תעודת הזהות לתעודת זהות "חכמה", איך משרד הפנים יכול לדעת מי מחזיק בתעודה המזוייפת ומי בתעודה הרגילה ? האם נדרש משפט שלמה ?

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

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

וכאשר יהיה משהו חדש, איך אפשר לדעת אם אותו לא יזייפו (הרי אין דבר שאי אפשר לזייף, הכל תלוי באנרגייה ובתועלת מול זה) ?

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

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

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

רגע לפני …*

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

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

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

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

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

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

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

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

*זהו רק תרחיש אחד מתוך הרבה תרחישים אחרים של מה שיכול להיות לנו בקרוב.

מה האח הגדול יודע עליכם ?

עינבר פרסמה שלגוגל מאוד נמאס מהצבע הורוד שלה, אז החלטתי לבדוק מה עוד גוגל יודע, אבל עלי 🙂

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

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

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

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

Job in security

I have a tendency to look at headers of web sites I constantly visit, or just want to know something more about them.

In one of this lookups, I found the following header (The previous image I took last month had a problem so I took another one today):

secrity_job

If you can detect from what web site this header is, and you are looking for a job, then you can apply to the deleted address 🙂

Oh, and I did give enough clues in this blog to nerrow things down.

אתה האקר ?

אחת לכמה זמן אני נשאל את השאלה של הכותרת.  בפעם האחרונה שנשאלתי את אותה השאלה עניתי את התשובה הבאה: "אני לא פורץ לשום דבר אם זו השאלה". התשובה של אותה ידידה (במקרה הזה) היתה "מה אתה לא מוכן לעזור לי ?". היא בכלל מחפשת כמובן קראקר, ואני ממש לא כזה. אפילו לא מתקרב לרצות להיות כזה. אני פשוט לא !

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

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

אם אתם רוצים למצוא סיסמה, אתתם יכולים לבקש יפה מג'ון שיפרוץ לכם אותה, ואולי אחרי חודש (יכול להיות פחות ויכול להיות יותר) הוא יתן לכם משהו שאולי יעזור לכם.

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

אז לא, אני לא קראקר, אני לא פורץ לשום דבר, ואני רוצה לעזור, אבל במה שאני יכול, ובזה אני לא יכול.