תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

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

תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 01 מאי 2010, 13:19

במאמר זה ייבדקו מספר משחקים שמופיעים באתר נענע משחקים, אחד מאתרי משחקי הפלאש הגדולים בארץ (קישור: http://games.nana.co.il).
אין להשתמש בפירצות האבטחה המופיעות במאמר זה ובתגובותיו כדי לגרום כל נזק שהוא, מטרת מאמר זה ותגובותיו היא אך ורק להסביר על אפשרויות תקיפה כדי לדעת להגן טוב יותר.

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

המשחקים שנבדקו הם:
משחק תוכנית הריאליטי ראש בקיר
משחק תוכנית הריאליטי נקמת המחוננים
מבחן IQ

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

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

קישור לתוכנות Packet Sniffers:
http://www.google.co.il/#hl=iw&source=h ... 123be23137


משחק ראשון: ראש בקיר
כתובת המשחק:
http://games.nana10.co.il/Article/?ArticleID=558632&sid=144&typeid=5&GameN=

ע"י הפעלת תוכנת ה-Packet Sniffer וכניסה לעמוד לוח התוצאות במשחק אפשר לזהות שהמשחק שולח בקשה לכתובת הבאה:
http://games-zone01.nana10.co.il/scores.php?filename=htdata.sco&scoresize=10&viewtype=FLASH
(אפשר להיכנס לכתובת זו בדפדפן ולראות את הנתונים שנשלחים למשחק הפלאש בחזרה)
המשחק שולח את הבקשה על מנת לקבל את רשימת בעלי הדירוגים הגבוהים ביותר כדי להציגם לשחקן.

בתום המשחק נשלחת עוד בקשה לשרת, הפעם כדי לשלוח לשרת את הניקוד של השחקן במשחק. ה-Packet Sniffer עלה גם על הבקשה הזו:
http://games-zone01.nana10.co.il/scores.php?filename=htdata.sco&scoresize=10&viewtype=FLASH&winname=NAME&winscore=12345678&action=INSERT
יש בבקשה זו שני פרמטרים חשובים, הראשון הוא winname, שערכו הוא שם השחקן שיופיע בלוח התוצאות והשני הוא winscore שמכיל את הניקוד שיופיע בלוח התוצאות.
לדוגמא: כדי שהשם "ויקטור חסון ובניו" יופיע בעמוד הראשון עם הניקוד 10,000,000 את הערך של winscore צריך לשנות ל-10000000 ואת NAME לשנות לשם "ויקטור חסון ובניו" אבל עם קידוד של Url Encoding
איך כותבים מחרוזת מסויימת בקידוד Url Encoding? נכנסים ל:
http://www.opinionatedgeek.com/DotNet/Tools/UrlEncode/Encode.aspx
כותבים את המחרוזת, לוחצים על הכפתור ואז מקבלים את המחרוזת בקידוד Url Encoding.


משחק שני: נקמת המחוננים
כתובת המשחק:
http://games.nana10.co.il/Article/?ArticleID=559411&sid=144&typeid=5&GameN=

ע"י שימוש ב-Packet Sniffer אפשר לזהות שבעת התחלת המשחק, נשלחת בקשה לאתר לקבלת קובץ מסויים, נתיב הקובץ הוא:
http://games-zone01.nana10.co.il/nikmat/data/trivia_tournament.xml

לאחר פתיחת הקובץ בדפדפן אפשר לראות שהוא מכיל את כל השאלות במבנה XML, כאשר לכל שאלה מופיע גם מספר התשובה, לדוגמא:
<correct>1</correct>


משחק שלישי: מבחן IQ
כתובת המשחק:
http://games-zone01.nana10.co.il/IQTest/default.html

גם במשחק זה השאלות מתקבלות מקובץ XML חיצוני ביחד עם התשובות, נתיב הקובץ שזוהה ע"י ה-Packet Sniffer:
http://games-zone01.nana10.co.il/IQTest/xml/questions.xml

התשובות נמצאות בתוך ans (קיצור ל-answer), לדוגמא:
ans="א"


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

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

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


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

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

א. הצפנת קובץ ה-SWF ע"י שימוש באחת מתוכנות ההצפנה הנמכרות בשוק (http://www.google.co.il/#hl=iw&q=flash+ ... 123be23137)
ב. הצפנה של כל הנתונים הנשלחים מתוך קובץ ה-SWF אל הרשת וגם כל הנתונים המתקבלים מהרשת
ג. שליחת נתונים פרטיים לקובץ SWF מהשרת רק כאשר קובץ ה-SWF צריך להשתמש בהם, לדוגמא: לא לשלוח את רשימת התשובות למשחק הטריוויה לפני שהמשחק מתחיל, אלא רק בסוף כשהמשחק מסתיים
ד. העברת לוגיקת המשחק לשרת, כך שכל פעולה שהשחקן מבצע תיבדק בשרת האם היא תקינה והאם יכלה להתבצע, במידה ולא אז או שמדובר בבאג או שהשחקן מנסה לרמות
ד. קבלת נתונים שמוגדרים חשובים משרת באינטרנט וללא שמירה שלהם בתוך קובץ ה-SWF ובשרת בדיקה שכתובת ה-IP של הגולש שמבצעת את הבקשה נמצאת בעמוד האתר בו מוצג קובץ הפלאש
ה. הצפנת קובץ ה-SWF בטכניקה שונה מהטכניקות של תוכנות ההצפנה הנמכרות בשוק ע"י כתיבת כלי הצפנה ייעודי ולכן כדי להגיע לקוד בקובץ ה-SWF יהיה צריך לכתוב כלי פיענוח ייעודי
ו. לשים חמסה בפינה ימנית-עליונה של האתר ומידי שבוע לפזר מלח

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

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

קישור למאמר המקורי
נערך לאחרונה על ידי elad בתאריך 30 יוני 2010, 06:07, נערך 8 פעמים בסך הכל.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי בן אור ב 01 מאי 2010, 17:12

אתה יכול להמליץ לתוכנת packet sniffer? כבר הרבה זמן שאני מחפש תוכנה נוחה שתפעל על כל התעבורה שבמחשב
בנתיים אני מכיר רק תוסף ל FF שעושה את העבודה הזאת tamper data
סמל אישי של המשתמש
בן אור
 
הודעות: 159
הצטרף: 14 מרץ 2010, 02:44

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי sasmaster ב 01 מאי 2010, 17:24

קודם כל אחלה מאמר (במיוחד לאלה שמזלזלים ב-security ) . יש לי רק דבר אחד לאמר : " Fu**g "GET . חבר'ה מספיק !עידן הפלאש נגמר, כאשר היינו עושים הכל עם GET POST. תשתמשו ב-WebServices
או ב-RemoteObject בFLEX בשביל לא לחשוף את URL STRING ברבים.

באמת מאמר טוב!
אלעד כבוד!
"This looks like a job for superman"

סמל אישי של המשתמש
sasmaster
 
הודעות: 435
הצטרף: 14 מרץ 2010, 13:58
מיקום: Rechovot

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 01 מאי 2010, 19:02

תודה מיכאל,

בן,
בשביל להכין את המאמר השתמשתי ב: http://www.ieinspector.com/httpanalyzer
אם אתה רוצה להשתמש ב-Packet Sniffer יותר גנרי בשביל אפליקציות אחרות במחשב, אתה יכול להשתמש ב-Ethereal:
http://www.ethereal.com/download.html
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי shvilam ב 01 מאי 2010, 20:12

1. sasmaster לא ברור לי אייך שינו הפרוטוקול יכול להגביר את הsecurity זה רק בפורמט (WebServiese סתם פורמט XML )
ביכלל צריך להבין שכל מה שעובר ברשת זמין לכולם ובטח ללקוח שאליו זה מיועד כך שהכיוונים שציינת הם לא כיוונים הגיונים

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

3. לגבי כלים לראות את התעבורת רשת בשביל לראות את התעבורה -fiddler או httpfox
בשביל לעשות עבודה יסודית בדרך כלל לא נדרש בפיתוח בפלאש http://www.wireshark.org
shvilam
 
הודעות: 148
הצטרף: 14 מרץ 2010, 06:47

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 01 מאי 2010, 20:54

sasmaster התכוון לכך שכתובות ה-URLs לא יהיו רשומות כמחרוזות בתוך הקוד ב-SWF אלא יתקבלו לאחר קריאה ל-WebService.

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

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

מידע נוסף על SQL Injection
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי shvilam ב 01 מאי 2010, 21:16

אלעד לא הבנתי אייך זה עוזר ( אני חושב שזה לא עוזר )
למה לעבוד קשה ולפתוח את ה SWF עם כל כך קל להפעיל sniffer הרי לא משנה מה המקור של הURL
webservie או רשמוים כמחרוזות בתוך ה swf
בסוף המשחק יבצע את הקיראות אלה ותוכל לראות אותם
אלא אם אתה מתכוון שבכל משחק השרת ישלח URLים אחרים
זה רעיון נחמד אבל ואולי זה באמת קצת יקשה לא יותר מזה

אבל כמו שאמרתי אין צורך להתאמץ רק משחק
מספיק שקצת קשה לא צריך להפוך לבלתי אפשרי
shvilam
 
הודעות: 148
הצטרף: 14 מרץ 2010, 06:47

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 01 מאי 2010, 21:29

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

אם קובץ ה-SWF מוצפן בהצפנה כזאת שצריך לכתוב flash decompiler מיוחד בשביל לפענח אותה וגם הפרמטרים שנשלחים לכתובת ה-URL של הניקוד בשרת, מוצפנים עם אלגוריתם שאין גישה אליו, כי אין גישה לקוד ב-SWF.
ואלגוריתם הפיענוח של הפרמטרים נמצא רק בצד-השרת.

אז כדי לפרוץ את ההגנה הזאת יהיה צריך להכין flash decompiler חדש שזה לא כ"כ פשוט, לוקח זמן ומעלה מאוד את רמת הקושי.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 02 מאי 2010, 07:40

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

אלעד תשים לב שכשחשפת את זה גם חשפת על הדרך את הנתיב להורדת הקובץ עצמו של ה TOP10 (תנסה זה לוקח בערך 5 שניות גג לגלות את זה).
כמו שעמית אומר, בסופו של יום הכל עניין של מה האינטרס לפרוץ.
אם זה סתם משחקים שאנשים מעלים, אז קידמת עת עצמך למעלה, לא ביג דיל.
כשאתה מדבר על משחקים שיש להם פוטנציאל של פרסים מרמה כלשהיא ומעלה, אנשים ישקיעו ,אם יש צורך בכך כמובן, יותר משאבים בפריצה,
ככה שגם אם תשתמש ב WEBSERVICE אפשר יהיה להוציא את המידע וזה לא ייתן לך הרבה.
בעקרון דנו בעבר בנושא של איך להגן על משחקי פלאש, היו כמה כמה מסקנות :
1)להעביר את לוגיקת הניקוד לצד שרת.
2)להצפין את קוד ה AS עם כלים שניתן לקנות היום בשוק וחלקם לא רעים.
3)להצפין את הפונצקיות עצמן.
4)לבצע העברה אקראית בזיכרון של נתונים (שמוחזקים בתיבת טקסט לדוגמא), מאחר ועמית כבר העלה בעבר דוגמא לאיך בעזרת כלי כלשהו ששמו לא זכור לי כרגע
ניגשים ישר לזכרון ומשנים ערכים.
5)דירקטור - הכנסה של פלאש לדירקטור היא אופציה, היא היא יקרה במשאבים (CPU) וגורמת לפגיעה בביצועים - לא תמיד נוחה ,בעיקר בדפדפן, מה גם שדירקטור לא יודע להכיל את כל גרסאות הפלאש עד הגירסה האחרונה.
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 02 מאי 2010, 10:29

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

