האם ניתן להגן על מחשב נגד גניבות תוכנה?

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

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

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

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

כאן בדרך כלל כותב שורות אלו מקבל פניות (היו לא מעט כאלו) מהחברה ובה בקשה להצעת מחיר להקשחת מחשב שישלח ללקוח, החל מרמת ה-BIOS, המשך ב-OS ובכל מה שצריך, הכל על מנת שהלקוח הפוטנציאלי לא יפרוץ למכונה ויגנוב את התוכנה..

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

אז מה ניתן לעשות? לשכנע את הלקוח לנסות משהו אחר. אחת ההצעות: מכונה שתהיה זמינה Online.

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

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

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

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

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

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

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

קצת על גניבות קוד, קניין רוחני ועוד

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

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

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

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

חברות רבות נותנות לעובדיהם מחשבים ניידים כדי שיוכלו לעבוד מרחוק (בד"כ דרך VPN) על קוד או על תשתית של החברה (אני אתרכז יותר במפתחים). עובדים שעובדים מהבית בד"כ או שעובדים בצורה גמישה (משרד/בית) משתמשים במחשב הנייד כדי לקבל גישה לקוד (נניח דרך GIT), להוריד שינויים, לבצע שינויים קוד ולבצע Commit ו-Push. עד פה לאף אחד אין בעיה עם זה.

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

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

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

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

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

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

לגטימי? כן.

וכאן יש נקודות שכל סטארטאפ צריך לעשות:

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

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

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

איך שודדים פה בארץ על חומרה

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

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

לי, אישית, קצת נמאס לשלם ל-HP/DELL/IBM מחירים מאוד מפולפלים והחלטתי ש”חץ ביז” יתחיל לבנות שרתים עבור העסק. בשרתים כמובן יהיו חלקים איכותיים, לא לוחות אם שאחרי שנה כבלים מתחילים להתפרק או ספקים ללא שם, אלא חלקים איכותיים (בכל זאת, אנו מתחייבים ל-SLA של 4 שעות על תקלת חומרה וכל תקלה כזו עולה לנו כסף בנסיעות, כח אדם, חלקים וכו’. אגב, אם אתם קונים שרת מספק אינטרנט בארץ, השרות הוא ביום העסקים הבא ולא תוך 4 שעות).

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

דוגמא? בבקשה.

“חץ ביז” עובר בשלבים לעבוד אקסלוסיבית עם מעבדי AMD. מדוע? יותר ליבות וביצועים מרשימים במחירים הרבה יותר נמוכים מההצעות של אינטל. ביקשתי מספקים שונים הצעת מחיר לדילר עבור מעבד Opteron 6176 SE. בשלב זה, כמות קטנה (עד 10 מעבדים).

רק לספק אחד בארץ יש את המעבדים (לא ליבואן הרשמי, אגב, הוא מביא רק מעבדים לדסקטופ של AMD), והמחיר שהוא מבקש? 1175 דולר, מינימום 10 מעבדים, וכמובן לא כולל מע”מ.

בדיקה זריזה בחו”ל העלתה שאני יכול לרכוש את אותו מעבד במחיר ב-389 דולר ועוד 43 דולר משלוח. סה”כ: 432 דולר. מכיוון שאין מכס על מעבדים וציוד מחשב, אני רק אצטרך לשלם את המע”מ. כלומר המוכר בארץ גובה ממני כמעט פי 2 וחצי מארה”ב! וזה אותו מעבד (חדש, לא משופץ ולא משומש)!

חושבים שההבדלים האלו הם רק במעבדים? תחשבו שוב. אותו דבר קורה עם לוחות אם, זכרונות, ספקים, מארזי 2U (שם בכלל המחירים מטורפים!).

עכשיו מבינים מדוע המחירים בארץ (יש כמובן עוד סיבות) גבוהים?

Exit mobile version