Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse...

14
AppUse ותקיפת צד שרת של אפליקציותAndroid מאת ברק טוילי הקדמה כולנו יודעים שהטלפונים החכמים מכילים הרבה מאוד מידע רגיש עלינו, מכרטיסי אשראי ועד להתכתבויות ב- WhatsApp , מה מיקומנו, תמונות וכו'. כיום אנו רואים התפתחות ממשית בתחום הטלפוניה, בנקים וחברות כר טיסי אשראי מפתחות אפליקציות לניהול החשבון דרכן, אפליקציות צ'ט אשר מכילות היסטוריית שיחות שלנו, והרבה מאוד מידע חשוב שלנו מנוהל ע"י הטלפון החכם. ארכיטקטורת מערכת ההפעלה אנדרויד מאפשרת למתכנת לנהל את המידע בצורה רחבה, לייצר רכיבים נגישים לאפליקציות באותו המכ שיר, לשמור מידע במקומות מסוכנים ובקלות ניתן לנהל את המידע בצורה שגויה. בנוסף לכך, מתכנתים רבים אשר תכנתו עד היום צד שרת, צריכים לפתח אפליקציה אשר היא צד לקוח ואינם מודעים לסכנות האפשריות, ובכך מגדילים את מרחב התקיפה המוכר לתוקף עד לפני תקופת הטלפונים החכמי ם. כאשר בודק מבצע מבדק חדירה לאפליקצייתAndroid , הבדיקה מתחלקת ל- 2 מרחבים עיקריים: תקיפת צד הלקוח- במרחב זה נבדוק חולשות בצד לקוח כגון שמירת מידע רגיש בצורה מסוכנת, שמירת סיסמאות בקוד, מניפולציות עלActivities , broadcast receivers וכו'. תקיפת צד השרת- במ רחב זה נבדוק חולשות אפליקטיביות בצד השרת כגוןXSS , SQLI , Authorization Bypass , Authentication Bypass , וכו'... על כל תת נושא מהנ"ל אפשר לכתוב מאמר שלם, לכן במאמר זה אתמקד רק בדרך שבה התוקף מקבל את המידע המירבי ביותר על צד השרת דרך אפליקציית ה- Android , איך ה וא מנצל מידע זה, ונראה איך אנו תוקפים את צד השרת של האפליקציה בעזרת אפליקציה, בנוסף, לעיתים חושפיםWeb services רק עבור אפליקציות מובייל וזו הצורה היחידה למצוא אותם. להבנת המאמר נדרשת היכרות בסיסית עם אפליקציות אנדרויד או נסיון עבודה עם האמולטור.

Transcript of Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse...

Page 1: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

ברק טוילימאת

הקדמה

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

, מה מיקומנו, תמונות וכו'. WhatsApp-להתכתבויות ב

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

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

מנוהל ע"י הטלפון החכם.

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

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

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

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

ם.הטלפונים החכמי

מרחבים עיקריים: 2-, הבדיקה מתחלקת לAndroidכאשר בודק מבצע מבדק חדירה לאפליקציית

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

וכו'. Activities ,broadcast receiversשמירת סיסמאות בקוד, מניפולציות על

רחב זה נבדוק חולשות אפליקטיביות בצד השרת כגון במ - תקיפת צד השרתXSS ,SQLI ,

Authorization Bypass ,Authentication Bypass...'וכו ,

על כל תת נושא מהנ"ל אפשר לכתוב מאמר שלם, לכן במאמר זה אתמקד רק בדרך שבה התוקף מקבל

וא מנצל מידע זה, ונראה איך , איך הAndroid-את המידע המירבי ביותר על צד השרת דרך אפליקציית ה

רק Web servicesאנו תוקפים את צד השרת של האפליקציה בעזרת אפליקציה, בנוסף, לעיתים חושפים

עבור אפליקציות מובייל וזו הצורה היחידה למצוא אותם.

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

Page 2: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

2 2014 יליו, 52גליון