אם משחק פלאש יבצע את כל ההגנות שכתבת עדיין יהיה אפשר לרמות בו, רק רמת הקושי תעלה
המשחקים היחידים בפלאש שלא ניתן לרמות בהם הם משחקים שבשרת מתבצעת בדיקת תקינות של כל מהלך שבוצע בהם
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי Zohar Babin ב 02 מאי 2010, 10:34

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

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

עמית שביל -
אני לא מבין את הגישה שלך. אם מפתח כותב משחק או אפליקציה שאנשים עושים שימוש בה והתוצאות חשובות להם, או שהתוצאות מהוות ערך לזכיות בפרסים או אפילו טרנזקציות כספיות (כמו קניות נקודות במשחק באמצעות כסף אמיתי) - אני חושב שבמעלה ראשונה עליו לדאוג שהפיתוח יהיה יציב ואובטח עד כמה שניתן. בכלל זה הייתי מכניס אחסון מלא של כל החשוב בצד שרת בלבד, תקשורת נתונים מאובטחת (אפשר כמו שמיכאל (sassmaster) ציין באמצעות תקשורת AMF מוצפנת, כגון; RTMPE או פתיחת Socket וכתיבה של פרוטוקול מיוחד). הרבה פתרונות קיימים שלא דורשים הרבה השקעה כספית או הכשרה מקצועית גבוהה מאוד - זה כן דורש מודעות גבוהה ואכפתיות. אני חושב שזה קריטי לדרוש את זה מהמפתחים שלך, במיוחד אם החברה מרוויחה מהמשחק או האפליקציה המדוברים.
Zohar Babin | Kaltura Developer Relations and Community | skype:z.babin | http://www.zoharbabin.com | http://www.kaltura.org
סמל אישי של המשתמש
Zohar Babin
Site Admin
 
