عند إلغاء تثبيته، يقوم التطبيق بقفل الشاشة. فيروس أندرويد جديد يعترض الرسائل النصية القصيرة للمستخدم

17.07.2019

ميخائيل فاراكين
مدرس في مركز تدريب الحاسوب "التخصصي"
في MSTU سميت بعد. ن. بومان

ومع زيادة حصتها في سوق الأجهزة المحمولة، أصبحت منصة Android جذابة بشكل متزايد لمطوري تطبيقات المؤسسات. وفي الوقت نفسه، تتميز بيئة الشركات بضرورة الالتزام بالسياسات التي تضمن المستوى المطلوب من الأمان نظم المعلومات. في Android API 8 (Android 2.2)، ظهر لأول مرة دعم لتطبيقات المؤسسات باستخدام واجهة برمجة تطبيقات إدارة الأجهزة، والتي توفر القدرة على إدارة الأجهزة على منصة أندرويدعلى مستوى النظام. تسمح واجهة برمجة التطبيقات (API) هذه للمطورين بإنشاء التطبيقات المطلوبة في بيئة الشركة حيث يحتاج مسؤولو خدمات المعلومات في المؤسسة إلى التحكم في الأجهزة المحمولة للموظفين. أحد هذه التطبيقات متاح بالفعل للجميع الأجهزة الحديثة: مدمج عميل البريديستخدم واجهة برمجة تطبيقات إدارة الأجهزة عند المزامنة مع Microsoft Exchange ومن خلال هذا التطبيق، يمكن لمسؤولي Exchange فرض سياسات كلمة المرور، بالإضافة إلى مسح البيانات عن بعد (إجراء إعادة ضبط المصنع) في حالة فقدان الجهاز أو سرقته.

الجوانب التنظيمية للاستخدام

يمكن تثبيت التطبيق الذي يستخدم واجهة برمجة تطبيقات إدارة الأجهزة على الجهاز بأي طريقة، على سبيل المثال من خلال جوجل بلاي، ومن مصادر أخرى. حقيقة التوفر التطبيق المثبتلا ينفذ بعد السياسات التي تم إنشاؤه من أجلها - يجب على المستخدم الموافقة على تطبيق السياسات الإدارية. في حالة الفشل، سيبقى التطبيق على النظام وسيكون في حالة غير نشطة. كقاعدة عامة، توفر له موافقة المستخدم على استخدام السياسات ميزات مفيدةعلى سبيل المثال الوصول إلى معلومات سرية، غير متاح في حالة الفشل. إذا لم يلتزم المستخدم بالسياسات الحالية (على سبيل المثال، عند استخدام كلمة مرور غير قوية بما فيه الكفاية)، فسيتم تحديد رد فعل التطبيق وفقًا لما يعتبره المطور ضروريًا للتنفيذ؛ عادةً ما يفقد المستخدم القدرة على استخدام خدمات الشركة. عند استخدام آلية الإدارة في بيئات الشركاتيجب أن تؤخذ الميزات التالية في الاعتبار:

  • عند محاولة الاتصال بخدمة تتطلب الالتزام بمجموعة محددة من السياسات، وليست جميعها مدعومة جهاز محمول(على سبيل المثال، بسبب عفا عليها الزمن إصدارات أندرويد)، لن يتم إنشاء الاتصال؛
  • إذا تم تنشيط العديد من التطبيقات التي تستخدم واجهة برمجة تطبيقات إدارة الأجهزة على الجهاز، فسيتم تطبيق القيود الأكثر صرامة التي تفرضها سياسات الإدارة المستخدمة في هذه التطبيقات؛
  • بالإضافة إلى القيود المختلفة المتعلقة بكلمات المرور (التعقيد، وفترة انتهاء الصلاحية، وعدد محاولات الدخول)، والحد الأقصى لوقت عدم النشاط قبل قفل الشاشة، ومتطلبات تشفير الوسائط وحظر استخدام الكاميرا، في اللحظة الحاليةتوفر واجهة برمجة تطبيقات إدارة الأجهزة ميزات إضافية: متطلبات تغيير كلمة المرور وقفل الشاشة الفوري وإعادة ضبط المصنع (مع خيار المسح) تخزين خارجي- بطاقات SD)؛
  • مخاوف المستخدم فيما يتعلق بقدرة مسؤولي الشركة على الوصول إلى البيانات الشخصية والمراسلات وكلمات المرور الخاصة بأصحاب الأجهزة الشبكات الاجتماعيةوما إلى ذلك لا أساس لها على الإطلاق: لا توفر واجهة برمجة تطبيقات إدارة الأجهزة مثل هذه الإمكانات.

