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

מתכנת 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 .

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