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

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

סליקת כרטיסים והאבטחה – שלא קיימת

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

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

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

לקחתי קובץ MDB והחלטתי לפתוח אותו ב-Hex Editor. הקובץ נפתח בלי בעיה. אוקיי, בוא נריץ חיפוש מחרוזות טקסט. כל מספרי האשראי של ויזה בארץ מתחילים ב-4580 אז בוא נחפש 4580 ונראה אם נמצא משהו.

המממ….. (לחצו על התמונה לקבלת גירסה מוגדלת)

card details-in-hex-editor

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

עכשיו מבינים שיש פה חור אבטחה ענק! התוכנה מבצעת את הסליקה עם מערכת של שב”א דרך האינטרנט וכך תאורתית אפשר לפרוץ למכונת ה-Windows (כולנו יודעים כמה Windows “מאובטח”!). כל מה שהפורץ צריך לעשות זה לפרוץ למכונה, להוריד את קובץ ה-MDB (לא צריך לחפש אותו יותר מדי, הוא נמצא בתיקיה תחת שם התוכנה שנמצאת ישירות על ה- :C).

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

הכל מוצפן הא? חיברתי אותה ל-VNC, פתחתי מולה את עורך ה-HEX והראתי לה מה שאתם רואים. תגובתה? “אני לא מכירה את התוכנה שאתה מראה לי כרגע”. אה, בגלל שהיא לא מכירה מה זה עורך HEX, הטיעון שלי לא נכון.

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

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

מה ההמלצות שלי? 2 המלצות פשוטות:

  • חברה טוענת שיש לה PCI? בקשו מסמך המראה את ה-PCI שלהם.
  • אם יש לכם לקוח שעובד עם מערכת סליקה שמתחברת למודם או סולקת לאינטרנט (לא דרך API וובי אלא ממש תוכנה מותקנת במחשב), בדקו אם היא משתמשת ב-Access, ובדקו את קבצי ה-MDB שלה עם חיפוש כמו 4580. אם מצאתם מספרים גלוים, כדאי שתחשבו במהירות על אלטרנטיבה.

עצוב למצוא שבשנת 2011 גם אבטחה של כרטיסי אשראי נעשית בשיטת ה”יהיה בסדר”.

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

כמה מילים לגבי אבטחה, כרטיסי אשראי נטענים

image

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

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

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

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

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

לסיכום: אם אתם רוכשים מוצרים באינטרנט, בין אם זה אתר בארץ או בחו”ל, מומלץ לרכוש כרטיס טעינה חד פעמית. אתרים רבים משתמשים במסלקות ו/או אתרים צד שלישי (לדוגמא: PayPal) כדי לסלוק כרטיסי אשראי. לא כל החברות נוקטות את כל הצעדים הדרושים בכדי לעמוד בסטנדרטים לסליקת כרטיסים (מה שנקרא בעגה המקצועית: PCI Compliance), וחבל שמספרכם יזלוג לידיים לא רצויות ויהיה קשה מאוד לקבל את כספכם חזרה. כרטיס נטען מקטין נזקים במקרה של גניבה, מעניק אנונימיות, ומונע הפתעות כשמגיע הדו”ח החודשי. ההשקעה הכרוכה ברכישת וטעינת כרטיס כזה היא די קטנה ולעניות דעתי – שווה את זה.