إلى الخلف
عمليات الدمج
جدول المحتوى

التطبيقات (Android أو غير ذلك) عرضة للثغرات الأمنية. وبالتالي من المهم البقاء على اطلاع بأحدث تحديثات الأمان وتهيئة التطبيقات لها. تتضمن الطريقة المعتادة لمسح تطبيقات الهاتف المحمول والعثور على تقارير الأمان سلسلة من الخطوات المضنية من تطوير التطبيق والمسح الضوئي والتحليل الثابت للكود إلى المعالجة وإعادة الفحص.

الطرق التقليدية لمسح تطبيقات الهاتف المحمول والعثور على تقرير الأمان

يعمل المكون الإضافي لـ BeVigiL's Jenkins على تبسيط هذه المهمة من خلال تحديد الثغرات الأمنية أثناء مرحلة تطوير التطبيق نفسها. من خلال استخدام هذا المكون الإضافي، يمكن للمطورين وفرق الأمان اكتشاف ومعالجة أي مشكلات تنشأ أثناء التطوير وتبسيط عملية المعالجة.

ما الأخطاء التي يرتكبها المطور؟

أحد أكبر الأخطاء التي يرتكبها المطور هو أنه عادةً ما يقوم بتشفير مفاتيح API والأسرار والأصول في الكود المصدري أثناء دفع ملف APK الخاص بالبناء إلى PlayStore. كما هو موضح في الصورة أدناه، قام المطور بترميز مفتاح Razorapay والسرية في التطبيق. يمكن أن يؤدي الترميز الثابت لهذه المفاتيح إلى تسرب معلومات تحديد الهوية الشخصية للمستخدم.

أنواع المفاتيح/عناوين URL التي تم تسريبها من قبل المطورين وتأثيرها

Exposed Key/URL

Description

Developer Mistake

BeVigil Finding




Firebase Database

Developers use the firebase for storing some data but forget about the security concerns related to the database.

Not restricting permission of the database.

Almost 18K Firebase databases were readable and had over 10M downloads on the PlayStore, thus leaking a lot of PII.









Razorpay Keys 

Hardcoded Razorpay keys and secrets can compromise sensitive financial data, including payment card information and transaction details. The leaked keys can be used to authenticate requests to the Razorpay API and make unauthorized transactions, manipulate payment data, or even access other sensitive information stored on the payment gateway's systems.

Hardcoding Razorpay ID is okay but hardcoding secrets or keys in the source code with excessive permissions can lead to compromising details.

Almost 1.6M user data was compromised via hard-coded Razorpay keys.






AWS  Access Key & Secret

These are used to authenticate and authorize access to AWS resources, such as EC2 instances, S3 buckets, and other cloud services. If compromised, they can potentially provide an attacker with access to an organization's entire cloud infrastructure and the data stored within it.

Permissions of AWS access key and secret must be restricted.

Around 100GB of leaked data was obtained due to misconfigured AWS Access Key and Secret.







GitHub Personal Access Token (PAT)

A PAT is a string of characters that provides access to perform actions on behalf of a user's GitHub account, such as creating, deleting, or modifying repositories, accessing private repositories, or posting comments. It can be used to authenticate API requests and is generated by GitHub. Hardcoding PATs can lead to accessing GitHub private repositories.

GitHub tokens are not usually used in mobile apps for anything but often times developers hardcoded this by mistake.

Over 159 private repositories can be accessed from the compromised tokens discovered in BeVigil.





Twitter API Keys

These API keys if hardcoded can lead to the full takeover of a user’s Twitter account(s) and perform sensitive actions such as reading direct messages, retweeting, removing followers, following strangers, etc.

Hardcoding Twitter consumer key, consumer secret as well as the Twitter access token and secret, thus providing an opportunity for complete account takeover.

3,207 apps were found leaking valid Consumer Key and Consumer Secret. Around 230 apps (including some unicorns) were leaking all 4 authorization credentials.



Hubspot API Keys

These keys are generally not used in mobile apps but if compromised these keys can leak the users’ PII.

Hardcoding the API key which is generally not used by mobile app developers.

1.6M users’ data can be compromised with the help of just one API key.



Shopify API Keys

If compromised these API keys can lead to reading and writing customers' data as well as the order information.

Hardcoding the API key  with excessive permission.

21 apps were identified to have 22 hardcoded Shopify API keys/tokens. These apps put close to 4M users at risk.










MailChimp API Keys

Mailchimp is a popular email marketing and automation platform that allows businesses and individuals to create, send, and manage email campaigns to their subscribers. An exposed Mailchimp API key can be used to access the Mailchimp account and send unauthorized emails, steal contact lists, view campaign analytics, etc. The compromised account can also be used to create and launch phishing campaigns, distribute malware, or commit fraud.

Hardcoding the API key  which can be generally sent from the backend.

Out of the total 319 identified API keys, 90 API keys (i.e. 28%) were found to be valid. 12 keys were found to allow read-email access.








