במאמר זה ייבדקו מספר משחקים שמופיעים באתר נענע משחקים, אחד מאתרי משחקי הפלאש הגדולים בארץ.
אין להשתמש בפירצות האבטחה המופיעות במאמר זה ובתגובותיו כדי לגרום כל נזק שהוא, מטרת מאמר זה היא אך ורק להסביר על אפשרויות תקיפה כדי לדעת להגן טוב יותר.
תחום הגנת המידע במשחקי פלאש נועד למנוע משחקן לרמות במשחק, החל מקבלת ניקוד גבוה בלוח התוצאות במרמה ועד קבלת כסף במרמה (במידה ובמשחק ניתן לשחק על כסף אמיתי).
המשחקים שנבדקו הם:
משחק תוכנית הריאליטי ראש בקיר
משחק תוכנית הריאליטי נקמת המחוננים
מבחן IQ
בכל המשחקים שנבדקו נעשה שימוש ב-Packet Sniffer.
Packet Sniffer זוהי תוכנה שמתממשקת למנהלי ההתקנים (Drivers) של כרטיסי הרשת במחשב ומציגה את הנתונים שנשלחים אל הרשת ומתקבלים מהרשת.
לדוגמא אם נכנסת לאתר מסויים, אז תוכנת ה-Packet Sniffer תציג את הבקשה שנשלחה מהמחשב אל השרת שהאתר מאוחסן בו וגם את כל הנתונים (תוכן האתר) שהשרת שלח בחזרה אל המחשב.
מטרת השימוש ב-Packet Sniffer במאמר זה היא לנטר את כל התקשורת שמבוצעת בין משחק הפלאש אל הרשת (לדוגמא כדי לשלוח לאתר מסויים את תוצאת הניקוד של השחקן במשחק).
משחק ראשון: ראש בקיר
ע"י הפעלת תוכנת ה-Packet Sniffer וכניסה לעמוד לוח התוצאות במשחק אפשר לזהות שהמשחק שולח בקשה לכתובת באינטרנט. המשחק שולח את הבקשה על מנת לקבל את רשימת בעלי הדירוגים הגבוהים ביותר כדי להציגם לשחקן.
בתום המשחק נשלחת עוד בקשה לשרת, הפעם כדי לשלוח לשרת את הניקוד של השחקן במשחק. יש בבקשה זו שני פרמטרים חשובים, הראשון הוא winname, שערכו הוא שם השחקן שיופיע בלוח התוצאות והשני הוא winscore שמכיל את הניקוד שיופיע בלוח התוצאות.
לדוגמא: כדי שהשם "ויקטור חסון ובניו" יופיע בעמוד הראשון עם הניקוד 10,000,000 את הערך של winscore צריך לשנות ל-10000000 ואת NAME לשנות לשם "ויקטור חסון ובניו" אבל עם קידוד של Url Encoding.
משחק שני: נקמת המחוננים
ע"י שימוש ב-Packet Sniffer אפשר לזהות שבעת התחלת המשחק, נשלחת בקשה לאתר לקבלת קובץ מסויים.
לאחר פתיחת הקובץ בדפדפן אפשר לראות שהוא מכיל את כל השאלות במבנה XML, כאשר לכל שאלה מופיע גם מספר התשובה, לדוגמא:
<correct>1</correct>
משחק שלישי: מבחן IQ
גם במשחק זה השאלות מתקבלות מקובץ XML חיצוני ביחד עם התשובות.
התשובות נמצאות בתוך ans (קיצור ל-answer), לדוגמא:
ans="א"
סיכוני אבטחת מידע שקיימים במשחקי פלאש
אפליקציות פלאש משתמשות בפורמט SWF.
פורמט SWF הוא פורמט שהמבנה שלו ידוע ולכן אפשר להגיע לכל הנתונים שבתוכו כולל לקוד ה-ActionScript,
קיימות תוכנות הצפנה בשוק שמטרתן לערבל את הנתונים בתוך קובץ ה-SWF ולהקשות על הפיענוח שלהם.
כמו כן, קיימות תוכנות פיענוח בשוק שמטרתן להציג את הנתונים בתוך קובץ ה-SWF, גם אם הוא מוצפן.
מטרות הפריצה האפשריות שונות בין משחק למשחק, לדוגמא:
א. קפיצה אוטומטמית לשלב האחרון במשחק
ב. מקום ראשון בטבלת הניקוד של המשחק
ג. זכייה בפרסים
ד. זכייה בכסף במידה וניתן להמר במשחק
מעבר לפריצה למשחק לשם קבלת הטבה שקשורה למשחק הספיציפי,
ייתכן ומשחק הפלאש יתקשר עם קטע קוד בצד השרת, לדוגמא בשביל לשלוח את הניקוד של השחקן בתום המשחק.
מאחר וקטע הקוד הזה חסוי (או כך לפחות מי שכתב אותו חושב) אז לא בטוח שיושמו בו טכניקות אבטחת מידע (כמו מניעה של SQL Injections)
משחק הפלאש משתמש בפורמט SWF שידוע לכל וגם מתקשר עם קטע הקוד בשרת ולכן אפשר להגיע לקטע הקוד במשחק הפלאש שמתקשר עם השרת, הבנה שלו ולאחר מכן שליחת נתונים לקוד בשרת שלא הייתה ציפייה להם (לדוגמא בשדה הניקוד לשלוח מחרוזת).
במידה וטכניקות אבטחת מידע לא יושמו בקטע הקוד של המשחק בשרת אז הסבירות שאפשר לפרוץ אותו גבוהה ולאחר מכן לפרוץ לשרת, לרשת בה הוא נמצא ולהתקין סוס טרויאני.
סיכום
משחק פלאש הוא תוכנת מחשב ובכל תוכנה קיימות פירצות אבטחה. מכיוון שפלאש היא טכנולוגיית צד-לקוח אז כל מנגנון ההגנה (אם קיים) יהיה בתוך קובץ ה-SWF שנמצא במחשב של המשתמש ולכן כבר מהווה חצי מהדרך לפורץ. אפשר להשוות זאת למשל לכך שהכספת של הבנק נמצאת אצלנו בבית וכל מה שנשאר זה לפרוץ אותה (מאשר אם הייתה בתוך הבנק, מוקפת במצלמות ובשומרים).
אפשר להקשות על הפורץ ע"י שימוש בטכניקות שונות, להלן מספר טכניקות שמסודרות ע"פ רמת קושי, מהקל אל הקשה, ככל שיותר טכניקות הגנה ייושמו כך לפורץ יהיה קשה יותר והסיכוי שיתייאש במהלך ניסיון הפריצה גדל.
א. הצפנת קובץ ה-SWF ע"י שימוש באחת מתוכנות ההצפנה הנמכרות בשוק
ב. הצפנה של כל הנתונים הנשלחים מתוך קובץ ה-SWF אל הרשת וגם כל הנתונים המתקבלים מהרשת
ג. שליחת נתונים פרטיים לקובץ SWF מהשרת רק כאשר קובץ ה-SWF צריך להשתמש בהם, לדוגמא: לא לשלוח את רשימת התשובות למשחק הטריוויה לפני שהמשחק מתחיל, אלא רק בסוף כשהמשחק מסתיים
ד. העברת לוגיקת המשחק לשרת, כך שכל פעולה שהשחקן מבצע תיבדק בשרת האם היא תקינה והאם יכלה להתבצע, במידה ולא אז או שמדובר בבאג או שהשחקן מנסה לרמות
ד. קבלת נתונים שמוגדרים חשובים משרת באינטרנט וללא שמירה שלהם בתוך קובץ ה-SWF ובשרת בדיקה שכתובת ה-IP של הגולש שמבצעת את הבקשה נמצאת בעמוד האתר בו מוצג קובץ הפלאש
ה. הצפנת קובץ ה-SWF בטכניקה שונה מהטכניקות של תוכנות ההצפנה הנמכרות בשוק ע"י כתיבת כלי הצפנה ייעודי ולכן כדי להגיע לקוד בקובץ ה-SWF יהיה צריך לכתוב כלי פיענוח ייעודי