Bagikan melalui


Keamanan Buffer Konsol dan Hak Akses

Model keamanan Windows memungkinkan Anda mengontrol akses ke buffer input konsol dan buffer layar konsol. Untuk informasi selengkapnya tentang keamanan, lihat Model Kontrol Akses.

Deskriptor Keamanan Objek Konsol

Anda dapat menentukan deskriptor keamanan untuk buffer layar input konsol dan konsol saat Anda memanggil fungsi CreateFile atau CreateConsoleScreenBuffer. Jika Anda menentukan NULL, objek akan mendapatkan deskriptor keamanan default. ACL dalam deskriptor keamanan default untuk buffer konsol berasal dari token utama atau peniruan pembuat.

Handel yang dikembalikan oleh CreateFile, CreateConsoleScreenBuffer, dan GetStdHandle memiliki hak akses GENERIC_READ dan GENERIC_WRITE.

Hak akses yang valid mencakup hak akses generik GENERIC_READ dan GENERIC_WRITE.

Value Makna
GENERIC_READ (0x80000000L) Meminta akses baca ke buffer layar konsol, memungkinkan proses untuk membaca data dari buffer.
GENERIC_WRITE (0x40000000L) Meminta akses tulis ke buffer layar konsol, memungkinkan proses untuk menulis data ke buffer.

Catatan

Platform Windows Universal aplikasi konsol dan mereka yang memiliki tingkat integritas yang lebih rendah daripada konsol yang terpasang akan dilarang membaca buffer output dan menulis ke buffer input bahkan jika deskriptor keamanan di atas biasanya akan mengizinkannya. Silakan lihat diskusi Kata Kerja Cara yang Salah di bawah ini untuk detail selengkapnya.

Kata Kerja Salah Arah

Beberapa operasi ke objek konsol akan ditolak bahkan jika objek memiliki deskriptor keamanan yang dinyatakan secara khusus mengizinkan pembacaan atau penulisan. Ini secara khusus menyangkut aplikasi baris perintah yang berjalan dalam konteks pengurangan hak istimewa yang berbagi sesi konsol yang dibuat oleh aplikasi baris perintah dalam konteks yang lebih permisif.

Istilah "kata kerja yang salah" dimaksudkan untuk diterapkan pada operasi yang merupakan kebalikan dari alur normal untuk salah satu objek konsol. Secara khusus, aliran normal untuk buffer output menulis dan alur normal untuk buffer input sedang membaca. Oleh karena itu, "cara yang salah" adalah pembacaan buffer output atau penulisan buffer input. Ini adalah fungsi yang dijelaskan dalam dokumentasi Fungsi I/O Konsol Tingkat Rendah.

Dua skenario di mana ini dapat ditemukan adalah:

  1. Platform Windows Universal aplikasi konsol. Karena ini adalah sepupu dari aplikasi Platform Windows Universal lainnya, mereka memegang janji bahwa mereka terisolasi dari aplikasi lain dan memberikan jaminan pengguna sekeliling efek operasi mereka.
  2. Aplikasi konsol apa pun sengaja diluncurkan dengan tingkat integritas yang lebih rendah daripada sesi yang ada yang dapat dicapai dengan pelabelan atau manipulasi token selama CreateProcess.

Jika salah satu skenario ini terdeteksi, konsol akan menerapkan bendera "kata kerja salah" ke koneksi aplikasi baris perintah dan menolak panggilan ke API berikut untuk mengurangi permukaan komunikasi antara tingkat:

Panggilan yang ditolak akan menerima kode kesalahan akses yang ditolak , sama seperti jika izin baca atau tulis ditolak oleh deskriptor keamanan pada objek.