( AppSec Labsצורך בהסבר מעמיק על הטכניקות השונות, על האיומים ו/או דרכי ההגנה, אנו ) במידה ויש

באופן קבוע, לקבלת Android Secure Coding-ו n HackingAndroid Applicatioמקיימים קורסים בנושא

labs.com-info@appsec :מידע נוסף, ניתן לפנות למייל

הקמת סביבת עבודה

, אשר מכיל את האמולטור של Android SDK -בודק ישתמש ב Androidבכדי לבצע בדיקה על אפליקציית

Android שמבצע אמולציה מלאה של מערכת ההפעלהAndroid בנוסף, על מנת לבצע בדיקה על ,

אפליקציה יש הרבה מאוד כלים עוצמתיים העוזרים בביצוע הבדיקה כגון:

Apktool

Dex2jar

Jdgui

Burp

apkAnalyzer

sqlitebrowser

.ועוד כלים רבים

סביבת עבודה לאנדרואיד -אפיוז

( אשר מספקת לבודק VM, אפיוז הינו מכונה וירטואלית )AppUseפיתחנו כלי בשם AppSec Labs-ב

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

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

בצורה קלה ומהירה ומייעל משמעותית את עבודת הבודק! ממליץ בחום לכל מי שמתעסק בתחום להוריד

את אפיוז מהכתובת הבאה:

https://appsec-labs.com/AppUse

Page 3: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

3 2014 יליו, 52גליון

דשבורד:-תמונה להמחשה של אפיוז

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

הרלוונטים.

קצת על האמולטור

, האמולטור נוצר בכדי לתת Androidהאמולטור, כשמו הוא, מבצע אמולציה של מערכת ההפעלה של

כם.לבודקים ולמפתחים לבדוק ולפתח אפליקציות ללא צורך פיזי בטלפון ח

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

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

Emulator - ools/help/emulator.htmlhttp://developer.android.com/t

ADB - http://developer.android.com/tools/help/adb.html

Page 4: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

4 2014 יליו, 52גליון

שלבי התקפה

מורכבת מכמה שלבים: Androidהתקפת צד השרת של אפליציית

יה המותקפת? מה הצעדים הדרושים לכך?איך תוקף משיג את האפליקצ -השגת אפליקצית היעד

Android Manifest - מה התוקף יכול ללמוד מקובץ ה-Manifest ?של האפליקציה המותקפת

Decompile APK and investigating the code - איך עושיםDecompile לאפליקציה? ואיך נחקור את

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

אילו אפשרויות יש בידי התוקף בכדי ליירט את התעבורה לפרוקסי? -יירוט התעבורה לפרוקסי

לאחר שיירטנו את התעבורה, דוגמא לזיהוי חולשה אפליקטיבית -ניצול החולשה הקיימת בצד שרת

כיצד ננצל את החולשה. והסבר

השגת אפליקציית היעד

יקציה המותקפת לבודק יש כמה אפשרויות:בכדי להשיג את האפל

במידה - Google Play( דרך Packageהשגת האפליקציה ע"י שמה או שם החבילה שלה ) .1

, יש אפשרות להוריד את האפליקציה למכשיר אמיתי או להשתמש Google Play-והאפליקציה זמינה ב

י )באפיוז דאשבורד ניתן ישירות מהגוגל פלי APKבאתרים המספקים שירותים המאפשרים להוריד

Tools -> Download APK From Googleלהשתמש בשירותים אלה ע"י הכפתור אשר נמצא תחת

Play:כגון ,)

http://apk-dl.com/

http://apps.evozi.com/apk-downloader/

במידה והאפליקציה מותקנת על מכשיר זמין, יש באפשרות -השגת האפליקציה המתוקנת על מכשיר .2

הבודק למשוך את האפליקציה מתוך המכשיר.

המאפשר לבודק לבצע אינטראקציה עם האמולטור. כמה פקודות SDK-אשר מגיע עם ה adbהכלי

