OWASP Top 10 2025: Panduan Keamanan Web | Ilmu Komputer

OWASP Top 10 2025

OWASP Top 10 adalah standar de facto untuk kesadaran keamanan aplikasi web. Setiap beberapa tahun sekali, OWASP merilis daftar 10 kerentanan paling kritis berdasarkan data dari ribuan organisasi di seluruh dunia. Versi 2025 membawa perubahan signifikan dengan tambahan kerentanan baru.

Apa itu OWASP?

Open Web Application Security Project (OWASP) adalah organisasi nirlaba global yang berfokus pada peningkatan keamanan perangkat lunak. OWASP Top 10 adalah dokumen kesadaran paling berpengaruh di dunia keamanan web, digunakan oleh developer, arsitek, dan auditor keamanan.

OWASP Top 10 2025

A01 — Broken Access Control

Kerentanan akses kontrol masih menjadi nomor satu. Terjadi ketika pengguna bisa mengakses resource atau fungsi yang seharusnya tidak diizinkan.

// Contoh rentan — IDOR
app.get('/api/user/:id', (req, res) => {
    const user = db.findUser(req.params.id);
    res.json(user);
});

// Perbaikan
app.get('/api/user/:id', (req, res) => {
    if (req.user.id !== req.params.id && !req.user.isAdmin) {
        return res.status(403).json({ error: 'Forbidden' });
    }
    const user = db.findUser(req.params.id);
    res.json(user);
});

A02 — Cryptographic Failures

Kegagalan kriptografi termasuk transmisi data tanpa enkripsi, penggunaan algoritma lemah, atau sertifikat SSL yang salah konfigurasi.

// Enforce HTTPS
app.use((req, res, next) => {
    if (!req.secure && process.env.NODE_ENV === 'production') {
        return res.redirect('https://' + req.headers.host + req.url);
    }
    next();
});

// Hash password dengan bcrypt
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash(password, 12);

A03 — Injection

SQL Injection masih menjadi ancaman serius. Input pengguna yang tidak divalidasi bisa mengeksekusi perintah database berbahaya.

// RENTAN
query = "SELECT * FROM users WHERE username = '" + username + "'";

// AMAN — Prepared Statement
query = "SELECT * FROM users WHERE username = ?";
db.execute(query, [username]);

A04 — Insecure Design

Kerentanan yang berasal dari desain arsitektur yang tidak aman, bukan dari bug implementasi. Contoh: tidak ada rate limiting, mekanisme reset password yang lemah.

// Rate limiting dengan express
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
    windowMs: 15 * 60 * 1000,
    max: 100,
    message: 'Terlalu banyak request'
});
app.use('/api/', limiter);

A05 — Security Misconfiguration

Konfigurasi keamanan yang tidak tepat seperti default credentials, directory listing enabled, error handling yang menampilkan stack trace ke pengguna.

A06 — Vulnerable and Outdated Components

Penggunaan library/packages dengan versi usang yang memiliki CVE. Deteksi dengan npm audit, snyk, atau dependabot.

npm audit
npm audit fix
snyk test

A07 — Identification and Authentication Failures

Lemahnya mekanisme autentikasi seperti tidak ada MFA, session fixation, atau credential stuffing.

A08 — Software and Data Integrity Failures

Kerentanan terkait integritas data seperti deserialization tidak aman, supply chain attack, atau CI/CD pipeline yang tidak aman.

A09 — Security Logging and Monitoring Failures

Kegagalan mendeteksi dan merespons insiden karena logging yang tidak memadai atau monitoring yang tidak efektif.

A10 — Server-Side Request Forgery (SSRF)

Kerentanan baru yang naik ke Top 10. Terjadi ketika server bisa dipaksa melakukan request ke resource internal.

// RENTAN
app.get('/fetch', (req, res) => {
    const response = await fetch(req.query.url);
    res.send(response);
});

// AMAN — Validasi URL + whitelist
const allowedDomains = ['api.example.com', 'cdn.example.com'];
app.get('/fetch', async (req, res) => {
    const url = new URL(req.query.url);
    if (!allowedDomains.includes(url.hostname)) {
        return res.status(403).send('Domain not allowed');
    }
    const response = await fetch(url);
    res.send(response);
});

Tools untuk Keamanan Web

  • OWASP ZAP — Automated scanner & proxy
  • Burp Suite — Web vulnerability testing
  • sqlmap — SQL injection automation
  • Nuclei — Template-based scanner
  • Snyk — Dependency vulnerability scanner

Baca Juga

Kesimpulan

Keamanan web bukanlah fitur tambahan, melainkan fondasi yang harus dibangun sejak awal. OWASP Top 10 2025 memberikan panduan yang jelas tentang apa yang perlu diperhatikan. Mulailah dengan mengamankan akses kontrol, enkripsi data, dan validasi input — tiga area teratas yang paling banyak dieksploitasi.

Selalu update pengetahuan keamanan Anda karena ancaman terus berevolusi. Selamat belajar dan tetap aman! 🔒

Iklan

Iklan
Iklan

Iklan
Iklan

Iklan
Iklan