אחסון על NAS במחיר זול מאוד

לפני מספר ימים ראיתי שאלה בפורום IT של תפוז לגבי מחירי NAS ואיזה פתרון NAS יתאים לבית.

בבלוג האישי שלי בקטגוריית My-Lab אני כותב פוסטים על בניית NAS לצרכים רציניים, כאשר יש לך בבית 2-3 שרתים פיזיים (שהם PC עם הרבה זכרון וכמות גדולה של דיסקים) ואתה מריץ כמה וכמה מכונות וירטואליות, מה שרוב האנשים כלל לא צריכים.

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

אתחיל בפתרונות ה-NAS הקיימים היום למכירה: הפתרונות הללו יכולים להיות פתרונות טובים, אך הבעיה איתם היא שאתה "נעול" לספק מסוים עם תוכנה מסויימת שהוא מספק לך. סביר להניח שיש לו ממשק מבוסס Web ידידותי נחמד וקל לתפעול, אבל הבעיה המרכזית היא שספקי NAS במקרים רבים "נוטשים" את המוצר אחרי שנתיים פלוס, כך שעדכונים לגירסאות יותר מתקדמות לא תוכל לקבל ועדכוני אבטחה – מגיעים באיחור אם בכלל. במקרים רבים אתה לא יכול גם להחליף את התוכנה אלא אם יש לך ידע מעולה בלינוקס (או FreeBSD), אתה מכיר File Systems של מערכות יוניקס וכמובן – אתה מכיר הגדרות לעומק של שרותים שונים. בלי הידע הזה – אין לך הרבה לאן לזוז..

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

נתחיל במחשב:

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

ASRock   H81M HDSהדבר שמצא חן בעיניי הוא דווקא הלוח-אם של ASRock. מנסיוני הלוחות שלהם כיום הרבה יותר איכותיים מבעבר, ולוח זה יכול לקבל מעבדים עד Xeon E3 מבוסס Haswell בלי בעיה. רק לוודא שיש לך גירסת UEFI אחרונה על המחשב ואתה יכול להחליף מעבד.

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

סה"כ מחיר למחשב: 992 שקל כולל מע"מ.

השלב הבא הוא זכרון. אנחנו לא צריכים הרבה אבל כדאי שיהיה 8 ג'יגהבייט זכרון. מחיר של 2 מקלות DDR3-1333 שכל אחד מהם 4 ג'יגהבייט יעלה לנו 199 שקל ב-KSP, כך שהמחיר ל-8 ג'יגה זכרון יהיה 398 שקל.

עכשיו מגיע החלק החשוב: דיסקים. בעקרון בבית כשהשרת קבצים משמש רק לאחסן תכנים דיגיטליים כמו סרטים, מוסיקה, אחסון ארכיב של גיבויים וכו', אין צורך בדברים כמו RAID-5. מה שכן נשתמש בו לשרידות מבחינת דיסקים הוא Mirror כך שהכל ישמר אוטומטית על 2 דיסקים, כך שאם נדפק דיסק אחד, השני ימשיך לעבוד.

שוב נסתכל ב-ZAP ונראה שם את Western Digital סידרה RED בגודל 2 טרהבייט וגם כאן חברת speed4u מוכרת אותו במחיר הכי זול של 504 שקלים. אנחנו צריכים 2 דיסקים, כך שהמחיר יוצא: 1008 שקלים.

עוד חלק קטן שהוא אופציונאלי הוא דיסק און קי קטן לשמור בו את מערכת ההפעלה (אם אנחנו נשתמש ב- FreeNAS). דיסק און קי בגודל 8 ג'יגהבייט יעלה לנו ב-KSP מחיר של 18 שקלים

סה"כ עלות סופית של הכל: 2416 שקל כולל מע"מ.

אחרי שרכשנו את הכל והרכבנו, מגיע החלק של התקנת מערכת הפעלה, וכאן יש לנו הרבה אפשרויות, נתרכז ב-2 אפשרויות:

  1. אם אתם מחפשים ממשק מבוסס Web קל לתפעול ונותן שיתוף מחיצות, שרות Time Machine (לבעלי ה-MAC) או מקום אחסון לגיבויים יומיים – אז אתם יכולים להשתמש בתוכנת FreeNAS שמבוססת על FreeBSD ומערכת ה-File System שלה היא ZFS ויש לה המון מדריכים ברשת כיצד להגדיר אותה. השדרוגים הם בחינם ותמיד תוכלו לשדרג לגירסה האחרונה, גם אם זה יהיה עוד 3 שנים.
    יתרון גדול של ה-FreeNAS הוא שכשהמערכת עולה, המערכת עולה ל-RAM כך שלא משנה ממש איזה דיסק און קי תשתמשו בו, הכל ירוץ בסוף מה-RAM.
  2. אם אתם מכירים לינוקס טוב, אז אתם יכולים להתקין כל הפצה (שמוגדרת ל-Server) ולהשתמש במגוון כלים כדי להגדיר שיתופי שרותים שונים עם מחשבים אחרים בביתכם. מומלץ לכם להתקין את הלינוקס על אותו דיסק של 500 ג'יגהבייט, ואני ממליץ לכתוב סקריפט פשוט לבצע גיבוי של חומרים חשובים מה-MIRROR אל הדיסק הקטן.

