14 Şubat 2010 Pazar

PHP-IDS


"PHPIDS" her saldırıyı zararlılık derecesine ve etkisine göre numaralandırmıştır. Altta göreceğiniz "impact" yazıları bu anlama gelmektedir. Yani impact yazısının karşısında olan rakamları, yapılan saldırı sayısı olarak düşünmeyin. "impact" saldırının zararlılık derecesine verilen numaradır. Hangi kodun derecesi nedir diye merak ediyorsanız sitemin http://demo.php-ids.org/ istediğiniz kodu seçip "test with PHPIDS" yazan yere tıklayın ve kodun "impact" derecesini öğrenin.

Şimdi sırayla ayarları inceleyelim.

1-Send me an Email to if the total Impact of a Bad Request is equal or bigger than:

1-Eğer toplam saldırıların etkisi 50 den büyükse veya eşitse mail ile bildir.

--------------------------------------

2-Block Bad Request if Impact was bigger than:

2-Eğer saldırının etkisi belirtilen sayıdan büyükse zararlı sorgulamaları blokla.

--------------------------------------

3-Block Bad Request IPs aswell , If yes how long in days:

3-Zararlı sorgulama yapanların IP adreslerini blokla. Eğer işaretlerseniz ne kadar süre banlı kalacak.

--------------------------------------

4-Show Latest Bad Requests

4-Yapılan son saldırılarıdan kaç tanesi listelensin.

--------------------------------------

"Last Blocked Bad Requests:" yazan yerde ise son bloklanan saldırıların listesini görebilirsiniz.

Eklentinin nasıl çalıştığını görmek isterseniz alttaki adrese girip deneme yapabilirsiniz.
Kod: http://demo.php-ids.org/?test=%22%3EXXX


Eğer sitenize yapılan son saldırıları sidebar'ınızda görüntülemek isterseniz. Alttaki kodları sidebar'ınıza yapıştırın.