הודעות: 376
הצטרף: 10 מרץ 2010, 00:24
מיקום: Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 02 מאי 2010, 10:51

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

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

אלעד אני מסכים, הבעיה שיש בלפחות אחד מהאתרים שציינת יש לדוגמא בעיה של XSS שלא טופלה(לא יודע מה המצב נכון לחודשים האחרונים אני לא עוקב אחרי זה) , אז מה אתה מצפה?
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי shvilam ב 02 מאי 2010, 11:21

עמית שביל -
אני לא מבין את הגישה שלך. אם מפתח כותב משחק או אפליקציה שאנשים עושים שימוש בה והתוצאות חשובות להם, או שהתוצאות מהוות ערך לזכיות בפרסים או אפילו טרנזקציות כספיות (כמו קניות נקודות במשחק באמצעות כסף אמיתי) - אני חושב שבמעלה ראשונה עליו לדאוג שהפיתוח יהיה יציב ואובטח עד כמה שניתן. בכלל זה הייתי מכניס אחסון מלא של כל החשוב בצד שרת בלבד, תקשורת נתונים מאובטחת (אפשר כמו שמיכאל (sassmaster) ציין באמצעות תקשורת AMF מוצפנת, כגון; RTMPE או פתיחת Socket וכתיבה של פרוטוקול מיוחד). הרבה פתרונות קיימים שלא דורשים הרבה השקעה כספית או הכשרה מקצועית גבוהה מאוד - זה כן דורש מודעות גבוהה ואכפתיות. אני חושב שזה קריטי לדרוש את זה מהמפתחים שלך, במיוחד אם החברה מרוויחה מהמשחק או האפליקציה המדוברים.


