भाग २ (६ पैकी)

अँड्रॉइड फोरेन्सिक

🕑 ६०-९० मिनिटे 🤖 Android प्लॅटफॉर्म 📋 मॉड्यूल ४

प्रस्तावना

Android हे जगातील सर्वात लोकप्रिय मोबाईल ऑपरेटिंग सिस्टम आहे, भारतात ~९५% बाजार हिस्सा असलेले. Google द्वारे विकसित हे ओपन-सोर्स OS Linux कर्नलवर आधारित आहे. फोरेन्सिक तपास अधिकाऱ्यांसाठी Android आर्किटेक्चर, डेटा स्थाने आणि निष्कर्षण तंत्रे समजून घेणे अत्यंत महत्त्वाचे आहे.

📚 शिक्षण उद्दिष्टे

हा भाग पूर्ण केल्यावर, तुम्ही Android आर्किटेक्चर समजून घ्याल, महत्त्वाची डेटा स्थाने ओळखाल, ADB साधने वापरणे शिकाल, SQLite डेटाबेस विश्लेषण कराल आणि रूटेड डिव्हाइसेस हाताळाल.

अँड्रॉइड आर्किटेक्चर

Android OS चे स्तरित आर्किटेक्चर समजून घेणे फोरेन्सिक विश्लेषणासाठी आवश्यक आहे:

💻

Linux Kernel

सर्वात खालचा स्तर - हार्डवेअर ऍब्स्ट्रॅक्शन, मेमोरी व्यवस्थापन, सुरक्षा, ड्रायव्हर्स.

📦

HAL (Hardware Abstraction Layer)

कॅमेरा, ब्लूटूथ, सेन्सर्ससाठी मानक इंटरफेस प्रदान करते.

Native Libraries

C/C++ लायब्ररीज - SQLite, WebKit, OpenGL, Media Framework.

Android Runtime (ART)

DEX bytecode एक्झिक्यूशन, ॲप्स चालवण्यासाठी व्हर्च्युअल मशीन.

🛠

Java API Framework

ॲप डेव्हलपर्ससाठी APIs - Activity Manager, Content Providers, etc.

📱

System Apps

प्री-इंस्टॉल्ड ॲप्स - डायलर, संपर्क, संदेश, सेटिंग्ज.

Android सुरक्षा मॉडेल

  • ॲप सँडबॉक्सिंग: प्रत्येक ॲप वेगळ्या Linux युजर ID अंतर्गत चालते
  • परवानग्या (Permissions): ॲप्सना विशिष्ट संसाधनांसाठी वापरकर्त्याची परवानगी आवश्यक
  • SELinux: Mandatory Access Control (MAC) सुरक्षा धोरण
  • फुल-डिस्क एन्क्रिप्शन (FDE): संपूर्ण स्टोरेज एन्क्रिप्टेड (Android 5+)
  • फाइल-आधारित एन्क्रिप्शन (FBE): प्रत्येक फाइल वेगळी एन्क्रिप्टेड (Android 7+)
  • Verified Boot: बूट प्रक्रियेची अखंडता सत्यापन
एन्क्रिप्शन आव्हान

Android 7+ डिव्हाइसेसमध्ये FBE सक्षम असल्यास, डिव्हाइस अनलॉक केल्याशिवाय बहुतेक वापरकर्ता डेटा ऍक्सेस करणे अशक्य आहे. लॉक्ड डिव्हाइसेसवर केवळ डिव्हाइस-एन्क्रिप्टेड (DE) स्टोरेज उपलब्ध असतो.

डेटा स्थाने

Android डिव्हाइसेसमध्ये डेटा विशिष्ट स्थानांवर साठवला जातो. फोरेन्सिक तपासासाठी या स्थानांची माहिती असणे आवश्यक आहे:

प्रमुख विभाजने (Partitions)

