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 |
|
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, worm, trojan) 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 scanner, spidering, 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
Posting Komentar