חשובות והסבר קצר עליהם ניתן למצוא כאן:

https://appsec-labs.com/blog/adb-common-commands/

הסטנדרטיות. adb shell/pull/push צא מנקודת הנחה שאתם יודעים כבר להשתמש בפקודותמר אאבמ

Page 5: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

5 2014 יליו, 52גליון

סוגי אפליקציות: 2יש Androidבנוסף, חשוב לציין כי במערכת ההפעלה

האפליקציות הנורמטיביות שכולנו מורידים מה - פליקציות משתמשא-Google Play ,ומתקינים אותם

לדוגמא אפליקציית בנק שמאפשרת למשתמש לנהל את חשבונו. אפליקציות אלה נמצאות תחת

/data/app/ :התיקייה

אפליקציות של ה - אפליקציות מערכת-ROMאשר אחראיות לתפקוד המלא של ה ,-ROM ,

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

SystemUI אשר מציגה למשתמש את ה-GUI של מערכת ההפעלה. אפליקציות אלה נמצאות תחת

/system/app/ :התיקיה

Android Manifest -אבחנה וחקירה ראשונית

.AndroidManifest.xmlהנקרא XMLיפסט אשר הינו בפורמט כל אפליקציית אנדרויד מכילה קובץ מאנ

(, פירוט הרכיבים Package name) קובץ המאניפסט מכיל מידע רב על האפליקציה כגון: שם האפליקצייה

(, הצהרה על שימוש בהרשאות מסויימות, Activities, broadcast receivers, content providersבמערכת )

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

האפשרויות הנפוצות ביותר לעשות זאת הן ע"י 2)פיענוח( לקבציי האפליקציה, Decodeבכלים שעושים

:apkparser-ו apktoolהכלים, 2

נשתמש בפקודה הבאה: apktoolבכדי לצפות במניפסט בעזרת

apktool decode <apk name>

AndroidManifest.xml-ומשם נוכל לגשת אל קובץ ה APK-לאחר מכן תיווצר תיקיה בשם ה

ש בפקודה הבאה:נשתמ apkparserבכדי לצפות במניפסט בעזרת

java -jar APKParser.jar <apk name>

במידה ואנו רוצים לייצא את המאניפסט לקובץ ולצפות בו בדפדפן אנו יכולים להשתמש בפקודה:

java -jar APKParser.jar APK_NAME.apk > AndroidManifest.xml

Page 6: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

6 2014 יליו, 52גליון

APK-בכך שנטען את ה ,AppUseהדרך הקלה יותר לצפות במניפסט של האפליקציה תהיה באמצעות

:Reversing-תחת מדור ה View Manifestונלחץ על הכפתור Load APK-לתוך אפיוז דרך כפתור ה

מקובץ המאניפסט ניתן ללמוד הרבה מאוד על האפליקציה, הקובץ מספק לתוקף מידע רב על

האפליקציה, מבלי לבצע פעולות מורכבות מידי.

hack me)אפליקציית HackMePalובץ המניפסט של האפליקציה בתמונה הבאה תוכלו לראות חלק מק

לבדיקות ותרגולים, האפליקציה מדמה מערכת עשירה של פעולות אשראי AppSec Labsאשר פותחה ע"י

