Kesalahan memori dan undefined behavior menjadi sumber kerentanan serius pada program C++. Kita mengenali pola seperti buffer overflow dan use-after-free, memetakan CWE, lalu menerapkan secure coding guidelines dalam praktik sehari-hari.

# Undefined Behavior

Mengapa standar C++ menolak menjamin perilaku sebagian program, kategori UB yang paling sering, dan cara mendeteksinya dengan UBSan sebelum menimpa pengguna.

Buka →
# Implementation-defined Behavior

Membedakan implementation-defined, unspecified, dan undefined behavior, membaca keputusan implementasi di platform ini, dan kebiasaan menulis kode portabel.

Buka →
# Out-of-bounds Access

Akses di luar batas array dan vector: perbedaan pembacaan dan penulisan, jebakan operator[], dan mitigasi dengan at(), span, serta pemeriksaan batas.

Buka →
# Use-after-free

Mengakses memori setelah delete: mengapa blok yang sudah dilepas tetap berbahaya, pola kode yang memicunya, dan mitigasi dengan kepemilikan tunggal serta smart pointer.

Buka →
# Buffer Overflow

Meluapnya buffer tetap di stack dan heap, fungsi C berbahaya versus lebih aman, dan cara modern C++ menyingkirkan kelas bug ini dengan std::string dan snprintf.

Buka →
# Integer Overflow dan Konversi

Luapan bilangan bulat dan konversi diam dari sudut pandang keamanan: overflow sebagai pintu masuk, aritmetika yang memeriksa dirinya, dan parsing angka yang menolak sampah.

Buka →
# Format String Risks

Mekanisme format specifier injection pada printf, mengapa iostream dan std::format tidak mewarisi masalahnya, dan kebiasaan format-literal yang menutup celahnya.

Buka →
# Input Validation

Memvalidasi input dari luar secara menyeluruh — panjang, format, dan rentang — dengan whitelist dan prinsip fail-closed, memakai std::from_chars sebagai gerbang parsing yang ketat.

Buka →
# Secure Memory Management

Mengelola memori dari sisi keamanan: membersihkan rahasia sebelum dilepas, mencegah kebocoran dengan kepemilikan otomatis, dan menangani std::bad_alloc dengan tenang.

Buka →
# Secure File Handling

Membuka berkas tanpa membuka celah: validasi path traversal dengan normalisasi leksikal dan pemeriksaan awalan, plus catatan ringkas tentang TOCTOU dan symlink.

Buka →
# CWE dan Kerentanan C++ Umum

Membaca entri CWE di cwe.mitre.org, memetakan lima kerentanan C++ yang paling sering muncul beserta mitigasinya, dan menyusun mitigasi berlapis.

Buka →
# Secure Coding Guidelines

Menutup section dengan guideline resmi — SEI CERT C++, C++ Core Guidelines, AUTOSAR — tooling pemeriksaannya, dan checklist sebelum rilis.

Buka →