Bagikan melalui


Mengamankan laporan dan sumber daya

Anda dapat mengatur keamanan untuk laporan dan sumber daya individual untuk mengontrol tingkat akses yang dimiliki pengguna ke item ini. Secara default, hanya pengguna yang merupakan anggota grup bawaan Administrator yang dapat menjalankan laporan, melihat sumber daya, mengubah properti, dan menghapus item. Semua pengguna lain harus memiliki penetapan peran yang dibuat untuk mereka yang memungkinkan akses ke laporan atau sumber daya.

Akses berbasis peran ke laporan dan sumber daya

Untuk memberikan akses ke laporan dan sumber daya, Anda dapat mengizinkan pengguna untuk mewarisi penetapan peran yang ada dari folder induk atau membuat penetapan peran baru pada item itu sendiri.

Dalam kebanyakan kasus, Anda mungkin ingin menggunakan izin yang diwarisi dari folder induk. Mengatur keamanan pada laporan dan sumber daya individu hanya boleh diperlukan dalam beberapa skenario. Skenario tersebut adalah:

  • Jika Anda ingin menyembunyikan laporan atau sumber daya dari pengguna yang tidak perlu mengetahui bahwa laporan atau sumber daya ada
  • Untuk meningkatkan tingkat akses untuk laporan atau item.

Tujuan ini tidak saling eksklusif. Anda dapat membatasi akses ke laporan ke sekumpulan pengguna yang lebih kecil, dan memberikan semua atau beberapa dari mereka dengan hak istimewa lain untuk mengelola laporan.

Anda mungkin perlu membuat beberapa penetapan peran untuk mencapai tujuan Anda. Misalnya, Anda memiliki laporan yang ingin Anda buat dapat diakses oleh dua pengguna, Ann dan Fernando, dan ke grup Human Resource Managers. Ann dan Fernando harus dapat mengelola laporan, tetapi anggota Human Resource Managers hanya perlu menjalankannya. Untuk mengakomodasi semua pengguna ini, Anda akan membuat tiga penetapan peran terpisah: satu untuk menjadikan Ann sebagai pengelola konten laporan, satu untuk menjadikan Fernando manajer konten laporan, dan satu untuk mendukung tugas tampilan-saja untuk grup Human Resource Managers.

Setelah Anda mengatur keamanan pada laporan atau sumber daya, pengaturan tersebut tetap menggunakan item meskipun Anda memindahkan item ke lokasi baru. Misalnya, jika Anda memindahkan laporan bahwa hanya beberapa orang yang berwenang untuk mengakses, laporan terus tersedia hanya untuk pengguna tersebut. Hasil ini dapat terjadi bahkan jika Anda memindahkannya ke folder yang memiliki kebijakan keamanan yang relatif terbuka.

Mengurangi serangan injeksi HTML dalam laporan atau dokumen yang diterbitkan

Di Reporting Services, laporan dan sumber daya diproses di bawah identitas keamanan pengguna yang menjalankan laporan. Jika laporan berisi ekspresi, skrip, item laporan kustom, atau rakitan kustom, kode berjalan di bawah kredensial pengguna. Jika sumber daya adalah dokumen HTML yang berisi skrip, skrip berjalan saat pengguna membuka dokumen di server laporan. Kemampuan untuk menjalankan skrip atau kode dalam laporan adalah fitur canggih yang dilengkapi dengan tingkat risiko tertentu. Jika kode berbahaya, server laporan dan pengguna yang menjalankan laporan rentan terhadap serangan.

Saat memberikan akses ke laporan dan ke sumber daya yang diproses sebagai HTML, penting untuk diingat bahwa laporan diproses dengan kepercayaan penuh dan skrip yang berpotensi berbahaya mungkin dikirim ke klien. Bergantung pada pengaturan browser, klien menjalankan HTML pada tingkat kepercayaan yang ditentukan di browser.

Anda dapat mengurangi risiko menjalankan skrip berbahaya dengan mengambil tindakan pencegahan berikut:

  • Jadilah selektif saat memutuskan siapa yang dapat menerbitkan konten ke server laporan. Karena ada potensi penerbitan konten berbahaya, Anda harus membatasi pengguna yang dapat menerbitkan konten ke beberapa pengguna tepercaya.

  • Semua penerbit harus menghindari penerbitan laporan dan sumber daya yang berasal dari sumber yang tidak diketahui atau tidak tepercaya. Jika perlu, buka file di editor teks dan cari skrip dan URL yang mencurigakan.

Parameter laporan dan injeksi skrip