SendGrid API Keys

SendGrid is a communication platform intended for transactional and marketing emails. Exposed SendGrid API keys allow attackers to send unauthorized emails from the affected account. They can also gain access to sensitive information such as email addresses, subject lines, and message contents.

Hardcoding the API key  with excessive permission.

Out of 319 identified API keys, 128 keys were found to be valid. 121 keys allowed actors to send emails, 65 keys allowed actors to delete API keys, and 42 keys allowed actors to modify 2FA.







Mailgun API Keys

Mailgun provides email API services enabling brands to send, validate, and receive emails through their domain at scale. If exposed, these keys can be used to send unauthorized emails from the affected account, gain access to sensitive information, and monitor/analyze email traffic, which could reveal business-critical information.

Hardcoding the API key  with excessive permission.

35% of the analyzed apps allowed anyone to send and read emails.

كيف يساعد ملحق جينكينز من BeVigil؟

صورة توضح كيف يمكن للمكوِّن الإضافي BeVigil المساعدة في العثور على مشكلات الأمان في تطبيقات الأجهزة المحمولة

دعونا نفهم ما هو جينكينز. Jenkins هو خادم أتمتة مفتوح المصدر يستخدم على نطاق واسع للتكامل المستمر والتسليم المستمر (CI/CD) لمشاريع البرامج. يوفر Jenkins العديد من المكونات الإضافية لتوسيع وظائفه ويدعم أنواعًا مختلفة من مهام الإنشاء والنشر والاختبار.

يعمل Jenkins عن طريق تشغيل عمليات الإنشاء والاختبارات الآلية كلما تم إجراء تغييرات على مستودع الكود المصدري. يتكامل مع أنظمة التحكم في الإصدار مثل Git و SVN و Mercurial، ويمكن تهيئته لتشغيل الاختبارات الآلية وتحليل الكود وتعبئة التطبيق.

Jenkins هي أداة أتمتة قوية تساعد فرق البرامج على تحسين عمليات تطوير البرامج من خلال أتمتة المهام المتكررة وتمكين دورات التغذية الراجعة بشكل أسرع. تعود شعبيتها إلى مرونتها وقابليتها للتطوير وسهولة استخدامها، مما يجعلها الخيار المفضل للعديد من فرق التطوير حول العالم.

عمل البرنامج المساعد جينكينز من BeVigil

البرنامج المساعد بيفيجيل جينكينز سيساعد مطوري التطبيقات على معالجة المشكلات في وقت التطوير. بمجرد أن يقوم المطور بتنفيذ رمز، سيتلقى تقريرًا أمنيًا مفصلاً من المكون الإضافي BeVigil Jenkins لملفات APK أو IPA. سيتضمن هذا التقرير معلومات مثل:

  • ما هي مسألة؟
  • ما هي تأثير؟
  • ما هي خطوات المعالجة؟
  • التي مشكلة ملف تم العثور عليها؟
  • ماذا كان تطابق تام في شفرة المصدر مما أدى إلى قيام الماسح الضوئي الخاص بنا باكتشافه كتهديد؟
لقطة شاشة لتقرير الأمان الذي تم إنشاؤه بواسطة ملحق Jenkins من BeVigil

كيف يمكن للمطور استخدام البرنامج المساعد BeVigil؟

لكي يستخدم المطور المكون الإضافي Jenkins (الذي تقدمه BeVigil)، يجب أن يكون لديه ما يلي مثبتًا في نظامه:

  • جافا
  • أدوات أندرويد SDK
  • جنكينز

خطوات تثبيت المكون الإضافي

يمكن تثبيت ملحق BeVigili's Jenkins في أي نظام باتباع سلسلة الخطوات المذكورة أدناه:

  1. افتح جينكينز وانقر على إدارة جينكينز.
  1. الآن، حدد إدارة المكونات الإضافية.

  1. انتقل إلى الإضافات المتاحة علامة التبويب، وابحث عن البرنامج المساعد «BeVigil VI». انقر فوق مربع الاختيار بجوار المكون الإضافي، ثم انقر فوق «التثبيت بدون إعادة التشغيل» لتثبيت المكون الإضافي.

  1. تم تثبيت المكون الإضافي بنجاح، كما هو موضح في تقدم التنزيل علامة تبويب.

إعداد متغيرات البيئة لـ Jenkins

  1. لتعيين متغيرات البيئة لـ Jenkins، افتح لوحة معلومات Jenkins وانتقل إلى إدارة جنكينز -> تكوين النظام. ابحث عن قسم الإعدادات العامة وحدد متغيرات البيئة مربع الاختيار لتمكينه.
  1. بعد تثبيت JDK، نحتاج إلى تعيين متغيرات البيئة لـ JAVA_HOME في Jenkins والتي ستكون مسار JDK.
  2. بمجرد تثبيت أدوات Android SDK، نحتاج إلى تعيين متغير البيئة ANDROID_HOME بالإشارة إلى موقع Android SDK الخاص بنا.
  3. بعد وضع كلتا القيمتين، يحتاج المستخدمون إلى النقر فوق زر الحفظ لتطبيق التغييرات.

