הדרך לפרוץ לתשתית הפנימית שלכם

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

כפרילאנסר, אני במקרים רבים צריך לבקר בחברות לצרכי ישיבות בנושאים שונים. באותם מקרים, אין כמובן גישה ל-LAN של החברה בתוך חדר ישיבות ואם אתה רוצה חיבור לאינטרנט, יש WIFI מיוחד ל"אורחים". אתה מתחבר לאותה נקודת WIFI, מקבל מסך EULA, מסכים לתנאים ואז יש לך גישה לאינטרנט ללא גישה לאינטרה-נט של החברה. (לא תמיד. מדהים לגלות כמה אנשי IT משתמשים באותו DNS פנימי גם ל-WIFI שהוא GUEST, ואז כשמראים להם מה ניתן לגלות בעזרת פקודת dig פשוטה – הם המומים).

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

וכאן מתחיל הפספוס הגדול.

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

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

אז מה ניתן לעשות? להלן כמה רעיונות:

  • Whitelist לכל כתובות ה-Mac Address של המכונות בחברה. כן, זה תהליך ארוך ומייגע (אם כי יש כלים ושיטות לאסוף כתובות MAC ולהזין אותם למתגים/נתבים) ולאפשר התחברות אך ורק ל-MAC "מולבן".
  • שימוש ב-Disk On Key. אם האיש המקצועי רוצה להעתיק קבצים לדוגמא, ובדיקת הקבצים לאחר ההעתקה לפני הטמעתם.
  • שימוש בתוכנת Guacamole עם 2FA: אם מקבלים עזרה מבחוץ, זה כלי שבהחלט יכול לעזור. בשיטה זו התקשורת מוצפנת ואינה עוברת באופן "טבעי" (כך שאם יש פריצה לדוגמא ב-RDP, זה לא ממש משנה, כי הכלי בתוך Guacamole אינו חלק מ-Windows), ואם השרת שצריך לתקן הוא Windows, עדיף להשתמש ב-VNC ולחבר אותו ל-Guacamole, כך שתוכלו לראות מה בדיוק נעשה. שימו לב: עניין ה-2FA מאוד חשוב.
  • השתדלו להימנע מלהשתמש בכלי שליטה מרחוק מקומיים (Any desk, Team viewer) – בחברות רבות כלים אלו מותקנים ואינם מעודכנים כלל וכלל, מה שיכול לאפשר פריצה מרחוק "בשקט".
  • אם מישהו צריך להתחבר ב-SSH, תנו לו רק לאחר שתריצו את screen או tmux, כך תוכלו לדעת מה הוא עושה.
  • אל תשתמשו בתוכנות מאתרים ישראליים. במקרים רבים התוכנות שם ישנות ויש להן פריצות. במיוחד לא תוכנות כמו ammyy admin!
  • הנהלת-IT/מנמ"ר/CTO – דאגו להורות כי כל חיבור מחשב חיצוני יחובר רק לאחר שמחלקת אבטחת מידע מאשרת, רק אם אין ברירה ובזמן החיבור שיהיה ניטור LAN מאותה כתובת IP.

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

כשאין נסיון מספק בתחום

בעבר, לאלו שעובדים כשכירים, בתחום ה-IT החיים היו יחסית פשוטים: בדרך כלל היו מחפשים אנשים עם נסיון עשיר ב-Windows, קצת נסיון בתקשורת, נסיון באפליקציות נלוות (אופיס, Exchange, Sharepoint וכו'), אם אפשר – נסיון כלשהו בלינוקס, ויש סיכוי סביר שהיית מתקבל לעבודה. ברוב המקומות, גם אם לא היה לך נסיון מספק ב-Windows אבל עברת איזה קורס והיית מכוון לאיזו משרת ג'וניור ב-IT, היו מוכנים לקבל אותה לאיזו משרה זוטרה.

כפרילאנסר – החיים מאוד דינמיים ומאוד תובעניים. ככל שאתה מכוון ליותר "גבוה" לפרויקטים והזדמנויות רווחיות – אתה צריך "להשיל" תחומים מסויימים בגלל שהשוק באותם תחומים מוצף בעצמאים שיהיו מוכנים לתת מחיר תחרותי מאוד. לדוגמא: תחזוקת מכונות Windows Desktop או תחזוקת שרתי Windows – יש מספיק בשוק שיציעו מחירים של 70-150 לשעה. אם אני אבקש "מאות" שקלים לשעה, ההצעה תידחה ולכן בדברים כאלו צריך לוותר ולכוון לדברים היותר רווחיים – קונטיינריזציה, עננים ציבוריים, כלי CI/CD, אוטומציה, אינטגרציית לינוקס, מערכות  משובצות, HPC, Scale Out, אחסונים גדולים (מעל פטה) ועוד.

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

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

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

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

וכך, כשכיר, בעת הראיון, אתה יכול לאמר את האמת: אין לי נסיון בנושא X מחברה קודמת, אבל יש לי ידע טוב בנושא X ואתה יכול לקרוא בעצמך את הפוסטים שכתבתי בבלוג שלי בכתובת XYZ. בשביל המראיין, הפוסטים האלו מראים את הידע שלך, ואת העובדה שאתה יכול לפתור בעיות. אותו דבר לגבי מפתח – פוסטים עם קישורים ל-Github עם קוד משלך עוזר הרבה יותר מ-1001 המלצות, גם אם מדובר בסקריפט BASH פשוט, באוטומציה פשוטה וכו'. מישהו יכול לראות, להתרשם, ואז להמשיך במסלול עד לחתימת חוזה עבודה איתך.

עוד נקודה לשכירים – להכיר תחומים או דברים מסויימים ברמת ה-Overview וברמת תפעול כלשהי: כשכיר, יש סיכוי שהולך וגודל כל הזמן שתצטרך לעבוד (בין אם ב-IT או ב-Devops) מול ענן ציבורי כלשהו, ורוב החברות עובדות מול ענן ציבורי אחד. יחד עם זאת, יש סיכוי לא קטן שבחברה אחרת שתעבוד, הם עובדים עם ענן ציבורי אחר, ולכן, בזמן שאתה עובד באותה חברה נוכחית, תתחיל להכיר את העננים Azure, GCP, AWS ואם אתה צריך הדרכה אונליין, הנה קישור Referral שיכול לעזור לך להכיר את העננים האחרים, כך שאם ישאלו אותך אם יש לך נסיון ב-AWS לדוגמא, תוכל לענות "כן".

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