לא אמרתי שהתוצאות חשבות להם ובטח לא שוות כסף אמיתי עם זה המצב אז זה מצריך מחשבה מסוג אחר
אני כמי שמחליט כיצד לאזן ביין הדברים
החלטיתי ואני עדיין מחליט שאני יעשה את הדברים המינמלים
אני לא רואה בזה עניין קריט לסוג הזה של משחקים
( היה בפורום הקודם את בעיה שהיתה לנו עם שימוש ב cheat engine)
לא אני לא מתכוון להצפין את התקשורת למרות שניתן

ושוב סוג הפרוטקול ברמה שאתה מדבר עליו לא משנה את העניין הרי תסכים איתי שגם פרמטרים ב URL ניתן להצפין
גם socket ניתן להצפין וניתן שלא להצפין כך השאלה כאן היא לא הפרוטרול האלה האם רוצים להצפין את מידע
ועם כן באיזה סוג הצפנה משתמשים המחשבה צריכה להיות שכול מה שעובר ברשת זמין וניתן לקרוא אותו
shvilam
 
הודעות: 148
הצטרף: 14 מרץ 2010, 06:47

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי Zohar Babin ב 02 מאי 2010, 12:02

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

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

אפרופו אבטחת מידע בפלאש - במקרה היום הכרזנו על מפגש משותף עם WebiTalks, בנושא אבטחת מידע ברשת בדגש של פלאש.
Zohar Babin | Kaltura Developer Relations and Community | skype:z.babin | http://www.zoharbabin.com | http://www.kaltura.org
סמל אישי של המשתמש
Zohar Babin
Site Admin
 
