2016-04-15

מבוא לאבטחת מידע ("סייבר" ושטויות כאלו...)

אבטחת מידע (Information Security) או בקיצור InfoSec היא הפרקטיקה של הגנה על מידע במערכות, בעיקר מערכות ממוחשבות - אך לא רק.
ממש בשנים האחרונות, הפכו אנשי האבטחה ("גננים") למשהו אחר לגמרי: אנשי סייבר ("מהנדסי נוף"). Fancy Name שהוא בעצם אותו הדבר.


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

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

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

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

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



קצת פרספקטיבה היסטורית


אני ממליץ לכם להשקיע שלוש דקות לצפות בסרטון הקצבי הבא: https://vimeo.com/55183725

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

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

אני רוצה להתייחס לכמה אמירות מהסרטון:

"10,000,000 (עשר מיליון) התקפות מתבצעות ביום על מחלקת האנרגיה בארה''ב"

ההגדרה של התקפה כאן היא נכונה "משפטית", אך סביר שתעתע בצופה שאינו מומחה אבטחה.
התקפה שמתייחסים אליה כאן - היא קריאה בודדת ברשת (פרוטוקולי HTTP, ICMP, TCP, וכו') שכוונתה לגרום נזק. זו יכולה להיות קריאת Scanning (אין בעיה ל Scanner לשבת 24/7 ולשלוח קריאות בכדי ללמוד את הרשת והמערכת שלנו. לרוב הוא יעשה אותן בקצב "מנומס" בכדי שלא יבחינו בו), או ניסיון אקראי לפנות ל API עם פרמטרים שגויים ולראות מה התוצאה.

כלומר: 10 מיליון קריאות עוינות על מחלקת האנגרגיה של מדינה - זה לא כ"כ הרבה: אלו הם לא "10 מיליון תוקפים שניסו באותו היום לפרוץ למערכת". בכל זאת:
  • כ 30% מהתעבורה באינטרנט היא תעבורה עוינת (מקור). 2015 הייתה השנה הראשונה מזה זמן-רב שיותר תעבורה באינטרנט נוצרה ע"י בני-אדם, מאשר ע"י bots.
  • חשוב גם לציין שרוב התעבורה העויינת איננה יעילה - אלו "יריות באוויר" שרק חלק קטן מהן גורם לנזק כלשהו. בכל זאת - המספרים הם מפחידים!

זה לא משחק מחשב!
בקרו ב http://map.norsecorp.com על מנת לראות מדגם מזערי, אך עדני בזמן אמת - של traffic עויין שעובר באינטרנט.
הטראפיק הזה לא עוצר, ולא פוחת, 24/7.



"59% מעובדים שעוזבים את החברה גונבים נתונים בדרכם החוצה"

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

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

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

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

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


"385 חברות בארה''ב חוו פריצה משמעותית למערכות שלהם ב 2010"

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


"בתי חולים בקליפורניה נקנסו ב $675K על כך שנכשלו בעקביות להגן על מידע של מטופלים"

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


"80% מהבנקים לא מצליחים לעצור הונאות לפני שהכסף מועבר"

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

חשוב לי להזכיר שהנטייה הטבעית לחשוב על אבטחת מידע כ Prevention - חסימת התוקף מבעוד מועד, אבל קשת הפעולה של אבטחת המידע היא רחבה הרבה יותר:
  • מודיעין - להאזין לתוקפים וללמוד מה הם מתכננים מבעוד מועד. יש חברות שסורקות פורומים של תוקפים ותמורת תשלום - יעדכנו אתכם במגמות העדכניות אצל התוקפים ו/או כל שביב מידע שהם נתקלו בו שקשור לחברה שלכם.
  • Prevention - בניית קווי הגנה נגד תוקפים פוטנציאלים. שם מושקע רוב המאמץ.
  • Reaction - היכולת להגיב בזמן שהתקפה מתבצעת, ולצמצם את נזקיה. אם ע"י מערכות Alerts ותגובה ידנית, ואם ע"י סקריפטים של תגובה אוטומטית.
  • Forensics ("זיהוי פלילי") - איסוף ראיות על התוקפים (ע"י audits ולוגים, למשל) בכדי לפעול נגדם בחזרה. אלו יכולים להיות צעדים משפטיים, או התקפת-נגד.
    חשבו על מערכת המשפט: היא לא מונעת שום פשע, אך עדיין יש לה תרומה חשובה מאוד בצמצם הפשע בכך שהיא מענישה פושעים לאחר שהעברה כבר בוצעה.

לסיכום ביניים:

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

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


מחירון לפרטי כרטיסי אשראי גנובים. מקור: http://cybersolace.co.uk/2016/04/06/hacking-underground-market




מושגים בסיסיים


ישנם כמה מושגים שחוזרים ועולים כאשר מדברים על אבטחת מידע, וכדאי להבין היטב את המשמעות שלהם:
  • פגיעות / חולשה (vulnerability) היא תכונה של המערכת (מערכת תוכנה או מערכת אנושית) שתוקף יכול לנצל לרעה. פגיעויות ניתן "לחסום"- אך יש לכך מחיר. לעתים קרובות לא משתלם מבחינה עסקית או מבחינת "איכות החיים" לנטרל את הפגיעות - ולכן מקבלים אותה גם כאשר היא ידועה.
    • למשל: למטוסים יש פגיעות שניתן לחטוף אותם ולרסק אותם. ניתן "לבטל" את הפגיעות הזו ע"י הפסקת שימוש במטוסים ע"י האנושות - מה שכנראה לא יקרה. אלטרנטיבה נוספת: ע"י בניית מטוסים מצופים בחומר חסין-התרסקות שייקר את עלות הטיסה פי 2000 - מה שגם כנראה לא יקרה.
    • מה שכן עושים הוא למתן (mitigate) את הפגיעות ע"י אמצעים כלכליים יותר: אבטחה בשדות תעופה, הגנה פיסית טובה יותר על תא הטייס, נהלי אבטחה מחמירים יותר במהלך הטיסה, וכו'.
  • איום (threat) הוא סוג מסוים של התקפה אפשרית. פעולה שתוקף יכול לנקוט.
  • סיכון (risk) הוא הסבירות שאיום מסוים יתממש. בכדי שאיום יתממש יש גם צורך בתוקף שיממש אותו - וגם פגיעות שתאפשר את ההיתכנות שלו.
    • למשל: תוקף יכול לבצע "חטיפה והתרסקות של מקרר ביתי", אך מכיוון שלמקרר ביתי אין את הפגיעות של "התרסקות" - האיום לא יכול להתממש. למקרר ביתי כן יש את הפגיעות של "חטיפה", אבל המוטיבציה לכזו תקיפה היא כ"כ קטנה כך שאנו יכולים בקלות לקבל עלינו את הסיכון הזה.


מקור: pickywallpapers

2016


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

בלי מאמץ מיוחד, קפצתי לאתר Hackmageddon שמבצע סיכום דו-שבועי של התקפות שהתפרסמו באותה התקופה. הנה כמה highlights ממה שמצאתי במהלך חודש (שבועיים מפברואר + שבועיים ממרץ), ויחסית ל Highlights של 2010:



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

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



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


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


סוגי תוקפים


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


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

גם את מידת המומחיות התוקפים ניתן לאפיין ולסווג:
  • Casual Person - אנשים ללא מומחיות טכנית עדיין יכולים לבצע התקפות. דוגמה קלאסית: Insiders.
  • Script Kiddies - אנשי בעלי יכולות טכניות בסיסיות, המשתמשים (הורידו באינטרנט) בכלים אוטומטיים שמישהו אחר הכין על מנת להפעיל התקפות. הם לרוב לא יודעים כיצד הכלים הללו עובדים אך משמשים כמכפיל כח למי שבנה את הכלי.
  • תוקפים ברמת מומחיות בינונית - אנשים בעלי יכולת לכתוב סקריפטים / קוד והבנה בסיסית בעולם התוכנה, היכולים להמציא התקפות משלהם - לרוב לא כ"כ מתוחכמות או פשוט וריאציה משופרת של התקפה קיימת.
  • "האקר" - זהו במקור תואר כבוד למקצועני תוכנה ברמה הגבוהה ביותר, בעלי הבנה עמוקה בכתיבת קוד, מערכות הפעלה, רשתות נתונים, בסיסי נתונים וכו' אשר ממציאים ומיישמים התקפות מורכבות ומתוחכמות. את הכלים שלהם הם לעתים מפיצים לכל דורש - וכך מאפשרים את הקטגוריה של ה Script Kiddies.
    המונח "האקר" כבר איננו באמת אקסלוסיבי ומשמש סבים רבים לתאר את הנכנדים שלהם שיודעים להשתמש בגוגל "הוא מצא לבד את האתר של ביטוח לאומי! הוא ממש האקר!!".



מחירון לשירותי "האקינג" כלליים. מקור: http://cybersolace.co.uk/2016/04/06/hacking-underground-market




הנה כמה דוגמאות להתקפות אפשריות ע"י תוקפים ברמות מומחיות שונות - תקיפות גנריות מסביב לרשת האינטרנט. זה באמת מדגם לא מייצג - רק על מנת להמחיש את הנושא:
  • איומים פוטנציאלים מאדם ללא מומחיות טכנית:
    • גניבת רוחב פס - שכן או עובר אורח ש"זולל" לנו חלק מגלישת האינטרנט.
    • SPAM - שליחת מיילים ללא הסכמת המקבל ובכמויות גדולות.
    • גניבת זהות נקודתית - פרסום פוסטים באתרים / רשתות חברתיות בשם אדם אחר וללא ידיעתו / הסכמתו.
  • איומים מצד משתמש טכני פשוט שמשתמש בכלים שניתן להוריד באינטרנט (מה שנקרא Scipt Kiddie):
    • האזנה לתקשורת אלחוטית של משתמשים אחרים ברשת Wi-Fi או בתא סלולרי זהה.
    • גילוי ססמה של משתמש אחר ע"י keylogger (רכיב שניתן לקנות באינטרנט ומחברים בין המקלדת למחשב על מנת להקליט את ססמת החיבור למחשב)
    • ניחוש ססמה של משתמשים לאתרים ע"י שימוש ב Dictionary Attack (ניסוי כמה אלפי הססמאות הנפוצות ביותר).
  • איומים מצד "פושע אינטרנט" (cyber criminal) - אדם בעל נכונות לקחת סיכונים ובעל רמת מומחיות בינונית:
    • Rogue security software - היכולת לספר לאדם שהמחשב שלו נמצא בסיכון אבטחה (זה יכול להיות סתם פופ-אפ מעוצב באתר) ולדרוש ממנו תשלום על מנת לטפל בה. מסתבר שזה שוק לא קטן...
    • טרנד חם חם היום הוא ה"כופרה" (ransomware) שעשתה לאחרונה עליה משמעותית לקהל דוברי העברית. תוכנה שמצפינה למשתמש את הקבצים במחשב - ודורשת תשלום תמונת מפתח ההצפנה.
    • הפצת תוכנות זדוניות (malware - "נוזקה") למשתמשי קצה. למשל: העלאת משחק או תוכנה נגועה לאתר שיתוף קבצים. התוכנה הזדונית, ברגע שהופעלה יכולה לשלוח לתוקף מידע שנמצא על המחשב (למשל: תיקיית "My Documents" בחלונות) - בתקווה "לדוג" משהו שימושי, או לשמש כבסיס להתקפת Denial of Service ואז בקשת כופר.
    • Phishing - התחזות לאתר לגיטימי, שלעתים נראה 1:1 כמו האתר אליו הם מתחזים על מנת לגנוב מהמשתמשים את הססמאות שלהם (או מקבילה אחרת). אל האתר המזויף ניתן להגיע ע"י קישור בפורום או במייל (קל לביצוע) או ע"י רישום של כתובת דומה מאוד לאתר המקורי שמשתמשים אקראיים יכולים להתבלבל.
      • בווריאציה אחרת: מספיק ה click של המשתמש על מנת לגנוב session של המשתמש לאתר - וביצוע פעולות באתר "בשם המשתמש" (להלן CSRF, Clickjacking)
  • איומים מצד "האקרים":
    • גניבת זהות מלאה: גניבת ושינוי ססמאות לאתרים המרכזיים של האדם (Gmail, פייסבוק, וכו'). מכאן יש קשת רחבה של אפשרויות: שליטה על המייל מאפשר בד"כ אתחול ססמה וקבלת סיסמה חדשה לאתרים רבים. ניתן לגנוב כסף ושירותים, ניתן לדרוש כופר להחזרת הזהות, או לבצע פעולות לפגוע במוניטין (reputation) של האדם שהותקף - כאשר אותו האדם יתקשה להוכיח שלא הוא העומד מאחרי המעשים.
    • גניבת כמויות של נתונים פרטיים של משתמשים מאתרים עסקיים - ופגיעה במוניטין שלהם, עד פגיעה חמורה ביכולת שלהם להמשיך ולעשות עסקים.
    • בעצם... כל מה שתוכנה יכולה לעשות. בהינתן ההשקעה מצד התוקף, פגיעויות קיימות מצד המותקף, וקצת מזל לטובתו של התוקף.


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


סיכום


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

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

שיהיה בהצלחה!




אין תגובות:

הוסף רשומת תגובה