كيف يعمل هذا

حاليًا، تحتوي واجهة برمجة تطبيقات إدارة الأجهزة على ثلاث فئات تشكل الأساس لتطبيقات إدارة الأجهزة كاملة الميزات:

  • DeviceAdminReceiver: الفئة الأساسية للفئات التي تنفذ سياسات الإدارة؛ توفر طرق رد الاتصال من هذه الفئة وسيلة ملائمة لوصف ردود الفعل على أحداث معينة مرتبطة بالسياسات - "مستقبلات الرسائل" الفردية لأحداث مختلفة؛
  • DevicePolicyManager: فئة إدارة السياسات المطبقة على الجهاز؛
  • معلومات مسؤول الجهاز: فئة تستخدم لوصف البيانات الوصفية.

يتم تنفيذ منطق التطبيق الرئيسي في فئة تمتد إلى فئة DeviceAdminReceiver، وهي سليل فئة BroadcastReceiver. من المهم أن تتذكر هنا أن طرق رد الاتصال الخاصة بفئتنا يتم تنفيذها في مؤشر ترابط التطبيق الرئيسي (مؤشر ترابط واجهة المستخدم)، لذا فإن إجراء عمليات طويلة فيها أمر غير مقبول بسبب خطر حظر واجهة المستخدم. يجب تنفيذ جميع الإجراءات "طويلة الأمد" الضرورية في مؤشر ترابط آخر (أو حتى في خدمة منفصلة). مثل جهاز استقبال البث العادي، يجب وصف فئتنا في بيان التطبيق:

. . .
الروبوت: الاسم = ".MyDeviceAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN"
الروبوت:اسم = "android.app.device_admin"
android:resource="@xml/device_admin_data" />


android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>


. . .

كما ترون في المثال، سيتلقى جهاز الاستقبال لدينا رسائل ذات إجراء يساوي ACTION_DEVICE_ADMIN_ENABLED. لكي يتمكن النظام فقط من إرسال مثل هذه الرسائل إلينا، فإننا نطلب أذونات BIND_DEVICE_ADMIN (لا يتم منح هذه الأذونات للتطبيقات). يحتوي عنصر البيانات الوصفية على مرجع لمورد يحتوي على السياسات التي يدعمها التطبيق. في حالتنا، المسار إلى ملف XML هو: res/xml/device_admin_data. يتم عرض عينة محتويات الملف أدناه:










تصف العناصر الفرعية في سياسات الاستخدامات أنواع السياسات المستخدمة في التطبيق. يمكن العثور على قائمة كاملة بالسياسات المحتملة في ثوابت فئة DeviceAdminInfo، بما في ذلك على موقع Developer.android.com: http://developer.android.com/reference/android/app/admin/DeviceAdminInfo.html.

دعونا نلقي نظرة على مثال تنفيذ مكون الإدارة:

تقوم الفئة العامة MyDeviceAdminReceiver بتوسيع DeviceAdminReceiver (

@تجاوز
الفراغ العام onDisabled (سياق السياق، نية النية) (
super.onDisabled(context, Intent);
// يتم الاتصال به قبل توقف هذا التطبيق
// كن مسؤولاً عن الجهاز (سيتم تعطيله
// بواسطة المستخدم).
}

@تجاوز
الفراغ العام onEnabled (سياق السياق، نية النية) (

// يتم الاتصال به عندما يسمح المستخدم بالاستخدام
// هذا التطبيق هو مسؤول الجهاز.
// يمكن استخدام DevicePolicyManager هنا
// لتعيين سياسات الإدارة.
}

@تجاوز
الفراغ العام onPasswordChanged (سياق السياق، نية النية) (
super.onPasswordChanged(context,intent);
// يتم الاتصال به بعد أن يقوم المستخدم بتغيير كلمة المرور.
// هل تتوافق كلمة المرور الجديدة مع السياسات،
// يمكن العثور عليه باستخدام الطريقة
// DevicePolicyManager.isActivePasswordSufficient()
}

@تجاوز
الفراغ العام onPasswordExpiring (سياق السياق، نية النية) (
super.onPasswordExpiring(context,intent);
// تم الاتصال به عدة مرات مع اقتراب الوقت
// تقادم كلمة المرور: عند تشغيل الجهاز، مرة واحدة يوميًا
// قبل انتهاء صلاحية كلمة المرور وفي لحظة انتهاء صلاحية كلمة المرور.
// إذا لم يتم تغيير كلمة المرور منذ انتهاء الصلاحية، فإن الطريقة
// يتم الاتصال به مرة واحدة يوميًا
}

@تجاوز
الفراغ العام onPasswordFailed (سياق السياق، نية النية) (
super.onPasswordFailed(context,intent);
// يتم الاتصال به عند إدخال كلمة مرور غير صحيحة.
// يمكن العثور على عدد محاولات كلمة المرور الفاشلة
// باستخدام طريقة getCurrentFailedPasswordAttempts()
// فئة DevicePolicyManager.
}
. . .
}

