PENGEMBANGAN METRIK KEAMANAN JARINGAN KOMPUTER BERBASIS GRAF UNTUK MENINGKATKAN KEAMANAN JARINGAN KOMPUTER
DISERTASI Karya tulis sebagai salah satu syarat untuk memperoleh gelar Doktor dari Institut Teknologi Bandung
Oleh
TITO WALUYO PURBOYO NIM : 33210002 (Program Studi S3 Teknik Elektro dan Informatika)
INSTITUT TEKNOLOGI BANDUNG 2015
ABSTRAK
PENGEMBANGAN METRIK KEAMANAN JARINGAN KOMPUTER BERBASIS GRAF UNTUK MENINGKATKAN KEAMANAN JARINGAN KOMPUTER Oleh
Tito Waluyo Purboyo NIM : 33210002 Suatu jaringan komputer dapat terdiri dari host klien maupun host server. Pada setiap host dapat ditemukan satu vulnerabilitas atau lebih. Konektivitas antar host dinyatakan dalam bentuk matriks keterhubungan. Vulnerabilitas pada setiap host dapat dinyatakan dalam bentuk himpunan. Kemudian attack rules dapat dinyatakan dalam bentuk matriks. Privilege penyerang pada setiap host dapat dinyatakan dalam bentuk ruang privilege status. Pada disertasi ini dihasilkan sebuah algoritma untuk menghasilkan graf serangan status. Algoritma graf serangan status ini menghasilkan tabel perhitungan status kinerja jaringan. Dari tabel perhitungan status kinerja jaringan ini dapat dikonstruksi tiga jenis graf serangan yaitu graf serangan status, graf serangan host dan graf serangan vulnerabilitas. Ketiga jenis graf serangan ini dikonstruksi secara manual menggunakan graphviz. Hasil perhitungan status dalam bentuk tabel dibaca oleh program Matlab sehingga dapat dihitung metrik-metrik keamanan jaringan berbasis graf. Dalam disertasi ini dikembangkan metrik keamanan jaringan berbasis graf serangan yang dapat digunakan untuk mengevaluasi keamanan suatu jaringan. Metrik keamanan jaringan berbasis graf serangan ini digunakan secara bersamaan sehingga membentuk grup metrik keamanan jaringan berbasis graf serangan. Selanjutnya, grup metrik keamanan jaringan berbasis graf serangan inilah yang digunakan untuk mengevaluasi suatu jaringan komputer. Proses evaluasi terhadap suatu jaringan komputer dilakukan dengan mengukur metrik keamanan jaringan. Dalam penelitian ini digunakan metode untuk menghasilkan graf serangan yang mempertimbangkan kinerja jaringan dan dapat dipakai sebagai alat untuk menganalisis vulnerabilitas jaringan. Metode ini membuat graf serangan memiliki kemampuan tambahan dalam hal mengukur efek serangan yang dilihat dari penurunan kinerja jaringan. Selanjutnya pemilihan kombinasi countermeasure dilakukan berdasarkan kebutuhan pengguna. Banyaknya kombinasi countermeasure meningkat secara eksponensial jika banyaknya vulnerabilitas pada tiap host meningkat.
i
Pada penelitian disertasi ini telah dihasilkan algoritma untuk menghasilkan graf serangan status, graf serangan host dan graf serangan vulnerabilitas. Metrik keamanan jaringan berbasis graf juga telah dihasilkan. Framework untuk mengevaluasi dan meningkatkan keamanan jaringan yang dihasilkan dalam penelitian disertasi digunakan sebagai acuan dalam melaksanakan percobaan. Beberapa kesimpulan telah dihasilkan berdasarkan percobaan yang dilakukan dalam penelitian disertasi ini. Grup metrik keamanan berbasis graf serangan dapat digunakan untuk mengevaluasi keamanan jaringan dari suatu jaringan komputer. Peningkatan jumlah host dan vulnerabilitas pada jaringan menyebabkan penurunan keamanan jaringan. Graf host dan graf vulnerabilitas dapat dihasilkan menggunakan model dalam disertasi ini. Kata kunci: Network Security Metrics, Attack Graph, Network Hardening.
ii
ABSTRACT
DEVELOPMENT OF COMPUTER NETWORK SECURITY METRIC BASED ON ATTACK GRAPH USED TO IMPROVE COMPUTER NETWORK SECURITY
By
Tito Waluyo Purboyo NIM : 33210002 A computer network can consist of client hosts and server hosts. On each host can be found one or more vulnerabilities. Connectivity between hosts expressed in the form of connectedness matrix. Vulnerability on any host can be expressed in terms of the set. Then attack rules can be include expressed in the form of a connectedness matrix. Attacker privilege on any host can be expressed in the form of status privileged space. In this dissertation we produce an algorithm to generate an attack graph. This attack graph algorithm generate calculation table of network performance status. From this calculation table of network performance status, it can be constructed three types of attack graph these are status attack graph, host attack graph and vulnerability attack graph. These types of attack graphs are constructed manually using graphviz. Status calculation results in tabular form readable by a Matlab program so that the attack graph-based network security metrics can be calculated. In this dissertation, the attack graph-based network security metrics were developed that can be used to evaluate the security of a network. Attack graphbased network security metrics are used simultaneously so it form a group of attack graph-based network security metrics. Furthermore, group of attack graphbased network security metrics are used to evaluate a computer network. The evaluation process of a computer network is performed by measuring network security metrics. In this study, the method used to produce the attack graph that take into account the network performance and can be used as a tool to analyze network vulnerabilities. This method makes attack graph have additional capabilities in terms of measuring the effect of the attack seen from the decline in network performance. Furthermore, the choosing of countermeasures combination is done based on user requirements. If the number of vulnerabilities on each host increases, then the number of countermeasures combination increases exponentially.
iii
In this research dissertation we produce an algorithm to produce a status attack graph, host attack graphs and vulnerability attack graphs. Attack graph-based network security metrics have also been produced. Framework to evaluate and improve the security of the network resulting in this research is used as a reference in carrying out the experiment. Some conclusions have been generated based on experiments conducted in this research dissertation . Security Metrics Group based on Attack Graph can be used to evaluate the network security of a computer network. Increasing the number of hosts and vulnerabilities on the network led to a decrease in the level of network security. Hosts graph and vulnerabilities graph can be generated using a model in this dissertation. Kata kunci : Network Security Metrics, Attack Graph, Network Hardening.
iv
PENGEMBANGAN METRIK KEAMANAN JARINGAN KOMPUTER BERBASIS GRAF UNTUK MENINGKATKAN KEAMANAN JARINGAN KOMPUTER
Oleh
Tito Waluyo Purboyo NIM : 33210002 (Program Studi S3 Teknik Elektro dan Informatika) Institut Teknologi Bandung
Menyetujui Tim Pembimbing
Tanggal ………………………..
Ketua
___________________________ (Prof. Dr. Ir. Kuspriyanto)
Anggota
Anggota
_______________________
_______________________
(Dr. Ir. Budi Rahardjo)
(Dr. Intan Detiena)
v
Dipersembahkan kepada Ultah Dianawati, Rafi dan Ghani
vi
PEDOMAN PENGGUNAAN DISERTASI Disertasi Doktor yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak cipta ada pada pengarang dengan mengikuti aturan HaKI yang berlaku di Institut Teknologi Bandung. Referensi kepustakaan diperkenankan dicatat, tetapi pengutipan atau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengan kebiasaan ilmiah untuk menyebutkan sumbernya.
Memperbanyak atau menerbitkan sebagian atau seluruh disertasi haruslah seizin Direktur Program Pascasarjana, Institut Teknologi Bandung.
vii
UCAPAN TERIMA KASIH Dengan menyebut nama Allah SWT Penulis memanjatkan syukur tak terhingga atas terselesaikannya buku disertasi ini. Sebuah proses belajar yang panjang sejak mencari landasan teori untuk berpijak dan memulai langkah, menyusun bangunan logika, penyusunan dan pengolahan data, hingga pengambilan kesimpulan, menjadi sesuatu yang tidak mungkin dilakukan tanpa izin dan kekuasaan-Nya.
Penulis sangat berterima kasih pada Prof. Dr. Ir. Kuspriyanto sebagai ketua Tim Pembimbing dan Ir. Budi Rahardjo, M.Sc, Ph.D dan Dr. Muchtadi Intan Detiena sebagai anggota Tim Pembimbing atas segala saran, bimbingan dan nasehatnya selama penelitian berlangsung dan selama penulisan disertasi ini.
Penulis juga berterima kasih atas saran, kritik dan nasihat dari Prof. Armein Z.R. Langi, Dr. Yoga Priyana, Dr. Emir Mauludi Husni, Dr. Maman Abdurohman sebagai reviewer dan penguji .
Terima kasih disampaikan kepada Institut Teknologi Bandung atas bantuan Beasiswa Voucher ITB pada semester 3 s.d. semester 6 yang diterima selama pendidikan program doktor ini.
Terima kasih disampaikan kepada semua pihak yang telah memotivasi dan mendukung penulis dalam penyusunan disertasi ini. Penulis menyadari bahwa masih banyak kekurangan dalam penyampaian disertasi ini sehingga kritik dan saran yang membangun sangat dibutuhkan untuk pengembangan ilmu penulis.
Demikian, semoga disertasi ini bermanfaat.
Bandung, Desember 2015
Tito Waluyo Purboyo
viii
DAFTAR ISI ABSTRAK ............................................................................................................... i ABSTRACT........................................................................................................... iii PEDOMAN PENGGUNAAN DISERTASI......................................................... vii UCAPAN TERIMA KASIH................................................................................ viii DAFTAR ISI.......................................................................................................... ix DAFTAR GAMBAR DAN ILUSTRASI ............................................................. xii DAFTAR TABEL................................................................................................ xiii DAFTAR DEFINISI ............................................................................................ xiv DAFTAR SINGKATAN DAN LAMBANG........................................................ xv Bab I
Pendahuluan ........................................................................................... 16
I.1
Latar Belakang ....................................................................................... 16
I.2
Rumusan Masalah .................................................................................. 18
I.2.1
Metrik Keamanan Jaringan Berbasis Graf Serangan ...................... 18
I.2.2
Peningkatan Keamanan Jaringan Komputer ................................... 18
I.3
Tujuan Penelitian.................................................................................... 19
I.4
Kontribusi Penelitian .............................................................................. 19
I.5
Batasan Penelitian .................................................................................. 19
I.6
Premis dan Hipotesis .............................................................................. 19
I.6.1
Premis.............................................................................................. 19
I.6.2
Hipotesis.......................................................................................... 20
I.7
Metodologi Penelitian ............................................................................ 20
I.8
Sistematika Disertasi .............................................................................. 20
Bab II
Studi Pustaka .......................................................................................... 22
II.1
Beberapa Definisi ................................................................................... 22
II.1.1
Keamanan........................................................................................ 22
II.1.2
Metrik dan Measurement ................................................................ 24
II.1.3
Metrik Keamanan............................................................................ 25
II.1.4
Metrik Keamanan Jaringan ............................................................. 26
II.1.5
Graf ................................................................................................. 27
II.2
Peta Jalan Penelitian ............................................................................... 27
II.3
Konsep Network Hardening ................................................................... 35 ix
II.4
Dataset/Database Vulnerabilitas ........................................................... 35
II.5
Vulnerabilitas Jaringan Komputer.......................................................... 37
II.5.1
Definisi Vulnerabilitas .................................................................... 37
II.5.2
Sumber Vulnerabilitas..................................................................... 38
II.6
Model Jaringan ....................................................................................... 38
Bab III
Metrik Keamanan Jaringan................................................................. 42
III.1 Pengembangan Metrik Keamanan Jaringan ........................................... 42 III.1.1
Exploited Vulnerability Percentage (EVP)..................................... 42
III.1.2
Vulnerable Host Percentage (VHP)................................................ 42
III.2 Penentuan Grup Metrik Keamanan Berbasis Graf Serangan ................. 42 III.3 Kelebihan dan Kekurangan Metode Metrik yang Dikembangkan ......... 43 III.4 Tiga Jenis Graf yang Digunakan Dalam Penelitian Disertasi ................ 44 III.5 Framework Penelitian............................................................................. 44 III.6 Model Graf Serangan ............................................................................. 46 III.7 Biaya dan Resiko.................................................................................... 49 III.8 Perbandingan Metode Metrik ................................................................. 55 Bab IV
Simulasi Penguatan Jaringan .............................................................. 57
IV.1
Jaringan Eksperimen........................................................................... 57
IV.2
Pemilihan Kombinasi Countermeasure .............................................. 72
IV.3
Beberapa Kasus Lain .......................................................................... 75
IV.3.1 Kasus I, Countermeasure: Vulnerabilitas V1 dihilangkan ............... 75 IV.3.2 Kasus II, Countermeasure: Vulnerabilitas V3 dan V4 dihilangkan .. 77 IV.3.3 Kasus III, Countermeasure: Vulnerabilitas V5 dihilangkan ............ 78 IV.3.4 Kasus IV, Countermeasure: Vulnerabilitas V6 dihilangkan ............ 80 IV.4
Diskusi dan Analisa ............................................................................ 80
IV.4.1 Kasus I, Vulnerabilitas V=0............................................................ 80 IV.4.2 Kasus II, Vulnerabilitas diantara Nol dan Tak Terhingga 0
Kesimpulan dan Tindak Lanjut .............................................................. 82
V.1
Kesimpulan............................................................................................. 82
V.2
Tindak Lanjut ......................................................................................... 83
Daftar Pustaka ....................................................................................................... 85 RIWAYAT HIDUP............................................................................................... 88
x
DAFTAR LAMPIRAN Lampiran 1 Flowchart Inisiasi Data...................................................................... 90 Lampiran 2 Flowchart Implementasi Attack Rules .............................................. 91 Lampiran 3 Keluaran Program Komputer............................................................. 92 Lampiran 4 Listing Program Komputer................................................................ 93
xi
DAFTAR GAMBAR DAN ILUSTRASI Gambar I.1. Jaringan Komputer............................................................................ 16 Gambar II.1 Kerangka Kerja Percobaan (Idika, 2010) ......................................... 31 Gambar II.2. Model Jaringan Flat ......................................................................... 39 Gambar II.3. Model Jaringan Eksternal-internal.................................................. 39 Gambar II.4. Model Jaringan Eksternal DMZ Internal ........................................ 39 Gambar II.5: Model Graf Serangan ...................................................................... 40 Gambar II.6. Contoh Graf Akses Host dan Nilai Metrik ...................................... 41 Gambar III.1. Framework Evaluasi dan Peningkatan Keamanan Jaringan .......... 45 Gambar III.2. Penjelasan Data Jaringan................................................................ 46 Gambar IV.1. Jaringan Eksperimen ...................................................................... 57 Gambar IV.2. Attack Graph untuk Jaringan Eksperimen ..................................... 61 Gambar IV.3. Tabel Vulnerabilitas untuk Jaringan Eksperimen .......................... 62 Gambar IV.4. Matriks Keterhubungan untuk Jaringan Eksperimen..................... 62 Gambar IV.5. Matriks Attack Rules untuk Jaringan Eksperimen ......................... 63 Gambar IV.6. Status pada Attack Graph untuk Jaringan Eksperimen.................. 63 Gambar IV.7. Attack Graph untuk Jaringan Eksperimen ..................................... 64 Gambar IV.8. Grafik Biaya Total terhadap Konfigurasi Countermeasure........... 74 Gambar IV.9. Grafik Resiko terhadap Konfigurasi Countermeasure .................. 74 Gambar IV.10. Grafik TC ternormalisasi dan R ternormalisasi terhadap konfigurasi countermeasure ..................................................... 75 Gambar IV.11. Graf Serangan Status jika vulnerabilitas V1 dihilangkan ............. 76 Gambar IV.12. Graf Serangan Host jika vulnerabilitas V1 dihilangkan ............... 76 Gambar IV.13. Graf Serangan Vulnerabilitas jika vulnerabilitas V1 dihilangkan 77 Gambar IV.14. Graf Serangan Status jika vulnerabilitas V3 dan V4 dihilangkan.. 77 Gambar IV.15. Graf Serangan Host jika vulnerabilitas V3 dan V4 dihilangkan.... 77 Gambar IV.16. Graf Serangan Vulnerabilitas jika vulnerabilitas V3 dan V4 dihilangkan ............................................................................... 78 Gambar IV.17. Graf Serangan Status jika vulnerabilitas V5 dihilangkan ............. 79 Gambar IV.18. Graf Serangan Host jika vulnerabilitas V5 dihilangkan ............... 79 Gambar IV.19. Graf Serangan Vulnerabilitas jika vulnerabilitas V5 dihilangkan 79 Gambar IV.20. Graf Serangan Status jika vulnerabilitas V6 dihilangkan ............. 80 Gambar IV.21. Graf Serangan Host jika vulnerabilitas V6 dihilangkan ............... 80
xii
DAFTAR TABEL Tabel II.1. Peta Jalan Penelitian Metrik Keamanan Berbasis Graf Serangan....... 30 Tabel II.2. Contoh Grup Metrik Keamanan Berbasis Graf Serangan (Idika, 2010) .................................................................................................. 31 Tabel II.3. Vulnerabilitas Remote-To-Root yang Ditemukan oleh Oval (Ingols, K., Chu, M. Lippmann, R., Webster, S., Boyer, S., 2009) ............. 36 Tabel III.1. Aturan Klasifikasi untuk VPN ........................................................... 48 Tabel III.2. Nilai peluang Lji ................................................................................. 51 Tabel III.3. Vulnerabilitas, Bugtraq ID dan informasi dampak Ii ......................... 53 Tabel III.4. Daftar generik dari security countermeasure untuk vulnerabilitas dan threat yang teridentifikasi (Viduto, V.; Maple, C.; Huang, W. and López-Peréz, D., 2012) ...................................................... 54 Tabel III.5. Nilai zLi .............................................................................................. 54 Tabel III.6. Keterkaitan antara Threat dan Vulnerabilitas .................................... 55 Tabel III.7. Perbandingan Metode Metrik............................................................. 56 Tabel IV.1. Vulnerabilitas pada Jaringan Eksperimen.......................................... 58 Tabel IV.2. VPN untuk Jaringan Eksperimen....................................................... 59 Tabel IV.3. Status Tiap Node pada Graf Serangan ............................................... 60 Tabel IV.4. Data Vulnerabilitas dan Dampak Terhadap CIA............................... 66 Tabel IV.5. Data Threat dan Vulnerabilitas yang Dapat Dieksploitasi ................ 67 Tabel IV.6. Nilai Kemungkinan Lji bahwa Threat akan Mengeksploitasi Vulnerabilitas............................................................................ 68 Tabel IV.7. Data Countermeasure ........................................................................ 68 Tabel IV.8. Data Countermeasure dan Vulnerabilitas.......................................... 69 Tabel IV.9. Data Biaya untuk Setiap Countermeasure yang Diterapkan ............. 69 Tabel IV.10. Data yang digunakan untuk menghitung TIR .................................. 70 Tabel IV.11. Proses Perhitungan Resiko Awal Total (TIR).................................. 70 Tabel IV.12. Proses Perhitungan Faktor Pengurang Resiko ................................. 70 Tabel IV.13. Proses Perhitungan Biaya Total dan Resiko .................................... 71 Tabel IV.14. Beberapa Himpunan Countermeasure, Biaya Total dan Resiko ..... 73
xiii
DAFTAR DEFINISI
Attack graph
Suatu abstraksi yang mewakili cara penyerang dalam menggunakan saling ketergantungan di antara ancaman untuk melanggar kebijakan keamanan.
Attack path
Sebuah urutan langkah-langkah yang dimulai dari keadaan awal penyerang untuk menyerang host tujuan (pelanggaran kebijakan keamanan) dalam graf serangan.
Breach
Pelanggaran kebijakan keamanan.
Countermeasure Tindakan yang dilakukan untuk menghilangkan setidaknya satu ancaman dari sistem. Entity
Sebuah sistem komputer, proses, orang, atau koleksi dari entitas yang ada.
Exploit
Contoh ancaman menentukan prasyarat dan syarat sebuah ancaman dengan rincian dari jaringan yang diteliti.
Hardening
Memberikan perlindungan untuk entitas
Security
Proses penyediaan kenyamanan, integritas dan ketersediaan untuk entitas berdasarkan kebijakan-kebijakan keamanan yang berlaku.
Security control
Pengendalian keamanan.
Security metric
Nilai yang dihasilkan dari pengukuran dapat mengidentifikasi entitas atribut mempengaruhi keamanan fisik, personil, IT, atau operasional.
Security policy
Persyaratan yang spesifik untuk keadaan jaringan yang aman.
Vulnerability
Kelemahan dalam sistem yang dapat dieksploitasi oleh penyerang.
xiv
DAFTAR SINGKATAN DAN LAMBANG
SINGKATAN Nama
Pemakaian pertama kali pada halaman 16
TC
Total cost
TI
Teknologi informasi
16
TIR
Resiko awal total
17
ROI
Return on investment
21
NVD
National vulnerability database
27
OSVDB
Open system vulnerability database
27
CVE
Common vulnerability exposure
27
SHP
(Shortest Host Path) Metric.
41
SVP
(Shortest Vulnerability Path) Metric.
41
SWPP
(Shortest Worst Performance Path) Metric.
41
EVP
(Exploited Vulnerability Percentage) Metric.
41
VHP
(Vulnerable Host Percentage) Metric.
41
xv
Bab I I.1
Pendahuluan
Latar Belakang
Dalam suatu jaringan komputer (Gambar 1.1) terdapat banyak host (workstation, laptop, file server, database server dan lainnya) yang mungkin memiliki banyak lubang keamanan. Berbagai lubang keamanan ini dapat dimanfaatkan oleh penyusup untuk masuk ke dalam jaringan. Akibatnya dapat terjadi kecelakaan keamanan (security incidents) yang dapat menyebabkan kehilangan (losses) yang besar bagi suatu organisasi (bukan hanya direct losses tetapi juga kehilangan reputasi dan hubungan baik outsourcing). Dalam disertasi ini akan dilakukan pengembangan metrik untuk mengukur keamanan jaringan. Metrik keamanan jaringan yang akan dikembangkan terdiri dari dua jenis metrik yaitu metrik yang tidak berbasis graf serangan dan metrik berbasis graf serangan. Secara lebih detil tentang metrik ini akan dibahas pada bagian selanjutnya.
Gambar I.1. Jaringan Komputer
16
Salah satu jenis metrik keamanan yang berkaitan erat dengan analisis keamanan suatu organisasi adalah metrik keamanan berbasis graf serangan (Idika, 2010). Graf serangan merupakan sebuah abstraksi yang menggambarkan cara penyerang dalam melanggar kebijakan keamanan dengan cara memanfaatkan saling ketergantungan diantara berbagai vulnerabilitas yang ada. Walaupun sejumlah metrik keamanan berbasis graf serangan telah diajukan dalam literatur yang ada (Idika, 2010) (Wang, L. Islam, T. Long, T. Singhal, A. Jajodia, S., 2008), namun belum ada penelitian dan analisis tentang bagaimana metrik keamanan berperilaku terhadap perubahan ukuran jaringan (jumlah host). Pada penelitian disertasi ini diteliti bagaimana metrik keamanan berbasis graf serangan berperilaku dalam merespon perubahan jumlah host (ukuran jaringan) pada beberapa model jaringan. Perilaku setiap metrik akan digambarkan dalam bentuk sebuah grafik. Setiap grafik yang dihasilkan akan dinyatakan dalam bentuk persamaan matematika.
Dalam disertasi ini juga dipaparkan bagaimana proses untuk mendapatkan metrik yang akan diajukan sebagai kebaruan. Metrik keamanan berbasis graf serangan yang baru ini dihasilkan berdasarkan kriteria penentuan metrik yang baik. Beberapa metrik yang telah dihasilkan sebelumnya (misalnya Network Compromise Percentage Metric) juga mengilhami bagaimana metrik keamanan berbasis graf serangan yang baru ini dapat ditemukan.
Metrik-metrik keamanan berbasis graf serangan yang baru merupakan kombinasi dari berbagai metrik yang berbeda. Kombinasi metrik keamanan berbasis graf serangan yang dipilih ini berdasarkan kesederhanaan bentuknya dan kemudahan dalam menganalisis metrik tersebut.
Dalam disertasi ini juga dilakukan penelitian mengenai bagaimana cara menentukan suatu evaluasi terhadap keamanan suatu jaringan. Proses evaluasi keamanan jaringan ini menggunakan metrik-metrik keamanan berbasis graf serangan. Selain evaluasi keamanan terhadap suatu jaringan, dapat juga dilakukan evaluasi terhadap dua jaringan atau lebih sehingga keamanan jaringan dari dua buah konfigurasi jaringan dapat dibandingkan.
17
Pada bagian akhir dari penelitian disertasi ini akan dilakukan peningkatan keamanan jaringan yang dilakukan dengan menggunakan prinsip menghilangkan atau mengurangi vulnerabilitas pada jaringan. Prinsip penghilangan atau pengurangan vulnerabilitas ini dilakukan dengan menggunakan metode kombinasi countermeasure.
Setiap jenis countermeasure yang diterapkan untuk menghilangkan suatu vulnerabilitas membutuhkan biaya tertentu. Dari berbagai jenis countermeasure ini akan dilakukan pemilihan yang paling optimal sesuai dengan kebutuhan pengguna. Jadi masalah yang diselesaikan adalah permasalahan prioritas untuk memilih kelompok countermeasure yang paling optimal berdasarkan kebutuhan pengguna untuk melakukan peningkatan keamanan jaringan (network hardening). I.2 I.2.1
Rumusan Masalah Metrik Keamanan Jaringan Berbasis Graf Serangan
Pada jaringan komputer terdapat vulnerabilitas yang ada pada host di jaringan. Vulnerabilitas ini memungkinkan penyusup untuk masuk ke dalam jaringan komputer. Urutan vulnerabilitas yang dilalui oleh penyusup dapat digambarkan menjadi suatu graf serangan. Metrik keamanan jaringan yang diukur dari graf serangan disebut metrik keamanan berbasis graf serangan. Bagaimana mengukur keamanan jaringan menggunakan metrik keamanan berbasis graf serangan merupakan masalah yang diteliti dalam disertasi ini. Metrik keamanan berbasis graf serangan perlu dikembangkan untuk melengkapi metrik-metrik keamanan yang bisa digunakan untuk mengukur keamanan jaringan. I.2.2
Peningkatan Keamanan Jaringan Komputer
Pada suatu jaringan komputer terdapat berbagai vulnerabilitas yang tersebar pada host-host di jaringan. Berkaitan dengan berbagai vulnerabilitas ini perlu penelitian mengenai
kaitannya
dengan
peningkatan
keamanan
jaringan
komputer.
Bagaimana proses peningkatan keamanan jaringan komputer berkaitan dengan
18
adanya berbagai vulnerabilitas ini menjadi bahan kajian dalam penelitian disertasi ini.
I.3
Tujuan Penelitian
Tujuan dari penelitian disertasi ini adalah mengembangkan framework, metode, metrik untuk mengevaluasi keamanan jaringan komputer dan meningkatkan keamanan jaringan komputer.
I.4
Kontribusi Penelitian
Kontribusi disertasi ini adalah sebagai berikut. 1. Framework evaluasi keamanan jaringan. 2. Membangun graf serangan melalui proses pemodelan jaringan yang ditinjau, matriks vulnerabilitas, matriks konektivitas. 3. Metrik-metrik keamanan jaringan. 4. Analisis tentang perilaku metrik terhadap perubahan jumlah host dan vulnerabilitas. 5. Algoritma untuk membangun graf serangan status.
I.5
Batasan Penelitian
Disertasi ini difokuskan pada pencarian metrik-metrik keamanan jaringan yang berkaitan dengan keberadaan vulnerabilitas pada jaringan. Metrik-metrik keamanan yang diusulkan tersebut terdiri dari dua jenis metrik yaitu metrik tidak berbasis pada graf serangan dan metrik berbasis graf serangan. Metrik-metrik keamanan ini digunakan sebagai bagian dari metode evaluasi keamanan jaringan.
I.6
Premis dan Hipotesis
I.6.1
Premis
1. Graf serangan merupakan abstraksi yang menggambarkan cara penyerang memanfaatkan vulnerabilitas yang ada pada setiap host di jaringan komputer.
19
2. Metrik keamanan berbasis graf serangan dapat digunakan untuk mengevaluasi keamanan jaringan. I.6.2
Hipotesis
1. Peningkatan jumlah host dan vulnerabilitas pada jaringan menyebabkan penurunan tingkat keamanan jaringan. 2. Graf host dan graf vulnerabilitas dapat dihasilkan menggunakan model graf status. 3. Grup Metrik Keamanan berbasis Graf Serangan dapat digunakan untuk mengevaluasi keamanan jaringan komputer.
I.7
Metodologi Penelitian
Metodologi penelitian disertasi sebagai berikut: 1. Studi pustaka yang berkaitan dengan metode untuk mengevaluasi keamanan jaringan,
metrik keamanan khususnya metrik keamanan
berbasis graf serangan, serta mempelajari penelitian sebelumnya yang berkaitan dengan keamanan jaringan. 2. Menyusun framework untuk mengevaluasi keamanan jaringan. 3. Melakukan pengujian melalui simulasi. 4. Melakukan analisis pengujian dan membuktikan hipotesis. 5. Merumuskan kontribusi penelitian. I.8
Sistematika Disertasi
Disertasi ini disusun menurut sistematika sebagai berikut: Bab I Pendahuluan Bab ini menguraikan tentang latar belakang topik penelitian, permasalahan, batasan masalah, premis dan hipotesis, metodologi penelitian dan sistematika disertasi. Bab II Studi Pustaka
20
Bab ini memuat studi pustaka dari berbagai sumber yaitu buku, jurnal dan paper. Beberapa definisi penting yang berkaitan dengan keamanan, graf, peta jalan penelitian juga dibahas dalam bab ini. Bab III Metrik Keamanan Jaringan Bab ini menguraikan metrik keamanan jaringan yang diajukan dan konsep-konsep lain yang diperlukan. Bab IV Simulasi Penguatan Jaringan Bab ini membahas tentang simulasi yang dilakukan mulai dari jaringan eksperimen dan representasinya sampai dengan proses penguatan jaringan. Bab V Kesimpulan dan Tindak Lanjut Bab ini berisi kesimpulan tentang hasil-hasil yang diperoleh dari penelitian disertasi ini dan tindak lanjut untuk penelitian tahap berikutnya. Pada bab pertama ini telah dibahas latar belakang penelitian, rumusan masalah, batasan masalah, premis dan hipotesis, metodologi penelitian dan sistematika disertasi. Pembahasan telah mencakup berbagai hal mendasar sebagai tahap awal dalam penelitian disertasi yang dikerjakan.
21
Bab II
Studi Pustaka
II.1 Beberapa Definisi II.1.1 Keamanan Keamanan adalah suatu proses menyediakan confidentiality (kerahasiaan), integritas dan availability (ketersediaan) terhadap suatu entitas berdasarkan suatu policy (kebijakan) (Hayden, 2010). Aspek / servis dari keamanan secara lebih lengkap yaitu (Rahardjo, 2005): 1. Privacy/confidentiality Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah datadata yang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut. 2. Integrity Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. 3. Authentication Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betulbetul server yang asli. 4. Availability Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi. Contoh hambatan adalah serangan yang sering disebut dengan “denial of service attack” (DoS attack), dimana server dikirimi permintaan (biasanya palsu) yang bertubi-tubi
22
atau permintaan yang diluar perkiraan sehingga tidak dapat melayani permintaan lain atau bahkan sampai down, hang, crash. 5. Access Control Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Hal ini
biasanya berhubungan
dengan
klasifikasi
data (public,
private,
confidential, top secret) & user (guest, admin, top manager, dsb.), mekanisme authentication dan juga privacy. 6. Non-Repudiation Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan email untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan email tersebut. Keamanan berkaitan erat dengan threat (ancaman) dan vulnerabilitas. Dalam (Furnell, S.M.; Katsikas, S.; Lopez, J. and Patel, A., 2008), pengertian threat dan vulnerabilitas adalah sebagai berikut. Ancaman
adalah
suatu
kondisi
lingkungan
yang
mempunyai
potensi
menyebabkan kehilangan atau kemacetan. Jenis threat dapat dibedakan menjadi: 1. Ancaman fisik (misalnya kebakaran, banjir, kegagalan bangunan atau kegagalan daya). 2. Ancaman peralatan (misalnya CPU, jaringan, atau kegagalan media penyimpanan). 3. Ancaman manusia (misalnya kesalahan operator atau desain, pencurian sumber daya). Vulnerabilitas adalah pengaruh kemungkinan suatu ancaman menjadi kenyataan dan berhubungan dengan kelemahan pada sistem yang mungkin tereksploitasi dan menyebabkan kehilangan atau kemacetan. Jenis vulnerabilitas dapat dibedakan menjadi: 1. Vulnerabilitas infrastruktur atau lingkungan:
23
a. Kurangnya perlindungan fisik bangunan, pintu dan jendela (dapat dieksploitasi oleh pencuri); b. Ketidakcukupan access control pada ruangan (dapat dieksploitasi oleh yang tidak berhak); c. Grid daya tidak stabil (dapat menghasilkan kegagalan daya). 2. Vulnerabilitas hardware: a. Ketidaktahanan terhadap perubahan temperatur (dapat menyebabkan kelebihan panas); b. Kurangnya perawatan media penyimpanan (dapat menyebabkan kerusakan media); c. Kurangnya kendali perubahan secara efisien (dapat dieksploitasi oleh staf operasonal). 3. Vulnerabilitas software: a. Rumitnya user interface (dapat menyebabkan kesalahan user); b. Kurangnya otentikasi (dapat dieksploitasi oleh yang tidak berhak); c. Kurangnya audit (dapat dieksploitasi oleh pengguna software yang tidak berhak). 4. Vulnerabilitas komunikasi: a. Jalur komunikasi tidak terlindungi (dapat dieksploitasi oleh penyusup); b. Lalu lintas sensitif tidak terlindungi (dapat dieksploitasi oleh penyusup); c. Koneksi jaringan publik tidak terlindungi (dapat dieksploitasi oleh pengguna yang tidak berhak). 5. Vulnerabilitas pegawai: a. Pekerjaan tidak terawasi oleh pekerja luar (dapat dieksploitasi oleh pencuri); b. Tidak cukupnya pelatihan keamanan (dapat menyebabkan kesalahan pengguna). II.1.2 Metrik dan Measurement Definisi metrik menurut (Idika, 2010) adalah nilai yang memfasilitasi pengambilan keputusan dan diturunkan dari pengukuran.
24
Menurut (Hayden, 2010) metrik adalah hasil sedangkan measurement adalah aktivitas. Pengukuran adalah aktivitas suatu pelaksanaan observasi dan pengumpulan data dalam usaha untuk memperoleh pandangan praktis terhadap apa yang sedang dicoba untuk dipahami. Pengumpulan data keamanan sangatlah penting untuk melaksanakan program keamanan yang efektif. Namun jika tanpa konteks untuk data tersebut dan ide tentang alasan mengapa data itu dikumpulkan dan untuk tujuan apa data itu dikumpulkan, maka keterbatasan dalam menggambarkan pengukuran tersebut akan terbatas hanya pada istilah terabytes dari data log dan volume rak yang ditempati oleh laporan auditor. Dalam (Jaquith, 2007 dan Purboyo, T.W.; Rahardjo, B.; Kuspriyanto, 2011), metrik adalah standar yang konsisten untuk suatu pengukuran. Metrik yang baik seharusnya dapat diukur secara konsisten, murah memperolehnya, dinyatakan dalam bilangan kardinal atau persentase, dinyatakan oleh sedikitnya satu satuan pengukuran, spesifik kontekstual (cukup relevan dengan pengambil keputusan sehingga dapat diambil suatu keputusan). Dalam (Swanson, M.; Bartol, N.; Sabato, J.; Hash, J. and Graffo, L.i, 2003), metrik adalah tools yang didesain untuk memfasilitasi pengambilan keputusan dan mengembangkan kinerja dan akuntabilitas melalui pengumpulan, analisis dan pelaporan data yang relevan. II.1.3 Metrik Keamanan Idika dalam (Idika, 2010) menyatakan bahwa metrik keamanan adalah nilai-nilai yang dihasilkan dari pengukuran suatu atribut entitas (yang telah diidentifikasi) yang mempengaruhi keamanan fisik, personil, IT atau operasional. Krautsevich dalam (Krautsevich, L.; Martinelli, F.; Yautsiukhin, A.; 2010) menyatakan bahwa metrik keamanan adalah tools untuk menyediakan informasi yang benar dan terkini tentang keadaan (state) dari keamanan. Informasi ini sangat penting untuk mengelola keamanan secara efisien. Metrik keamanan dapat diklasifikasikan menjadi beberapa kategori yaitu (Herrmann, 2002):
25
Return on investment (ROI) metric.
Resiliency metric.
Compliance metric.
ROI metric mengukur keuntungan moneter suatu organisasi melalui sumber daya yang didedikasikan terhadap kendali keamanan. Resiliency metric mengukur kemampuan suatu organisasi untuk memelihara layanan yang dapat diterima dengan kehadiran suatu serangan atau kegagalan. Compliance metric mengukur seberapa baiknya suatu organisasi dalam mematuhi aturan atau standar.
II.1.4 Metrik Keamanan Jaringan Metrik keamanan jaringan adalah nilai-nilai yang dihasilkan dari pengukuran suatu atribut entitas (yang dapat diidentifikasi) pada suatu jaringan yang mempengaruhi keamanan fisik, personil, IT atau operasional (Idika, 2010). Metrik keamanan jaringan dapat dibagi menjadi dua kategori (Idika, 2010) yaitu kelas primer dan kelas sekunder. Kelas primer dari metrik keamanan jaringan adalah architectural-based metric dan performance-based metric. Kelas sekunder dari metrik keamanan jaringan yaitu time-based metric, probability-based metric dan complexity-based metric. Architectural-based metric mengukur atribut internal dari suatu jaringan. Atribut internal jaringan misalnya layanan yang tersedia pada jaringan, konektivitas dari host-host pada jaringan, dan vulnerabilitas. Metric keamanan berbasis graf serangan termasuk ke dalam kategori architectural-based metrics. Performance-based network security metrics mengukur atribut eksternal jaringan. Atribut eksternal jaringan misalnya kinerja manusia (human performance).
26
Probability-based network security metrics menggunakan probabilitas untuk memperoleh hasil yang diinginkan. Probabilitas dapat menyatakan suatu kemungkinan jaringan diserang, penyerang memilih suatu aksi, penyerang berhasil menembus kebijakan keamanan, atau penyerang mengeksploitasi vulnerabilitas tertentu. Probabilitas tersebut boleh memasukkan faktor sulitnya mengeksploitasi suatu vulnerabilitas. Kemungkinan ini menyebabkan mengapa perlu dibahas probabilitas dan kompleksitas secara bersamaan. Time-based network security metrics menghasilkan suatu nilai waktu sebagai hasil. Time-based network security metrics digunakan untuk mengukur seberapa cepat suatu jaringan atau organisasi dapat ditembus atau seberapa cepat jaringan atau organisasi dapat merespon suatu serangan. II.1.5 Graf Graf adalah struktur diskrit yang berisi titik-titik dan sisi-sisi dimana sisi-sisi tersebut menghubungkan titik-titik yang bersesuaian. Jadi, sebuah graf dinyatakan oleh dua himpunan yaitu himpunan titik (V) dan himpunan sisi (E). Sebuah graf G=(V,E) yang terdiri dari V, himpunan tak kosong berisi titik-titik (nodes) dan E, himpunan yang berisi sisi-sisi (edges). Setiap sisi memiliki satu atau dua titik yang berasosiasi dengan sisi tersebut yang disebut titik akhir (endpoints). Sebuah sisi menghubungkan titik-titik akhirnya. Graf yang berisi infinite vertices V disebut infinite graph sedangkan graf yang berisi finite vertices V disebut finite graph. Pada disertasi ini digunakan finite graph. Graf berarah (directed graph) atau graf (V,E) berisi himpunan tidak kosong titiktitik V dan himpunan sisi-sisi berarah (atau arc) E. Setiap sisi berarah berasosiasi dengan pasangan terurut titik-titik. Sisi berarah yang diasosiasikan dengan pasangan terurut (u,v) dikatakan berawal di u dan berakhir di v. II.2 Peta Jalan Penelitian Peta Jalan Penelitian Metric Keamanan Berbasis Graf Serangan dapat dilihat pada Tabel II.1. Network Compromise Percentage (NCP) didefinisikan sebagai
27
prosentase host pada jaringan yang dapat diakses oleh penyerang menggunakan akses level user atau administrator (Lippmann, R.; Ingols, K.; Scott, C.; Piwowarski,; Kratkiewicz, K.; Artz, M. and Cunningham, R., 2006).
Pada (Wang, L.; Singhal, A. and Jajodia, S., 2007) diajukan metrik Attack Resistance untuk mengevaluasi dan membandingkan dua jaringan dengan konfigurasi yang berbeda. Attack Resistance (AR) dari suatu konfigurasi jaringan didefinisikan sebagai komposisi dari pengukuran exploit individu (Wang, L.; Singhal, A. and Jajodia, S., 2007). Wang dkk. dalam (Wang, L.; Singhal, A. and Jajodia, S., 2007) menjelaskan bahwa sistem komputer masa kini menghadapi intrusi dimana berbagai vulnerabilitas dapat dikombinasikan untuk mencapai tujuan penyerangan. Keamanan secara menyeluruh pada suatu sistem komputer tidak bisa secara sederhana ditentukan berdasarkan banyaknya vulnerabilitas. Untuk mengukur keamanan suatu sistem jaringan, hal pertama yang harus dimengerti adalah bagaimana vulnerabilitas dikombinasikan untuk menghasilkan sebuah serangan. Pemahaman seperti ini dimungkinkan dengan adanya pemodelan komposisi vulnerabilitas sebagai graf serangan.
Attack Graph-based Probabilistic (AGP) didefinisikan sebagai graf serangan yang mempunyai nilai pada setiap exploit atau kondisi dimana nilai ini menyatakan kemungkinan penyerang memanfaatkan suatu exploit (Wang, L.; Islam, T.; Long, T.; Singhal, A. and Jajodia, S., 2008). Dalam (Wang, L.; Islam, T.; Long, T.; Singhal, A. and Jajodia, S., 2008), Wang dkk. menjelaskan bahwa untuk melindungi sumber daya yang penting dalam lingkungan jaringan, maka diperlukan cara untuk mengkuantifikasi kemungkinan multi-step attack yang potensial untuk dikombinasikan berbagai vulnerabilitas. Hal ini dimungkinkan dengan adanya graf serangan. Paper ini mengajukan attack graph-based probabilistic metric untuk keamanan jaringan dan meneliti komputasinya secara efisien. Expected Risk (ER) untuk suatu layanan didefinisikan sebagai hasil kali dari peluang terjadinya sedikitnya satu dari vulnerabilitas baru akan mempengaruhi
28
layanan pada periode waktu berikutnya dan nilai harapan dari keriskanan (severity) vulnerabilitas (Ahmed, M. S.; Al-Shaer, E. and Khan, E., 2008).
Security Risk (SR) didefinisikan sebagai metrik yang diukur berdasarkan faktorfaktor banyaknya lintasan serangan, jarak lintasan serangan dan banyaknya jenis exploit dalam lintasan serangan (Chen, F.; Liu, A.; Zhang, Y. and Su, J., 2010).
Shortest Path (SP) didefinisikan sebagai lintasan serangan terpendek yang bisa dieksploitasi oleh penyerang untuk mencapai tujuan. Number of Path (NP) didefinisikan sebagai banyaknya lintasan serangan yang terdapat pada suatu graf serangan. Normalized Mean of Path Length (NMPL) didefinisikan sebagai rerata panjang lintasan serangan yang dinormalisasi (dibagi oleh banyaknya lintasan serangan). Standard Deviation of Path Length (SDPL) didefinisikan sebagai standar deviasi dari panjang lintasan serangan yang terdapat pada suatu graf serangan. Mode of Path Length (MoPL) didefinisikan sebagai modus dari panjang lintasan serangan yang terdapat pada suatu graf serangan. Median of Path Length (MePL) didefinisikan sebagai median dari panjang lintasan serangan yang terdapat pada suatu graf serangan. K-step Capability Accumulation (KCA) didefinisikan sebagai daya yang didapat oleh penyerang terhadap jaringan dalam K langkah (Idika, 2010).
Exploited Vulnerability Percentage (EVP) didefinisikan sebagai prosentase vulnerabilitas yang tereksploitasi pada jaringan. Vulnerable Host Percentage (VHP) didefinisikan sebagai prosentase vulnerable host pada jaringan (Purboyo, T.W., Rahardjo B., Kuspriyanto, Detiena I.M., 2012).
Pada disertasi (Idika, 2010) dibahas grup Metric Keamanan Berbasis Graf Serangan digunakan untuk mengevaluasi keamanan suatu jaringan dan melakukan peningkatan keamanan jaringan. Tabel II.2 berisi klasifikasi dari Metric Keamanan Berbasis Graf Serangan yang diajukan dalam disertasi (Idika, 2010).
29
Tabel II.1. Peta Jalan Penelitian Metrik Keamanan Berbasis Graf Serangan
No.
1.
Peneliti/Tahun Penelitian
Network
Scott, C.; Piwowarski;
Compromise
Kratkiewicz, K.; Artz, M.
Percentage
(Wang, L. Singhal, A. Jajodia, S., 2007)
(Wang, L. Islam, T. Long, 3.
T. Singhal, A. Jajodia, S., 2008)
5.
diajukan
Lippmann, R.; Ingols, K.;
and Cunningham, R., 2006)
2.
Metrik yang
Metode Network
Algoritma
Kompleksitas
breadth-first
2 O(| E | )
Hardening
(NCP) Attack Resistance (AR) Attack
modified
Graph-based
breadth-first
Probabilistic
search
(AGP)
(BFS)
(Ahmed, M. S.; Al-Shaer,
Expected
E. and Khan, E., 2008)
Risk (ER)
Network risk measurement framework
(Ingols, K.; Chu, M.; 7.
Lippmann, R.; Webster, S.
NetSPA
Reachability
and Boyer, S., 2009)
8.
(Chen, F.; Liu, A.; Zhang, Y. and Su, J., 2010)
Security Risk
Weighted Greedy
Recursive, weighted-
Recursive: n-1 O(M )
greedy
SP, NP, NMPL, SDPL, MoPL, 9.
(Idika, 2010)
MePL, Kstep
Program
Depth-first
O(nH2B)
Dinamis
search
O(nHKB)
Program
Depth-first
O(nH2B)
Dinamis
search
Capability Accumulatio n (KCA) 10.
11.
(N. Idika, B. Marshall, and B. Bhargava., Apr. 2009.)
KCA
Low Order
O’Berry, B. and Jacobs, M.,
Polynomial
2003)
12.
O(nHKB)
(Noel, S.; Jajodia, S.;
(Purboyo, T.W.; Rahardjo,
SP, NMPL,
User Based
B.; Kuspriyanto dan
MePL, EVP,
Network
Detiena, M.I., 2015)
VHP
Hardening
30
Depth-first search
Tabel II.2. Contoh Grup Metrik Keamanan Berbasis Graf Serangan (Idika, 2010) Type Decision
Assistive
Metric SP Shortest Path NP Number of Paths NMPL Normalized Mean of Path Lengths NCP Network Compromise Percentage WA Weakest Adversary KCA K-step condition Accumulation MPL Mean of Path Lengths SDPL Standard Deviation of Path Lengths MoPL Mode of Path Lengths MePL Median of Path Lengths
Gambar II.1 Kerangka Kerja Percobaan (Idika, 2010) Pada Gambar II.1 dapat dilihat kerangka kerja percobaan (experiment framework) yang dilakukan pada penelitian disertasi Idika (Idika, 2010). Pembangkit masukan (Input Generator) menghasilkan file masukan untuk Mulval. Tiap masukan yang dihasilkan
yaitu
input1.P,
input2.P, 31
input3.P,...,inputK.P,
input(K+1).P,
input(K+2).P, ..., input(N-1).P, inputN.P masing-masing dimasukkan ke MulVal untuk dibuatkan graf serangan yang bersesuaian. Pembangkit masukan ini melakukan generate vulnerabilitas pada tiap host di jaringan. Setiap graf serangan diukur menggunakan metrik keamanan jaringan berbasis graf. Metrik keamanan berbasis graf ini dihitung oleh AG-based Security Metric Engine. Untuk setiap graf serangan, nilai metrik keamanan berbasis graf disimpan dalam database. Dalam (Lippmann, R.; Ingols, K.; Scott, C.; Piwowarski; Kratkiewicz, K.; Artz, M. and Cunningham, R., October 2006) dijelaskan bahwa pertahanan secara mendalam (Defense in depth) merupakan strategi umum yang menggunakan beberapa lapis pertahanan untuk melindungi subnet kendali pengawasan dan akuisisi data (Supervisory Control and Data Acquisition-SCADA) dan sumber daya penting lainnya pada jaringan enterprise. Tools yang disebut NetSPA juga dibahas. Tools ini dapat menganalisa aturan firewall dan vulnerabilitas yang digunakan untuk mengkonstruksi graf serangan. Graf serangan ini dapat menunjukkan bagaimana attacker dapat mengeksploitasi vulnerable host yang terlihat dengan tujuan mencapai target. NetSPA menghasilkan graf serangan dan secara otomatis menganalisanya untuk menghasilkan sekumpulan prioritas rekomendasi untuk mengembalikan pertahanan secara mendalam.
Percobaan
pada jaringan dengan jumlah host 3400 menunjukkan bahwa firewall seringkali tidak menyediakan pertahanan secara mendalam yang disebabkan oleh kesalahan konfigurasi dan vulnerabilitas yang tidak dihilangkan pada host. Pada semua kasus, sejumlah kecil rekomendasi disajikan untuk mengembalikan pertahanan secara mendalam. Simulasi pada jaringan yang memiliki 50.000 host menunjukkan bahwa pendekatan ini terskalakan dengan baik untuk jaringanjaringan sebesar jaringan enterprise. Dalam (Chen, F.; Liu, A.; Zhang, Y. and Su, J., 2010), Chen dkk. menjelaskan bahwa graf serangan yang kompak secara implisit menunjukkan ancaman (threat) dari multi-step attack dengan mencoba urutan yang mungkin dari eksploitasi yang menyebabkan terkomprominya sumber daya yang penting pada jaringan enterprise dengan ribuan host. Pada paper ini didiskusikan bagaimana menganalisa graf serangan yang kompleks untuk mempertahankan keamanan
32
jaringan. Pengukuran resiko keamanan dari sumber daya kritis dijelaskan pada paper ini. Solusi untuk menghilangkan vulnerabilitas agar sumber daya kritis tidak bisa dikompromisasi dengan biaya minimal juga dibahas. Pendekatan terskala dibuktikan mempunyai kompleksitas waktu polinomial dan dapat digunakan pada graf serangan yang memiliki ribuan host pada jaringan enterprise. Dalam (Ingols, K.; Chu, M.; Lippmann, R.; Webster, S. and Boyer, S., 2009), Ingols dkk. menjelaskan bahwa dengan pengukuran secara akurat pada jaringan enterprise, graf serangan memungkinkan defender jaringan untuk memahami ancaman kritis dan memilih countermeasure yang paling efektif. Paper ini menjelaskan peningkatan terhadap sistem graf serangan NetSPA yang diperlukan untuk memodelkan ancaman terkini (eksploitasi zero day dan client-side attack) dan countermeasure (sistem pencegahan intrusi, firewall proxy, firewall personal, dan host-based vulnerability scan). Analisis terhadap jaringan dengan 85 host menunjukkan bahwa client-side attack menemui ancaman serius. Waktu yang dibutuhkan untuk menganalisis jaringan dengan 40.000 host yang dilindungi oleh firewall personal adalah kurang dari dua menit. Pada (Patel, 2009), Patel menjelaskan bahwa keamanan jaringan dan informasi sangat krusial dalam menjaga infrastruktur informasi yang besar agar tetap aman. Graf serangan merupakan tool untuk memodelkan keamanan jaringan yang meninjau vulnerabilitas individu pada sudut pandang global dimana host individu saling terhubung. Analisis terhadap informasi peringatan intrusi sangat penting untuk mengevaluasi sistem. Karena sebagian besar peringatan muncul dari intrusion detection system, maka menjadi sulit bagi ahli keamanan untuk menganalisis peringatan individu (individual alerts). Para peneliti menangani masalah ini dengan membuat cluster untuk peringatan individu seperti alamat IP sumber, alamat IP tujuan, nomor port dan lainnya.
Pada paper ini diajukan
metode yang berbeda untuk pengklasteran. Barisan peringatan intrusi disiapkan dengan membagi peringatan berdasarkan pada interval waktu tertentu. Barisan peringatan intrusi ditinjau sebagai graf serangan sementara. Barisan diklasterkan mengggunakan teknik pengklasteran graf yang meninjau kemiripan dalam barisan sebagai faktor untuk menentukan kedekatan barisan. Pendekatan yang disarankan
33
mengkombinasikan konsep graf serangan dan clustering pada barisan peringatan menggunakan teknik pengklasteran graf. Dalam (Homer, J., Varikuti, A.; Ou, X. and McQueen, M. A., 2008), Homer dkk. menjelaskan bahwa berbagai tool yang ada untuk menganalisis sistem jaringan perusahaan dan untuk menghasilkan graf serangan yang menggambarkan bagaimana penyerang dapat menembus ke dalam sistem. Paper ini menyajikan metodologi yang dapat 1) secara otomatis mengidentifikasi bagian dari graf serangan yang tidak membantu pengguna untuk memahami masalah utama keamanan, dan 2) secara otomatis mengelompokkan langkah serangan yang serupa sebagai titik virtual pada model jaringan, untuk segera memudahkan pemahaman terhadap data. Kedua metode tersebut sangat penting untuk mengembangkan visualisasi graf serangan agar lebih berguna dalam manajemen konfigurasi untuk jaringan perusahaan yang besar. Dalam (Ahmed, M. S.; Al-Shaer, E. and Khan, E., 2008), Ahmed dkk. menjelaskan bahwa evaluasi terhadap keamanan jaringan merupakan langkah esensial dalam mengamankan jaringan. Evaluasi ini dapat membantu profesional keamanan dalam menentukan keputusan yang optimal tentang bagaimana mendesain countermeasure, memilih arsitektur keamanan alternatif, dan secara sistematis
mengubah
konfigurasi
keamanan
agar
keamanan
meningkat.
Bagaimana pun, keamanan jaringan tergantung pada sejumlah faktor yang berubah secara dinamis seperti penemuan vulnerabilitas dan ancaman baru, struktur kebijakan dan lalu lintas jaringan. Identifikasi, kuantifikasi dan validasi faktor-faktor tersebut menggunakan metrik keamanan adalah tantangan utama dalam bidang tersebut. Pada paper ini diajukan kerangka kerja metrik keamanan yang mengidentifikasi dan mengkuantifikasi faktor risiko keamanan yang paling signifikan secara obyektif. Faktor-faktor ini mencakup vulnerabilitas yang ada, kecenderungan historis vulnerabilitas dari layanan yang bisa diakses secara remote, prediksi vulnerabilitas potensial untuk layanan jaringan umum, hingga ketahanan kebijakan terhadap rambatan serangan pada jaringan. Selanjutnya dibahas percobaan validasi secara menyeluruh menggunakan data vulnerabilitas dari National Vulnerability Database (NVD) untuk menunjukkan akurasi yang
34
baik dari metrik yang diajukan. Beberapa penelitian terdahulu meninjau vulnerabilitas menggunakan analisis kode. Bagaimana pun, penelitian ini adalah yang pertama kali menggunakan informasi vulnerabilitas dan konfigurasi kebijakan keamanan publik.
II.3 Konsep Network Hardening Network hardening merupakan proses yang ditujukan pada vulnerabilitas security jaringan dengan mengimplementasikan software patch, memperkenalkan sistem security baru dan mengadopsi konfigurasi dan kebijakan operasi yang lebih baik. Pada sesuatu yang bersifat dinamis, maka perubahan merupakan sesuatu yang tidak dapat dihindari. Demikian halnya dengan lingkungan jaringan komputer. Upgrade atau modifikasi pada arsitektur jaringan kadang-kadang dapat mengekspos (atau menciptakan) lubang keamanan. Oleh karena itu, sangatlah penting untuk mengevaluasi integritas infrastruktur jaringan secara teratur. Sejalan dengan berkembangnya lingkungan jaringan, ancaman internal dan eksternal juga akan muncul. Proses evaluasi terhadap keamanan perangkat keras dan perangkat lunak jaringan dan prosesnya serta melakukan penyesuaian untuk meningkatkan security jaringan disebut network hardening. Hal utama dalam konsep network hardening adalah konsisten dalam mengevaluasi layout dan konfigurasi jaringan. Ancaman keamanan selalu mengarah pada pengeksploitasian vulnerabilitas pada lingkungan dengan perangkat keras, perangkat lunak dan protokol keamanan yang usang (out-of-date). Pemahaman tentang letak lubang keamanan pada jaringan merupakan langkah esensial yang pertama menuju network hardening. Masalah pertama adalah mengidentifikasi bahwa lubang keamanan itu ada. Tentu saja bukan hal yang bijak menunggu sampai jaringan kita ditembus oleh penyusup.
II.4 Dataset/Database Vulnerabilitas Pada Tabel II.3 disajikan data CVE ID yang diambil dari (Ingols, K.; Chu, M.; Lippmann, R.; Webster, S., and Boyer, S., 2009). 35
Tabel II.3. Vulnerabilitas Remote-To-Root yang Ditemukan oleh Oval (Ingols, K., Chu, M. Lippmann, R., Webster, S., Boyer, S., 2009) CVE ID
Description
Clientside?
CVE20040963
Buffer overflow in Microsoft Word 2002 (10.6612.6714) SP3, and possibly other versions, allows remote attackers to cause a denial of service (application exception) and possibly execute arbitrary code in winword.exe via certain unexpected values in a .doc file, including (1) an offset that triggers an out-ofbounds memory access, (2) a certain value that causes a large memory copy as triggered by an integer conversion error, and other values. Format string vulnerability in Adobe Acrobat Reader 6.0.0 through 6.0.2 allows remote attackers to cause a denial of service (application crash) and possibly execute arbitrary code via an .ETD document containing format string specifiers in (1) title or (2) baseurl fields. Buffer overflow in the DHCP Client service for Microsoft Windows 2000 SP4, Windows XP SP1 and SP2, and Server 2003 up to SP1 allows remote attackers to execute arbitrary code via a crafted DHCP response. Stack-based buffer overflow in the NetpManageIPCConnect function in the Workstation service (wkssvc.dll) in Microsoft Windows 2000 SP4 and XP SP2 allows remote attackers to execute arbitrary code via NetrJoinDomain2 RPC messages with a long hostname. Heap-based buffer overflow in Object Linking and Embedding (OLE) Automation in Microsoft Windows 2000 SP4, XP SP2, Server 2003 SP1 and SP2, Vista, Office 2004 for Mac, and Visual basic 6.0 SP6 allows remote attackers to execute arbitrary code via a crafted script request. Stack-based buffer overflow in the Universal Plug and Play (UPnP) service in Microsoft Windows XP SP2 allows remote attackers on the same subnet to execute arbitrary code via crafted HTTP headers in request or notification messages, which trigger memory corruption. An ActiveX control (Messenger.UIAutomation.1) in Windows Messenger 4.7 and 5.1 is marked as safe-for-scripting, which allows remote attackers to control the Messenger application, and "change state," obtain contact information, and establish audio or video connections without notification via unknown vectors. Unspecified vulnerability in Microsoft Office Publisher 2000, 2002, and 2003 SP2 allows remote attackers to execute arbitrary code via a crafted .pub file, related to invalid "memory values," aka "Publisher Invalid Memory Reference Vulnerability."
Yes
Microsoft Windows Media Player 6.4, Windows Media Format Runtime 7.1 through 11, and Windows Media Services 4.1, 9, and 2008 do not properly use the Service Principal Name (SPN) identifier when validating replies to authentication requests, which allows remote servers to execute arbitrary code via vectors that employ NTLM credential reflection, aka "SPN Vulnerability." Microsoft Windows Media Player 6.4, Windows Media Format Runtime 7.1 through 11, and Windows Media Services 4.1 and 9 incorrectly associate ISATAP addresses with the Local Intranet zone, which allows remote servers to capture NTLM credentials, and execute arbitrary code through credential-reflection attacks, by sending an authentication request, aka "ISATAP Vulnerability."
Yes
CVE20041153 CVE20062372 CVE20064691 CVE20070065 CVE20071204 CVE20080082 CVE20080102 CVE20083009
CVE20083010
Yes
Yes
No
Yes
No
Yes
Yes
Yes
Database vulnerabilitas diperlukan untuk keperluan analisis jalur serangan oleh penyerang.
Database
vulnerabilitas
juga
diperlukan
agar
pengelolaan
vulnerabilitas dapat dilakukan. Pengelolaan vulnerabilitas misalnya dengan cara mencari patch terhadap vulnerabilitas yang bersangkutan.
Database vulnerabilitas yang digunakan oleh para peneliti berbeda-beda. Hal ini disebabkan model yang digunakan oleh para peneliti itu tidak sama. Alasan lain 36
digunakannya database vulnerabilitas adalah kesesuaian format database vulnerabilitas dengan kebutuhan analisis pada masing-masing penelitian yang berbeda.
Database vulnerabilitas yang digunakan dalam disertasi ini yaitu Bugtraq Vulnerability Database yang dikeluarkan oleh vendor Security Focus.
Adapun Database vulnerabilitas yang dapat digunakan adalah: 1. National Vulnerability Database (NVD). 2. Open System Vulnerability Database (OSVDB). 3. Bugtraq Vulnerability Database. 4. Common Vulnerability Exposure (CVE). II.5 Vulnerabilitas Jaringan Komputer II.5.1 Definisi Vulnerabilitas Vulnerabilitas sistem adalah kelemahan pada suatu software atau hardware pada server atau client yang dapat dieksploitasi oleh penyusup untuk memperoleh akses pada atau mematikan suatu jaringan. Donald Pipkin mendefinisikan vulnerabilitas sistem sebagai suatu kondisi, kelemahan dari atau sebuah ketiadaan prosedur keamanan, atau teknis, fisik atau kendali lainnya yang dapat dieksploitasi oleh suatu ancaman (threat) (Hayden, 2010). Vulnerabilitas tidak hanya ada pada hardware atau software yang mengatur sistem komputer tetapi juga ada pada kebijakan dan prosedur, khususnya kebijakan dan prosedur keamanan yang digunakan dalam sistem jaringan komputer dan pada pengguna dan pegawai dari suatu sistem jaringan komputer. Karena vulnerabilitas dapat ditemukan pada berbagai area sistem jaringan, maka dapatlah dikatakan bahwa vulnerabilitas keamanan merupakan segala sesuatu pada jaringan komputer yang mempunyai potensi untuk menyebabkan tereksploitasi untuk memperoleh keuntungan tertentu. Selanjutnya dapat dilihat berbagai sumber vulnerabilitas yang mungkin.
37
II.5.2 Sumber Vulnerabilitas Vulnerabilitas software dapat dikategorikan menjadi: 1. Vulnerabilitas sistem operasi: Sistem operasi adalah sumber utama dari semua
vulnerabilitas
yang
dilaporkan.
Berdasarkan
pada
SANS
(SysAdmin, Audit, Network, Security) Institute, organisasi pendidikan dan kerjasama penelitian yang melayani professional security, auditor, sistem administrator dan administrator jaringan, bersama dengan National Infrastructure Protection Center (NIPC) milik FBI, diperoleh keterangan bahwa 10 peringkat teratas dan 20 peringkat teratas tahunan dari vulnerabilitas paling banyak disebabkan oleh sistem operasi yang sudah populer. Hal ini dapat terjadi karena penyusup biasanya menggunakan rute termudah dengan mengeksploitasi kelemahan yang paling dikuasai dan menggunakan tool yang paling efektif dan paling banyak digunakan. Berdasarkan pada laporan SANS/FBI tentang dua puluh satu laporan teratas dinyatakan bahwa system operasi yang paling banyak diserang adalah UNIX, LINUX, WINDOWS, OS/2 dan MacOS. 2. Vulnerabilitas Port-based: Selain sistem operasi, port layanan jaringan menempati urutan kedua sumber vulnerabilitas sistem. Bagi para sistem administrator, mengetahui daftar port yang paling vulnerable dapat membantu proses meningkatkan keamanan sistem dengan cara menutup port
tersebut
oleh
firewall.
Operasi
tersebut,
walaupun
tidak
komprehensif, menambah lapisan keamanan tambahan pada jaringan. Pada kenyataannya sangat disarankan agar memonitor semua port termasuk port yang diblok untuk mengetahui kemungkinan penyusup dapat memasuki sistem. Nomor port yang vulnerable dapat dilihat pada daftar 20 teratas yang dikeluarkan oleh SANS/FBI di: http://www.sans.org/ 3. Kesalahan (error) yang disebabkan oleh perangkat lunak aplikasi. 4. Software protocol system seperti browser server dan client.
II.6 Model Jaringan Pengembangan model graf serangan akan digunakan untuk men-generate graf serangan, menganalisis graf serangan dan meningkatkan status keamanan 38
jaringan. Pengembangan model graf serangan secara lebih detil dibahas pada Bab IV. Model-model jaringan yang dapat digunakan dapat dilihat pada gambar berikut (Idika, 2010). 1. Model Jaringan Flat
Gambar II.2. Model Jaringan Flat 2. Model Jaringan Eksternal-internal
Gambar II.3. Model Jaringan Eksternal-internal 3. Model Jaringan Eksternal DMZ Internal
Gambar II.4. Model Jaringan Eksternal DMZ Internal
Model graf serangan yang digunakan dalam disertasi ini dijelaskan pada Bab III. Setiap titik (node) menyatakan status (pada tipe graf status). Setiap titik (node) menyatakan host (pada tipe graf akses host). Setiap titik (node) menyatakan vulnerabilitas yang dieksploitasi (pada tipe graf vulnerabilitas). Setiap sisi (edge) menyatakan host awal, host tujuan dan vulnerabilitas yang dieksploitasi (pada tipe graf status). Setiap sisi (edge) menyatakan vulnerabilitas yang dieksploitasi (pada
39
tipe graf akses host). Setiap sisi (edge) menyatakan host awal menuju ke host tujuan (pada tipe graf vulnerabilitas). Host dapat berupa komputer maupun networking device. Model graf serangan tersebut dapat dilihat pada Gambar II.5.
Edge Node 1
Node 2 Gambar II.5: Model Graf Serangan
Contoh graf akses host (graf jenis kedua yang digunakan dalam disertasi ini) dan perhitungan metrik yang didasarkan pada graf akses host dapat dilihat pada Gambar II.6. Ada dua lintasan dari attacker menuju ke target yaitu lintasan pertama attacker-h1-h3-target dan lintasan kedua attacker-h2-h4-target. Lintasan pertama mempunyai panjang 3 sisi yaitu e1+e3+e5 dengan asumsi panjang tiap sisi adalah 1 satuan. Lintasan kedua mempunyai panjang 3 sisi yaitu e2+e4+e6 dengan asumsi panjang tiap sisi adalah 1 satuan. Jadi lintasan terpendeknya (SP) adalah 3 satuan. Rerata panjang lintasan (MPL) dari lintasan pertama dan kedua adalah jumlah panjang kedua lintasan dibagi 2 yaitu 3 satuan. Rerata panjang lintasan ternormalisasi (NMPL) yaitu rerata panjang lintasan (MPL) dibagi oleh banyaknya lintasan. Jadi diperoleh NMPL sebesar 3/2. Nilai tengah (median) MePL dari panjang lintasan pertama (panjang 3 satuan) dan lintasan kedua (panjang 3 satuan) adalah 3 satuan. Jadi, MePL sebesar 3 satuan. Asumsi yang digunakan untuk menghitung EVP dan VHP yaitu pada host h1, h2, h3, h4 dan target masing-masing terdapat satu vulnerabilitas yang bisa dieksploitasi secara remote. Karena setiap host pada graf serangan dilalui oleh attacker, maka setiap vulnerabilitas yang ada pada setiap host dieksploitasi. Ada 5 vulnerabilitas yang dieksploitasi dari 5 buah vulnerabilitas. Jadi diperoleh EVP sebesar 100% yaitu dengan cara membagi banyaknya vulnerabilitas tereksploitasi (ada 5 vulnerabilitas masing-masing 1 vulnerabilitas di tiap host) dengan banyaknya vulnerabilitas pada jaringan (dalam hal ini ada 5 vulnerabilitas). 40
h2 e2
h4
e4
e6 Target
Attacker
e1 h1
e5
e3 h3
SP = 3 edges, MPL = 3 edges NMPL = 3/2, MePL = 3 edges EVP = (5/5) x 100% = 100% VHP = (5/5) x 100% = 100% Gambar II.6. Contoh Graf Akses Host dan Nilai Metrik VHP dihitung sebagai berikut. Ada 5 host yang vulnerable pada jaringan yang terdiri dari 5 host (tidak termasuk host attacker). Jadi VHP dihitung dengan membagi banyaknya host yang vulnerable dengan banyaknya host pada jaringan. Arti dari singkatan-singkatan pada Gambar II.6 adalah sebagaimana tercatum dalam tanda kurung berikut. SP (Shortest Path), MPL (Mean of Path Length), NMPL (Normalized Mean of Path Length), EVP (Exploited Vulnerability Percentage), VHP (Vulnerable Host Percentage). Penentuan vulnerabilitas di host menggunakan software Nessus sedangkan penentuan Exploited vulnerability di host menggunakan Intrusion Detection System (IDS). Nilai-nilai metrik dari graf serangan pada Gambar II.7 diperoleh melalui perhitungan secara manual dari gambar. Untuk lintasan terpendek SP (Shortest Path) diperoleh SP=3 edges. Metrik rerata panjang lintasan MPL (Mean of Path Length) diperoleh dengan menjumlahkan kedua nilai panjang lintasan kemudian hasil penjumlahannya dibagi dua (karena ada dua nilai panjang lintasan). Metrik NMPL (Normalized Mean of Path Length) diperoleh dengan cara membagi MPL dengan banyaknya lintasan (ada 2 lintasan). Metrik EVP (Exploited Vulnerability Percentage) dan VHP (Vulnerable Host Percentage) dihitung dengan menggunakan rumus 3.1 dan 3.2.
41
Bab III
Metrik Keamanan Jaringan
III.1 Pengembangan Metrik Keamanan Jaringan Pada tahap ini dilakukan pengembangan Metrik Keamanan berbasis Graf Serangan yang akan diajukan sebagai salah satu kebaruan. Metrik Keamanan berbasis Graf Serangan yang akan diajukan sebagai salah satu kebaruan dapat ditelaah pada penjelasan berikut. III.1.1 Exploited Vulnerability Percentage (EVP) Exploited Vulnerability Percentage dapat dihitung dengan menggunakan rumus berikut: = ܸܲܧ
௨ ௨௧௦௧௦௧௦
௨ ௨௧௦௧௧
∗ 100%
(3.1)
EVP ini menggambarkan jumlah vulnerabilitas yang tereksploitasi pada suatu jaringan. Semakin kecil EVP suatu jaringan maka semakin aman jaringan tersebut. III.1.2 Vulnerable Host Percentage (VHP) Vulnerable Host Percentage dapat dihitung dengan menggunakan rumus berikut: ܸ= ܲܪ
௨ ௨ ு௦௧ #ு௦௧௧௧
∗ 100%
(3.2)
VHP ini menggambarkan jumlah vulnerable host pada suatu jaringan. Semakin kecil VHP suatu jaringan maka semakin aman jaringan tersebut. III.2 Penentuan Grup Metrik Keamanan Berbasis Graf Serangan Pada tahap ini dilakukan penentuan kelompok Metrik Keamanan Berbasis Graf Serangan yang akan diajukan sebagai salah satu novelty. Kelompok baru ini terdiri dari lima metrik baru (SHP, SVP, SWPP, EVP dan VHP). Kelompok Metrik Keamanan Berbasis Graf Serangan yang akan diajukan sebagai salah satu kebaruan yaitu: 1. SHP (Shortest Host Path) Metric. 2. SVP (Shortest Vulnerability Path) Metric. 3. SWPP (Shortest Worst Performance Path) Metric. 4. EVP (Exploited Vulnerability Percentage) Metric.
42
5. VHP (Vulnerable Host Percentage) Metric. SHP Metric yaitu lintasan terpendek antar host yang dilalui penyerang untuk mencapai host target. SHP Metric ini dihitung dengan menggunakan satuan edge. SVP Metric yaitu lintasan terpendek antar vulnerabilitas yang dilalui penyerang untuk mencapai host target. SVP Metric ini dihitung dengan menggunakan satuan edge. SWPP (Shortest Worst Performance Path) Metric yaitu lintasan terpendek pada graf serangan status yang menyatakan kinerja jaringan terburuk. EVP Metric yaitu prosentase dari exploited vulnerability pada suatu jaringan. EVP ini menunjukkan perbandingan banyaknya vulnerabilitas yang tereksploitasi pada suatu jaringan terhadap jumlah vulnerabilitas total pada suatu jaringan. VHP Metric yaitu prosentase dari vulnerable host pada suatu jaringan. VHP ini menunjukkan perbandingan banyaknya vulnerable host pada suatu jaringan terhadap banyaknya host total pada jaringan tersebut. III.3 Kelebihan dan Kekurangan Metode Metrik yang Dikembangkan Kelebihan dari metode metrik yang dikembangkan oleh penulis adalah sebagai berikut. Metode pembuatan graf serangan sudah melibatkan vulnerabilitas remote maupun vulnerabilitas lokal. Berbeda dengan metode yang dikembangkan pada disertasi (Idika, 2010) yang mengasumsikan bahwa vulnerabilitas yang ada pada host merupakan vulnerabilitas remote. Jadi, metode yang dikembangkan oleh penulis bersifat lebih
umum jika dibandingkan dengan metode yang
dikembangkan pada disertasi (Idika, 2010). Kelebihan lain dari metode metrik pada penelitian disertasi ini dapat dilihat dari graf serangan yang dihasilkan. Graf serangan status yang dihasilkan pada disertasi ini menggambarkan kinerja jaringan komputer pada saat tertentu. Jadi pada setiap titik pada graf serangan status itu menunjukkan kondisi kinerja jaringan komputer.
43
Kekurangan metode metrik yang dikembangkan dalam penelitian disertasi ini yaitu metode metrik yang dikembangkan masih berupa metode gabungan antara metode komputasi menggunakan komputer dan metode perhitungan manual. III.4 Tiga Jenis Graf yang Digunakan Dalam Penelitian Disertasi Pada penelitian disertasi ini digunakan tiga jenis graf yang ditinjau dari arti titik dan garis pada graf. Adapun ketiga jenis graf yang digunakan yaitu: 1. Graf Status Pada graf status, setiap titik pada graf menyatakan status jaringan pada saat tertentu. Setiap sisi pada graf menyatakan IP awal dan IP akhir yang dilalui oleh attacker. Contoh graf status dapat dilihat pada Bab IV. 2. Graf Akses Host (Graf Host) Pada graf akses host, setiap titik pada graf menyatakan host. Setiap sisi pada graf akses host menyatakan vulnerabilitas yang dieksploitasi. Contoh graf akses host dapat dilihat pada Bab IV. 3. Graf Vulnerabilitas Pada graf vulnerabilitas, setiap titik pada graf menyatakan vulnerabiltas yang dieksploitasi. Setiap sisi pada graf menyatakan host awal dan host akhir dari setiap eksploitasi terhadap vulnerabilitas. Contoh graf vulnerabilitas dapat dilihat pada Bab IV. III.5 Framework Penelitian Framework penelitian yang dihasilkan didasarkan pada reasoning sebagai berikut. Threat adalah sesuatu yang dapat terjadi atau hasil dari serangan terhadap satu atau lebih aset. Vulnerabilitas adalah karakteristik dari aset yang dituju yang membuat aset tersebut lebih rentan diserang oleh threat atau membuat suatu serangan lebih berpeluang untuk berhasil atau memiliki dampak. Threat mengeksploitasi vulnerabilitas yang menyebabkan tereksposnya suatu aset. Countermeasure didesain untuk mencegah suatu threat terjadi atau mengurangi dampak dari suatu threat jika threat itu terjadi. Aset merupakan target dari suatu
44
threat untuk diekspos. Aset merupakan penerima dari suatu countermeasure. Aset adalah sesuatu yang harus dilindungi. Berdasarkan pada reasoning yang dikemukakan pada paragraf di awal Sub Bab III.4, pada penelitian disertasi ini telah dihasilkan suatu framework (Purboyo & Kuspriyanto, 2013) evaluasi dan peningkatan keamanan jaringan yang dapat dilihat pada Gambar III.1. Network Asset Data Network Security Extractor
Firewall Rules
Network Data
Network Model
Network Vulnerability Data
Attack Graph Reducer
Optimal Network Hardening
Network Security Evaluator
Attack Graph Generator
Network Security Hardener
Network Topology Data
Gambar III.1. Framework Evaluasi dan Peningkatan Keamanan Jaringan Framework
(Purboyo
&
Kuspriyanto,
2013)
yang
diajukan
tersebut
diimplementasikan dengan menggunakan metode yang dikembangkan oleh para peneliti lain (Zhao, Wang, Zhang, & Zheng, 2009) (Idika, 2010) (Viduto, 2012) dengan beberapa improvisasi dan penambahan oleh penulis. Penjelasan tentang data jaringan dapat dilihat pada Gambar III.2.
45
OVAL
McAfee Foundscan
Nessus
Retina
Symantec Discovery Network Asset Data
Asset Inventory Altiris
Network Vulnerability Data
Network Data
Firewall Rule
Network Topology Data
Checkpoint Secure Sidewinder
Reachability
IP Data
Connectivity
Adjacency
Vulnerability Database CVE
OSVDB
NVD
Gambar III.2. Penjelasan Data Jaringan III.6 Model Graf Serangan Graf serangan digunakan untuk menggambarkan semua status keamanan yang mungkin pada jaringan dan hubungan diantara status-status keamanan tersebut. Graf serangan dinyatakan oleh sekumpulan titik dan sisi. Misalkan G adalah graf serangan, S adalah himpunan dari semua status yang mungkin, E adalah himpunan dari attack path yang mungkin. Suatu graf serangan dapat dinotasikan sebagai ܵ{ = ܩ, ݏ|ܧ, ݏ௧ , }ܣ
(3.3)
dimana A={V,R,K} adalah attack action yang merupakan komposisi dari vulnerabilitas (V), attack rules (R), dan konektivitas (K) diantara host, so adalah status awal, st adalah status hasil pada suatu tahap attack. Berdasarkan asumsi monotonicity, state hasil lebih baik dari state awal ditinjau dari sudut pandang penyerang. Privilege penyerang terdiri dari tiga tingkat yaitu “access”, “user”, dan “root”. Seseorang tidak mempunyai privilege terhadap suatu host yang tidak bisa dicapai (unreachable). Definisi 1
46
(Ruang Status Privilege) Himpunan privilege penyerang pada semua host (n host) pada jaringan dinyatakan sebagai status privilege penyerang dan dinotasikan sebagai ܲ = {ଵ, ଶ, … , }
(3.4)
Semua status privilege yang dilewati penyerang membentuk ruang status privilege (RSP) penyerang. Definisi 2 (Matriks Koneksi) Matriks koneksi (K) digunakan untuk menggambarkan keterhubungan (konektivitas) diantara host-host pada jaringan, dinotasikan sebagai ݇ଵଵ ݇ଵଶ ⋯ ݇ ݇ଶଶ ⋯ = ܭ൦ ଶଵ ⋮ ⋮ ⋱ ݇ଵ ݇ଶ ⋯
݇ଵ ݇ଶ ൪ ⋮ ݇
(3.5)
dimana kij bernilai 1 jika host i dan host j terhubung, selain itu kij bernilai 0. Elemen diagonal dalam matriks K selalu bernilai 1 yang berarti bahwa titik tersebut terkoneksi dengan dirinya sendiri. Definisi 3 (Attack Rules) Attack Rules (R) adalah kelompok elemen yang menggambarkan preconditions, difficulties dan effects. Sebuah Attack Rules dinotasikan sebagai ܴ = ൛{݈݊ݑݒ, ݓܽ ݉ݑݏݒ݅ݎ, ݓ݆ܽݑݐݒ݅ݎ, ܿ_ݏݑݐܽݐݏ{}ݏ݁ݏ݇ݑݏܾݎ{}݆݇ܽݑݐݒ݅ݎℎ݃_}ݏ݈݁ݑݎൟ (3.6)
Dimana nvul adalah nomor vulnerabilitas, privsumaw dan privtujaw adalah privilege terendah yang harus dimiliki oleh penyerang pada host awal dan host tujuan untuk melakukan attack. Privtujak adalah peningkatan privilege pada host tujuan,
probsukses
adalah
probabilitas
sukses
dari
serangan
tersebut,
status_chg_rules menggambarkan perubahan rules untuk status-status pada jaringan.
47
Definisi 4 (Virtual Performance Node) Kinerja jaringan bisa berubah karena adanya intrusi atau serangan. Dengan mempertimbangkan loss of performance untuk mengukur attack effect, maka Virtual Performance Node (VPN) didefinisikan sebagai ܸܲܰ = {ݎ݁ଵ, ݎ݁ଶ, … , ݎ݁ }
(3.7)
Klasifikasi performance peri mengacu pada Symantec threat level definition sebagaimana dapat dilihat pada Tabel III.1. Tabel III.1. Aturan Klasifikasi untuk VPN Value
Loss of Performance
Attack Effect Levels
-1
<10%
Low
0
10%-25%
Medium
1
25%-85%
High
2
>85%
Extreme
Dengan menentukan VPN sebagai titik pada graf serangan, maka setiap atomic attack dibangun berdasarkan attack yang terjadi sebelumnya. Dengan demikian setiap lintasan pada graf serangan merupakan lintasan terpendek dan ruang status graf serangan menjadi lebih sederhana. Algoritma untuk membangun graf serangan berdasarkan pada VPN tersebut adalah sebagai berikut (Zhao, Wang, Zhang, & Zheng, 2009). Algoritma: Membangun_Graf_Serangan (H,R,s0) Input: atribut host (H), attack rules (R), status awal (s0) Output: Graf Serangan 01 | Begin 02 |
Status_que ← s0
03 |
For i:=1 to n
04 |
(Buat antrian status jaringan Status_que)
For j:=1 to n
05 |
If i=!j then
06 |
Check R
(Periksa attack rules R)
48
s0 ← s0
07 | 08 |
Plot edge and node
09 | End Algoritma membangun graf serangan dalam bentuk narasi adalah sebagai berikut. Mulai 1. Langkah 1. Buat antrian status jaringan, sebutlah status_que dan tambahkan s0 ke dalam status_que. 2. Langkah 2. Ambil status selanjutnya dari status_que. Pindah ke langkah 3 jika status berikutnya belum ada, atau keluar. 3. Langkah 3. a. Ambil setiap host sebagai sumber serangan, dan setiap host sebagai target serangan pada suatu waktu. b. Jika nilai dalam matriks keterhubungan untuk kedua host (mungkin kedua host itu adalah host yang sama) bernilai 1, periksa attack rules dan identifikasi attack rules yang harus dilaksanakan. c. Eksekusi serangan berdasarkan attack rules yang bersesuaian kemudian buatlah status baru. Jika status baru itu tidak ada dalam antrian, maka tambahkan status itu ke dalam antrian. d. Buatlah code graphviz untuk memplot graf serangan dari status sebelumnya ke status baru. Probabilitas dari serangan ini dapat diketahui dari attack rules (R). e. Pindah ke langkah 2 setelah setiap host dicoba. Selesai Algoritma baru dalam bentuk flowchart untuk mengimplementasikan attack rules dapat dilihat pada Lampiran A dan Lampiran B. III.7 Biaya dan Resiko Dalam penelitian ini, fungsi obyektif ditentukan untuk memfasilitasi pemilihan security countermeasure. Pemilihan security countermeasure ini merupakan tahap akhir dari proses penilaian resiko (risk assessment). Proses pemilihan security
49
countermeasure ini dinyatakan sebagai persoalan dengan dua fungsi obyektif yaitu biaya total (TC) dan resiko (R). Parameter-parameter berikut digunakan dalam menyelesaikan persoalan pemilihan security countermeasure untuk suatu sistem teknologi informasi (TI). Parameter-parameter tersebut dinyatakan secara matematis: S –himpunan security countermeasure {S1, ..., Sk}, T–himpunan ancaman (threats) yang teridentifikasi oleh sistem T = {T1, ..., Tm}, V –himpunan vulnerabilitas yang teridentifikasi dalam organisasi V = {V1, ...Vn}, Lji –kemungkinan bahwa suatu ancaman (threat) j akan mengeksploitasi vulnerabilitas i, Ii –dampak vulnerabilitas i terhadap kerahasiaan (confidentiality), integritas (integrity), ketersediaan (availability) – CIA, yang dapat memiliki tingkat sebagai berikut: complete (C), partial (P) and none (N), CL–biaya total untuk suatu countermeasure L, { ∈ ܮ1, 2, … , ݇}
CLp –sub-cost ke-p untuk countermeasure L, yang menyatakan jenis cost yang dibutuhkan untuk mengimplementasikan countermeasure, yaitu man-power, biaya pembelian, zLi –menyatakan bagaimana countermeasure L berkaitan dengan vulnerabilitas i. Diberikan sebuah vektor yang terdiri dari k countermeasure ܵ⃗= (ܵଵ, ܵଶ, … , ܵ)
(3.8)
yang membentuk himpunan berhingga dari solusi-solusi feasible X, dan dua obyektif yaitu biaya total TC and resiko R, tinjau persoalan optimisasi multiobjective kombinatorial: ݉ ݂݅݊ଵ൫ܵ⃗൯= ܶܥ൫ܵ⃗൯ dan ݉ ݂݅݊ଶ൫ܵ⃗൯= ܴ൫ܵ⃗൯ ݀݅݉ ܽ݊ܽ ܵ⃗∈ ܺ, TC=biaya total, R=resiko.
Pernyataan matematika dari obyektif I yang berkorespondensi dengan biaya total TC selanjutnya didefinisikan sebagai berikut. Definisi Biaya Total (TC)
50
Diberikan sebuah himpunan k security countermeasure, masing-masing mempunyai biaya CL, 1 ≤ L ≤ k dan tinjau vektor ܵ⃗= {ܵ1, . . . , ܵ݇} , SL ∈ {0, 1}∀L, 1 ≤ L≤ k, biaya total TC didefinisikan sebagai: ܶܥ൫ܵ⃗൯= {∑ୀଵ ܥܵ : ܥ > 0 ∀}ܮ
1, ܵ = ൜ 0,
(3.9)
݆݅݇ܽ ݈ܿ݅݅݅݀ ܮ݁ݎݑݏܽ݁ ݉ݎ݁ݐ݊ݑℎ ݈݀ܽܽ݉ ݅ݏݑ݈ݏ ݈ܽ݅݊݊ܽݕ
(3.10)
Untuk obyektif kedua yang berkaitan dengan resiko R selanjutnya didefinisikan sebagai berikut. Tabel III.2. Nilai peluang Lji V1 V2 V3 V4 V5 V6 T1
0
0.1
0
0
0
0.1
T2
0
0.1
0
0
0
0.1
T3
0
0.1
0
0
0
0.1
T4
0.5
0
0
0
0
0
T5
0.5
0
0
0
0
0
T6
0
0.1
0
0
0
0.1
T7
0
0
T8
0.5
0
T9
0
0
T10
0
0.5 0.5 0.5 0.5 0.5
T11
0
0.5
0
0
0
0.5
T12 0.1
1
0
0
0
1
T13 0.5
0
0
0
0
0
T14 0.5
0
0
0
0
0
T15 0.5
0
0
0
0
0
0.1 0.1 0.1 0.1 0
0
0
0.1 0.1 0.1
0 0
Definisi Resiko Awal Total (TIR) Resiko Awal Total (TIR) didefinisikan sebagai jumlah dari resiko-resiko awal pada organisasi, pada saat tidak ada security countermeasure yang diterapkan. Resiko Awal Total (TIR) dinyatakan dalam bilangan real. Resiko awal total dapat dihitung sebagai berikut.
51
ܶ∑ = ܴܫୀଵ ∑ୀଵ ܮ ∗ ܫ ∗ ܸ
(3.11)
Definisi Resiko (R) Diberikan resiko awal total TIR, vektor ܵ⃗= {ܵ1, . . . , ܵ݇} , SL ∈ {0, 1}∀L, 1 ≤ L ≤ k dan matriks kecocokan (matching matrix) zLi yang menyatakan keterkaitan antara vulnerabilitas dan countermeasure. Resiko R dirumuskan sebagai: ܴ൫ܵ⃗൯= {ܶ ܴܫ− ∑ୀଵ ∑ୀଵ ∑ୀଵ ܮ ∗ ܫ ∗ ݖ ∗ ܵ}
(3.12)
Lji menyatakan nilai kemungkinan suatu threat Tj mengeksploitasi vulnerabilitas Vi. Nilai Lji dinyatakan dalam bentuk matriks sebagaimana dapat dilihat pada Tabel III.2.
Ii adalah nilai yang menyatakan dampak vulnerabilitas i terhadap kerahasiaan (confidentiality), integritas (integrity), ketersediaan (availability) – CIA, yang dapat memiliki level sebagai berikut: complete (C), partial (P) and none (N). Nilai Ii dapat dilihat pada Tabel III.3. Vl adalah vulnerabilitas individu yang merupakan anggota dari himpunan vulnerabilitas {V1, ..., Vn}. Himpunan vulnerabilitas pada organisasi dapat dilihat pada Tabel III.3. SL adalah himpunan security countermeasure {S1, ..., Sk}. Daftar generik dari security countermeasure untuk vulnerabilitas dan threat yang teridentifikasi dapat dilihat pada Tabel III.4. zLi menyatakan bagaimana countermeasure L (SL) berkaitan dengan vulnerabilias i (Vi).
52
Tabel III.3. Vulnerabilitas, Bugtraq ID dan informasi dampak Ii Representation
V1
V2
V3
V4
V5
V6
Vulnerability
Bugtraq ID
Multiple Vendor SSH2 Implementation Null Character Handling Vulnerabilities. ID:6410 Exists in Windows 95/98/2000/NT and Linux. (Remote attack). Linux Kernel NCPFS ncp_lookup() Unspecified Local Privilege Escalation Vulnerability. ID:9691 Exists in RedHat Linux 8.0 and RedHat Linux 7.2. (Local attack) RhinoSoft Serv-U FTP Server MDTM Command Time Argument ID:9751 Buffer Overflow Vulnerability. (Remote attack). RhinoSoft Serv-U FTP Server LIST Parameter . ID:10181 Buffer Overflow Vulnerability. (Remote attack) GoodTech Systems Telnet Server for Windows NT/2000/XP/2003 ID:12815 Remote Buffer Overflow Vulnerability. (Remote attack). Apple QuickTime for Java Multiple Unspecified ID:26339 Remote Privilege Escalation Vulnerabilities. (Remote attack).
Impact on CIA
PPP
CCC
PPP
PPP
PPP
CCC
Nilai zLi ini dapat dilihat pada Tabel III.4. Setiap kombinasi countermeasure– vulnerabilitas zLi dapat memiliki satu dari lima kemungkinan nilai konsekuensi, yaitu: 1, ⎧ 0,5, ⎪ ݖ = 0, ⎨ − 0,5, ⎪ ⎩ − 1,
݆݅݇ܽ ܵ ;ܸ݅ ܽ݀ܽ݁݇ ݊ܽ݇ݑ݆ݑݐ݅݀ ݃݊ݑݏ݈݃݊ܽ ܽݎܽܿ݁ݏ ݆݅݇ܽ ܵ ;ܸ݅ ܽ݀ܽ݁݇ ݊ܽ݇ݑ݆ݑݐ݅݀ ݃݊ݑݏ݈݃݊ܽ ݇ܽ݀݅ݐ ܽݎܽܿ݁ݏ ݆݅݇ܽ ܵ ݀ܽ݊ ܸ݅;݊ܽݐ݅ܽ݇ݎܾ݁ ݈݃݊݅ܽݏ ݇ܽ݀݅ݐ ݆݅݇ܽ ܵ ;ܸ݅ ݊ܽ݇ܽݐ݅ܿ݊݁ ݉ ݃݊ݑݏ݈݃݊ܽ ݇ܽ݀݅ݐ ܽݎܽܿ݁ݏ ݆݅݇ܽ ܵ ܸ݅ ݊ܽ݇ܽݐ݅ܿ݊݁ ݉ ݃݊ݑݏ݈݃݊ܽ ܽݎܽܿ݁ݏ
53
(3.13)
Tabel III.4. Daftar generik dari security countermeasure untuk vulnerabilitas dan threat yang teridentifikasi (Viduto, V.; Maple, C.; Huang, W. and López-Peréz, D., 2012) Category
Type Support
Technical Prevent
Detect and recover
Preventive
Management
Detection Recovery
Operational
Preventive
Detection
Countermeasure Identification Cryptographic key management Security administration System protection Authentication Authorization Access control enforcement Non-repudiation Protected communication Transaction privacy Audit Intrusion detection and containment Virus detection and eradication Assign security responsibilities Implement separation of duties, least privilege and PC access registration and termination Conduct security awareness and technical training and PC access registration and termination Conduct periodic system audits Periodic system audits Provide continuity of support and test, maintain it Control data media access and disposal Control software viruses Safeguard computing facility (e.g. biometric access control) Protect laptops, personal computers, workstations Provide physical security (e.g. motion detectors)
Tabel III.5. Nilai zLi Vuln/Coun V1 V2 V3 V4 V5 V6
S1 0.5 -0.5 0 0 0 -0.5
S2 1 1 0.5 0.5 0.5 1
54
S3 1 0.5 0 0 0 0.5
S4 0.5 0.5 0.5 0.5 0.5 0.5
S5 0 0.5 0 0 0 0.5
S6 0.5 0.5 0.5 0.5 0.5 0.5
Representation S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15
S16
S17 S18 S19 S20 S21 S22 S23 S24
Keterkaitan antara threat dan vulnerabilitas sebagai acuan untuk menentukan nilai Lji dapat dilihat pada Tabel III.6.
Tabel III.6. Keterkaitan antara Threat dan Vulnerabilitas Threat Souces Incompetent user
Hacker
Tactical attack
Industrial Espionage Service administrator
Threats/actions
Representation
Unauthorised user gets access to resources Physical attack Social Engineering Tamper the protection relevant mechanisms Reckless network administration Improper management Viruses, Trojans, Worms Architecture, design and implementation flaws DoS attack BoF attack
T1
Matched Vulnerability V2,V6
T2 T3 T4
V2,V6 V2,V6 V1
T5
V1
T6 T7 T8
V2,V6 V3,V4,V5,V6 V1
T9 T10
V3,V4,V5 V2,V3,V4,V5,V6
No audits Elevation of privileges
T11 T12
V2,V6 V1,V2,V6
Password and compromise through plain text communication Dictionary/Brute Force attack Arbitraty cde execution
T13
V1
T14 T15
V1 V1
III.8 Perbandingan Metode Metrik Perbandingan metode metrik yang dikembangkan dalam penelitian disertasi ini dengan penelitian disertasi lain dapat dilihat pada Tabel III.7.
55
Tabel III.7. Perbandingan Metode Metrik
Penelitian Disertasi
Graf Serangan
Asumsi Vulnerabilitas
(Idika, 2010)
Tidak meninjau Kinerja Jaringan
Vulnerabilitas Remote
Metode Perhitungan menggunakan komputer
(Viduto, 2012)
Tidak meninjau kinerja jaringan
Vulnerabilitas Remote dan Vulnerabilitas Lokal
Metode Perhitungan menggunakan komputer
Disertasi
Graf Serangan Status meninjau kinerja jaringan, Graf Host, Graf Vulnerabilitas
Vulnerabilitas Remote dan Vulnerabilitas Lokal
Metode Komputasi Manual dan Komputer
56
Metode Komputasi
Bab IV
Simulasi Penguatan Jaringan
IV.1 Jaringan Eksperimen Jaringan Eksperimen yang digunakan dapat dilihat pada Gambar IV.1.
Gambar IV.1. Jaringan Eksperimen Pada Gambar IV.1, penyerang memiliki privilege root pada komputer miliknya sendiri IP0 (host awal). Komputer IP1 menggunakan Mac OS dan terdapat Quick Time terinstal pada Mac OS terebut. Komputer IP2 adalah server Linux RedHat yang menyediakan layanan SSH. Komputer IP3 adalah host yang menggunakan Windows XP dan terdapat instalasi Serv-U sebagai FTP server. IP4 adalah telnet server pada Windows NT. Firewall Rule menjamin bahwa user di luar firewall hanya dapat melakukan akses remote menuju IP1. Vulnerabilitas yang terdapat pada jaringan eksperimen dapat dilihat pada Tabel IV.1. Deskripsi dari setiap vulnerabilitas mengacu pada database Bugtraq. Himpunan vulnerabilitas dinyatakan sebagai matriks V yaitu, ݉ݑ݊_݈ݑܸ ܲܫ ⎡1 {6} ⎤ ⎢ ⎥ {1,2} ⎥ ܸ = ⎢2 {3,4} ⎥ ⎢3 {5} ⎦ ⎣4 57
(4.1)
Tabel IV.1. Vulnerabilitas pada Jaringan Eksperimen Vulnerabilitas
Deskripsi
V1
Multiple Vendor SSH2 Implementation Null Character Handling Vulnerabilities. Exists in Windows 95/98/2000/NT and Linux. (Remote attack). Bugtraq ID:6410
V2
Linux Kernel NCPFS ncp_lookup() Unspecified Local Privilege Escalation Vulnerability. Exists in RedHat Linux 8.0 and RedHat Linux 7.2. (Local attack) Bugtraq ID:9691
V3
RhinoSoft Serv-U FTP Server MDTM Command Time Argument Buffer Overflow Vulnerability. (Remote attack). Bugtraq ID:9751
V4
RhinoSoft Serv-U FTP Server LIST Parameter Buffer Overflow Vulnerability. (Remote attack). Bugtraq ID:10181
V5
GoodTech Systems Telnet Server for Windows NT/2000/XP/2003 Remote Buffer Overflow Vulnerability. (Remote attack). Bugtraq ID:12815
V6
Apple QuickTime for Java Multiple Unspecified Remote Privilege Escalation Vulnerabilities. (Remote attack). Bugtraq ID:26339
Kolom pertama pada matriks vulnerabilitas V menyatakan komputer dan kolom kedua menyatakan vulnerabilitas yang ada pada komputer pada baris matriks yang bersesuaian. Elemen pada kolom ke-1 menyatakan IP sedangkan kolom kedua menyatakan nomor vulnerabilitas. Keterhubungan diantara host pada jaringan komputer eksperimen dinyatakan sebagai matriks K yaitu ⎡ ܲܫ0 ⎢ ܲܫ⎢ = ܭ1 ⎢ܲܫ2 ⎢ܲܫ3 ⎣ܲܫ4
ܲܫ0 1 1 0 0 0
ܲܫ1 ܲܫ2 ܲܫ3 ܲܫ4 ⎤ 1 0 0 0 ⎥ 1 1 1 1 ⎥ 1 1 1 1 ⎥ 1 1 1 1 ⎥ 1 1 1 1 ⎦
58
(4.2)
Attack Rule ݈ݑݒ ⎡ { ⎢ 1 ⎢ {2 ܴ = ⎢ {3 ⎢ {4 ⎢ ⎢ {5 ⎣ {6
1 1 1 1 1 1
0 1 0 0 0 0
1} 2} 1} 1} 2} 1}
ܾݎ {0.35} {0.30} {0.45} {0.45} {0.60} {0.30}
݈ݏݏ {1 {0 {0 {0 {1 {1
0 1 0 0 1 0
1 0 1 1 0 0
0} 0} 1} 1} 0} 0}
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
(4.3)
Probabilitas suksesnya suatu serangan di-generate secara acak dengan nilai antara 0,3 sampai dengan 0,6. Aturan perubahan status {per1, per2, per3, per4} sesuai dengan model yang dijelaskan pada Tabel IV.2. peri=1 berarti bahwa performance loss ke-i mencapai tingkat yang lebih tinggi. Tabel IV.2. VPN untuk Jaringan Eksperimen Notasi
Performance
Keterangan System time required
per1
System response time
from receiving the request to providing the service.
per2
System recovery time
Time required from system fault to recovery. The amount of data
per3
Throughput rate
transmitted successfully between nodes.
per4
Message transmission delay
The largest transmission delay of network messages or packets.
Initial Status ݉ݑ݊_ݏ ݏ = {0}
ܸܲܰ_ݏݑݐܽݐݏ ݈݁݃݁݅ݒ݅ݎ ൨ {− 1 − 1 − 1 − 1} {2 0 − 1 − 1 − 1}
(4.4)
Kolom pertama (s_num) pada matriks s0 adalah nomor vulnerabilitas. Kolom kedua (VPN_status) menunjukkan status awal dari VPN. Kolom ketiga menunjukkan privilege awal yang dimiliki oleh attacker pada setiap host.
59
Tabel IV.3. Status Tiap Node pada Graf Serangan Status
Status
Attacker privilege
Num
VPN1 VPN2 VPN3 VPN4 IP0 IP1 IP2 IP3 IP4
0
-1
-1
-1
-1
2
0
-1
-1
-1
1
0
-1
-1
-1
2
1
0
0
0
2
1
-1
0
-1
2
1
1
0
0
3
0
-1
0
0
2
1
0
1
0
4
1
0
-1
-1
2
1
0
0
2
5
1
-1
1
0
2
1
1
1
0
6
2
0
0
-1
2
1
1
0
2
7
1
0
0
-1
2
1
2
0
0
8
1
0
0
0
2
1
0
1
2
9
2
0
1
0
2
1
1
1
2
10
1
0
1
0
2
1
2
1
0
11
2
1
0
-1
2
1
2
0
2
12
2
1
1
0
2
1
2
1
2
Algoritma untuk membuat attack graph menggunakan persamaan (4.1)-(4.4) sebagai input. Output dari algoritma berupa attack graph dapat dilihat pada Gambar IV.2. Node segiempat menyatakan root privilege untuk attacker. Garis berwarna biru menyatakan attack step untuk node segiempat. Graf mempunyai 13 status yang diperoleh dengan menggunakan algoritma attack graph. Status pada attack graph dapat dilihat pada Tabel IV.3.
60
Gambar IV.2. Attack Graph untuk Jaringan Eksperimen
61
Screenshot dari program komputer untuk menggambar attack graph dapat dilihat pada Gambar IV.3. s.d. Gambar IV.7.
Gambar IV.3. Tabel Vulnerabilitas untuk Jaringan Eksperimen
Gambar IV.4. Matriks Keterhubungan untuk Jaringan Eksperimen
62
Gambar IV.5. Matriks Attack Rules untuk Jaringan Eksperimen
Gambar IV.6. Status pada Attack Graph untuk Jaringan Eksperimen
63
Gambar IV.7. Attack Graph untuk Jaringan Eksperimen
Pada Gambar IV.7., Shortest Path Metric dihitung dengan menggunakan rumus SP(G)=min(L(P1), L(P2), …, L(Pk), dimana L(P1) menyatakan panjang lintasan P1, L(P2) menyatakan panjang lintasan P2, L(Pk) menyatakan panjang lintasan Pk. Number of Path Metric dihitung berdasarkan rumus NP(G)=|P1, P2, …,Pk|, dimana P1 menyatakan lintasan ke-1, P2 menyatakan lintasan ke-2, Pk menyatakan lintasan ke-k, Mean of Path Length Metric dihitung dengan menggunakan rumus
dimana
= )ܩ(ܮܲ ܯ
∑ೖ స భ () ே (ீ)
(4.5)
∑ୀଵ (ܮ) menyatakan jumlah dari setiap panjang lintasan pada attack graph, ܰܲ( )ܩmenyatakan banyaknya lintasan pada attack graph. 64
Standard Deviation of Path Length Metric dihitung dengan menggunakan rumus
dimana
ܵ = )ܩ(ܮܲܦට
మ ∑ೖ స భ(()ିெ (ீ))
ே (ீ)
(4.6)
(ܮ) menyatakan panjang lintasan ,
ܰܲ( )ܩmenyatakan banyaknya lintasan pada attack graph,
)ܩ(ܮܲ ܯmenyatakan rerata dari panjang lintasan pada attack graph.
Median dari panjang lintasan pada attack graph dihitung dengan menggunakan rumus (ܮ) ቒೖቓ మ = )ܩ(ܮܲ݁ ܯቐଵ ((ܮ) ೖ + (ܮ) ೖାଵ) ଶ మ
మ
, ݈݆݅݊ܽ݃ ݇ ݇ݑݐ݊ݑ
, ܽ݊݁݃ ݇ ݇ݑݐ݊ݑ
(4.7)
Terdapat perbedaan asumsi antara disertasi ini dengan disertasi (Idika, 2010) yaitu semua vulnerabilitas pada (Idika, 2010) diasumsikan dapat dieksploitasi secara remote. Pada disertasi ini, vulnerabilitas diasumsikan secara lebih umum yaitu ada vulnerabilitas yang dapat dieksploitasi secara remote dan ada vulnerabilitas yang dapat diekspoitasi secara lokal. Attack graph yang dihasilkan pada disertasi ini juga berbeda dengan attack graph pada (Idika, 2010). Pada disertasi ini setiap titik pada graf menyatakan status pada jaringan. Status pada graf menyatakan kinerja jaringan pada titik tersebut. Berbagai algoritma dapat digunakan untuk mencari lintasan terpendek dari status awal ke status yang dituju. Algoritma yang dapat digunakan untuk mencari lintasan terpendek misalnya metode BFS (Breadth First Search), Bellman-Ford, Acyclic dan Dijkstra. Pada algoritma Bellman-Ford diasumsikan bobot untuk setiap sisi merupakan koefisien-koefisien tak nol pada matriks sparse G. Kompleksitas waktu untuk algoritma Bellman-Ford adalah O(N x E), dimana N menyatakan jumlah node dan E menyatakan banyaknya sisi.
65
Tabel IV.4. Data Vulnerabilitas dan Dampak Terhadap CIA Representation V1
V2
V3
V4
V5
V6
Vulnerability Multiple Vendor SSH2 Implementation Null Character Handling Vulnerabilities. Exists in Windows 95/98/2000/NT and Linux. (Remote attack). Linux Kernel NCPFS ncp_lookup() Unspecified Local Privilege Escalation Vulnerability. Exists in RedHat Linux 8.0 and RedHat Linux 7.2. (Local attack) RhinoSoft Serv-U FTP Server MDTM Command Time Argument Buffer Overflow Vulnerability. (Remote attack). RhinoSoft Serv-U FTP Server LIST Parameter . Buffer Overflow Vulnerability. (Remote attack) GoodTech Systems Telnet Server for Windows NT/2000/XP/2003 Remote Buffer Overflow Vulnerability. (Remote attack). Apple QuickTime for Java Multiple Unspecified Remote Privilege Escalation Vulnerabilities. (Remote attack).
Bugtraq ID
Impact on CIA
ID:6410
PPP
ID:9691
CCC
ID:9751
PPP
ID:10181
PPP
ID:12815
PPP
ID:26339
CCC
Pada algoritma BFS diasumsikan bobot untuk semua sisinya sama dan merupakan koefisien tak nol pada matriks sparse G. Kompleksitas waktu untuk algoritma BFS adalah O(N+E), dimana N menyatakan jumlah node dan E menyatakan banyaknya sisi. Pada algoritma Acyclic diasumsikan G adalah graf berarah acyclic dan setiap bobot untuk setiap sisinya merupakan bilangan tak nol pada matriks sparse G. Kompleksitas waktunya yaitu O(N+E), dimana N menyatakan jumlah node dan E menyatakan banyaknya sisi.
Pada algoritma Dijkstra diasumsikan bahwa setiap bobot untuk sisinya merupakan bilangan positif dalam matriks sparse G. Kompleksitas waktu untuk algoritma ini adalah O(log(N) x E), dimana N menyatakan jumlah node dan E menyatakan banyaknya sisi. 66
Tabel IV.5. Data Threat dan Vulnerabilitas yang Dapat Dieksploitasi Threat Sources Incompetent user
Threats/actions
Unauthorised user gets access to resources Physical attack Hacker Social Engineering Tamper the protection relevant mechanisms Reckless network administration Tactical attack Improper management Viruses, Trojans, Worms Architecture, design and implementation flaws DoS attack Industrial BoF attack Espionage No audits Service Elevation of privileges administrator Password and compromise through plain text communication Dictionary/Brute Force attack Arbitraty code execution
Representation
Matched Vulnerability
T1
V2,V6
T2 T3
V2,V6 V2,V6
T4
V1
T5 T6 T7
V1 V2,V6 V3,V4,V5,V6
T8
V1
T9
V3,V4,V5
T10
V2,V3,V4,V5,V6
T11
V2,V6
T12
V1,V2,V6
T13
V1
T14 T15
V1 V1
Selanjutnya akan dihitung resiko dan cost untuk tiap kombinasi countermeasure. Data yang digunakan dalam eksperimen dapat dilihat pada Tabel IV.4. Data yang digunakan pada studi kasus diambil dari (Viduto, V., Maple, C., Huang, W., López-Peréz, D., 2012). Nilai 1 pada Tabel IV.8. berarti jika countermeasure diterapkan akan secara langsung menghilangkan vulnerabilitas. Nilai 0,5 berarti jika countermeasure diterapkan akan secara tidak langsung menghilangkan vulnerabilitas. Nilai 0 berarti countermeasure tidak berkaitan dengan vulnerabilitas.
67
Tabel IV.6. Nilai Kemungkinan Lji bahwa Threat akan Mengeksploitasi Vulnerabilitas V1
V2
V3
V4
V5
V6
T1
0
0.1
0
0
0
0.1
T2
0
0.1
0
0
0
0.1
T3
0
0.1
0
0
0
0.1
T4
0.5
0
0
0
0
0
T5
0.5
0
0
0
0
0
T6
0
0.1
0
0
0
0.1
T7
0
0
T8
0.5
0
T9
0
0
T10
0
0.5 0.5 0.5 0.5 0.5
T11
0
0.5
0
0
0
0.5
T12 0.1
1
0
0
0
1
T13 0.5
0
0
0
0
0
T14 0.5
0
0
0
0
0
T15 0.5
0
0
0
0
0
0.1 0.1 0.1 0.1 0
0
0
0.1 0.1 0.1
0 0
Tabel IV.7. Data Countermeasure Deskripsi Countermeasure S1
Maintain use of password to identify users
S2
System administrator
S3
Enable SSHv2
S4
E-Z Audit license
S5
Assign security responsibilities
S6
Generate periodic audit reports
Nilai -0,5 berarti jika countermeasure diterapkan, secara tidak langsung menciptakan vulnerabilitas. Nilai -1 berarti jika countermeasure diterapkan akan secara langsung menciptakan vulnerabilitas lain.
68
Tabel IV.8. Data Countermeasure dan Vulnerabilitas Vuln/Coun V1 V2 V3 V4 V5 V6
S1 0.5 -0.5 0 0 0 -0.5
S2 1 1 0.5 0.5 0.5 1
S3 1 0.5 0 0 0 0.5
S4 0.5 0.5 0.5 0.5 0.5 0.5
S5 0 0.5 0 0 0 0.5
S6 0.5 0.5 0.5 0.5 0.5 0.5
Tabel IV.9. Data Biaya untuk Setiap Countermeasure yang Diterapkan Countermeasure example S1 S2 S3 S4 S5 S6
Maintain use of passwords to identify users System administrator Enable SSHv2 E-Z Audit license Assign security responsibilities Generate periodic audit reports
Operational cost ($)
Man power(e.g. If 50$/h)
Purchase cost ($)
Training cost ($)
Total cost x102 ($)
0
0
0
2500
25
200
1000
0
0
12
100 100
50 0
0 155
0 300
1,5 5,5
0
2500
0
0
25
150
1000
0
0
11,5
Resiko Awal Total dihitung pada saat tidak ada countermeasure yang diterapkan pada vulnerabilitas. Definisi Resiko Awal Total (TIR) Resiko Awal Total (TIR) didefinisikan sebagai jumlah dari resiko-resiko awal pada organisasi, pada saat tidak ada security countermeasure yang diterapkan. Resiko awal total dapat dihitung sebagai berikut. ܶ∑ = ܴܫୀଵ ∑ୀଵ ܮ ∗ ܫ ∗ ܸ
69
(4.8)
Tabel IV.10. Data yang digunakan untuk menghitung TIR Lji T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 V1 0 0 0 0.5 0.5 0 0 0.5 0 0 0 0.1 0.5 0.5 0.5 V2 0.1 0.1 0.1 0 0 0.1 0 0 0 0.5 0.5 1 0 0 0 V3 0 0 0 0 0 0 0.1 0 0.1 0.5 0 0 0 0 0 V4 0 0 0 0 0 0 0.1 0 0.1 0.5 0 0 0 0 0 V5 0 0 0 0 0 0 0.1 0 0.1 0.5 0 0 0 0 0 V6 0.1 0.1 0.1 0 0 0.1 0.1 0 0 0.5 0.5 1 0 0 0
Ii Ii (Impact) angka PPP 50 CCC 100 PPP 50 PPP 50 PPP 50 CCC 100
Tabel IV.11. Proses Perhitungan Resiko Awal Total (TIR) TIR= ΣΣLji*Ii*Vi L11*I1*V1 L12*I2*V2 L13*I3*V3 L14*I4*V4 L15*I5*V5 L16*I6*V6
j=1 i=1..10 0 10 0 0 0 10 20
j=2 0 10 0 0 0 10 20
j=3 0 10 0 0 0 10 20
j=4 25 0 0 0 0 0 25
j=5 25 0 0 0 0 0 25
j=6 0 10 0 0 0 10 20
j=7 0 0 5 5 5 10 25
j=8 25 0 0 0 0 0 25
j=9 0 0 5 5 5 0 15
j=10 0 50 25 25 25 50 175
j=11 0 50 0 0 0 50 100
j=12 5 100 0 0 0 100 205
j=13 25 0 0 0 0 0 25
j=14 25 0 0 0 0 0 25
j=15 25 0 0 0 0 0 25 750
l=1 j=14 12.5 0 0 0 0 0
l=1 j=15 12.5 0 0 0 0 0
Tabel IV.12. Proses Perhitungan Faktor Pengurang Resiko
ΣΣΣLji*Ii*zli*Sl L11*I1*z11*S1 L12*I2*z12*S1 L13*I3*z13*S1 L14*I4*z14*S1 L15*I5*z15*S1 L16*I6*z16*S1
l=1 j=1 i=1..6 0 -5 0 0 0 -5
l=1 j=2 0 -5 0 0 0 -5
l=1 j=3 0 -5 0 0 0 -5
l=1 j=4 12.5 0 0 0 0 0
l=1 j=5 12.5 0 0 0 0 0
l=1 j=6 0 -5 0 0 0 -5
l=1 j=7 0 0 0 0 0 -5
l=1 j=8 12.5 0 0 0 0 0
l=1 j=9 0 0 0 0 0 0
l=1 j=10 0 -25 0 0 0 -25
l=1 j=11 0 -25 0 0 0 -25
l=1 j=12 2.5 -50 0 0 0 -50
l=1 j=13 12.5 0 0 0 0 0
Definisi Resiko (R) Diberikan resiko awal total TIR, vektor ܵ⃗= {ܵଵ, ܵଶ, … , ܵ }∈ {0, 1}∀L, 1 ≤ L ≤ k dan matriks kecocokan (matching matrix) zLi yang menyatakan keterkaitan antara vulnerabilitas dan countermeasure. Resiko R dirumuskan sebagai: ܴ൫ܵ⃗൯= {ܶ ܴܫ− ∑ୀଵ ∑ୀଵ ∑ୀଵ ܮ ∗ ܫ ∗ ݖ ∗ ܵ}
70
(4.9)
Tabel IV.13. Proses Perhitungan Biaya Total dan Resiko S1 S2 S3 S4 S5 S6 C1 C2 C3 C4 C5 C6 TC R 0 0 0 0 0 0 2500 1200 150 550 2500 1150 0 750.0 0 0 0 0 0 1 2500 1200 150 550 2500 1150 1150 672.5 0 0 0 0 1 0 2500 1200 150 550 2500 1150 2500 505.0 0 0 0 0 1 1 2500 1200 150 550 2500 1150 3650 427.5 0 0 0 1 0 0 2500 1200 150 550 2500 1150 550 375.0 0 0 0 1 0 1 2500 1200 150 550 2500 1150 1700 297.5 0 0 0 1 1 0 2500 1200 150 550 2500 1150 3050 130.0 0 0 0 1 1 1 2500 1200 150 550 2500 1150 4200 52.5 0 0 1 0 0 0 2500 1200 150 550 2500 1150 150 350.0 0 0 1 0 0 1 2500 1200 150 550 2500 1150 1300 272.5 0 0 1 0 1 0 2500 1200 150 550 2500 1150 2650 105.0 0 0 1 0 1 1 2500 1200 150 550 2500 1150 3800 27.5 0 0 1 1 0 0 2500 1200 150 550 2500 1150 700 -25.0 0 0 1 1 0 1 2500 1200 150 550 2500 1150 1850 -102.5 0 0 1 1 1 0 2500 1200 150 550 2500 1150 3200 -270.0 0 0 1 1 1 1 2500 1200 150 550 2500 1150 4350 -347.5 0 1 0 0 0 0 2500 1200 150 550 2500 1150 1200 52.5 0 1 0 0 0 1 2500 1200 150 550 2500 1150 2350 -25.0 0 1 0 0 1 0 2500 1200 150 550 2500 1150 3700 -192.5 0 1 0 0 1 1 2500 1200 150 550 2500 1150 4850 -270.0 0 1 0 1 0 0 2500 1200 150 550 2500 1150 1750 -322.5 0 1 0 1 0 1 2500 1200 150 550 2500 1150 2900 -400.0 0 1 0 1 1 0 2500 1200 150 550 2500 1150 4250 -567.5 0 1 0 1 1 1 2500 1200 150 550 2500 1150 5400 -645.0 0 1 1 0 0 0 2500 1200 150 550 2500 1150 1350 -347.5 0 1 1 0 0 1 2500 1200 150 550 2500 1150 2500 -425.0
71
norm TC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
0 0.142857 0.310559 0.453416 0.068323 0.21118 0.378882 0.521739 0.018634 0.161491 0.329193 0.47205 0.086957 0.229814 0.397516 0.540373 0.149068 0.291925 0.459627 0.602484 0.217391 0.360248 0.52795 0.670807 0.167702 0.310559
norm R 0.817439 0.73297 0.550409 0.46594 0.408719 0.324251 0.141689 0.057221 0.381471 0.297003 0.114441 0.029973 -0.02725 -0.11172 -0.29428 -0.37875 0.057221 -0.02725 -0.20981 -0.29428 -0.3515 -0.43597 -0.61853 -0.703 -0.37875 -0.46322
Definisi Biaya Total (TC) Diberikan sebuah himpunan berisi k security countermeasure, masing-masing ⃗= {ܵଵ, ܵଶ, … , ܵ} , SL ∈ {0, mempunyai biaya CL, 1 ≤ L ≤ k dan tinjau vektor Sሬ 1}∀L, 1 ≤ L≤ k, biaya total TC didefinisikan sebagai: ܶܥ൫ܵ⃗൯= {∑ୀଵ ܥܵ : ܥ > 0 ∀}ܮ
1, ݆݅݇ܽ ݈݅݅݅݀ ܮ݁ݎݑݏܽ݁ ݉ ݕݐ݅ݎݑܿ݁ݏℎ ݈݀ܽܽ݉ ݅ݏݑ݈ݏ ܵ = ൜ 0, ݈ܽ݅݊݊ܽݕ
(4.10) (4.11)
Diberikan sebuah vektor yang terdiri dari k countermeasure ሬሬ ܵ⃗= (ܵଵ, ܵଶ, … , ܵ)
(4.12)
yang membentuk himpunan berhingga dari solusi-solusi feasible X, dan dua obyektif yaitu biaya total TC and resiko R, tinjau persoalan optimisasi multiobjective kombinatorial: ݉ ݂݅݊ଵ൫ܵ⃗൯= ܶܥ൫ܵ⃗൯ dan ݉ ݂݅݊ଶ൫ܵ⃗൯= ܴ൫ܵ⃗൯ ݀݅݉ ܽ݊ܽ ܵ⃗∈ ܺ, TC=biaya total, R=Resiko
IV.2 Pemilihan Kombinasi Countermeasure Untuk setiap himpunan countermeasure yang diterapkan maka dihitung nilai dari fungsi biaya dan fungsi resikonya menggunakan rumus-rumus yang dibahas pada subbab IV.1. Hasil perhitungan nilai biaya dan resiko untuk setiap kombinasi countermeasure yang diterapkan dapat dilihat pada Tabel IV.14.
72
Tabel IV.14. Beberapa Himpunan Countermeasure, Biaya Total dan Resiko S1 0 0 0 0 0 0 0 0 0 0 0 0 0
S2 0 0 0 0 0 0 0 0 0 0 0 0 0
S3 0 0 0 0 0 0 0 0 1 1 1 1 1
S4 0 0 0 0 1 1 1 1 0 0 0 0 1
S5 0 0 1 1 0 0 1 1 0 0 1 1 0
S6 0 1 0 1 0 1 0 1 0 1 0 1 0
C1 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500
C2 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
C3 150 150 150 150 150 150 150 150 150 150 150 150 150
C4 550 550 550 550 550 550 550 550 550 550 550 550 550
C5 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500 2500
C6 1150 1150 1150 1150 1150 1150 1150 1150 1150 1150 1150 1150 1150
TC 0 1150 2500 3650 550 1700 3050 4200 150 1300 2650 3800 700
R 750.0 672.5 505.0 427.5 375.0 297.5 130.0 52.5 350.0 272.5 105.0 27.5 -25.0
0
0
1
1
0
1
2500
1200
150
550
2500
1150
1850
-102.5
0
0
1
1
1
0
2500
1200
150
550
2500
1150
3200
-270.0
0
0
1
1
1
1
2500
1200
150
550
2500
1150
4350
-347.5
0 0
1 1
0 0
0 0
0 0
0 1
2500 2500
1200 1200
150 150
550 550
2500 2500
1150 1150
1200 2350
52.5 -25.0
0
1
0
0
1
0
2500
1200
150
550
2500
1150
3700
-192.5
0
1
0
0
1
1
2500
1200
150
550
2500
1150
4850
-270.0
0
1
0
1
0
0
2500
1200
150
550
2500
1150
1750
-322.5
0
1
0
1
0
1
2500
1200
150
550
2500
1150
2900
-400.0
0
1
0
1
1
0
2500
1200
150
550
2500
1150
4250
-567.5
0
1
0
1
1
1
2500
1200
150
550
2500
1150
5400
-645.0
Grafik dari biaya total untuk setiap himpunan countermeasure dapat dilihat pada Gambar IV.8.
73
9000 8000 7000 6000 5000
Series1
4000
Series2
3000 2000 1000 0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64
Gambar IV.8. Grafik Biaya Total terhadap Konfigurasi Countermeasure Grafik yang menunjukkan nilai resiko untuk setiap konfigurasi countermeasure yang dipilih dapat dilihat pada Gambar IV.9.
1500.0 1000.0 500.0 Series1
0.0 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64
Series2
-500.0 -1000.0 -1500.0
Gambar IV.9. Grafik Resiko terhadap Konfigurasi Countermeasure Sebagai bahan pertimbangan bagi yang berkepentingan dalam memilih konfigurasi countermeasure S, maka dibuatlah grafik biaya total dan R ternormalisasi terhadap konfigurasi countermeasure. Grafik TC ternormalisasi dan R ternormalisasi terhadap konfigurasi countermeasure dapat dilihat pada Gambar IV.10.
74
1 0.8 0.6 0.4 0.2 0 -0.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-0.4 -0.6 -0.8
Gambar IV.10. Grafik TC ternormalisasi dan R ternormalisasi terhadap konfigurasi countermeasure Dari Gambar IV.10 dapat dipilih konfigurasi countermeasure ke-14 yang memiliki nilai TC=0,400546448 dan R=0,138882756. IV.3 Beberapa Kasus Lain Tinjau jaringan eksperimen pada Gambar IV.1. Tabel IV.1 menunjukkan bawa pada jaringan eksperimen terdapat enam (6) vulnerabilitas. Matriks konektivitas jaringan eksperimen dinyatakan sebagai persamaan 4.1. Beberapa kasus berikut diselesaikan dengan cara yang sama dengan cara yang dijelaskan pada Sub Bab IV.1. IV.3.1 Kasus I, Countermeasure: Vulnerabilitas V1 dihilangkan Untuk kasus vulnerabilitas V1 dihilangkan, diperoleh graf serangan status pada Gambar IV.11, graf serangan host pada Gambar IV.12 dan graf serangan vulnerabilitas pada Gambar IV.13. Dari Gambar IV.11, Gambar IV.12 dan Gambar IV.13 dapat dilihat bahwa metrik SHP (Shortest Host Path) bernilai 3, SVP (Shortest Vulnerability Path) bernilai 2, SWPP (Shortest Worst Performance Path) bernilai 3. Semakin besar nilai SHP, SVP dan SWPP maka semakin aman kondisi
jaringan
komputer.
Untuk
kasus
75
V1 dihilangkan,
maka
nilai
EVP=(5/5)x100% dan nilai VHP=(4/4)x100%. Semakin besar nilai EVP dan VHP, semakin tidak aman kondisi jaringan komputer.
Gambar IV.11. Graf Serangan Status jika vulnerabilitas V1 dihilangkan
Gambar IV.12. Graf Serangan Host jika vulnerabilitas V1 dihilangkan
76
Gambar IV.13. Graf Serangan Vulnerabilitas jika vulnerabilitas V1 dihilangkan
IV.3.2 Kasus II, Countermeasure: Vulnerabilitas V3 dan V4 dihilangkan Untuk kasus vulnerabilitas V3 dan V4 dihilangkan, diperoleh graf serangan status pada Gambar IV.14, graf serangan host pada Gambar IV.15 dan graf serangan vulnerabilitas pada Gambar IV.16.
Gambar IV.14. Graf Serangan Status jika vulnerabilitas V3 dan V4 dihilangkan
Gambar IV.15. Graf Serangan Host jika vulnerabilitas V3 dan V4 dihilangkan
77
Gambar IV.16. Graf Serangan Vulnerabilitas jika vulnerabilitas V3 dan V4 dihilangkan Dari Gambar IV.14, Gambar IV.15 dan Gambar IV.16 dapat dilihat bahwa metrik SHP (Shortest Host Path) bernilai 3, SVP (Shortest Vulnerability Path) bernilai 2, SWPP (Shortest Worst Performance Path) bernilai 3. Semakin besar nilai SHP, SVP dan SWPP maka semakin aman kondisi jaringan komputer. Untuk kasus V3 dan V4 dihilangkan, maka nilai EVP=(4/4)x100% dan nilai VHP=(3/4)x100%. Semakin besar nilai EVP dan VHP, semakin tidak aman kondisi jaringan komputer. IV.3.3 Kasus III, Countermeasure: Vulnerabilitas V5 dihilangkan Untuk kasus vulnerabilitas V5 dihilangkan, diperoleh graf serangan status pada Gambar IV.17, graf serangan host pada Gambar IV.18 dan graf serangan vulnerabilitas pada Gambar IV.19.
78
Gambar IV.17. Graf Serangan Status jika vulnerabilitas V5 dihilangkan
Gambar IV.18. Graf Serangan Host jika vulnerabilitas V5 dihilangkan
Gambar IV.19. Graf Serangan Vulnerabilitas jika vulnerabilitas V5 dihilangkan Dari Gambar IV.17, Gambar IV.18 dan Gambar IV.19 dapat dilihat bahwa metrik SHP (Shortest Host Path) bernilai 2, SVP (Shortest Vulnerability Path) bernilai 1, SWPP (Shortest Worst Performance Path) bernilai 3. Semakin besar nilai SHP, SVP dan SWPP maka semakin aman kondisi jaringan komputer. Untuk kasus V5 dihilangkan, maka nilai EVP=(5/5)x100% dan nilai VHP=(3/4)x100%. Semakin besar nilai EVP dan VHP, semakin tidak aman kondisi jaringan komputer.
79
IV.3.4 Kasus IV, Countermeasure: Vulnerabilitas V6 dihilangkan Untuk kasus vulnerabilitas V6 dihilangkan, diperoleh graf serangan status pada Gambar IV.20, graf serangan host pada Gambar IV.21.
Graf serangan
vulnerabilitas tidak ada karena tidak ada vulnerabilitas yang bisa dimanfaatkan oleh attacker.
Gambar IV.20. Graf Serangan Status jika vulnerabilitas V6 dihilangkan
Gambar IV.21. Graf Serangan Host jika vulnerabilitas V6 dihilangkan Karena Vulneabilitas V6 dihilangkan, maka tidak ada graf vulnerabilitas yang dapat dihasilkan. Attacker tidak dapat bergerak masuk ke dalam jaringan internal melalui IP0 karena pada IP0 sudah tidak terdapat vulnerabilitas V6, maka tidak ada nilai SWPP, SHP dan SVP. Untuk kasus V6 dihilangkan, maka nilai EVP=(5/5)x100% dan nilai VHP=(3/4)x100%. Semakin besar nilai EVP dan VHP, semakin tidak aman kondisi jaringan komputer. IV.4 Diskusi dan Analisa Berdasarkan eksperimen yang dilakukan pada Sub Bab IV.1 dan Sub Bab IV.2, jika ditinjau dari vulnerabilitas yang ada pada jaringan maka ada tiga kasus yang bisa ditinjau. Kasus pertama yaitu tidak ada vulnerabilitas pada jaringan Kasus kedua yaitu jumlah vulnerabilitas diantara nol dan tak hingga. Kasus ketiga yaitu jumlah vulnerabilitas sangat banyak sehingga dapat diasumsikan banyaknya vulnerabilitas berjumlah tak hingga. IV.4.1 Kasus I, Vulnerabilitas V=0 Untuk kasus tidak ada vulnerabilitas pada jaringan, maka V=0 sehingga diperoleh metrik-metrik EVP=0 dan VHP=0 demikian juga dengan metrik-metrik lainnya
80
akan bernilai nol sehingga bisa disimpulkan kondisi keamanan jaringan sangat aman. IV.4.2 Kasus II, Vulnerabilitas diantara Nol dan Tak Terhingga 0
keamanan
maksimal
jaringan
diperoleh
dengan
menghilangkan
vulnerabilitas V6 yang terdapat pada host IP1. Attacker tidak dapat menembus jaringan internal jika vulnerabilitas V6 dihilangkan karena aturan firewall menyebabkan attacker hanya dapat mengakses host IP1 pada jaringan internal.
81
Bab V
Kesimpulan dan Tindak Lanjut
V.1 Kesimpulan Dalam penelitian disertasi ini telah dihasilkan: 1. Grup metrik keamanan untuk mengukur keamanan jaringan yaitu: 1. SHP (Shortest Host Path) Metric. 2. SVP (Shortest Vulnerability Path) Metric. 3. SWPP (Shortest Worst Performance Path) Metric. 4. EVP (Exploited Vulnerability Percentage) Metric. 5. VHP (Vulnerable Host Percentage) Metric. Metrik-metrik keamanan berbasis graf serangan telah dihasilkan pada penelitian disertasi ini. Dalam menggambarkan derivasi dari metrik ini, penelitian yang dilakukan telah mengidentifikasi keterbatasan dari kelas metrik-metrik keamanan ini. Metrik-metrik keamanan ini diusulkan untuk melengkapi metrik keamanan berbasis graf yang sudah ada sebelumnya. Penerapan metrik keamanan baik secara terpisah maupun secara berkelompok untuk mengevaluasi keamanan jaringan juga dibahas. 2. Framework untuk mengevaluasi keamanan jaringan Penelitian ini bertujuan membuat suatu framework untuk mengevaluasi dan meningkatkan keamanan jaringan komputer yang lebih komprehensif. Framework ini tidak hanya menganalisis langkah-langkah serangan oleh penyusup pada suatu jaringan komputer dan menghasilkan grafnya saja. Namun juga menganalisis berbagai kombinasi countermeasure yang akan diterapkan dan menghitung resiko dan biaya total dari penerapan countermeasure itu. Kombinasi countermeasure ini dipilih berdasarkan kebutuhan pengguna. 3. Algoritma untuk membangun graf serangan Dalam penelitian disertasi ini juga dihasilkan suatu algoritma untuk membangun graf serangan status, graf serangan host dan graf serangan 82
vulnerabilitas. Graf status kinerja jaringan, graf akses host dan graf vulnerabilitas dibangun sebagai alat bantu untuk menghitung metrik-metrik keamanan jaringan pada suatu jaringan komputer. Pada penelitian disertasi ini telah berhasil dilakukan studi simulasi untuk berbagai kasus. Dalam penelitian simulasi pertama ditunjukkan bukti yang mendukung klasifikasi tentang metrik keamanan berbasis graf serangan. Studi simulasi juga memberikan wawasan tentang bagaimana dan kapan metrik-metrik keamanan jaringan ini sebaiknya digunakan untuk mengevaluasi keamanan jaringan. Dalam menerapkan metrik keamanan jaringan berbasis graf serangan pada program keamanan suatu organisasi, disertasi ini telah mengadopsi metrik-metrik secara praktis. Pada pembahasan mengenai keterbatasan metrik-metrik keamanan, disertasi ini menyajikan panduan yang dapat membantu para analis keamanan menggunakan metrik-metrik keamanan berbasis graf. V.2 Tindak Lanjut Sebagai tindak lanjut penelitian yaitu membuat model formal yang bisa menghasilkan graf serangan pada host secara individu.
Dengan menyajikan
model seperti itu akan mempermudah dalam mengevaluasi metrik keamanan jaringan pada sistem real. Dengan mengakses pada satu host, peneliti akan mempunyai kemampuan untuk menilai seberapa baik metrik keamanan yang berbeda bersesuaian dengan kecelakaan keamanan tanpa harus membangun jaringan secara keseluruhan.
Berdasarkan hasil-hasil yang sudah diperoleh dan dijelaskan sebelumnya, penulis menyarankan beberapa hal yang dapat dijadikan tindak lanjut dari disertasi ini: 1. Perlu penelitian lebih lanjut dalam menganalisis cost dan benefit dari penerapan berbagai kombinasi countermeasure. Penelitian lanjutan ini dapat memberikan rekomendasi yang lebih komprehensif dalam memilih kombinasi countermeasure. 2. Perlu penelitian lebih lanjut dalam mengimplementasikan framework termasuk metrik-metrik keamanan jaringan komputer dalam bentuk aplikasi. Aplikasi ini bisa didesain agar dapat men-scan vulnerabilitas yang ada pada 83
jaringan komputer dan selanjutnya melakukan analisis jalur serangan dan pemilihan kombinasi countermeasure. 3. Mengembangkan metode untuk menghitung benefit-cost rasio dari penerapan security countermeasure.
84
Daftar Pustaka Ahmed, M. S., Al-Shaer, E., Khan, E. (2008). A novel quantitative approach for measuring network security. Proceedings of IEEE INFO COM 2008. Chen, F., Liu, A., Zhang, Y., Su, J. (2010). A Scalable Approach to Analyzing Network Security using Compact Attack Graph. JOURNAL OF NETWORKS, VOL. 5, NO. 5. Furnell, S.M., Katsikas, S., Lopez, J., Patel, A. (2008). Securing Information and Communications Systems: Principles, Technologies, and Applications. Artech House, Inc. Hayden, L. (2010). IT Security Metrics. New York: The McGraw-Hill Companies. Hemanidhi, A., Chimmanee, S., Sanguansat, P. (2014). Network Risk Evaluation from Security Metric of Vulnerability Detection Tools. TENCON 2014 2014 IEEE Region 10 Conference. Bangkok. Herrmann, D. (2002). A Practical Guide to Security Engineering and Information Assurance. . Auerbach Publications. Homer, J., Varikuti, A., Ou, X. McQueen, M. A. (2008). Improving Attack Graph Visualization Through Data Reduction and Attack Grouping. . Workshop on Visualization for Computer Security (VizSEC). Hopkin, P. (2010). Fundamentals of Risk Management: Understanding, Evaluating and Implementing. The Institute of Risk Management. Husni, E. Kuspriyanto, Basjaruddin, N., Purboyo, T.W., Purwantoro, S., Ubaya, H. (2011). Efficient Tag-to-Tag Near Field Communication(NFC) Protocol for Secure Mobile Payment. Instrumentation, Communications, Information Technology, and Biomedical Engineering (ICICI-BME). Idika, N. C. (2010). Characterizing and Aggregating Attack Graph-Based Security Metrics. . PhD Dissertation. Purdue University. West Lafayette. Indiana. Ingols, K., Chu, M. Lippmann, R., Webster, S., Boyer, S. (2009). Modeling Modern Network Attacks and Countermeasures Using Attack Graphs. Annual Computer Security Applications Conference (ACSAC) 25th. Jaquith, A. (2007). Security metrics : replacing fear, uncertainty, and doubt. Pearson Education, Inc. Krautsevich, L., Martinelli, F., Yautsiukhin, A. (2010). Formal approach to security metrics: What does “more secure” mean for you? IEEE Paper. IEEE/ASME International Conference on Mechatronic and Embedded Systems and Application. Langweg, H. (2007). Software Security Metrics for Malware Resilience. PhD Dissertation. Bonn University. Lippmann, R., Ingols, K., Scott, C., Piwowarski, Kratkiewicz, K., Artz, M., Cunningham, R. (October 2006). Validating and restoring defense in depth using attack graphs. Military Communications Conference. Liu, M. Y. (2008). Quantitative Security Analysis for Service-Oriented Software Architectures. . PhD Dissertation. Department of Electrical and Computer Engineering. University of Victoria.
85
Matoušek, J., Bernd Gärtner, B. (2007). Understanding and Using Linear Programming. Springer Verlag. N. Idika, B. Marshall, and B. Bhargava. (Apr. 2009.). Maximizing Security given a Limited Budget. Proc. TAPIA ’09: Richard Tapia Celebration of Diversity in Computing,. Noel, S., Jajodia, S., O’Berry, B. and Jacobs, M. (2003). Efficient minimum-cost network hardening via exploit dependency graphs. In Proceedings of the 19th Annual Computer Security Applications Conference (ACSAC 2003). Ozment, A. (2007). Vulnerability Discovery & Software Security. PhD Dissertation. University of Cambridge. Patel, H. (2009). Intrusion Alerts Analysis Using Attack Graphs and Clustering. San Jose State University. Purboyo, T. W., Kuspriyanto. (2013, November 26-28). Methods for Strengthening a Computer Network Security. International Conference on Rural Information & Communication Technology and Electric-Vehicle Technology (rICT & ICeV-T). Purboyo, T. W., Kuspriyanto. (2012, August). Some Algorithms for Generating Attack Graph. International Journal of Advanced Research in Computer Science and Software Engineering, Volume 2(Issue 8). Purboyo, T. W., Kuspriyanto. (2013). A Review of Network Security Metrics. International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 3(Issue 9). Purboyo, T.W. Rahardjo, B. (2012, August). Attack Graph Based Security Metrics: State of the Art. International Journal of Science and Engineering Investigations, vol. 1(issue 7). Purboyo, T.W. Rahardjo, B. Kuspriyanto. (2012, September 11-12). Some Framework, Architecture and Approach for Analysis A Network Vulnerability. International Conference on System Engineering and Technology. Purboyo, T.W., Rahardjo B., Kuspriyanto., Detiena I.M. (March 2012.). (2012): A New Metrics for Predicting Network Security Level. Journal of Global Research in Computer Science (JGRCS), Vol. 3 No. 3 p. 68-72. Purboyo, T.W., Rahardjo, B., Kuspriyanto. (2011). Security Metrics: A Brief Survey. International Conference on Instrumentation, Communication, Information Technology and Biomedical Engineering. Bandung, Indonesia. Purboyo, T.W., Rahardjo, B., Kuspriyanto. (Nov.2011). Security Metrics: A Brief Survey. International Conference ICICI-BME 8-9. Puri, S. (2010). A risk assessment framework to reduce risk level and optimize software quality. , A Journal of Physical Sciences, Engineering and Technology, vol. 1, no. 1, pp. 33–39. Rahardjo, B. (2005). Keamanan Sistem Informasi Berbasis Internet, versi 5.4. PT. Insan Infonesia-Bandung & PT. Indocisc-Jakarta. Rosen, K. (2006). Discrete Mathematics and Its Applications. Sixth Edition. McGraw Hill International Edition. Schechter, S. E. (2004). Computer Security Strength & Risk: A Quantitative Approach. PhD Dissertation. The Division of Engineering and Applied Sciences. Harvard University. 86
Swanson, M., Bartol, N., Sabato, J., Hash, J., Graffo, L.i. (2003). Security metrics guide for information technology systems. Technical Report 800-55, National Institute of Standards and Technology, available via http://csrc.nist.gov/publications/nistpubs/800-55/sp800-55.pdf. Viduto, V., Maple, C., Huang, W., López-Peréz, D. (2012). A novel risk assessment and optimisation model for a multi-objective network security countermeasure selection problem. Decision Support Systems 53, pp. 599–610. Wang, L. Islam, T. Long, T. Singhal, A. Jajodia, S. (2008). An attack graph-based probabilistic security metric. DAS 2008, LNCS 5094, pp. 283–296. Wang, L. Singhal, A. Jajodia, S. (August 2007). Measuring overall security of network con-figurations using attack graphs. Data and Applications Security XXI, vol. 4602, pp. 98–112. Yautsiukhin, A. (2009). A Framework for Quantitative Security Analysis of Complex Business Systems. PhD Dissertation. International Doctorate School in Information and Communication Technologies (DIT). University of Trento.
87
RIWAYAT HIDUP Penulis dilahirkan pada tanggal 7 November 1973 di Purwokerto. Ia lulus dari SMA Negeri I Cianjur pada tahun 1992.
Ia memperoleh gelar Sarjana Fisika pada tahun 1998 di Jurusan Fisika Institut Teknologi Bandung dan gelar Sarjana Teknik Sipil pada tahun 2001 di Jurusan Teknik Sipil Universitas Gadjah Mada. Ia memperoleh gelar Magister pada tahun 2009 di Jurusan Matematika Institut Teknologi Bandung. Sejak tahun 2014 ia menjadi anggota staf pengajar di Program Studi Sistem Komputer Universitas Telkom.
Penulis menikah dengan Ultah Dianawati pada tahun 2003 dan mempunyai dua orang anak Rafi Athalla, 10 tahun, dan Ghani Naufal, 4 tahun.
Daftar publikasi: Jurnal Internasional: 1. Irawati, Purboyo, TW., Developing Computer Program for Computing Eigen pairs of 2x2 Matrices and 3x3 Upper Triangular Matrices Using The Simple Algorithm, Far East Journal of Mathematical Sciences (FJMS), Volume 56, Issue 2, p. 185-200, September 2011. 2. Purboyo, TW., Rahardjo, B., Kuspriyanto, I. M. Alamsyah, A New Metrics for Predicting Network Security Level, Journal of Global Research in Computer Science, Volume 3, No. 3, March 2012. 3. Purboyo, TW., Kuspriyanto, New Non Path Metrics for Evaluating Network Security Based on Vulnerability, International Journal of Computer Science Issues, Vol. 9, Issue 4, No 1, July 2012. 4. Purboyo, TW., Rahardjo, B., A Review of Key Length Selection Formula for Elliptic Curve Cryptosystems, International Journal of Advanced Research in Computer Science, Volume 3, No. 4, July- August 2012.
88
5. Purboyo, TW., Kuspriyanto, Attack Graph Based Security Metrics: State of The Art, International Journal of Science and Engineering Investigations, Vol. 1, Issue 7, August 2012. 6. Purboyo, TW., Kuspriyanto, Some Algorithms for Generating Attack Graph, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 2, Issue 8, August 2012. 7. Purboyo, TW., Kuspriyanto, A Survey on Network Security Hardening Models, International Journal of Application or Innovation in Engineering & Management, Volume 2, Issue 7, July 2013. 8. Purboyo, TW., Kuspriyanto, A Review of Network Security Metrics, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 3, Issue 9, September 2013. 9. Purboyo, TW., Kuspriyanto, A Framework for Analysis A Network Vulnerability, International Journal of Emerging Trends & Technology in Computer Science, Volume 2, Issue 4, July – August 2013. 10. Ardana, IGM., Purboyo, TW., Kuspriyanto, A Review on Voter Anonimity Methods, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 3, Issue 5, May 2013.
Konferensi Internasional : 1. Purboyo, TW., Rahardjo, B., Kuspriyanto. Security Metrics: A Brief Survey.
2011
International
Conference
on
Instrumentation,
Communication, Information Technology and Biomedical Engineering, Bandung, Indonesia, 8-9 November 2011. 2. Emir Husni, Kuspriyanto, Purboyo, TW., Efficient Tag-to-Tag Near Field Communication (NFC) Protocol for Secure Mobile Payment. 2011 International Conference on Instrumentation, Communication, Information Technology and Biomedical Engineering, Bandung, Indonesia, 8-9 November 2011.
89
Lampiran 1 Flowchart Inisiasi Data
1
s=0
Start
N, L, V, R
STAT[s, 0] =s i = 1 .. N
i = 1 .. N
VPN[i] = –1
STAT[s, i] = VPN[i]
i = 0 .. N
i = 0 .. N
STAT[s, N + 1 + i] = PRIV[i]
PRIV[i] = –1
i = src j = rand(1, N) j = L[i, j]
src = 0 PRIV[src] = 2
i = 1 .. N
N j=1 Y
PRIV[i] = PRIV[i] + L[src,i]
dest = j
1
2
90
3
Lampiran 2 Flowchart Implementasi Attack Rules
2
3
Rules = V[j, 2]
r = rand(1, 2)
PRIV[j] = R[r, 4]
i = 1 .. N
VPN[i] = VPN[i] + R[r, 5 + i]
PRIVs < MaxPriv
Y
N STATs
End
91
Lampiran 3 Keluaran Program Komputer Results # s 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
vpn1 -1 0 1 1 2 2 0 1 2 0 1 1 2 2 2 0 1 2 2 1 2 1 2 2 1 2 2 1 1 1 2 1 2 2 2 1 1 2 2 2 2 1 1 2 1
vpn2 -1 -1 0 0 0 1 -1 0 0 -1 -1 0 0 1 1 -1 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 1 -1 0 1 1 0 -1 0 1 1 0 0 0 0 0
vpn3 -1 -1 -1 0 1 1 0 0 1 0 1 -1 0 0 1 0 0 1 1 0 1 -1 0 1 -1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 -1 0 1 0
vpn4 -1 -1 -1 0 0 0 0 0 0 0 0 -1 -1 -1 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 -1 -1 0 0 -1 -1 -1 0 0 -1 -1 -1 0 0 -1 0 0 0
ip0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ip1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ip2 -1 0 0 0 1 2 0 0 1 0 1 0 1 2 2 0 0 1 2 0 1 0 1 1 0 1 1 1 2 2 2 1 1 2 2 0 1 1 2 2 1 0 0 1 0
ip3 -1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1
ip4 -1 0 2 2 2 2 0 2 2 0 0 2 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 0 0 0 2 0 2 2 2 2 0 2 2 2 2 2 2 2 2
S -1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 2 1 1 1 4
D -1 1 4 3 2 2 3 4 2 3 2 4 2 2 3 3 4 2 2 4 2 4 2 3 4 2 3 2 2 3 4 2 4 2 3 3 2 4 2 3 3 4 3 2 3
R 0 6 5 3 1 2 3 5 1 4 1 5 1 2 3 4 5 1 2 5 1 5 1 4 5 1 3 1 2 3 5 1 5 2 4 4 1 5 2 4 3 5 4 1 3
Some statuses are still duplicates from other status. Removing the duplicated status should also reorder the status number s and its reference sprev. The duplications are leaving here to show the link between statuses.
92
sprev -1 0 1 2 3 4 1 6 7 1 9 1 11 12 13 1 15 16 17 6 19 1 21 22 1 24 25 1 27 28 29 1 31 32 33 2 1 36 37 38 22 1 41 42 21
Lampiran 4 Listing Program Komputer /* agvpn.cpp Attack Graph based on Virtual Performance Node Sparisoma Viridi | [email protected] Tito Waluyo Purboyo | [email protected] Compile: g++ agvpn.cpp -o agvpn Execute: ./agvpn Note: Following files are required: attack-rules.txt vpns.txt links.txt ip-vuls.txt vulnerabilities.txt History: 20150627 Create this program (struct, array, vector) 20150628 Add vulnerability 0 for attacker. Change program name from vpn-simul to agvpn Notification where *.txt not available is not yet implemented Simulation results stuck if there is no available IP. It still can not go back in the search tree. 20150822 Try to understand (again) the code :-p. Found the problem, that using iteration of ip, always the last ip chosen. Try to change it with random ip. Simplify output style, comments uncecessary verbose output. Solve poblem finding dest_ip using random function [1604]. Problem by loosing ip to IP_NONE and randomly choose there new one, vpn and priv should be loaded from status. Create overload operator == for status struct. */ # # # # # # # #
include include include include include include include include
using
<sstream>
namespace std;
93
# define V_ROOT 0 # # # #
define define define define
P_DISC P_ACCS P_USER P_ROOT
-1 0 1 2
# define IP_NONE -1 # define VERBOSE false struct vulnerability { public: int id; string text; vulnerability(void); ~vulnerability(void); }; vulnerability::vulnerability(void) { id = -1; text = ""; } vulnerability::~vulnerability(void) { id = -1; text = ""; }
struct vpn { public: int id; string text; vpn(void); ~vpn(void); }; vpn::vpn(void) { id = -1; text = ""; } vpn::~vpn(void) { id = -1; text = ""; }
struct ipvuls { int ip; vector vuls; ipvuls(void); ~ipvuls(void); };
94
ipvuls::ipvuls(void) { int ip = -1; vuls.clear(); } ipvuls::~ipvuls(void) { int ip = -1; vuls.clear(); }
struct attackrule { int vid; int src; int desti; int destf; double prob; vector vpn; attackrule(void); ~attackrule(void); string strval(void); }; attackrule::attackrule(void) { vid = -1; src = -1; desti = -1; destf = -1; prob = 0.0; vpn.clear(); } attackrule::~attackrule(void) { vid = -1; src = -1; desti = -1; destf = -1; prob = 0.0; vpn.clear(); } string attackrule::strval(void) { stringstream ss; ss << vid << "\t"; ss << src << "\t"; ss << desti << "\t"; ss << destf << "\t"; ss << prob << "\t"; for(int iv = 0; iv < vpn.size(); iv++) { ss << vpn[iv]; if(iv < vpn.size() - 1) ss << "\t"; } return ss.str(); }
95
struct status { int cur; int prev; vector vpn; vector priv; int src; int dest; int rule; status(void); ~status(void); string strval(void); }; bool operator ==(const status si, const status sj) { bool value = true; bool e_src = (si.src == sj.src); bool e_dest = (si.dest == sj.dest); bool e_rule = (si.rule == sj.rule); value = value && e_src && e_dest && e_rule; for(int i = 0; i < si.vpn.size(); i++) { bool e_vpn = (si.vpn[i] == sj.vpn[i]); value = value && e_vpn; } for(int i = 0; i < si.priv.size(); i++) { bool e_priv = (si.priv[i] == sj.priv[i]); value = value && e_priv; } return value; } status::status(void) { cur = -1; prev = -1; vpn.clear(); priv.clear(); src = -1; dest = -1; rule = 0; } status::~status(void) { cur = -1; prev = -1; vpn.clear(); priv.clear(); src = -1; dest = -1; rule = 0; } string status::strval(void) { stringstream ss; //ss << prev << "\t"; for(int i = 0; i < vpn.size(); i++) { ss << vpn[i];
96
ss << "\t"; } for(int i = 0; i < priv.size(); i++) { ss << priv[i]; ss << "\t"; } ss << src << "\t"; ss << dest << "\t"; ss << rule << "\t"; ss << prev; return ss.str(); }
struct sag { vector<status> list; sag(void); ~sag(void); string content(void); }; sag::sag(void) { list.clear(); } sag::~sag(void) { list.clear(); } string sag::content(void) { stringstream ss; //ss << "# cur\tprev\t"; ss << "# s\t"; for(int i = 0; i < list[0].vpn.size(); i++) { int j = i + 1; ss << "vpn" << j << "\t"; } for(int i = 0; i < list[0].priv.size(); i++) { ss << "ip" << i; ss << "\t"; } ss << "S\tD\tR\tsprev" << endl; for(int i = 0; i < list.size(); i++) { ss << i << "\t"; ss << list[i].strval(); ss << endl; } return ss.str(); }
int main(int argc, char *argv[]) { srand(time(NULL)); if(VERBOSE) { cout << "# agvpn" << endl;
97
} // Read vulnerabilities description file const char *vulsfn = "vulnerabilities.txt"; ifstream vulsf; vulsf.open(vulsfn); int numvul = 0; while(vulsf.good()) { string line; getline(vulsf, line); if(line.length() > 0) numvul++; } vulsf.close(); vulsf.clear(); numvul /= 2; vulnerability vuls[numvul]; vulsf.open(vulsfn); int i = 0; while(vulsf.good()) { string line; getline(vulsf, line); if(line.length() > 0) { stringstream ss1; ss1 << line << endl; ss1 >> vuls[i].id; stringstream ss2; getline(vulsf, line); ss2 << line; vuls[i].text = ss2.str(); i++; } } vulsf.close(); if(VERBOSE) { cout << "Number of vulnerability types = "; cout << numvul << endl; for(int i = 0; i < numvul; i++) { cout << vuls[i].id << endl; cout << vuls[i].text << endl; } cout << endl; } // Read VPN description file const char *vpnfn = "vpns.txt"; ifstream vpnf; vpnf.open(vpnfn); int numvpn = 0; while(vpnf.good()) { string line; getline(vpnf, line); if(line.length() > 0) numvpn++; } vpnf.close(); vpnf.clear(); numvpn /= 2;
98
vpn vpns[numvpn]; vpnf.open(vpnfn); i = 0; while(vpnf.good()) { string line; getline(vpnf, line); if(line.length() > 0) { stringstream ss1; ss1 << line << endl; ss1 >> vpns[i].id; stringstream ss2; getline(vpnf, line); ss2 << line; vpns[i].text = ss2.str(); i++; } } vpnf.close(); if(VERBOSE) { cout << "Number of VPN types = "; cout << numvpn << endl; for(int i = 0; i < numvpn; i++) { cout << vpns[i].id << endl; cout << vpns[i].text << endl; } cout << endl; } // Read IP vulnerabilities rule file const char *ivfn = "ip-vuls.txt"; ifstream ivf; ivf.open(ivfn); int numip = 0; while(ivf.good()) { string line; getline(ivf, line); if(line.length() > 0) numip++; } ivf.close(); ivf.clear(); ipvuls V[numip]; ivf.open(ivfn); i = 0; while(ivf.good()) { string line; getline(ivf, line); if(line.length() > 0) { stringstream ss; ss << line; int ip; ss >> ip; V[i].ip = ip; ss >> line; char str[256]; strcpy(str, line.c_str()); char *vrule = strtok(str, ",");
99
while(vrule != NULL) { stringstream st; st << vrule; int rule; st >> rule; V[i].vuls.push_back(rule); vrule = strtok(NULL, ","); } i++; } } ivf.close(); if(VERBOSE) { cout << "Number of involved IPs = "; cout << numip << endl; for(int i = 0; i < numip; i++) { cout << V[i].ip << "\t{"; for(int j = 0; j < V[i].vuls.size(); j++){ cout << V[i].vuls[j]; if(j < V[i].vuls.size() - 1) cout << ","; } cout << "}" << endl; } cout << endl; } // Read link matrix file const char *lfn = "links.txt"; ifstream lf; lf.open(lfn); int links = 0; while(lf.good()) { string line; getline(lf, line); if(line.length() > 0) links++; } lf.close(); lf.clear(); const int N = links; int L[N][N]; lf.open(lfn); i = 0; while(lf.good()) { string line; getline(lf, line); if(line.length() > 0) { stringstream ss; ss << line; for(int j = 0; j < N; j++) { ss >> L[i][j]; } i++; } } lf.close();
100
if(VERBOSE) { cout << "Number of possible links = "; cout << N * N << endl; for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { cout << L[i][j] << "\t"; } cout << endl; } cout << endl; } // Read attack rules file const char *atfn = "attack-rules.txt"; ifstream atf; atf.open(atfn); int numatr = 0; while(atf.good()) { string line; getline(atf, line); if(line.length() > 0) numatr++; } atf.close(); atf.clear(); attackrule R[numatr]; atf.open(atfn); i = 0; while(atf.good()) { string line; getline(atf, line); if(line.length() > 0) { stringstream ss; ss << line; ss >> R[i].vid; ss >> R[i].src; ss >> R[i].desti; ss >> R[i].destf; ss >> R[i].prob; for(int iv = 0; iv < numvpn; iv++) { int avpn; ss >> avpn; R[i].vpn.push_back(avpn); } i++; } } atf.close(); if(VERBOSE) { cout << "Number of attack rules = "; cout << numatr << endl; for(int i = 0; i < numatr; i++) { cout << R[i].strval() << endl; } cout << endl; }
101
// Define array attacker privilege on all IPs int priv[numip]; for(int i = 0; i < numip; i++) { // Initialize with default privilege priv[i] = P_DISC; } // Find attacker IP for(int ip = 0; ip < numip; ip++) { for(int iv = 0; iv < V[ip].vuls.size(); iv++) { int vid = V[ip].vuls[iv]; if(vid == V_ROOT) { priv[ip] = P_ROOT; } } } // Find available destination IP using link matrix for(int ip = 0; ip < numip; ip++) { int src_ip = IP_NONE; for(int i = 0; i < numip; i++) { if(priv[i] == P_ROOT) { src_ip = i; } } int link = L[src_ip][ip]; if(link == 1 && ip != src_ip) { priv[ip] = P_ACCS; } } // Initiate first status status s; s.cur = 1; s.prev = -1; for(int i = 0; i < numvpn; i++) { s.vpn.push_back(-1); } for(int ip = 0; ip < numip; ip++) { s.priv.push_back(priv[ip]); } sag table; table.list.push_back(s); int prev = 0; // Status status ss = s; // Initial IP int src_ip = IP_NONE; int dest_ip = IP_NONE; // Maximum can not finding target IP int max_no_ip = 100; int no_ip = 0;
102
// Iterating attack process int tmax = 10000; for(int t = 0; t < tmax; t++) { while(src_ip == IP_NONE) { int ip = rand() % numip; if(priv[ip] > P_ACCS) { src_ip = ip; } } int ip = rand() % numip; int link = L[src_ip][ip]; while(dest_ip == IP_NONE || dest_ip == src_ip || link == 0) { link = L[src_ip][ip]; if(priv[ip] > P_DISC && priv[ip] <= priv[src_ip] && ip != src_ip && link == 1) { dest_ip = ip; } no_ip++; if(no_ip > max_no_ip) { no_ip = 0; break; } ip = rand() % numip; link = L[src_ip][ip]; } if(src_ip == 0 && dest_ip > 1) { cout << prev << " "; cout << src_ip << " " << dest_ip << endl; cout << L[src_ip][dest_ip] << endl; }
vector rules; rules.clear(); for(int ip = 0; ip < numip; ip++) { if(V[ip].ip == dest_ip) { for(int iv = 0; iv < V[ip].vuls.size(); iv++) { rules.push_back(V[ip].vuls[iv]); } } } // Choose among multipe rules using random int Nir = rules.size(); int ir = rand() % Nir; int rulenum = rules[ir]; // Get appropriate attack rule attackrule rule;
103
for(int ir = 0; ir < numatr; ir++) { if(R[ir].vid == rulenum) { rule = R[ir]; } } // Update status bool SRC_OK = (priv[src_ip] >= rule.src); bool DEST_OK = (priv[dest_ip] == rule.desti); if(SRC_OK && DEST_OK) { ss.src = src_ip; ss.dest = dest_ip; ss.rule = rules[ir]; ss.prev = prev; // Change VPN in status for(int iv = 0; iv < ss.vpn.size(); iv++) { ss.vpn[iv] += rule.vpn[iv]; } priv[dest_ip] = rule.destf; if(t == 0) { src_ip = dest_ip; for(int ip = 0; ip < numip; ip++) { int link = L[src_ip][ip]; if(link == 1 && ip != src_ip && priv[ip] < P_ACCS) { priv[ip] = P_ACCS; } } } // Change PRIV in status ss.priv.clear(); for(int ip = 0; ip < numip; ip++) { ss.priv.push_back(priv[ip]); } // Check whether it is already have the same or not bool NEW_STATUS = true; for(int is = 0; is < table.list.size(); is++) { status ssi = table.list[is]; if(ss == ssi) { NEW_STATUS = false; } } //if(NEW_STATUS) { ss.cur = table.list.size(); table.list.push_back(ss); prev = ss.cur; //} else {
104
// //}
cout << "duplicate" << endl;
// Loose destination ip dest_ip = IP_NONE; } else { no_ip++; // Loose source ip if(no_ip > max_no_ip) { src_ip = IP_NONE; no_ip = 0; while(src_ip == IP_NONE) { int Ns = table.list.size(); int is = 1 + rand() % (Ns - 2); ss = table.list[is]; int ip = ss.dest; if(priv[ip] > P_ACCS) { src_ip = ip; // Get a status from table for(int ip = 0; ip < numip; ip++) { priv[ip] = ss.priv[ip]; } prev = ss.cur; } } } } } // Removing duplicate status
// Show the results cout << table.content(); cout << endl; return 0;
}
105