विभाजन माउंट पॉइंट वर्णन
/system /system Android OS आणि प्री-इंस्टॉल्ड ॲप्स (केवळ वाचनीय)
/data /data वापरकर्ता डेटा, इंस्टॉल केलेले ॲप्स, सेटिंग्ज (सर्वात महत्त्वाचे)
/cache /cache तात्पुरती फाइल्स, OTA अपडेट्स
/sdcard /storage/emulated/0 वापरकर्ता फाइल्स - फोटो, व्हिडिओ, डाउनलोड्स
/boot - Kernel आणि ramdisk
/recovery - रिकव्हरी मोड सिस्टम

/data विभाजनातील महत्त्वाचे फोल्डर्स

/data/data/ # ॲप-विशिष्ट डेटा (databases, shared_prefs, files) /data/app/ # इंस्टॉल केलेल्या ॲप्सचे APK फाइल्स /data/system/ # सिस्टम सेटिंग्ज, अकाउंट्स, पासवर्ड्स /data/misc/ # WiFi पासवर्ड्स, ब्लूटूथ पेअरिंग /data/local/ # तात्पुरती फाइल्स, ADB द्वारे ऍक्सेसिबल /data/media/ # इंटर्नल स्टोरेज (emulated SD card) /data/user_de/ # Device-encrypted स्टोरेज (FBE)

महत्त्वाचे डेटाबेस फाइल्स

डेटाबेस स्थान सामग्री
contacts2.db /data/data/com.android.providers.contacts/databases/ संपर्क, कॉल लॉग्स
mmssms.db /data/data/com.android.providers.telephony/databases/ SMS/MMS संदेश
calendar.db /data/data/com.android.providers.calendar/databases/ कॅलेंडर इव्हेंट्स
external.db /data/data/com.android.providers.media/databases/ मीडिया फाइल्स इंडेक्स
browser2.db /data/data/com.android.browser/databases/ ब्राउझर इतिहास, बुकमार्क्स

ADB साधने

Android Debug Bridge (ADB) हे Android डिव्हाइसेसशी संवाद साधण्यासाठी Google चे अधिकृत कमांड-लाइन साधन आहे. फोरेन्सिक निष्कर्षणासाठी ADB अत्यंत उपयुक्त आहे.

ADB सक्षम करणे

  1. Settings > About Phone > Build Number वर 7 वेळा टॅप करा
  2. Developer Options अनलॉक होतील
  3. Settings > Developer Options > USB Debugging सक्षम करा
  4. संगणकाशी USB द्वारे कनेक्ट करा
  5. फोनवर RSA key fingerprint स्वीकारा

मूलभूत ADB कमांड्स

# डिव्हाइस कनेक्शन तपासा adb devices # डिव्हाइस शेल ऍक्सेस adb shell # फाइल डिव्हाइसवरून संगणकावर कॉपी करा adb pull /sdcard/DCIM/photo.jpg C:\Evidence\ # फाइल संगणकावरून डिव्हाइसवर कॉपी करा adb push C:\tool.apk /sdcard/ # स्क्रीनशॉट घ्या adb shell screencap /sdcard/screenshot.png # इंस्टॉल केलेल्या ॲप्सची यादी adb shell pm list packages # डिव्हाइस माहिती adb shell getprop

फोरेन्सिक ADB कमांड्स

# Android बॅकअप तयार करा (लॉजिकल निष्कर्षण) adb backup -apk -shared -all -f backup.ab # विशिष्ट ॲपचा बॅकअप adb backup -apk com.whatsapp -f whatsapp_backup.ab # बॅकअप एक्स्ट्रॅक्ट करा (Android Backup Extractor वापरून) java -jar abe.jar unpack backup.ab backup.tar # Logcat (सिस्टम लॉग्स) adb logcat -d > logcat.txt # Bugreport (सर्वसमावेशक सिस्टम माहिती) adb bugreport > bugreport.zip # Dumpsys (सिस्टम सेवा माहिती) adb shell dumpsys battery adb shell dumpsys activity adb shell dumpsys location
💡 व्यावहारिक टीप

