Topik temu duga representatif

Bagaimanakah keselamatan berasaskan keupayaan (capability-based security) menghalang masalah confused deputy?

UmumSederhana
Pasukan Editorial Offer.ccDiterbitkan Dikemas kini

Soalan

Terangkan keselamatan berasaskan keupayaan kepada penemu duga. Tunjukkan bagaimana confused deputy timbul apabila perkhidmatan berkeistimewaan bertindak atas nama yang dibekalkan oleh pemanggil, bagaimana menghantar keupayaan mengubah aliran autoriti, dan apakah pertukaran (trade-offs) yang kekal untuk pembatalan, audit dan keistimewaan paling rendah (least privilege).

1. Masalah dan konteks

Sesuatu perkhidmatan menerima permintaan untuk membaca atau menulis sumber. Perkhidmatan itu sendiri mempunyai kebenaran yang luas, manakala pemanggil sepatutnya hanya menerima autoriti yang sempit. Jika perkhidmatan menggunakan laluan atau ID sumber yang dikawal oleh pemanggil dan kemudian bertindak dengan keistimewaannya sendiri, penyerang boleh menyebabkannya melakukan tindakan yang tidak dapat dilakukan oleh pemanggil secara langsung. AWS memanggil perkara ini sebagai masalah confused deputy.

Keselamatan berasaskan keupayaan menangani perkara ini dengan menjadikan autoriti eksplisit dalam rujukan atau token yang mengenal pasti sumber serta membawa hak untuk menggunakannya. Keupayaan mestilah tidak boleh dipalsukan (unforgeable), terhad skopnya (scoped), dan hanya diserahkan kepada kod yang memerlukannya. Soalan ini ialah perbincangan model keselamatan umum; ia tidak terhad kepada satu penyedia awan atau bahasa pengaturcaraan sahaja.

2. Perkara yang dinilai oleh penemu duga

  • Penaakulan autoriti: Bolehkah anda membezakan pengesahan (authentication), pengesahan kebenaran (authorization), dan pemilikan autoriti yang diwakilkan?
  • Pemodelan ancaman: Bolehkah anda menunjukkan deputy, input yang mengelirukan, tindakan berkeistimewaan dan sempadan yang dikawal oleh penyerang?
  • Keistimewaan paling rendah (Least privilege): Adakah anda melemahkan (attenuate) keupayaan kepada satu operasi, objek, penyewa (tenant), atau tetingkap masa?
  • Pertimbangan kitaran hayat: Bolehkah anda menerangkan pembatalan, tamat tempoh, kebolehkaauditan dan kebocoran tanpa mendakwa keupayaan menyelesaikan segalanya?
  • Kejelasan pertukaran (trade-offs): Bolehkah anda membandingkan keupayaan dengan identiti ambien dan pemeriksaan dasar di bawah kekangan operasi yang realistik?

Jawapan yang lemah menyatakan "gunakan token." Jawapan yang mantap menerangkan perkara yang dibenarkan oleh token, cara ia dikekang, dan perkara yang berlaku apabila ia bocor atau mesti dibatalkan.

3. Soalan untuk dijelaskan terlebih dahulu

Adakah deputy itu kod tempatan, perkhidmatan, atau peranan awan?

Coraknya adalah sama, tetapi sempadannya berubah. Pustaka boleh mewarisi pemegang fail (file handle) secara tidak sengaja; perkhidmatan boleh menggunakan identiti beban kerjanya (workload identity); peranan awan boleh diperdaya untuk bertindak ke atas sumber rentas akaun. Namakan prinsipal yang memiliki autoriti luas tersebut.

Apakah sumber dan operasi yang diwakilkan?

Jelaskan sama ada autoriti tersebut adalah baca, tulis, tambah (append), padam, panggil (invoke), atau operasi kompaun. Keupayaan untuk satu objek dan satu kaedah adalah lebih mudah diaudit dan dibatalkan berbanding nama sumber kad liar (wildcard).

Apakah keperluan pembatalan dan kebocoran?

Tanya sama ada pembatalan serta-merta, penggunaan luar talian, pengasingan berbilang penyewa (multi-tenant), atau audit tanpa sangkalan (non-repudiable) diperlukan. Kekangan ini menentukan sama ada untuk menggunakan rujukan dalam ingatan, token yang ditandatangani, pajakan (lease), broker, atau pemeriksaan dasar pusat.

4. Kerangka jawapan 30 saat

