elk with dionaea cowrie

26
ELK with Dionaea Cowrie Release 0.0.1 Jul 30, 2020

Upload: others

Post on 31-Jan-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

ELK with Dionaea CowrieRelease 0.0.1

Jul 30, 2020

Daftar Konten:

1 Intro 11.1 Instalasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Penggunaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Pengembangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Catatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

i

ii

CHAPTER 1

Intro

ELK (Elasticsearch, Logtash, dan Kibana) adalah SIEM yang cukup terkenal karena memang fungsinya yang sangatberguna dengan penggunaan yang memudahkan. Pada kesempatan ini, kami akan membahas cara instalasi, konfig-urasi, dan penggunaan ELK dengan Dionaea dan Cowrie yang sering ditemukan pada Honeypot. Selain itu, kami jugaakan membahas pengembangan yang dapat dilakukan seperti menambah keamanan dan sensor serta beberapa catatandalam pembuatan sistem ini.

1.1 Instalasi

Pada manual ini akan dijelaskan tahap instalasi dalam membuat dashboard malware monitoring menggunakan ELKStack dan Snort3 dengan cara mengambil dependencies langsung dari repository masing-masing tools.

1.1.1 Menyiapkan ELK Stack

ELK Stack merupakan sekumpulan tools open source yang terdiri dari Elasticsearch, Logstash dan Kibana yang memi-liki fungsi masing-masing Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash meru-pakan sebuah perangkat lunak open source untuk mengumpulkan dan memparsing log dan juga membuat index untuklog, kemudian disimpan pada elasticsearch. Kibana adalah web interface yang berguna untuk menampilkan log baikdalam bentuk grafik maupun visualisasi lainnya.

1.1.2 Install Java 8

Elasticsearch memerlukan Java 8 untuk dapat berjalan, oleh karena itu diperlukan instalasi Oracle Java 8.

tambahkan repository Java 8 kemudian dilanjutkan dengan update system dan instalasi.

Perintahnya:

add-apt-repository ppa:webupd8team/javaapt-get updateapt install oracle-java8-set-default

1

ELK with Dionaea Cowrie, Release 0.0.1

Setelah instalasi pastikan versi java sudah benar dengan menggunakan perintah berikut

java-versionecho $JAVA_HOME

Update versi ELK

Lakukan update versi ELK menjadi versi 7.8.x agar mendapatkan fitur tambahan dan tampilan interface yang terbaru

pertama dengan perintah wget untuk mengunduh Elasticsearch dengan kunci publiknya

sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add→˓-

selanjutnya mengunduh tools untuk mengirimkan paket dengan https

sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add→˓-

menambahkan repositorynya

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /→˓etc/apt/sources.list.d/elastic-7.x.list

setelah semua selesai lakukan update daftar repository dan install paketnya

1.1.3 Elasticsearch

Elasticsearch adalah tools open-source, mesin pencarian dan analisis berdasarkan mesin Apache Lucene dan dibangundengan RESTful API. Elasticsearch menawarkan kemudahan untuk pengolahan data dengan cara dapat menyimpan,mencari dan analisa data yang berukuran besar. Fungsinya yang digunakannya yaitu untuk melakukan filtering danquery dari data.

lakukan install Elasticsearch versi 7.8, perintah instalasi

apt-get install elasticsearch

pastikan bahwa layanan sudah berjalan

systemctl status elasticsearch

ketika layanan berjalan, lakukan konfigurasi file elasticsearch.yml dengan mengubah network.host dan http.port men-jadi

---------- Paths ----------

path.data: /var/lib/elasticsearchpath.logs: /var/log/elasticsearch

---------- Network ---------

network.host: 103.133.56.233http.port: 9200

setelah disimpan dan keluar, lakukan kembali restart sistem layanan. Lakukan cek instalasi dengan perintah

2 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

curl http://localhost:9200

1.1.4 Logstash

Logstash adalah tools untuk menyimpan data secara pipeline. Berfungsi untuk menyimpan data input dan memberikanke Elasticsearch. Logstash mengambil semua tipe data dari berbagai sumber dan dibuat agar dapat digunakan untukberbagai kegunaan. Fungsi yang digunakan adalah analisa berbagai struktur/non-struktur data dan events.