ADB बॅकअप Android 12+ मध्ये मर्यादित आहे. नवीन डिव्हाइसेससाठी Cellebrite, Oxygen सारखी व्यावसायिक साधने किंवा ALEAPP/aLEAPP सारखी ओपन-सोर्स साधने अधिक प्रभावी आहेत.

SQLite डेटाबेस विश्लेषण

Android ॲप्स डेटा साठवण्यासाठी SQLite डेटाबेस वापरतात. संपर्क, संदेश, ब्राउझर इतिहास, ॲप डेटा - सर्व SQLite फॉरमॅटमध्ये असतात.

SQLite ब्राउझर साधने

  • DB Browser for SQLite: मोफत, GUI-आधारित, Windows/Mac/Linux
  • SQLite Expert: प्रगत वैशिष्ट्ये, Windows
  • sqlite3 CLI: कमांड-लाइन इंटरफेस
  • Autopsy SQLite Viewer: फोरेन्सिक-विशिष्ट

SQLite कमांड्स

# डेटाबेस उघडा sqlite3 contacts2.db # टेबल्सची यादी .tables # टेबल स्कीमा पहा .schema contacts # सर्व संपर्क पहा SELECT * FROM contacts; # कॉल लॉग पहा SELECT number, date, duration, type FROM calls; # SMS संदेश पहा SELECT address, body, date FROM sms; # CSV मध्ये एक्सपोर्ट .mode csv .output contacts.csv SELECT * FROM contacts;

महत्त्वाचे SQLite आर्टिफॅक्ट्स

फाइल उद्देश
.db फाइल मुख्य डेटाबेस
.db-wal Write-Ahead Log - अलीकडील बदल, uncommitted डेटा
.db-shm Shared Memory - WAL साठी इंडेक्स
.db-journal Rollback journal - जुन्या आवृत्त्यांमध्ये
WAL फाइल्स महत्त्वाच्या

-wal फाइल्समध्ये अलीकडील डेटा असतो जो अद्याप मुख्य डेटाबेसमध्ये लिहिला गेलेला नाही. डिलीटेड संदेश किंवा अलीकडील ॲक्टिव्हिटी येथे सापडू शकते. नेहमी .db आणि -wal दोन्ही फाइल्स एकत्र विश्लेषित करा.

रूटेड डिव्हाइस

रूटिंग म्हणजे Android डिव्हाइसवर सुपरयुजर (root) ऍक्सेस मिळवणे. रूटेड डिव्हाइसेसवर संपूर्ण फाइल सिस्टम ऍक्सेस शक्य आहे, परंतु फोरेन्सिक आव्हाने देखील आहेत.

रूटिंगचे प्रकार

🔓

Soft Root

ॲप-आधारित रूटिंग (Magisk, SuperSU). रिबूटनंतर राखले जाते, सहज काढता येते.

🔒

Hard Root

कस्टम रिकव्हरी/बूटलोडर अनलॉक करून. सिस्टम पार्टिशन बदलणे आवश्यक.

रूटेड डिव्हाइसवर फोरेन्सिक ऍक्सेस

# Root शेल ऍक्सेस adb shell su # /data विभाजन ऍक्सेस ls -la /data/data/ # ॲप डेटाबेस कॉपी करा cp /data/data/com.whatsapp/databases/* /sdcard/ # फुल डिस्क इमेज (dd) dd if=/dev/block/mmcblk0 of=/sdcard/full_image.dd bs=4096 # विशिष्ट विभाजन इमेज dd if=/dev/block/mmcblk0p43 of=/sdcard/data_partition.dd