تكوين إعدادات خطوط الأنابيب

  1. انتقل إلى لوحة معلومات Jenkins، انقر فوق عنصر جديد، حدد مشروع الأسلوب الحر، وأضف اسم العنصر، وانقر فوق حسنا لإعداد المشروع.
  1. بعد الانتهاء من إعداد المشروع، انتقل إلى إدارة الكود المصدري، وحدد GIT، وأضف عنوان URL الخاص بالريبو، وحدد الفرع الذي تريد تشغيل Jenkins لتشغيله.
  1. حدد إضافة إلى خطوات الإنشاء واختر استدعاء برنامج Gradle النصي. حدد استخدم غلاف جرادل، تحقق من اجعل gradlew قابلاً للتنفيذ مربع الاختيار، وأضف موقع الغلاف. أضف الآن تصحيح التجميع في مربع المهام التي سيتم استدعاؤها. عندما تقوم بتشغيل مهمة AssembleDebug، يقوم Gradle بتجميع الكود المصدري للتطبيق الخاص بك ومعالجة الموارد وإنشاء APK.
  1. انقر فوق زر الإنشاء وحدد افحص تطبيقك باستخدام BeVigil CI خيار. أضف الآن التفاصيل التالية في النموذج:
  • مفتاح واجهة برمجة التطبيقات: مفتاح واجهة برمجة تطبيقات BeVigil الخاص بك
  • نوع التطبيق: حدد أندرويد/iOS
  • مسار التطبيق: هذا هو المسار إلى تطبيقك المدمج بالنسبة إلى جذر مساحة عمل Jenkins الخاصة بك. سيتم إنشاء هذا المسار باستخدام الأمر assembleDebug للمهمة.
  • اسم الحزمة: أدخل اسم الحزمة لتطبيقك
  • مهلة المسح: هذا هو الوقت (بالدقائق) الذي ستنتهي بعده مهلة الفحص على المكون الإضافي.
  • عتبة الخطورة: هذا يخبر BeVigil بتعيين حد للثغرات الأمنية:
  • منخفض: سيتضمن تقرير الأمان نقاط ضعف منخفضة ومتوسطة وعالية
  • متوسط: سيتضمن تقرير الأمان نقاط ضعف متوسطة وعالية
  • مرتفع: سيتضمن تقرير الأمان نقاط ضعف عالية فقط
  1. بعد الانتهاء من كل شيء، انقر فوق وفر زر.
  1. نحن بحاجة إلى النقر فوق قم بالبناء الآن لبناء المشروع.

  1. يمكنك الآن الانتقال إلى مخرجات وحدة التحكم لمشاهدة تقرير الأمان الخاص بالتطبيق، في حالة حدوث بناء ناجح.
  2. يمكن تنزيل التقرير للاطلاع على مشكلات الأمان الموجودة في تطبيق الهاتف المحمول وحلها بشكل استباقي.

ماذا سيحدث بعد ذلك؟

في المرحلة التالية، سيتمكن المطورون من إضافة خطوة أخرى إلى خطوات الإنشاء، أي إذا تم العثور في وقت الإنشاء على بعض مشكلات الأمان العالية في تطبيق الهاتف المحمول، فسوف يفشل الإصدار في هذه المرحلة. لا يمكن الانتقال إلى المرحلة التالية من خط الأنابيب. توضح الصورة أدناه عمل خط أنابيب CI/CD في دورة حياة تطوير البرمجيات.

يمكن إجراء تغييرات التكوين في خطوات الإنشاء، في الخطوة الثالثة من خط الأنابيب، والتي ستضمن أنه في حالة ظهور أي مشكلات أمنية عالية في مرحلة الإنشاء، فلن تنتقل إلى المراحل الأخرى. خطتنا هي دمج المكون الإضافي BeVigil في أدوات CI المختلفة، مثل ترافيس وسيركل سي وبامبو وجيتلاب CI/CD وخطوط أنابيب أزور وكوديشيب. إذا كنت تستخدم أداة CI مختلفة لاختبار إصدارات تطبيقك بصرف النظر عن Jenkins، فيرجى النقر فوق هذا رابط لتحديد اختيارك.

عرض توضيحي بالفيديو لإعداد المكون الإضافي

الإسناد

أرشيت جاين
جمع البيانات لأول محرك بحث أمني في العالم bevigil.com | تجريف الويب | استخراج البيانات |
هانسيكا ساكسينا
انضمت هانسيكا إلى فريق التحرير في CloudSek ككاتبة تقنية وهي طالبة بكالوريوس (مع مرتبة الشرف) في جامعة دلهي. كانت مرتبطة سابقًا بمؤسسة شباب الهند لمدة عام.

مدونات ذات صلة