ישנן כמובן אפשרויות נוספות כמו NAS4FREE (שהוא מעין "פיצול" של FreeNAS בגירסה מוקדמת), OpenFiler ויש גם את Nexenta (שיותר מיועדת לאנשים שיש להם נסיון עם ZFS וסולאריס) וכמובן יש את UnRAID שמאפשר לך להרכיב דיסקים בגדלים שונים ולקבל את מקסימום מקום פנוי (בניגוד ל-RAID קלאסי).

מבחינת File System אני ממליץ להשתמש ב-ZFS (מה ש-FreeNAS משתמשת) מכיוון שהיא נותנת אפשרויות לבצע snapshot לפני שינויים, אפשר (ומומלץ מאוד) לבצע איתה Scrub כדי לבדוק אם הדיסקים נמצאים במצב כשיר (פעולת ה-Scrub היא בדיקה של כל הקבצים והתגיות הפנימיים על מנת לוודא שכל הנתונים זמינים ואם לא, המערכת תשתמש במקום פנוי ותוודא שהקובץ זמין ותקין), אך גם מערכות File Systems אחרות כמו EXT4 או XFS הן אמינות לשימוש הביתי מבלי שצריך לעבור קורס מיוחד איך לטפל ב-File System.

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

בהצלחה 🙂

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

במקצועי כפרילאנסר בתחומי וירטואליזציה ולינוקס, יוצא לי לשבת עם לא מעט אנשים הקשורים לניהול ואבטחת מידע, 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 בכרטיס הגרפי שלך). מנסיון פשוט שביצעתי, זה משפר בטיפה, לא הרבה.

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

כמה מילים על פירצת האבטחה של Bash

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

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

נתחיל מה-Web. אם האתר שלך רץ תחת מערכת CentOS או RedHat או SuSE, אז כן – אפשר לפרוץ אם לא תעדכן מיידית את חבילת ה-Bash (פעולת yum update תספיק). שמים לב למשהו? העדכון היחיד הוא ל-BASH, לא לשום אפליקציה אחרת וזאת מהסיבה שדרך BASH המערכת "מרימה" שרותים, וספציפית עם ההפצות הנ"ל מכיוון שבהן ה-Shell (כלומר SH) מקושר ישירות ל-BASH. בהפצות כמו אובונטו או דביאן ה-SH מקושר ל-DASH, כך שמבחינתן זה לא כל כך רלוונטי.

אז עד כאן – העדכון באמת חשוב ויש לבצע אותו.

אבל מכאן ולהיסטריה של Internet Meltdown – המרחק ענק, ברשותכם אסביר.

