Keamanan Sistem Operasi NetBSD untuk Aplikasi Berbasis Web – Bagian VII Hardening NetBSD

Penambalan celah keamanan pada instalasi

Salah satu fitur menarik dalam NetBSD adalah kita bisa melakukan pemeriksaan terhadap celah keamanan dengan mudah, Netbsd memiliki sebuah tool untuk melakukan audit terhadap keamanan paket-paketnya yaitu pkg_admin, pkg_admin ini adalah tools untuk melakukan berbagai pekerjaan untuk administrasi paket, didalamnya disertakan fungsi untuk mengaudit paket.

Paket diaudit dengan cara :

  • Mengunduh file audit
  • Membandingkan file audit dengan meta data paket pada sistem
  • Paket yang ada diaudit untuk diperiksa integritas datanya dengan hash MD5
  • Paket diaudit versinya agar dapat diketahui apakah versi yang digunakan memiliki vulneribilitas atau tidak
  • Melaporkan vulnerabilitas apabila ditemukan

METADATA PAKET

Ketika sebuah paket diinstal maka akan dibuat sebuah meta data yang terletak pada /var/db/pkg, didalam folder tersebut juga terdapat sebuah file bernama pkg-vulnerabilities yang berisi informasi mengenai kelemahan software yang terdapat didalam paket. Untuk meninjau paket ini dapat dilihat dengan perintah :
varidbpkg
Isi dari metadata ini selain struktur file didalam paket, juga beberapa script shell untuk mengadministrasi paket tersebut.

Audit Vulneribilitas Paket yang Terisntal

Untuk melakukan audit terhadap paket yang terisntal pada sistem kita, langkah pertama adalah mengunduh daftar vulnerabilitas terbaru yang terdapat pada repositori netbsd dengan perintah:

# pkg_admin fetch-pkg-vulnerabilities

 

Kemudian kita harus periksa keabsan paket yang baru kita unduh tadi dengan nilai hash md5 yg terdapat di server dengan perintah :

#pkg_admin check-pkg-vulnerabilities /var/db/pkg/pkg-vulnerabilities

pkgadminfetch

 

langkah selanjutnya adalah melakukan audit terhadap paket-paket yang ada dengan membandingkannya dengan  dengan file pkg-vulnerabilities yang baru saja kita unduh dengan perintah :

# pkg_admin audit

Hasilnya apabila ditemukan kelemahan maka akan muncul hasil seperti ini :vulnerabilities

Bila ditemukan seperti diatas maka lakukan segera upgrade ke versi terbaru dengan perintah

#pkgin upgrade

atau

#pkgin fullupgrade

Mengaudit Integritas File Paket Dengan Hash

Paket yang terisntall seluruhnya dapat diperiksa integritasnya dengan MD5 dengan sebuah opsi “check” perintah pada pkg_admin, hal ini berguna untuk mengetahui apakah ada file paket yang dimodifikasi oleh pihak yang tidak bertanggungjawab.

# pkg_admin check
admin check

Menambahkan Log-Log Penting

Untuk menambah keawasan kita akan status mesin, maka kita wajib menambahkan log-log penting dengan menambahkan baris-baris berikut pada /etc/newsyslog.conf.

#echo "/var/log/php-fpm.log 640 7 * * BZ /var/run/php-fpm.pid SIGUSR1" >> /etc/newsyslog.conf

#echo "/var/log/nginx/access.log 640 7 * 24 Z /var/run/nginx.pid SIGUSR1" >> /etc/newsyslog.conf

#echo "/var/log/nginx/error.log 640 7 * 24 Z /var/run/nginx.pid SIGUSR1" >> /etc/newsyslog.conf

 

Strategi Mitigasi #35 – Menangkap Lalulintas Jaringan

Mitigasi

Menangkap lalulintas data pada jaringan yang menuju aset internal seperti workstation dan server yang penting, begitu juga lalulintas yang beredar didalam batas-batas jaringan internal serta melakukan analisa terhadap data tersebut setelah terjadinya insiden intrusi.

 

Dasar Pemikiran

Menangkap lalulintas data pada jaringan dapat membantu organisasi untuk menentukan teknik yang digunakan oleh penyerang dan memeriksa tingkat kerusakan yang disebabkan oleh intrusi cyber. Analisa setelah intrusi yang telah berhasil dilakukan oleh penyerang membantu memastikan bahwa insiden telah diatasi.

 

