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.
Mengapa standar C++ menolak menjamin perilaku sebagian program, kategori UB yang paling sering, dan cara mendeteksinya dengan UBSan sebelum menimpa pengguna.
Buka → # Implementation-defined BehaviorMembedakan implementation-defined, unspecified, dan undefined behavior, membaca keputusan implementasi di platform ini, dan kebiasaan menulis kode portabel.
Buka → # Out-of-bounds AccessAkses di luar batas array dan vector: perbedaan pembacaan dan penulisan, jebakan operator[], dan mitigasi dengan at(), span, serta pemeriksaan batas.
Buka → # Use-after-freeMengakses memori setelah delete: mengapa blok yang sudah dilepas tetap berbahaya, pola kode yang memicunya, dan mitigasi dengan kepemilikan tunggal serta smart pointer.
Buka → # Buffer OverflowMeluapnya 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 KonversiLuapan 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 RisksMekanisme format specifier injection pada printf, mengapa iostream dan std::format tidak mewarisi masalahnya, dan kebiasaan format-literal yang menutup celahnya.
Buka → # Input ValidationMemvalidasi 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 ManagementMengelola memori dari sisi keamanan: membersihkan rahasia sebelum dilepas, mencegah kebocoran dengan kepemilikan otomatis, dan menangani std::bad_alloc dengan tenang.
Buka → # Secure File HandlingMembuka 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++ UmumMembaca entri CWE di cwe.mitre.org, memetakan lima kerentanan C++ yang paling sering muncul beserta mitigasinya, dan menyusun mitigasi berlapis.
Buka → # Secure Coding GuidelinesMenutup section dengan guideline resmi — SEI CERT C++, C++ Core Guidelines, AUTOSAR — tooling pemeriksaannya, dan checklist sebelum rilis.
Buka →