Fakultas Ilmu Komputer UI

Commit 61a6c869 authored by Ragil Al Badrun Pasaribu's avatar Ragil Al Badrun Pasaribu
Browse files

Blog albadrun

parent 8237daec
Pipeline #16370 passed with stages
in 2 minutes and 20 seconds
......@@ -17,7 +17,7 @@ contoh saya akan mengambil persona dari aplikasi SIMLOMANKEJAP.
### Pimpinan
Dalam kesehariannya Pak Taufik memiliki ritme kerja yang super sibuk sehingga
tidak akan sempat untuk melihat secara detail serangan-serangan yang terjadi. Karena
hal tersebut maka Pak Taufik lebih senang melihat laporan yang menggambarkan
hal tersebut maka Pak Taufik lebih senang melihat laporan yang menggambarkan
keadaan dalam satu kali lihat, seperti laporan dalam bentuk grafik dan sebagainya.
Maka kami sebagai developer harus memfasilitasi hal ini. Berdasarkan hal tersebut
......@@ -28,7 +28,7 @@ tersebut berasal darimana dan sebagainya.
### Sekretaris
Hampir sama dengan Pimpinan, sekretaris mengikuti jadwal pimpinan yang super padat.
Maka aplikasi haruslah gampang untuk digunakan agar tidak memakan banyak waktu sekretaris
dalam mempelajari hal tersebut. Dalam SIMLOMANKEJAP kami telah berusaha untuk
dalam mempelajari hal tersebut. Dalam SIMLOMANKEJAP kami telah berusaha untuk
membuat aplikasi yang ramah bagi pengguna.
### Staff
......@@ -38,5 +38,3 @@ Staff merupakan orang yang ahli mengenai hal-hal dalam aplikasi ini. Karena hal
selain informasi umum, kami juga menampilkan informasi-informasi detail, misal terkait log.
Kami menampilkan _payload_ yang ada dalam request, IP, header dan informasi-informasi detail
lainnya yang diharapkan mempermudah si staff ini.
---
layout: post
title: Mock di Python3
date: 2019-05-01 23.39.10 +0700
author: ragil
---
Salah satu fitur yang sangat bermanfaat di Python3 adalah `unittest.mock`. Lalu
bagaimana memakai library ini?
<!--more-->
Pada kali ini saya akan mencoba memakai library ini untuk membuat test di django.
Paling mudah untuk memakai library ini adalah dengan memakai decorator pada class test.
```py
from unittest import mock
@mock.patch("function.need.to.be.Mocked", autospec=True)
class Test(APITestCase):
def setUp(self):
pass
```
Selanjutnya, pada tiap test kita hanya harus menambah parameter yang akan menggantikan
fungsi tersebut.
```py
def test_something(self, mock_elasticsearch):
mock_elasticsearch.filter_logs = lambda x: x + 2
```
Pada kode di atas, fungsi yang seharusnya akan berganti menjadi `x + 2` jika test
dijalankan.
Sekian.
---
layout: post
title: Persona? v2
date: 2019-05-01 23.30.10 +0700
author: ragil
---
Persona adalah karakteristik dari orang-orang yang khususnya akan memakai
aplikasi. Lalu apa gunanya hal ini?
<!--more-->
Hal ini berguna untuk developer memahami secara cepat bagaimana segmentasi
pengguna aplikasi, sehingga fitur yang di-develop tidak salah sasaran. Sebagai
contoh saya akan mengambil persona dari aplikasi SIMLOMANKEJAP.
### Pimpinan
Dalam kesehariannya pimpinan memiliki ritme kerja yang super sibuk sehingga
tidak akan sempat untuk melihat secara detail serangan-serangan yang terjadi. Karena
hal tersebut maka pimpinan lebih senang melihat laporan yang menggambarkan
keadaan dalam satu kali lihat, seperti laporan dalam bentuk grafik dan sebagainya.
Maka kami sebagai developer harus memfasilitasi hal ini. Berdasarkan hal tersebut
maka pada sprint selanjutnya kami akan membuat grafik-grafik data serangan. Saat ini
kami telah membangun peta serangan sehingga dalam satu kali lihat kita tahu serangan
tersebut berasal darimana dan sebagainya.
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/attack-classification.png)
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/top-countries.png)
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/top-dest-ip.png)
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/top-ip.png)
### Staff
Staff merupakan orang yang ahli mengenai hal-hal dalam aplikasi ini. Karena hal tersebut
selain informasi umum, kami juga menampilkan informasi-informasi detail, misal terkait log.
Kami menampilkan _payload_ yang ada dalam request, IP, header dan informasi-informasi detail
lainnya yang diharapkan mempermudah staff.
Nantinya kami akan menyediakan fitur download PDF agar staff lebih mudah memberikan
laporan kertas (bukti) ke tim lain jika terjadi serangan untuk penanganan secepatnya.
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/filter-log.png)
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/detail-log.png)
### Public
Karena tujuan utama website ini untuk memberikan informasi ke publik mengenai serangan ke server
yang dimiliki BPPT, maka data-data spesifik pada peta di awal akan dihilangkan dan hanya tinggal
arah serangan dari mana ke mana.
![ ](/assets/images/2019-05-01-persona-apa-gunanya-v2/map.png)
Sekian.
---
layout: post
title: Service di SIMLOMANKEJAP
date: 2019-05-01 23.33.10 +0700
author: ragil
---
SIMLOMANKEJAP merupakan sistem monitoring log keamanan jaringan aplikasi pemerintah.
Dengan banyaknya aplikasi pemerintah, maka pasti banyak log yang dihasilkan, lalu bagaimana
SIMLOMANKEJAP bekerja untuk menangani hal tersebut?
<!--more-->
Untuk lebih jelasnya kita dapat melihat bagan ini.
![ ](/assets/images/2019-05-01-service-di-simlomankejap/simlomankejap-skema.png)
Jadi pada simlomankejap ada tiga bagian utama, public accessible network, private network, dan
data center BPPT. Tim kami mengerjakan bagian pertama dan kedua, sementara bagian ketiga sudah
dimiliki oleh BPPT.
Pada bagian public accessible network sama seperti aplikasi lainnya, secara umum terdiri dari
frontend dan backend. Pada SIMLOMANKEJAP kami menggunakan dua backend, kenapa dua? Satu digunakan
untuk mengambil data biasa, yang satu lagi untuk mengambil data secara real-time menggunakan
djang-channel dan redis.
Untuk private network, sengaja tidak bisa diakses lewat internet karena memiliki data-data
penting yang tidak boleh diketahui oleh orang luar. Data-data ini nantinya hanya bisa diakses
secara lokal oleh BPPT. Untuk service yang ada di sini, ada postgres, elasticsearch, dan logstash.
Postgres digunakan untuk menyimpan data biasa seperti user dan server, elastic untuk log, dan logstash
digunakan untuk mempercantik log dengan memberikan geo ip dan yang lainnya. Kenapa menggunakan elastic?
Karena banyaknya data log, maka dibutuhkan search yang cepat, maka digunakanlah elastic. Kenapa
tidak menggunakan postgres? Karena jika menggunakan postgres dalam data banyak bisa sangat pelan
dan mempengaruhi kecepatan.
Lalu bagaimana bisa sampai ke elastic atau logstash? Di data center BPPT akan dipasang
barnyard2 yang akan mengirim hasil dari snort ke logstash untuk dipercantik, lalu logstash akan
manyimpan data tersebut ke elastic.
Secara singkat berikut service di SIMLOMANKEJAP:
- Snort
- Barnyard2
- ElasticSearch
- Logstash
- Postgres
- Backend
- Static Files Server
- Dashboard
- Aggregator
Sekian.
docker run --rm \
--volume="$PWD:/srv/jekyll" \
-p 4040:4000 \
-it jekyll/jekyll:3.8 \
jekyll serve
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment