[.htaccess] Phòng/chặn khai thác lỗ hổng


Một số kỹ thuật đơn giản có thể áp dụng ngay vào ứng dụng website để phòng/chặn khai thác lỗ hổng:
Kỹ thuật 1: Chặn dùng các phần mềm scan lỗi (như phần mềm Acunetix, nessus, Openvas,..)
Chỉ cần chép cái script bên dưới vào file .htaccess hoặc web.config .
Apache (.htaccess)
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} ^w3af.sourceforge.net [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dirbuster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nikto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SF [OR]
RewriteCond %{HTTP_USER_AGENT} sqlmap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} fimap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nessus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} whatweb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Openvas [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jbrofuzz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwhisker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webshag [NC,OR]
RewriteCond %{HTTP:Acunetix-Product} ^WVS
RewriteRule ^.* http://127.0.0.1/ [R=301,L]
</IfModule>
IIS (web.config) (phải cài thêm extension “IIS URL Rewrite” vào IIS)
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^.*" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="^w3af.sourceforge.net" />
<add input="{HTTP_USER_AGENT}" pattern="dirbuster" />
<add input="{HTTP_USER_AGENT}" pattern="nikto" />
<add input="{HTTP_USER_AGENT}" pattern="SF" ignoreCase="false" />
<add input="{HTTP_USER_AGENT}" pattern="sqlmap" />
<add input="{HTTP_USER_AGENT}" pattern="fimap" />
<add input="{HTTP_USER_AGENT}" pattern="nessus" />
<add input="{HTTP_USER_AGENT}" pattern="whatweb" />
<add input="{HTTP_USER_AGENT}" pattern="Openvas" />
<add input="{HTTP_USER_AGENT}" pattern="jbrofuzz" />
<add input="{HTTP_USER_AGENT}" pattern="libwhisker" />
<add input="{HTTP_USER_AGENT}" pattern="webshag" />
<add input="{HTTP_ACUNETIX_PRODUCT}" pattern="^WVS" ignoreCase="false" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="http://127.0.0.1/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Ưu điểm: Đơn giản và hiệu quả.
Nhược điểm: Chỉ chặn được một vài phần mềm scan chứ không chặn triệt để.
Kết quả thực nghiệm:

Kỹ thuật 2: Che dấu lỗi trả về đối với webserver IIS
Khi đã publish webiste ra ngoài thì cần đặt lại 1 trong 2 dòng lệnh như sau vào web.config:
<configuration>
<system.web>
<customErrors mode="RemoteOnly">

hoặc khi xuất hiện lỗi thì sẽ tự chuyển về 1 trang mặc định thông báo lỗi (error.htm) (ngoài ra có thể chuyển về trang chủ default.aspx)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<customErrors defaultRedirect="error.htm" mode="On" />
</system.web>
</configuration>
Tránh thiết lập ở chế độ “<customErrors mode="Off">” vì chế độ này sẽ hiển thị lỗi ra ngoài.

Kết luận: Ngoài 2 kỹ thuật trên còn có nhiều kỹ thuật khác nữa nhưng nhìn chung đó chỉ là các biện pháp ứng phó tạm thời, về lâu dài xin khuyến cáo nên rà soát vá lỗi toàn diện mã nguồn (tự rà soát hoặc thuê tổ chức chuyên rà soát bảo mật ứng dụng website); cập nhật kịp thời các bản vá và phiên bản mới cho webserver, ứng dụng (nếu dùng open source).
[.htaccess] Phòng/chặn khai thác lỗ hổng Reviewed by Nguyen Nam Hong on 8:19 PM Rating: 5
Copyright © Kid1412 Blog's 💖 2016
Development by Hong Nguyen Nam
Powered by Blogger.