Panduan Implementasi

Fokus pada penangkapan data pada lalulintas dari workstation dan server pada jaringan internal yang menyimpan atau mengakses informasi sensitif. Bila memungkinkan juga menangkap lalulintas data didalam batas jaringan internal, dengan catatan bahwa kegunaan penangkapan data ini akan percuma apabila data yang terkirim dalam bentuk terenkripsi dan dikirim kepada komputer yang tidak dianggap sebagai ancaman. Pastikan bahwa pengguna menyadari bahwa lalulintas data pada jaringan organisasi dimonitor untuk kepentingan keamanan.

Ketika sebuah intrusi cyber terjadi, simpanlah sebuah salinan dari lalulintas data untuk beberapa hari setelah intrusi teratasi, karena penyerang berkemungkinan akan kembali menyerang tidak lama berselang setelah serangan awal.

Metadata yang berhubungan dengan koneksi jaringan dapat membantu proses pencatatan log dan menggunakan ruang yang lebih sedikit pada media penyimpanan dibanding paket jaringan.

Strategi Mitigasi # 34 – Gateway Blacklisting (Daftar Hitam pada Gateway)

Mitigasi

Implementasi daftar hitam pada gateway (gateway blacklisting) untuk membatasi akses ke domain atau alamat IP yang diketahui melakukan kegiatan malicious.

 

Dasar Pemikiran

Daftar hitam pada gateway mengurangi resiko pengguna untuk terkonesi ke domain dan alamat IP yang diketahui merupakan milik cyber adversaries.

 

Panduan Implementasi

Intrusi cyber biasanya melibatkan penggunaan domain dinamis dan domain lainnya yang disediakan gratis kepada pengguna internet yang tidak jelas karena kurangnya atribut yang dimilikinya. Membatasi akses terhadap domain seperti ini setelah memeriksa bahwa organisasi tidak menggunakan akses kepada sebuah situs yang berada dalam naungan domain tersebut.

Strategi Mitigasi #33 – Network‐based Intrusion Detection/Prevention System

Mitigasi

Pengimplementasian sebuah network‐based Intrusion Detection/Prevention System (IDS/IPS) yang menggunakan signature dan heuristics untuk mengidentifikasi anomali yang dijabarkan dalam strategi mitigasi #16 ‘Centralised and time‐synchronised logging of allowed and blocked network activity’.

 

Dasar Pemikiran

Sebuah network‐based Intrusion Detection/Prevention System (IDS/IPS) apabila diimplementasikan dengan benar, selalu menggunakan signature terbaru dan ditunjang oleh proses yang benar, maka akan dapat membantu dalam mengidentifikasi dan dalam merespon intrusi cyber yang telah diketahui profilnya.

 

Panduan Implementasi

Menginspeksi lalulintas pada crossing perimeter boundaries untuk mencari kata kunci yang mengandung tanda klasifikasi (classification marking) yang mengidentifikasikan informasi sensitif, namun perlu diketahui bahwa penyerang biasanya menggunakan kompresi dan atau enkripsi pada data yang akan diselundupkan keluar untuk mengalahkan inspeksi seperti ini.

Strategi Mitigasi #32 – Membatasi usaha untuk mengakses situs web berdasarkan alamat IP.

Mitigasi

Membatasi usaha untuk mengakses situs web berdasarkan alamat IP, bukan berdasarkan nama domain.

 

Dasar Pemikiran

Mitigasi ini memaksa penyerang untuk mendapatkan nama domain baru, sehingga dapat direkam jejaknya untuk mengaudit dan mengidentifikasi intrusi.

 

Panduan Implementasi
Sebuah web server proxy dapat digunakan untuk mengimplementasi mitigasi ini.

Strategi Mitgasi #31 – Enkripsi TLS antara server email

Mitigasi

Menggunakan enkripsi TLS antara server email.

 

Dasar Pemikiran

Menggunakan enkripsi TLS pada kedua email server baik pihak pengirim maupun penerima membantu mencegah surel disadap dan digunakan sebagai bahan social engineering.

 

Panduan Implementasi
Melakukan pemindaian isi surel setelah surel didekripsi.

Strategi Mitigasi #30 – Perangkat Lunak Antivirus berbasis signature.

Mitigasi