אם לדוגמא האתר שלך מוגש למשתמשים דרך CDN ואתה מנוי בתשלום ל-CDN כמו Cloudflare העסקי או Akamai או אחרים, הרי שהינך מקבל בחבילה דבר שנקרא WAF (ר"ת Web Application Firewall), ואותו WAF נכון להרגע מעודכן כבר להכיר את הטריק נסיון פריצה עם ה-BASH כך שכל מה שנותר לך לעשות זה להסתכל בפאנל של ספק ה-CDN ולראות איך בזמן אמת מנסים לפרוץ לך … ולגחך. (שימו לב – אני מדבר רק על 2 ספקי ה-CDN הללו. לגבי אחרים – תצטרכו ליצור קשר עם הספק CDN). אני לא טוען שאין צורך לעדכן את המערכת שלך, אלא שאין צורך להיכנס ללחץ.

עדכון החבילה צריך להיעשות על כל הפצת לינוקס. נכון, הפצות מבוססות Debian לא חלה עליהן הפריצה באופן של הפעלת שרות Apache, אבל יש לא מעט שרותים צד ג' שרצים דרך init והשם מפעילים bash בהתחלה (תסתכלו בשורה ראשונה של הסקריפט אם זה משהו שהבאתם מהפצה אחרת). משתמשי אובונטו מוזמנים להסתכל כאן, Debian כאן. אני ממליץ גם להסתכל כאן באתר של רד-האט איך לעדכן וגם איך ניתן לבצע workaround עם mod_security.

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

אז זהו. שלא.

נתבים ושאר ציודים שנותנים ממשק Web אינם משתמשים בד"כ בחבילות שנמצאות בהפצות לינוקס. אף נתב לא מגיע עם Apache אלא אפליקציה אחרת שמגישה דפים ובכל הקשור ל-BASH, בכל הקופסאות משתמשים באפליקציה שנקראת Busybox שמאפשרת לבצע פעולות shell, אך הפריצה הזו אינה חלה עם שום גירסת Busybox.

כך שאפשר קצת לנשום לרווחה.

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

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

כמה מילים לגבי שדרוג ל-RHEL-7/CENTOS-7

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

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

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

ניקח לדוגמא את מערכת SystemD, זו מערכת חדשה שמחליפה את SysV הישנה שהיתה עד כה בהפצות לינוקס. ב-RHEL-7 אין יותר SysV ואי אפשר במחי פקודת yum להעיף את systemd, היא משובצת לאורך ולרוחב ההפצעה, מה-Boot ועד ה-Login ונוגעת בכל החלקים, כולל שרותים (Services), לוגים וכו'. כל פורום לינוקס רציני שתבקרו בו, תמצאו ויכוחים ופיצוצים בעד ונגד SystemD, ואפשר למצוא בכל מיני מקומות "בעד" ו"נגד" כאשר אנשי יוניקס ותיקים רוקעים ברגליים ורוצים את Sys V init בחזרה ולעומתם רבים אחרים מסבירים את יתרונות ה-SystemD (כאן לדוגמא). הסיבה העיקרית שרד האט (ולאחרונה גם הפצות אחרות כמו אובונטו הבא) עוברים ל-SystemD זה התמודדות עם הצרכים של היום שלא היו בעבר. כיום יש מספיק מקרים שבהם אתה מכניס ציוד בצורה "חמה" (כלומר ללא כיבוי והפעלה) ובמקרים של שרתים יקרים מאוד גם ציוד שבעבר לא היה ניתן להכניס בצורה חמה כמו מעבדים, זכרונות, והתקנים נוספים (גם כרטיסי PCI-E), ומערכות Sys V init שהיו צריכות סקריפטים מסובכים ו-1001 ספריות ו-daemons שונים כדי להתמודד עם זה – הכל הוחלף ב-SystemD. יש לו Journal (מערכת לוגים משולבת) שנותנת לך לראות בפקודה אחת פשוטה סטטוס יותר מפורט של שרות, אם הוא לא עלה, מדוע הוא לא עלה – מבלי שתשב ותכתוב תוך כמה דקות/שעות (תלוי בכשרון שלך) משהו שינפה את הפלט של dmesg או var/log/messages/ או קבצי לוג אחרים.

ב-RHEL-7 (וכמובן CentOS-7), בשונה מגרסאות לינוקס ל-Enterprise הכל השתנה, החל מה-Kernel שהוא גירסה 3 (בעבר 2.6), המשך ב-Boot (כיום GRUB-2 a שהוא הרבה הרבה יותר מורכב מה-GRUB הראשון), דרך שפות פיתוח, ממשק גרפי, טיפול בציודים, הגדרות רשת, דיסקים, File System וכו', מה שאומר שאם תיקח שרת שרץ עליו RHEL-6 ותעביר אותו לגירסה 7, יש סיכוי רב שחלק מהדברים לא יעבוד או שהמכונה אפילו לא תעלה (כבר יצא לי לראות שרת שמישהו החליט שזה רעיון מעולה לשדרג אותו דרך YUM מ-CentOS 6.1 ל-7 ובסופו של דבר נשאר שרת יקר אבל שלא מצליח לעשות אפילו Boot).

RHEL-7 לפיכך אינו מתאים לשדרוג דרך YUM או דרך בחירת "שדרוג" כשעושים BOOT ל-ISO. במילים אחרות אל תסמכו על ה"שדרוג" הזה. הוא בהחלט ישדרג את קבצי ה-RPM, אבל יש מספיק דברים שהשתנו לגמרי בין 6.5 ל-7. סתם דוגמא: מריצים שרת Apache? מריצים מודולים שקימפלתם? תתפלאו – ב-RHEL-7 האפאצ'י הוא גירסה 2.4 ומודולים רבים לא מצליחים להתקמפל מולו, וחלק מהמודולים האחרים מתקמפלים אבל נופלים בעת העלאת שרות ה-Apache. כיף!

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

  • תחנות Desktop/Workstations שמריצים תוכנות סגורות (שרטוט תלת מימד, קומפיילרים קנייניים, תוכנות IDE קנויות וכו') – לא לשדרג כרגע ל-7. תוכנות סגורות רבות עדיין אינן מתאימות לגירסה 7. אגב, שדרוג לגירסה 6.6 יצא בקרוב, אם בא לכם, אתם יכולים לשחק עם ה-Beta כאן.
  • תחנת שמריצות דברים בקוד פתוח – מומלץ להרים מכונות VM נסיוניות (לא שדרוג) עם האפליקציות ולתת למפתחים לשחק עם זה כמה ימים כדי לראות מה פעיל ומה שבור.
  • שרתים – גם כאן, אני ממליץ להרים מכונת VM ריקה עם RHEL-7 ולהתקין עליה את האפליקציות ולראות מה עובד ומה לא עובד. מצאתם שהכל עובד? אל תשדרגו עם הכלים של רד-האט, עדיף שתפרמטו ותתקינו מחדש, ועל כך תיכף ארחיב.
  • מכונות קומפילציות, Hadoop ושאר דברים יעודיים – נסו עם מספר מכונות VM להרים חווה קטנטנה כדי לראות שהכל עובד, כולל Stress Testing. קצת אחרי ששוחררה RHEL-7 היה באג רציני שתוקן באחד העדכונים.

כפי שציינתי לעיל, בשדרוגים יש סיכוי גבוה שמעבר מ-6.5 ל-7 (או גירסה מוקדמת יותר ל-7) דברים ישברו מבחינת סימנים (Symbols), תאימות בינארית (צורך בהתקנת compat למיניהם) ולכן אני ממליץ להקים את המכונה מחדש. לשמור את כל ה-DATA בנפרד ולהתחיל התקנה מחדש (ובהזדמנות להתחיל לחשוב על שימוש יותר מאסיבי עם Kickstart למי ש…אהממ… עדיין עובד עם ה-ISO). ישנם מערכות File Systems חדשות ויותר יציבות שיודעות לטפל בכמות הרבה יותר גדולה של קבצים – כמו XFS של סיליקון גרפיקס (בברירת מחדל אם לא תגדיר ידנית, RHEL תפרמט את הדיסק שלך ב-XFS). ה-LVM עבר שיפור (בבקשה, בבקשה, חדל מההתקנה של כל מערכת ההפעלה יחד עם הקבצים של המשתמש וה-SWAP הכל תחת Partition יחיד!), אם אתם משתמשים בחברה ב-Active Directory אז תוכלו ישירות מההתקנה להגדיר חיבור לדומיין ואת המשתמשים, וישנם שיפורים רבים נוספים, ובכלל, מומלץ לקרוא לעומק את ה-Installation Guide.

אם אתם הולכים להתקין את ההפצה על וירטואליזציה כמו HyperV או ESXI, אז אני שמח להודיעכם שאין צורך להתקין שום תוספים (ולא, גם לא VMWare Tools). הכל מגיע עם ההפצה בהתקנה רגילה, כך שאינכם צריכים להתקין כלום. למשתמשי HyperV – הבאג המעצבן של NFS עם NetApp על CentOS (המתנה של כמה עשרות שניות בין פקודה לפקודה) – תוקן ע"י רד-האט בתוך ההפצה. משתמשי ESXI – אתם תראו שה-TOOLS מופיעים כ-3rd Party, זה בסדר, הכלי שמותקן בפנים ושמפעיל vmtoolsd נעשה בשיתוף המהנדסים של VMWare.

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

לסיכום: כן, דברים השתנו לחלוטין בגירסה 7, אבל מה לעשות, דברים משתנים וטכנולוגיות והגדרות משתנות. אי אפשר להישאר כל הזמן בעבר. הטכנולוגיה היום דורשת פתרונות יותר דינמיים, הצרכים משתנים והפתרונות גם. נכון, לסקריפטולוגים מביניכם שקיצרו את העבודה היום יומית שלהם לפקודות של 3-4 אותיות תהיה קצת עבודה לשנות את הסקריפטים (לחובבי פייתון – הגירסת ברירת מחדל עכשיו היא 2.7 עדיין, אבל זו הגירסה האחרונה שתתן אותו כברירת מחדל. הגירסה הבאה תקפוץ ישר ל-3.4 או מה שיהיה אז), אבל מבחינת SystemD עדיין סקריפטים שמשתמשים ב-chkconfig, service וכו' יוכלו לרוץ, תסתכלו במסמך הזה אך יחד עם זאת, תתחילו להכין את הסקריפטים שלכם ל-SystemD. לא לשכוח גם להוסיף את ה-REPO הזה.

בהצלחה

ושוב מנסים למכור שמן נחשים

בתחילת השבוע (27/7) החלה התקפת DDoS רצינית על בזק בינ"ל, מה שגרם לכך שאתרים כמו "וואלה" לא הגיבו אפילו לרמה של DNS Resolve ללקוחות בזק בינ"ל ולספקים נסמכים (018, אינטרנט רימון ואחרים). בזק בינלאומי לא היו היחידים שמותקפים חזק (אם כי הייתי קצת מופתע – לבזק בינלאומי יש קו של כמה טרה מחו"ל לארץ בבעלותם), גם נטויז'ן חטפה חזק שבוע שעבר, וגם פרטנר ואחרים. בד"כ התקיפות האלו החזיקו כמה שעות עד שהם נפתרו בפתרונות שונים.

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

ובמקרים רבים הציוד נקנה לשווא.

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

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

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

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

הפתרון לסיטואציה זו מורכב מ-2 חלקים:

  • יצירת קשר עם ספק האינטרנט שלך ובקשה לניתוק זמני מחו"ל. מכיוון שרוב מוחלט של התקפות ה-DDOS מגיע מחו"ל, ההתקפה תיפסק מיידית ומי שיספוג אותה הוא ספק האינטרנט שלך.
  • שימוש בקו DSL יחיד או כפול (עם IP קבוע ולא דינמי) עם QoS עצמאי ברמת המתג שלך לקבלת מיילים ומשלוח, ואם יש לך 2 קווים, הקו השני יכול לתת שרותי גלישה לעובדים (שוב, QoS כדי לעצור כל מיני Uploads מופרעים). אגב, אם משתמשים בפתרון כזה, חשוב להכניס את ה-IP הקבוע של ה-DSL לתוך רשימות ה-MX/SPF/PTR של הדומיין/ים שלכם (כעדיפות משנית, שלישית וכו')

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

עסק עם שרתים שנמצאים בארץ אשר מגיש אתרים לציבור בארץ

גם כאן, כשמתקיפים אותך, הספק יכול לנתק אותך מחו"ל, וקופסא "נגד DDOS" היא מיותרת, ובכל מה שקשור למייל, אפשר להשתמש ב-IP נוסף שדרכו ינותב המייל (לא לשכוח את ה-IP המשני להכניס לרשימת ה-MX לפני ההתקפה), בד"כ ההתקפה מגיעה לשרתי Web, לא לשרתי Mail ולכן תוכל להמשיך לתת ללקוחות שרות קבלת/שליחת מייל אם יש להם client משלהם.

עסק עם שרתים שנמצאים בארץ/בחו"ל אשר מגיש אתרים לציבור בחו"ל
במקרים כאלו, חשוב מאוד להשתמש בספק CDN (כן, גם אם יש לך מספר שרתים בחו"ל משל עצמך). ספק כמו Cloudflare יכול לתת לך בחינם הגנה בסיסית נגד DDoS ובמחיר של 20$ לחודש תוכל לקבל גם הגנה לא רעה על האפליקציה שלך (Web Application Firewall). אם יש לך אתר מאוד גדול שאתה מרוויח ממנו ואתה מותקף תדיר, כדאי שתכיר את התוכנית ביזנס שלהם שעולה 200$ לחודש, אבל מבחינת התקפות אתה מקבל שקט.  (כל התוכניות שלהם נמצאים כאן, ולא – אני לא מרוויח מההפניה. יש כמובן ספקי CDN אחרים, ומומלץ לבדוק את המחירים של המתחרים לפני כן).

אתרים בענן (Google/Amazon/Microsoft)
גם כאן שרות CDN עדיף, מכיוון שהוא "יחטוף" את ההתקפה. גם אמזון וגם מיקרוסופט מציעים שרותי CDN שפרוסים במקומות שונים בעולם אך הם בתשלום נוסף. יוצאי דופן במקרה הזה הם דווקא גוגל, ואם אתה משתמש בשרותי ה-App Engine שלהם, אתה מקבל את שרותי ה-CDN "על הדרך" ללא תשלום נוסף, כלומר אתה תקבל שרות CDN בדיוק באותה רמה שגוגל נותנים עם יוטיוב, תוצאות חיפוש וכו'.

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

בפתרון CDN טוב, מי שחוטף את ההתקפה הוא ספק ה-CDN וספקי CDN רציניים (כמו Cloudflare ואחרים) יש ברשותם קווים של מאות ג'יגהביט ומעלה והם יכולים לעמוד ברוב ההתקפות בלי יותר מדי בעיות. פתרון מקיף לבעיית DDoS צריך לכלול אלמנטים נוספים שספק ה-CDN יכול להצביע עליהם (אם לדוגמא אני מחליט "להתלבש" על קבצים שספק ה-CDN שלך לא עושה להם Cache כמו סרטים וכו'), הם דואגים להחביא את ה-IP הישיר שלך, לנהל את ה-DNS שלך בצורה מוגנת ועוד. כיום אותם פתרונות של CDN טוב יכולים לעלות מ-0 דולר לחודש (הגנה בסיסית) עד כמה מאות דולרים (לאתרים גדולים ומורכבים), אז לפני שאתה מתפתה לרכוש קופסא (שתעלה לך כמה אלפי דולרים + עוד כמה אלפים כל שנה), בדוק פתרון CDN טוב נגד הצרות הללו ותחסוך לעצמך כספים וכאבי ראש.

תכירו את Docker

homepage-docker-logoלהלן סיטואציה שבוודאי מוכרת לכם מהתשתית אצלכם בחברה: יש לכם שרת שמריץ אפליקציה וכל העולם ואחותו בחברה מתחבר כדי לעבוד על האפליקציה. האפליקציה היא קריטית ויכול להיות שעקב עומס אתה מריץ שרת נוסף, בין אם אתה עושה Load Balancing או High Availability – זה לא חשוב כרגע.

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

כלומר עד כה, ספרנו 5 שרתים שמריצים פחות או יותר את אותה אפליקציה ואת אותה מערכת הפעלה. אם אתם משתמשים בוירטואליזציה כמו ESXI או Hyper-V או Xen – אז אתם מריצים 5 מערכות הפעלה זהות שתופסות לא מעט משאבים, הן מבחינת CPU, הן מבחינת דיסק וכמובן מבחינת RAM, וכנראה גם Storage. אם אתם מריצים את זה על ברזלים אמיתיים, אז התשתית שהסביבה לעיל תופסת היא בערך רבע/חמישית ארון.

וירטואליזציית "ברזל" (כמו ESXI, Hyper-V, KVM, Xen) נתנה לנו משהו מדהים לארכיטקטורת ה-PC (זה היה קיים הרבה לפני כן במערכות IBM ואחרות): תיאורתית אתה יכול לקחת ארון שלם של שרתים ו"לדחוף" את כולו ל-2 שרתים עוצמתיים. החסכון בתחזוקה, בחשמל ובמשאבים. פתאום אתה יכול להרים עוד 10 שרתים וירטואליים מבלי לרוץ ולבקש תקציב נוסף ל-10 שרתים פיזיים עם כל כאב הראש המתלווה לכך.

מערכות הוירטואליזציה האלו הן בד"כ מסוג HyperVisor Type 1. יש גם Hypervisor Type-2 כמו VirtualBox או VMWare Workstation שרצות בעצם על מערכת הפעלה קיימת (בין אם זה Linux או Windows) ואינן ניגשות ישירות ל"ברזל" כמו ESXI ואחרות.

ישנה עוד וירטואליזציה. נקרא לזה "וירטואליזציה אפליקטיבית". גם כאן, הרעיון עצמו ישן והוא רץ שנים רבות על OS/400 (מכירים LPAR?), בסולאריס (Zones), בגרסאות BSD (נקרא Jails) ובלינוקס בזמנו היתה תוכנה מסחרית שנקראה OpenVZ (שהיום גם אם ישלמו לי, עם מקל אני לא נוגע בה!) וכמובן Jailed Root/Chroot בכל מערכת יוניקס/לינוקס והתוספת שהיתה ללינוקס מלפני מס' שנים: LXC. כולן נתנו (מי פחות ומי יותר) בערך את אותו דבר: הרצת אותה מערכת הפעלה כמו ה-Host (או גרסאות קרובות, לדוגמא: Solaris 9 על Solaris 11) בצורה נפרדת ללא צורך בעותק נוסף של מערכת ההפעלה. יתרון ענקי שיש לשיטה זו על פני כל Hypervisor היא המהירות: האפליקציה רצה ב-100% מהירות, כך שכל מכונה וירטואלית בשיטה זו תופסת כמעט כלום מבחינת משאבים (היא כמובן תתפוס לאחר שתמלא את המכונה באפליקציה שלך, אבל עדיין, כמות המשאבים שהיא תצרוך קטנה בהרבה בהשוואה לאפליקציה כזו שתרוץ תחת מערכת הפעלה נפרדת ב-Hypervisor כלשהו).

וכאן אנו מגיעים ל-Docker (שאגב, בקרוב יהיה זמין גם רשמית לסולאריס ע"י אורקל. כך השמועות אומרות).

להלן תרשים של Docker בגירסה 0.9:

Docker Execution Drivers

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

Docker משתמש ב"מילה האחרונה" מבחינת טכנולוגיות לינוקס עדכניות כדי לתת כמה שיותר עוצמה לקונטיינר. כך לדוגמא אתה יכול לקבוע כמות כרטיסי רשתות, כמות זכרון, דיסקים, אתה יכול להשתמש ב-Device Mapper (תודה לאלכסנדר לארסון מ-Red Hat שכתב את המימוש) כך שבעצם קונטיינר ישב תחת Device ממופה, ואותו Device הוא בעצם "דיסק" שאתה יכול לקבוע את גודלו ומה שהכי נחמד – הוא Thin Provisioned ללא "קנסות" בביצועים. (אפשר לקרוא את הפוסט של אלכסנדר על כך כאן). אנחנו יכולים לבצע הגנות על הקונטיינרים עם SELinux ועוד.

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

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

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

לסיום: נקודה חשובה גם למי שמכיר את Docker: החל מגירסה 0.9 Docker כבר אינו משתמש יותר ב-LXC (לא אכנס לנסיבות מדוע. דמיינו לבד..), והאפליקציה משתמשת בספריה משלה (libcontainer) שיודעת לדבר עם דברים כמו libvirt ואחרים.

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

(גילוי נאות: הח"מ נותן שרותים בתשלום על הדרכה והטמעת Docker בחברות וארגונים).

בוקר שחור: TrueCrypt

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

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

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

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

כשבודקים את המפתחות שנחתמו איתם קבצי ה-Installer ל-Windows לדוגמא, מוצאים כי גירסת ה-EXE האחרונה ששוחררה לפני יומיים בלבד משתמשת באותו מפתח שאיתו נחתמה הגירסה מינואר. בדיקת WHOIS ובדיקת DNS מראה כי אין שינויים שבוצעו לאחרונה כך שעניין ההתפרקות הוא אותנטי. בבלוג Kerb On Security כותב הבלוג שופך אור יותר על העניין כולל ראיון קצרצר עם מי שעדיין בודק את הקוד לאחר שאנשים תרמו כסף לקמפיין לבדיקת הקוד אם הוא לא כולל חורים "תודות" ל-NSA ושאר גורמים שמעוניינים להיכנס לתכנים מוצפנים. אני ממליץ להיכנס ללינק ולקרוא שם, לאלו המתעניינים.

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

לכן, ההמלצות שלי בשלב זה הן:

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

אם יהיו עדכונים, אעדכן פוסט זה.

ניתוח פירצת Heartbleed

heartbleed1

יש עדכונים בסוף הפוסט.

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

בפוסט זה אנסה לסכם כמה דברים לגבי הפירצה ולהסביר כמה דברים נוספים לגביה.

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

הפריצה עצמה נותנת "להציץ" בחלק מהתקשורת עצמה, חור בגודל 64K. לא בכולה. בימים האחרונים יצאו הודעות שבעצם חור האבטחה אינו נורא כל כך, הואיל וקשה מאוד לחלץ את המפתח הפרטי (Private key). אחרי הכל – אם יש לפורץ את ה-Private key, לא חשוב מה בעל האתר המוצפן יבצע, עם המפתח הפרטי אפשר להאזין לתקשורת ללא שום בעיה, גם כשהתקלה תוקנה.

חברת Cloudflare ניסתה במשך שבועיים להוציא מפתח פרטי דרך חור האבטחה בשרת טסטים שלהם והם נכשלו ולפיכך הם הכריזו על אתגר – הם הקימו שרת עצמאי עם חור האבטחה ואתגרו את הגולשים למצוא את המפתח הפרטי של השרת. עברו יומיים ו-2 פורצים שונים הצליחו לחלץ את המפתח (לא בקלות – אחד שלך 2,500,000 בקשות והשני 100,000) כך שפתרון הבעיה עצמה ע"י הטמעת טלאי (או עדכון גירסה) אינו מספק ואם יש למישהו מידע חשוב, יש צורך בלהנפיק תעודת SSL חדשה (Re-issue – זה לא עולה כסף). כל החברות שמוכרות תעודות SSL כבר פרסמו הוראות כיצד לבצע זאת.

עדיין, נקודה אחת שחלק גדול לא התייחס אליה הוא עניין ה-Clients. כן, הם גם צריכים עדכון גירסת SSL ואם הם מתחברים מבחוץ דרך https לאתרים שונים, גם הם צריכים עדכון. אפל הודיעה שהמערכות באייפון/אייפד אין להן את הבעיה, אבל אם אתם משתמשים ב-BBM (שרות ההודעות של BlackBerry) אז אתם כן צריכים עדכון (לאפליקציה, שכוללת מימוש OpenSSL משלה). בכל הקשור לאנדרואיד – הגירסה היחידה שכוללת את חור האבטחה היא 4.1.1 (מכשירים של סמסונג ישנים הכוללים אנדרואיד 4.1 כבר כוללים תיקון ל-OpenSSL והם עם אנדרואיד 4.1.2). לחברות פיתוח שמשתמשות בתחנות קצה מבוססות לינוקס (אובונטו, RHEL/CENTOS) – גם את התחנות יש לעדכן אם הן משתמשות בתקשורת החוצה (אחסון בענן, GIT או כל דבר אחר שעובר דרך https). לשם שינוי, הפעם תחנות ושרתים מבוססי Windows לא צריכים עדכון.

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

כמו תמיד, כשצץ לו חור אבטחה גדול, חובבי תיאוריות הקונספירציה מתועררים מריבצם. לא חשוב כמה הבחור שתרם את הקוד נשבע ביקר לו שזו היתה טעות שלו, תמיד יהיו אלו שיהיו בטוחים שהוא עשה את "הטעות" מטעם ה-NSA (שאגב, לפי בלומברג, כבר ידעה על החור כבר שנתיים וניצלה אותו. ה-NSA מכחישים כמובן) ואז כ-ו-ל-ם פתאום שואלים מדוע לא נעשה Code Auditing (בדיקת קוד) והתשובה לכך היא פשוטה: Code Auditing הוא תהליך יקר (תשאלו את הקבוצה שמפתחים את trucrypt), וזה שחברה תעשה בדיקה על קוד של OpenSSL ותכריז "לא מצאנו שום חורים" לא אומר שמישהו יסמוך על הבדיקה הזו (גם פה תמיד יגיע איזה מישהו וימצא שבן דוד של סמנכ"ל הכספים של אותה חברה נראה בפאב יושב במרחק 100 מטר מסתכל על החצאית של מישהי שעבדה ממזמן כמזכירה באיזה ארגון בטחוני ו"בטח יש משהו שם ואסור לסמוך על זה!!") ולכן יש צורך גם בכספים וגם בגוף ניטרלי.

עדכון 1: יובל סיני (ארכיטקט אבטחת מידע בבנק פועלים) מוסיף:

  •  ציודים עם פגיעות: F5 עם ממשקי ניהול כלפי העולם (כלומר הבעיה היא בממשק הניהול, ולא בכל המוצר).
  • Imperva 10.5
  • ב-OpenSSL ישנו חלק שנקרא Heartbeat – בגדול הסוגיה לא קשורה ל OpenSSL, אלא לשיטת עבודה של אפליקציות ב TCP.
  • בעייה דומה הייתה קיימת בעת עבודה עם mod-ssl, ולא כל הארגונים הטמיעו את הפאץ המתאים.

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

עדכון 3: אין שום קשר בין הפריצה הזו ל-SSH. חבילת OpenSSL אין צורך בה לשם הקמת שרת SSH או בשביל SSH Client, והמשכיות התקשורת הרציפה בין מכונות בחיבור SSH נעשית עם keepalive שיש לו קוד שונה לחלוטין מ-Heartbeat.

על איומי סייבר וסחטנות דיגיטלית

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

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

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

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

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

כל נסיון לפתוח את הקבצים הנ"ל יתן תמונה שבה מופיעה הודעה חגיגית כי הקבצים מוצפנים ועל מנת לשחרר אותם, יש לשלם סכום של 500$ בביטקוין ואת ההעברה יש לבצע דרך הרשת המוצפנת TOR. יש לך 48 שעות להעביר את הכסף. ניסית להתחכם ולהכניס קוד שגוי? התוכנה תקצץ לך כמה שעות מה-48 שעות. לא שילמת אחרי 48 שעות? הסכום מוכפל. לא שילמת אחרי חודש? המפתח ימחק ואתה תישאר עם קבצים שלא תוכל לפתוח.

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

… עד שמהנדס כלשהו בסימנטק החליט לגלות לכל העולם ואחותו בפוסט בבלוג של סימנטק שהמפתח נשאר במחשב וגם היכן הוא נמצא. גם אותה כנופיה קראה את הפוסט וב-1/4 הם שחררו גירסה מעודכנת של הנוזקה שמוחקת את המפתח. תודה לסימנטק!

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

מה ניתן לעשות? כמה דברים:

  • כרגיל, אנטי וירוס יעיל יכול לעזור בעצירה של הנוזקה מלהיכנס אל המחשב שלך.
  • גיבוי – אם הינך מגבה לדיסק אחר שמחובר למחשב שלך או לתיקיה אחרת, זה לא מספיק. נוזקה כזו יודעת להיכנס גם לגיבוי כזה ולהשמיד אותו. לפיכך מומלץ לגבות לענן לשרות כמו DropBox או Google Drive שנותנים כמה ג'יגהבייט בחינם, אך הפתרון הכי טוב הוא גיבוי שאינו זמין כ"כונן" במחשב – פתרון כמו של Backblaze יכול להיות טוב למרות שהוא אינו חינמי (5$ לחודש ללא הגבלת מקום). כעקרון – גם גיבויים למקומות אחרים טובים, כל עוד השרות אינו ממופה כ"כונן".
  • קצת מחשבה – מכיר מי שלח לך? אם לא, אל תפתח. אתה סקרן ולא בטוח? שמור את הקובץ ואל תריץ, סרוק אותו באנטי וירוס שלך או בשרות החינמי Virus Total.
  • מאוד מומלץ לעבור משימוש מתוכנות מייל שמותקנות על המחשב למייל מבוסס רשת כמו GMail, Outlook.com, Yahoo Mail. שרותים אלו סורקים כל הצמדה ומונעים הורדה.
  • אם גיבוי – אז גיבוי מלא: ודא שלפחות אחת לחודש יש לך גיבוי של Full Backup ולא רק Incremental.
  • אם הנוזקה הזו דפקה את המחשב שלך, אל תשחזר מגיבויים לפני שהנוזקה מוסרת ממחשבך, אחרת גם השחזור יוצפן.

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