Autentikasi Rusak dan Deserialisasi Tidak Aman
Pelajari cara pengelolaan sesi yang lemah, pengisian kredensial, dan kerentanan deserialisasi tidak aman memungkinkan penyerang mengambil alih akun dan menjalankan kode.
Autentikasi Rusak dan Deserialisasi Tidak Aman adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Autentikasi yang Rusak?
Autentikasi yang rusak mengacu pada kelemahan dalam cara aplikasi memverifikasi identitas pengguna dan mengelola sesi. Ketika autentikasi rusak, penyerang dapat membahayakan kata sandi, kunci, atau token sesi untuk mengambil alih identitas pengguna lain. Kategori 10 Besar OWASP ini mencakup berbagai kelemahan: kredensial yang lemah, pengelolaan sesi yang buruk, MFA yang tidak tersedia, dan penyimpanan kredensial yang tidak aman.
Pengisian Kredensial dan Penyemprotan Kata Sandi
Pengisian kredensial menggunakan daftar besar pasangan nama pengguna dan kata sandi yang bocor dari kebocoran data sebelumnya, lalu mencobanya pada situs lain dengan memanfaatkan penggunaan ulang kata sandi. Penyemprotan kata sandi menggunakan pendekatan sebaliknya: mencoba sejumlah kecil kata sandi umum (misalnya Password1!) pada banyak akun untuk menghindari ambang penguncian akun. Kedua serangan ini berhasil karena kebijakan kata sandi yang lemah dan tidak adanya MFA.
# Password spraying concept (defensive awareness)
# Attacker tries 'Password1!' against 10,000 accounts
# rather than trying 10,000 passwords against 1 account
# This avoids triggering lockout policies (e.g., 5 attempts/account)
# Defense: MFA + adaptive authentication + rate limitingPengelolaan Sesi yang Lemah
Sesi menghubungkan pengguna yang telah terautentikasi dengan keadaan aplikasinya. Kelemahan pengelolaan sesi yang lemah meliputi: nilai token sesi yang dapat diprediksi (ID berurutan yang dapat ditebak penyerang), token yang tidak pernah kedaluwarsa, token yang dikirim melalui HTTP alih-alih HTTPS, dan kegagalan membatalkan token saat Logout. Penyerang yang memperoleh token sesi valid dapat menyamar sebagai pengguna tanpa mengetahui kata sandinya.
# Signs of weak session management:
# /login response sets:
# Set-Cookie: session=1042 (predictable, sequential)
# Missing: Secure; HttpOnly; SameSite flags
# Missing: session expiry / Max-Age
# Logout does NOT invalidate server-side sessionFiksasi dan Pembajakan Sesi
Fiksasi sesi memaksa korban menggunakan ID sesi yang dipilih penyerang. Sebagai contoh, penyerang mengirim tautan dengan Cookie sesi yang telah ditetapkan; setelah korban melakukan autentikasi, penyerang menggunakan ID sesi yang sama untuk mengakses akun tersebut. Pembajakan sesi mencuri token sesi yang sedang digunakan melalui XSS, pengintaian jaringan (pada koneksi yang tidak terenkripsi), atau Cookie yang dicuri. Solusinya: buat ulang ID sesi setelah login dan gunakan HTTPS di mana pun.
Penyimpanan Kata Sandi yang Tidak Aman
Menyimpan kata sandi dalam teks biasa atau dengan pencincangan yang lemah (MD5, SHA-1) merupakan kegagalan autentikasi yang kritis. Ketika basis data dibobol, kata sandi dalam teks biasa dan hash yang lemah dapat langsung digunakan. Penyimpanan kata sandi yang aman memerlukan algoritma pencincangan adaptif yang dirancang untuk kata sandi: bcrypt, Argon2, atau PBKDF2 dengan salt acak untuk setiap pengguna. Algoritma-algoritma ini sengaja dibuat lambat, sehingga pembobolan secara luring membutuhkan biaya komputasi yang besar.
# Python example — secure password hashing with bcrypt
import bcrypt
# Hash a password (includes random salt automatically)
password = b'UserSuperSecret123'
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Verify
bcrypt.checkpw(password, hashed) # returns TrueApa Itu Deserialisasi yang Tidak Aman?
Serialisasi mengubah keadaan suatu objek menjadi format (JSON, XML, biner) untuk disimpan atau dikirimkan. Deserialisasi membangun kembali objek dari format tersebut. Deserialisasi yang tidak aman terjadi ketika aplikasi melakukan deserialisasi terhadap data yang dikendalikan penyerang tanpa validasi — sehingga penyerang dapat mengubah objek yang diserialisasi untuk memanipulasi logika aplikasi, meningkatkan hak akses, atau menjalankan kode arbitrer di Server.
Contoh Serangan Deserialisasi
Pola serangan umum melibatkan objek yang diserialisasi dan diteruskan melalui Cookie atau parameter API. Sebagai contoh, aplikasi Java yang menggunakan ObjectInputStream.readObject() pada data yang tidak tepercaya dapat memicu Remote Code Execution (RCE) melalui rangkaian gadget dalam pustaka populer (Apache Commons Collections). Penyerang membuat muatan serialisasi berbahaya, mengirimkannya ke aplikasi, dan kode berjalan selama deserialisasi — sering kali sebelum pemeriksaan autentikasi apa pun dilakukan.
# Insecure deserializing pattern (Python pickle — dangerous)
import pickle
# Attacker-controlled payload
class Exploit:
def __reduce__(self):
import os
return (os.system, ('id',)) # executes 'id' on server
payload = pickle.dumps(Exploit())
pickle.loads(payload) # RCE! Never deserialize untrusted data with pickleMencegah Deserialisasi yang Tidak Aman
Pertahanan terhadap deserialisasi yang tidak aman meliputi: jangan pernah melakukan deserialisasi terhadap data yang tidak tepercaya menggunakan format berbahaya seperti serialisasi native Java atau pickle Python. Utamakan format yang hanya berisi data (JSON, XML) daripada serialisasi biner. Jika deserialisasi diperlukan, terapkan pemeriksaan integritas (menandatangani objek yang diserialisasi dengan HMAC), gunakan daftar izin untuk membatasi kelas yang boleh dideserialisasi, dan jalankan kode deserialisasi dalam lingkungan yang terisolasi dengan hak akses rendah.
# Safe approach: sign serialized data before transmitting
import hmac, hashlib, json
def serialize_safe(data, secret):
payload = json.dumps(data) # use JSON, not pickle
sig = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
return payload + '.' + sigAutentikasi Multi-Faktor sebagai Pengendali
Autentikasi Multi-Faktor (MFA) adalah pengendali tunggal yang paling berdampak terhadap autentikasi yang rusak. Bahkan jika kredensial disusupi melalui phishing, pengisian kredensial, atau kebocoran basis data, penyerang tanpa faktor kedua tidak dapat melakukan autentikasi. Microsoft melaporkan bahwa MFA memblokir lebih dari 99,9% serangan otomatis terhadap akun. MFA harus diwajibkan untuk akun dengan hak istimewa dan dianjurkan bagi semua pengguna.
Penguncian Account dan Pembatasan Laju
Kebijakan penguncian Account menonaktifkan Account untuk sementara setelah sejumlah upaya login yang gagal, sehingga memperlambat serangan brute force. Namun, penguncian dapat memungkinkan Denial of Service terhadap pengguna yang sah — Attacker sengaja memicu penguncian untuk mencegah akses. Pembatasan laju (memperlambat respons setelah kegagalan berulang menggunakan penundaan eksponensial) dan tantangan CAPTCHA mengurangi risiko brute force dengan risiko DoS yang lebih rendah.
Authentication yang Rusak dalam OWASP Top 10
OWASP mencantumkan Authentication yang Rusak sebagai risiko kritis karena kelemahan Authentication umum terjadi dan berdampak besar. Indikator utama Authentication yang rusak meliputi: mengizinkan serangan otomatis seperti credential stuffing, mengizinkan brute force atau serangan otomatis lainnya, mengizinkan Password default, lemah, atau yang sudah umum diketahui, menggunakan proses pemulihan kredensial yang lemah, menggunakan Password teks biasa atau yang di-hash secara lemah, serta tidak memiliki atau tidak efektif menerapkan Authentication multifaktor.
Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari lesson ini.
Ringkasan Lesson
Dalam lesson ini Anda mempelajari: Authentication yang rusak mencakup sesi yang lemah, credential stuffing, dan penyimpanan Password yang tidak aman, deserialisasi yang tidak aman dapat menyebabkan Remote Code Execution melalui objek berseri yang berbahaya, serta MFA, hashing Password dengan bcrypt, regenerasi sesi setelah login, dan data berseri yang ditandatangani merupakan Defense utama. Berikutnya kita akan membahas SSDLC yang aman, alat SAST, dan DAST.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Autentikasi Rusak dan Deserialisasi Tidak Aman” gratis?
Ya — teks lengkap “Autentikasi Rusak dan Deserialisasi Tidak Aman” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Autentikasi Rusak dan Deserialisasi Tidak Aman”?
Pelajari cara pengelolaan sesi yang lemah, pengisian kredensial, dan kerentanan deserialisasi tidak aman memungkinkan penyerang mengambil alih akun dan menjalankan kode. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Autentikasi Rusak dan Deserialisasi Tidak Aman” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Injeksi SQL dan Injeksi Perintah
- Cross-Site Scripting (XSS) dan CSRF
- Autentikasi Rusak dan Deserialisasi Tidak Aman
- SDLC Aman, Alat SAST, dan DAST