הודעות: 376
הצטרף: 10 מרץ 2010, 00:24
מיקום: Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי shvilam ב 02 מאי 2010, 13:20

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

האמתי שאני שלפני כן פיתחתי client ב java script
אז העניין הזה ניראה לי די ברור
shvilam
 
הודעות: 148
הצטרף: 14 מרץ 2010, 06:47

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 02 מאי 2010, 13:26

הוספתי את החלקים:
סיכוני אבטחת מידע שקיימים במשחקי פלאש
וסיכום

מי שחושב שיש משחק פלאש עם מנגנון הגנה שלא ניתן לפריצה שיכתוב קישור אליו :)
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי איתן אבגיל ב 02 מאי 2010, 20:36

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

מי שרוצה יותר מידע בצד המרתק הזה של פלאש יכול להירשם לכאן:
viewtopic.php?f=6&t=292
סמל אישי של המשתמש
איתן אבגיל
Site Admin
 
הודעות: 256
הצטרף: 09 מרץ 2010, 22:10
מיקום: דינאמי = רחובות רמת-גן

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 02 מאי 2010, 21:07

משחקי קזינו, שש-בש ופוקר הם משחקים מבוססי-תור.
אם הם מתוכננים נכון: כל המשחק מנוהל בצד-השרת וצד-הלקוח משמש רק לתצוגה אז יהיה ניתן לפרוץ אותם רק אם תהיה בעיה במימוש הקוד של המפתח/ים, אחרת חבל על הזמן.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי איתן אבגיל ב 02 מאי 2010, 21:19

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

אם אתה עובד יחיד על משחק - יש דרכים להקשות מאוד על האקר ממוצע (ילד בין 14 משועמם) ואף על מישהו שמבין מה זה קליינט ומה עושים עם ניטר תעבורה של הרשת.
סמל אישי של המשתמש
איתן אבגיל
Site Admin
 
הודעות: 256
הצטרף: 09 מרץ 2010, 22:10
מיקום: דינאמי = רחובות רמת-גן

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 08 מאי 2010, 01:35

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

המשחקים מופיעים בעמוד:
http://www.tipo.co.il/media/heinz/gamelist.asp

במשחקים צוברים נקודות, באמצעות הנקודות מקבלים עגבניות ועם העגבניות אפשר לרכוש מוצרים בעמוד:
http://www.tipo.co.il/media/heinz/mall.asp

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

בעת הלחיצה על הכפתור שמבצע את שליחת הנקודות לשרת, אפשר לזהות באמצעות ה-Packet Sniffer שנוצר חיבור לשרת ע"י שימוש בפרוטוקול rtmp,
פרוטוקול rtmp משמש להעברת וידאו, אודיו ונתונים בין שתי נקודות קצה.
שרתים מוכרים שמשתמשים בפרוטוקול rtmp הם: flash media server ו-red5.

הכתובת בשרת אליה מבוצע החיבור היא:
rtmp://flashcomm.tipo.co.il:80/gamezscore/working

flashcomm הוא קיצור ל-flash communication server (השם הקודם של flash media server בגירסאות הראשונות),

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

