Instalasi

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

Menyiapkan ELK Stack

ELK Stack merupakan sekumpulan tools open source yang terdiri dari Elasticsearch, Logstash dan Kibana yang memiliki fungsi masing-masing Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash merupakan sebuah 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 dalam bentuk grafik maupun visualisasi lainnya.

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/java
apt-get update
apt install oracle-java8-set-default

Setelah instalasi pastikan versi java sudah benar dengan menggunakan perintah berikut

java-version
echo $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

Elasticsearch

Elasticsearch adalah tools open-source, mesin pencarian dan analisis berdasarkan mesin Apache Lucene dan dibangun dengan 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 dan query 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 menjadi

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

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

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

network.host: 103.133.56.233
http.port: 9200

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

curl http://localhost:9200

Logstash

Logstash adalah tools untuk menyimpan data secara pipeline. Berfungsi untuk menyimpan data input dan memberikan ke Elasticsearch. Logstash mengambil semua tipe data dari berbagai sumber dan dibuat agar dapat digunakan untuk berbagai 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, dionaea dan snort berikut adalah file konfigurasinya

logstash-cowrie.conf

input {

     file {
            path => ["/home/cowrie/cowrie/var/log/cowrie/cowrie.js$
            codec => json
            type => "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" }
                      }

                      dns {
                              reverse => [ "remote_hostname" ]
                              nameserver => [ "8.8.8.8", "8.8.4.4" ]
                              action => "replace"
                              hit_cache_size => 4096
                              hit_cache_ttl => 900
                              failed_cache_size => 512
                              failed_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 { }
}

Kibana

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

Perintah untuk instalasi Kibana

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 lakukan restart 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 terdapat beberapa tools pendukung lain yang diperlukan agar fungsi dashboard malware ini dapat berjalan sempurna, beberapa dependenciesnya 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: true
output:
  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 oleh ELK, data SQL yang diambil dari server dionaea.

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

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 server yang menjadi penyimpanan logs

cara instalasinya

apt install nginx apache2-utils