Menggunakan perangkat lunak antivirus berbasis signature yang bersandar pada keterbaruan data signature untuk mengidentifikasi malware. Gunakan antivirus gateway dan desktop dari vendor yang berbeda.

 

Dasar Pemikirian

Perangkat lunak antivirus membantu mencegah, mendeteksi dan menghapus malware yang meliputi virus, worms, trojans, spyware dan adware. Bagaimanapun juga perangkat lunak antivirus berbasis signature adalah pendekatan reaktif yang masih memiliki kekurangan dalam melindungi terhadap malware yang belum diketahui oleh vendor antivirus.

 

Panduan Implementasi
Memindai berkas pada saat berkas tersebut diakses dan memindai seluruh berkas berdasarkan jadwal tertentu.

Strategi Mitigasi #29 – Inspeksi workstationakan berkas-berkas Microsoft Office

Mitigasi

Melakukan inspeksi terhadap workstation yang memiliki berkas-berkas Microsoft Office untuk kemungkinan terdapatnya infeksi perangkat lunak jahat.

 

Dasar Pemikiran

Inspeksi dan validasi berkas-berkas Microsoft Office dapat membantu dalam mengidentifikasi isi yang telah dimodifikasi, sehingga secara potensial dapat memblokir program-program jahat.

 

Panduan Implementasi
Inspeksi dan validasi berkas-berkas Microsoft Office dapat dilakukan dengan menggunakan aplikasi Microsoft Office File Validation10 atau Protected View11 feature12.

Strategi Mitigasi #28 – Edukasi Pengguna

Mitigasi

Mengedukasi pengguna, khususnya pengguna yang berkemungkinan besar menjadi sasaran, mengenai ancaman dari Internet seperti cara mengidentifikasi surel yang dibuat dengan teknik social engineering untuk spear phising atau surel duplikat yang tidak diharapkan, serta melaporkannya kepada tim keamanan TI. Pengguna juga harus melaporkan panggilan telepon yang mencurigakan seperti panggilan telepon dari orang yang tidak dikenal namun berusaha mengorek informasi mengenai infrastuktur TI organisasi. Edukasi ini harus berpusat pada mempengaruhi perilaku pengguna.

 

Dasar Pemikiran

Mengedukasi pengguna dapat memperkuat strategi mitigasi teknis. Pengguna dapat mengetahui dan melaporkan perilaku yang membahayakan seperti email yangmencurigakan, sebuah dokumen kosong atau dokumen dengan isi yang tidak relevan yang dilampirkan pada sebuah surel. Hal ini dapat membantu dalam mendeteksi spear phishing emails sebagai sebuah cara untuk mengintrusi. Namun untuk dapat mencegah dan mendeteksi sebuah intrusi cyber, mengimplementasi sebuah mitigasi teknis (seperti application whitelisting yang dikonfiguarsi untuk mencatat dan melaporkan pelanggaran) lebih diutamakan dibanding bersandar hanya pada edukasi pengguna.

Membiarkan pengguna dalam posisi untuk mengambil sebuah keputusan yang berkaitan dengan keamanan dan berharap mereka cukup teredukasi untuk mengambil keputusan yang tepat akan berakhir dengan kemungkinan beberapa pengguna akan mengambil keputusan yang salah dan berakhir pada kompromi keamanan.

LSN menyadari bahwa beberapa surel spear phishing menggunakan teknik pembuatan yang cerdas sehingga usaha mengedukasi pengguna sebesar apapun tidak akan mampu mencegah atau mendeteksinya. Edukasi pengguna juga tidak akan mampu mencegah pengguna untuk mengakses sebuah situs web resmi yang sudah terkompromi dan mengunduh sebuah malware secara diam-diam. Dengan mengakses situs seperti tersebut dapat mengkompromi komputer pengguna tanpa adanya indikasi yang dapat dideteksi oleh pengguna

 

Panduan Implementasi

Mengedukasi pengguna bertujuan untuk :

  • Dapat menghindari pemilihan kata sandi yang lemah
  • Menggunakan katasandi secara berulang pada komputer yang sama
  • Menggunakan katasandi yang sama pada berbagai perangkat
  • Secara tidak perlu mengekspos alamat surel dan informasi pribadi
  • Mengakses situs web yang tidak terkait dengan pekerjaan
  • Menggunakan perangkat USB atau perangkat IT lainnya yang tidak disediakan oleh organisasi.

