it-swarm-id.com

Apakah WebGL merupakan masalah keamanan?

Apakah WebGL merupakan masalah keamanan potensial karena akses tingkat rendah yang disediakannya?

Misalnya, halaman web dapat mencoba mengkompilasi dan menjalankan sumber shader yang diinginkannya.

Tampaknya keamanan terutama akan menjadi masalah dengan browser web open source, karena penyerang bisa lebih mudah menemukan kerentanan dalam implementasi.

27
user9148

Ya, WebGL memang merupakan risiko keamanan potensial, meskipun besarnya risiko sulit dinilai dan terbuka untuk diperdebatkan. Ada beberapa masalah rumit di sini. Browser telah menempatkan beberapa pertahanan terhadap risiko keamanan, tetapi tampaknya ada beberapa perdebatan tentang apakah pertahanan tersebut akan terbukti memadai dalam jangka panjang.

Satu risiko utama adalah bahwa WebGL melibatkan kode berjalan langsung pada kartu video, dan mengekspos API yang menyediakan akses langsung ke API kartu video. Peramban memang berupaya mem-sandbox kode ini (sampai batas tertentu), dan peramban melakukan sejumlah pembatasan keamanan yang dirancang untuk mencegah perilaku jahat. Namun, banyak dari API ini dan implementasinya pada awalnya tidak dirancang untuk diberikan kepada entitas yang tidak tepercaya (mereka hanya dapat digunakan oleh aplikasi asli, yang sepenuhnya dipercaya), jadi ada kekhawatiran tentang apakah mengekspos mereka ke situs web sewenang-wenang mungkin memungkinkan situs web untuk menyerang sistem Anda.

Ada satu kertas putih visibilitas tinggi (lihat juga sekuel ) yang melihat keamanan implementasi WebGL di browser pada saat itu, dan menemukan sejumlah kerentanan. Mereka menemukan beberapa masalah keamanan memori di beberapa API WebGL, dan juga menemukan beberapa serangan yang memungkinkan satu situs web untuk membaca data piksel dari situs web lain (yang dapat memungkinkan pelanggaran kerahasiaan). Lihat juga studi ketiga ini , yang menunjukkan keberadaan kerentanan ini pada sejumlah browser dan kartu web (pada saat itu).

Browser telah merespons ini dengan berbagai pertahanan: mereka memiliki kartu video daftar hitam dengan masalah keamanan yang diketahui; mereka telah mencoba untuk memperbaiki masalah keamanan memori yang diketahui; dan mereka telah membatasi penggunaan WebGL per kebijakan Origin-sama , untuk mencegah situs web jahat menggunakan WebGL untuk memata-matai pengguna yang menggunakan situs web lain .

Ada beberapa perdebatan yang sedang berlangsung tentang apakah pertahanan ini akan terbukti memadai dalam jangka panjang. Microsoft telah mengambil posisi yang WebGL terlalu besar risiko keamanan dan pertahanan yang ada tidak cukup kuat . Di sisi lain, Mozilla mengambil posisi bahwa pertahanan yang telah mereka tempatkan akan memadai, dan bahwa WebGL memberikan nilai penting bagi web. Ars Technica memiliki ringkasan yang bagus tentang masalah ini ; dan berikut ini adalah laporan pers lain .

P.S. Saya sepenuhnya tidak setuju dengan pernyataan Anda tentang hal itu yang secara khusus merupakan masalah untuk browser web open source. Itu hanya mitos. Lihat Sumber Terbuka vs Sistem Sumber Tertutup , yang sudah mencakup argumen ini. (Lihat juga Chrome vs Explorer - bagaimana menjelaskan dengan kata-kata sederhana bahwa open-source lebih baik? untuk diskusi tambahan tentang topik ini.)

31
D.W.

