Halo sobat helixs! Kali ini helixs akan menerangkan mengenai Simple WAF Aplication buatan 4DSec untuk Githubnya kalian bisa klik disini. Aplikasi ini dibangun menggunakan bahasa pemograman PHP, penjelasan singkatnya aplikasi ini akan mempertahankan website kamu dari serangan hacker dan otomatis akan memblokir IP Hacker yang terindikasi ingin menginjeksi website kamu. Berikut penjelasan cara kerja, cara mengaplikasikannya ke website dan source code dari simple WAF ini.

Buatlah File sec.php

Pada file ini kita akan menaruh code dari aplikasi ini, berikut source code nya

<?php
error_reporting(0);
@clearstatcache();
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@ini_set('output_buffering',0);
@ini_set('display_errors', 0);
date_default_timezone_set('Asia/Makassar');

$security_secret_file="Hacker_IP.txt"; //File yang akan di isi IP Hacker
$alert="Anda Di Blokir Dari Website ini"; //Pesan yang Ditampilkan Ketika IP Terblokir
//--------------------------------------------//

//log files
function security_logger($ip) {
    $x=fopen("threat_log", "a");
    fwrite($x, $ip." ( ".$_SERVER['HTTP_USER_AGENT']." ".date("r")." ) "." => ".$_SERVER['REQUEST_URI']."\n");
    fclose($x);
}
function security_add_ip($ip, $time) {
    global $security_secret_file;
    $f=fopen($security_secret_file, "a");
    fwrite($f, $ip."^^^".$time."\n");
    fclose($f);
    security_logger($ip);
}

//Mengambil data History IP
function security_del_ip($ip, $time) {
    global $security_secret_file;
    $file=file_get_contents($security_secret_file);
    $f=fopen($security_secret_file, "w");
    fwrite($f, str_replace($ip."^^^".$time."\n", "", $file));
    fclose($f);
}
//Request yang Di Blokir
$malicious="/alert\(|alert \(|<|>|\"|\||\'|information_schema|\/var|\/etc|\/home|file_get_contents|wget|script|union|wget|cmd|proc|order|javascript|shell_exec|table_schema|user\(\)|user \(\)/"; //Malicious Request 
$security_user_agent="/Mozilla|Chrome|Google|WhatsApp|Telegram/"; //User Agent

if(!empty($_GET)) {
    foreach($_GET as $security_get_request) {
        if(preg_match("$malicious", $security_get_request)) {
            echo $alert;
            if(!preg_match($_SERVER['REMOTE_ADDR'], file_get_contents($security_secret_file))) {
                security_add_ip($_SERVER['REMOTE_ADDR'], time());
            }
            exit;
        }
    }
}

if(!empty($_POST)) {
    foreach($_POST as $security_post_request) {
        if(preg_match("$malicious", $security_post_request)) {
            echo $alert;
            if(!preg_match($_SERVER['REMOTE_ADDR'], file_get_contents($security_secret_file))) {
                security_add_ip($_SERVER['REMOTE_ADDR'], time());
            }
            exit;
        }
    }
}

if(!empty($_FILES)) {
    foreach($_FILES as $security_files_request) {
        if(preg_match("$malicious", $security_files_request)) {
            echo $alert;
            if(!preg_match($_SERVER['REMOTE_ADDR'], file_get_contents($security_secret_file))) {
                security_add_ip($_SERVER['REMOTE_ADDR'], time());
            }
            exit;
        }
    }
}

if(preg_match("/".$_SERVER['REMOTE_ADDR']."/", file_get_contents($security_secret_file))) {
    $security_file=explode("\n", file_get_contents($security_secret_file));
    foreach($security_file as $security_ip_line) {

        if(empty($security_ip_line)) {
            continue;
        }

        $security_ip_scan=explode('^^^', $security_ip_line);
        if(time() > $security_ip_scan[1]+3153600000000 ) {
            if($security_ip_scan[0] == $_SERVER['REMOTE_ADDR']) {
                security_del_ip($security_ip_scan[0], $security_ip_scan[1]);
            } else {
                continue;
            }
        } else {
            echo $alert; //Pesan
            exit;
        }
    }
}

if(!preg_match($security_user_agent, $_SERVER['HTTP_USER_AGENT'])) {
    security_add_ip($_SERVER['REMOTE_ADDR'], time());
    echo $alert;
    exit;
}

Mengamankan File

Untuk menjalankan simple WAF ini cukup mudah, kamu tinggal menyisipkan code berikut disetiap file yang ingin kamu secure.

<?php include'sec.php'; ?>

Penjelasan singkatnya seperti ini, Jikas seseorang melakukan GET/POST yang terindikasi malicious request di file yang telah kita secure. Maka IP akan diblokir untuk mengakses website dan menampilkan pesan kepada user yang terblokir. Walaupun User menggunakan VPN/Proxy tetap akan memblokir IP user dan tidak akan bisa mengakses website. Semua history malicious request akan tersimpan di thread_log dengan detail dari user yang terblokir.

Oh iya, namanya juga simple WAF jadi aplikasi ini tidak 100% bisa melindungi website kamu. Maka dari itu kamu sebagai owner website siap akan hal yang tidak di inginkan terjadi, melakukan backup file secara berkala adalah hal yang baik.


0 Komentar

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Stay Safe!

Keep Calm and Stay at Home