"Confused deputy muncul apabila pemanggil yang kurang berkeistimewaan membekalkan nama sumber kepada perkhidmatan yang lebih berkeistimewaan, dan perkhidmatan tersebut menggunakan autoritinya sendiri tanpa mengikat permintaan itu kepada skop yang dimaksudkan oleh pemanggil. Keselamatan keupayaan menjadikan autoriti eksplisit: hantar rujukan atau token yang tidak boleh dipalsukan yang menamakan satu sumber dan operasi yang dibenarkan, serta menghendaki deputy hanya menggunakan rujukan tersebut. Saya akan melemahkan keupayaan semasa perwakilan, mengikatnya pada penyewa dan khalayak (audience), menamatkan tempoh atau membatalkannya mengikut risiko, dan merekodkan pengeluaran serta penggunaannya. Keupayaan mengurangkan autoriti ambien dan risiko confused deputy, tetapi kebocoran, main semula (replay), pemulihan dan audit kekal sebagai masalah reka bentuk."

5. Penerangan langkah demi langkah

Langkah 1: Asingkan identiti daripada autoriti

Pengesahan (authentication) menjawab siapa yang memanggil. Pengesahan kebenaran (authorization) menjawab perkara yang boleh dilakukan oleh identiti tersebut di bawah dasar. Keupayaan ialah rujukan pembawa autoriti yang konkrit: pemilikan berserta integriti rujukan yang tidak boleh dipalsukan memberikan tindakan tertentu. Model ini boleh wujud bersama identiti, tetapi ia tidak bergantung pada pemeriksaan identiti ambien global pada setiap panggilan dalaman.

Langkah 2: Lakarkan aliran confused deputy

Katakan perkhidmatan laporan boleh membaca mana-mana fail di bawah identiti beban kerjanya. Pengguna menghantar file=/reports/other-tenant.csv. Jika perkhidmatan hanya mengesahkan bahawa permintaan itu disahkan identitinya, ia menjadi deputy: pengguna membekalkan nama, dan perkhidmatan menggunakan keistimewaannya yang lebih luas. Ikatan yang hilang ialah "pemanggil ini telah diberikan autoriti secara eksplisit untuk objek ini."

Langkah 3: Gantikan nama dengan autoriti berskop

Sebaliknya, pemilik yang dibenarkan mencipta keupayaan untuk laporan dan operasi tertentu, seperti akses baca sahaja untuk penyewa A sehingga tarikh akhir. Pemanggil menyerahkan keupayaan tersebut kepada perkhidmatan. Perkhidmatan menyahrujuk (dereferences) keupayaan atau membentangkannya kepada broker; ia tidak mengubah laluan sewenang-wenangnya menjadi autoriti. Penyelidikan keupayaan objek menerangkan corak ini sebagai pengekodan hak akses dalam objek individu dan menyekat interaksinya.

Langkah 4: Melemahkan (attenuate) semasa perwakilan

Apabila komponen mewakilkan, ia sepatutnya menghasilkan keupayaan yang lebih lemah: kaedah yang lebih sedikit, satu objek anak, jangka hayat yang lebih pendek, kekangan penyewa, atau had kadar (rate limit). Jangan sekali-kali meluaskan keupayaan hanya kerana komponen hiliran memerlukannya untuk kemudahan. Pembalut (wrapper) yang hanya mendedahkan readMetadata() adalah lebih selamat daripada menyerahkan pemegang sistem fail dengan hak tulis dan padam.

Langkah 5: Kendalikan token dan main semula (replay)

Jika keupayaan merentasi sempadan proses, gunakan rujukan yang dilindungi seperti token bertandatangan yang terikat dengan khalayak atau pemegang yang dikeluarkan oleh broker. Sertakan sumber, tindakan, penyewa, pengeluar, khalayak, tamat tempoh dan ID unik di mana main semula menjadi isu. Sahkan integriti dan konteks sebelum digunakan. Penyulitan boleh menyembunyikan kandungan, tetapi ia sendiri tidak menguatkuasakan skop atau menghentikan main semula.

Langkah 6: Rancang pembatalan dan pemulihan

Keupayaan dalam ingatan tulen adalah mudah untuk dihantar tetapi sukar untuk dibatalkan secara global. Pajakan (leases), tamat tempoh pendek, ketidaklangsungan (indirection) melalui stor pembatalan, atau putaran kunci mengimbangi kawalan serta-merta dengan ketersediaan dan kependaman. Jika token bocor, batalkan pemegang atau ikatan, putar kunci yang berkaitan jika perlu, dan periksa log penggunaan; memadamkan rekod pengguna semata-mata mungkin tidak membatalkan keupayaan yang telah dikeluarkan.

Langkah 7: Kekalkan sempadan audit dan dasar

Rekodkan siapa yang mengeluarkan keupayaan, apakah skop yang dibawanya, deputy mana yang menggunakannya, dan keputusannya. Kekalkan konteks identiti untuk kebertanggungjawaban walaupun keupayaan merupakan primitif pengesahan kebenaran. Untuk tindakan berisiko tinggi, gabungkan pemeriksaan keupayaan dengan pemeriksaan dasar seperti keadaan penyewa, penahanan undang-undang (legal hold), atau pengesahan bertingkat (step-up authentication).

