על אבטחת מידע ופספוסים

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

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

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

phoneזהו מכשיר טלפון מבוסס אנדרואיד מתוצרת סינית של חברת Phicomm (עוד שם מדבקה). לטלפון הזה אין תכונות מיוחדות, חוץ מזה שהוא זול בארץ – 469 שקל (ויש לו 1 ג'יגה RAM), ונוסיף לזה עוד 40 שקלים עבור כרטיס מיקרו SD של 8 ג'יגהבייט. המכשיר כבר עם root כך שאין צורך אפילו לפרוץ אותו. כל מה שאני צריך לעשות זה להתקין עליו לינוקס (כ-chroot, כך שלא צריך לפרמט את המכשיר ולהתעסק עם 1001 דרייברים) עם אפליקציה כמו Complete Linux Installer, להוריד את הפצת הלינוקס החביבה עליי ולהתחבר לטלפון עם תוכנת SSH כלשהי (ואם אני ממש מתגעגע לגרפיקה – יש VNC עם האפליקציה).

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

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

אז איך אפרוץ? אני יכול להשתמש בשיטות phishing למיניהם, ואולי אצליח, אבל בשביל מה להתאמץ כל כך? כל מה שאני צריך לעשות זה קצת לעקוב היכן החברה יושבת והיכן אותו מנהל אוכל. אני יכול להגיע לאותה מסעדה, להזמין לי איזו ארוחה ולנצל את העניין שרוב הסועדים מתחברים ל-WIFI של המסעדה. אני יכול לנסות להפיל את הנתב אבל בשביל מה? אני פשוט יכול לקחת את אותו טלפון סיני זול שהזכרתי לעיל ולהכניס את כתובת ה-Gatway של הנתב במסעדה ככתובת IP בטלפון שלי. תודות ל-ARP עם מספר טריקים פשוטים, כל גלישת התעבורה תעבור דרך המכשיר שלי ואני יכול לתת לכולם חיבור אינטרנט.. עם "מתנה" קטנה – אני יכול לסרוק את כל המכשירים – טאבלטים, מחשבים, טלפונים, ולהשתמש בפריצות שיש להם במכשירים (כמובן, אם יש לי גישה ל- zero day exploits אני יכול גם לשתול כל מיני דברים באותם מכשירים). אני יכול "להתחכם" ולא להפעיל את המעקף הזה עד שאותו מנהל יתחיל להשתמש במכשיר שלו ולפי הגלישה שלו לזהות את המכשיר ועליו להפעיל סריקה ונסיונות פריצה, ושוב – לפרוץ למכשיר סלולרי מרחוק אינו דבר כזה מסובך. (תודות לרוב חברות הסלולר, עד שמגיעים עדכוני האבטחה אפשר "לחגוג" לא מעט). מכאן, לא יהיה מסובך למצוא דרך להיכנס למכשירו, להשתמש במגוון החורים כדי למצוא root ולהתקין אפליקציה שתתן לי שרותי טרמינל. באנדרואיד לדוגמא אני יכול להתקין בכלל אפליקציה בצורה מוסתרת כמו webkey (או Prompt ו-VNC ב-iOS) שלא רק נותנת לי טרמינל, אלא גם VNC מלא וכשאותו מנהל יקיש את סיסמתו (או יצייר את ה-Pattern) אני אראה הכל. מכאן, לא חשוב לאן אותו מנהל ילך, אני אוכל להתחבר אליו גם כשהוא בחיבור WIFI וגם בחיבור סלולרי.

לשם מה יש לי צורך להתחבר לסלולרי של אותו מנהל? כי אותו מנהל יתחבר עם Certificate וסיסמא (או רק סיסמא, תלוי במדיניות בחברה) במכשיר שלו, לי תהיה גישה לכל הרשת. כבונוס, לא חשוב מה החברה תריץ כדי לחפש פירצות, הם לא יאתרו מהר את הפריצה שלי כי ההנחה היא שיש וירוס/תולעת במחשב, לא בטלפון. מכאן עד פריצה מהסלולר ל-PC של אותו מנהל המרחק די קצר (ויהיה עוד יותר קצר אם אותו מנהל משתמש ב-USB בחיבור ל-PC שלו). כמה קשה לפרוץ Windows 7/8? לא ממש קשה (שוב, תלוי בגישה שלי ל-zero day). עכשיו אני אאחל הצלחה לאיש אבטחת המידע למצוא את הטראפיק שלי בין ה-PC של המנהל לשרתים ומשם לסלולרי של אותו מנהל (ואם אני ממש רוצה לסבך את איש אבטחת המידע, אני יכול ליצור מעין "Tunnel" בין ה-PC ל-IP של המכשיר הסלולרי של המנהל ומשם לשרת כלשהו שיושב בענן ומשם לפרוקסי ומשם אליי, אבל בסופו של דבר יש לי C&C לא רע בכלל…

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

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

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

  • שרתי WEB – לבדוק את ה-POST (לדוגמא) מהיכן מגיעים נתונים ב-upload ומה הנתונים.
  • קבצי security בהפצות לינוקס.

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

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

כמה עדכונים על וירטואליזציות שונות

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

העדכון הראשון נוגע ל-vSphere גירסה 6 שאמורה לצאת בשנה הבאה. ישנם לא מעט חידושים (כל אחד יכול להצטרף לבטא) ואחד מהחידושים שכבר נכנס בגירסה 5.5 הוא NDDK חדש (ר"ת של Native Driver Development Kit). מי שמעוניין לקרוא קצת יותר מה שכתבו על כך, אפשר לקרוא כאן. אני אתייחס לאספקט טיפה שונה.

טכנית, עד גירסה 5.5 חברת VMWare די "תפסה טרמפ" על הדרייברים שיש ללינוקס. לא, ESXI אינו בנוי עם קרנל של לינוקס, אך ישנה מעין "שכבה" (vmkernel) שמתרגמת בין לקרנל הקנייני של ESXI לדרייברים שכתובים עבור לינוקס. היתרון: כבר ביום הראשון, היה אפשר להתקין את ESXI על כל דבר, כל עוד שזה היה מעבד X86 עם 64 סיביות ותמיכת VT. החסרון: שכבת ה"תרגום" הורידה חלק מהביצועים.

ב-6.0 שיגיע, החגיגה נגמרת. למען האמת, ב-5.5 כל הדרייברים שמגיעים עם ה-ISO הם Native אבל יש עדיין אפשרות להכניס דרייברים ישנים אם קימפלת ויצרת ISO חדש, אך לא תוכל לבצע את הטריק הזה ב-6.0 ולכן "קופסאות לבנות" (PC גנרי) לא יוכל להריץ גירסה 6.0, וכבר ב-5.5 קמו צעקות ש-VMWare העיפה דרייברים לכרטיסי רשת ביתיים.

ה-NDDK הוא קוד סגור ו-VMWare בשלב זה לא מתכננת לשחרר אותו לציבור, כך שיהיה מעניין לראות איך קהילת המשתמשים הביתיים תתגבר על הבעיה (מה עוד שב-6.0 תצטרך להתרגל להשתמש ב-VCSA במקום ה-vCenter שהיה רץ על Windows).

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

אחת הבעיות הגדולות בגרפיקה עם וירטואליזציה – היא המהירות של הגרפיקה. היא פשוט א-י-ט-י-ת. אינטל הוציאה את תמיכת ה-VT-D שמאפשרת לך (תאורתית) למפות כרטיס PCi-E (כמו כרטיס מסך) למערכת הפעלה אורחת. לצערי, התמיכה של אינטל בתוספת הזו היא כמו הליכה בשדה מוקשים: יכול להיות שהמעבד החדש שלך תומך בכך, אבל אתה צריך לבדוק שגם ה-Chipset בלוח האם שלך תומך ושגם ה-UEFI/BIOS בלוח האם שלך תומך, אחרת לא תוכל להשתמש ב-VT-D.

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

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

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

לתוך הבעיה הזו אינטל נכנסה לאחרונה, עם גישה מאוד מעניינת: עד היום, הפתרונות שיש נתנו לך להריץ רק מכונה וירטואלית אחת עם האצה גרפית אמיתית (במקרה של Hyper-V אפשר מספר מכונות עם RemoteFX אך התמיכה הזו מאוד מוגבלת ולא כוללת דברים כמו OpenGL כך ששום אפליקציה רצינית לא תרוץ בצורה מואצת). מדוע שלא נבנה מחדש את כל רעיון ה-vGPU כך שכל מכונה וירטואלית תוכל לגשת למעבד הגרפי (של אינטל, לא מעבדים גרפיים אחרים) ותקבל ביצועים מעולים? אז 3 מהנדסים באינטל עובדים על כך והפרויקט נקרא KVMGT. תוכלו לראות מצגת (PDF) על כך כאן.

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

graph

אינטל כמובן לוקחת את הצד הניטרלי והשינויים יכנסו גם ל-QEMU, גם ל-XEN וגם ל-KVM. זה עדיין כמובן לא אומר שתוכל לרנדר פוטשופ עם כמה מאות שכבות בשניות, וכמובן זה לא ממש יתאים להריץ את המשחקים האחרונים שחונקים את המעבד הגרפי עד שהוא מתחנן לטישו, אבל זהו צעד ענק שאין ספק שיאומץ על ידי פתרונות וירטואליזציה אחרים כמו VirtualBox ואולי גם ע"י VMWare ומיקרוסופט (מי יודע..). בשלב זה המתחרים (AMD ו-nVidia) לא מציגים פתרונות מתחרים, אולם אני מאמין שלחץ מהמשתמשים יגרום להם לחשוב מחדש לגבי פיתוח פתרונות שיאומצו ע"י יצרני פתרונות הוירטואליזציה השונים.

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

עוד עדכונים – בקרוב.