וטרנזקציות כספיות(:

Page 7: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

7 2014 יליו, 52גליון

בעזרת התמונה למעלה, אנו יכולים לראות כי האפליקציה משתמשת בהרשאות לגשת לאינטרנט, לקרוא

. נוכל לראות זאת ע"י קריאת ההרשאות שהאפליקציה מבקשת תחת התגית SDCard-קבצים אל הולכתוב

uses-permission 2, נוכל גם לראות כי יש לה Activities מסכים( שהם(exported ניתן להפעיל אותם(

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

( של האפליקציה ולבצע מתקפות שונות, כפי שאנו רואים, אנו אכן מקבלים Activitiesלתקשר עם מסכים )

מידע רב מהאפליקציה.

, זאת אומרת היא יכולה לתקשר עם שרת כמו שאנו רואים, האפליקציה משתמשת בהרשאות אינטרנט

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

שרת.-כי הוא לא היה קיים. במילים אחרות, מההרשאה אנחנו למדים שכנראה שקיים צד

פרוקסי

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

שלה, בכדי לבצע מניפולציות שונות על הבקשות היוצאות ונכנסות. על מנת לעשות זאת, יש כמה וכמה

אפשרויות להעביר את התעבורה דרך פרוקסי.

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

. אפליקציה מאוד מוכרת הינה ROOTEDמספקות הגדרת פרוקסי על המערכת למכשירים שהם

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

הגדרות האפליקציה:בתמונה הבאה ניתן לראות את

Page 8: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

8 2014 יליו, 52גליון

כתובת זו מסמנת 10.0.2.2של שרת הפרוקסי, הינו IP-, זאת אומרת הHOST-כפי שנין לראות, ה

לאמולטור את הכתובת של המארח של האמולטור )המחשב ממנו רץ האמולטור(.

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

, זאת אומרת שבמידה ונרצה ליירט תעבורה אשר יוצאת 80-ו 443לפרוקסי, הפורטים הקבועים הם

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

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

בכדי ProxyDroid( ונדליק את הפרוקסי של burp suiteת שרת הפרוקסי )לדוגמא לאחר שאנו נפעיל א

HackMePal, ננסה לבצע התחברות באפליקציה burpליירט את התעבורה מהאמולטור אל

(admin/admin.בכדי לתפוס את בקשת ההתחברות ולבצע מניפולציות עליה )

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

מוגדר כראוי )סמל הענן בתוך הריבוע למעלה ProxyDroid-את הבקשות )מלבן בתמונה משמאל( ושה

מימין(:

, אלא פורט אחר אשר 80או 443מכאן אנו מסיקים כי האפליקציה לא מתקשרת עם השרת תחת הפורט

.ProxyDroidלא נתמך ע"י

Page 9: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

9 2014 יליו, 52גליון

יינים שאנו צריכים לחקור:שני ענ

?באיזה פורט האפליקציה מתקשרת עם השרת

?איך נורה לאמולטור להעביר לפרוקסי בקשות בפורטים ספציפיים

נתחיל מהעניין הראשון.

אבחנה וחקירה של קוד האפליקציה

-קוד, לוקימפול של ה JAVA-. לאחר כתיבת קוד בclasses.dexכל אפליקציית אנדרואיד מכילה את הקובץ

bytecodeהוא מומר לקוד שה ,-JVM (Java Virtual Machine מכיר בו בפורמט ).class

, בכדי לרוץ על מכשיר dex.מכיר בו בפורמט Dalvik-בכתיבת אפליקציית אנדרויד קוד זה מומר לקובץ שה

אנדרוידאיד. קובץ זה מכיל את כל קוד האפליקציה ובעצם את לוגיקת האפליקציה.

. apk-מתוך ה classes.dexפות בקוד המקור נצטרך לבצע מספר פעולות, הוצאה של הקובץ בכדי לצ

, ואז נבצע jarלקובץ dex-של האפליקציה. לאחר מכן נמיר את קובץ ה java-הקובץ אשר מכיל את קוד ה

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

מאוד לקוד המקור של האפליקציה.

: dex2jarנשתמש בכלי JAR-ל classes.dexעל מנת לחלץ ולהמיר את קובץ

unzip <apk name> classes.dex

dex2jar classes.dex

JD-, לדוגמא JAVAאותו אל תוך כלי פענוח ל, נוכל לטעון classes_dex2jar.jarלאחר מכן ייווצר קובץ בשם

GUI אוLuyten .

כעת, יש לנו גישה לקוד המקור של האפליקציה, העובדה שתוקף יכול להשיג את קוד מקור האפליקציה

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

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

(.dynamic broadcast receiverבאופן דינאמי בתוך הקוד ולא נמצאים במאניפסט )לדוגמא,

Page 10: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

01 2014 יליו, 52גליון

:6543בחון של הקוד, ניתן לזהות כי האפליקציה הנבדקת שלנו מתקשרת תחת הפורט לאחר חקירה ואי

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

אפיוז פרוקסי

, ניסינו לחפש כלי 443-ו 80לא מיירט את התעבורה פרט לפורטים ProxyDroid-כאשר נתקלנו בבעיה, ש

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

את הפרוקסי, ומאפשרת AppUse Dashboard-והיא מאפשרת למשתמש להגדיר מ GUIהינה כרגע חסרת

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

, כפי שניתן לראות, אפשר לקבוע את הפורטים אשר ייורטו בעזרת רשימת פורטים Dashboard-ב

מופרדים בפסיק:

Page 11: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

00 2014 יליו, 52גליון

על ROOTלאחר שהוספנו את הפורט הרצוי לרשימה ומילאנו את הפרטים של הפרוקסי שלנו, נבצע

הינו תנאי ROOTED)מכיוון שמכשיר Android Deviceתחת המדור Root Deviceהמכשיר בעזרת הכפתור

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

“Proxy is off” ולאחר מכן ננסה לבצע להתחברות לאפליקציה שלנו ובכך, נוכל ליירט את הבקשה ולבצע

עליה מניפולציות.

התמונה הבאה ממחישה את המצב הנ"ל:

ת בצד השרתניצול חולשו

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

נשלחות מהלקוח אל צד השרת, נוכל לנסות לנצל מתקפות צד שרת כגון:

XSS

SQLI

Authentication/Authorization bypass

Parameter tampering

DoS attacks

.ועוד

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

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

Page 12: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

02 2014 יליו, 52גליון

לאחר חקירה של הבקשות היוצאות מהאפליקציה נוכל להבחין בבקשה הבאה בעת כניסה לחלון שליחת

הודעת צ'ט פרטית למשתמש באפליקציה:

2כפי שנראה בתמונה, השרת שולח בקשה אל השרת בכדי לקבל את ההיסטוריה של שיחת

המשתמשים, ניתן לראות כי שם המשתמש של המשתמש הנוכחי וחברו לצ'ט מועברים כפרמטרים אל

(.ids=peter,fids=appsecהשרת )

יפולציה על הפרמטרים מתוך מבנה הבקשה ניתן להסיק במהירות שסביר שקיימת חולשה וננסה לבצע מנ

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

למשתמש adminנשנה את ערך הפרמטרים של שמות המשתמשים וננסה לראות שיחה בין המשתמש

david:ונראה האם השרת אוכף מנגנון אוטוריזציה ,

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

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

Page 13: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

03 2014 יליו, 52גליון

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

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

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

הנתונים אשר מגיעים אליהם יכולים להשתנות ע"י תוקף וסמכו על המשתמש, הנחת יסוד שהיא שגויה

ום אבטחת המידע.לחלוטין בתח

סיכום

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

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

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

באנדרויד וכיצד אנו מגדירים אותו בצורה נכונה.

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

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

Page 14: Android ת ©צקפ ש תרש צ תפקת AppUse · APK ה תא ןעטנש ךכב AppUse תועצמאב היהת היצקילפאה לש טספינמב תופצל רתוי הלקה

AppUse אפליקציות של שרת צד ותקיפת Android

www.DigitalWhisper.co.il

04 2014 יליו, 52גליון

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

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

אנדרואיד.

לינק לאפיוז:

http://appsec-labs.com/appuse

ל הכותבע

והמפתח העיקרי שלו, חוקר ויועץ אבטחת AppUseשמי ברק טוילי, אחראי פרויקט

. להצעות/הערות/הארות/בקשות ניתן לשלוח מייל AppSec Labsאפליקציות בחברת

.labs.com-barak@appsec :, או למייל האישיlabs.com-appuse@appsecלכתובת: