Thursday, January 5, 2023

Threat Modeling-WKRPL

Posted by Amelia Rahmadhini on January 05, 2023 with No comments

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