फोरेन्सिक रूटिंग विचार

  • पुरावा बदल: रूटिंग प्रक्रियेमुळे डेटा बदलू शकतो - तारीख/वेळ बदल
  • दस्तऐवजीकरण: रूटिंगपूर्वी आणि नंतर सर्व क्रियांचे दस्तऐवजीकरण
  • कायदेशीर मान्यता: काही न्यायक्षेत्रांमध्ये रूटिंग स्वीकार्य नसू शकते
  • विनाशकारी: चुकीच्या रूटिंगमुळे डेटा नष्ट होऊ शकतो
  • आधीपासून रूटेड: संशयित व्यक्तीने आधीच रूट केलेले डिव्हाइस - अखंडता प्रश्न
💡 Magisk रूट शोधणे

Magisk रूटेड डिव्हाइस ओळखण्यासाठी: /data/adb/magisk/ फोल्डर तपासा, com.topjohnwu.magisk पॅकेज शोधा, किंवा "su" बायनरी /system/xbin/ किंवा /sbin/ मध्ये शोधा.

निष्कर्षण पद्धती

Android डिव्हाइसेसवरून डेटा निष्कर्षणाच्या विविध पद्धती उपलब्ध आहेत:

१. ADB बॅकअप (लॉजिकल)

  • USB डिबगिंग सक्षम आवश्यक
  • वापरकर्त्याने बॅकअप परवानगी द्यावी
  • सर्व ॲप्स बॅकअप होणार नाहीत (android:allowBackup="false")
  • Android 12+ मध्ये खूप मर्यादित

२. Content Provider क्वेरी

# संपर्क क्वेरी adb shell content query --uri content://contacts/phones/ # SMS क्वेरी adb shell content query --uri content://sms/ # कॉल लॉग क्वेरी adb shell content query --uri content://call_log/calls/

३. Agent-Based निष्कर्षण

  • विशेष ॲप डिव्हाइसवर इंस्टॉल करणे
  • ॲप द्वारे डेटा निष्कर्षण आणि ट्रान्सफर
  • Cellebrite, Oxygen साधने हे वापरतात
  • पुरावा स्वीकार्यता प्रश्न - ॲप इंस्टॉलेशनमुळे बदल

४. फिजिकल निष्कर्षण (रूट आवश्यक)

  • dd कमांडने बिट-बाय-बिट इमेज
  • सर्व डेटा + unallocated स्पेस + डिलीटेड डेटा
  • सर्वात संपूर्ण परंतु सर्वात आव्हानात्मक

५. JTAG/Chip-off (अत्यंत प्रकरणे)

  • हार्डवेअर-स्तर निष्कर्षण
  • विशेष उपकरणे आवश्यक
  • चिप-ऑफ अपरिवर्तनीय - डिव्हाइस नष्ट होते
  • एन्क्रिप्टेड डेटासाठी मर्यादित उपयोग
मुख्य मुद्दे
  • Android Linux कर्नलवर आधारित ओपन-सोर्स OS आहे, स्तरित आर्किटेक्चर (Kernel, HAL, ART, Framework, Apps)
  • /data विभाजन सर्वात महत्त्वाचे - वापरकर्ता डेटा, ॲप डेटाबेस, सेटिंग्ज येथे असतात
  • ADB (Android Debug Bridge) फोरेन्सिक निष्कर्षणासाठी प्राथमिक साधन - USB Debugging सक्षम आवश्यक
  • SQLite डेटाबेस विश्लेषण महत्त्वाचे - .db आणि -wal फाइल्स दोन्ही तपासा
  • रूटेड डिव्हाइसेस संपूर्ण ऍक्सेस देतात परंतु पुरावा अखंडता आणि कायदेशीर प्रश्न निर्माण होतात
  • Android 7+ मध्ये FBE एन्क्रिप्शनमुळे लॉक्ड डिव्हाइसवर डेटा ऍक्सेस अत्यंत कठीण
  • निष्कर्षण पद्धती: ADB बॅकअप, Content Provider, Agent-Based, Physical (dd), JTAG/Chip-off