Bab 13 : Software Security

Nama     : Mutia Ardelia Rokhima

NIM       : 240605110075

Bab 13 : Software Security

Bagian 1 : Dasar-Dasar Software Security

A.    Konsep dan Peran Keamanan Perangkat Lunak

1.     Definisi dan Peran Software Security

Keamanan perangkat lunak (software security) berkaitan erat dengan desain dan langkah-langkah untuk mencegah pengungkapan, pembuatan, perubahan, penghapusan, atau penolakan akses yang tidak sah terhadap informasi dan sumber daya lainnya akibat serangan sistem. Dalam siklus hidup pengembangan perangkat lunak, keamanan berperan penting untuk membatasi dampak kerusakan jika terjadi pelanggaran, memastikan kontinuitas layanan, serta membantu proses perbaikan dan pemulihan. Selain itu, peran keamanan pada tahap pengujian berfungsi untuk memvalidasi bahwa sistem dan datanya benar-benar terlindungi dari serangan eksternal, termasuk perlindungan dari potensi penyalahgunaan perangkat lunak itu sendiri

2.     Identifikasi Tiga Prinsip Utama Keamanan (CIA Triad)

Prinsip Keamanan

Deskripsi

Dampak jika Tidak Diterapkan

Confidentiality

Upaya mencegah terjadinya pengungkapan informasi secara tidak sah kepada pihak yang tidak berwenang

Data atau informasi sensitif dapat terekspos, dibaca, atau disalahgunakan oleh pihak yang tidak memiliki hak akses yang sah

Integrity

Memastikan pencegahan terhadap tindakan pembuatan, perubahan, atau penghapusan informasi secara tidak sah.

Data dapat dimodifikasi atau dirusak oleh pihak eksternal akibat pelanggaran kebijakan sistem, sehingga kebenarannya tidak dapat lagi diandalkan.

Availability

Mencegah penolakan akses terhadap informasi atau sumber daya yang sah, serta berfokus pada penyediaan kontinuitas layanan.

Pengguna akan kehilangan akses ke dalam sistem, dan layanan tidak dapat beroperasi untuk membantu pemulihan atau operasional normal.

 

3.     Analisis Studi Kasus: Kebocoran Data Aplikasi Keuangan Digital

Insiden kebocoran data pengguna pada aplikasi keuangan digital merupakan contoh nyata dari kegagalan melindungi kerahasiaan (confidentiality), di mana terjadi pengungkapan informasi secara tidak sah. Dalam pengembangan perangkat lunak, penerapan keamanan sangat esensial untuk merancang sistem yang mampu menahan serangan eksternal yang bertujuan mencuri data pengguna. Jika keamanan perangkat lunak diabaikan, sistem menjadi rentan terhadap penyalahgunaan yang tidak hanya merugikan pengguna, tetapi juga menggagalkan kontinuitas layanan dari aplikasi tersebut. Integrasi keamanan sejak awal pengembangan sangat penting untuk membatasi kerusakan dan memvalidasi bahwa data di dalam sistem tetap terlindungi dari berbagai celah eksploitasi.

Bagian 2 : Ancaman Keamanan dan Strategi Mitigasi

A.    Jenis Ancaman Keamanan Perangkat Lunak

1.     Deskripsi ancaman langsung dijabarkan pada tabel di bawah

2.     Tabel Jenis Ancaman :

Jenis Ancaman

Deskripsi

Contoh Kasus

SQL Injection

Teknik menyisipkan perintah SQL berbahaya ke dalam form input untuk memanipulasi database backend.

Penyerang memasukkan admin' OR 1=1 -- di halaman login untuk masuk tanpa password.

Cross-Site Scripting (XSS)

Menyisipkan skrip berbahaya (biasanya JavaScript) ke halaman web yang akan dieksekusi oleh browser korban.

Peretas menaruh skrip di kolom komentar blog; saat korban membacanya, cookie sesi korban terkirim ke peretas.

Denial of Service (DoS)

