Thử thêm cái coi lào
Jul
20
Tìm hiểu về mod_security
hrockvn , 07:24 , Server , Nhận xét: (2) , Trích dẫn: (0) , Đọc: (2326) , Via Tự viết
Lớn | Vừa | Nhỏ
Lớn | Vừa | Nhỏ
Các bạn thân mến. Hôm nay mình post một loạt bài về mod_security. Thực tế là mình mới bắt đầu tìm hiểu về mod_sceurity ngày hôm nay. Những bài viết dưới đây là mình lượm lặt từ các website. Mình đã dùng thử các filter theo như bài hướng dẫn trên Apache2, mod_security2 nhưng nó không hoạt động. Có lẽ những hướng dẫn dưới đây dành cho mod_security1 trên Apache1. Chính vì thế, những bài viết dưới đây có thể chỉ là tham khảo nếu bạn dùng Apache2 + Mod_security2. Để rõ hơn về Mod_security các bạn có thể vào website http://www.modsecurity.org/. Chúc thành công
Mod_security là một module dùng với Apache cho việc ngăn chặn người dùng *exploit* lỗ hổng của web applications như thực hiện các lệnh thường dùng ở command line ngay trên trang web, chạy shell code để làm tràn bộ đệm (buffer overflow), lấy cookie của browser hay re-direct người thăm trang web sang một trang khác. Dĩ nhiên mod_security không phải là một biện pháp tối ưu nhưng ít nhất nó cũng giúp administrator đỡ phải lo lắng với những lỗi căn bản hay thấy trong các web applications được viết không hoàn hảo.
Bài viết sẽ không giải thích việc cài đặt mod_security mà sẽ đi "Alert" vào các chức năng mod_security hiện có và cách sử dụng.
Bạn sẽ cần điều chỉnh tập tin apache.conf để báo cho Apache biết bạn muốn dùng mod_security. Sau khi cài đặt, mod_security sẽ tự thêm vào LoadModule và AddModule cần thiết trong apache.conf, tuy nhiên muốn thật sự sử dụng nó, bạn phải *turn on* và khai báo các param cần thiết.
Để bật mod_security lên, bạn chỉ thêm SecFilterEngine On vô apache.conf. Cũng có thể dùng DynamicOnly nếu bạn chỉ muốn mod_security phân tích dynamic content. Nhưng như vậy vẫn chưa đủ. Sau đây là các param ví dụ, bạn có thể bỏ vào apache.conf.
1. Phòng ngừa characters hay dùng trong shell code để tạo lỗi tràn bộ đệm, dùng:
SecFilterForceByteRange 32 126
Để biết những ký tự tương ứng trong khoảng 32 và 126, bạn có thể tham khảo http://www.asciitable.com
2. Phòng ngừa kiểu tấn công XSS (Cross-site scripting) sử dụng HTML và Java script, dùng:
SecFilter "<(.|\n)+>"
SecFilter "<[[:space:]]*script"
3. Yêu cầu connection đến cổng web server phải có USER_AGENT và HOST headers, dùng:
SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"
Cái dòng trên sẽ yêu cần mọi connection đến web server phải có thông tin về browser và host. Nếu bạn sử dụng telnet đến cổng web server, bạn sẽ nhận ErrorDocument 500 của Apache (Internal Server Error) sau lệnh GET.
4. Phòng ngừa SQL-injection, dùng:
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "drop[[:space:]]table"
SecFilter "select.+from"
5. Phòng ngừa sử dụng "../" (path traversal), dùng:
SecFilter "\.\./"
7. Muốn mod_security phân tích POST request, dùng:
SecFilterScanPOST On
Bạn cũng có thể dùng SecFilterCheckURLEncoding On và SecFilterCheckUnicodeEncoding On để mod_security *kiểm tra* URL encoding và UTF-8.
Lưu ý:nếu bạn dùng SecFilterCheckUnicodeEncoding On, một số bộ gõ hay input tiếng Việt sẽ không hoạt động
Nếu bạn chạy web với nhiều virtualhost và muốn một site trong 10 sites không dùng mod_security, bạn có thể dùng:
SecFilterSelective SERVERNAME "^tên_của_web_site$" nolog,allow
Những parameters trên chỉ là ví dụ một vài chức năng của mod_security. Bạn có thể tìm thấy các ví dụ trên trong gói mod_security. Ngoài các chức năng phòng chống, bạn có thể dùng mod_security cho việc chạy Apache trong chroot. Chưa hết đâu, bạn có thể dùng snort rules với mod_security. Đã chưa? !!!
Có lẽ bạn cũng đã nhận ra, vừa rồi mình mới hướng dẫn cách sử dụng một intrusion prevention system (IPS) sử dụng Apache và mod_security. Bạn còn ngồi đó làm gì? Đến web site http://www.modsecurity.org rồi tải về mà sử dụng. Sau khi có mod_security chạy rồi, báo cho boss biết là "Tôi mới cài đặt instrusion prevention system mà không tốn đồng nào hết! Vậy thì lên lương đi chứ!"
References:
sưu tầm từ vnlinux
Có cái này nữa nè:
Với Linux, Unix
Với Windows
SecFilter "(\.cmd|\.bat|\.htw|\.ida|\.idq|\.htr|\.idc|\.printer|\.ini|\.pol|\.dat|\.cfg|\.idx|\.dll|\.inf|\.mdb|\.mde|\.msi|\.reg|\.scr|\.exe)"
SecFilter (c\:|/_vti_bin/|/_vti_cnf/|_vti_pvt/|/IISSAMPLES/|/MSOffice/|/system32/|/msadc/|/inetpub/|/winnt)
Những khu vực nhạy cảm của hệ thống sẽ được mod security bảo vệ, các bạn có thể tuỳ biến số từ khoá cho phù hợp.
Để chặn X-Flash:
Rule ver 1.x:
Nguồn : http://enhack.net/xforce/showthread.php?t=46
***********************************************************
Mod_security là một module dùng với Apache cho việc ngăn chặn người dùng *exploit* lỗ hổng của web applications như thực hiện các lệnh thường dùng ở command line ngay trên trang web, chạy shell code để làm tràn bộ đệm (buffer overflow), lấy cookie của browser hay re-direct người thăm trang web sang một trang khác. Dĩ nhiên mod_security không phải là một biện pháp tối ưu nhưng ít nhất nó cũng giúp administrator đỡ phải lo lắng với những lỗi căn bản hay thấy trong các web applications được viết không hoàn hảo.
Bài viết sẽ không giải thích việc cài đặt mod_security mà sẽ đi "Alert" vào các chức năng mod_security hiện có và cách sử dụng.
Bạn sẽ cần điều chỉnh tập tin apache.conf để báo cho Apache biết bạn muốn dùng mod_security. Sau khi cài đặt, mod_security sẽ tự thêm vào LoadModule và AddModule cần thiết trong apache.conf, tuy nhiên muốn thật sự sử dụng nó, bạn phải *turn on* và khai báo các param cần thiết.
Để bật mod_security lên, bạn chỉ thêm SecFilterEngine On vô apache.conf. Cũng có thể dùng DynamicOnly nếu bạn chỉ muốn mod_security phân tích dynamic content. Nhưng như vậy vẫn chưa đủ. Sau đây là các param ví dụ, bạn có thể bỏ vào apache.conf.
1. Phòng ngừa characters hay dùng trong shell code để tạo lỗi tràn bộ đệm, dùng:
SecFilterForceByteRange 32 126
Để biết những ký tự tương ứng trong khoảng 32 và 126, bạn có thể tham khảo http://www.asciitable.com
2. Phòng ngừa kiểu tấn công XSS (Cross-site scripting) sử dụng HTML và Java script, dùng:
SecFilter "<(.|\n)+>"
SecFilter "<[[:space:]]*script"
3. Yêu cầu connection đến cổng web server phải có USER_AGENT và HOST headers, dùng:
SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"
Cái dòng trên sẽ yêu cần mọi connection đến web server phải có thông tin về browser và host. Nếu bạn sử dụng telnet đến cổng web server, bạn sẽ nhận ErrorDocument 500 của Apache (Internal Server Error) sau lệnh GET.
4. Phòng ngừa SQL-injection, dùng:
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "drop[[:space:]]table"
SecFilter "select.+from"
5. Phòng ngừa sử dụng "../" (path traversal), dùng:
SecFilter "\.\./"
7. Muốn mod_security phân tích POST request, dùng:
SecFilterScanPOST On
Bạn cũng có thể dùng SecFilterCheckURLEncoding On và SecFilterCheckUnicodeEncoding On để mod_security *kiểm tra* URL encoding và UTF-8.
Lưu ý:nếu bạn dùng SecFilterCheckUnicodeEncoding On, một số bộ gõ hay input tiếng Việt sẽ không hoạt động
Nếu bạn chạy web với nhiều virtualhost và muốn một site trong 10 sites không dùng mod_security, bạn có thể dùng:
SecFilterSelective SERVERNAME "^tên_của_web_site$" nolog,allow
Những parameters trên chỉ là ví dụ một vài chức năng của mod_security. Bạn có thể tìm thấy các ví dụ trên trong gói mod_security. Ngoài các chức năng phòng chống, bạn có thể dùng mod_security cho việc chạy Apache trong chroot. Chưa hết đâu, bạn có thể dùng snort rules với mod_security. Đã chưa? !!!
Có lẽ bạn cũng đã nhận ra, vừa rồi mình mới hướng dẫn cách sử dụng một intrusion prevention system (IPS) sử dụng Apache và mod_security. Bạn còn ngồi đó làm gì? Đến web site http://www.modsecurity.org rồi tải về mà sử dụng. Sau khi có mod_security chạy rồi, báo cho boss biết là "Tôi mới cài đặt instrusion prevention system mà không tốn đồng nào hết! Vậy thì lên lương đi chứ!"
References:
- Giới thiệu về mod_security: http://www.onlamp.com/pub/a/apache/2003/11/26/mod_security.html
- mod_security web site: http://www.modsecurity.org
sưu tầm từ vnlinux
***********************************************************
Có cái này nữa nè:
Với Linux, Unix
SecFilter (uname|id|ls|cat|rm|kill|mail|su)
SecFilter (/home/|/var/|/boot/|/etc/|/bin/|/usr/|/tmp/)
SecFilter "\.\./"
dòng cuối là để ngăn việc đi lên parent directoriesSecFilter (/home/|/var/|/boot/|/etc/|/bin/|/usr/|/tmp/)
SecFilter "\.\./"
Với Windows
SecFilter "(\.cmd|\.bat|\.htw|\.ida|\.idq|\.htr|\.idc|\.printer|\.ini|\.pol|\.dat|\.cfg|\.idx|\.dll|\.inf|\.mdb|\.mde|\.msi|\.reg|\.scr|\.exe)"
SecFilter (c\:|/_vti_bin/|/_vti_cnf/|_vti_pvt/|/IISSAMPLES/|/MSOffice/|/system32/|/msadc/|/inetpub/|/winnt)
Để chặn X-Flash:
Rule ver 1.x:
SecFilterSelective "HEADERS" "x-flash-version"
Rule ver 2.xSecRule REQUEST_HEADERS_NAMES "x-flash-version"
Nguồn : http://enhack.net/xforce/showthread.php?t=46
***********************************************************
Sự cố Server Linux Việt Nam ngày 18/07/2008
Phát hiện và chống xâm nhập Web Server với Mod Security

Bài viết của bạn rất hay và bổ ích. Bạn cho mình hỏi là nếu dùng trên apache nhưng mình dùng 2 virual host trong cùng một host với một địa chỉ ip thì có dùng được Mod_security không? Nếu được thì config như thế nào. Thanks bạn đã trả lời