איך מקבלים את הנתונים האלו?
המספר המזהה של המשתמש הוא מספר קבוע ואפשר לראות אותו ע"י שימוש ב-packet sniffer, לאחר שידעתי מהו המספר המזהה של המשתמש שלי, ביצעתי חיפוש בעמוד html למספר המזהה
ומצאתי אותו כפרמטר Flash Vars של קובץ swf אחר שנמצא בכל אחד מהעמודים של המשחקים, לדוגמא:
CreateFlashControl('ChannelMainFlash', '775', '185', '/images/portal/2006/nav/heinz_bk.swf?candle=-2&tid=1749973&

המזהה של המשחק רשום ב-Flash Vars בשם TipoGameID וגם כמשתנה Get בשורת הכתובת של הדפדפן.

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


עד עכשיו אין הבדל מבדיקת המשחקים הקודמים, אבל כשמנסים להכין אפליקציית פלאש חדשה שתדמה את החיבור לשרת ותקרא לפונקצייה send_score, השרת דוחה את החיבור.
השרת מזהה שניסיון החיבור לא מבוצע מהמשחק. מכאן אפשר להסיק שבעת החיבור נשלחים לשרת נתונים שמאפשרים לו לזהות מי מנסה להתחבר.
אפשר לראות את כל הנתונים שנשלחים עם ה-Packet Sniffer, אבל הם מופיעים בצורה מקודדת, שלא מאפשרת להבין אותם ללא קריאה של מסמך הפרוטוקול rtmp בו יש הסבר מלא לכל השדות ולמבנה הנתונים (קישור: http://www.adobe.com/devnet/rtmp/)
אחד השדות הוא כתובת העמוד בו מופיע קובץ ה-swf. אם משחק הפלאש שולח את כתובת העמוד בו הוא נמצא והשרת מבצע בדיקה שאכן כתובת העמוד היא כתובת העמוד שבו המשחק צריך להיות אז כל אפליקצייה אחרת שתנסה להתחבר לשרת ולא תשלח את הנתון המסויים הזה (כתובת העמוד) לא תצליח לעבור את הבדיקה בשרת והחיבור יידחה ע"י השרת.

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

פיתרון אחד הוא לממש את הפרוטוקול rtmp מחדש באמצעות ActionScript 3 Sockets או בשפה אחרת אבל זה ייקח לא מעט זמן...

פיתרון אחר הוא להשתמש בשפה אחרת שכן תאפשר להגדיר את השדה.

בשלב הזה עברתי ל-C# ו-FluorineFx (קישור: http://www.fluorinefx.com/)
FluorineFx היא קבוצת מחלקות שממשות את פרוטוקול rtmp בדוטנט.
קבוצת מחלקות זו לא מאפשרת לשנות את השדה בו נמצאת כתובת העמוד שמכיל את קובץ הפלאש, אך מכיוון שהקוד של קבוצת מחלקות אלו חופשי (open source), הוספתי את השדה וקימפלתי מחדש.

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

Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
if (Client.referrer.substr(0, 22).toLowerCase() != "http://www.tipo.co.il/")
{
        application.rejectConnection(Client, null);
}
Parsed in 0.028 seconds, using GeSHi 1.0.8.4

קישור לאפליקציית C# ולקור המקור (הקובץ הבינארי נמצא בתיקייה bin/Release/Tipo-Heinz.exe):
http://www.2shared.com/file/6F1f-9KF/Tipo-Heinz.html
נערך לאחרונה על ידי elad בתאריך 09 מאי 2010, 20:38, נערך פעם אחת בסך הכל.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 08 מאי 2010, 15:56

אלעד קודם כל עבדה יפה. :דולפין:
שנית ישנו כלי, שאני לא זוכר את שמו כרגעת שמאפשר לך להאזין גם על HTTPS, ויותר מזה אתה יכול לעצור את התעבורה לשנות ערכים
ולשחרר את התעבורה ככה שהשרת ייקבל ערכים שאתה שתלת (מה שכן אני לא זוכר אם זה מאפשר להאזין ל RTMP :הא: )
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 08 מאי 2010, 16:26

תודה,

אולי יש בו אפשרות להוסיף פרוטוקולים חדשים ע"י המשתמש
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי Zohar Babin ב 08 מאי 2010, 20:47

תכירו את צ'ארלס :צארלס: - תוכנת האזנה שמאפשרת לקבל את כל המידע שעובר ב RTMP, והיא אפילו פותחת את אובייקטי ה AMF ופורסת אותם יפה לקריאה. מעולה לdebugging של אפליקציות שעושות שימוש ב RTMP.
Zohar Babin | Kaltura Developer Relations and Community | skype:z.babin | http://www.zoharbabin.com | http://www.kaltura.org
סמל אישי של המשתמש
Zohar Babin
Site Admin
 
הודעות: 376
הצטרף: 10 מרץ 2010, 00:24
מיקום: Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 08 מאי 2010, 21:52

זוהר לזה התכוונתי תודה:)
טוב לדעת שהוא תומך ב RTMP
ואין ספק שלעשות PAUSE לנתונים לשנות אותם ולשחרר זה דבר מגניב.
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 08 מאי 2010, 22:04

יש לתוכנה הזאת פוטנציאל הרסני
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 08 מאי 2010, 23:01

הרסני ביותר
אם איזה מנהל רשת מחליט לשים את הכלי הזה אצלו
אתה יכול לקרוא על שילוב של הכלי הזה בצירוף הדברים שנאמרים כאן ןתבין את התוצאות ההרסניות של העניין של כלי שנועד לעזור בבסיסו למפתחים ;)
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 09 מאי 2010, 19:18

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

