diskusi.tech (beta) Community

loading...
Cover image for 5 Cara dari Senior System Engineer Gojek Biar Sistem-mu Gak Di-Hack
DeepTechID

5 Cara dari Senior System Engineer Gojek Biar Sistem-mu Gak Di-Hack

mimindeeptech profile image Mimin Deep Tech ・2 min read

Menurut Senior System Engineer Gojek, Giri Kuncoro, saat ngebangun software, kita perlu punya dua pola pikir ini:

  1. Pikirin kalo suatu saat sistem bakal diserang dan diretas, jadi kita harus ngebangun sistem yang aman.
  2. Pikirin kalo suatu saat sistem bakal gagal, jadi kita harus ngebangun sistem yang andal.

Apalagi, penggunaan media digital lagi tinggi banget sekarang. Demi menuhin kebutuhan keamanan dan privasi pengguna, keamanan dan keandalan jadi hal yang penting banget.

Dalam prosesnya, keamanan dan keandalan sangat rentan terhadap perubahan sistem. Jadi, kita perlu merhatiin dan lakuin pengujian terus-menerus. Berikut ini beberapa hal yang perlu diperhatiin dalam ngebangun sistem yang aman dan andal:

1. Gak Terlihat
Saat sistem berjalan, aman atau gaknya sistem itu gak bakal terlihat. Padahal, developer perlu ngejamin hal ini biar dapet kepercayaan dari pengguna atau partner.

Kuncinya adalah komunikasi yang baik dengan ngasih tau keadaan sistem kepada pengguna atau partner. Baik keadaan sistem saat ada gangguan atau keadaan sistem di saat normal.

2. Evaluasi
Gak ada sistem yang sempurna. Karena itu, kita perlu evaluasi keamanan dan keandalan sistem.

Buat ngevaluasi keamanan sistem, kita bisa lakuin uji peretasan (adversarial testing).

Uji peretasan
Simulasi penyerangan terhadap sistem yang kita buat sendiri dan dilakuin oleh peretas beretika.

Dari pengujian ini kita bisa tau 2 hal:

  • Seberapa efektif sistem kita berhasil ngedeteksi adanya penyerangan
  • Seberapa besar konsekuensi yang bakal terjadi kalo sistem kita diserang.

Buat ngevaluasi keandalan sistem, kita bisa gunain error budget. Jadi saat komponen ngalamin gangguan berulang kali dan lewatin "anggaran" atau batas, tim harus berhenti ngembangin fitur dan fokus buat ningkatin keandalan komponen tersebut.

3. Sederhana
Salah satu cara terbaik buat ningkatin kemampuan dalam evaluasi keamanan dan keandalan sistem: ngerancang sistem dengan sangat sederhana.

Sistem yang sederhana bakal ngecilin attack surface, ngurangin potensi interaksi sistem yang gak terduga, serta mudahin kita buat ngertiin dan nguasain sistem.

4. Evolusi
Sistem bisa aja ngedown karena gak bisa ngehindar dari perubahan (evolusi), walau secanggih atau sebagus apapun rancangannya.

Perubahan terjadi karena beberapa hal:

  • Kebutuhan bisnis
  • Skala penggunaan
  • Infrastruktur yang makin kompleks tiap harinya.

5. Tahan Banting
Sistem harus bisa tahan banting dari berbagai keadaan yang gak terduga.

Dari sisi keamanan, gangguan sulit dihindari, apalagi saat komponen-komponen sistem cukup kompleks. Buat ngatasinya, gunain 2 teknik ini:

  • Defense in depth untuk ngebuat mekanisme pertahanan redundant yang berlapis-lapis.
  • Distinct failure domains untuk ngebatasi “area peledakan” dari gagalnya sebuah komponen.

Dari sisi keandalan, keadaan gak terduga disebapin beban yang tinggi atau gagalnya komponen.

  • Untuk ngatasi beban yang tinggi, kita bisa bagi beban (processing less) atau ngurangi cost pemrosesan setiap request (processing more cheaply).
  • Untuk ngatasi gagalnya komponen, keandalan bisa ditingkatin dengan redundancy dan ngebedain failure domain yang ngebatasi dampak dari kegagalan sistem atau komponen.

Tulisan dikutip dari artikel yang ditulis oleh Giri Kuncoro, Senior System Engineer Gojek.

Selain 5 hal itu, hal apa lagi yang biasa temen-temen lakuin kalo sistem nge-down? Yuk, kita diskusi :)

Discussion

pic
Editor guide