Rangkuman
Threats adalah Sumber bahaya bagi proyek pengembangan aplikasi, karena proyek tersebut akan diimplementasikan
Kategori threats:
• Business threats
• System threats
Business Threats
Merupakan ancaman terhadap fungsi bisnis yang dapat menyebabkan gangguan atau kerusakan pada fungsi bisnis atau proses dan sumber daya pendukung bisnis. 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.
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.
System Threats
Merupakan ancaman langsung terhadap aplikasi atau salah satu subsistemnya. 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.
Kategori System Threats
- Human threats
Contoh: rasa ingin tahu, kesalahan input data dan kelalaian, kegiatan mata- mata, penipuan, pembuangan informasi sensitive yang tidak tepat, Tindakan Tidak Sengaja atau Kecerobohan, Keliru Identitas, pelanggaran aturan kebijakan, Shoulder Surfing, pencurian atau vandalisme.
- Technical threats
Contoh: Mengompromikan Emanasi, corruption by system failures, data contamination, eavesdropping (menguping), Kegagalan dan Gangguan Tidak Dicatat dengan Benar, installation errors, intrusion, malicious code, misrepresentation of identity, penyalahgunaan kelemahan yang diketahui, Kejenuhan Sumber Daya (DoS, DDoS), Pengambilalihan Sesi Resmi, Tampering
- Environmental threats
Contoh: kabel terpotong, electromagnetic interference, kondisi lingkungan, material berbahaya, fluktuasi daya,.
- Natural threats
Menunjukkan bahaya terhadap informasi atau sistem informasi berdasarkan kejadian alam, seperti banjir, tornado, putting beliung dan longsor.
THREAT MODELING
Threat Modeling merupakan proses menganalisa sebuah sistem untuk melihat kelemahannya yang berasal dari pilihan desain yang kurang diinginkan.yang bertujuan untuk Mengidentifikasi kelemahan sebelum sistem diimplementasikan, sehingga dapat dilakukan tindakan korensi secepat mungkin.
Kenapa dibutuhkan 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
- Identifikasi objek dari sistem yang sedang dipertimbangkan
- Identifikasi alur antar objek tersebut
- Identifikasi asset
- Identifikasi kelemahan dan kerentanan sistem
- Identifikasi threats (ancaman)
- Tentukan eksploitasi
- What are working on ?
Pahami sistem saat ini dan apa yang dibutuhkannya, artinya, kemana arah perkembangannya
- What could go wrong ?
Mengingat pemahaman komposisi dan tujuan sistem, munculkan hal-hal yang mungkin mengganggu tujuannya dengan mengubah properti confidentiality, integrity, availability, dan privasinya, serta properti terkait keamanan lainnya yang telah ditentukan oleh sistem.
- What are we going to do about it?
Apa langkah-langkah mitigasi yang dapat kita ambil untuk mengurangi tanggung jawab yang ditimbulkan oleh apa yang telah kita identifikasi di pertanyaan sebelumnya? Bisakah kita mengubah desain, menambahkan kontrol keamanan baru, mungkin menghapus sama sekali bagian sistem yang lebih rentan? Atau haruskah kita menerima risiko dalam konteks di mana dan bagaimana sistem akan beroperasi, dan mengaitkannya dengan biaya menjalankan bisnis?
- Did we do a good job?
Memahami apakah kita sudah mengidentifikasi “What could go wrong ?” dan apakah kita mengidentifikasi apakah kita sudah membuat keputusan yang tepat mengenai “what we did about it?” (alias apakah kita memitigasi ancaman secara efektif)? Dengan menutup loop dan memahami kinerja kita dalam pemodelan ancaman, kita dapat mengukur bagaimana kia menerapkan metodologi, mengidentifikasi apakah kita perlu menyempurnakan pendekatan, dan detail mana yang harus lebih kita perhatikan di masa mendatang
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”
Stride Threat
Tampering Threats
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.
Repudiation Threats
Mengklaim Anda tidak melakukan sesuatu, atau tidak bertanggung jawab atas apa yang terjadi. Orang dapat menyangkal dengan jujur atau menipu.
Information Disclosure Threats
Mengizinkan orang untuk melihat informasi yang tidak boleh mereka lihat
Denial-of-Service Threats
Menyerap resource yang dibutuhan untuk menyediakan layanan.
Elevation of Privilege Threats
Mengizinkan seseorang untuk melakukan sesuatu yang tidak boleh mereka lakukan misalnya, mengizinkan pengguna normal untuk mengeksekusi kode sebagai admin, atau mengizinkan orang jarak jauh tanpa hak istimewa apa pun untuk menjalankan kode.
Stride Workflow
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
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.
- Denial of Service
Penyerang dapat membuat skrip otomatis untuk mengirimkan ribuan permintaan acak pada saat yang sama, membebani server utama dan menolak layanan yang tepat untuk pengguna lain yang sah. Ini dapat dikurangi dengan membatasi flow-rate pada level session dan network
- 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
Comments
Post a Comment