כתובת המשחק:
http://www.moomoo.co.il/campaigns/fingers/flash/

כדי לעדכן את ניקוד השחקן, המשחק מבצע קריאה ב-POST לכתובת:
http://www.moomoo.co.il/servlet/com.atg ... tUserScore

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

מספר המזהה של המשתמש, של המשחק ושל הקמפיין ניתנים לזיהוי ע"י שימוש ב-Packet Sniffer.
מספר הנקודות החדשות ניתן לבחירה ויכול להיות כל מספר, לא מבוצעת בדיקה בצד-השרת.
מבנה המחרוזת שמוצפנת באמצעות SHA1 הוא:
ATARIM_game_id=1&campaign_id=2&user_id=3&points=4ATG

קוד לדוגמא:
http://www.2shared.com/file/faCgUaLl/MoomooFingers.html
נערך לאחרונה על ידי elad בתאריך 09 מאי 2010, 20:37, נערך 2 פעמים בסך הכל.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 09 מאי 2010, 19:52

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

אני מקווה שרק עדכנת את הנוגעים בדבר (מפתחי המשחק), אחרת מחר אתה תראה שם את המספרים קופצים ברמות הזויות :דולפין:
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 02:47

בדיקת אבטחת מידע למערכת הניקוד באתר נענע משחקים: http://games.nana.co.il

אתר נענע משחקים ואתרי משחקים פופולריים אחרים באינטרנט משתמשים במערכת הניקוד של ScorePlug: http://www.scoreplug.com

בכל משחק שעושה שימוש במערכת הניקוד הזאת, השחקן יכול לקבוע לעצמו כל ניקוד שירצה

על מנת להגדיר את הניקוד בשרת, מבוצעת קריאה בפרוטוקול post לכתובת:
http://me1.scoreplug.com/Service.axd?task=setscore

עם הפרמטרים:
Partner ID - מוטבע בתוך קובץ SWF מוצפן, ניתן לזיהוי ע"י שימוש ב-packet sniffer
Game ID - מופיע בעמוד html של כל משחק, במחרוזת הזאת: scoreplugid = "206";
User ID - ניתן לזיהוי ע"י מעקב אחר קוד ה-html ו-js או לחילופין ע"י שימוש ב-packet sniffer
Score - כל מספר

השרת מחזיר:
10 - במידה והדירוג החדש עודכן ללא שגיאה
100 - במידה והתרחשה שגיאה והדירוג לא עודכן

קוד לדוגמא:
http://www.2shared.com/file/xPjXXPFC/ScorePlug.html

קישור למשחק לדוגמא באתר נענע משחקים שמשתמש במערכת הניקוד של ScorePlug:
http://games.nana10.co.il/Article/?Arti ... d=5&GameN=
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 06:10

בדיקת אבטחת מידע למשחק דגני הבוקר של שוגי: http://www.shugifun.co.il/

במשחק זה יש שימוש בפרוטוקול Rijndael להצפנת את כל הנתונים שנשלחים מהשרת למשחק ולהיפך
קישור למידע נוסף: http://he.wikipedia.org/wiki/Advanced_E ... n_Standard