لإدارة السياسات في أحد التطبيقات، تحتاج إلى الحصول على مرجع لمدير السياسة (لاحظ أنه يتم تمرير السياق إلى الطرق الموضحة أعلاه كمعلمة):

DevicePolicyManager dpm = سياق (DevicePolicyManager).

في المستقبل، سيتم استخدام هذا المدير لتعيين السياسات. يمكن أن تبدو طريقة onEnabled()، التي تحدد جودة كلمة المرور المطلوبة، كما يلي:

@تجاوز
الفراغ العام onEnabled (سياق السياق، نية النية) (
super.onEnabled(context, Intent);
DevicePolicyManager dpm = سياق (DevicePolicyManager).
.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName cn = ComponentName الجديد (السياق، getClass ())

dpm.setPasswordQuality(cn, DevicePolicyManager.
PASSWORD_QUALITY_NUMERIC)؛

يتم إجراء إعدادات معلمات كلمة المرور الأخرى باستخدام أساليب DevicePolicyManager المقابلة:

dpm.setPasswordMinimumLength(cn, 32);
dpm.setPasswordHistoryLength(cn, 10);
dpm.setPasswordExpirationTimeout(cn, 864000000L);

بالإضافة إلى تعيين السياسات، يسمح لك DevicePolicyManager بإجراء عمليات أخرى (بالطبع، ليس في طريقة onEnabled()):

  • قفل الشاشة الفوري:
    dpm.lockNow();
  • إعادة ضبط المصنع باستخدام بطاقة SD واضحة:
    dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
  • قفل الكاميرا:
    dpm.setCameraDisabled(cn, true);

معلومات إضافية

يمكن العثور على تطبيق مثال عملي منشور في حزمة Android SDK (<путь-к-SDK>/عينات/أندرويد-<версия-API/ApiDemos/).

يحتوي موقع الويب Developer.android.com على مقالات حول هذا الموضوع في أقسام التدريب: http://developer.android.com/training/enterprise/device-management-policy.html وأدلة واجهة برمجة التطبيقات: http://developer.android. كوم /guide/topics/admin/device-admin.html.

أوصاف فئات حزمة android.app.admin على نفس الموقع: http://developer.android.com/guide/topics/admin/device-admin.html.

يمكنك معرفة كيفية تطوير تطبيقات الهاتف المحمول لنظام Android على.

عادةً ما يكون تنزيل تطبيقات Android عملية مبسطة وبسيطة، حيث يمكنك العثور على التطبيقات التي تريدها في متجر Play، حيث سيتم منحك خيار "تثبيت" أو "شراء"، ثم تنتظر حتى يكتمل التثبيت. أو استخدم خدمة mobogenie حيث يتم جمع أفضل التطبيقات. ومن خلاله يمكنك البحث عن البرامج والألعاب وقراءة المراجعات وتثبيتها على هاتفك.



ومع ذلك، يبدو أن إزالة البرنامج مهمة أكثر صعوبة. عاجلاً أم آجلاً، يواجه كل مالك لأجهزة Android حقيقة أن هناك الكثير من البرامج على هواتفهم ويجب إزالتها (أو على الأقل جزء منها). وهنا قد يتبين أنه لن تتم إزالة بعض البرامج من الجهاز. وستتطلب هذه المشكلة حلاً تقنيًا خاصًا لا يملكه المستخدم العادي. لهذا السبب قررنا تسليط الضوء على هذه المشكلة بالتعاون مع خبراء من مورد Androidone.ru.

وفي أغلب الأحوال، يعود الأمر إلى أحد السيناريوهين:

السبب المحتمل رقم 1: تم تثبيت التطبيق كمسؤول

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

لتعطيل وصول المسؤول نيابة عن التطبيق، يجب عليك الانتقال إلى قائمة الإعدادات، والعثور على قسم الأمان وفتح عنصر مسؤول الجهاز. تحقق مما إذا تم تحديد التطبيق. إذا كانت الإجابة بنعم، فقم بإلغاء تحديد المربع. انتقل الآن إلى مدير التطبيقات - لن تكون هناك مشكلة في إلغاء تثبيت التطبيق.

السبب المحتمل رقم 2: التطبيق جزء من نظام Android

Bloatware هي مشكلة تؤثر على ملايين الهواتف. هذا هو الاسم العام للبرامج (غير الضرورية عادةً) التي عادةً ما تقوم شركات الاتصالات والمصنعون بتثبيتها مسبقًا على هاتفك قبل بيعه. في معظم الحالات، لا يمكن إلغاء تثبيت هذه التطبيقات لأنها جزء من نظام التشغيل.

ومع ذلك، لديك العديد من الخيارات. واحد منهم هو تعطيل التطبيق في القائمة. يؤدي هذا إلى تعطيل التطبيق وحمايتك من إهدار موارد النظام، لكن البرنامج سيشغل مساحة على القرص. يتم ذلك من خلال مدير التطبيق في قائمة الإعدادات - تحقق مما إذا كان التطبيق يحتوي على خيار "تعطيل". لتمكين التطبيق في المستقبل، تحتاج إلى تحريك شريط التمرير إلى اليمين في مدير التطبيقات.

يجب أن تعلم أيضًا أن الوصول إلى الجذر يسمح لك بإلغاء تثبيت أي تطبيق، حتى لو لم يكن من الممكن إلغاء تثبيته افتراضيًا.

لقد قمت بتنزيل اللعبة وتثبيتها ليس من سوق اللعب. الآن تظهر الإعلانات باستمرار وتحاول العديد من البرامج الأخرى تثبيتها. عندما أحاول إزالة البرنامج الذي كان سببًا في كل مشاكلي، يكون زر الإزالة غير نشط. قرأت أنه في هذه الحالة عليك الانتقال إلى قسم "مسؤولي الأجهزة" في إعدادات أمان الهاتف. يوجد هذا البرنامج الضار، عندما أحاول إلغاء تحديده، وفي النافذة التالية أؤكد، تصبح شاشة الهاتف فارغة. وبعد مرور بعض الوقت، يعود الهاتف إلى الحياة، ولكن هذا البرنامج الضار لا يزال مسؤولاً.
الرجاء مساعدتي في إزالة هذا البرنامج الضار.

من الصعب جدًا إزالة فيروس Android هذا، الذي يمنع إزالة علامة الاختيار في قسم "مسؤولي الأجهزة"، ولكنه ممكن. أي أنه ليست هناك حاجة للاندفاع على الفور وتغيير الهاتف.

1 طريقة لإزالة الفيروس الذي يطفئ شاشة هاتفك:

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

طريقتان لإزالة الفيروس الذي يطفئ شاشة هاتفك:

  1. تحميل برنامج Malwarebytes Anti-malware من سوق اللعب https://play.google.com/store/apps/details?id=org.malwarebytes.antimalware
  2. قم بتشغيل هاتفك وفحصه بالكامل، وقم بإزالة أي برامج ضارة تم العثور عليها.
  3. افتح إعدادات الهاتف، ثم الأمان، ثم مسؤولي الأجهزة. قم بإلغاء تحديد المربع الموجود بجوار البرامج الضارة. تأكيد أفعالك. إذا ظهرت نافذة تحتوي على الرسالة "لاستعادة التحديثات، يلزم إعادة ضبط المصنع بالكامل. سيتم حذف كافة المعلومات الموجودة على جهازك.."، ثم لا تتردد في النقر فوق "موافق". هذه الرسالة تهدف فقط إلى إخافتك.
  4. إذا نجحت الخطوة 3، فافتح قسم التطبيقات في إعدادات هاتفك وقم بإزالة البرنامج الضار.

في الطريقة الثانية، النقطة 1، بدلاً من Malwarebytes Anti-malware، يمكنك أيضًا تجربة KIS