Perintahnya untuk instalasi Logstash

apt-get install logstash

lakukan cek status layanan logstash

systemctl status logstash

pada logstash terdapat tiga file konfigurasi yang menghubungkan input log dari server berbeda seperti cowrie, dionaeadan snort berikut adalah file konfigurasinya

logstash-cowrie.conf

input {

file {path => ["/home/cowrie/cowrie/var/log/cowrie/cowrie.js$codec => jsontype => "cowrie"

}output {

if [type] == "cowrie" {elasticsearch {

hosts => ["103.133.56.233:9200"]index => "kel4-cowrie-%{+YYY.MM.dd}"

}file {

path => "/tmp/cowrie-logstash.log"codec => json

}

logstash-dionaea.conf

input {beats {

port => 5044}

}filter {

if [document_type] == "dionaea" {json {

source => "message"}

if [remote_host] {mutate {

copy => { "remote_host" => "remote_hostname" }}

(continues on next page)

1.1. Instalasi 3

ELK with Dionaea Cowrie, Release 0.0.1

(continued from previous page)

dns {reverse => [ "remote_hostname" ]nameserver => [ "8.8.8.8", "8.8.4.4" ]action => "replace"hit_cache_size => 4096hit_cache_ttl => 900failed_cache_size => 512failed_cache_ttl => 900

}

geoip {source => "remote_host"target => "geoip"

}}

mutate {remove_tag => [ "beats_input_codec_plain_applied"]remove_field => [ "source", "offset", "input_type" ]

}}

}

output {if [document_type] == "dionaea" {

elasticsearch {hosts => ["103.133.56.233:9200"]index => "kel4-dionaea-%{+YYYY.MM.dd}"

}

logstash-snort.conf

input {file {

path => "/var/log/snort/alert_json*"start_position => "beginning"sincedb_path => "/dev/null"

}}

output {elasticsearch {

hosts => "http://103.133.56.233:9200"index => "kel4-snort3-%{+YYYY.MM.dd}"

}stdout { }

}

1.1.5 Kibana

Kibana adalah visualisasi data yang melengkapi ELK Stack. Tools ini digunakan untuk visualisasi file yang sudahanalisa dan diparsing oleh Elasticsearch untuk memudahkan pengembang dalam melihat data. Dashboard Kibanamenawarkan berbagai diagram interactive, data geospatial, dan graph untuk visualisasi data kompleks.

Perintah untuk instalasi Kibana

4 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

apt-get install kibana

lakukan cek layanan Kibana

ssytemctl status kibana

lakukan konfigurasi Kibana di file konfigurasinya yaitu kibana.yml, lakukan dengan perintah berikut:

vim /etc/kibana/kibana.yml

kemudian ubah beberapa konfigurasi pada filenya disesuaikan dengan sistem. Simpan dan keluar, kemudian lakukanrestart layanan Kibana

server.port: 5601

server.host: "103.133.56.233"

elasticsearch.host: [http://103.133.56.233:9200:]

dan ubah perintah server hostnya menjadi localhost. Simpan dan keluar, kemudian lakukan restart layanan Kibana

Meskipun ELK Stack hanya terdiri dari tiga tools utama yaitu Elasticsearch, Logstash dan Kibana. Namun terdapatbeberapa tools pendukung lain yang diperlukan agar fungsi dashboard malware ini dapat berjalan sempurna, beberapadependenciesnya yang diinstal sebagai berikut:

Filebeat

apt-get install filebeat

lakukan cek layanan Filebeat untuk memastikan sudah berjalan

systemctl status filebeat

ubah beberapa konfigurasi pada file filebeat.yml

filebeat.inputsL- type: log

paths:- /opt/dionaea/var/dionaea/json/dionaea.json*

fields:document_type: dionaea

fields_under_root: trueoutput:

logstash:host: ["103.133.56.233:5044"]bulk_max_size: 2048

SqliteToJson

SqliteToJson berguna untuk melakukan konversi struktur data SQL menjadi struktur data JSON yang digunakan olehELK, data SQL yang diambil dari server dionaea.

Tools diunduh dari repository yang ada di github, sehingga perintahnya:

1.1. Instalasi 5

ELK with Dionaea Cowrie, Release 0.0.1

wget https://raw.githubusercontent.com/eva2A/dionaeaToJSON/master/dionaeaSqliteToJson.→˓py

Nginx

Penggunaan nginx pada ELK Stack adalah sebagai reverse proxy untuk keamanan jaringan dengan menjadi serveryang menjadi penyimpanan logs

cara instalasinya

apt install nginx apache2-utils

1.2 Penggunaan

1.2.1 ELK (Elasticsearch, Logstash dan Kibana)

Elasticsearch, Logstash dan Kibana adalah tools yang berguna untuk mengumpulkan log dan juga menvisualisasi ataumenampilkan log , Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash merupakansebuah perangkat lunak open source untuk mengumpulkan dan memparsing log dan juga membuat index untuk log,kemudian disimpan pada elasticsearch. Kibana adalah web interface yang berguna untuk menampilkan log baik dalambentuk grafik maupun visualisasi lainnya. Untuk file agent, diperlukan filebeat yang berguna untuk mengirim log darisetiap server kepada logstash Log yang tersentralisasi sangat berguna jika suatu saat seorang DevOps akan melakukanidentifikasi masalah pada server atau aplikasi. Hal tersebut membuat mereka mampu mencari histori data atau log.Pada kesempatan ini, seluruh log kami dapatkan dari server Dionaea dan Cowrie yang berfungsi sebagai Honeypot.Kami juga menggunakan log yang dihasilkan dari sensor yang kami buat, dalam hal ini Snort.

1.2.2 Komponen ELK

Pada praktikum ini dimana membuat bank data terkait malware maka ELK memiliki tugas dan fungsi sebagai berikut:

a. Logstash : memproses log dari malware dan membuat index log malware.

b. Elasticsearch : menyimpan semua log malware.

c. Kibana : Web interface untuk mencari dan memvisualisasikan log malware dalam grafik yang di inginkan.

d. Filebeat : mengirim log ke logstash. Berfungsi sebagai shipping agent untuk log. Menggunakan lumberjacknetworking protocol untuk berkomunikasi dengan logstash. Filebeat akan dipasang di server yang mempunyailog (yang akan diproses).

1.2.3 Tampilan

Berikut merupakan tampilan dari Kibana dan Log

a. Tampilan Kibana (putih)

Pada bagian ini ditampilkan tampilan Kibana yang lebih menonjolkan informasi serangan berdasarkan negara peny-erang. Setiap warna yang ada pada gambar di bawah ini mengindikasikan banyaknya serangan yang dilakukan olehnegara-negara tersebut kepada server. Pada tampilan ini juga memberikan informasi tentang apa saja yang dilakukanoleh penyerang dan malware apa saja yang dimasukkan penyerang ke dalam server.

6 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

b. Tampilan Kibana (hitam)

Pada bagian ini ditampilkan perubahan tampilan terakhir yang kami lakukan. Pada tampilan ini, kami lebih mengede-pankan informasi yang informatif tentang serangan yang dilakukan penyerang. Kami menampilkan map dengan in-dikator border putih untuk menunjukkan asal negara penyerang secara total, data penyerang terbanyak, dan malwareterbanyak yang dimasukkan pada server. Selain itu, kami juga menunjukkan grafik serangan setiap hari dan waktu.Hal ini digunakan agar monitoring pada sistem lebih terjaga.

c. Tampilan Log

Pada bagian ini ditampilkan log yang kami dapatkan dari server. Semua log ini memiliki ketentuan-ketentuan tertentuyang kemudian kami olah menjadi seperti pada tampilan-tampilan Kibana sebelumnya. Adapun semua log yang kamiolah ini, memiliki format file JSON.

1.2. Penggunaan 7

ELK with Dionaea Cowrie, Release 0.0.1

1.3 Pengembangan

ELK merupakan tumpukan yang terdiri dari tiga software: Elasticsearch, Logstash dan Kibana. Dengan kemampuandari ketiga software yang digabungkan menjadi satu kesatuan, ELK Stack dapat digunakan untuk pencarian, pemros-esan data, agregasi, dan visualisasi.

Tidak hanya sebatas dengan kemampuan tersebut, dimana tujuannya adalah memvisualisasikan banyak data yangdiperoleh agar human-readable. ELK Stack dapat dikembangakan dengan menambahkan konfigurasi atau diinte-grasikan dengan software yang mendukung. Seperti dalam projek ini kami menambahkan & mengintegrasikan Cowrie,kemudian Snort ditambah pengamanan yang didapat dari X-pack

1.3.1 Snort 3

Snort adalah tools open-source untuk Network-Based Intrusion Detection System (NIDS) yang memiliki fitur untksniff lalu lintas jaringan dan melakukan monitoring paket data yang masuk dan keluar dari jaringan kllien ke server atausebaliknya. Fitur yang digunakan adalah fungsi snort untuk analisa setiap paket dari aktivitas malicious yang berjalanmelalui jaringan. Seluruh instalasi snort dilakukan pada direktori ~/Kelompok_4/snort_src/ , instalasi berdasarkanrefrensi dari Noah Dietrich dalam bukunya Snort 3 on Ubuntu.

Snort banyak membutuhkan dependencies agar dapat berjalan sesuai dengan fungsinya

Gperftools

unduh dan install gperftools 2.7. tcmalloc adalah memory allocator untuk optimisasi concurrency tinggi dan menye-diakan kecepatan cepat untuk penukaran penggunaan memory

sudo apt-get install -y build-essential autotools-dev libdumbnet-dev \ libluajit-5.1-→˓dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev \cmakesudo apt-get install -y liblzma-dev openssl libssl-dev cpputest \libsqlite3-dev uuid-→˓dev

Snort DAQ (Data Acquisition Library) memiliki beberapa kebutuhan untuk dapat berjalan

8 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

sudo apt-get install -y bison flex libcmocka-d

lakukan build dan instalasi dari gperftools

sudo apt install -y libundwind-devcd ~/snort_srcwget https://github.com/gperftools/gperftools/releases/download/gperftools-2.7.90/→˓gperftools-2.7.90.tar.gztar xzvf gperftools-2.7.90.tar.gzcd gperftools-2.7.90./configuremakesudo make install

Hyperscan

Snort 3 menggunakan hyperscan untuk menyamakan pattern dengan cepat, Hyperscan membutuhkan Ragel dan BoostHeader. Kegunaan Boost adalah untuk libraries C++ untuk Hyperscan.

wget https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gztar -xvzf boost_1_72_0.tar.gz

Ragel

wget http://www.colm.net/files/ragel/ragel-6.10.tar.gztar -xzvf ragel-6.10.tar.gzcd ragel-6.10./configuremakesudo make install

Install hyperscan dari source langsung, dengan berada pada direktori yang sama pada Boost Header untuk digunakanlibrariesnya

cd ~/snort_srcwget https://github.com/intel/hyperscan/archive/v5.2.1.tar.gztar -xvzf v5.2.1.tar.gzmkdir ~/snort_src/hyperscan-5.2.1-buildcd hyperscan-5.2.1-build/cmake-DCMAKE_INSTALL_PREFIX=/usr/local -DBOOST_ROOT=~/snort_src/boost_1_72_0/ ../→˓hyperscan-5.2.1makesudo make install

untuk menguji apakah hyperscan sudah dapat bekerja dengan menjalankan perintah berikut pada direktorinya

cd ~/snort_src/hyperscan-5.2.1-build/./bin/unit-hyperscan

Flatbuffer

salah satu kebutuhan dari snort adalah flatbuffer, untuk efisiensi memory serialization library.

1.3. Pengembangan 9

ELK with Dionaea Cowrie, Release 0.0.1

cd ~/snort_srcwget https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz \-O flatbuffers-v1.12.0.tar.gztar -xzvf flatbuffers-v1.12.0.tar.gzmkdir flatbuffers-buildcd flatbuffers-buildcmake ../flatbuffers-1.12.0makesudo make install

Libdaq

lakukan instalasi Data Aquisition Library (DAQ) dari website snort. Kemudian lakukan update library snortnya

cd ~/snort_srcgit clone https://github.com/snort3/libdaq.gitcd libdaq./bootstrap./configuremakesudo make installsudo ldconfig

Snort3

Sekarang sudah dapat untuk mengunduh, kompile dan install Snort 3 dari repository Github.

cd ~/snort_srcgit clone git://github.com/snortadmin/snort3.gitcd snort3./configure_cmake.sh --prefix=/usr/local --enable-tcmalloccd buildmakesudo make install

langkah terakhir dalam tahap instalasi Snort adalah untuk verifikasi bahwa Snort terinstall dan dapat berjalan.

/usr/local/bin/snort -V

maka akan terlihat output sebagai berikut

,,_ -*> Snort++ <*o" )~ Version 3.0.1 (Build 2)'''' By Martin Roesch & The Snort Team

http://snort.org/contact#teamCopyright (C) 2014-2020 Cisco and/or its affiliates. Allrights reserved.Copyright (C) 1998-2013 Sourcefire, Inc., et al.Using DAQ version 3.0.0Using LuaJIT version 2.1.0-beta3Using OpenSSL 1.1.1f 31 Mar 2020Using libpcap version 1.9.1 (with TPACKET_V3)Using PCRE version 8.43 2019-02-23Using ZLIB version 1.2.11Using FlatBuffers 1.12.0

(continues on next page)

10 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

(continued from previous page)

Using Hyperscan version 5.2.1 2020-04-25Using LZMA version 5.2.4

Jika output terlihat seperti pada gambar maka Snort sudah terinstall dan bekerja. Selanjutnya uji Snort dengan filekonfigurasi defaultnya.

snort -c /usr/local/etc/snort/snort.lua

Snort successfully validated the configuration (with 0 warnings).o")~ Snort exiting

Menambahkan Rules

Sebelumnya kita buat direktori untuk menyimpan log snort yang nantinya akan berguna untuk ELK Stack

sudo mkdir /var/log/snort

Pembuatan rules dapat kita lakukan sendiri, dengan membuat sendiri local rules atau menambahkan rules yang adadari internet.

Untuk membuat local rules bisa dilakukan dengan cara sebagai berikut.

sudo mkdir /usr/local/etc/rulessudo touch /usr/local/etc/rules/local.rulessudo vi /usr/local/etc/rules/local.rules

Isikan rules yang kita inginkan dalam hal ini kami memberikan rules untuk pendeteksian protokol ICMP.

alert icmp any any -> any any (msg:"ICMP Traffic Detected";sid:10000002;)

Kemudian jalankan snort untuk memuat rules yang telah dibuat.

snort -c /usr/local/etc/snort/snort.lua \-R /usr/local/etc/rules/local.rules

Untuk menambahkan rules dari internet kita dapat melakukan dengan cara sebagai berikut.

Pertama-tama buat folder built_rules, folder ini berisi referensi dan info untuk rules bawaan

sudo mkdir /usr/local/etc/builtin_rules

Kemudian download rules dari internet. Untuk rules ini kami peroleh dari website resmi Snort dengan nama filesnortrules-3000

cd ~/snort_src/mkdir snortrules-3000tar -xvzf snortrules-snapshot-3000.tar.gz -C ./snortrules-3000cd snortrules-3000sudo cp ./rules/*.rules /usr/local/etc/rules/sudo cp ./builtins/builtins.rules /usr/local/etc/builtin_rules/sudo cp ./etc/* /usr/local/etc/snort/

Ubah konfigurasi dalam file snort.lua

1.3. Pengembangan 11

ELK with Dionaea Cowrie, Release 0.0.1

sudo vi /usr/local/etc/snort/snort.lua

Perubahan yang dilakukan adalah sebagai berikut.

HOME_NET = '103.133.56.233'

ips ={

-- use this to enable decoder and inspector alertsenable_builtin_rules = true,-- use include for rules files; be sure to set your path-- note that rules files can include other rules files--include = 'snort3-community.rules',-- The following include syntax is only valid for ...-- RULE_PATH is typically set in snort_defaults.luarules = [[

include $BUILTIN_RULE_PATH/builtins.rules

include $RULE_PATH/snort3-app-detect.rulesinclude $RULE_PATH/snort3-browser-chrome.rules

...}

Cek file konfigurasi dan pastikan tidak ada error

snort -c /usr/local/etc/snort/snort.lua \-R /usr/local/etc/rules/local.rules

Passing File PCAP ke Snort dan Output Alert JSON

File PCAP yang dapat digunakan untuk menghasilkan peringatan dari rules builtin dan rules tambahan lainnya.

mkdir pcapscd pcapswget https://download.netresec.com/pcap/maccdc-2012/maccdc2012_00000.pcap.gzgunzip maccdc2012_00000.pcap.gzwget https://download.netresec.com/pcap/maccdc-2012/maccdc2012_00001.pcap.gzgunzip maccdc2012_00001.pcap.gz

Edit file konfigurasi snort.lua

sudo vi /usr/local/etc/snort/snort.lua

Aktifkan alert JSON

alert_json ={

file = true,limit = 10,fields = 'seconds action class b64_data dir dst_addr \dst_ap dst_port eth_dst eth_len eth_src eth_type gid icmp_code \icmp_id icmp_seq icmp_type iface ip_id ip_len msg mpls pkt_gen \pkt_len pkt_num priority proto rev rule service sid src_addr \src_ap src_port target tcp_ack tcp_flags tcp_len tcp_seq \tcp_win tos ttl udp_len vlan timestamp',

}

12 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

Pertama-tama kita menggunakan opsi file untuk mengaktifkan alert file berformat json. Selanjutnya kita tentukanopsi limit untuk memberi tahu Snort kapan harus membuat file baru, ketika file alert mencapai 10 MB. Limit ini bisadiubah sesuai keinginan dan kemampuan dari server. Kemudian menentukan opsi bidang, untuk mengidentifikasisecara spesifik dari alert harus diinput dalam file json.

Jika kita menjalankan snort dengan perintah sebagai berikut.

sudo snort -c /usr/local/etc/snort/snort.lua --pcap-filter \*.pcap \--pcap-dir ~/pcaps -l /var/log/snort -s 65535 -k none -m 0x1b

Dilayar terminal tidak akan terjadi apa-apa, karena output alert akan dimasukkan ke dalam file json yang tersimpan didirektori log snort.

Membuat Snort Berjalan Startup

Kami membuat menambahkan skrip systemd untuk menjalankan snort secara otomatis saat server menyala, denganperintah sebagai berikut.

sudo groupadd snortsudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snortsudo rm /var/log/snort/*sudo chmod -R 5775 /var/log/snortsudo chown -R snort:snort /var/log/snortsudo vi /lib/systemd/system/snort3.service

[Unit]Description=Snort3 NIDS DaemonAfter=syslog.target network.target

[Service]Type=simpleExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 \-k none -l /var/log/snort -D -u snort -g snort -i eth0 -m 0x1b

[Install]WantedBy=multi-user.target

Aktifkan layanan snort3

sudo systemctl enable snort3sudo service snort3 start

Cek status layanan

service snort3 status

Jika berhasil maka snort bisa selalu aktif dan dapat dijalankan.

1.3. Pengembangan 13

ELK with Dionaea Cowrie, Release 0.0.1

Integrasi Snort ke ELK

Untuk dapat mengintgrasikan file log snort agar dapat dikumpulkan oleh Logstash, kami membuat file konfigurasidengan nama logstash-snort.conf di direktori /etc/logstash/conf.d dengan perintah sebagai berikut.

input {file {

path => "/var/log/snort/alert_json*"start_position => "beginning"sincedb_path => "/dev/null"

}}

filter {json {

source => "message"}mutate {

convert => {"pkt_num" => "integer""pkt_len" => "integer""src_port" => "integer""dst_port" => "integer""priority" => "integer"

}gsub => ["timestamp", "\d{3}$", ""]

(continues on next page)

14 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

(continued from previous page)

}date {

match => [ "timestamp", "yy/MM/dd-HH:mm:ss.SSS" ]}geoip { source => "src_addr" }

}

output {elasticsearch {

hosts => "http://103.133.56.233:9200"index => "kel4-snort3-%{+YYYY.MM.dd}"

}stdout { }

}

Kemudian save dan restart layanan logstash.

1.3.2 Cowrie

Cowrie merupakan tools yang dirancang untuk mencatat serangan brute force dan interaksi shell yang dilakukan olehpenyerang. Dalam mode interaksi sedang (shell) ia mengemulasi sistem UNIX dengan Python, dalam mode interaksitinggi (proxy) berfungsi sebagai SSH dan proxy telnet untuk mengamati perilaku penyerang ke sistem lain.

ELK sendiri dapat diintegrasikan dengan tools ini. Caranya sma dengan mengintegrasikan Snort ke ELK yaitu denganmenuliskan skrip di direktori /etc/logstash/conf.d kami simpan dengan nama logstash-cowrie.conf seperti berikut.

input {# arahkan ke tempat file log cowriefile {

path => ["/home/cowrie/cowrie/var/log/cowrie/cowrie.json*"]codec => jsontype => "cowrie"

}# gunakan ini jika input dari tcp#tcp {# port => 3333# type => "cowrie"#}

}filter {

if [type] == "cowrie" {json {

source => message}date {

match => [ "timestamp", "ISO8601" ]}if [src_ip] {

dns {reverse => [ "src_host", "src_ip" ]action => "append"

}geoip {

source => "src_ip"target => "geoip"

(continues on next page)

1.3. Pengembangan 15

ELK with Dionaea Cowrie, Release 0.0.1

(continued from previous page)

database => "/opt/GeoLite2-City.mmdb"}

}}

}output {

if [type] == "cowrie" {elasticsearch {

hosts => ["103.133.56.233:9200"]index => "kel4-cowrie-%{+YYY.MM.dd}"

}file {

path => "/tmp/cowrie-logstash.log"codec => json

}stdout {

codec => rubydebug}

}}

1.3.3 Set Up X-Pack

X-pack merupakan serangkaian kode yang dikembangakan oleh pihak elastic.co sendiri untuk memaksimalkan peng-gunaan ELK dengan memiliki banyak fitur didalamnya.

ELK yang kami gunakan adalah versi 7.8 maka X-Pack sudah terinstall otomatis untuk versi X-pack yang gratisdengan fitur monitoring, file maps, Grok Debugger, dan Search Profiler.

Sedangkan untuk pengembangan ini kami melakukan fitur keamanan yang didapat dari versi X-pack yang berbayar.

Aktifkan Trial Version

Untuk kegiatan promosi sendiri ELK menyediakan Trial Version 30 Hari. Versi ini akan mengaktifkan beberapafitur yang sebelumnya tidak ada di versi gratisnya, misalnya dalam pengembangan ini adalah fitur keamanan denganusername dan password untuk mengakses dashboard Kibana.

Caranya sendiri dapat dilakukan di dashboard Kibana > Kemudian pilih menu yang ada di pojok kiri layar Kibana >Stack Management > Licence Management > Start Trial.

16 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

Jika sudah maka tampilannya akan seperti ini.

Setting Password

Setelah diaktifkan trial version kita akan mendapatkan lisensi untuk menjalankan beberapa fitur yang ada seperti fitukeamanan username dan password.

Berikut cara membuat men-setting Password secara interactive

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

Akan muncul diterminal seperti pada gambar berikut.

1.3. Pengembangan 17

ELK with Dionaea Cowrie, Release 0.0.1

Jika berhasil maka saat kita ingin mengakses dashboard Kibana tampilannya akan seperti pada gambar berikut.

Untuk login dapat dilakukan dengan password yang telah kita atur sesuai dengan username default-nya.

1.4 Catatan

Dalam pengerjaan projek ELK Stack ini, kami menemukan beberapa kendala yang mempengaruhi, sehingga dalamhasil dokumentasi kurang detail dan maksimal.

Kendala-kendala tersebut adalah sebagai berikut.

18 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

1.4.1 Meow Attack

Tanggal 25 Juli 2020, kami mencoba mengakses dashboard Kibana tetapi tidak dapat diakses seperti pada gambarberikut

Kami mencoba untuk me-restart layanan yang berhubungan dengan hal tersebut, dashboard bisa diakses kembali,tetapi untuk database dari elasticsearch hilang. Index Pattern yang sebelumnya sudah dibuat tiba-tiba hilang yangmenyebabkan visualisasi dashboard tidak dapat dilakukan, juga pada halaman Discover data-data dari semua log tidakbisa ditampilkan.

Setelah itu kami mencoba untuk mencari tau mengapa hal tersebut terjadi, dengan mengakses elasticsearch di browser.

URL :103.133.56.233:9200/_cat/indices?v

Kemudian memunculkan daftar index yang ada seperti pada gambar berikut.

1.4. Catatan 19

ELK with Dionaea Cowrie, Release 0.0.1

Dari gambar tersebut terdapat keanehan dimana terdapat index yang tidak ada sebelumnya dan mencurigakan. Indextersebut selalu berakhiran “-meow” dalam penamaannya. Ternyata setelah dicari tau penyebabnya. ELK stack kamitelah terkena Meow Attack.

20 Chapter 1. Intro

ELK with Dionaea Cowrie, Release 0.0.1

1.4. Catatan 21

ELK with Dionaea Cowrie, Release 0.0.1

Serangan ini menyerang database yang tidak terlindungi untuk elasticsearch dan MonggoDB. Hacker menggunakanbot untuk menghapus semua database dan meninggalkan jejak dengan akhiran kata “-meow”. Database dihapus tanpaperingatan, tidak seperti serangan hacker yang meyabotase database dan biasanya meminta uang tebusan, tetapi seran-gan ini hanya sekedar iseng belaka tanpa kita ketahui motivasi dibalik serangan tersebut.

Serangan ini 2 kali menyerang ELK Stack kami, untuk yang kedua setelah diinstall ulang untuk ELK Stack laluditambahkan fitur X-Pack untuk antisipasi. Serangan yang kedua terjadi lagi pada tanggal 29 Juli 2020. Saat sedangmengkonfigurasi keamanan login dari X-Pack dimana kami mematikan sesaat fitur dan sedang melakukan pembuatanvisualisasi untuk dashboard tiba-tiba saja terjadi serangan itu lagi, karena dirasa pengumpulan projek sudah mendekatihari H, kami memutuskan untuk serangan terakhir tersebut tidak dilakukan upaya penanggulangan seperti install ulang.

Mitigasi

Tindakan yang kami ketahui saat ini adalah dengan menambahkan fitur keamanan yang kuat di server VPS supayahacker tidak bisa menyusupi kembali dengan bot yang mereka sebar di internet. Untuk fitur keamanan yang dapatditambahkan di fitur ELK Stack adalah dengan set up username dan password menggunakan X-Pack.

Untuk tindakan mitigasi lainnya yang lebih efektif masih belum bisa kami ketahui, dikarenakan Meow Attack ini yangbaru muncul akhir Juli 2020 dan belum ada yang membahas terutama setelah terjadi serangan atau penanggulanganserangan tersebut.

1.4.2 Saran Pengerjaan Project ELK Stack

Pengerjaan projek agar maksimal dan tidak terjadi kendala dari eksternal maupun internal.

Hal pertama saat sebelum melakukan instalasi adalah pastikan space storage atau RAM server mumpuni untuk men-ginstall tools atau software yang diperlukan, kemudian karena tujuannya adalah menyimpan data log yang sangatbanyak untuk divisualisasikan.

Kemudian setelah selesai melakukan instalasi ELK Stack, tambahkan fitur keamanan X-Pack yang lisensinya tersediasaat mengaktifkan trial version. Hal ini wajib dilakukan karena belum diketahui tindakan penanggulangan yang terjaditerhadap Meow Attack yang menjadi keleamahan database yang tidak ada fitur keamanan terutama pada elasticsearchdan MonggoDB.

22 Chapter 1. Intro