כדי להגיע למצב שיהיה ניתן להגדיר כל ניקוד שרוצים לשחקן מסויים, צריך לבצע רצף של מספר פעולות:
ראשית לקבל את המספר המזהה של המשתמש בעקבות כתובת הדואר האלקטרוני והסיסמא שלו
לאחר מכן קריאה לפונקציית עידכון הנקודות עם הפרטים הבאים:
מספר מזהה של המשחק - יכול להיות 12 ו-22 לחידונים, ו-11,13,21,23 להרפתקאות
מספר מזהה של המשתמש שהתקבל מקריאה לפונקציה הראשונה
ואת הניקוד שרוצים להגדיר לשחקן

לפני קריאה לכל אחת משתי הפונקציות הנ"ל צריך לקרוא לפונקציה נוספת שמחזירה מספר, בו צריך להשתמש כפרמטר לקריאות הבאות

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

מבין כל המשחקים שנבדקו בעמוד זה עד כה, רמת הקושי של משחק זה היא הגבוהה ביותר

קוד לדוגמא:
http://www.2shared.com/file/rWXiONf6/Shugi.html
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 11 מאי 2010, 08:22

דרך אגב ניסיתי את הגישה הפשוטה יותר בתור התחלה שמאפשרת לכתוב לתיבת טקסט בזכרון
מה שאולי חוסך לך עבודת SNIFFING?
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 13:57

באמצעות צ'ארלס?
או debugger?
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 14:35

בעזרת תוכנות כמו CheatEngine אתה יכול לגשת ישירות לתאי זיכרון, לחפש ערכים ולשנות אותם.
זה יחסית פשוט אם אתה שומר את הערכים שלך בצורה פתוחה. לדוגמה עם יש לך ערך points והשחקן יכול לראות שהוא שווה 100 הוא יכול לחפש אותו ולשנות אותו.
זה עובד על הרבה משחקי פלאש שלא שמרו את הערכים הפנימיים מוצפנים בצורה מסויימת.
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 11 מאי 2010, 14:38

באמצעות כלי Cheat Engine
תקרא על הדיון הזה פה

והסבר בוידאו
פלג
 
הודעות: 506
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 15:08

הגנה מפני תוכנות שמאפשרות עריכת נתונים בזיכרון:
ENTER_FRAME / Timer event
ובתוך ה-event בדיקה האם הערך של points שונה, אם כן אז בדיקה האם האפליקצייה שינתה אותו (ע"י שימוש במשתנה בוליאני Toggle)
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 15:11

הרבה יותר קל, ומסודר לדעתי, להפריד את התצוגה מהנתונים. כל פעם שאתה מעדכן את הנתונים אתה מעדכן את התצוגה, אבל זה לא אומר שהנתונים צריכים להישמר באותו פורמט שרואים על המסך. מידע יכול להיות מוצפן לצורך אחסון.
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 15:17

הצפנת נתונים בזיכרון מוסיפה רובד של אבטחה
אבל אלגוריתם ההצפנה/פיענוח נמצא בתוך קובץ ה-swf >> חשוף
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 15:23

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

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

זה בסיסי, אבל יעשה את העבודה
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 15:48

כל עוד תהליך ההצפנה, מורכב ככל שיהיה, או פשוט ככל שיהיה, נמצא בצד-הלקוח אז אפשר לבצע הנדסה לאחור ולהגיע לערך המקורי,
במקרה של הצפנת נתונים בזיכרון, אין ברירה אלא שתהליך ההצפנה יהיה חשוף כולו בקובץ שנמצא במחשב המשתמש
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 15:54

כל דבר ניתן לפריצה.
היכולת לייצר מפתח הצפנה חד פעמי בזמן ריצה עושה את תהליך הפריצה קשה בהרבה (בהרבה מאוד אפשר לומר).
אני אשמח להכין קוד פשוט שמדגים את השיטה אם אתה רוצה לנסות 'לפרוץ' אותו ולשנות ערך פנימי.
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

הבא

חזור אל מאמרים ומדריכים לפלאש ומעבר

 


  • שרשורים בנושאים דומים
    תגובות
    צפיות
    הודעה אחרונה

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ואורח אחד