6. Contoh jawapan berkualiti tinggi

"Confused deputy ialah ketidakpadanan keistimewaan. Pemanggil membekalkan nama sumber, tetapi perkhidmatan dengan hak yang lebih luas melaksanakan operasi tersebut. Perkhidmatan menjadi keliru kerana nama tersebut dianggap sebagai autoriti. AWS mendokumenkan corak ini untuk akses rentas akaun dan rentas perkhidmatan.

Saya akan menghantar keupayaan eksplisit sebagai ganti: rujukan yang tidak boleh dipalsukan atau token dilindungi yang diskopkan kepada satu penyewa, objek, operasi, khalayak dan tamat tempoh. Deputy hanya boleh menggunakan keupayaan tersebut, dan perwakilan mencipta anak yang dilemahkan. Untuk token jauh, saya akan mengesahkan integriti, konteks dan kekangan main semula, kemudian merekodkan pengeluaran dan penggunaan.

Pembatalan ialah pertukaran (trade-off). Saya mungkin menggunakan pajakan jangka pendek atau pemegang yang boleh dibatalkan untuk tindakan sensitif, menerima kos carian. Keupayaan mengurangkan autoriti ambien dan menjadikan aliran data lebih mudah diperiksa, tetapi ia tidak menghapuskan keperluan kebocoran, pemulihan, audit atau dasar. Saya akan menguji percubaan rentas penyewa, main semula token, nama yang mengelirukan dan keadaan perlumbaan (race conditions) pembatalan."

7. Kesilapan biasa

  • "Pengesahan identiti sudah memadai" → Membiarkan identiti perkhidmatan yang luas menentukan skop → Ikatkan operasi kepada autoriti yang eksplisit dan terkekang.
  • "Token yang ditandatangani secara automatik adalah keupayaan" → Mengabaikan khalayak, operasi, tamat tempoh dan main semula → Anggap integriti sebagai satu sifat dan kuasakan skop secara berasingan.
  • "Gunakan laluan pemanggil selepas memeriksa log masuk" → Mencipta semula aliran confused deputy → Hantar keupayaan atau pemegang broker dan bukannya nama sewenang-wenangnya.
  • "Keupayaan menghapuskan dasar pengesahan kebenaran" → Terlepas pandang keadaan penyewa dan peraturan kontekstual → Gabungkan pemeriksaan keupayaan dengan pemeriksaan dasar berisiko tinggi.
  • "Pembatalan adalah percuma tanpa kos" → Mengabaikan salinan teragih dan penggunaan luar talian → Pilih pajakan, ketidaklangsungan, atau tamat tempoh berdasarkan keperluan pembatalan.
  • "Sembunyikan semua konteks identiti" → Menjadikan penyiasatan insiden mustahil → Kekalkan pengeluar, subjek, skop dan peristiwa penggunaan untuk audit.

8. Soalan susulan

Bagaimanakah keupayaan berbeza daripada carian ACL?

Carian ACL bermula dengan identiti dan nama sumber, kemudian merujuk dasar pada masa penggunaan. Keupayaan membawa rujukan autoriti yang diwakilkan melalui aliran data. ACL memusatkan dasar dan pembatalan; keupayaan menjadikan autoriti eksplisit dan boleh mengurangkan autoriti ambien, tetapi ia memerlukan kawalan kitaran hayat dan kebocoran.

Bolehkah keupayaan disalin?

Rujukan dalam proses selalunya boleh disalin oleh kod yang telah memegangnya. Sempadan keselamatan ialah siapa yang boleh menerimanya dan sama ada ia dilemahkan. Token jauh boleh dimainkan semula melainkan ia terikat pada saluran, nonce, khalayak, atau pajakan pendek. Kebolehsalian ialah risiko untuk dimodelkan, bukan sebab untuk menganggap token itu tidak berbahaya.

Bagaimanakah anda menjamin keselamatan URL keupayaan?

Layan ia sebagai kelayakan pembawa (bearer credential): gunakan HTTPS, skop sempit, tamat tempoh pendek, entropi yang tidak boleh diteka, pengikatan khalayak, had kadar, dan pemadaman daripada log serta perujuk (referrers). Untuk tindakan sensitif atau boleh diguna semula, utamakan pertukaran sekali sahaja untuk pemegang yang boleh dibatalkan.

Di manakah confused deputy masih muncul dalam sistem awan?

Ia muncul apabila peranan perkhidmatan, build runner, atau proksi storan menerima pengecam sumber yang dikawal oleh pengguna dan menggunakan peranan luasnya sendiri. Ikatkan permintaan kepada dasar sumber, penyewa dan tindakan yang dimaksudkan; panduan rentas akaun AWS ialah contoh konkrit bagi sempadan ini.

Sumber awam

Soalan berkaitan