BRUTE FORCE

 BRUTE FORCE

DEFINISI 

Serangan brute force adalah metode mencoba semua kombinasi kata sandi atau kunci enkripsi hingga menemukan yang benar.

CARA KERJA BRUTE FORCE

  •  Identifikasi Target: Menentukan sistem atau akun yang akan diserang.
  •  Menyiapkan Script atau Alat: Menggunakan script otomatis atau alat seperti Hydra, John the Ripper.
  • Melakukan Percobaan Kata Sandi: Mencoba berbagai kombinasi hingga menemukan kata sandi yang benar.

DEMO BRUTE FORCE

  • Buat folder brute_force 
  • Buat file index.php dan isikan kode berikut:
<?php
session_start();
$users = [
  'admin' => md5('password123'),
  'user' => md5('userpass')
];
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  $username = $_POST['username'];
  $password = md5($_POST['password']);
  if (isset($users[$username]) && $users[$username] == $password) {
    $_SESSION['username'] = $username;
    echo "Login berhasil!";
  } else {
    echo "Login gagal!";
  }
}
?>

<!DOCTYPE html>
<html>
<head>
  <title>Login</title>
</head>
<body>
  <form method="post" action="">
    Username: <input type="text" name="username"><br>
    Password: <input type="password" name="password"><br>
    <input type="submit" value="Login">
  </form>
</body>
</html>
  • Simulasi serangan brute force dengan python 
  • Buat file brute_force.py dan isikan kode berikut:
import hashlib
import requests

url = "http://localhost/brute_force/index.php"
username = "admin"
passwords = ["password", "123456", "password123", "admin"]

for password in passwords:
    hashed_password = hashlib.md5(password.encode()).hexdigest()
    data = {
        "username": username,
        "password": hashed_password
    }
    response = requests.post(url, data=data)
    if "Login berhasil" in response.text:
        print(f"Password ditemukan: {password}")
        break
    else:
        print(f"Percobaan gagal: {password}")

  • Buka browser dan login dengan user admin/password123 pada url http://localhost/brute_force/index.php 


  • Jalankan serangan brute force pada terminal/cmd (pastikan terinstall python) dengan mengetikkan python brute_force.py

TUGAS 

  • Tambahkan script untuk mencegah serangan brute force 

Untuk mencegah serangan brute force, ada beberapa langkah yang bisa diambil, seperti membatasi jumlah percobaan login, menggunakan CAPTCHA, atau menambahkan waktu jeda setelah beberapa percobaan gagal. Saya akan menambahkan langkah-langkah ini ke dalam script PHP Anda.

Berikut adalah langkah-langkah untuk menambahkan perlindungan brute force di file index.php Anda:

    1. Membatasi jumlah percobaan login: Simpan informasi percobaan login dalam sesi atau database.
    2. Menggunakan CAPTCHA: Tampilkan CAPTCHA setelah beberapa percobaan gagal.
    3. Menambahkan waktu jeda: Tambahkan waktu tunggu setelah beberapa percobaan gagal.

Berikut adalah modifikasi untuk file index.php:

<?php
session_start();

// Batas percobaan login
define('MAX_LOGIN_ATTEMPTS', 5);
define('LOGIN_TIMEOUT', 300); // 5 menit

if (!isset($_SESSION['login_attempts'])) {
    $_SESSION['login_attempts'] = 0;
    $_SESSION['last_attempt_time'] = time();
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // Cek apakah user telah mencapai batas percobaan
    if ($_SESSION['login_attempts'] >= MAX_LOGIN_ATTEMPTS && time() - $_SESSION['last_attempt_time'] < LOGIN_TIMEOUT) {
        echo 'Terlalu banyak percobaan login. Silakan coba lagi nanti.';
        exit;
    }

    // Ganti ini dengan logika validasi password Anda
    $hashed_password = md5($password);
    $correct_password_hash = '5f4dcc3b5aa765d61d8327deb882cf99'; // contoh hash untuk 'password'

    if ($username === 'admin' && $hashed_password === $correct_password_hash) {
        echo 'Login berhasil';
        // Reset percobaan login setelah berhasil login
        $_SESSION['login_attempts'] = 0;
    } else {
        $_SESSION['login_attempts']++;
        $_SESSION['last_attempt_time'] = time();
        echo 'Login gagal';
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <form method="post" action="">
        Username: <input type="text" name="username"><br>
        Password: <input type="password" name="password"><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

 

  • Jelaskan dampak dari serangan Brute Force

    Serangan brute force adalah metode di mana penyerang mencoba semua kemungkinan kombinasi kata sandi sampai menemukan kombinasi yang benar untuk mendapatkan akses ke akun atau sistem yang ditargetkan. Berikut adalah beberapa dampak dari serangan brute force:

Keamanan Data Terancam

    • Akses Tidak Sah: Penyerang dapat memperoleh akses ke akun atau sistem yang ditargetkan, memungkinkan mereka untuk mencuri, mengubah, atau menghapus data sensitif.
    • Pelanggaran Privasi: Informasi pribadi, seperti detail perbankan, informasi identitas, dan data sensitif lainnya bisa diakses dan disalahgunakan.

Kerugian Finansial

    • Pencurian Uang: Jika penyerang berhasil mendapatkan akses ke akun keuangan, mereka dapat mencuri uang atau melakukan transaksi yang tidak sah.
    • Biaya Pemulihan: Memulihkan sistem dari serangan brute force dapat memakan biaya yang signifikan, termasuk biaya untuk mengamankan sistem kembali, memperbaiki kerusakan, dan mengganti kehilangan data.

Kerusakan Reputasi

    • Kepercayaan Hilang: Pelanggan atau pengguna mungkin kehilangan kepercayaan pada perusahaan atau layanan yang menjadi korban serangan, yang dapat berdampak pada hubungan bisnis jangka panjang.
    • Publisitas Negatif: Insiden keamanan seringkali menarik perhatian media, yang dapat merusak citra perusahaan atau individu yang terlibat.

Gangguan Operasional

    • Downtime: Sistem atau layanan yang menjadi target serangan brute force mungkin mengalami downtime atau performa yang menurun, mengganggu operasional sehari-hari.
    • Tindakan Mitigasi: Waktu dan sumber daya yang signifikan mungkin diperlukan untuk mendeteksi, menganalisis, dan memitigasi serangan, yang dapat mengalihkan perhatian dari aktivitas bisnis utama.

Dampak Hukum dan Regulasi

    • Kewajiban Hukum: Pelanggaran data akibat serangan brute force dapat mengakibatkan tuntutan hukum atau sanksi dari badan pengatur, terutama jika melibatkan data pribadi.
    • Kepatuhan Terhadap Regulasi: Perusahaan mungkin perlu meningkatkan mekanisme keamanan mereka untuk mematuhi peraturan perlindungan data, yang dapat memerlukan investasi tambahan.

Penyalahgunaan Sumber Daya

    • Konsumsi Bandwidth: Serangan brute force yang terus-menerus dapat mengonsumsi bandwidth yang signifikan, yang dapat memperlambat atau mengganggu layanan lain yang berjalan di jaringan yang sama.
    • Beban pada Server: Percobaan login yang berulang-ulang dapat membebani server, yang bisa mengakibatkan penurunan kinerja atau bahkan crash.

Tidak ada komentar:

Posting Komentar