Baru kemarin, kami menulis tentang bug di ponsel Google Pixel sekarang ditambal, dengan konsekuensi yang berpotensi berbahaya.
Para pencari bug, sangat bersemangat (dan khawatir) dengan apa yang mereka temukan, memutuskan untuk mengikuti prinsip BWAIN secara maksimal, mengubahnya menjadi Bug Dengan Nama yang Mengesankan: tanaman.
Jika Anda bertanya-tanya, kata apocalypse secara harfiah berarti wahyu apa pun, tetapi biasanya digunakan untuk merujuk pada teks alkitabiah yang dikenal sebagai Wahyu St. John, yang menggambarkan akhir dunia.
Jadi makna metaforisnya, dalam kata-kata dari New Oxford American Dictionary, adalah “suatu peristiwa yang melibatkan kehancuran atau kerusakan pada skala yang dahsyat atau bencana besar.”
Kami tidak begitu yakin bahwa bug ini pantas mendapatkan nama apokaliptik yang cukup, ahhhh, tetapi kami bersedia mengakui bahwa di dunia di mana mengagumkan bisa berarti "cukup baik", nama tersebut mungkin dapat diterima, jika tidak sepenuhnya tidak dapat dikecualikan.
"Potong" di "aCropalypse"
Bagian "tanaman" dari nama tersebut berasal dari aktivitas yang paling mungkin memicu bug, yang dijuluki CVE-2023-20136 dalam inkarnasi Google-nya: memotong foto atau tangkapan layar untuk menghapus bagian sensitif atau tidak diinginkan sebelum Anda membagikannya.
Berbicara secara longgar, Anda dapat membayangkan bahwa jika Anda mengambil, katakanlah, tangkapan layar 1080x1980 dari seluruh layar ponsel Anda, Anda mungkin tidak ingin memposting seluruh gambar secara online, atau mengirim semuanya ke teman.
Kebanyakan orang lebih suka memotong setidaknya bagian atas tangkapan layar, sehingga menghapus detail seperti nama penyedia seluler mereka, tanggal dan waktu.
Dan jika Anda menjepret, katakanlah, email atau postingan media sosial di tengah daftar, Anda hampir pasti ingin mengaburkan email atau postingan yang muncul tepat di atas atau tepat di bawah porsi minat.
Bahkan setelah memangkas gambar, Anda mungkin juga ingin menyunting bagiannya (kata jargon yang berarti mengaburkan atau menyensor bagian dokumen), misalnya dengan meletakkan kotak hitam di atas nama pengirim, alamat email, nomor telepon, atau apa pun. .
Bagaimanapun, Anda mungkin berasumsi bahwa jika Anda memotong potongan asli, mengaburkan beberapa detail dengan blok warna solid (yang lebih mudah dikompresi daripada data gambar biasa), dan menyimpan gambar baru di atas yang lama…
…bahwa gambar baru hampir pasti akan lebih kecil, mungkin jauh lebih kecil, dari aslinya.
Karena semua barang yang Anda tinggalkan!
Tapi bukan itu yang terjadi pada ponsel Google Pixel, setidaknya hingga pembaruan keamanan Android Maret 2023.
Ditimpa tetapi tidak dipotong
File gambar baru yang lebih kecil akan ditulis di awal yang lama, tetapi ukuran file akan tetap sama, dan data yang sekarang berlebihan dan tidak diinginkan di akhir file asli akan tetap di tempatnya.
Jika Anda mengirim file itu ke orang lain dan mereka membukanya dengan alat penampil atau pengeditan gambar konvensional, perangkat lunak mereka akan membaca file tersebut hingga mencapai potongan data yang berbunyi, “Itu dia; Anda dapat berhenti sekarang dan mengabaikan data yang tertinggal di file.”
Dengan kata lain, kesalahan pengkodean yang menyebabkan data yang tidak diinginkan tertinggal di akhir file umumnya tidak akan memicu kesalahan yang jelas, yang mungkin menjelaskan mengapa bug tidak ditemukan sampai saat ini.
Tetapi jika penerima membukanya dengan alat perangkat lunak yang lebih ingin tahu, seperti editor hex atau editor gambar yang dimodifikasi dengan licik, mulai dari beberapa byte hingga sejumlah besar gambar asli akan tetap ada, melewati akhir resmi- penanda gambar, menunggu untuk dieksplorasi dan berpotensi diekspos.
Sebagian besar tangkapan layar disimpan sebagai file PNG, kependekan dari grafis jaringan portabel, dan dikompresi secara internal menggunakan algoritme kompresi yang umumnya dikenal sebagai menurunkan.
Oleh karena itu, data sisa tidak terlihat jelas seperti baris dan kolom piksel, dan tidak dapat langsung didekompresi oleh alat pembongkar konvensional, yang akan menganggap aliran data terkompresi rusak, dan biasanya akan ditolak untuk mencoba membongkar itu sama sekali.
Tapi menurunkan kompresi biasanya memeras data inputnya sebagai urutan blok, hanya melihat ke belakang sejauh ini di input untuk teks berulang (maksimum 32 Kbytes, untuk kecocokan paling banyak sepanjang 258 byte) untuk mengurangi jumlah memori yang diperlukan untuk menjalankan algoritme .
Pembatasan tersebut tidak hanya karena fakta bahwa formatnya berasal dari 1990s, ketika ruang memori jauh lebih berharga daripada hari ini.
Dengan "menyinkronkan ulang" kompresor secara teratur, Anda juga mengurangi risiko kehilangan semua yang ada dalam file terkompresi bahkan jika hanya beberapa byte di awal yang rusak.
Rekonstruksi substansial mungkin dilakukan
Ini berarti bahwa file gambar yang disimpan dalam format PNG terkompresi seringkali dapat direkonstruksi secara substansial, bahkan jika potongan gambar asli yang cukup besar ditimpa atau dihancurkan.
Dan jika Anda berbicara tentang fragmen gambar yang dapat direkonstruksi dari file yang telah dipotong atau disunting…
… jelas ada kemungkinan bahwa sisa data di bagian akhir, yang seharusnya dipotong, akan berisi bagian gambar yang dapat dipulihkan mengungkapkan bagian yang ingin Anda hapus secara permanen dari gambar!
Anda bisa beruntung, pastinya: jika gambar disimpan baris demi baris (jadi data untuk bagian atas gambar dekat dengan awal file, dan bagian bawah di bagian akhir), dan Anda memotong bagian atas gambar, Anda mungkin akan mendapatkan gambar baru yang terdiri dari bagian bawah gambar lama di bagian "resmi" file, dan bagian bawah diulangi di sisa data yang seharusnya dipotong tapi tidak.
Tetapi jika Anda memotong bagian bawah gambar, file baru akan membuat bagian atas yang lama "secara resmi" dikodekan ulang dan ditulis di awal, dan bagian bawah gambar yang dipotong tertinggal persis di tempat sebelumnya, di akhir tidak resmi dari file baru, menunggu untuk diekstraksi oleh penyerang.
Windows 11 juga terpengaruh
Nah, masalahnya masalah file tidak terpotong saat diganti dengan versi baru ini juga berlaku di Windows 11, di mana Potongan Alat, seperti aplikasi Google Pixel Markup, memungkinkan Anda memotong gambar tanpa memotong file tempat penyimpanannya dengan benar.
Misalnya, inilah file PNG yang kami buat dengan GIMP, dan disimpan dengan set header minimal dan tanpa kompresi:
File tersebut berukuran 320×200 piksel dari data RGB 8-bit (tiga byte per piksel), sehingga file berukuran 320x200x3 byte (192,000), ditambah beberapa ratus byte header dan metadata terbatas lainnya, dengan ukuran total 192,590 byte .
Dalam ilustratif hex dump di bawah ini, Anda dapat melihat bahwa data panjangnya 0x20F04E byte, yaitu 192,590 dalam desimal:
Kami kemudian memangkasnya sekecil yang dimungkinkan oleh Snipping Tool (48x48 piksel tampaknya minimum) dan menyimpannya kembali, tetapi file "baru" berakhir dengan ukuran yang sama dengan file 320x200 yang tidak terkompresi!
Dalam hex dump di bawah, bagian yang disorot dengan warna merah muda di bagian atas adalah keseluruhan dari file yang seharusnya berisi file yang dipotong, dengan panjang 0xBD byte, atau 189 dalam desimal.
Data baru diakhiri dengan an IEND
blok data, di situlah file baru harus berakhir, tetapi Anda dapat melihatnya berlanjut dengan sisa data dari sebelumnya, akhirnya diakhiri dengan duplikat-tapi-sekarang-berlebihan IEND
blok yang telah dibawa dari file lama, bersama dengan hampir semua data gambarnya:
Ketika kami menggunakan Save tombol untuk menuliskannya di bawah nama file baru, file terkompresi 48×48 memang keluar dengan panjang hanya 189 byte.
Perhatikan bagaimana data dalam file cocok dengan 189 byte yang disorot dengan warna pink pada gambar sebelumnya:
Oleh karena itu, bugnya adalah menyimpan file kembali melalui nama file yang ada tidak memotong file lama terlebih dahulu, dan tidak membuat file baru dengan ukuran yang diharapkan.
Sederhananya, file yang dipangkas adalah ditimpa sebagian, daripada sebenarnya diganti.
Seperti disebutkan di atas, kami menduga bahwa tidak ada yang melihat cacat ini sampai sekarang karena program melihat dan mengedit gambar membaca sampai yang pertama. IEND
tag (Anda dapat melihat ini di sudut kanan bawah tangkapan layar di atas), dan diam-diam abaikan semua hal tambahan di bagian akhir tanpa melaporkan anomali atau kesalahan apa pun.
Apa yang harus dilakukan?
- Jika Anda adalah pengguna Windows 11. Selalu simpan file yang dipotong yang dibuat dengan Snipping Tool dengan nama file baru, sehingga tidak ada konten asli di dalamnya yang tertinggal.
- Jika Anda seorang programmer. Tinjau di mana pun Anda membuat file "baru" dengan menimpa yang lama untuk memastikan Anda benar-benar memotong file asli saat Anda membukanya untuk ditulis ulang. Atau hanya pernah membuat file baru dengan menyimpannya ke file yang benar-benar baru terlebih dahulu (gunakan nama file unik yang dibuat dengan aman), kemudian secara eksplisit menghapus file asli dan mengganti nama yang baru.
Omong-omong, kami menguji Microsoft Paint, dan sejauh yang dapat kami lihat, program itu akan membuat file yang dipangkas tanpa sisa data dari sebelumnya, apakah Anda menggunakan Save (untuk mengganti file yang ada) atau Save As (untuk menghasilkan yang baru).
PELAJARI TENTANG MODE PEMBUKAAN FILE UNTUK DIRI SENDIRI
Kompilasi kode ini dan jalankan.
Di Windows, Anda dapat menggunakan minimalis-C, milik kita sendiri bangunan yang dikurasi dari gratis Kompiler C Kecil, jika Anda belum menginstal sistem pengembangan.
Ukurannya di bawah 500 KBytes (!), termasuk kode sumber lengkap, dibandingkan dengan masing-masing gigabyte untuk Visual Studio atau Dentang untuk Windows.
#termasuk #termasuk int main(void) { char* az = "ABCDEFGHIJLKMNOPQRSTUVWXYZ"; int fd; // Buat file dengan AZ di dalamnya // Oktal 0666 artinya "baca/tulis untuk semua orang" // O_CREAT artinya buat jika perlu fd = open("blah1.txt",O_WRONLY+O_CREAT,0666); tulis(fd,az,26); tutup(fd); // Buat file lain dengan AZ di dalamnya fd = open("blah2.txt",O_WRONLY+O_CREAT,0666); tulis(fd,az,26); tutup(fd); // Tulis 10 byte tanpa set O_TRUNC // Sisa 16 byte harus tetap fd = open("blah1.txt",O_WRONLY); tulis(fd,"----------",10); tutup(fd); // Tulis 10 byte *dengan* set O_TRUNC // Sisa data lama harus dipotong fd = open("blah2.txt",O_WRONLY+O_TRUNC); tulis(fd,"==========",10); tutup(fd); kembali 0; }
Perhatikan perbedaan antara membuka file yang ada untuk menulis (O_WRONLY
) dengan dan tanpa pengaturan O_TRUNC
bendera.
Cetak isi dari blah1.txt
dan blah2.txt
setelah menjalankan program pengujian:
C:UsersduckCROP> petcc64 -stdinc -stdlib test.c Tiny C Compiler - Hak Cipta (C) 2001-2023 Fabrice Bellard Dilucuti oleh Paul Ducklin untuk digunakan sebagai alat pembelajaran Versi petcc64-0.9.27 [0006] - Menghasilkan 64-bit PE saja -> t1.c -> c:/users/duck/tcc/petccinc/fcntl.h . . . . -> C:/Windows/system32/msvcrt.dll -> C:/Windows/system32/kernel32.dll -------------------------- ----- bagian ukuran file virt 1000 200 2a0 .text 2000 600 1cc .data 3000 800 18 .pdata -------------------------- ----- <- t1.exe (2560 bytes) C:UsersduckCROP> t1.exe C:UsersduckCROP>dir blah*.txt Volume di drive C tidak memiliki label. Volume Nomor Seri adalah C001-D00D Direktori C:UsersduckCROP 22/03/2023 07:20 26 blah1.txt 22/03/2023 07:20 10 blah2.txt 2 File(s) 36 byte C:UsersduckCROP> jenis blah1.txt ----------KLMNOPQRSTUVWXYZ C:UsersduckCROP> ketik blah2.txt ==========
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://nakedsecurity.sophos.com/2023/03/22/windows-11-also-vulnerable-to-acropalypse-image-data-leakage/
- :adalah
- $NAIK
- 000
- 1
- 10
- 11
- 2023
- 70
- 9
- a
- Tentang Kami
- atas
- Mutlak
- benar
- diterima
- kegiatan
- sebenarnya
- alamat
- Setelah
- algoritma
- Semua
- selalu
- Amerika
- jumlah
- dan
- android
- Lain
- di manapun
- aplikasi
- Muncul
- ADALAH
- AS
- At
- penulis
- mobil
- kembali
- background-image
- dasar
- BE
- karena
- sebelum
- di belakang
- makhluk
- di bawah
- antara
- Black
- Memblokir
- Blok
- batas
- Bawah
- Kotak
- merek
- Merek Baru
- Bug
- tombol
- by
- CAN
- Bisa Dapatkan
- kasus
- bencana
- disebabkan
- pusat
- Pasti
- kesempatan
- Jelas
- Penyelesaian
- kode
- Pengkodean
- warna
- Kolom
- bagaimana
- umum
- dibandingkan
- prihatin
- Konsekuensi
- Mempertimbangkan
- Terdiri dari
- mengandung
- mengandung
- Konten
- isi
- terus
- konvensional
- hak cipta
- Sudut
- rusak
- bisa
- menutupi
- membuat
- dibuat
- tanaman
- Berbahaya
- data
- kebocoran data
- Tanggal
- Tanggal
- transaksi
- memutuskan
- layak
- musnah
- rincian
- Pengembangan
- MELAKUKAN
- berbeda
- langsung
- Display
- dokumen
- Tidak
- Dont
- turun
- mendorong
- Jatuhan
- dijuluki
- membuang
- setiap
- editor
- Seluruh
- sepenuhnya
- keseluruhan
- kesalahan
- Bahkan
- Acara
- pERNAH
- semua orang
- segala sesuatu
- persis
- contoh
- gembira
- ada
- diharapkan
- Menjelaskan
- Dieksplorasi
- terkena
- tambahan
- beberapa
- File
- File
- Pertama
- cacat
- mengikuti
- Untuk
- format
- ditemukan
- Gratis
- teman
- dari
- penuh
- umumnya
- menghasilkan
- mendapatkan
- Setengah
- terjadi
- Memiliki
- header
- tinggi
- HEX
- Disorot
- melayang-layang
- Seterpercayaapakah Olymp Trade? Kesimpulan
- HTTPS
- gambar
- impresif
- in
- Termasuk
- memasukkan
- diinstal
- bunga
- internal
- IT
- NYA
- Diri
- jargon
- dikenal
- label
- pengetahuan
- 'like'
- Mungkin
- Terbatas
- Daftar
- Panjang
- melihat
- mencari
- kehilangan
- membuat
- March
- Margin
- penanda
- max-width
- maksimum
- makna
- cara
- Media
- Memori
- tersebut
- Metadata
- Microsoft
- Tengah
- mungkin
- minimal
- minimum
- mobil
- mode
- dimodifikasi
- lebih
- paling
- nama
- jaringan
- New
- normal
- jumlah
- dikaburkan
- Jelas
- of
- resmi
- Tua
- on
- ONE
- secara online
- Buka
- dibuka
- pembukaan
- urutan
- asli
- Lainnya
- jika tidak
- sendiri
- Oxford
- bagian
- bagian
- lalu
- paul
- Konsultan Ahli
- tetap
- ponsel
- pixel
- plato
- Kecerdasan Data Plato
- Data Plato
- plus
- menggambarkan
- posisi
- Pos
- Posts
- berpotensi
- Berharga
- lebih suka
- sebelumnya
- prinsip
- mungkin
- Masalah
- menghasilkan
- program
- Programmer
- program
- pemberi
- menempatkan
- Penilaian
- agak
- tercapai
- Baca
- baru-baru ini
- menurunkan
- reguler
- tinggal
- menghapus
- menghapus
- ulang
- menggantikan
- diganti
- Pelaporan
- pembatasan
- kembali
- ulasan
- menulis ulang
- RGB
- Risiko
- Run
- berjalan
- s
- Tersebut
- sama
- Save
- penghematan
- Skala
- Layar
- screenshot
- Bagian
- keamanan
- tampaknya
- peka
- Urutan
- serial
- set
- pengaturan
- Share
- Pendek
- harus
- Ukuran
- kecil
- lebih kecil
- So
- sejauh ini
- Sosial
- media sosial
- Perangkat lunak
- padat
- beberapa
- Seseorang
- sumber
- kode sumber
- Space
- berbicara
- awal
- tinggal
- Masih
- berhenti
- tersimpan
- aliran
- studio
- seperti itu
- Seharusnya
- SVG
- sistem
- T1
- MENANDAI
- pembicaraan
- uji
- bahwa
- Grafik
- Dunia
- mereka
- Mereka
- karena itu
- hal
- tiga
- waktu
- untuk
- hari ini
- alat
- alat
- puncak
- Total
- Trailing
- transisi
- jelas
- memicu
- Putar
- khas
- Akhirnya
- bawah
- Maklum
- unik
- Membongkar
- tidak diinginkan
- Memperbarui
- URL
- menggunakan
- Pengguna
- biasanya
- Luas
- versi
- volume
- Rentan
- Menunggu
- Cara..
- Apa
- apakah
- yang
- seluruh
- lebar
- akan
- rela
- Windows
- jendela 11
- dengan
- tanpa
- tanya
- Word
- kata
- dunia
- akan
- menulis
- penulisan
- tertulis
- Kamu
- Anda
- zephyrnet.dll