Membanjiri server atau jaringan dengan trafik/permintaan palsu agar kapasitasnya penuh dan layanan lumpuh.

Website pendaftaran mahasiswa baru tiba-tiba down karena ditembak jutaan request oleh botnet.

Malware

Perangkat lunak jahat (seperti virus, wormtrojan) yang dirancang merusak atau menyusup ke sistem.

File unduhan palsu yang saat diklik diam-diam menginstal keylogger untuk merekam ketikan keyboard.

Man-in-the-Middle Attack (MITM)

Penyerang menyusup di tengah-tengah komunikasi antara dua pihak untuk menyadap atau mengubah data.

Seseorang menyadap jaringan Wi-Fi kafe publik yang tidak dienkripsi untuk mencuri nomor kartu kredit pengguna.

 

3.     Studi Kasus Serangan Ransomware: * Dampak: Operasional perusahaan lumpuh total karena seluruh file dan infrastruktur IT dienkripsi oleh peretas. Data penting hilang jika tidak membayar tebusan (meski dibayar pun belum tentu kembali).

Cara Mitigasi: Menerapkan Patch Management (memperbarui OS secara rutin untuk menutup celah), memiliki sistem cadangan (backup) data yang diisolasi (offline), dan melatih karyawan agar tidak mengklik link / lampiran email mencurigakan (phishing)

B.    Strategi Pengamanan Perangkat Lunak

1.     Tiga Strategi Utama:

a.     Secure Coding Practices: Menulis kode dengan standar keamanan ketat sejak awal (misal: selalu memvalidasi input dari user)

b.     Patch Management: Proses rutin menambal (memperbarui) aplikasi, library, dan sistem operasi untuk menutup bug keamanan terbaru

c.     Security Awareness Training: Melatih staf dan pengembang tentang taktik rekayasa sosial (social engineering) karena manusia sering menjadi rantai terlemah dalam keamanan

2.     Tabel Mitigasi Ancaman:

Jenis Ancaman

Strategi Mitigasi

Implementasi dalam Sistem

SQL Injection

Secure Coding (Input Validation)

Menggunakan Prepared Statements (Parameterized Queries) di backend agar input dianggap sebagai teks, bukan perintah SQL.

Cross-Site Scripting (XSS)

Secure Coding (Output Encoding)

Melakukan sanitasi input dan escaping output sebelum data dirender oleh browser HTML.

Denial of Service (DoS)

Infrastructure Security

Menerapkan Rate Limiting di API dan menggunakan layanan Web Application Firewall (WAF) seperti Cloudflare.

Malware

Patch Management & Endpoint Security

Menginstal antivirus/EDR, memblokir port tidak penting di firewall, dan rutin memindai server.

Man-in-the-Middle Attack (MITM)

Enkripsi Data in Transit

Mewajibkan penggunaan protokol HTTPS/TLS untuk semua komunikasi dan menonaktifkan protokol HTTP biasa.

 

Bagian 3:  Teknik dan Implementasi Keamanan Perangkat Lunak

A.    Teknik Enkripsi dan Kontrol Akses

1.     Konsep Enkripsi Data: Proses mengubah data mentah (plaintext) yang mudah dibaca menjadi format kode acak (ciphertext) menggunakan algoritma matematika dan kunci khusus (key), sehingga data tersebut tidak bisa dibaca pihak luar jika disadap

2.     Algoritma Umum:

1.     AES (Symmetric): Menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi data. Sangat cepat, cocok untuk mengenkripsi database atau file besar

2.     RSA (Asymmetric): Menggunakan sepasang kunci: Public Key (untuk mengenkripsi) dan Private Key (untuk mendekripsi). Sangat aman untuk pertukaran kunci dan digital signature

3.     Contoh Implementasi AES-256 di Python:

4.     Kontrol Akses vs Otorisasi: Kontrol Akses adalah sistem keseluruhan yang mengatur siapa yang bisa masuk dan apa yang bisa mereka lakukan. Sedangkan Otorisasi adalah fase spesifik di dalamnya: setelah pengguna dikenali (autentikasi), otorisasi menentukan hak pengguna tersebut (misal: "apakah dia boleh menghapus data?").

