Threat Modeling
A.
What is Threats?
Sumber bahaya bagi proyek pengembangan aplikasi, karena proyek tersebut akan diimplementasikaN
B.
Kategori threats:
a.
Business threats
·
Merupakan ancaman terhadap fungsi bisnis yang mendasari dan mungkin
tidak mudah terlihat.
·
Business threats: ancaman terhadap fungsi bisnis yang dapat menyebabkan gangguan
atau kerusakan pada fungsi bisnis atau proses dan sumber daya pendukung bisnis.
·
Contoh: fungsi penggajian di sebagian besar bisnis. Jika aplikasi
absensi karyawan tidak tersedia untuk melaporkan jumlah jam kerja karyawan, maka
fungsi penggajian mungkin terpengaruh karena tidak ada dasar untuk mengukur
berapa jam setiap karyawan telah bekerja.
·
Business threats sering diabaikan selama pengembangan perangkat lunak karena
mudah tersesat dalam fokus memenuhi persyaratan/requirement proses desain,
tanpa menyadari bahwa fungsi bisnis tambahan mungkin terpengaruh.
· Kegagalan untuk mengenali ancaman bisnis selama proses penilaian risiko dapat mengakibatkan kegagalan untuk menambahkan perlindungan yang tepat selama fase desain ketika biayanya relatif kecil dibandingkan dengan menambahkan perlindungan yang sama setelah fase implementasi.
b.
System threats
·
System threats adalah ancaman langsung terhadap aplikasi atau salah satu
subsistemnya.
·
Biasanya lebih banyak ancaman langsung yang ditujukan pada aplikasi perangkat
lunak atau platform tempat aplikasi tersebut digunakan.
·
Threats ini biasanya lebih mudah untuk dikenali selama usaha pengembangan
perangkat lunak.
·
Contoh: Simple data entry errors pada sistem absensi karyawan. Jika jumlah
jam kerja yang diinputkan untuk seorang pegawai tidak benar, maka akan
menyebabkan pegawai tersebut kurang bayar atau lebih bayar.
c.
Environmental threats
·
Menunjukkan bahaya terhadap informasi atau sistem informasi berdasarkan lingkungan
sekitan sistem informasi.
· Contoh: kabel terpotong, electromagnetic interference, kondisi lingkungan,material berbahaya, fluktuasi daya.
d.
Natural threats
·
Menunjukkan bahaya terhadap informasi atau sistem informasi berdasarkan kejadian
alam, seperti banjir, tornado, putting beliung dan longsor.
C.
Cara Mengidentifikasi threats
1) Melakukan review
terhadap histori serangan
2) Melakukan review
terhadap isu saat ini yang melibatkan pelanggaran data
3) Melakukan review
situs internet
4) Threat Modeling
D.
THREAT MODELING
-
Threat Modeling merupakan proses menganalisa sebuah sistem untuk melihat
kelemahannya yang berasal dari pilihan desain yang kurang diinginkan.
-
Tujuannya untuk Mengidentifikasi kelemahan sebelum sistem
diimplementasikan, sehingga dapat dilakukan tindakan korensi secepat mungkin.
-
Threat modeling merupakan sebuah aktivitas siklus → Aktivitas ini
dimulai dari tujuan yang jelas, kemudian dilanjutkan dengan aksi dan analisis
yang dilakukan berulang
-
Threat modeling merupakan aktivitas yang dilakukan dalam siklus
pengembangan sistem.
-
Threat modeling memberikan perspektif yang dapat digunakan untuk memandu
setiap keputusan yang memengaruhi keamanan selama proses pengembangan perangkat
lunak
-
Threat modeling membuat pekerjaan pengembangan sistem menjadi lebih
mudah dan lebih baik dalam jangka waktu yang panjang.
-
Threat modeling akan mengarah pada arsitektur yang lebih bersih, batas kepercayaan
yang terdefinisi dengan baik, pengujian keamanan yang fokus, dan dokumentasi yang
lebih baik
-
Langkah-Langkah Dasar Threat Modeling
1. Identifikasi objek
dari sistem yang sedang dipertimbangkan
2. Identifikasi alur
antar objek tersebut
3. Identifikasi asset
4. Identifikasi
kelemahan dan kerentanan sistem
5. Identifikasi threats
(ancaman)
6. Tentukan eksploitasi
E.
Threat Modeling Metodologi
1. STRIDE
·
STRIDE merupakan singkatan dari Spoofing, Tampering, Repudiation,
Information disclosure, Denial of Service,
Elevation of privilege
·
Metode ini diformalisasi oleh Microsoft pada tahun 1999 dan pertama kali
disebutkan dalam paper yang ditulis oleh Loren Kohnfelder dan Praerit Garg,
dengan judul “The Threats To Our Products”
·
Sebagai anggota tim development, kita diminta untuk “Berfikir seperti hacker”
Ketika melakukan klasifikasi threat
a.
Spoofing Threats
Spoofing adalah salah
satu bentuk kejahatan dunia maya atau cyber crime yang perlu Anda waspadai.Spoofing
adalah setiap ancaman dunia maya yang berpura-pura menjadi seseorang atau
sesuatu yang palsu. Teknik spoofing biasanya berupa pengiriman pesan
menggunakan alamat IP yang seolah-olah dikirim dari port komputer yang aman ke
suatu komputer. Tetapi sebenarnya, pesan tersebut dikirim dari komputer hacker
yang telah memalsukan alamat IP tersebut.
b.
Tampering Threats
Tampering yaitu memodifikasi
sesuatu, biasanya pada disk, jaringan, atau memori. Ini dapat mencakup mengubah
data dalam spreadsheet
(menggunakan program
seperti Excel atau editor lain), mengubah file
biner atau
konfigurasi pada disk, atau memodifikasi struktur data yang
lebih kompleks,
seperti database pada disk.
c.
Repudiation Threats
-
Repudiation : mengklaim Anda tidak melakukan sesuatu, atau tidak bertanggung
jawab atas apa yang terjadi. Orang dapat menyangkal dengan jujur atau menipu.
-
Repudiation umumnya terjadi pada business layer
d.
Denial-of-Service Threats
Denial-of-service
(serangan DoS) adalah serangan dunia maya di mana pelaku berupaya membuat mesin
atau sumber daya jaringan tidak tersedia bagi pengguna yang dituju dengan
mengganggu layanan host yang terhubung ke Internet untuk sementara atau tanpa
batas. Denial-of-Service Threats menyerap resource yang dibutuhan untuk
menyediakan layanan.
e.
Elevation of Privilege Threats
Elevation of
Privilege Threats yaitu mengizinkan seseorang untuk
melakukan sesuatu
yang tidak boleh mereka lakuka misalnya,
mengizinkan pengguna
normal untuk mengeksekusi kode sebagai
admin, atau
mengizinkan orang jarak jauh tanpa hak istimewa apa pun
untuk menjalankan
kode.
2.
Identifikasi STRIDE
·
Spoofing
User Alice dapat
dipalsukan saat mengirimkan permintaan, karena tidak ada indikasi bahwa pengguna
diautentikasi ke sistem pada saat permintaan dikirimkan. Ini dapat dikurangi
dengan membuat skema otentikasi pengguna yang tepat.
·
Tampering dapat terjadi antara key server dan key repository. Penyerang
dapat mencegat komunikasi dan mengubah nilai key blob yang sedang ditransaksikan
dengan meniru salah satu endpointa (yang dapat menyebabkan peniruan lebih
lanjut atau menangkap informasi sensitif). Hal ini dapat dikurangi dengan
membangun komunikasi yang diautentikasi bersama melalui TLS
·
Repudiation
Penyerang dapat
langsung mengakses database key repository dan menambah atau mengubah key.
Penyerang juga dapat menganggap key untuk pengguna yang tidak memiliki cara
untuk membuktikan bahwa mereka tidak mengubahnya. Ini dapat dikurangi dengan
mencatat log operasi dan hash key pada waktu pembuatan pada sistem terpisah
yang tidak dapat diakses dengan tingkat kepercayaan yang sama dengan database.
·
Information disclosure
Penyerang dapat
mengamati lalu lintas antara Alice dan server utama dan memastikan bahwa Alice
berkomunikasi dengan Bob. Bahkan tanpa akses ke isi pesan (karena mereka tidak
melintasi sistem ini), ada nilai potensial untuk mengetahui kapan dua pihak
sedang berkomunikasi. Mitigasi yang mungkin terjadi adalah menutupi identitas Alice
dan Bob dalam pengidentifikasi yang digunakan sistem, sehingga mereka memiliki
arti sementara dan tidak dapat diperoleh jika informasi diamati bersama, tentu
saja, dengan enkripsi saluran komunikasi melalui TLS atau Ipsec.
·
Elevation of privilege
Penyerang mungkin
menggunakan fungsionalitas mirip exec() di database untuk mengeksekusi perintah
di server pada level database priviledge (yang berpotensi lebih tinggi daripada
pengguna biasa). Hal ini dapat dikurangi dengan hardening basis data dan
mengurangi priviledge yang dimilikinya saat dijalankan, serta memvalidasi semua
input dan menggunakan pernyataan yang disiapkan dan mode akses
object-relational mapping (ORM) untuk mencegah masalah SQL injection
3.
Variasi dari STRIDE :
·
STRIDE-per-element
·
STRIDE-per-Interaction