Kod:
<?php
echo ("<li id=wpids><h2>Son Saldırılar:</h2><ul>");
$attackfields = array("GET","POST","REQUEST","SERVER REQUEST_URI","SERVER USER_AGENT","SERVER REFERER","COOKIE");
$records = $wpdb->get_results("SELECT `attacked`, `ip`, `tag`, `value` FROM $GLOBALS[table_prefix]ids_intrusions ORDER BY id DESC LIMIT

10",ARRAY_A);
foreach ($records as $record)
{
echo ("<li title=\"".htmlspecialchars($record['value'])."\"><strong><a href=\"http://www.ip2.................................com/$record[ip]\">".ereg_replace("[^[:digit:].]", "",

$record[ip]).[/url]</strong><br />");
if ($record['tag']=='')
{
echo($attackfields[$record['attacked']]."=".htmlspecialchars(substr($record['value'],0,20)."...")."</li>");
}else
{
echo($record['tag']."=".htmlspecialchars(substr($record['value'],0,20)."...")."</li>");
}
}
echo ("</ul></li>");?>
Dipnot: Bu eklenti "php5" ile çalışır eğer "php4" kullanıyorsanız "Parse Error" hatası alabilirsiniz. Ayrıca bloğunuza yeni bir yazı eklemeye çalıştığınızda bunu da saldırı gibi anlayıp engelleyebilir. Şu anda bu genel bir problem, eklentinin sonraki versiyonlarında bu eylemi whitelist'e alacaklar eğer bu sorunla karşılaşırsanız yeni yazı ekleyeceğiniz zaman eklentiyi devre dışı bırakmalısınız.

Dipnot'da belirttiğim gibi bu eklenti php4'de çalışmıyor php5 olması lazım wordpress için. Önce bende de "Parse Error" hatasını verdi ama daha sonra ".htaccess" dosyama alttaki kodları ekleyerek sorunu çözdüm.

Kod:
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php4
Eklentiyi üstteki gibi kurduktan sonra, sitenize yazı eklerken bunu bir saldırı zannedip engellediyse alttaki yöntemi deneyebilirsiniz.

Eklenti bende hata vermişti yeni yazı eklerken bu girişimi saldırı olarak algılayıp engelliyordu ve sidebarda sitemize yapılan saldırılardan başka "referrer", "user agent" gibi diğer bilgileri de gösteriyordu. Sitemin sidebar'ına bakarsanız sadece yapılan saldırıları gösteriyor ve siteye yazı eklerken artık bu girişimi engellemiyor.

Eklentiyi aktifleştirdikten sonra eklentiler bölümünden WPIDS yazan yere gelin ve orada 60 yazan yeri "1" yapın ve "save settings" diyerek ayarları kaydedin.

Eğer sidebar'ınızda benimkisi gibi sadece yapılan saldırıları görüntülemek istiyorsanız alttaki kodları sıdebar'ınıza yapıştırın.

Kod:
Son Saldırılar:

<h2>Son Saldırılar:</h2>
<?php
echo ("");
$attackfields = array("DETECT");
$records = $wpdb->get_results("SELECT `attacked`, `ip`, `page` FROM $GLOBALS[table_prefix]ids_intrusions ORDER BY id DESC LIMIT 10",ARRAY_A);
foreach ($records as $record)
{
echo ("<li title=\"".htmlspecialchars($record['page'])."\"><strong><a target= _blank href=\"http://www.ip2.................................com/$record[ip]\">".ereg_replace("[^[:digit:].]", "", $record[ip]).[/url]</strong><br />");
if ($record['']=='')
{
echo($attackfields[$record['attacked']]."=".htmlspecialchars(substr($record['page'],0,15)."...")."</li>");
}else
{
echo($record['']."=".htmlspecialchars(substr($record['value'],0,20)."...")."</li>");
}
}
echo ("");?>
Eğer yine istediğiniz gibi olmadıysa bu sefer üstte değişiklik yaptığım "phpids" eklentisinin içindeki "wp-ids.php" dosyasını bir metin belgesiyle açın ve 94. satırdaki

Kod:
$request = array ($_SERVER['REQUEST_URI']);
yazan yeri

Kod:
$request = array ($_GET);
ile değiştirin.

Eklentinin resmi sitesinde filtre kütüphanesine yeni zararlı kodlar eklenerek sürekli güncelleniyor. Eğer eklentinizin filtre kütüphanesini güncel tutmak isterseniz eklentinin sitesine gidip "default_filter.xml" adındaki dosyayı indirerek, eski "default_filter.xml" dosyanızla değiştirmek. Bu dosya sitenizde bu bölümde bulunuyor "/wp-content/wp-ids/IDS/default_filter.xml"

Güncel "default_filter.xml" dosyası genelde bu adreste (https://svn.php-ids.org/svn/trunk/lib/IDS/) oluyor, aynı zamanda ana sayfadan da (http://www.php-ids.org/) ulaşmak mümkün. Siteye girip "default_filter.xml" dosyasına farklı kaydet diyip indirebilirsiniz.

Bloğunuza Yorum Formlarından Yapılacak Olan Saldırılarıda Engellemek İsteyebilirsiniz.

Size tanıtacağım eklenti sadece zararlı kodları pasifize etmekle kalmıyor, bilinen tüm XSS kodlarını zararsız hale getiriyor. Sitenize her türlü yapılacak XSS saldırılarına karşı tam güvenlik almanızı sağlıyor. Aslında wordpress’de bu konuda filtreleme sağlıyor fakat bu bizi daha iyi bir güvenlik almamamız için bir neden olamaz. Bu eklenti tam ve eksiksiz bir koruma sağlayacak. Şimdi KSES (wordpress’in default filtrelemesi) ile bu eklentiyi yani “HTML Purified” karşılaştıralım. Detaylı karşılaştırmaya buradan da bakabilirsiniz. Comparison

HTML Purifier John Godley tarafından wordpress’e uyumlu hale getirildi

0 yorum:

Paylaş

Twitter Delicious Facebook Digg Stumbleupon Favorites