x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
زمان لما كان حد يقولنا عندك في ال Scope بتاع ال Penetration Testing فيه Website و فيه Mobile Application كنا بنقوله سيبك من ال Mobile Application دلوقتي و خلينا في ال Website الأول...لأن ببساطة ال Cyber Attacks زمان في زمن ما قبل ال Smart Phone كانت كلها متعلقة بال Telecommunication مكانتش ليها علاقة اوي بال Operating Systems ولا بال Applications ....
دلوقتي الموضوع اختلف بقينا بنلاقي Bug Bounty Programs معمولة عشان ال Mobile Applications سواء كانت IOS او Android بقي ال Scope الي فيه Mobile زي ال Scope الي فيه Web Applications بالظبط ميقلش عنه حاجة..
طب دلوقتي انا راجل Pentester و عايز اعمل Penetration Testing لـ Mobile application هعملها ازاي دي ؟!
دلوقتي انا عندي Workflow كدة بمشيه لما احب اعمل Pentesting لل Mobile يمكن هو شبه ال Workflows بتاعت ال Pentesting التانية بس الاختلاف في التفاصيل :
1- Discovery
2- Assessment / Analysis
3- Exploitation
4- Reporting
نمسك ال Phases واحدة واحدة عشان نعرف الفرق ما بينهم و بين ال Phases العادية بتاعت ال Penetration Testing :
#أول Phase : ال Discovery
دي مرحلة ال Information Gathering الي هي اول مرة بجمع فيه كل ال info الي اقدر اجمعها عن ال Application دة...ال Discovery بيتم علي 3 مراحل :
ال OSINT او ال Open Source Intelligence Technology و دي اول مرحلة خالص في ال Project هي اني بعمل Search علي ال Application في ال Search Engines و بعمل Search اشوف ايه هي ال 3rd Party Libraries الي بيستخدمها و اشوف لو حد عمله Leakage قبل كدة لل Source Code بتاعه و هكذا مجرد تجميع معلومات بس
تاني مرحلة هي ال Understanding the Platform و هي اني افهم ال Architecture بتاع ال Operating System الي ال Application دة هيشتغل عليه سواء كان Android او IOS عشان اقدر في الاخر اعمل Threat Model لل Application دة يعني كل ال Threats الي ممكن يجيلي من خلالها Cyber Attack
تالت مرحلة هي ال Client Side / Server Side Scenarios : لازم افهم طبيعة ال Application هل هو Native ولا Hybrid ولا Web
ال Native هو الي بيبقي مكتوب Java بس لل Android او Swift بس لل IOS
ال Hybrid بيكون Cross-Platform يعني زي Xamarin مكتوب C# و طالع IOS و Android مع بعض
ال Web بيكون مكتوب في الاساس بـ HTML5 بيبقي Website و طالع ف شكل Mobile app
#تاني Phase : ال Assessment او ال Analysis
ال Mobile Applications بتختلف عن ال Web Applications شوية في انواع ال Analysis عشان في ال Mobile applications فيه انواع كتير :
1 - ال Static Analysis
دة بعمل Analysis للـ Applications من غيره ما أشغله عن طريق اني بعمل Decompile لل Source Code بتاع ال Application و ابداً Analysis عليه
2- ال Dynamic Analysis :
هنا بعمل Analysis و ال Application شغال عن طريق اني بعمل Forensics لل Local Filesystems بتاعت ال Application و بعمل Network Forensics لل Communication ما بين ال App و ال Server و بعمل Assessment لل Local IPC بتاع ال Application الي هو Inter Process Communication ال IPC دة الي بيستخدمه ال Operating System عشان يـ manage ال Shared Data عن طريق ال Processes.
3- ال Archive Analysis :
هنا بعمل Extraction لل Installation Package الي هي ال APK file في ال Android او ال IPA File في ال IOS و بعمل Analysis لل Configuration Files بتاعت ال Application
4- ال Local File Analysis :
لما ال App بيتسطب علي ال Mobile بيعمل لنفسه Directory لل Filesystem و بيفضل يرمي Files طول ما ال Application شغالة ف ال Temp Files دي بيتعملها Analysis
5- ال Reverse Engineering :
هنا بحول ال Compiled Files لـ Source Code أقدر اقراه...ال Code Review بيخلي ال Pentester يقدر يفهم ال internal Functions و يقدر يعمل Search علي ال Vulnerabilities الموجودة في ال Code الي ممكن متظهرش في ال Dynamic Analysis
6- ال Network Forensics :
هنا بعمل Forensics و Analysis لل Route الي ما بين ال Application و ال Server و بشوف لو بيستخدم مثلاً Proxy عشان اقدر ارسم ال Threat Model الخاص بال Network بتاعت ال Application
#تالت Phase : ال Exploitation
ودي بتحصل علي مرحلتين :
1 - أول مرحلة اني اعمل Exploit لل Vulnerability
2- تاني مرحلة اني اعمل Escalation لل Privileges و اقدر اخد Root Permission علي ال Application
طب هي ايه ال Issues او ال Vulnerabilities الي ممكن تقابلني في ال Mobile Applications و الي علي اساسها بقي فيه Mobiles Apps Penetration Testing
عندي OWASP زي ما هي عاملة TOP 10 لل Web Applications عاملة كمان TOP 10 لل Mobile Applications الي هما :
1- Weak Server Side Controls
و دي معناها ان لما ال Application يكون معتمد علي ال Web Server كجزء أساسي من ال Architecture بتاعت ال Application ف دة بيخلي ال Mobile Application زيه زي ال Web Application معرض لل Vulnerabilities بتاعت ال Web زي ال Injection و ال Scripting و ال Insecure direct object و غيرها خصوصاً ال Systems الي ليها Web application و mobile Application زي Facebook و Twitter و غيرهم ممكن الي محدش يعرف يعمله من ال Web Application يعرف يعمله من خلال ال Mobile Application
2- Insecure Data Storage
اي Mobile App دلوقتي عشان يشتغل لازم بيحتاج Storage يرمي فيها ال Data بتاعته لان معظم ال Modern Apps دلوقتي بقي فيها حاجة من الاتنين يا اما Sign in يا اما Purchasing الي هو بتشتري حاجة خاصة باللعبة مثلاً ف هتحتاج تدخل بيانات ال Credit Card بتاعتك يا اما فيها الحاجتين مع بعض ف ال Data دي بتتخزن في Files يا اما SQLite يا اما XML data stores يا اما Logs...ف لما ال Data بتيجي تتخزن بيحصلها يا اما Encryption يا اما Hashing كل الناس بتهتم انها تأمن ال Data و ناس كتير بتنسي تامن المكان الي متشالة فيه ال Data دي عشان كدة ال Threat هنا في ال Storage مش في ال Data نفسها..
3- Insufficient Transport Layer Protection
كل ال Cross-Platform Applications بتستعمل HTML5 ف بتشتغل Client-Server Side ف ال Data الي بتحتاجها بتتنقل لل Server علي صورة Packets ف بتستعمل SSL او TLS ف هنا بتيجي المشكلة ان ال SSL فيه Vulnerabilities كتير ف لو ال Developer لسة بيستعمل SSL و مش مأمن نفسه كويس ال Data بتكون معرضة لل Sniffing و ال Tampering قبل ما توصل لل Server او بعد ما توصل لل Server و قبل ما توصل لل Client
4- Unintended Data Leakage
فيه ال Modern Applications دلوقتي بقت بتطلب Access علي Functions كتير عشان تحسن ال Usability بتاعت ال Application ف تلاقي Application عايز Access علي ال Camera و ال Geo-Location و حاجات تانية كتير ف ال Access دة لو مكنش مظبوط بيوصل ل Data Leakage كبيرة جداً زي مثلاً لعبة انتشرت الفترة الي فاتت و اختفت دلوقتي الي هي Pokemon go دي كان فيها Real-time Geo-Location Monitoring ف كانت بتعمل Leakage كبيرة لل user Privacy و غيرها كتير و ال Leakage مش بس واقف علي ال Geo-Location دة كمان لل Credit Card و ال Camera...كنت بعمل Assessment علي Mobile Application قبل كدة المفروض انه لـ Organization كبيرة لقيت ان ال Camera بتاخد Live Streaming و بتبعته علي cloud-based server و كدة كدة ال User مديلها permission علي ال Camera و ال Network , كل حاجة..
5- Poor Authorization and Authentication
كتير من ال Modern Apps دلوقتي بتطلب Authentication و Authorization عشان تتأكد من ال User و عشان تدي Access علي ال Private Data بتاعته
ف المشكلة ان كتير من ال Mobile Developers بيهتموا بال Functionality و بيسيبوا ال Security ف لو معملوش Development كويسة لل Authentication و ال Authorization بتاعت ال Application دة بتكون مشكلة بيرة و بتوصل لـ Privilege Escalation و Binary Attacks و حاجات كتير...
6- Broken Cryptography
ال Applications عشان تحمي ال Data بتاعت ال User بتستخدم Encryption Algorithms كتير بس للأسف فيه كتير من ال Developers بيحبوا السهل اكتر ف بيستخدموا Cryptography Algorithms بالبلدي كدة راحت عليها خلاص مينفعش حد يستخدمها زي ال RC2 و ال MD5 و مش كدة و بس لا دة كمان مش بيهتموا بال Key Management و بيعملوا Store لل Keys جوا Unprotected Paths ف كدة اي حد يقدر يدخل يعمل Crack لل Applications و من هنا ظهرت فكرت ال Mod Applications و ال Android Users عارفين كويس يعني ايه Mod Apps
7- Client Side Injection
دي مفيش فرق بينها و بين ال Injection العادي بتاع ال Web هي نفس الفكرة اني بعمل Inject لـ Malicious code سواء كان Query بقي او Command او اي حاجة كل الغرض منه انه يتنفذ في ال Back-End
8- Security Decisions via Untrusted Inputs
ال Authorization بتاع كتير من ال Modern Applications بتتم عن طريق Hidden Functions و Variables بحيث ال Application بيتأكد كل شوية انك Authorized User ولا لا مش بيحتاج منك تعمل حاجة...ال Functions وال Variables دي لو اتعملها Configuration غلط بتوصل لل Privilege Escalation و ال Sensitive Data Leakage
9- Improper Session Handling
دي زيها زي ال Web Application بالظبط مفيش فرق هي كل الكلام ان ال Developer مش بيعرف يعمل Security Handling لل Sessions بتاعت ال Users ف بتوصل لل Session Hijacking و ال Unauthorized Actions و كمان لل Privilege Escalation
10- Lack of Binary Protections
دي اخر حاجة بقي هي ان ال Developer مش بيحمي ال Binaries بتاعت ال Application كويس ف بيبقي سهل علي ال Hacker انه يعملها Reverse Engineering و يعدل في ال Data الي فيها و يعملها Compiling تاني و يشغل ال Application بال Data الجديدة..
دلوقتي الموضوع اختلف بقينا بنلاقي Bug Bounty Programs معمولة عشان ال Mobile Applications سواء كانت IOS او Android بقي ال Scope الي فيه Mobile زي ال Scope الي فيه Web Applications بالظبط ميقلش عنه حاجة..
طب دلوقتي انا راجل Pentester و عايز اعمل Penetration Testing لـ Mobile application هعملها ازاي دي ؟!
دلوقتي انا عندي Workflow كدة بمشيه لما احب اعمل Pentesting لل Mobile يمكن هو شبه ال Workflows بتاعت ال Pentesting التانية بس الاختلاف في التفاصيل :
1- Discovery
2- Assessment / Analysis
3- Exploitation
4- Reporting
نمسك ال Phases واحدة واحدة عشان نعرف الفرق ما بينهم و بين ال Phases العادية بتاعت ال Penetration Testing :
#أول Phase : ال Discovery
دي مرحلة ال Information Gathering الي هي اول مرة بجمع فيه كل ال info الي اقدر اجمعها عن ال Application دة...ال Discovery بيتم علي 3 مراحل :
ال OSINT او ال Open Source Intelligence Technology و دي اول مرحلة خالص في ال Project هي اني بعمل Search علي ال Application في ال Search Engines و بعمل Search اشوف ايه هي ال 3rd Party Libraries الي بيستخدمها و اشوف لو حد عمله Leakage قبل كدة لل Source Code بتاعه و هكذا مجرد تجميع معلومات بس
تاني مرحلة هي ال Understanding the Platform و هي اني افهم ال Architecture بتاع ال Operating System الي ال Application دة هيشتغل عليه سواء كان Android او IOS عشان اقدر في الاخر اعمل Threat Model لل Application دة يعني كل ال Threats الي ممكن يجيلي من خلالها Cyber Attack
تالت مرحلة هي ال Client Side / Server Side Scenarios : لازم افهم طبيعة ال Application هل هو Native ولا Hybrid ولا Web
ال Native هو الي بيبقي مكتوب Java بس لل Android او Swift بس لل IOS
ال Hybrid بيكون Cross-Platform يعني زي Xamarin مكتوب C# و طالع IOS و Android مع بعض
ال Web بيكون مكتوب في الاساس بـ HTML5 بيبقي Website و طالع ف شكل Mobile app
#تاني Phase : ال Assessment او ال Analysis
ال Mobile Applications بتختلف عن ال Web Applications شوية في انواع ال Analysis عشان في ال Mobile applications فيه انواع كتير :
1 - ال Static Analysis
دة بعمل Analysis للـ Applications من غيره ما أشغله عن طريق اني بعمل Decompile لل Source Code بتاع ال Application و ابداً Analysis عليه
2- ال Dynamic Analysis :
هنا بعمل Analysis و ال Application شغال عن طريق اني بعمل Forensics لل Local Filesystems بتاعت ال Application و بعمل Network Forensics لل Communication ما بين ال App و ال Server و بعمل Assessment لل Local IPC بتاع ال Application الي هو Inter Process Communication ال IPC دة الي بيستخدمه ال Operating System عشان يـ manage ال Shared Data عن طريق ال Processes.
3- ال Archive Analysis :
هنا بعمل Extraction لل Installation Package الي هي ال APK file في ال Android او ال IPA File في ال IOS و بعمل Analysis لل Configuration Files بتاعت ال Application
4- ال Local File Analysis :
لما ال App بيتسطب علي ال Mobile بيعمل لنفسه Directory لل Filesystem و بيفضل يرمي Files طول ما ال Application شغالة ف ال Temp Files دي بيتعملها Analysis
5- ال Reverse Engineering :
هنا بحول ال Compiled Files لـ Source Code أقدر اقراه...ال Code Review بيخلي ال Pentester يقدر يفهم ال internal Functions و يقدر يعمل Search علي ال Vulnerabilities الموجودة في ال Code الي ممكن متظهرش في ال Dynamic Analysis
6- ال Network Forensics :
هنا بعمل Forensics و Analysis لل Route الي ما بين ال Application و ال Server و بشوف لو بيستخدم مثلاً Proxy عشان اقدر ارسم ال Threat Model الخاص بال Network بتاعت ال Application
#تالت Phase : ال Exploitation
ودي بتحصل علي مرحلتين :
1 - أول مرحلة اني اعمل Exploit لل Vulnerability
2- تاني مرحلة اني اعمل Escalation لل Privileges و اقدر اخد Root Permission علي ال Application
طب هي ايه ال Issues او ال Vulnerabilities الي ممكن تقابلني في ال Mobile Applications و الي علي اساسها بقي فيه Mobiles Apps Penetration Testing
عندي OWASP زي ما هي عاملة TOP 10 لل Web Applications عاملة كمان TOP 10 لل Mobile Applications الي هما :
1- Weak Server Side Controls
و دي معناها ان لما ال Application يكون معتمد علي ال Web Server كجزء أساسي من ال Architecture بتاعت ال Application ف دة بيخلي ال Mobile Application زيه زي ال Web Application معرض لل Vulnerabilities بتاعت ال Web زي ال Injection و ال Scripting و ال Insecure direct object و غيرها خصوصاً ال Systems الي ليها Web application و mobile Application زي Facebook و Twitter و غيرهم ممكن الي محدش يعرف يعمله من ال Web Application يعرف يعمله من خلال ال Mobile Application
2- Insecure Data Storage
اي Mobile App دلوقتي عشان يشتغل لازم بيحتاج Storage يرمي فيها ال Data بتاعته لان معظم ال Modern Apps دلوقتي بقي فيها حاجة من الاتنين يا اما Sign in يا اما Purchasing الي هو بتشتري حاجة خاصة باللعبة مثلاً ف هتحتاج تدخل بيانات ال Credit Card بتاعتك يا اما فيها الحاجتين مع بعض ف ال Data دي بتتخزن في Files يا اما SQLite يا اما XML data stores يا اما Logs...ف لما ال Data بتيجي تتخزن بيحصلها يا اما Encryption يا اما Hashing كل الناس بتهتم انها تأمن ال Data و ناس كتير بتنسي تامن المكان الي متشالة فيه ال Data دي عشان كدة ال Threat هنا في ال Storage مش في ال Data نفسها..
3- Insufficient Transport Layer Protection
كل ال Cross-Platform Applications بتستعمل HTML5 ف بتشتغل Client-Server Side ف ال Data الي بتحتاجها بتتنقل لل Server علي صورة Packets ف بتستعمل SSL او TLS ف هنا بتيجي المشكلة ان ال SSL فيه Vulnerabilities كتير ف لو ال Developer لسة بيستعمل SSL و مش مأمن نفسه كويس ال Data بتكون معرضة لل Sniffing و ال Tampering قبل ما توصل لل Server او بعد ما توصل لل Server و قبل ما توصل لل Client
4- Unintended Data Leakage
فيه ال Modern Applications دلوقتي بقت بتطلب Access علي Functions كتير عشان تحسن ال Usability بتاعت ال Application ف تلاقي Application عايز Access علي ال Camera و ال Geo-Location و حاجات تانية كتير ف ال Access دة لو مكنش مظبوط بيوصل ل Data Leakage كبيرة جداً زي مثلاً لعبة انتشرت الفترة الي فاتت و اختفت دلوقتي الي هي Pokemon go دي كان فيها Real-time Geo-Location Monitoring ف كانت بتعمل Leakage كبيرة لل user Privacy و غيرها كتير و ال Leakage مش بس واقف علي ال Geo-Location دة كمان لل Credit Card و ال Camera...كنت بعمل Assessment علي Mobile Application قبل كدة المفروض انه لـ Organization كبيرة لقيت ان ال Camera بتاخد Live Streaming و بتبعته علي cloud-based server و كدة كدة ال User مديلها permission علي ال Camera و ال Network , كل حاجة..
5- Poor Authorization and Authentication
كتير من ال Modern Apps دلوقتي بتطلب Authentication و Authorization عشان تتأكد من ال User و عشان تدي Access علي ال Private Data بتاعته
ف المشكلة ان كتير من ال Mobile Developers بيهتموا بال Functionality و بيسيبوا ال Security ف لو معملوش Development كويسة لل Authentication و ال Authorization بتاعت ال Application دة بتكون مشكلة بيرة و بتوصل لـ Privilege Escalation و Binary Attacks و حاجات كتير...
6- Broken Cryptography
ال Applications عشان تحمي ال Data بتاعت ال User بتستخدم Encryption Algorithms كتير بس للأسف فيه كتير من ال Developers بيحبوا السهل اكتر ف بيستخدموا Cryptography Algorithms بالبلدي كدة راحت عليها خلاص مينفعش حد يستخدمها زي ال RC2 و ال MD5 و مش كدة و بس لا دة كمان مش بيهتموا بال Key Management و بيعملوا Store لل Keys جوا Unprotected Paths ف كدة اي حد يقدر يدخل يعمل Crack لل Applications و من هنا ظهرت فكرت ال Mod Applications و ال Android Users عارفين كويس يعني ايه Mod Apps
7- Client Side Injection
دي مفيش فرق بينها و بين ال Injection العادي بتاع ال Web هي نفس الفكرة اني بعمل Inject لـ Malicious code سواء كان Query بقي او Command او اي حاجة كل الغرض منه انه يتنفذ في ال Back-End
8- Security Decisions via Untrusted Inputs
ال Authorization بتاع كتير من ال Modern Applications بتتم عن طريق Hidden Functions و Variables بحيث ال Application بيتأكد كل شوية انك Authorized User ولا لا مش بيحتاج منك تعمل حاجة...ال Functions وال Variables دي لو اتعملها Configuration غلط بتوصل لل Privilege Escalation و ال Sensitive Data Leakage
9- Improper Session Handling
دي زيها زي ال Web Application بالظبط مفيش فرق هي كل الكلام ان ال Developer مش بيعرف يعمل Security Handling لل Sessions بتاعت ال Users ف بتوصل لل Session Hijacking و ال Unauthorized Actions و كمان لل Privilege Escalation
10- Lack of Binary Protections
دي اخر حاجة بقي هي ان ال Developer مش بيحمي ال Binaries بتاعت ال Application كويس ف بيبقي سهل علي ال Hacker انه يعملها Reverse Engineering و يعدل في ال Data الي فيها و يعملها Compiling تاني و يشغل ال Application بال Data الجديدة..