Keamanan IOT. Masalah 1. Jam tangan pintar, pelacak kebugaran, dan timbangan


Dalam artikel terakhir saya, saya berbicara tentang bagaimana saya pergi ke DefCamp . Artikel hari ini adalah bagian pertama dari publikasi tentang penelitian saya tentang keamanan Internet, yang menjadi dasar presentasi saya di konferensi.

IoT berkembang pesat: sekarang ada lebih dari 260 perusahaan , termasuk kota pintar, pabrik, tambang, perusahaan minyak, pengecer, layanan kesehatan, pendidikan dan banyak lagi. Siklus publikasi hanya akan mencakup bidang teknologi yang dapat dipakai, obat pintar dan rumah pintar, termasuk aplikasi mobile.

Saat ini, teknologi pintar mulai lebih masuk akal daripada menghubungkan headset Bluetooth ke telepon, dan itu menjadi biasa, yang menunjukkan pemahaman tentang apa tujuan teknologi cerdas digunakan untuk dan skenario mana yang dapat diotomatisasi.

Berita buruknya adalah banyak dari perangkat baru ini menjadi target serangan. Pada saat yang sama, masalah keamanan diselesaikan secara surut atau tidak diselesaikan sama sekali karena kurangnya dukungan untuk perangkat lama. Perangkat tersebut menimbulkan risiko serius bagi infrastruktur (rumah atau bisnis) jika tidak dikelola dengan baik. Oleh karena itu, di bawah ini kami mempertimbangkan sejumlah masalah yang terkait dengan keamanan hal-hal cerdas, metode dan alat peretasan yang tersedia, serta fitur pemrosesan data dan perlindungan. Tujuan dari penelitian ini bukan untuk mengimplementasikan atau menggambarkan metode "turnkey hacking", tetapi untuk meninjau pendekatan yang, dalam kondisi tertentu, dapat menyebabkan akses ke data, serta untuk meninjau situasi di mana pengembang karena alasan tertentu memutuskan untuk tidak melindungi data pengguna. Bahan-bahan disajikan secara umum (informasi lengkap dapat ditemukan di situs web resmi.

Teknologi yang Dapat Dipakai - Jam Tangan Pintar


Jam tangan Apple




MITM


Arloji berinteraksi melalui Bluetooth, atau, jika saluran ini tidak tersedia, melalui Wi-Fi untuk berkomunikasi dengan telepon dan server Apple. Transfer data jaringan antara cloud dan aplikasi telepon / arloji dienkripsi dengan TLS1.2 dan perlindungan terhadap serangan MITM dan Pinning SSL. Pada saat yang sama, jam tangan, tidak seperti ponsel, tidak memiliki antarmuka untuk menginstal sertifikat SSL root custom. Aliran data yang tidak terenkripsi tidak terdeteksi.

Kunci Bypass Layar


Menggunakan kode sandi pada jam tangan pintar seringkali merupakan item opsional, tetapi dapat dimasukkan. Apple memungkinkan Anda mengatur ulang kode sandi dengan berbagai cara , tetapi hanya satu yang secara kondisional dapat menghindari penghapusan data.

Metode yang terakhir didasarkan pada mekanisme menghubungkan kembali arloji ke perangkat dengan pemulihan data dengan perubahan kode sandi. Skenario seperti itu digunakan kapan pun ia seharusnya memberi waktu untuk perbaikan atau penjualan, karena diperlukan untuk memutuskan sambungan mode Kunci Aktivasi. Artinya, menghapus ikatan jam tangan pada ponsel akan menghapus data dari arloji, namun, telepon mencadangkan data arloji untuk selanjutnya mengembalikan data pada arloji . Dan karena cadangan tidak hanya menyimpan kartu bank, kode sandi, dan pengaturan jam Bluetooth, Anda dapat mengakses data dan juga mengatur kode sandi baru.

Untuk melakukan metode ini, Anda harus melakukan langkah-langkah berikut:

  • Arloji dan telepon harus dekat; Aplikasi Apple Watch harus berjalan di telepon.
  • Pada tab "My Watch tab", jam yang diperlukan dipilih dan tindakan dikonfirmasi oleh "Unpair Apple Watch".
  • Selanjutnya, Anda perlu memasukkan kata sandi untuk akun Apple Anda (jika kata sandi dilupakan, diusulkan untuk meresetnya ).
  • Konfirmasi akhir dari tindakan tersebut.

Karena metode ini berinteraksi dengan kredensial Apple, dimungkinkan untuk mengaksesnya dengan mengatur ulang kata sandi menggunakan solusi forensik , yang pada akhirnya memungkinkan Anda untuk menghapus kode sandi pada arloji Apple.

Jailbreak


Jailbreak untuk platform iOS selalu berfungsi sebagai cara untuk meningkatkan hak istimewa untuk berbagai sistem operasi (iOS, tvOS, dan watchOS). Terlepas dari popularitasnya, ada beberapa jam tangan jailbreak yang diketahui untuk jam tangan Apple (tersedia di bawah ini tercantum):

Jailbreak untuk usb


Penjara & Koneksi Bluetooth melalui SSH


Cadangan


Karena jam tangan Apple terutama berfungsi sebagai perangkat tambahan, aplikasi yang diinstal pada jam tangan adalah widget, dan semua informasi disimpan dalam aplikasi di telepon. Meskipun demikian, aplikasi arloji masih menyimpan bagian tertentu sendiri, yang memungkinkan Anda mempertimbangkan opsi untuk mengakses data melalui cadangan (saat berinteraksi dengan jam yang sudah ada di PC / Mac di cloud). Harus diingat bahwa dalam produk Apple, banyak data lintas platform, dan disinkronkan di antara semua perangkat.

Untuk akses ke data, solusi forensik dan aplikasi biasa untuk bekerja dengan file cadangan cocok (dalam kasus cadangan cloud atau skenario bypass akses, hanya solusi forensik atau dekat dengan mereka); Perlu dicatat bahwa banyak aplikasi saat ini mungkin tidak memiliki akses untuk melihat isi file cadangan, oleh karena itu salah satu alat yang mungkin adalah iphone backup extractor (dalam versi dasar berlangganan itu memungkinkan akses ke data jam, dan versi lengkap dan bisnis masih memiliki dukungan 2FA akses ke data).

Informasi yang diperlukan tentang perangkat terletak di file /mobile/Library/DeviceRegistry.state/properties.bin dan mencakup parameter berikut:

  • Tonton data, termasuk nama, pabrikan, model, OS, GUID.
  • Nomor seri, UDID, alamat MAC Wi-Fi, SEID (Secure Element ID), alamat MAC Bluetooth.

Daftar aplikasi yang terinstal dapat ditemukan di dua tempat:

  • Dalam file "com.apple.Carousel" yang terletak di jalur /mobile/Library/DeviceRegistry/GUID/NanoPreferencesSync/NanoDomains/com.apple.Carousel
  • Dalam subfolder dari folder “ / mobile / Library / DeviceRegistry / GUID

Tergantung pada aplikasi yang diinstal, akses, misalnya, dapat diperoleh ke buku alamat, yang disinkronkan dengan telepon dan merupakan tipe data lintas platform (data ditempatkan di file / mobile / Library / DeviceRegistry / GUID / AddressBook / ) atau ke repositori buku tabungan yang menyimpan perbankan kartu atau kartu program loyalitas, berbagai tiket buku tabungan (data ditempatkan di file /mobile/Library/DeviceRegistry/GUID/NanoPasses/nanopasses.sqlite3 ). Database yang terakhir dalam tabel “Pass table” berisi data dalam tiga bagian (gambar di bawah ini diambil dari ponsel, bukan jam, untuk kenyamanan menonton):

  • Unique_ID
  • Type_ID (tiket, kartu loyalitas, dll.)
  • Isi yang dikodekan dari “pass” yang terpisah (dalam format nilai / data)



Juga, Apple Watch menyediakan akses ke data aplikasi Apple Health dan mengisi data aplikasi ini dari berbagai sumber, termasuk di antara yang dimasukkan pengguna secara manual. Sebagai aturan, data aplikasi ini dienkripsi, oleh karena itu data tersebut hanya dapat dicadangkan jika kata sandi dibuat (mis. File cadangan dienkripsi). Namun, aplikasi ini memiliki opsi untuk mengekspor data dalam bentuk yang jelas tanpa enkripsi (dalam arsip zip). Saat mengekspor data, penting untuk mempertimbangkan bahwa arsip dapat diekspor ke aplikasi apa pun: file apel, penyimpanan cloud, IM, dll., Di mana tidak ada enkripsi tambahan. Aplikasi ini diuraikan secara terpisah di bawah ini di bagian Apple Health.

Jam Tangan Android


Samsung Gear



Menonton lg



Jam tangan Android diproduksi oleh berbagai produsen (Asus, Samsung, LG, dll.). Tidak seperti Apple watches, mereka sering menawarkan satu set lengkap dengan modul 3G-4G untuk memasang kartu SIM, daripada eSIM, kalau tidak fungsionalitasnya tidak berbeda.

Di antara pendekatan untuk akses data, berikut ini dibedakan:

  • Penelitian forensik (fisik, logis dan jaringan)
  • Kunci Bypass Layar
  • Menggunakan Alat Analisis Data Root

Hanya opsi pertama yang akan dipertimbangkan dalam artikel sebagai bagian dari menyalin gambar, bagian dan alat root. Penelitian logis (termasuk sebagai bagian dari cadangan) tidak berbeda dari metode yang dikenal. Versi online dari penelitian ini mendapatkan popularitas dan tidak terwakili secara luas bahkan dalam kerangka solusi forensik siap pakai. Ini terdiri dalam reproduksi mekanisme interaksi untuk bertukar data melalui Wi-Fi, Bluetooth, termasuk Metode MITM, tetapi membutuhkan pertimbangan dalam artikel terpisah.

Salin gambar perangkat


Saat menganalisis perangkat Android, pendekatannya tidak berubah, hanya alat yang berbeda (contoh alat akan diberikan di bagian untuk Samsung / LG). Untuk menyalin konten perangkat, penyalinan bitwise seluruh perangkat atau partisi individu dapat digunakan. Untuk tujuan ini gunakan mode pengembang. Opsi paling sederhana adalah dengan menggunakan perintah adb shell dan adb pull untuk mengakses data. Tergantung pada pabrikan, model perangkat, dan versi OS, toolkit ADB, SDB, atau MTK dapat digunakan. Paling sering, bagian pengguna " / dev / block / mmcblk0p12 / data " disalin untuk analisis, tetapi bagian lain dapat disalin jika perlu:

  • DD if = / dev / block / mmcblk0p12 / data = /storage/extSdCard/data.dd
  • DD if = / dev / block / mmcblk0p8 / cache dari = /storage/extSdCard/cache.dd
  • DD if = / dev / block / mmcblk0p3 / efs dari = /storage/extSdCard/efs.dd
  • DD if = / dev / block / mmcblk0p09 / sistem = /storage/extSdCard/system.dd

Kunci Bypass Layar


Untuk Wear OS, penggunaan kode pin adalah opsional, sehingga jam tangan sering tidak dilindungi oleh kode pin. Ada lebih banyak cara untuk memintas kunci untuk jam tangan Android daripada untuk Apple.

  • Manajemen kata sandi berbasis akun.
  • Gesture.key dan settings.db (Interaksi dengan file kunci).
  • Kunci ADB

Manajemen kata sandi berbasis akun

Cara yang paling tidak invasif untuk memintas kunci adalah dengan menggunakan akun Google dan kredensial yang diperoleh dengan cara tertentu. Metode dapat berbeda, termasuk akses ke akun melalui solusi forensik. Setelah mendapatkan akses, dimungkinkan untuk membuka kunci perangkat dari jarak jauh atau memasukkan kode PIN baru, yang dalam kedua kasus memungkinkan Anda untuk memotong kunci kode PIN.

Gesture.key dan pengaturan.db

ADB atau analognya adalah bagian dari alat pembangunan dan bekerja secara independen darinya. Utilitas ini dapat digunakan untuk memodifikasi file sistem dan menghapusnya: file gesture.key yang bertanggung jawab untuk mengunci kode PIN dan file settings.db yang bertanggung jawab untuk membuka kunci perangkat yang terkunci. Dalam kedua kasus, diperlukan akses fisik ke perangkat; untuk file pertama, satu set perintah untuk menghapus " adb.exe shell; cd / data / sistem; rm gesture.key ”dan mode debugging yang diaktifkan 'Mode debugging' atau pelaksanaan perintah melalui pemulihan kustom seperti ClockworkMod atau Team Win Recovery Project (TWRP).

Demikian pula, untuk settings.key, Anda harus menjalankan perintah “ perbarui sistem set value = 0 ”, yang akan mengarah pada penggantian nilai-nilai dari lock_pattern_autolock dan lockscreen.lockedoutpermenently parameter dan membuka kunci perangkat tanpa mengetahui kode PIN.

Perlu juga dicatat bahwa bootloader yang terkunci dan kurangnya alat pembuka kunci tidak memungkinkan akses ke data, dalam kasus lain, terutama jika pemulihan kustom sudah diinstal, tidak ada kesulitan dengan akses.

Adb keys

Cukup sering, penggunaan perangkat untuk berbagai skenario mengarah ke pengaturan yang tidak aman dan status perangkat. Khususnya, ketika menggunakan perangkat untuk pengembangan, itu akan memaksa mode debugging USB untuk diaktifkan, dan kunci pengembangan adbkey dan adbkey.pub terletak di direktori pengguna // Android / akan ditempatkan pada PC yang disinkronkan dengan perangkat. Dengan demikian, mode itu sendiri memungkinkan Anda untuk menginstal perangkat lunak pihak ketiga, memotong kunci layar, dan tombol dapat digunakan untuk mentransfer status "sinkronisasi" ke lokasi baru.

Pakai OS dan Root


Untuk jam tangan Android, OS Android digunakan disesuaikan dengan kebutuhan fisik perangkat. Sejalan dengan jam tangan Asus Zenwatch, Huawei Watch, LG Watch dan banyak lainnya, OS Android digunakan, dalam kasus Samsung Watches - Tizen OS.

Android Wear dimulai dengan 4.4W1, 4.4W2, 1.0 dan berakhir dengan versi 2.9, yang sesuai dengan Android biasa, dimulai dengan 4.4. Versi 4.4, 5.0.1 dan berakhir dengan 7.1.1 / 8.0.0 (Feb 2018). Versi baru setelah mengubah merek pada OS Wear mulai dengan 1.0 (Android 7.1.1 / 8.0.0 - Mar 2018 dan versi 2.1 (7.1.1 / 9.0.0 - September 2018) dan seterusnya. Toolkit root secara luas disajikan untuk Android Pakai versi 2.0.

Rooting:


Pemulihan - Untuk mencari versi yang diperlukan, Anda dapat menggunakan pencarian :

  • TWRP
  • Untuk versi 5.1.1 twrp-3.1.0-0.img cocok
  • Untuk versi 6.0.1 dan Wear 2.0, twrp-3.0.0-0.img cocok
  • Untuk Samsung Gear & LG Watch, versi 2.8.4 dan lebih tinggi cocok

Misalnya, Samsung Gear Watch & LG Watch


Dengan mengabaikan parameter teknis Samsung Gear, Anda dapat mempertimbangkan opsi meneliti perangkat sebagai bagian dari studi forensik fisik. Arloji tidak mendukung koneksi Wi-Fi, hanya koneksi Bluetooth dan USB yang tersedia, serta perlindungan kode PIN opsional. Dalam kasus Samsung, diperlukan SDB (smart development bridge), yang merupakan bagian dari Tizen-SDK. Dalam kasus LG, perangkat alat Android tradisional, ADB, diperlukan.

Ekstraksi data dapat dijelaskan dalam tiga langkah.

Tahap nomor 1. Mendapatkan Root untuk Samsung

Untuk mendapatkannya, Anda perlu menemukan gambar khusus yang sesuai, utilitas universal untuk perangkat Samsung - Odin 3.0, menempatkan perangkat dalam mode pengembangan (dengan mengaktifkan SDB), memasukkannya ke mode "mode unduhan" dan menjalankan perintah " Sdb shell, sdb root "

Tahap nomor 1. Mendapatkan Root untuk LG

Sebelum mendapatkan akses root, Anda harus mengaktifkan mode Debug ADB. Setelah itu, gunakan LG Watch Restore Tools, reboot ke bootloader dan perbarui gambar:

  • adb reboot-bootloader
  • buka kunci fastboot OEM
  • adb push SuperSU.zip / sdcard / unduh
  • adb reboot-bootloader
  • boot fastboot twrp.img
  • Instal SuperSu.zip, dan tunggu reboot

Tahap nomor 2. Memperoleh gambar perangkat

Di antara berbagai alat pengembangan Android, ada Toybox yang populer, yang memungkinkan Anda untuk membuat gambar perangkat untuk ekstraksi lebih lanjut dan mempelajari data. Paket Toybox terletak di drive eksternal atau di folder unduhan memori utama. Hak akses untuk eksekusi kotak mainan diubah, pencarian bagian yang sesuai untuk penyalinan dilakukan (dengan menjalankan perintah “ cd / dev / block / platform / msm_sdcc.1; ls -al dengan-nama ). Sebagai aturan, bagian pengguna (userdata) yang terletak di / dev / block / mmcblk0p21 disalin . Setelah itu, menggunakan kotak mainan, dd dan netcat, gambar bagian yang sesuai disalin:

  • adb push toybox / sdcard / unduh
  • adb shell; su
  • mv / sdcard / unduh / toybox / dev /
  • chown root: root toybox;
  • chmod 755 kotak mainan
  • cd / dev / block / platform / msm_sdcc; ls -al dengan nama
  • / * Partisi gambar dengan dd dan pipa ke netcat, -L menempatkan netcat dalam mode mendengarkan * /
  • dd if = / dev / block / mmcblk0p21 | ./toybox nc -L
  • / * Nomor port yang didengarkan pada arloji yang ditampilkan untuk pengguna * /
  • 44477 / * port ditampilkan * /
  • adb maju tcp: 44867 tcp: 44867
  • / * Kirim permintaan untuk menonton pada nomor port 44867 dan mengirimkannya ke file gambar * /
  • nc 127.0.0.1 44867> Samsung.IMG



Tahap nomor 3. Ekstraksi data

Data yang paling berguna, yang disimpan secara independen di arloji itu sendiri dalam kasus Samsung, ditempatkan di basis data berikut:

  • Pesan - apps.com.samsung.message.data.dbspace / msg-consumer-server.db
  • Data Kesehatan / Kebugaran - apps.com.samsung.shealth / shealth.db
  • Email - apps.com.samsung.wemail.data.dbspace / wemail.db
  • Kontak / Buku alamat - dbspace / kontak-svc.db

Dalam kasus jam tangan LG —— dalam basis data berikut:

  • Acara / Pemberitahuan - data.com.android.providers.calendar.databases / calendar.db
  • Kontak / Buku alamat - data.com.android.providers.contacts.databases / kontak2.db
  • Data Kesehatan / Kebugaran - data.com.google.android.apps.fitness.databases / pedometer.db

Pelacak Kebugaran - Xiaomi Band




Pelacak kebugaran adalah perangkat tambahan, dan semua data dikumpulkan di aplikasi Mi-Fit, yang selalu berinteraksi melalui koneksi terenkripsi dengan TLS1.2 dengan server Amazon AWS, terutama terletak di UE. Sejumlah permintaan tanpa referensi ke tindakan masuk ke server AS. Dalam kasus Mi Fit, enkripsi tidak sepenuhnya mencegah serangan MITM karena kurangnya SSL Pinning dan kemampuan untuk menginstal sertifikat root pada perangkat. Dalam hal ini, akses ke semua data yang dikirimkan melalui jaringan terjadi. Secara lokal, folder aplikasi berisi log peristiwa terperinci dan indikator kebugaran pengguna dari mana data ini diperoleh sebagai bagian dari skenario pengguna, misalnya

Permintaan server api-mifit.huawei.com

GET /users/-/sports?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&sportCategory=run&timezone=GMT-3%3A00 HTTP/1.1 Content-Type: application/json 

Jawabannya

 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 716 { "items" : [ { "trackId" : "1496744715", "startTime" : 1496744715, "endTime" : 1496748315, "sportTime" : 1800, "distance" : 3600, "calories" : 3.5, "averagePace" : 2.0, "averageStepFrequency" : 39, "averageStrideLength" : 68, "timestamp" : 1496744715, "averageHeartRate" : 90, "altitudeAscend" : 20, "altitudeDescend" : 10, "secondHalfStartTime" : 600, "strokeCount" : 30, "foreHandCount" : 15, "backHandCount" : 15, "serveCount" : 30, "type" : "OUTDOOR_RUN" } ] } 

Pelacak Kebugaran - Huawei Honor Band




Huawei Honor Band, seperti Xiaomi Band, bukan perangkat mandiri, dan semua data dikumpulkan oleh aplikasi yang diinstal pada ponsel. Aplikasi ini juga mengandalkan koneksi TLS, namun, tidak seperti Xiaomi, ia memiliki sejumlah kecil koneksi. Semua dari mereka cukup terlindungi, termasuk dari serangan MITM dan serangan Strip SSL.

Pada saat yang sama, banyak data diterima secara lokal sebagai bagian dari cadangan, yang diperoleh dari sensor pelacak, yang dapat dibagi menjadi data layanan, pengguna, dan kebugaran, yang, pada gilirannya, dibagi menjadi mentah dan teragregasi. Daftar data untuk iOS, tetapi tidak berbeda dari versi Android.

  • Data perangkat dan log terletak di folder / hms / oclog / crash, / hms / oclog / log.
  • Nilai terkini dan terbaru pelacak mencakup informasi tentang tidur, data bangun, jarak (jarak, jarak tempuh, dll.), Detak jantung dan kalori. Mereka berada di file /Documents/*.archiver.
  • Firmware mencakup semua data, lokasi, URL tempat ia diunduh, ukuran, log perubahan, bendera pembaruan paksa, dan file firmware itu sendiri, yang diunduh melalui HTTP sebagai bagian dari pembaruan aman DFU , kecuali untuk versi paling awal.
  • Data geo mencakup informasi lokasi dengan referensi waktu dan pemisahan berdasarkan hari dan jenis kegiatan, serta data tentang kecepatan dan arah gerakan, jika ada. Mereka juga terletak di folder /*.archiver.
  • Data pengguna mencakup informasi dasar - gambar profil, nama, tanggal lahir, tinggi, berat, jenis kelamin, usia, dan data umum tentang langkah dan jarak tempuh. Juga terletak di folder /*.archiver.
  • Detail akun termasuk UDID, Token, UserID, SessionID, Alamat Perangkat Mac dan Tombol Bluetooth.



Aplikasi Kebugaran - Sepeda Jalan, Sepeda Gunung




Sebagai contoh aplikasi kebugaran, versi RoadBike & MountainBike PRO dipertimbangkan, yang tidak berbeda dalam implementasinya.

Aplikasi ini melacak pencapaian pengguna, indikator kecepatan, jarak tempuh dan memiliki kemampuan untuk berintegrasi dengan beberapa pelacak fisik, dan juga tidak menyiratkan aktivitas Internet. Simpan semua data yang direkam secara lokal:

  • Data GPS - geolokasi, jarak, ketinggian dan ketinggian, cap waktu lokal dan dengan mengacu pada nilai gps.
  • Data sesi - prangko waktu, jarak, durasi lintasan, indikator rata-rata dan minimum, indikator jantung perbedaan ketinggian (jika ada pelacak khusus).
  • Data kecepatan - prangko waktu, waktu mengemudi, jarak (jika Anda memiliki sensor tambahan, Anda dapat memperbaiki perhitungan kecepatan yang benar).
  • Data pengguna - kredensial (termasuk kata sandi dalam teks yang jelas), tinggi, berat, jenis kelamin, nama dan tanggal lahir.

Semua data ditempatkan di database.sqlite3, dan selain itu, database MapOpenCycleMap.SQLite berisi informasi tentang trek, termasuk geolokasi dan snapshot geolokasi dan rute.





Obat pintar


Kedokteran pintar melibatkan konvergensi teknologi digital dengan masalah kesehatan dalam masyarakat untuk meningkatkan efektivitas perawatan medis. Teknologi ini mencakup solusi dan layanan perangkat keras dan lunak, termasuk telemedicine, ponsel dan aplikasi, perangkat yang dapat dipakai dan perangkat tetap, sensor klinik atau pemantauan jarak jauh.



Sebagian besar aplikasi kesehatan terbagi dalam dua kategori: aplikasi sumber (mengukur indikator kesehatan manusia) dan aplikasi agregator data (mengumpulkan data di satu tempat dari sumber yang berbeda).

Kesehatan apel


Aplikasi Apple mengumpulkan data kesehatan dari berbagai sumber perangkat lunak dan perangkat keras (iPhone, Apple Watch, dan aplikasi pihak ketiga) yang mendukung protokol HealthKit.

Data dibagi menjadi 4 kategori: Aktivitas, Tidur, Perhatian, dan Nutrisi (ringkasan aktivitas, indikator tidur dan bangun, kategori tidak terbatas untuk iOS 11-12, buku harian makanan). Jika kode sandi, ID Sentuh, atau ID Wajah digunakan, semua data dalam aplikasi ini dienkripsi baik di perangkat maupun di cloud, termasuk saat mengirim data melalui jaringan. Secara terpisah, tentang perbandingan perlindungan data Apple Health & Google Fit dapat ditemukan di artikel Elcomsoft .



Secara global, semua data Apple Health dapat dibagi menjadi dua kategori dari sudut pandang keamanan: secara otomatis disimpan oleh aplikasi dari berbagai sumber dan data yang diekspor.

Dalam kasus pertama, sebagian besar data dienkripsi dan bagian tertentu di jelas, dari sudut pandang Apple tidak penting untuk mengenkripsi itu.

Dalam kasus kedua, semua data akan menjadi teks yang jelas dalam format CDA (Clinical Document Architecture) - khas untuk pertukaran data medis; dan dalam bentuk yang lebih akrab, ini adalah arsip dengan file xml. Perlu dicatat bahwa perlindungan data oleh Apple tidak berarti bahwa data dalam aplikasi sumber juga dilindungi (dapat dilihat pada contoh di atas dengan pelacak dan di bawah dengan bobot). Itu juga tidak menjamin bahwa aplikasi tidak menggunakan data dari aplikasi sumber lain melalui Apple Healthkit dan tidak menyimpan data di cloud mereka.

Perlu dicatat bahwa model izin di Apple pada awalnya sedikit berbeda. Semua permintaan untuk akses ke data aplikasi diminta pada saat startup atau sesuai kebutuhan (setelah penyelesaian tindakan yang memerlukan izin), tidak seperti versi Android sebelumnya. Tetapi untuk aplikasi Apple Health, daftar detail izin untuk membaca dan menulis indikator jantung, tekanan, massa, dll. Tidak ditampilkan dengan deskripsi terperinci tentang apa dan mengapa diperlukan (seperti biasa, semuanya diminta segera).

Yang terakhir mengarah pada fakta bahwa ide awal dari kotak pasir data dengan munculnya aplikasi seperti Apple Health tidak jelas bagi pengguna, yang menyebabkan Apple membuat kotak pasir lain untuk data medis. Misalnya, aplikasi meminta sesuatu untuk dibaca dan ditulis, dan tidak ada kriminal di dalamnya, meskipun pada dasarnya sebagian besar aplikasi yang bekerja dengan Apple Health hanya menulis data daripada membacanya, dengan pengecualian data dasar. Jika aplikasi secara eksplisit dirancang untuk membaca data untuk pekerjaan, ini membutuhkan pemberitahuan eksplisit kepada pengguna, yang memungkinkannya untuk melarang permintaan baca individu tanpa konsekuensi untuk aplikasi. Dengan kata lain, membaca dan menulis data medis dari setiap aplikasi seperti di gantungan kunci atau kotak pasir harus diisolasi dari aplikasi lain, meskipun Apple Health dapat menggabungkan semua data itu sendiri. Jika tidak, dari sisi pengembang yang tidak bertanggung jawab, dimungkinkan untuk mengakses data aplikasi lain dengan pemompaan berikutnya dari perangkat. Ngomong-ngomong, Apple Health secara terpisah di sumbernya memungkinkan Anda untuk mengelola izin secara transparan, tetapi pertanyaan tentang pengoperasian aplikasi yang benar saat akses ditolak tetap terbuka (seperti dulu di Android untuk izin aplikasi).

Apple juga telah mendekati masalah mengeluarkan data yang direkam oleh aplikasi lain ke aplikasi yang meminta data. Aplikasi (dalam hal kurangnya akses) hanya akan menerima data yang sebelumnya disimpan oleh aplikasi yang sama. Namun, ini membutuhkan a) mematikan hak akses yang tidak perlu dan memeriksanya; b) tidak ada jaminan operasi aplikasi yang benar, karena tidak diketahui apakah izin untuk membaca data benar-benar diperlukan. Banyak aplikasi tidak menanggapi pemeriksaan izin. Jadi, misalnya, aplikasi skala pintar PICOOC bahkan tidak memiliki bagian dengan izin baca - hanya menulis data.

Fakta yang menarik, dalam rilis Android mendatang, izin untuk membaca di clipboard diharapkan .

Data Apple Health didistribusikan antara file database berikut:

  • HealthDomain \ MedicalID \ MedicalIDData.archive - menyimpan data ke informasi yang dimasukkan secara manual oleh pengguna (nama, tinggi, berat, implan medis).
  • HealthDomain \ Health \ healthdb.sqlite - daftar aplikasi sumber yang memungkinkan Anda untuk mengambil data dalam bentuk aslinya dan tanpa perlindungan tambahan; juga berisi informasi tentang perangkat sumber (nama, model / pabrikan, stempel waktu, informasi umum tentang bagian / lingkungan perangkat lunak).
  • HealthDomain \ Health \ healthdb_secure.sqlite - berisi informasi tambahan (perangkat UDID, nama perangkat, cap waktu, tinggi, jenis kelamin, golongan darah, ulang tahun, batasan fisik, berat total tubuh, zona waktu dan versi OS dari perangkat telepon).
  • HealthDomain \ Health \ healthdb_secure.hfd adalah database terenkripsi yang mencakup informasi dari aplikasi sumber.



Saat bekerja dengan arsip data yang diekspor (mis., Tanpa enkripsi), harus dipahami bahwa mengekspor arsip dapat dilakukan di mana saja di perangkat, itu dapat ditransfer ke penyimpanan cloud atau arsip ke aplikasi lain mana pun, yang dengan sendirinya dapat berisiko. karena ini berisi informasi terperinci, termasuk tetapi tidak terbatas pada:

  • Nama pengguna, gambar profil, tinggi, berat badan.
  • Pelacakan geo (negara tuan rumah / kota, versi OS).
  • Perangkat UDID, nama perangkat, tanggal pembaruan data terbaru di aplikasi Apple Health.
  • Ulang tahun, jenis kelamin, golongan darah, warna kulit, tinggi, berat, madu. implan.
  • Indikator dan pengukuran harian, misalnya, detak jantung, berat badan, tekanan, berbagai indikator tambahan perangkat dan aplikasi, data kalori dan gizi, data pelatihan dan jarak, catatan aktivitas dengan prangko waktu, dll.
  • Parser XML Gratis

Timbangan pintar Picooc


PICOOC mengintegrasikan solusi perangkat keras dengan aplikasi dan layanan Internet. Secara khusus, 13 pengukuran dipantau dalam skala pintar, seperti berat badan, persentase lemak tubuh dan indeks lemak, massa tubuh, tulang, otot, air dalam tubuh, usia metabolisme dan perubahan indikator.





Data berikut diposting secara lokal:

  • Log Bluetooth terjadi sebagai akibat dari pemindaian perangkat terdekat dan untuk semua perangkat nama perangkat dan alamat mac-nya disimpan.
  • Nilai pengukuran tubuh disimpan dalam database picooc.sqlite dalam tabel `body_indexs` dan disebutkan di atas dalam deskripsi aplikasi.
  • Informasi tentang perangkat mencakup informasi tentang alamat mac perangkat, nama model, ID pengguna, gambar perangkat dan juga disimpan dalam file di file picooc.sqlite.
  • Daftar teman termasuk informasi tentang nama, telepon, user_id, bidang - asalkan teman menggunakan aplikasi yang sama - yaitu Aplikasi ini membentuk jejaring sosial.
  • Informasi pengguna termasuk nama panggilan, ID pengguna, tinggi, usia, jenis kelamin, ras dan terdiri dari dua bagian pada contoh iOS
  • Data sensor mencakup informasi tentang waktu, usia, OS, tinggi, pengaturan layar, model perangkat, pengaturan bahasa, lingkungan, dll. dan disimpan dalam file “\ sensorsanalytics-message-v2.plist.db”
  • Pengaturan termasuk informasi tentang kata sandi lokal, metode membuka kunci dan aktivitas terkini; disimpan dalam file “picooc \ Library \ Preferences \ com.picooc.international.plist” pada contoh iOS.



Dari sudut pandang transfer data, ada kemungkinan intersepsi dengan sertifikat root. Data yang paling menarik dapat dianggap sebagai berikut:

  • URL gambar profil, yang tersedia untuk umum melalui tautan secara konstan dan sebenarnya memiliki 2 URL:
  • Informasi tentang perangkat dan lingkungan.
  • Informasi pengguna, termasuk nama pengguna, ulang tahun, tinggi, berat, cap waktu, OS, dan zona waktu.
  • Kredensial, termasuk kata sandi, termasuk saat mengubah kata sandi dari yang lama ke yang baru.



Di sinilah artikel pertama berakhir. Bagian kedua adalah tentang Connected home: smart TV, voice assistant, smart kitchen, dan lighting.

Source: https://habr.com/ru/post/id440288/


All Articles