analisis kinerja intrusion prevention system pada ubuntu
TRANSCRIPT
ANALISIS KINERJA INTRUSION PREVENTION
SYSTEM PADA UBUNTU SERVER UNTUK
MENANGANI SERANGAN BRUTE FORCE
MENGGUNAKAN BASH SCRIPT DISERTAI
NOTIFIKASI TELEGRAM
LAPORAN SKRIPSI
MOHAN MAULANA SAPUTRA 4616030028
PROGRAM STUDI TEKNIK MULTIMEDIA DAN JARINGAN
JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER
POLITEKNIK NEGERI JAKARTA
2020
ANALISIS KINERJA INTRUSION PREVENTION
SYSTEM PADA UBUNTU SERVER UNTUK
MENANGANI SERANGAN BRUTE FORCE
MENGGUNAKAN BASH SCRIPT DISERTAI
NOTIFIKASI TELEGRAM
LAPORAN SKRIPSI
Dibuat untuk Melengkapi Syarat-Syarat yang diperlukan untuk
Memporoleh Sarjana Terapan Politeknik
MOHAN MAULANA SAPUTRA
4616030028
PROGRAM STUDI TEKNIK MULTIMEDIA DAN JARINGAN
JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER
POLITEKNIK NEGERI JAKARTA
2020
ii
HALAMAN PERNYATAAN ORISINALITAS
iii
LEMBAR PENGESAHAN
iv
KATA PENGANTAR
Puji syukur saya panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan
rahmat-Nya, penulis dapat menyelesaikan Skipsi ini. Penulisan Skripsi ini
dilakukan dalam rangka memenuhi salah satu syarat untuk mencapai gelar Diploma
Empat Politeknik.
Skripsi ini berisi tentang Analisis Kinerja Intrusion Prevention System pada Ubuntu
Server untuk Menangani Serangan Brute force Menggunakan Bash Script disertai
Notifikasi Telegram. Penulis menyadari bahwa, tanpa bantuan dan bimbingan dari
berbagai pihak, dari masa perkuliahan sampai pada penyusunan skripsi ini,
sangatlah sulit bagi penulis untuk menyelesaikan skripsi ini. Oleh karena itu,
penulis mengucapkan terima kasih kepada:
1. Mauldy Laya, S.Kom, M.Kom, selaku Ketua Jurusan Teknik Informatika
dan Komputer Politeknik Negeri Jakarta;
2. Defiana Arnaldy, S.Tp., M.Si. selaku Kepala Program Studi Teknik
Multimedia dan Jaringan Jurusan Teknik Informatika dan Komputer
Politeknik Negeri Jakarta dan juga selaku dosen pembimbing yang telah
menyediakan waktu, tenaga, dan pikiran untuk mengarahkan penulis dalam
penyusunan skripsi ini;
3. Orang tua dan keluarga penulis yang telah memberikan bantuan dukungan
material dan moral; dan
4. Sahabat yang telah banyak membantu penulis dalam menyelesaikan skripsi
ini.
Akhir kata, penulis berharap Tuhan Yang Maha Esa berkenan membalas segala
kebaikan semua pihak yang telah membantu. Semoga skripsi ini membawa manfaat
bagi pengembangan ilmu.
Depok, Juli 2020
Penulis
v
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
UNTUK KEPENTINGAN AKADEMIS
vi
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Analisis Kinerja Intrusion Prevention System pada Ubuntu Server untuk
Menangani Serangan Brute force Menggunakan Bash Script disertai
Notifikasi Telegram
Abstrak
Informasi merupakan sebuah aset yang memiliki nilai seperti aset lain. Sebagai sebuah
aset, informasi perlu diamankan dari sebuah serangan. Salah satu jenis serangan cyber
adalah serangan Brute force. Ketika seorang penyerang berhasil melakukan otentikasi
pada suatu sistem dengan menggunakan serangan Brute force, maka penyerang tersebut
dapat melakukan tindakan yang mengancam sistem tersebut. Penelitian ini
mengembangkan Instrusion Prevention System untuk mendeteksi dan menangani serangan
Brute Force menggunakan bahasa Bash. Sistem dibangun pada sistem operasi linux
Ubuntu Server versi 19.10. Sistem juga dirancang untuk dapat mengirim notifikasi melalui
telegram bila serangan Brute Force terdeteksi. Hasil penelitian penelitian menunjukan
bahwa sistem dapat menangani serangan Brute Force dan membedakan antara
serangan Brute Force dengan kegagalan login yang dianggap wajar dengan tingkat
keakuratan sebesar 100%. Sistem juga dapat mengirim notifikasi melalui telegram
ketika serangan Brute Force terdeteksi dan tidak mengirim notifikasi ketika terjadi
kegagalan login yang dianggap wajar dengan tingkat keberhasilan sebesar 100%. Rata-rata waktu yang diperlukan oleh sistem dalam merespon serangan Brute Force
adalah 15,035 detik dan rata-rata waktu yang diperukan untuk mengirim notifikasi
telegram adalah 2,82 detik. Sistem juga mampu menangani sejumlah serangan Brute Force
dalam waktu yang bersamaaan, dengan variasi jumlah serangan antara 2 sampai 6
serangan.
Kata kunci : Bash, Brute force, Intrusion Prevention System, Telegram, Ubuntu.
vii
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
DAFTAR ISI
1
HALAMAN PERNYATAAN ORISINALITAS .................................................... ii
LEMBAR PENGESAHAN ................................................................................... iii
KATA PENGANTAR ........................................................................................... iii
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI UNTUK
KEPENTINGAN AKADEMIS .............................................................................. v
ABSTRAK ............................................................................................................. vi
DAFTAR ISI ......................................................................................................... vii
DAFTAR TABEL ................................................................................................... x
DAFTAR GAMBAR ............................................................................................. xi
DAFTAR LAMPIRAN ......................................................................................... xii
BAB I.......................................................................................................................1
PENDAHULUAN .................................................................................................. 1
1.1 Latar Belakang ............................................................................................. 1
1.2 Perumusan Masalah ..................................................................................... 4
1.3 Batasan Masalah........................................................................................... 4
1.4 Tujuan dan Manfaat ..................................................................................... 4
1.5 Metode Penyelesaian Masalah ..................................................................... 4
1.5.1 Pengumpulan Data ....................................................................................... 5
1.5.2 Analisis Kebutuhan ...................................................................................... 5
1.5.3 Perancangan ................................................................................................. 5
1.5.4 Implementasi ................................................................................................ 5
1.5.5 Pengujian ...................................................................................................... 5
1.5.6 Analisis Hasil Pengujian .............................................................................. 5
BAB II.....................................................................................................................6
TINJAUAN PUSTAKA ........................................................................................ 6
2.1 Keamanan Jaringan ...................................................................................... 6
2.2 Brute force .................................................................................................... 7
2.3 SSH (Secure Shell) ....................................................................................... 8
2.4 SSH Brute force ........................................................................................... 8
viii
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
2.5 Linux ............................................................................................................ 9
2.6 Ubuntu ........................................................................................................ 10
2.7 Kali Linux .................................................................................................. 10
2.8 Medusa ....................................................................................................... 10
2.9 Intrustion Prevention System (IPS) ............................................................ 11
2.10 Firewall ...................................................................................................... 12
2.11 Bash ............................................................................................................ 13
2.12 Telegram .................................................................................................... 14
2.13 Bot Telegram .............................................................................................. 14
2.14 Flowchart ................................................................................................... 15
2.15 Penelitian Sejenis ....................................................................................... 16
BAB III................................................................................................................. 18
PERENCANAAN DAN REALISASI ................................................................ 18
3.1 Perancangan Sistem ................................................................................... 18
3.1.1 Deskripsi Sistem ........................................................................................ 18
3.1.2 Cara kerja Sistem ....................................................................................... 18
3.1.3 Rancangan Sistem Pengujian ..................................................................... 20
3.1.4 Spesifikasi perangkat dan software/tools ................................................... 20
3.2 Realisasi Sistem ......................................................................................... 21
3.2.1 Konfigurasi Jaringan .................................................................................. 21
3.2.2 Pembuatan Bash Script .............................................................................. 25
3.2.3 Pembuatan Service ..................................................................................... 28
3.2.4 Pembuatan Log File ................................................................................... 29
3.2.5 Pembuatan Bot Telegram ........................................................................... 30
BAB IV ................................................................................................................ 36
PEMBAHASAN .................................................................................................. 36
4.1 Pengujian .................................................................................................... 36
4.2 Deskripsi Pengujian ................................................................................... 36
4.3 Prosedur Pengujian .................................................................................... 36
4.4 Data Hasil Pengujian .................................................................................. 38
4.4.1. Data Pengujian Parameter Fungsional ....................................................... 38
ix
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
4.4.2. Data Pengujian Parameter Response Time ................................................. 41
4.4.3. Data Hasil Pengujian Parameter Kapasitas ................................................ 44
4.5 Analisis Data .............................................................................................. 46
4.5.1. Analisis Data Pengujian Parameter Fungsional ......................................... 46
4.5.2. Analisis Data Pengujian Paramater Response Time ................................... 49
4.5.3. Analisis Data Pengujian Parameter Kapasitas ........................................... 49
BAB V .................................................................................................................. 51
PENUTUP ............................................................................................................ 51
5.1. Kesimpulan ................................................................................................ 51
5.2. Saran ........................................................................................................... 51
DAFTAR PUSTAKA ........................................................................................... 52
x
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
DAFTAR TABEL
Tabel 1. Konfigurasi jaringan untuk kali linux 2019 ............................................ 22
Tabel 2. Konfigurasi jaringan untuk ubuntu 19.10 ............................................... 24
Tabel 3. Potongan skrip untuk memeriksa login log............................................. 25
Tabel 4. Potongan skrip yang berisi fungsi deteksi() ............................................ 26
Tabel 5. Potongan skrip yang berisi fungsi notifToTelegram() ............................ 28
Tabel 6. Isi file dari service yang dibuat untuk menjalankan bash script ............. 29
Tabel 7 Perencanaan Pengujian Parameter Fungsional ........................................ 37
Tabel 8 Perencanaan Pengujian Parameter Response Time ................................. 37
Tabel 9 Perencanaan Pengujian Parameter Kapasitas ........................................... 38
Tabel 10 Data pengujian serangan Brute Force .................................................... 39
Tabel 11. Data pengujian kegagalan login yang dianggap wajar.......................... 41
Tabel 12. Data waktu penanganan serangan ......................................................... 43
Tabel 13. Data waktu pengiriman notifikasi melalui telegram ............................. 44
Tabel 14. Data pengujian ketika sejumlah serangan Brute Force dilakukan dalam
waktu yang bersamaan .......................................................................................... 46
Tabel 15. Tabel confusion matrix untuk mengukur keakuratan sistem ................ 47
Tabel 16. Hasil pencocokan antara data pengujian serangan dengan tabel
confusion matrix.................................................................................................... 47
Tabel 17. Hasil pencocokan antara data kegagalan login yang dianggap wajar
dengan tabel confusion matrix .............................................................................. 47
Tabel 18. Penggabungan data antara tabel 16 dan tabel 17 .................................. 48
xi
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
DAFTAR GAMBAR
Gambar 1. 1 Grafik Global Hostile Activity menurut Global Threat Intelligence
Report tahun 2019 ................................................................................................... 2
Gambar 1. 2 Persentase penggunaan sistem operasi linux oleh website ................. 3
Gambar 2. 1 Ilustrasi Firewall .............................................................................. 13
Gambar 2. 2 Simbol-simbol Flowchart ................................................................ 16
Gambar 3. 1 Flowchart cara kerja sistem yang dibangun ..................................... 19
Gambar 3. 2 Rancangan sistem yang digunakan .................................................. 20
Gambar 3. 3 Tampilan awal ketika membuka BotFather pada aplikasi Telegram 30
Gambar 3. 4 Tampilan informasi yang muncul setelah memulai BotFather ........ 31
Gambar 3. 5 Tampilan dialog proses pemberian nama dan username pada
BotFather ............................................................................................................... 32
Gambar 3. 6 Tampilan dialog chat dari Bot Telegram yang telah dibuat ............. 32
Gambar 3. 7 Data JSON yang didapat setelah mengirim request getUpdates
menggunakan token bot yang telah dibuat sebelumnya ke API Telegram ........... 33
Gambar 3. 8 Pengiriman request sendMessage pada bot ke API Telegram ......... 34
Gambar 3. 9 Pesan dengan teks “hello” yang diterima oleh user dari bot ............ 35
Gambar 4. 1 Log ketika sistem mendeteksi sebuah serangan Brute Force ........... 39
Gambar 4. 2 Notifikasi telegram ketika sistem mendeteksi sebuah serangan Brute
Force ..................................................................................................................... 39
Gambar 4. 3 Log ketika terjadi kegagalan login yang dianggap wajar ................. 40
Gambar 4. 4 Tidak ada notifikasi yang dikirimkan pada saat terjadi kegagalan
login yang dianggap wajar .................................................................................... 40
Gambar 4. 5 Waktu ketika serangan datang dan waktu ketika alamat IP penyerang
diblokir .................................................................................................................. 41
Gambar 4. 6 Tangkapan Packet dari notifikasi yang dikirim dari telegram ......... 42
Gambar 4. 7 Rincian Tangkapan Packet dari notifikasi yang dikirim dari telegram
............................................................................................................................... 43
Gambar 4. 8 Log ketika sistem mendeteksi serangan Brute Force sebanyak 2 kali
dalam waktu yang bersamaan ............................................................................... 44
Gambar 4. 9 Notifikasi melalui telegram ketika 2 serangan Brute Force terdeteksi
dalam waktu yang bersamaan ............................................................................... 45
xii
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
DAFTAR LAMPIRAN
Daftar Riwayat Hidup Penulis...............................................................................L1
Skrip Bash Untuk Medeteksi dan Mengangani Serangan Brute Force.................L2
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Saat ini sudah memasuki sebuah jaman yang disebut information age. Informasi
merupakan sebuah aset yang memiliki nilai seperti aset lain. Sebagai sebuah aset,
informasi perlu diamankan dari sebuah serangan. Untuk menjadi aman, informasi
harus menjadi tersembunyi dari unauthorized access, terlindungi dari unauthorized
change, dan tersedia untuk entitas yang memiliki izin ketika informasi itu
dibutuhkan. (Forouzan, 2010)
Salah satu jenis serangan cyber adalah serangan Brute force. Serangan Brute force
merupakan sebuah serangan cyber yang mencoba melakukan otentikasi terhadap
suatu sistem dengan mencoba menebak password menggunakan berbagai
kemungkinan. Kemungkinan-kemungkinan itu dapat berupa kombinasi huruf,
angka, ataupun simbol yang ditentukan secara manual ataupun menggunakan
sebuah file teks yang berisi sekumpulan password. File teks ini sering disebut
sebagai word list.
Ketika seorang penyerang berhasil melakukan otentikasi pada suatu sistem dengan
menggunakan serangan Brute force, maka penyerang tersebut dapat melakukan
tindakan yang mengancam sistem tersebut seperti mencuri data, melumpuhkan
sistem, atau melakukan jenis serangan lain.
Menurut Global Threat Intelligence Report tahun 2019 yang dikeluarkan oleh
NTTSecurity (NTTSecurity, 2019), serangan Brute force menempati posisi
keempat pada hostile traffic secara global. Laporan ini menunjukan bahwa serangan
Brute force masih menjadi ancaman yang cukup serius bagi suatu sistem atau
jaringan.
2
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 1. 1 Grafik Global Hostile Activity menurut Global Threat Intelligence Report tahun 2019
(Sumber: Global Threat Intelligence Report tahun 2019 oleh NTTSecurity)
Gambar 1.1 menunjukan persentase serangan Brute Force pada hostile traffic
secara global sebesar 12%.
Oleh karena itu, diperlukan suatu keamanan yang menjadi satu kesatuan dari sistem
untuk mendeteksi dan menangani serangan Brute force sebagai upaya pencegahan
sebelum serangan Brute force berhasil melakukan otentikasi pada suatu sistem.
Intrusion Prevention System (IPS) merupakan pendekatan yang sering digunakan
untuk membangun sistem keamanan komputer, IPS mengombinasikan teknik
firewall dan metode Intrusion Detection System (IDS). (Pradipta & Asmunin,
2017). Oleh karenanya, IPS dapat menjadi solusi untuk permasalahan tersebut
dikarenakan tidak hanya memiliki peran sebagai pendeteksi serangan terhadap
suatu sistem namun juga mampu melakukan pencegahan terhadap serangan yang
datang. Dalam penelitian ini, implementasi IPS dilakukan pada sistem operasi
berbasis linux.
Menurut hasil survei yang dilakukan oleh w3techs (w3techs, 2020), menyatakan
bahwa sistem operasi ubuntu merupakan sistem operasi berbasis linux yang paling
banyak digunakan oleh website. Persenstase penggunaan sistem operasi ubuntu
oleh website dibandingkan dengan sistem operasi berbasis linux lainnya yaitu
sebesar 44.2%.
3
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 1. 2 Persentase penggunaan sistem operasi linux oleh website
(Sumber: https://w3techs.com/technologies/details/os-linux)
Gambar 1.2 menunjukan keseluruhan hasil survei yang dilakukan oleh w3techs
mengenai penggunaan sistem operasi berbasis linux yang digunakan oleh website.
Berdasarkan data tersebut, implementasi IPS dilakukan pada sistem operasi linux
ubuntu. Sistem operasi linux ubuntu yang digunakan yaitu ubuntu versi 19.10.
Implementasi IPS dilakukan menggunakan bahasa scripting bash. Bahasa scripting
bash merupakan bahasa shell scripting yang secara default digunakan oleh sistem
operasi linux ubuntu. Sistem yang dibuat juga dirancang agar mampu memberikan
notifikasi melalui telegram bila mendeteksi adanya serangan Brute Force.
Penelitian ini bertujuan untuk menganalisa kinerja IPS dalam mendeteksi dan
menangani serangan Brute Force pada sistem operasi linux menggunakan bash
script.
4
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
1.2 Perumusan Masalah
Perumusan masalah yang ditentukan untuk penelitian ini adalah:
• Bagaimana mengimplementasikan IPS untuk menangani serangan Brute Force
pada sistem operasi linux menggunakan bash script.
• Bagaimana kinerja dari IPS pada sistem operasi linux yang dibangun
menggunakan bash script.
1.3 Batasan Masalah
Batasan masalah yang ditentukan dalam penelitian ini adalah sebagai berikut:
a. Penelitian yang dilakukan bersifat eksperimental dimana sistem dijalankan pada
lingkungan virtual menggunakan aplikasi Oracle VM Virtualbox versi 6.0.1
sesuai dengan skenario yang telah dibuat.
b. Sistem IPS dibangun hanya untuk mendeteksi dan mencegah serangan Brute
force.
c. Pengukuran kinerja sistem dilakukan dengan pengujian Parameter Fungsional,
Response Time, dan Kapasitas.
d. Menggunakan sistem operasi linux Ubuntu server 19.10.
1.4 Tujuan dan Manfaat
Tujuan dari penelitian ini adalah sebagai berikut:
a. Mengimplementasikan IPS untuk menangani serangan Brute Force pada sistem
operasi linux menggunakan bash script.
b. Menganalisa kinerja dari IPS pada sistem operasi linux yang dibangun
menggunakan bash script.
Manfaat dari penelitian ini yaitu sebagai berikut:
a. Mengetahui apakah IPS yang dibangun dengan bash script untuk menangani
serangan bruteforce memiliki kinerja yang handal.
b. Dapat menjadi opsi bagi sistem administrator untuk mencegah sistem dari
serangan Brute Force.
1.5 Metode Penyelesaian Masalah
Penelitian ini dilakukan dengan metode sebagai berikut:
5
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
1.5.1 Pengumpulan Data
Pengumpulan data dilakukan dengan cara mencari data atau informasi terkait
masalah yang dijadikan topik penelitian melalui tinjauan pustaka yang berasal dari
buku-buku atau jurnal-jurnal penelitian.
1.5.2 Analisis Kebutuhan
Setelah tahap pengumpulan data atau informasi telah selesai, tahapan selanjutnya
yaitu menganalisis hardware dan software yang dibutuhkan oleh penelitian ini.
1.5.3 Perancangan
Melakukan penyusunan atau perancangan skenario berdasarkan pada data atau
informasi yang telah didapat pada tahapan sebelumnya.
1.5.4 Implementasi
Melakukan implementasi berdasarkan hasil perancangan atau skenario yang telah
dibuat pada tahapan sebelumnya.
1.5.5 Pengujian
Melakukan pengujian terhadap sistem IPS yang telah dibangun. Pengujian yang
dilakukan pada sistem IPS yang telah dibangun berupa pengujian Fungsional,
Response Time, dan Kapasitas.
1.5.6 Analisis Hasil Pengujian
Melakukan analisa dari hasil pengujian yang telah didapat. Hasil analisa dapat
dijadikan kesimpulan dari penelitian yang dilakukan.
6
BAB II
TINJAUAN PUSTAKA
2.1 Keamanan Jaringan
Keamanan jaringan merupakan upaya perlindungan yang diberikan kepada sistem
informasi untuk mencapai tujuan dalam menjaga integritas, ketersediaan, dan
kerahasiaan sumber daya sistem informasi (termasuk perangkat keras, perangkat
lunak, firmware, informasi / data, dan telekomunikasi). (Stallin, 2015)
Oleh karenanya, perihal keamanan jaringan pada suatu sistem menjadi sesuatu yang
sangat penting. Upaya perlindungan yang diberikan kepada suatu sistem tidak
hanya sekedar memperbaiki segala sesuatu yang sudah dirusak oleh pihak lain,
tetapi juga harus memiliki kemampuan untuk mencegah ancaman yang datang
sebelum risiko-risiko keamanan itu terjadi.
Menurut Forouzan dalam bukunya yang berjudul tcp/ip protocol suite (Forouzan,
2010), membagi security goals menjadi seperti berikut:
a. Confidentiality
Confidentiality merupakan sebuah aspek yang paling umum dalam keamanan
informasi. Informasi yang bersifat confidential perlu dilindungi. Sebuah organisasi
perlu dilindungi dari tindakan jahat yang dapat membahayakan informasi
confidential yang dimiliki. confidentiality tidak hanya diterpakan pada informasi
yang tersimpan, tetapi juga diterapkan pada informasi yang sedang dikirim.
b. Integrity
Sebuah informasi perlu berubah sewaktu-watku. Integrity memiliki arti bahwa
sebuah perubahan yang diperlukan hanya dapat dilakukan oleh entitas yang
diijinkan dan melalui sebuah mekanisme yang diijinkan pula.
c. Availability
Sebuah informasi yang dibuat dan disimpan oleh sebuah organisasi harus tersedia
untuk entitas yang diijinkan. Informasi menjadi tidak bermanfaat bila tidak bisa
diakses atau tidak tersedia. Sebuah informasi perlu berubah sewaktu-waktu, yang
mana itu artinya informasi dapat diakses oleh entitas yang diijinkan.
7
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Pembagian goals dalam keamanan jaringan dapat membuat penyedia sistem
informasi mengetahui hal apa saja yang harus menjadi fokus dalam meningkatkan
keamanan jaringan. Penelitian ini berfokus kepada upaya pencegahan terhadap
serangan yang mencoba memasuki suatu sistem atau dapat dikatakan berfokus pada
sisi Confidentiality.
Ada beberapa macam ancaman keamanan yang dapat menimpa penyedia sistem
informasi (Fahana, et al., 2017), diantaranya:
a. Interuption
Interuption merupakan sebuah ancaman yang dapat menyebabkan sistem menjadi
rusak atau tidak tersedia. Serangan dari ancaman ini mengarah pada ketersediaan
sumber daya yang ada pada sistem, sehingga informasi dan data yang ada di
dalamnya tidak dapat diakses sebagaimana mestinya.
b. Interception
Interception merupakan sebuah ancaman yang mengganggu kerahasiaan dari suatu
sistem. Serangan dari ancaman ini dapat menyebabkan pihak tidak berwenang dapat
mengakses aset dan informasi yang ada pada suatu sistem.
c. Modification
Modification merupakan sebuah ancaman yang menganggu integritas dari suatu
sistem. Serangan dari ancaman ini dapat menyebabkan pihak yang tidak berwenang
dapat melakukan perubahan terhadap data atau informasi dari suatu sistem.
d. Fabrication
Fabrication merupakan sebuah ancaman yang mengarah pada keaslian suatu data
atau informasi. Serangan dari ancaman ini dapat membuat suatu data atau informasi
palsu yang seolah-olah berasal dari penyedia sistem informasi.
Semua ancaman keamanan jaringan diatas dapat terjadi apabila suatu sistem dapat
dimasuki oleh pihak yang tidak sah. Maka dari itu, pencegehan terhadap upaya
percobaan serangan Brute Force harus dilakukan sedini mungkin.
2.2 Brute force
Brute force adalah algoritma yang memecahkan masalah dengan sangat sederhana,
langsung dan dengan cara yang jelas/lempang. Dalam password cracking,
8
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
algoritma Brute Force bekerja dengan cara menempatkan dan mencari semua
kemungkinan kode dengan masukan karakter dan panjang kode tertentu. Algoritma
Brute Force adalah algoritma yang lempang atau apa adanya. Pengguna hanya
tinggal mendefinisikan karakter set yang diinginkan dan berapa ukuran dari
kodenya. Tiap kemungkinan kode akan di-generate oleh algoritma ini. (Gunawan,
2016)
Dapat dikatakan bahwa Brute Force dalam password cracking mencoba sejumlah
kemungkinan password yang berkisar ribuan, ratusan ribu, atau bahkan jutaan
untuk dicocokan dengan password telah diatur dalam sistem. Sehingga bukan tidak
mungkin password yang telah diatur sedemikian rumit dapat ditebak dengan
serangan Brute Force meskipun membutuhkan waktu yang tidak sebentar.
2.3 SSH (Secure Shell)
SSH merupakan sebuah protokol pertama yang menciptakan sebuah secured
channel pada protokol TCP. Ketika sebuah software mengimplementasikan
protokol ssh, client dan server pertama-tama menggunakan protokol TCP untuk
membangun sebuah koneksi yang belum aman. Kemudian keduanya bertukar
beberapa security parameter untuk membangun koneksi yang aman di atas protokol
TCP. (Forouzan, 2010)
Setelah sebuah secured channel telah dibangun di antara client dan kemudian server
memberikan otentikasi untuk client. Kemudian sebuah layanan multiplexing
diberikan. Setelah fase koneksi telah dibangun, ssh memungkinkan beberapa
program aplikasi untuk menggunakan koneksi ini. (Forouzan, 2010)
Dapat dikatakan SSH merupakan sebuah aplikasi remote login yang dapat
memungkinkan pengguna memasuki ke dalam sebuah sistem meskipun tidak
berdekatan dengan mesin dari suatu sistem tersebut. Dengan mengakses suatu
sistem menggunakan SSH secara fungsional sama seperti mengakses suatu sistem
secara langsung.
2.4 SSH Brute force
Serangan SSH Brute Force adalah jenis serangan umum di mana penyerang
mencoba untuk mendapatkan akses ke remote machine dengan melakukan upaya
otentikasi. Serangan-serangan ini dilakukan dengan secara sistematis mencoba
9
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
semua kata sandi yang mungkin sampai yang benar ditemukan. Kata sandi pilihan
manusia secara inheren lemah. Orang-orang cenderung memilih kata sandi
sederhana karena lebih mudah diingat. Terkadang, mereka tidak mengubah kata
sandi default mesin atau mereka hanya menggunakan nama pengguna sebagai kata
sandi. (Najafabadi, et al., 2015)
Pada umumnya upaya memasuki suatu sistem telah dilindungi dengan otentikasi
yang mensyaratkan username dan password yang sesuai dengan yang telah diatur
dalam suatu sistem. Karenanya pembuatan password sebisa mungkin dibuat rumit
agar tidak mudah ditebak oleh pihak yang tidak sah. Kesadaran akan pentingnya
membuat password yang tidak mudah ditebak memunculkan serangan yang dapat
menebak password secara otomatis dengan metode Brute Force, karena akan
membutuhkan waktu yang lama dan melelahkan bila percobaan menebak password
dilakukan secara manual. Oleh karenanya, bila serangan SSH Brute Force berhasil
mencocokan password yang menjadi targetnya, atau dengan kata lain berhasil
memasuki suatu sistem yang menjadi targetnya, maka pihak yang tidak sah dapat
melakukan sesuatu terhadap sistem layaknya si pemilik sistem.
2.5 Linux
Linux adalah sistem operasi sumber terbuka (Open Source). Sistem operasi adalah
perangkat lunak yang secara langsung mengelola perangkat keras dan sumber daya
sistem, seperti CPU, memori, dan penyimpanan. OS berada di antara aplikasi dan
perangkat keras dan membuat koneksi antara semua perangkat lunak dan perangkat
keras yang melakukan pekerjaan. Linux dirancang agar mirip dengan UNIX, tetapi
telah berevolusi untuk berjalan pada berbagai perangkat keras dari ponsel ke
superkomputer. Setiap OS berbasis Linux melibatkan kernel Linux yang mengelola
sumber daya perangkat keras. Linux mencakup beberapa komponen inti umum,
seperti tools GNU dan lain-lain. Alat-alat ini memberikan cara untuk mengelola
sumber daya yang disediakan oleh kernel, menginstal perangkat lunak tambahan,
mengkonfigurasi pengaturan kinerja dan keamanan, dan banyak lagi. Semua alat
ini disatukan bersama membentuk sistem operasi fungsional. Karena Linux adalah
OS open source, kombinasi perangkat lunak dapat bervariasi di antara berbagai
distribusi Linux. (Redhat, 2020)
10
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
2.6 Ubuntu
Ubuntu merupakan salah satu distribusi Linux yang berbasiskan Debian. Proyek
Ubuntu resmi disponsori oleh Canonical Ltd yang merupakan perusahaan milik
seorang kosmonot asal Afrika Selatan Mark Shuttleworth. Nama Ubuntu diambil
dari nama sebuah konsep ideologi di Afrika Selatan, “Ubuntu” berasal dari bahasa
kuno Afrika, yang berarti “rasa perikemanusian terhadap sesama manusia”. Tujuan
dari distribusi Linux Ubuntu adalah membawa semangat yang terkandung di dalam
Filosofi Ubuntu ke dalam dunia perangkat lunak. Ubuntu adalah sistem operasi
lengkap berbasis Linux, tersedia secara bebas dan mempunyai dukungan baik yang
berasal dari komunitas maupun tenaga ahli profesional. (Ngatmono, et al., 2015)
Ubuntu dikeluarkan dalam siklus rilis yang stabil dan teratur. Rilis baru akan
dikirimkan setiap enam bulan. Setiap dua tahun rilis dukungan jangka panjang
Ubuntu (Long Term Support) akan tersedia, yang didukung selama 5 tahun. Rilis
Ubuntu di antaranya (dikenal sebagai rilis pengembangan atau non- Long Term
Support) didukung masing-masing selama 9 bulan. (Ubuntu, 2020)
2.7 Kali Linux
Kali Linux adalah distribusi berlandasan distribusi Debian GNU/Linux untuk
tujuan forensik digital dan di gunakan untuk pengujian penetrasi, yang dipelihara
dan didanai oleh Offensive Security. Kali juga dikembangkan oleh Offensive
Security sebagai penerus BackTrack Linux. Kali menyediakan pengguna dengan
mudah akses terhadap koleksi yang besar dan komprehensif untuk alat yang
berhubungan dengan keamanan, termasuk port scanner untuk password cracker.
Pembangunan kembali BackTrack Linux secara sempurna, mengikuti sepenuhnya
kepada standar pengembangan Debian. Semua infrastruktur baru telah dimasukkan
ke dalam satu tempat, semua tools telah ditinjau dan dikemas, dan menggunakan
Git untuk VCS nya. (Rahmadani, et al., 2017)
2.8 Medusa
Medusa adalah aplikasi Brute Force login yang cepat, paralel, dan modular.
Tujuannya adalah untuk mendukung sebanyak mungkin layanan yang
memungkinkan otentikasi jarak jauh. Ada beberapa fitur utama dari aplikasi ini
(KaliTools, 2016), antara lain:
11
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
a Pengujian paralel berbasis thread. Pengujian Brute force dapat dilakukan
terhadap beberapa host, pengguna atau kata sandi secara bersamaan.
b Input pengguna fleksibel. Informasi target (host / pengguna / kata sandi) dapat
ditentukan dalam berbagai cara. Misalnya, setiap item dapat berupa entri tunggal
atau file yang berisi banyak entri. Selain itu, format file kombinasi
memungkinkan pengguna untuk memperbaiki daftar target serangan.
c Desain modular. Setiap modul layanan ada sebagai file .mod yang independen.
Ini berarti bahwa tidak ada modifikasi yang diperlukan untuk aplikasi inti untuk
memperluas daftar layanan yang didukung untuk melakukan serangan Brute
Force.
d Mendukung banyak protokol. Banyak layanan yang didukung yang dapat
menjadi target bagi serangan Brute Force. Misalnya SMB, HTTP, POP3, MS-
SQL, dan SSHv2.
2.9 Intrustion Prevention System (IPS)
Intrusion Prevention System (IPS) merupakan jenis metode pengamanan jaringan
baik software atau hardware yang dapat memonitor aktivitas yang tidak diinginkan
atau intrusion dan dapat langsung bereaksi untuk untuk mencegah aktivitas
tersebut. IPS merupakan pengembangan dari dari IDS (Intrusion Detection System).
Sebagai pengembangann dari teknologi firewall, IPS melakukan kontrol dari suatu
sistem berdasarkan aplikasi konten atau pattern, tidak hanya berdasarkan port atau
IP address seperti firewall umumnya. IDS Selain dapat memantau dan monitoring,
IPS dapat juga mengambil kebijakan dengan memblokir paket yang lewat dengan
cara “melapor” ke firewall. (Kuswanto, 2014)
Dengan kata lain, IPS dapat dijadikan sebagai sistem yang memiliki kemampuan
untuk mendeteksi dan melakukan tindakan berdasarkan hasil pendeteksiannya.
Sistem IPS ini dapat dimanfaatkan oleh pengelola sistem untuk melakukan upaya
pencegahan serangan. Adanya sistem yang secara khusus melaksanakan tugas
melakukan pencegahan serangan tentu akan sangat membantu pengelola sistem jika
dibandingkan melakukan pencegahan terhadap serangan secara manual.
12
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Ada dua pendekatan yang dapat digunakan oleh IPS untuk mendeteksi sebuah
ancaman yaitu pendekatan host-based dan pendekatan network-based (Ali, et al.,
2018).
Pendekatan host-based adalah sistem deteksi intrusi berbasis host yang diharapkan
dapat mengumpulkan informasi tentang aktivitas pada host yang spesifik. Agen
berbasis host ini yang kadang-kadang disebut sebagai sensor biasanya akan
dipasang pada mesin yang dianggap rentan terhadap kemungkinan serangan.
Pendekatan ini melakukan pemeriksaan aktivitas mencurigakan dari host atau
tingkat sistem operasi untuk melakukan pemantauan menggunakan komponen agen
sebelum host menemukan target serangannya. IPS berbasis host beroperasi dengan
mendeteksi serangan yang terjadi pada host dimana IPS dipasang. (Ali, et al., 2018)
Pendekatan network-based melibatkan penyebaran perangkat pemantauan atau
sensor di seluruh jaringan untuk menangkap dan menganalisis lalu lintas. Sensor
mendeteksi aktivitas berbahaya dan tidak sah secara realtime dan dapat bertindak
bila diperlukan. Sensor dipasang pada titik-titik jaringan yang ditunjuk yang
memungkinkan security manager untuk memantau aktivitas jaringan. Deteksi
berbasis jaringan menyediakan keamanan realtime ke dalam sebuah jaringan. (Ali,
et al., 2018)
Dalam penelitian ini mencoba membangun sebuah sistem pencegahan dengan
pendekatan yang berbasis pada host. Itu artinya sistem akan ditempatkan pada suatu
host yang spesifik.
2.10 Firewall
Firewall merupakan sebuah perangkat (berupa router atau komputer) yang
dipasang diantara jaringan sebuah organisasi dan jaringan luar atau jaringan
internet. Firewall dirancang untuk memfilter setiap packet yang lewat untuk
diteruskan ataupun tidak diteruskan. Firewall dapat digunakan untuk melarang
akses ke suatu host atau ke suatu service dalam sebuah jaringan. Firewall dapat
digunakan sebagai sebuah packet filter, yang artinya firewall dapat meneruskan
atau memblokir sebuah packet berdasarkan informasi header dari network layer
atau transport layer. (Forouzan, 2010)
13
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 2. 1 Ilustrasi Firewall
Dalam penelitian ini firewall dapat dimanfaatkan sebagai alat untuk melakukan
tindakan-tindakan yang perlu dilakukan berdasarkan hasil dari pemeriksaan atau
pendeteksian terhadap serangan yang datang.
2.11 Bash
Bash merupakan shell yang paling banyak digunakan pada sistem operasi
GNU/Linux. Bash merupakan suatu bahasa perintah (command language) yang
dapat digunakan untuk mengontrol eksekusi program. Bash juga merupakan bahasa
pemrograman (programming language) yang dapat digunakan untuk membuat
program yang terstruktur. (Slameto & Lukman, 2014) Sebagai bahasa perintah
(command language) Bash memiliki karakteristik sebagai berikut (Slameto &
Lukman, 2014):
a. Eksekusi program, yang memungkinkan untuk menjalankan program secara
berurutan dan paralel.
b. Pembuatan File, dapat membuat filebaru dan menambah ke file yang ada
c. Argument Passing, yang memungkinkan melewatkan argumen ke program
melalui baris perintah maupun environmentvariabel.
d. Eksekusi program berkondisi, memungkinkan untuk menjalankan suatu
program berdasar pada keberhasilan atau kegagalan dari program lainnya.
e. Predefined procedures, dapat digunakan untuk menyusun suatu skrip
yang mendefinisikan suatu urutan program yang akan dieksekusi.
f. Parameterization, memungkinkan untuk menulis skrip menggunakan variabel
shell (shell variable) sehingga skrip dapat bersifat lebih general.
Bash sebagai bahasa pemrograman (programming language) memiliki beberapa
karakteristik sebagai berikut (Slameto & Lukman, 2014):
14
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
a. Variables, dapat mendefinisikan variabel dan melakukan operasi terhadapnya.
b. Structured Language Constructs, menyediakan struktur sequence, selection dan
iterasi (perulangan).
c. Scope, dapat membatasi ruang lingkup tempat antara variabel dan program dapat
saling mengenal.
d. Macro Substitution, Bash menyediakan macro dan header file.
e. Subroutines, dapat ditulis dan memanggil suatu subrutin dan memungkinkan
untuk membuat suatu rekursi di dalamnya.
2.12 Telegram
Telegram merupakan aplikasi pesan singkat yang berbasis cloud. Telegram
menyediakan enkripsi end-to-end, self destruction Messages, dan infrastruktur
multi-data center. Sebagai aplikasi pesansingkat yang realtime, Telegram
memberikan kemudahan akses bagi pengguna karena tersedia pada platform
mobile maupun desktop. Pada platform mobile Telegram dapat digunakan di
platform iphone, android dan windows phone, sedangkan pada platform desktop
Telegram dapat digunakan di Windows, Linux, Mac OS dan juga Web-browser.
Telegram mengklaim sebagai aplikasi pesan massal tercepat dan teraman yang
berada di pasar. Selain itu Telegram juga menyediakan wadah bagi pengembang
yang ingin memanfaatkan Open API dan Protocol yang disediakan melalui
pengembangan Bot Telegram yang didokumentasikan pada web resminya.
(Soeroso, et al., 2017)
2.13 Bot Telegram
Bot Telegram adalah antarmuka atau akun yang memungkinkan pengguna untuk
mengintegrasikan fungsionalitas telegram (sistem pesan instan berbasis internet
populer) pada program atau aplikasi mereka. Pada dasarnya ini adalah akun terpisah
yang dapat dibuat pengguna telegram untuk digunakan untuk membuat aplikasi
yang mengotomatiskan tugas di mana pengguna dapat mengontrol akun (mengirim
file, pesan, menerima file, pesan, dll.) hanya dengan cara menggunakan telegram
API calls berdasarkan pada logika aplikasi mereka. Bot Telegram merupakan akun
khusus yang tidak memerlukan nomor telepon tambahan untuk mengaturnya.
(Solaiman, et al., 2017)
15
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Dalam penelitian ini bot telegram dapat dimanfaatkan sebagai sebuah platform
yang menjembatani antara sistem dengan pengelola sistem. Pemanfaatan yang
dilakukan yaitu sistem dapat mengirim sebuah pemberitahuan kepada pengelola
sistem bila terdeteksi sebuah serangan. Pemanfaatan tersebut dilakukan dengan
asumsi bahwa pengelola sistem tidak selalu menjaga sistem pada waktu tertentu.
Diharapkan hal tersebut dapat menjadi upaya agar pemilik sistem mengetahui
keadaan sistem walaupun tidak sedang mengakses sistem. Sehingga pengelola
sistem dapat segera merencanakan tindakan-tindakan tertentu berdasarkan keadaan
sistem pada saat itu.
2.14 Flowchart
Flowchart dapat diartikan sebagai suatu alat atau sarana yang menunjukkan
langkah-langkah yang harus dilaksanakan dalam menyelesaikan suatu
permasalahan untuk komputasi dengan cara mengekspresikannya ke dalam
serangkaian simbol-simbol grafis khusus. (Nuraini, 2015) Berikut ini merupakan
simbol-simbol flowchart.
16
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 2. 2 Simbol-simbol Flowchart
(Sumber: Medium.com)
2.15 Penelitian Sejenis
Penelitian sejenis pernah dilakukan sebelumnya dengan judul “Realtime
Pencegahan Serangan Brute Force dan DDOS Pada Ubuntu Server”
(Syaifuddin, et al., 2018). Penelitian ini membahas mengenai pembangunan sistem
pencegahan terhadap serangan Brute Force dan DDOS. Sistem pada penelitian
tersebut dibangun pada sistem operasi Ubuntu Server 14.04. Sistem pada penelitian
tersebut dibangun menggunakan fail2ban dan fail2sql. Dalam penelitian tersebut,
fail2ban memiliki peran untuk menangani serangan Brute Force dan DDOS.
Sedangkan fail2sql memiliki peran untuk menyimpan log hasil pendeteksian
17
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
serangan ke dalam sebuah database. Dalam penelitian ini, pendeteksian serangan
Brute Force dilakukan dengan memeriksa jumlah kegagalan login yang terjadi.
Ambang batas dari kegagalan login yang ditentukan dalam penelitian ini yaitu
sebanyak 3. Bila terjadi kegagalan login lebih dari 3 kali dalam waktu yang
berdekatan, maka upaya tersebut akan dianggap sebagai serangan Brute Force.
18
BAB III
PERENCANAAN DAN REALISASI
3.1 Perancangan Sistem
Bagian ini meliputi perancangan yang diperlukan untuk merealisasikan sistem yang
dibangun.
3.1.1 Deskripsi Sistem
Sistem yang dibangun merupakan sebuah sistem yang dapat mendeteksi serangan
Brute Force yang datang ke dalam sistem. Sistem IPS ini dibangun dengan
menggunakan pendekatan berbasis host. Artinya sistem dibangun di sisi host yang
akan dilindungi dari serangan. Serangan Brute Force yang dideteksi merupakan
serangan Brute Force yang mengarah pada port ssh. Sistem mendeteksi serangan
Brute Force dengan cara memonitoring log dari login ke dalam sistem. Setelah
mendeteksi serangan Brute Force sistem juga akan memberi notifikasi melalui bot
telegram. Kemudian sistem melakukan tindakan penanganan dengan cara
melakukan pemblokiran alamat IP dari serangan Brute Force yang datang.
Pemblokiran alamat ip dilakukan menggunakan firewall dengan cara memasukkan
alamat IP ke dalam iptables. Sistem ini dibangun pada sistem operasi Ubuntu Server
19.10 dengan menggunakan bahasa pemrograman Bash.
3.1.2 Cara kerja Sistem
Cara kerja dari sistem yang dibangun yaitu sebagai berikut:
19
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3. 1 Flowchart cara kerja sistem yang dibangun
a. Pertama sistem IPS akan melakukan monitoring log login yang ada di dalam
sistem.
b. Selanjutnya sistem IPS akan melakukan analisa dari setiap log login terbaru yang
tersimpan. Bila ditemukan log percobaan login yang gagal, maka sistem akan
memeriksa log login dalam 1 menit terakhir.
c. Menurut jurnal Realtime Pencegahan Serangan Brute Force dan DDOS Pada
Ubuntu Server (Syaifuddin, et al., 2018), ambang batas untuk kegagalan login
yang dianggap wajar adalah tidak lebih dari 3. Sistem menganalisis apakah
selama 1 menit terakhir apakah terdapat percobaan login yang gagal lebih dari 3
kali. Bila terdapat percobaan login yang gagal lebih dari 3 kali, maka sistem akan
menganggap ada upaya serangan Brute Force terhadap sistem. Kemudian akan
diperiksa apakah kegagalan login sebanyak lebih dari 3 kali ini berasal dari satu
sumber alamat IP.
20
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
d. Bila hal itu berasal dari satu sumber alamat IP, maka selanjutnya sistem akan
melihat alamat IP penyerang dari log tersebut dan melakukan pemblokiran
alamat IP dari penyerang tersebut.
e. Setelah melakukan pemblokiran alamat IP, sistem akan memberikan notifikasi
bahwa ada serangan Brute Force ke akun telegram melalui bot telegram.
3.1.3 Rancangan Sistem Pengujian
Berdasarkan data-data yang telah didapat pada bagian sebelumnya, rancangan
sistem pengujian yang dibangun dapat dilihat pada gambar 3.2.
Gambar 3. 2 Rancangan sistem yang digunakan
3.1.4 Spesifikasi perangkat dan software/tools
Berikut adalah spesifikasi perangkat yang digunakan sesuai dengan rancangan
sistem:
a. Satu buah laptop Intel i3 RAM 4GB Sistem Operasi Windows 10.
b. Satu buah virtual machine RAM 2GB Sistem Operasi Ubuntu Server 19.10.
c. Satu buah virtual machine RAM 2GB Sistem Operasi Kali Linux 2019.
Berikut adalah software/tools yang digunakan:
21
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
a. VirtualBox versi 6.0.10 sebagai aplikasi yang digunakan untuk menjalankan
virtual machine.
b. Medusa versi 2.2 sebagai tool yang digunakan untuk melakukan pengujian
serangan Brute Force.
c. Aplikasi Telegram versi 5.11.0 sebagai aplikasi yang digunakan untuk menerima
notifikasi dari sistem.
d. Wireshark versi 3.2.5 sebagai tool yang digunakan untuk menganalisis lalu lintas
jaringan.
e. Putty versi 0.73 sebagai tool yang digunakan untuk mengakses virtual machine
melalui port ssh.
3.2 Realisasi Sistem
Bagian ini meliputi proses pembangunan sistem yang diperlukan untuk pengujian
dan pengambilan data.
3.2.1 Konfigurasi Jaringan
Bagian ini menjelaskan proses konfigurasi jaringan sesuai dengan perancangan
sistem. Konfigurasi jaringan yang dilakukan yaitu membuat host yang berperan
sebagai penyerang berada satu jaringan dengan host yang berperan sebagai target
penyerangan. Konfigurasi jaringan yang dilakukan yaitu mengatur alamat ip
menjadi static pada kedua host. Konfigurasi jaringan dilakukan dengan cara
mengubah isi berkas konfigurasi jaringan yang ada pada setiap host menggunakan
aplikasi text editor. Berkasi konfigurasi jaringan dapat diubah menggunakan
aplikasi text editor bawaan yaitu nano.
Host yang berperan sebagai penyerang menggunakan sistem operasi kali linux
2019. Konfigurasi jaringan pada kali linux 2019 dapat dilakukan dengan mengubah
berkas konfigurasi yang terletak pada direktori /etc/network/interfaces. Perubahan
isi berkas file konfigurasi dapat dilakukan dengan sintaks berikut:
- nano /etc/network/interfaces
kemudian isi dari berkas konfigurasi tersebut diubah sesuai dengan yang ditujukan
oleh tabel 1.
22
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 1. Konfigurasi jaringan untuk kali linux 2019
Source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.33.150
netmask 255.255.255.0
auto eth2
iface eth2 inet static
address 192.168.19.150
netmask 255.255.255.0
auto eth3
iface eth3 inet static
address 192.168.71.150
netmask 255.255.255.0
auto eth4
iface eth4 inet static
address 192.168.72.150
netmask 255.255.255.0
auto eth5
23
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
iface eth3 inet static
address 192.168.73.150
netmask 255.255.255.0
auto eth6
iface eth6 inet static
address 192.168.74.150
netmask 255.255.255.0
Tabel 1 menunjukan konfigurasi jaringan untuk host yang berperan sebagai
penyerang. Secara default, sistem operasi kali linux 2019 hanya memiliki 2
interface saja, port loopback dan port eth0. Isi konfigurasi pada tabel 1 berisi
konfigurasi penambahan interface dan mengisinya dengan alamat ip statis.
Host yang berperan sebagai target penyerangan menggunakan sistem operasi
ubuntu 19.10. konfigurasi jaringan pada sistem operasi ubuntu 19.10 dapat
dilakukan dengan mengubah berkas konfigurasi jaringan yang terletak pada
direktori /etc/netplan/50-cloud-init.yml. Perubahan berkas konfigurasi jaringan
tersebut dapat dilakukan dengan menggunakan sintaks berikut:
- nano /etc/netplan/50-cloud-init.yml
kemudian isi dari berkas konfigurasi tersebut diubah sesuai dengan yang ditujukan
oleh tabel 2.
24
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 2. Konfigurasi jaringan untuk ubuntu 19.10
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: no
addresses: [192.168.33.90/24]
enp0s9:
dhcp4: no
addresses: [192.168.19.90/24]
enp0s10:
dhcp4: no
addresses: [192.168.71.90/24]
enp0s16:
dhcp4: no
addresses: [192.168.72.90/24]
enp0s17:
dhcp4: no
addresses: [192.168.73.90/24]
enp0s118:
dhcp4: no
addresses: [192.168.74.90/24]
25
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
version: 2
Tabel 2 menunjukan konfigurasi jaringan untuk host yang berperan sebagai target.
Secara default, sistem operasi ubuntu 19.10 juga hanya memiliki 2 interface saja,
port loopback dan port enp0s3. Isi konfigurasi pada tabel 2 berisi konfigurasi
penambahan interface dan mengisinya dengan alamat ip statis.
3.2.2 Pembuatan Bash Script
Bagian ini menjelaskan tentang skrip yang dibuat untuk mendeteksi dan menangani
serangan Brute Force. Skrip dibuat dengan menggunakan bahasa bash yang
merupakan bahasa shell scripting default dari linux ubuntu.
Tabel 3. Potongan skrip untuk memeriksa login log
while true
do
tail -1 /var/log/auth.log | \
while read LINE
do
if echo "$LINE" | grep "$string" 1>/dev/null 2>&1
then
deteksi
echo "give a new line" | sudo tee -a /var/log/auth.log
fi
done
done
Tabel 3 menunjukan potongan skrip yang berfungsi membaca berkas log login yang
tersimpan di dalam sistem. Berkas log login tersebut terletak pada direktori
/var/log/auth.log. skrip akan membaca log terbaru dari berkas log tersebut.
Setelahnya, skrip akan memeriksa apakah pada log terbaru merupakan log yang
melaporkan kesalahan password atau bukan. Bila log tersebut bukan melaporkan
kesalahan password maka skrip hanya akan terus membaca log terbaru pada berkas
26
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
log auth.log. Namun bila log melaporkan kesalahan password maka skrip akan
melanjutkan ke proses deteksi untuk memastikan apakah hal itu merupakan sebuah
upaya serangan Brute Force atau bukan. Bila skrip melanjutkan ke proses deteksi
dengan memanggil fungsi deteksi().
Tabel 4. Potongan skrip yang berisi fungsi deteksi()
deteksi() {
a=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep -a "Failed password" | wc -l)
if [ $a -gt 3 ]
then
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Mencoba Mendeteksi
Upaya Serangan Brute Force" | sudo tee -a
/home/user/custom.log
fi
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Jumlah Kegagalan
Login dalam 1 menit terakhir = $a" | sudo tee -a /home/user/custom.log
if [ $a -gt 3 ]
then
b=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | head -n 1 | awk '{ print $1 }')
if [ $b -gt 3 ]
then
loop=$(awk -v d1="$(date --date="-30 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | wc -l)
for i in $( seq 1 $loop )
do
27
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
c=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | sed -n "$i"p | awk '{ print $1 }')
if [ $c -gt 3 ]
then
ipaddress=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | sed -n "$i"p | awk '{ if ( $1 > 3 ) print $2 }')
pesan="Terdeteksi serangan brute force yang berasal dari alamat IP
$ipaddress"
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : $pesan" | sudo tee -a
/home/user/custom.log
sudo iptables -A INPUT -s $ipaddress -j DROP
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Alamat IP $ipaddress
sudah diblokir" | sudo tee -a /home/user/custom.log
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Mengirim Notifikasi ke
Telegram" | sudo tee -a /home/user/custom.log
notifToTelegram $ipaddress
fi
done
fi
fi
}
Tabel 4 menunjukan potongan skrip yang berisi fungsi deteksi() yang berfungsi
untuk memeriksa apakah dalam satu menit terakhir dalam berkas log auth.log
terdapat lebih dari 3 kali kesalahan password. Bila kesalahan password yang terjadi
kurang dari 3 kali dalam satu menit terakhir, maka itu akan dianggap sebagai
kesalahan password dari pengguna yang lupa dengan password-nya. Bila terdapat
kesalahan password yang lebih dari 3 kali dan berasal dari satu alamat IP, maka itu
28
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
akan dianggap sebagai upaya serangan Brute Force dan skrip akan melakukan
blocking terhadap alamat IP yang melakukan serangan Brute Force tersebut agar
penyerangan dari alamat IP tersebut dapat terhenti dan kemudian mengirimkan
notifikasi kepada pengelola sistem melalui aplikasi telegram dengan cara
memanggil fungsi notifToTelgram(). Pengiriman notifikasi kepada akun telegram
admin dilakukan melalui bot telegram yang telah dibuat sebelumnya. Pengiriman
notifikasi dilakukan dengan cara mengirim request kepada telegram API.
Sedangkan pemblokiran alamat IP penyerang dilakukan dengan cara memasukkan
alamat IP ke dalam rule pada iptables.
Tabel 5. Potongan skrip yang berisi fungsi notifToTelegram()
notifToTelegram() {
ip="$1"
pesan="Terdeteksi serangan brute force yang berasal dari alamat IP"+$ip
TOKEN=1119028446:AAGqXVbMiFaeNz5QijUHbPQhmFqZmpQ1HBE
CHAT_ID=820883629
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$pesan"
}
Tabel 5 menunjukan potongan skrip yang berisi fungsi notifToTelegram() yang
berfungsi untuk mengirim pesan kepada user melalui telegram bot untuk
memberitahu bahwa telah terdeteksi serangan brute force dengan menyertakan
alamat IP penyerang.
Untuk keseluruhan skrip pada bagian ini dapat dilihat pada lampiran 2.
3.2.3 Pembuatan Service
Bagian ini menjelaskan proses pembuatan service untuk menjalankan bash script
yang telah dibuat. Pembuatan service dilakukan agar bash script yang telah dibuat
dapat berjalan di latar belakang atau background pada sistem operasi linux. Service
yang dibuat ini akan menjalankan bash script yang telah dibuat ketika machine
dihidupkan atau kondisi startup. Tabel 6 menunjukan isi dari file service yang
dibuat.
29
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 6. Isi file dari service yang dibuat untuk menjalankan bash script
[Unit]
Description= Preventing Brute force Attack by Detecting and Handling the
attack
[Service]
ExecStart=/home/user/skrip.sh
[Install]
WantedBy=multi-user.target
File service yang telah dibuat perlu disalin atau dipindahkan ke direktori
/etc/systemd/system/. Hal itu dilakukan agar file service yang telah dibuat
dijalankan oleh sistem operasi. Penyalinan file service tersebut dapat dilakukan
dengan menjalankan perintah seperti berikut:
- cp skrip.sh /etc/systemd/system/
Agar service tersebut dapat berjalan ketika sistem operasi dihidupkan maka perlu
dijalankan perintah seperti berikut:
- sudo enable preventing-bruteforce.service
3.2.4 Pembuatan Log File
Bagian ini menjelaskan proses pembuatan log file yang digunakan untuk
menyimpan log dari sistem yang dibuat. Pembuatan log file dilakukan agar segala
sesuatu yang dideteksi oleh sistem tercatat di dalam sebuah berkas. Sehingga
pengelola sistem dapat mengetahui apa dan kapan kejadian-kejadian yang terbaca
oleh sistem yang dibuat. Pembuatan log file dilakukan dengan menggunakan
perintah berikut ini:
30
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
- nano custom.log
3.2.5 Pembuatan Bot Telegram
Pembuatan bot telegram dapat dilakukan melalui BotFather yang ada di dalam
aplikasi telegram. BotFather merupakan sebuah bot yang disediakan oleh telegram
untuk membuat bot telegram bagi user. Bot telegram yang dibuat akan
dimanfaatkan oleh sistem untuk mengirim notifikasi kepada adminstrator sistem.
Gambar 3. 3 Tampilan awal ketika membuka BotFather pada aplikasi Telegram
Proses pembuatan bot telegram dapat dimulai dengan mencari dan membuka
BotFather pada aplikasi telegram. Setelah membuka BotFather kemudian akan
muncul dialog chat seperti yang ditunjukan pada gambar 3.3. Kemudian pilih start
untuk memulai dialog dengan BotFather.
31
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3. 4 Tampilan informasi yang muncul setelah memulai BotFather
Setelah itu akan muncul balasan dari BotFather mengenai informasi yang berisi
instruksi dan daftar perintah yang dapat digunakan untuk berdialog dengan
BotFather seperti yang ditunjukan pada gambar 3.4. Untuk membuat bot baru dapat
dilakukan dengan mengetikan perintah “/newbot”. Kemudian akan muncul balasan
yang meminta user untuk memasukkan nama yang akan digunakan untuk nama bot
yang akan dibuat.
Setelah pemberian nama selesai, kemudian akan muncul balasan yang meminta
user untuk memasukkan username yang akan digunakan untuk bot yang dibuat.
32
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3. 5 Tampilan dialog proses pemberian nama dan username pada BotFather
Gambar 3.5 menunjukan proses pemberian nama dan username untuk bot yang
dibuat. Bot yang telah dibuat dapat dibuka dengan cara klik link
t.me/<BotUsername> yang ada pada balasan pesan dari BotFather setelah selesai
membuat bot seperti yang ditunjukan pada gambar 3.5. Link tersebut akan
mengarah ke bot yang sudah dibuat tersebut.
Gambar 3. 6 Tampilan dialog chat dari Bot Telegram yang telah dibuat
33
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3.6 memperlihatkan tampilan dialog chat dengan bot yang telah dibuat.
Komunikasi dengan bot ini dapat dimulai dengan cara klik tombol start yang ada
pada bagian bawah dialog chat.
Pengiriman pesan atau notifikasi kepada user melalui bot telegram ini dapat
dilakukan dengan cara mengirim request kepada API (Application Programming
Interface) Telegram. Pengiriman request kepada API Telegram dapat dilakukan
melalui protokol http. Berikut ini merupakan request kepada API Telegram agar
bot yang telah dibuat dapat dikendalikan untuk mengirim pesan atau notifikasi
kepada user.
https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=<m
essage>
Token bot didapat ketika telah selesai membuat bot seperti yang ditunjukkan pada
gambar 3.5. Sedangkan chat id didapat dengan mengirim request ke API Telegram
setelah mengklik start pada dialog chat pada bot. Request yang digunakan untuk
mendapatkan chat id yaitu seperti berikut ini.
https://api.telegram.org/bot<token>/getUpdates
Gambar 3. 7 Data JSON yang didapat setelah mengirim request getUpdates menggunakan token
bot yang telah dibuat sebelumnya ke API Telegram
34
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3.7 memperlihatkan data dengan format JSON yang didapat setelah
melakukan request getUpdates menggunakan token bot yang telah dibuat ke API
Telegram. Kotak merah yang terdapat pada gambar 3.7 menunjukan chat id yang
digunakan antara user dengan bot yang telah dibuat. Setelah mendapatkan chat id,
pengiriman pesan kepada user melalui bot dapat dilakukan. Berikut ini merupakan
percobaan request untuk mengirim pesan “hello” ke user melalui bot yang telah
dibuat:
https://api.telegram.org/bot1119028446:AAGqXVbMiFaeNz5QijUHbPQhmFqZm
pQ1HBE/sendMessage?chat_id=820883629&text=hello
Gambar 3. 8 Pengiriman request sendMessage pada bot ke API Telegram
Request tersebut mengirim permintaan ke API Telegaram agar bot dengan token
yang dicantumkan mengirim pesan ke chat id yang dicantumkan dengan pesan
“hello”. Request tersebut dapat dikirimkan melalui browser. Gambar 3.8
menunjukan percobaan request tersebut melalui browser.
35
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 3. 9 Pesan dengan teks “hello” yang diterima oleh user dari bot
Setelah request tersebut dikirim, maka akan ada pesan “hello” dari bot yang telah
dibuat kepada user. Gambar 3.9 menunjukkan pesan dengan teks “hello” yang
diterima oleh user dari bot yang telah dibuat.
36
BAB IV
PEMBAHASAN
4.1 Pengujian
Pada bagian ini dilakukan pengujian sistem yang telah dibuat berdasarkan
perancangan pada bab sebelumnya. Pengujian dilakukan untuk mengetahui kinerja
sistem yang sudah dibangun.
4.2 Deskripsi Pengujian
Pengujian sistem dilakukan untuk mengukur 3 parameter, antara lain:
1. Parameter Fungsional
2. Parameter Response Time
3. Parameter Kapasitas
Parameter Fungsional merupakan sebuah parameter yang digunakan untuk
mengukur tingkat keberhasilan atau keakuratan sistem dalam mendeteksi serangan
Brute Force dan mengirim notifikasi melalui telegram.
Parameter Response Time merupakan sebuah parameter yang digunakan untuk
mengukur waktu yang diperlukan sistem dalam menangani serangan Brute Force
dan mengirim notifikasi melalui telegram.
Paremeter Kapasitas merupakan sebuah parameter yang digunakan untuk
mengukur kemampuan sistem dalam menangani serangan Brute Force yang
berjumlah lebih dari satu dalam waktu yang bersamaan.
4.3 Prosedur Pengujian
Berikut prosedur pengujian yang dilakukan untuk mengukur parameter fungsional,
response time, dan kapasitas.
1. Pengujian Parameter Fungsional
Pada pengujian ini dilakukan beberapa tahapan, yaitu:
37
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Pengujian pertama dilakukan dengan melancarkan serangan Brute Force ssh dari
sistem operasi kali linux menuju sistem operasi ubuntu server. Pengujian dilakukan
menggunakan aplikasi medusa. Pengujian ini dilakukan untuk mengukur tingkat
keberhasilan sistem dalam medeteksi dan mengirim notifikasi telegram.
Pengujian kedua dilakukan dengan melakukan kegagalan login melalui ssh yang
dianggap wajar. Kegagalan login yang dilakukan yaitu sebanyak tidak lebih dari 3
kali. Pengujian dilakukan dengan menggunakan aplikasi Putty. Pengujian ini
dilakukan untuk mengetahui apakah sistem dapat membedekan antara serangan
Brute Force ssh dengan kegagalan login yang dianggap wajar dan tidak akan
mendeteksi dan mengirim notifikasi telegram bila terjadi kegagalan login yang
dianggap wajar.
Tabel 7 Perencanaan Pengujian Parameter Fungsional
No Tahapan Pengujian Parameter
1. Melancarkan serangan Brute Force ssh Mendeteksi dan mengirim
notifikasi telegram.
2. Melakukan kegagalan login yang dianggap
wajar
Mendeteksi dan mengirim
notifikasi telegram.
2. Pengujian Paremeter Response Time
Pengujian ini dilakukan dengan melancarkan serangan Brute Force ssh dari sistem
operasi kali linux menuju sistem operasi ubuntu server. Pengujian dilakukan
menggunakan aplikasi medusa. Pengujian yang dilakukan sama seperti pengujian
tahap pertama pada pengujian parameter fungsional, hanya saja data yang diambil
dalam pengujian ini merupakan waktu yang diperlukan sistem dalam menangani
serangan Brute Force ssh dan mengirim notifikasi melalui telegram.
Tabel 8 Perencanaan Pengujian Parameter Response Time
Tahapan Pengujian Parameter
Melancarkan serangan Brute Force ssh Waktu yang diperlukan untuk
menangani serangan dan waktu yang
38
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
diperlukan untuk mengirim notifikasi
telegram
3. Pengujian Paremeter Kapasitas
Pengujian ini dilakukan dengan melancarkan serangan Brute Force ssh dari sistem
operasi linux ke sistem operasi ubuntu server dengan jumlah serangan lebih dari 1
kali dalam waktu yang bersamaan. Pengujian dilakukan dengan menjalankan
sebuah skrip bash yang akan menjalankan beberapa terminal untuk melakukan
serangan Brute Force ssh dalam waktu yang bersamaan. Pengujian ini dilakukan
untuk mengukur kemampuan sistem dalam menangani sejumlah serangan Brute
Force ssh dalam waktu yang bersamaan.
Tabel 9 Perencanaan Pengujian Parameter Kapasitas
Tahapan Pengujian Parameter
Melancarkan serangan Brute Force ssh
sebanyak lebih dari 1 kali dalam waktu
yang bersamaan
Keberhasilan sistem dalam mengani
serangan brute ssh yang berjumlah
lebih dari 1 kali dalam waktu yang
bersamaan
4.4 Data Hasil Pengujian
Bagian ini menyajikan data yang didapat dari hasil pengujian yang dilakukan. Data
hasil pengujian terhadap sistem terbagi sesuai dengan pengujian yang telah
dijelaskan pada sub-bab sebelumnya. Pengumpulan data dilakukan dengan
menggunakan teknik observasi dimana data-data didapat dari hasil pengamatan
kinerja sistem.
4.4.1. Data Pengujian Parameter Fungsional
Hasil pengujian paramater fungsional didapat dari dua pengujian, yaitu sebagai
berikut:
1. Data Hasil Pengujian dengan melancarkan serangan Brute Force ssh
Pengujian dilakukan dengan melancarkan serangan Brute Force ssh. Berikut adalah
data hasil pengujiannya.
39
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 4. 1 Log ketika sistem mendeteksi sebuah serangan Brute Force
Gambar 4.1 menunjukan log ketika sebuah serangan Brute Force datang. Bila
jumlah kegagalan login dalam 1 menit terakhir sebanyak lebih dari 3 dan berasal
dari alamat IP yang sama, maka sistem akan menganggap itu sebagai serangan
Brute Force. Kemudian sistem melakukan pemblokiran alamat IP penyerang dan
mengirimkan notifikasi melalui telegram.
Gambar 4. 2 Notifikasi telegram ketika sistem mendeteksi sebuah serangan Brute Force
Gambar 4.2 memperlihatkan notifikasi telegram yang diterima ketika serangan
Brute Force terdeteksi oleh sistem. Notifikasi yang diterima berupa pesan yang
memberitahu bahwa telah terdeteksi sebuah serangan Brute Force dan
mencantumkan sumber alamat IP penyerang.
Selanjutnya, dilanjutkan dengan empat kali pengujian lagi pada tahap ini. Berikut
kesuluruhan data pengujian yang dilakukan.
Tabel 10 Data pengujian serangan Brute Force
No. Pengujian
Sistem menganggap
sebagai serangan
Sistem mengirim
notifikasi melalui
telegram
Ya Tidak Ya Tidak
1. Pengujian ke-1 ✓ ✓
2. Pengujian ke-2 ✓ ✓
40
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
3. Pengujian ke-3 ✓ ✓
4. Pengujian ke-4 ✓ ✓
5. Pengujian ke-5 ✓ ✓
2. Data Hasil Pengujian dengan melakukan kegagalan login yang dianggap
wajar
Pengujian dilakukan dengan melakukan kegagalan login sebanyak tidak lebih dari
3 kali. Berikut adalah data hasil pengujiannya.
Gambar 4. 3 Log ketika terjadi kegagalan login yang dianggap wajar
Gambar 4.3 menunjukan log ketika terjadi kegagalan login yang dianggap wajar.
Bila terjadi kegagalan login yang tidak lebih dari 3 kali dalam 1 menit terakhir dan
berasal dari alamat IP yang sama, maka sistem tidak akan menganggap itu sebagai
serangan Brute Force dan tidak akan mengirim notifikasi melalui telegram.
Gambar 4. 4 Tidak ada notifikasi yang dikirimkan pada saat terjadi kegagalan login yang dianggap
wajar
41
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 4.4 menunjukan tidak ada notifikasi baru ketika terjadi kegagalan login
yang dianggap wajar. Hal itu dapat dipastikan dengan membandingkan waktu
tangkapan layar pada gambar 4.4 dengan waktu dalam log pada gambar 4.3.
Selanjutnya, dilanjutkan dengan empat kali pengujian lagi pada tahap ini. Berikut
kesuluruhan data pengujian yang dilakukan.
Tabel 11. Data pengujian kegagalan login yang dianggap wajar
No. Pengujian
Sistem menganggap
sebagai serangan
Sistem mengirim
notifikasi melalui
telegram
Ya Tidak Ya Tidak
1. Pengujian ke-1 ✓ ✓
2. Pengujian ke-2 ✓ ✓
3. Pengujian ke-3 ✓ ✓
4. Pengujian ke-4 ✓ ✓
5. Pengujian ke-5 ✓ ✓
4.4.2. Data Pengujian Parameter Response Time
Pengujian yang dilakukan pada pengujian ini sama seperti pengujian tahap pertama
pada pengujian fungsional. Perbedaanya adalah bahwa data yang diambil dari
pengujian ini berupa waktu yang diperlukan untuk menangani serangan Brute
Force dan waktu yang diperlukan untuk mengirim notifikasi melalui telegram.
Berikut adalah data hasil pengujiannya.
Gambar 4. 5 Waktu ketika serangan datang dan waktu ketika alamat IP penyerang diblokir
42
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 4.5 menunjukan pengambilan waktu ketika serangan Brute Force datang
dan waktu ketika alamat IP penyerang diblokir. Kotak merah pertama pada gambar
4.5 menunjukan waktu ketika sebuah serangan Brute Force datang dimana waktu
menunjukan pukul 20:17:45.700. Kotak merah kedua pada gambar 4.5 menunjukan
waktu ketika alamat IP penyerang telah diblokir dimana waktu menunjukan pukul
20:18:00.393. Sehingga, jumlah waktu yang diperlukan untuk menangani serangan
Brute Force pada pengujian pertama ini sebesar 14,693 detik.
Gambar 4. 6 Tangkapan Packet dari notifikasi yang dikirim dari telegram
Gambar 4.6 menunjukan tangkapan packet oleh aplikasi wireshark ketika notifikasi
diterima dari telegram. Kotak merah pada gambar 4.6 menunjukan pengiriman
Application Data Packet terakhir yang berasal dari alamat IP telegram.
43
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 4. 7 Rincian Tangkapan Packet dari notifikasi yang dikirim dari telegram
Gambar 4.7 menunjukan rincian dari packet yang ditunjukan kotak merah pada
gambar 4.6. Kotak merah pada gambat 4.7 menunjukan waktu ketika packet telah
sampai dimana waktu menunjukan pukul 21:12:46.712. Kotak merah ketiga pada
gambar 4.5 menunjukan waktu ketika notifikasi dikirimkan oleh sistem dimana
waktu menunjukan pukul 21:12:44.634. Sehingga, jumlah waktu yang diperlukan
untuk mengirim notifikasi melalui telegram pada pengujian pertama ini sebesar
2,078 detik.
Selanjutnya, dilanjutkan dengan empat kali pengujian lagi pada tahap ini. Berikut
kesuluruhan data pengujian yang dilakukan.
Tabel 12. Data waktu penanganan serangan
No. Nama
Waktu
Kedatangan
Serangan
(time)
Waktu
Pemblokiran
Alamat IP
Penyerang
(time)
Interval antara
Waktu Kedatangan
serangan dan Waktu
Pemblokiran Alamat
IP Penyerangan
(second)
1. Pengujian ke-1 21:12:28.633 21:12:43.926 15.293
2. Pengujian ke-2 21:20:08.748 21:20:23.032 14.284
3. Pengujian ke-3 21:22:56.658 21:23:11.102 14.444
44
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
4. Pengujian ke-4 21:25:34.719 21:25:50.089 15.370
5. Pengujian ke-5 21:27:56.788 21:28:12.371 15.788
Tabel 13. Data waktu pengiriman notifikasi melalui telegram
No. Nama
Waktu
Pengiriman
(time)
Waktu
Penerimaan
(time)
Interval antara
Waktu Penerimaan
dan Waktu
Pengiriman
(second)
1. Pengujian ke-1 21:12:44.634 21:12:46.712 2.078
2. Pengujian ke-2 21:20:23.141 21:20:25.719 2.578
3. Pengujian ke-3 21:23:11.413 21:23:13.411 1.998
4. Pengujian ke-4 21:25:50.504 21:25:52.697 2.193
5. Pengujian ke-5 21:28:12.883 21:28:15.448 2.565
4.4.3. Data Hasil Pengujian Parameter Kapasitas
Pengujian dilakukan dengan melakukan serangan Brute Force sebanyak lebih dari
1 kali dalam waktu yang bersamaan. Pengujian dilakukan dengan variasi jumlah
serangan antara 2 sampai 6 dalam waktu yang bersamaan. Berikut adalah data hasil
pengujiannya.
Gambar 4. 8 Log ketika sistem mendeteksi serangan Brute Force sebanyak 2 kali dalam waktu
yang bersamaan
45
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Gambar 4.8 menunjukan log ketika sistem menerima serangan Brute Force
sebanyak 2 kali dalam waktu yang bersamaan. Pada gambar tersebut terlihat sistem
telah mendeteksi 2 alamat IP penyerang yang berbeda.
Gambar 4. 9 Notifikasi melalui telegram ketika 2 serangan Brute Force terdeteksi dalam waktu
yang bersamaan
Gambar 4.9 menunjukan notifikasi telegram yang diterima ketika terdeteksi
sejumlah serangan Brute Force dalam waktu yang bersamaan. Kotak merah pada
gambar 4.9 memperlihatkan 2 notifikasi dengan sumber alamat IP penyerang yang
berbeda.
Selanjutnya, dilanjutkan dengan empat kali pengujian lagi pada tahap ini dengan
variasi 3 sampai 6 serangan dalam waktu yang bersamaan. Berikut kesuluruhan data
pengujian yang dilakukan.
46
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 14. Data pengujian ketika sejumlah serangan Brute Force dilakukan dalam waktu yang
bersamaan
No. Pengujian
Jumlah serangan
yang dilakukan
dalam waktu yang
bersamaan
Semua
serangan
berhasil
ditangani
Notifikasi
setiap
serangan
berhasil
dikirimkan
1. Pengujian ke-1 2 Ya Ya
2. Pengujian ke-2 3 Ya Ya
3. Pengujian ke-3 4 Ya Ya
4. Pengujian ke-4 5 Ya Ya
5. Pengujian ke-5 6 Ya Ya
4.5 Analisis Data
Bagian ini menjelaskan analasis data dari data yang sudah disajikan pada sub-bab
sebelumnya. Data-data tersebut dianalisis secara statistik dekriptif. Statistik
deskriptif adalah statistik yang digunakan menganalisis data dengan cara
mendeskripsikan atau menggambarkan data yang telah terkumpul sebagaimana
adanya tanpa bermaksud membuat kesimpulan yang berlaku untuk umum atau
generalisasi. (Sugiyono, 2015)
4.5.1. Analisis Data Pengujian Parameter Fungsional
Data pengujian parameter fungsional yang didapat diolah untuk mendapatkan
tingkat keberhasilan sistem dalam mendeteksi serangan Brute Force ssh dan
mengirim notifikasi telegram. Selain itu, data juga diolah untuk mendapatkan
tingkat kemampuan sistem dalam membedakan serangan Brute Force ssh dan
kegagalan login yang dianggap wajar. Setiap data yang didapat dicocokan dengan
tabel confusion matrix untuk menentukan hasil setiap pendeteksian dari pengujian.
Berikut ini merupakan tabel confusion matrix yang digunakan.
47
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 15. Tabel confusion matrix untuk mengukur keakuratan sistem
Actual Value
Serangan Brute force
Kegagalan Login
yang wajar
Det
ecti
on V
alu
e Dianggap Sebagai
serangan True positive False positive
Tidak dianggap
sebagai serangan False negative True negative
Setelah semua data dicocokan dengan tabel confusion matrix, maka akan didapat
perbandingan jumlah true positive, false positive, false negative, dan true negative.
Berikut merupakan data keseluruhan setelah melakukan pencocokan dengan tabel
confusion matrix.
Tabel 16. Hasil pencocokan antara data pengujian serangan dengan tabel confusion matrix
Pengujian Parameter True
Positive
False
Negative
Melancarkan
serangan
Brute Force
ssh
Hasil Pendeteksian
Serangan 5 0
Pengiriman
Notifikasi 5
0
Tabel 17. Hasil pencocokan antara data kegagalan login yang dianggap wajar dengan tabel
confusion matrix
Pengujian Parameter True
Negative
False
Positive
Melakukan
Kegagalan
login yang
dianggap
wajar
Hasil Pendeteksian
serangan 5 0
Pengiriman
Notifikasi 5 0
48
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Tabel 18. Penggabungan data antara tabel 16 dan tabel 17
No. Parameter True
Positive
False
Negative
True
Negative
False
Positive
1. Hasil Pendeteksian Serangan 5 0 5 0
2. Pengiriman Notifikasi 5 0 5 0
Data pada tabel 19 kemudian diolah untuk mendapatkan tingkat keakuratan sistem
dalam mendeteksi serangan Brute Force ssh dan mengirim notifikasi melalui
telegram. Rumus yang dapat digunakan untuk menghitung tingkat keakuratan
adalah sebagai berikut:
𝐴𝐶𝐶 = 𝑇𝑃 + 𝑇𝑁
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁× 100%
Keterangan:
• ACC : Accuracy
• TP : True Positive
• TN : True Negative
• FP : False Positive
• FN : False Negatif
Berikut ini merupakan hasil perhitungan dari tingkat keakuratan sistem dalam
mendeteksi serangan Brute Force:
𝐴𝐶𝐶 = 5 + 5
5 + 5 + 0 + 0× 100%
𝐴𝐶𝐶 = 10
10× 100% = 100%
Hasil perhitungan menunjukan bahwa tingkat keakuratan sistem dalam mendeteksi
serangan Brute Force sebesar 100%.
Berikut ini merupakan hasil perhitungan dari tingkat keakuratan sistem dalam
mengirimkan notifikasi melalui telegram:
𝐴𝐶𝐶 = 5 + 5
5 + 5 + 0 + 0× 100%
49
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
𝐴𝐶𝐶 = 10
10× 100% = 100%
Hasil perhitungan menunjukan bahwa tingkat keakuratan sistem dalam mengirim
notifikasi melalui telegram sebesar 100%.
4.5.2. Analisis Data Pengujian Paramater Response Time
Data Pengujian Parameter Response Time yang didapat diolah untuk mendapatkan
berapa waktu yang diperlukan sistem dalam mendeteksi serangan Brute Force ssh
dan mengirim notifikasi melalui telegram. Jumlah waktu tersebut didapat dari rata-
rata waktu yang dibutuhkan dari semua pengujian yang dilakukan. Untuk
menghitung rata-rata dapat dilakukan dengan perhitungan berikut:
𝑅𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 = 𝑑𝑎𝑡𝑎 1 + 𝑑𝑎𝑡𝑎 2 + ⋯ + 𝑑𝑎𝑡𝑎 𝑘𝑒 − 𝑛
𝑛
Berikut ini merupakan hasil perhitungan rata-rata waktu yang diperlukan oleh
sistem dalam mendeteksi serangan Brute Force:
𝑅𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 = 75,179
105 = 15,035
Hasil perhitungan menunjukan bahwa rata-rata waktu yang diperlukan sistem
dalam menangani serangan Brute Force adalah 15,035 detik.
Berikut ini merupakan hasil perhitungan rata-rata waktu yang diperlukan untuk
mengirim notifikasi melalui telegram.
𝑅𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 = 11,412
5 = 2,282
Hasil perhitungan menunjukan bahwa rata-rata waktu yang diperlukan untuk
mengirim notifikasi melalui telegram adalah 2,282 detik.
4.5.3. Analisis Data Pengujian Parameter Kapasitas
Pengujian Parameter Kapasitas dilakukan untuk mengukur kemampuan sistem
dalam menangani serangan Brute Force dalam waktu yang bersamaan. Pengujian
dilakukan dengan variasi jumlah serangan antara 2 sampai 6 dalam waktu yang
bersamaan. Data pengujian menunjukan bahwa dari setiap pengujian yang
dilakukan sistem dapat menangani lebih dari 1 serangan Brute Force dalam waktu
50
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
yang bersamaan. Selain itu, sistem juga telah mengirimkan notifikasi yang berbeda
untuk masing-masing serangan Brute Force yang terdeteksi. Sehingga, dapat
disimpulkan bahwa sistem dapat menangani sejumlah serangan Brute Force dalam
waktu yang bersamaan dengan baik.
51
BAB V
PENUTUP
5.1. Kesimpulan
Berdasarkan hasil penelitian yang telah dilakukan maka dapat ditarik beberapa
kesimpulan, antara lain:
1. Sistem dapat menangani serangan Brute Force serta dapat membedakan antara
serangan Brute Force dengan kegagalan login yang dianggap wajar dengan
tingkat keberhasilan sebesar 100%. Sistem juga dapat mengirim notifikasi
melalui telegram ketika serangan Brute Force terdeteksi dan tidak mengirim
notifikasi ketika terjadi kegagalan login yang dianggap wajar dengan tingkat
keberhasilan sebesar 100%.
2. Dalam melakukan penanganan serangan Brute Force, rata-rata waktu yang
diperlukan oleh sistem adalah 15,035 detik. Dalam melakukan pengiriman
notifikasi melalui telegram, rata-rata waktu yang diperlukan adalah 2,282 detik.
3. Sistem dapat menangani serangan Brute Force yang datang dalam waktu yang
bersamaan dengan baik, dimana dalam penelitian ini variasi jumlah serangan
yang dilakukan antara 2 sampai 6 serangan dalam waktu yang bersamaan.
5.2. Saran
Penelitian ini menggunakan metode perhitungan jumlah kegagalan login dalam
mendeteksi serangan Brute Force. Penelitian selanjutnya diharapkan dapat
menggunakan metode lain atau mengkombinikasikan metode yang digunakan
dalam penelitian ini dengan metode lain. Selain itu, penelitian ini hanya
dikembangkan untuk menangani serangan Brute Force. Penelitian selanjutnya
diharapkan untuk mengembangkan sistem agar dapat mendeteksi dan menangani
jenis serangan lain. Untuk pengembangan lebih lanjut, sistem yang dibangun dapat
diintergrasikan dengan aplikasi perangkat mobile yang dibuat khusus yang dapat
menerima data lebih lengkap sehingga pengelola sistem dapat mengetahui sesuatu
yang terjadi pada sistem lebih dalam lagi ketika tidak sedang mengakses sistem
secara langsung.
52
DAFTAR PUSTAKA
Ali, M. N., Saudi, M. M., Bhuiyan, T. & Bakar, A. A., 2018. Comparative Study of
Traditional and Next Generation IPS. International Journal of Engineering
& Technology, IV(15), pp. 55-58
Fahana, J., Umar, R. & Ridho, F., 2017. Pemanfaatan Telegram Sebagai Notifikasi
Serangan untuk Keperluan Forensik Jaringa. JurnalSistem Informasi, I(02),
pp. 6-14.
Forouzan, B. A., 2010. TCP/IP Protocol Suite. 4th penyunt. New York: McGraw-
Hil.
Gunawan, I., 2016. Penggunaan Brute Force Attack Dalam Penerapannya Pada
Crypt8 Dan Csa-Rainbow Tool Untuk Mencari Biss. Jurnal Nasional
Informatika dan Teknologi Jaringan, I(1), pp. 52-55.
KaliTools, 2016. Medusa. [Online] Available at: https://en.kali.tools/?p=200
[Diakses 7 Juli 2020].
Kuswanto, D., 2014. Unjuk Kerja Intrusion Prevention Sistem (Ips) Berbasis
Suricata Pada Jaringan Lokal Area Network Laboratorium Tia+ Teknik
Informatika, Universitas Trunojoyo. Jurnal Ilmiah NERO, I(2), pp. 73-81.
Najafabadi, M. M., Khoshgoftaar, T. M., Calvert, C. & Kemp, C., 2015. Detection
of SSH Brute Force Attacks Using Aggregated Netflow Data. Florida, The
Institute of Electrical and Electronics Engineers.
Ngatmono, D., Riasti, B. K. & Sasongko, D., 2015. Membangun Sistem Operasi
Mandiri Berbasis Open Source Dengan Metode Remaster. Indonesian
Journal on Networking and Security, IV(3), pp. 39-47.
NTTSecurity, 2019. Global Threat Intelligence Report, s.l.: NTT Security.
Nuraini, R., 2015. Desain Algorithma Operasi Perkalian Matriks Menggunakan
Metode Flowchart. Jurnal Teknik Komputer AMIK BSI, I(1), pp. 144-151.
Pradipta, Y. W. & Asmunin, 2017. Implementasi Intrusion Prevention System (Ips)
Menggunakan Snort Dan Ip Tables Berbasis Linux. Jurnal manajemen
Informatika, VII(1), pp. 21-28.
Rahmadani, M. A., Rizal, M. F. & Gunamawan, T., 2017. Implementasi Hacking
53
Jurusan Teknik Informatika dan Komputer – Politeknik Negeri Jakarta
Wireless Dengan Kali Linux Menggunakan Kali Nethunter. e-Proceeding of
Applied Science, III(3), pp. 1767-1774.
Redhat, 2020. What is Linux?. [Online] Available at:
https://www.redhat.com/en/topics/linux/what-is-linux
[Diakses 7 Juni 2020].
Rouse, M., t.thn. Ubuntu. [Online] Available at:
https://searchdatacenter.techtarget.com/definition/Ubuntu
[Diakses 7 7 2020].
Slameto, A. A. & Lukman, 2014. Penerapan Openssh Dan Bash Script Untuk
Simultaneos Remote Access Client Pada Laboratorium Stmik Amikom
Yogyakarta. Jurnal Teknologi Informasi , IX(27), pp. 23-32.
Soeroso, H., Arfianto, A. Z. & Mayangsari, N. E., 2017. Penggunaan Bot Telegram
Sebagai Announcement Systempada Intansi Pendidikan. pp. 45-48.
Solaiman, M. A., Husny, H. R. M., Abdullah, D. & Seid, N., 2017. Web Application
Firewall With Telegram Bot Integration. Journal of Computing Technologies
and Creative Content, II(1), pp. 46-55.
Stallin, W., 2015. Computer SeCurity PrinciPles and Practice. 3th penyunt. New
Jersey: Pearson Education.
Stiawan, D., Abdullah, A. H. & Idris, M. Y., t.thn. Characterizing Network
Intrusion Prevention System. International Journal of Computer
Applications.
Sugiyono, 2015. Metode Penelitian Pendidikan. Bandung: ALFABETA.
Syaifuddin, Risqiwati, D. & Irawan, E. A., 2018. Realtime Pencegahan
Serangan Brute Force dan DDOS Pada Ubuntu Server. Techno.COM,
XVII(4), pp. 347-354.
Ubuntu, 2020. What is Ubuntu?. [Online] Available at:
https://help.ubuntu.com/lts/installation-guide/s390x/ch01s01.html
[Diakses 7 July 2020].
w3techs, 2020. Usage statistics of Linux for websites. [Online] Available at:
https://w3techs.com/technologies/details/os-linux
[Diakses 21 Juni 2020].
L1-Daftar Riwayat Hidup Penulis
DAFTAR RIWAYAT HIDUP
Penulis bernama Mohan Maulana Saputra lahir di
Pemalang, 03 Januari 1997. Penulis merupakan
anak pertama dari dua bersaudara. Penulis
bertempat tinggal di Jl. Pembangunan II Cicadas,
Gunung Putri, Kabupaten Bogor. Penulis
menyelesaikan pendidikan sekolah dasar di SDIT
Asy-syifa pada tahun 2009. Menyelesaikan
pendidikan sekolah menengah pertama di SMP
Negeri 1 Gunung Putri pada tahun 2012 dan sekolah
menengah kejuruan di SMK Negeri 1 Gunung Putri
pada tahun 2015. Hingga sampai penulisan laporan
skripsi ini, penulis masih terdaftar sebagai mahasiswa aktif Diploma IV di
Politeknik Negeri Jakarta.
L2-Skrip Bash Untuk Medeteksi dan Mengangani Serangan Brute Force
#!/bin/bash
string="Failed password"
notifToTelegram() {
ip="$1"
pesan="Terdeteksi serangan brute force yang berasal dari alamat IP"+$ip
TOKEN=1119028446:AAGqXVbMiFaeNz5QijUHbPQhmFqZmpQ1HBE
CHAT_ID=820883629
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$pesan"
}
deteksi() {
a=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep -a "Failed password" | wc -l)
if [ $a -gt 3 ]
then
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Mencoba Mendeteksi
Upaya Serangan Brute Force" | sudo tee -a
/home/user/custom.log
fi
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Jumlah Kegagalan
Login dalam 1 menit terakhir = $a" | sudo tee -a /home/user/custom.log
if [ $a -gt 3 ]
then
b=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | head -n 1 | awk '{ print $1 }')
if [ $b -gt 3 ]
then
loop=$(awk -v d1="$(date --date="-30 min" "+%b %_d %H:%M")" -v
(lanjutan)
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | wc -l)
for i in $( seq 1 $loop )
do
c=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | sed -n "$i"p | awk '{ print $1 }')
if [ $c -gt 3 ]
then
ipaddress=$(awk -v d1="$(date --date="-1 min" "+%b %_d %H:%M")" -v
d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2'
/var/log/auth.log | grep "Failed password" | grep -Po "[0-9]+\.[0-9]+\.[0-
9]+\.[0-9]+" | sort -r | uniq -c | sed -n "$i"p | awk '{ if ( $1 > 3 ) print $2 }')
pesan="Terdeteksi serangan brute force yang berasal dari alamat IP
$ipaddress"
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : $pesan" | sudo tee -a
/home/user/custom.log
sudo iptables -A INPUT -s $ipaddress -j DROP
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Alamat IP $ipaddress
sudah diblokir" | sudo tee -a /home/user/custom.log
echo "$(date +"%Y-%m-%d %H:%M:%S.%3N") : Mengirim Notifikasi ke
Telegram" | sudo tee -a /home/user/custom.log
notifToTelegram $ipaddress
fi
done
fi
fi
}
(lanjutan)
while true
do
tail -1 /var/log/auth.log | \
while read LINE
do
if echo "$LINE" | grep "$string" 1>/dev/null 2>&1
then
deteksi
echo "give a new line" | sudo tee -a /var/log/auth.log
fi
done
done