Beberapa poin penting:

  • WebGL tidak hanya mengekspos OpenGL ke JavaScript. Semua titik masuk telah dibatasi untuk menghapus kemungkinan akses memori di luar batas, sehingga selalu memungkinkan bagi browser untuk memeriksa akses di luar batas (dan hal itu ditutupi oleh uji kesesuaian).
  • WebGL memang memungkinkan untuk menjalankan shader hampir sewenang-wenang di GPU. Namun, perlu diingat bahwa shader bukan kode tujuan umum yang sewenang-wenang. Mereka hanya dapat mengakses memori yang sangat spesifik dengan cara browser memeriksa akses di luar batas. Shader divalidasi dan diterjemahkan oleh compiler shader yang tertanam di browser sebelum diteruskan ke driver GPU.
  • Hanya ada satu cacat keamanan dalam spesifikasi WebGL, pernah: spesifikasi WebGL awalnya memungkinkan penggunaan gambar lintas-Asal sebagai tekstur WebGL, dan itu menunjukkan bahwa serangan waktu dapat berhasil membaca ini. Ini diperbaiki pada pertengahan 2011 dan versi saat ini dari spesifikasi WebGL, 1.0.1, aman.
  • Lebih lanjut tentang keamanan WebGL dapat ditemukan di sini: http://www.khronos.org/webgl/security/
10
Benoit Jacob

Tampaknya keamanan terutama akan menjadi masalah dengan browser web open source.

Anda Tuan sangat salah. Sudah terbukti berkali-kali bahwa program opensource seringkali jauh lebih aman daripada yang ditutup, karena ada lebih banyak mata yang memeriksa kode.

Juga semua browser menjalankan hal-hal ini di kotak pasir. Keluar dari kotak pasir akan sulit, tetapi akan menjadi masalah besar pada sumber tertutup seperti pada peramban sumber terbuka.

3
Lucas Kauffman

Mari kita bandingkan WebGL dengan javascript.

Perbedaan kritis antara (kode shader dijalankan melalui) WebGL dan javascript adalah bahwa kode shader dijalankan pada kartu GPU, sementara javascript dijalankan pada CPU.

Apakah kode ditafsirkan atau dikompilasi adalah konsekuensi kecil; potensi kerawanan yang dihasilkan masih ada.

Jadi javascript memiliki kapasitas lebih besar untuk penyalahgunaan, karena begitu skrip jahat keluar dari penjara peramban, javascript pada dasarnya memiliki akses ke PC Anda. Script shader WebGL yang nakal bisa, eh, mengakses GPU Anda.

Ada beberapa faktor yang menyulitkan pandangan sederhana ini; javascript telah ada untuk sementara waktu, jadi telah menerima lebih banyak pengawasan dan memiliki lebih banyak lubang ditutup. javascript jauh lebih rumit. Javascript sebagai bahasa jauh lebih rumit. dll.

1
Michael Slade

WebGL memungkinkan akses ke pipa GL ke inti GPU Anda. Beberapa produsen mengintegrasikan GPU secara langsung pada chip CPU. Ini memungkinkan GPU untuk berbagi memori CPU internal, daripada memiliki memori sendiri, seperti halnya kasus dengan chipset grafis eksternal. Ini adalah risiko keamanan informasi potensial.

Prosesor paralel yang haus daya seperti GPU juga ideal untuk aplikasi kriptografi.

Ada banyak contoh bitminer berbasis webgl di botnet. Meskipun bukan ancaman keamanan informasi (sebaliknya, bitminer adalah dasar untuk keamanan informasi blockchain) botnet ini mencuri sejumlah besar daya dari jaringan luas perangkat tanpa disadari yang mereka jalankan.

Ini berarti Bitcoin memiliki jejak karbon yang berkembang tetapi sebagian besar tersembunyi, yang merupakan ancaman keamanan lingkungan yang potensial.

Jika Anda pernah melihat bahwa beberapa situs web memperlambat tampilan Anda tanpa menambah beban CPU, sangat mungkin mereka menjalankan kode webgl pada GPU Anda. Juga kemungkinan penyebab daya perangkat misterius ponsel terkuras.

Aplikasi seluler (seperti peramban web) dapat menjalankan kode GPU secara terus-menerus di latar belakang, dan dapat meminta reboot perangkat untuk menghentikannya.

0