Siteye Shell Sokulunca Anında Silinmesi İçin

0 Replies 89 Views
·

Leave a rating: Siteye Shell Sokulunca Anında Silinmesi İçin

You have already rated this thread. Re-rating it will remove your existing rating or review.

Rating:

Raters: Siteye Shell Sokulunca Anında Silinmesi İçin

Participants
Thread Starter #0
Günümüz dijital dünyasında web siteleri, siber saldırıların sık hedefi haline gelmiştir. Özellikle PHP tabanlı sistemlerde "shell" adı verilen kötü amaçlı scriptler, sunucuya sızmak için sıklıkla kullanılır. Bu tür zararlı yazılımların tespiti ve anında silinmesi, sitenizin güvenliği açısından kritik öneme sahiptir.
Bu yazımızda, siteye shell yüklendiği anda bunu tespit edip otomatik olarak silen bir güvenlik yazılımı geliştirmenin teknik detaylarını anlatacağız.

Shell Nedir?

Shell, saldırganların sunucu üzerinde tam yetki almasını sağlayan zararlı bir komut dosyasıdır. Genellikle şu amaçlarla kullanılır:

  • Dosya yükleme/indirme
  • Veritabanı erişimi
  • Yetkisiz kod çalıştırma
  • Sunucuya arka kapı bırakma

Shell Tespit ve Otomatik Silme Sisteminin Temel Mantığı

Shell'leri tespit etmek için temel olarak aşağıdaki yöntemler kullanılır:
YöntemAçıklama
Dosya imzası kontrolüYaygın shell kodlarının hash, içerik ve isim kontrolleri
Kod analizieval, base64_decode, exec, system gibi fonksiyonların tespiti
Zaman ve konum takibiKullanıcının aktif olmadığı zamanlarda yüklenen dosyalar
Dosya yükleme izlemeFTP, HTTP veya dosya yöneticisi üzerinden gelen yeni dosyaları anında analiz etme

Örnek PHP Shell Tespit Scripti

Aşağıdaki örnek PHP script, public_html dizinine yeni bir dosya yüklendiğinde içerik taraması yapar ve tehlikeli ifadeler bulursa dosyayı anında siler:
CODE
123456789101112131415161718192021222324252627<?php
$scanDir = '/home/kullaniciadi/public_html/';
$suspiciousFunctions = ['eval', 'base64_decode', 'shell_exec', 'system', 'passthru', 'exec'];


function isShell($code) {
    global $suspiciousFunctions;
    foreach ($suspiciousFunctions as $func) {
        if (stripos($code, $func) !== false) {
            return true;
        }
    }
    return false;
}


$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($scanDir));
foreach ($files as $file) {
    if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === 'php') {
        $contents = file_get_contents($file);
        if (isShell($contents)) {
            unlink($file); // dosyayı sil
            error_log("Shell silindi: " . $file, 3, "/var/log/shell_guard.log");
        }
    }
}
?>



Cron ile Otomatikleştirme



Bu kodu bir shell_guard.php dosyasına kaydettikten sonra her 5 dakikada bir çalışacak şekilde crontab’a ekleyin:



BASH
1*/5 * * * * php /home/kullaniciadi/shell_guard.php



Gelişmiş Özellikler ile Güvenliği Artırın



  • E-posta uyarısı: Shell silindiğinde yöneticilere bildirim gönderin.
  • Dosya yedeği alma: Silinen dosyayı karantinaya alın veya loglayın.
  • Upload klasörleri özel takibi: /uploads/, /temp/, /cache/ gibi dizinlerde ayrı önlemler alın.
  • Realtime monitoring (gerçek zamanlı izleme): inotify veya auditd gibi sistem araçları ile olay tabanlı izleme yapın (Linux sistemlerde).
[IMG width="249px" size="1050x1050"]https://i.hizliresim.com/a6d55tm.png[/IMG]

You must be logged in to reply.

0 quotes selected