5.     Metode dijabarkan di table

6.     Tabel Metode Kontrol Akses:

Metode Kontrol Akses

Deskripsi

Contoh Penerapan

RBAC

(Role-Based Access Control) Akses diberikan berdasarkan peran/jabatan pengguna di sistem, bukan individu.

Kasir hanya bisa input transaksi, sedangkan Manajer bisa melihat laporan keuangan total.

MAC

(Mandatory Access Control) Akses diatur ketat oleh sistem pusat berdasarkan klasifikasi tingkat kerahasiaan (clearance).

Sistem intelijen pemerintah di mana staf berstatus "Secret" tidak bisa membuka dokumen "Top Secret".

DAC

(Discretionary Access Control) Pembuat/pemilik dokumen bebas menentukan sendiri siapa saja yang boleh mengakses miliknya.

Anda membuat file di Google Drive dan memilih untuk membagikan akses "Editor" hanya ke 2 teman kelompok.

 

B.    Pengujian Keamanan Perangkat Lunak

1.     Pentingnya Pengujian: 

Penyerang selalu berinovasi menemukan cara baru. Pengujian memastikan celah yang luput dari pandangan developer (saat coding) dapat ditemukan dan ditutup sebelum dieksploitasi oleh pihak luar yang bisa merugikan bisnis.

2.     Tiga teknik dibahas di table

3.     Tabel Teknik Pengujian Keamanan:

Teknik Pengujian Keamanan

Kelebihan

Kekurangan

Penetration Testing

Sangat akurat karena mensimulasikan serangan dunia nyata dari sudut pandang hacker.

Sangat bergantung pada keahlian manusianya (tester); memakan biaya mahal dan waktu lama.

Static Analysis (SAST)

Bisa menganalisis 100% source code secara otomatis dan cepat sejak tahap coding.

Sering menghasilkan False Positives (peringatan palsu); tidak mendeteksi eror yang muncul saat runtime.

Dynamic Analysis (DAST)

Menemukan kerentanan saat aplikasi sedang berjalan (runtime), tanpa butuh source code.

Sulit menemukan celah yang letaknya jauh di dalam alur logika kode yang kompleks.

 

4.     Studi Kasus Web Rentan XSS: Teknik yang paling sesuai adalah Dynamic Analysis (DAST) / Penetration Testing. Alasannya, kerentanan XSS terjadi saat aplikasi sedang berjalan, menerima input dari form, dan merendernya di browser. DAST bisa mengirimkan ratusan payload skrip XSS otomatis ke input form untuk melihat apakah aplikasi memantulkan skrip tersebut kembali ke layar tanpa sanitasi.

Bagian 4 : Alat Bantu dalam Keamanan Perangkat Lunak

A.    Penggunaan Alat Bantu Keamanan Perangkat Lunak

1.     Tiga alat bantu dibahas di table

2.     Tabel Alat Bantu Keamanan:

Alat Bantu Keamanan

Fitur Utama

Kegunaan

OWASP ZAP

Automated web scannerspidering, dan proxy interception.

Pemindai kerentanan gratis untuk menemukan celah XSS, SQLi, dan kesalahan konfigurasi pada aplikasi web.

Burp Suite

Intercepting Proxy, Intruder(fuzzing), Repeater (modifikasi equest)

Tool andalan penetration tester profesional untuk menganalisis dan memodifikasi traffic HTTP secara manual guna membobol logika web.

Snort

Packet sniffer, berbasis rules ringan, sistem deteksi intrusi jaringan (NIDS).

Memantau lalu lintas jaringan secara real-time dan memblokir anomali/serangan paket mencurigakan di level jaringan.

 