Mengedukasi pengguna dalam mengapa mematuhi kebijakan TI dapat membantu mereka dalam melindungi dan menangani informasi sensitif yang telah dipercayakan kepada mereka. Berbagilah dengan pengguna dengan anekdot rincian mengenai kejadian intrusi yang pernah terjadi terhadap organisasi yang pernah terjadi dengan menekankan pada dampak dari intrusi tersebut terhadap organisasi dan pengguna. Edukasi seperti ini dapat mengurangi tingkat penolakan pengguna terhadap implementasi dari strategi mitigasi. Sebagai contoh, pengguna menjadi tidak menolak ketika dibatasi ketika mereka mengerti mengapa strategi tersebut diperlukan.

Edukasi pengguna perlu disesuaikan dengan uraian jabatan dari pengguna. Tambahan edukasi khusus dibutuhkan untuk pengguna dengan jabatan tertentu, contohnya :

  • Edukasi pengembang perangkat lunak internal untuk menulis kode sumber aman
  • Edukasi penguji perangkat lunak internal dalam mencari celah keamanan yang umum pada perangkat lunak untuk dicari
  • Edukasi staf yang memiliki peranan teknis (seperti system administrator, network administrators, enterprise architects, IT project engineeres dan system integrators) mengenai kemanan TI dan juga mengenai teknik serangan siber.
  • Edukasi representatif bisnis senior mengenai bahayanya menyelesaikan proyek secara terburu-buru tanpa adanya security design dan pengujian keamanan, dan juga resiko dari mengedepankan business functionality diatas keamanan bukannya mengintegrasi business functionality dan security functionality.
  • Edukasi staf help desk untuk memiliki tingkat kecurigaan yang cukup, contohnya ketika menangani permintaan lupa kata sandi dari seorang user yang tidak dapat mengungkapkan identitas mereka secara baik dan lengkap. Keinginan psikologis untuk membantu mereka tidak boleh membuat mereka melupakan kebijakan bisnis, prosedur ataupun nalar.

Keberhasilan dalam edukasi pengguna harus dapat diukur dengan bukti bahwa edukasi ini berkontribusi terhadap :

  • Berkurangnya frekuensi serta dampak dari serangan yang berhasil, termasuk serangan yang berasal dari uji phishing dan uji penetrasi, yang melibatkan pengguna secara langsung dalam ujicoba dalam skenario dunia nyata.
  • Bertambahnya proporsi laporan dari pengguna mengenai surel yang berisi spear phishing maupun aktifitas lain yang mencurigakan.

Keamanan Sistem Operasi NetBSD untuk Aplikasi Berbasis Web – Bagian IX Vulnerability Testing NetBSD

Untuk menguji apakah sistem operasi kita sudah sesuai tingkat keamanannya ada baiknya dilakukan audit dan pengujian vulnerabilitas pada sistem NetBSD, untuk keperluan ini kita akan memanfaatkan 3 buah tools yaitu nmap, Nessus dan Metasploit. Tools ini semua saya jalankan pada mesin yang terpisah dan menggunakan Kali Linux 1.1a untuk sistem operasinya. Kali linux dapat didownload di http://www.kali.org namun proses instalasinya tidak akan dijelaskan disini karena diluar pokok bahasan tugas.

Menguji dengan NMAP