Parameter Laporan memberikan fleksibilitas untuk desain dan eksekusi laporan secara keseluruhan. Namun, fleksibilitas yang sama ini dapat, dalam beberapa kasus digunakan oleh penyerang dalam memikat serangan. Untuk mengurangi risiko skrip berbahaya yang berjalan secara tidak sengaja, hanya laporan terbuka yang dirender dari sumber tepercaya. Anda harus mempertimbangkan skenario berikut yang merupakan potensi serangan injeksi skrip Renderer HTML:

  1. Laporan berisi kotak teks dengan tindakan hyperlink yang diatur ke nilai parameter yang bisa berisi teks berbahaya.

  2. Laporan dipublikasikan ke server laporan atau disediakan sededih sehingga nilai parameter laporan dapat dikontrol dari URL halaman web.

  3. Penyerang membuat tautan ke halaman web atau server laporan. Tautan tersebut menentukan nilai parameter dalam formulir javascript:<malicious script here> dan mengirim tautan tersebut ke orang lain dalam serangan yang memikat.

Laporan bisa berisi hyperlink yang disematkan dalam nilai properti Tindakan pada item laporan atau bagian dari item laporan. Hyperlink dapat terikat ke data yang diambil dari sumber data eksternal saat laporan diproses. Jika pengguna berbahaya memodifikasi data yang mendasar, hyperlink mungkin berisiko untuk eksploitasi skrip. Jika pengguna memilih tautan dalam laporan yang diterbitkan atau diekspor, skrip berbahaya dapat berjalan.

Untuk mengurangi risiko menyertakan tautan dalam laporan yang secara tidak sengaja menjalankan skrip berbahaya, hanya mengikat hyperlink ke data dari sumber tepercaya. Verifikasi bahwa data dari hasil kueri dan ekspresi yang mengikat data ke hyperlink tidak membuat tautan yang dapat dieksploitasi. Misalnya, jangan mendasarkan hyperlink pada ekspresi yang menggabungkan data dari beberapa bidang himpunan data. Jika perlu, telusuri laporan dan gunakan "Lihat Sumber" untuk memeriksa skrip dan URL yang mencurigakan.

Mengurangi serangan injeksi SQL dalam laporan berparameter

Dalam laporan apa pun yang menyertakan parameter jenis String, pastikan untuk menggunakan daftar nilai yang tersedia (juga dikenal sebagai daftar nilai yang valid) dan pastikan bahwa setiap pengguna yang menjalankan laporan hanya memiliki izin yang diperlukan untuk melihat data dalam laporan. Saat Anda menentukan parameter jenis String, pengguna disajikan dengan kotak teks yang dapat mengambil nilai apa pun. Daftar nilai yang tersedia membatasi nilai yang dapat dimasukkan. Jika Anda mengikat parameter laporan ke parameter kueri dan Anda tidak menggunakan daftar nilai yang tersedia, pengguna laporan dapat mengetik sintaks SQL ke dalam kotak teks. Tindakan ini mungkin berpotensi membuka laporan dan server Anda ke serangan injeksi SQL. Jika pengguna memiliki izin yang memadai untuk menjalankan pernyataan SQL baru, itu mungkin menghasilkan hasil yang tidak diinginkan di server.

Parameter laporan mungkin tidak terkait dengan parameter kueri dan nilai parameter disertakan dalam laporan. Jika demikian, pengguna laporan dapat mengetik sintaks ekspresi atau URL ke dalam nilai parameter dan merender laporan ke Excel atau HTML. Jika pengguna lain kemudian melihat laporan dan memilih konten parameter yang dirender, pengguna mungkin secara tidak sengaja menjalankan skrip atau tautan berbahaya.

Untuk mengurangi risiko skrip berbahaya yang berjalan secara tidak sengaja, buka laporan yang dirender hanya dari sumber tepercaya.

Catatan

Dalam rilis dokumentasi sebelumnya, contoh pembuatan kueri dinamis sebagai ekspresi disertakan. Jenis kueri ini membuat kerentanan terhadap serangan injeksi SQL dan karenanya tidak disarankan.

Mengamankan laporan rahasia

Laporan yang berisi informasi rahasia harus diamankan di tingkat akses data, dengan mengharuskan pengguna untuk memberikan kredensial untuk mengakses data sensitif. Untuk informasi selengkapnya, lihat Menentukan informasi kredensial dan koneksi untuk sumber data laporan. Anda juga dapat mengamankan folder agar tidak dapat diakses oleh pengguna yang tidak sah. Untuk informasi selengkapnya, lihat Folder aman.