Bagaimana cara kerja Stack Inspection?

11

Ini adalah pendahulu dari pertanyaan saya yang lebih maju tentang Pemeriksaan Stack.

Stack Inspection adalah mekanisme keamanan yang diperkenalkan dalam JVM untuk menangani kode yang berjalan yang berasal dari lokasi yang memiliki tingkat kepercayaan berbeda. Pertanyaan ini bertujuan untuk menemukan deskripsi sederhana tentang fungsinya. Begitu:

Bagaimana cara kerja inspeksi tumpukan?

Dave Clarke
sumber

Jawaban:

7

Lihat

Dari kertas:

... Algoritma inspeksi tumpukan yang digunakan dalam sistem Java saat ini dapat dianggap sebagai generalisasi dari model pemeriksaan tumpukan sederhana berikut :

Dalam model ini, satu-satunya kepala sekolah adalah "sistem" dan "tidak dipercaya". Demikian juga, satu-satunya hak istimewa yang tersedia adalah "penuh." Model ini menyerupai sistem inspeksi tumpukan yang digunakan secara internal di Netscape Navigator 3.0.

Dalam model ini, setiap bingkai tumpukan diberi label dengan prinsipal ("sistem" jika bingkai mengeksekusi kode yang merupakan bagian dari mesin virtual atau perpustakaan bawaannya, dan "tidak dipercaya" sebaliknya), dan berisi bendera hak istimewa yang mungkin ditetapkan oleh kelas sistem yang memilih untuk "mengaktifkan hak-hak istimewanya," secara eksplisit menyatakan bahwa ia ingin melakukan sesuatu yang berbahaya. Kelas yang tidak dipercaya tidak dapat mengatur flag privilege-nya. Ketika bingkai tumpukan keluar, hak istimewanya menandai (jika ada) secara otomatis menghilang.

Semua prosedur yang akan melakukan operasi berbahaya seperti mengakses sistem file atau jaringan terlebih dahulu menerapkan algoritma inspeksi tumpukan untuk memutuskan apakah akses diizinkan. Algoritme inspeksi tumpukan mencari bingkai pada tumpukan pemanggil secara berurutan, dari yang terbaru ke yang terlama. Pencarian berakhir, memungkinkan akses, setelah menemukan bingkai tumpukan dengan bendera privilege. Pencarian juga berakhir, melarang akses dan melemparkan pengecualian, setelah menemukan bingkai stack yang tidak dipercaya (yang tidak akan pernah bisa mendapatkan flag privilege). ...

Vor
sumber