Nmap adalah tool opensource (http://nmap.org) yang berfungsi untuk melakukan network discovery dan network scanning, tool multiguna ini sangat berguna untuk mengetahui informasi mengenai sebuah sistem, untuk menguji sistem NetBSD yang telah kita perkeras kita akan menggunakan opsi -sV untuk scanning versi servis yang berjalan dan menggunakan opsi -O untuk mendeteksi sistem operasi yang digunakan, berikut adalah keluaran nmap dari kali linux saya :

nmap

Nmap berhasil mendeteksi 2 buah port terbuka yaitu http dan https dan keduanya menggunakan nginx 1.7.4, namun untuk mendeteksi sistem operasi salah pada versi OSnya saja, sistem operasi yang terdeteksi benar yaitu NetBSD. Disini kita bisa lihat bahwa tidak ada port lain yang terbuka sehingga memperkecil kemungkinan serangan.

Audit Vulnerabilitas dengan Nessus

Nessus sebenarnya bukan tool yang gratis (http://tenable.com) untuk digunakan pada jaringan besar, namun untuk penggunaan rumah ada versi gratisnya dan cukup memberikan gambaran mengenai bagaimana suatu proses audit keamanan seharusnya berjalan termasuk pada proses pelaporannya yang intuitif. Proses instalasi pada kali linux cukup mudah yaitu pertama melakukan registrasi pada situs web untuk mendapatkan kode aktifasi kemudian mengunduh nessus versi terbaru untuk Debian 64bit karena kali linux berbasis debian, dan lakukan instalasi dengan memasukan perintah :

# dpkg -i nessus-versiyangdidownload.deb
# service nessusd start

Kemudian bukalah webbrowser dan masukan http://localhost:8834, ikuti langkah-langkah lanjutan pada halaman web tersebut termasuk memasukan kode aktifasi.

Basic Network Scanning dengan Nessus

Setelah instalasi loginlah kedalam halaman utama nessus, kemudian pilih add new scan, kemudian pilih lah Basic Network Scan

nessusbasic

Kemudian masukan info yg dibutuhkan untuk scan,

nessushasilbasic

setelah scan selesai akan mengeluarkan informasi mengenai vulnerabilitas yang dimiliki oleh sistem. Disini kita dapati bahwa nessus mendeteksi 2 buah kelemahan yang memiliki resiko tinggi, 4 buah kelemahan yang memiliki tingkat sedang dan 27 informasi tambahan untuk meningkatkan keamanan sistem kita. Bila kita klik informasi lebih lanjut akan keluar seperti dibawah ini.

nessushasilbasicdetil

PHP yang digunakan perlu dimutakhirkan karena mengandung resiko keamanan yang cukup besar. Tentunya apabila ini hendak dilakukan pada OS seperti NetBSD akan sedikit sulit karena paket-paket yang disediakan cukup lama untuk dimutakhirkan, namun kita bisa melakukan kompilasi sendiri dari kode sumber bila hal ini mendesak dilakukan.

WordPress Scanning menggunakan Metasploit

Metasploit adalah penetration testing framework yang modular, sehingga seiring berkembangnya waktu tools yang terkandung didalamnya bertambahbanyak,  termasuk untuk melakukan pentest kedalam wordpress. Skenario pengujian kali ini adalah kita akan membruteforce password milik user admin, pada percobaan kali ini sengaja dipilih password yang lemah dan terdapat pada file top 500-worst-password.txt yang banyak terdapat di google dan saya unduh untuk keperluan ini.

Metasploit sudah terdapat di kali linux sehingga tidak perlu repot dalam instalasinya, cukup jalankan perintah msfconsole dari terminal.

metasploit

Pilihlah auxiliary (modul) untuk menjalankan bruteforce wordpress dengan perintah ini :

metasploit2

Kemudian kita harus memasukan informasi yang dibutuhkan oleh metasploit untuk menjalankan bruteforce, yang perlu kita set adalah nama host (RHOST), nama username (USERNAME), dan file yang berisi kamus yang digunakan (PASS_FILE), caranya ada pada gambar berikut.

metasploit3

Namun karena aplikasi wordpress adalah yang terbaru, metasploit bahkan gagal melakukan enumerasi/validasi awal

metasploit4

WordPress Scanning dengan wpscan

wpscan adalah sebuah aplikasi berbasis ruby untuk melakukan bruteforce attack pada wordpress, penggunaanya juga cukup mudah, hanya satu baris saja dan kita akan menggunakan skenario sama dengan diatas yaitu username admin yang passwordnya diambil dari 500-worst-password.txt. Berikut perintah yang digunakan

wpscan1

Yang menarik adalah hasil dari bruteforce yang ketika sukses tidak dikenali oleh wpscan, hampir sama ketika metasploit tidak mengenali cara enumerasi user, ini menurut analisa saya adalah karena versi wordpress terbaru yang sedikit memodifikasi sehingga tidak dikenali scanner-scanner yang lama. Dibawah ini pada gambar terdapat error ketika menggunakan password newyork, padahal memang itu password yang digunakan sebagai password admin.

wpscan2

Dalam hal scanning user kali ini wpscan yang spesifik utk bruteforce wordpress lebih handal dibanding metasploit karena sukses melakukan scan.