3.     Pilihan untuk Tim Aplikasi Perbankan: Saya akan memilih integrasi Burp Suite (dipegang oleh tim Penetration Tester untuk memeriksa aplikasi web/API secara mendalam) dan Snort (ditempatkan oleh tim infrastruktur sebagai pertahanan lapisan jaringan server). Kombinasi ini menangani celah di level aplikasi (software) sekaligus serangan dari luar (network).

B.    Praktik Terbaik dalam Pengamanan Perangkat Lunak

1.     Tiga praktik dijabarkan di table

2.     Tabel Studi Kasus Sistem IoT Rentan Jaringan:

Praktik Keamanan

Deskripsi

Manfaat

Secure SDLC

Memasukkan pemodelan ancaman (threat modeling) dan security check ke setiap fase (Desain, Koding, Rilis), bukan cuma di akhir.

Celah arsitektur pada sensor IoT dapat dicegah sebelum telanjur diproduksi massal.

Zero Trust Security

Prinsip "Jangan pernah percaya, selalu verifikasi". Setiap permintaan dari perangkat IoT divalidasi ketat, walau berada di jaringan internal.

Jika ada satu node perangkat IoT yang diretas, penyerang tidak bisa bebas bergerak ke database utama (pergerakan lateral terputus).

Regular Security Audits

Melakukan inspeksi dan tes penetrasi berkala terhadap firmware perangkat IoT dan infrastruktur cloud-nya.

Menjamin server dan modul IoT mematuhi standar compliance dan cepat beradaptasi dari ancaman/teknik retas tipe baru.

 

Kesimpulan dan Refleksi

1.     Kesimpulan

Bab ini membahas konsep dasar keamanan perangkat lunak sebagai fondasi dalam membangun sistem yang aman, mulai dari pemahaman prinsip CIA Triad (Confidentiality, Integrity, Availability), identifikasi berbagai ancaman dan vektor serangan seperti SQL Injection dan Denial of Service (DoS), hingga penerapan strategi mitigasi melalui enkripsi, kontrol akses berbasis peran (Role-Based Access Control/RBAC), serta pengujian keamanan menggunakan SAST, DAST, dan penetration testing. Pemahaman terhadap keamanan perangkat lunak sangat penting untuk menerapkan pendekatan Security by Design, yaitu merancang keamanan sejak tahap pengembangan, bukan sekadar memperbaiki kerentanan setelah terjadi insiden. Dengan menerapkan lapisan perlindungan pada tingkat kode, infrastruktur, dan manajemen pengguna, perangkat lunak dapat menjaga kerahasiaan, integritas, dan ketersediaan data sekaligus mempertahankan kepercayaan pengguna sebagai aset yang paling berharga.

2.     Refleksi Pribadi

Refleksi yang diperoleh dari pembelajaran keamanan perangkat lunak menunjukkan bahwa tantangan terbesar terletak pada kemampuan menjaga keseimbangan antara pola pikir ofensif dan defensif. Seorang pengembang perlu memahami cara berpikir penyerang dalam mencari serta mengeksploitasi celah keamanan, sekaligus mampu berperan sebagai pihak yang merancang dan menerapkan solusi untuk menutup kerentanan tersebut secara tepat. Proses memahami mekanisme eksploitasi, termasuk cara kerja payload dalam menyerang sistem, sering kali menjadi bagian yang cukup kompleks dan menantang. Di sisi lain, konsep keamanan perangkat lunak memiliki relevansi yang sangat tinggi dalam berbagai bidang informatika, seperti pengelolaan server Linux untuk kebutuhan pengujian beban (load testing) maupun pengembangan sistem back-end berbasis IoT. Penerapan prinsip keamanan mendorong praktik yang lebih disiplin, seperti pengaturan otorisasi akses dan port, validasi input untuk mencegah serangan SQL Injection, serta penggunaan enkripsi pada komunikasi API guna melindungi data dari penyadapan dan intersepsi oleh pihak yang tidak berwenang.

Komentar

Postingan populer dari blog ini

Bab 1 : Software Requirements

Bab 4 : Software Construction

Bab 9 : Software Engineering Management