Pernahkah sobat JS pengguna zimbra cek zimbra web kalian di website security online semacam immuniweb.com, sitecheck.sucuri.net, observatory.mozilla.org? Jika server kalian mendapatkan score B ke atas berarti konfigurasinya sudah ok, tapi jika di bawah C maka sobat sekalian perlu melakukan perbaikan-perbaikan di konfigurasi zimbranya, salah satunya adalah Content Security Policy (CSP).
Content Security Policy
Tujuan utama CSP adalah untuk mengurangi dan melaporkan serangan XSS. Serangan XSS mengeksploitasi kepercayaan browser pada konten yang diterima dari server. Skrip berbahaya dijalankan oleh browser korban karena browser mempercayai sumber konten, meskipun tidak berasal dari tempat asalnya.
CSP memungkinkan administrator server untuk mengurangi atau menghilangkan vektor di mana XSS dapat terjadi dengan menentukan domain yang harus dipertimbangkan browser sebagai sumber skrip yang dapat dieksekusi yang valid. Browser yang kompatibel dengan CSP kemudian hanya akan menjalankan skrip yang dimuat dalam file sumber yang diterima dari domain yang diizinkan tersebut, mengabaikan semua skrip lainnya (termasuk skrip sebaris dan atribut HTML penanganan peristiwa).
CSP di Zimbra
Sesuai topik kali ini penulis hanya akan membahas mengenai CSP di zimbra. Ada sobat pengguna zimbra yang menambahkan csp ini di konfigurasi nginx, namun penulis akan membahas penambahan di konfigurasi zimbra. Penulis menggunakan zimbra versi 8.7 dan setelahnya. Untuk isi dari csp sobat sesuaikan dengan kebutuhan sobat sekalian.
zimbra@mail$ zmprov mcf +zimbraResponseHeader "Content-Security-Policy: default-src 'self'; script-src https: 'self' 'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com; img-src 'self' data: https://ssl.google-analytics.com; style-src 'self' https://fonts.googleapis.com; font-src 'self' https://themes.googleusercontent.com https://fonts.gstatic.com; object-src 'none'"
Untuk penjelasan detilnya mengenai csp (misal maksud dari default-src, self, unsafe-inline, dsb), sobat dapat mempelajarinya di https://content-security-policy.com/
Setelah menambahkan csp, sobat lakukan tes terlebih dahulu apakah web nya berjalan normal atau ada yang terblok oleh csp. Sobat dapat menggunakan Web Developer Tools kalau di Mozilla Firefox atau Developer Tools di chrome.
Jika masih ada yang terblok oleh csp lakukan penyesuaian dan ulangi lagi langkah-langkah sebelumnya hingga tidak muncul konten yang terblok oleh csp. Jangan lupa memasukkan ‘self’ di setiap src agar link-link internal tidak terblok.
Setelah di console developer tools sudah tidak ada konten atau link yang terblok, sobat JS dapat dengan ‘pede’ melakukan tes di website security online.