כמה מילים על גניבת מספרי אשראי

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

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

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

חברות כרטיסי האשראי

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

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

לקח בערך דקה אחת לקבל אישור. אפילו לא קניתי תעודת SSL ומבחוינת אותה חברת אשראי אני יכול לסלוק כרטיסים בלי שום בעיה ואף אחד לא בודק לי את הקוד, את ה-DB ושום דבר אחר. מבחינתן, כל עוד אני משלם דמי חבר ומשתמש בשרותיהן, אין שום בעיה, ואף אחד לא יבדוק אם אני מאחסן את פרטי כרטיס האשראי כקובץ טקסט, CSV פשוט או כל פורמט שילד בן 6 יכול לקרוא.

רק לאחרונה החלו חברות האשראי להתעקש על תקן PCI, אבל אם אתם חושבים שזה יעזור, טעות בידכם ותיכף ארחיב על כך.

חברות הסליקה

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

חברות אחסון האתרים

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

בוני אתרים

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

אני רוצה לאמר משהו נוסף על חברות האשראי בארץ.

חברות האשראי נסמכות עכשיו על ה-דבר: תקן PCI לאבטחת מידע של כרטיסי אשראי. יש לי חדשות בשבילכם: זה לא יעזור. תמיד יהיה המתכנת הפוץ שלא מבין בסולאריס או לינוקס והשאיר את הסקריפט שמחייב את הלקוחות בחיוב החודשי עם הרשאות 666 ושהסיסמא ל-DB בתוך הסקריפט (תאמינו לי, ראיתי את זה ולא פעם אחת!) אז פורץ שימצא את הסקריפט הזה ולא חשוב כמה הצפנות קשיחות יהיו לבסיס הנתונים – יוכל בקלות לשאוב את הנתונים, לארוז אותם בקובץ zip ולהעביר אותם לעצמו. לא מאמינים? תנחשו איך גנבו לחברת Stratfor את המידע (וכן, הם עברו תקן PCI) עם מספרי כרטיסי אשראי בערב חג המולד…

לצערי הרב, חברות האשראי בארץ עדיין עובדות כאילו הן נמצאות בשנות ה-90, וכשמסתכלים על Paypal בחו"ל לשם השוואה, זה נראה כאילו מדובר במסע בזמן. ישראכרט לדוגמא, ישמחו לתת ללקוחותיהם Isracard Web, כרטיס וירטואלי עם 16 ספרות, אבל הם לא מצמידים את מספר הכרטיס לחשבון, אלא דורשים שהלקוח יפקיד סכום מסויים והסכום הזה "נתקע" באותו כרטיס וירטואלי. אם שמת 600 שקל והשתמשת ב-300, אז 300 תקועים בכרטיס מבלי שתוכל לעשות שימוש אחר זולת שימוש באותו כרטיס וירטואלי. מה אם בקניה הבאה תצטרך 380 במקום 300? תעבור את התהליך מחדש. פתרון מטומטם או לא?

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

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

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

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

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

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

Comments

comments

12 תגובות בנושא “כמה מילים על גניבת מספרי אשראי

  1. לי בכאל אין עמלה בכלל ,אני משלם לפאיפל בשקלים, ככה שגם אין עמלת מט"ח…..
    משתלם מכל הבחינות!!

  2. קודם כל, אני נענה לקריאתך, כל מי שמעוניין בייעוץ / ליווי / הדרכות / קורסים בנוגע לתכנות מאובטח (ו/או לבדיקות חדירות) מוזמן:
    052-3933580 – ישראל
    [email protected]
    http://appsec-labs.com
    תציינו בבקשה שבאתם מהבלוג פה, סתם בשביל הידע.

    לגבי תוכן הפוסט.
    ראשית, אשמים התקשורת, שמוכרים ש-SSL זה מאובטח. בדיחת השנה! (ואני לא מדבר על הבעיות של SSL שבדר"כ אתרים תומכים בגרסאות ישנות שלה…) אני מתכוון לכך שאם אין SSL, יגנבו לך פרטי אשראי, רק אם תוקפים אותך בזמן הקניה, אם האתר לא מאובטח ושומר פרטי אשראי, פריצה בעוד שנה, עדיין תאפשר גניבה של האשראי. אז אין לי מושג למה כפתרון לפריצת אתרים, מסבירים לכולם על ציורים של מנעול ומפתח.
    שנית, אשמים חברות האשראי, כמו שציינת. אבל אם מישהו חושב שהבנקים הישראליים יותר מאובטחים, ו/או אתרים של גופי רפואה (אני מדבר על הגדולים ביותר, ולא על מתקפות פוטנציאליות בעלי נזק קלוש, אלא XSS, SQLI וכד'), אז הוא לא כ"כ מעודכן.
    שלישית, אשמים נציגנו בכנסת. צריך לאכוף גופי אשראי (וגופי סליקה) ישראליים לעמידה נוקשה בסטנדרטים.

    לגבי VPS / Shared hosting, אל תשכח ש-VPS דורשת תחזוקה שוטפת. לדעתי, תוסיף מוצר לחנות שלך: שרת VPS מאוד רזה (יותר מה-value), מכיל הכל כמו שרת שיתופי (Cpanel וכד') אבל אתה אחראי על תחזוקה שוטפת של עדכונים / פאטצ'ים. המעלה שלו היא לא ביצועים, אלא רק שאין אתר אחר על אותו שרת.

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

    לגבי בדיקת רישיון, ממתי צריך להשיג מאגר בשביל זה?
    החזקת מאגר לא חוקי, היא לא חוקית. ניצול בעיית אבטחה – במקרה הזה היא חוקית 🙂
    יאללה, פוסט עבורך:
    http://sro.co.il/blog/index.php?page=46

    לגבי העיצוב, ת'חדש, אני משער שאתה באמצע עיצובים וזה, תסדר את הדברים הבאים:
    1. הכותרת בגודל קטן מדי, ויבש מבחינה עיצובית. אבל גם שמישות: כותרת בדר"כ היא לינק לפוסט עצמו.
    2. בהמשך להנ"ל המילים חץ בן חמו אינם לינק לבלוג, וכן המילים 2 comments (תסדר style=dir:ltr) אינם לינק לחלק של ההערות.
    3. את המלבן של share/save, שים כ-position:fixed, ככה מי שסיים לקרוא את הפוסט לא יצטרך לעלות עד למעלה בשביל זה.
    למה אתה מפנה לג'ומלה?

  3. Good post. PCI compliance is the pits, I'm saying this as someone who was in charge of the network of a company (abroad) which worked towards it and still had more work to do.

    One question – how do you suggest to let the code on the web server to access the database securely?
    I mean – you can limit it, for instance, to a DB user which can only add sale records but not read the DB. But otherwise how would you secure the access credentials?
    The only way I found was CyberArk but they cost a fortune and just minimize the risk, not eliminate it. 

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

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

  5. חץ – אחלה פוסט, אבל היה חסר לי משהו אחד קטן, ואני אסביר אותו בסיפור שהתוודעתי אליו באופן אישי:

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

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

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

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

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

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

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

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

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

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

    תודה! 🙂

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

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

      • קודם כל תודה לך על תשובתך!

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

סגור לתגובות.