Tài liệu về mod security

38 4 0
Tài liệu về mod security

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỀ TÀI Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity demo tính năng ĐỀ TÀI TÌM HIỂU MOD SECURITY VÀ DEMO TÍNH NĂNG MSSV Họ Tên Lớp 10348551 Nguyễn Đức Lợi DHTH4ATLT 10321271 Dương Hiễn Lãm DHTH4BTLT 10356381 Nguyễn Phạm Hoàng Duy DHTH4BTLT 10244481 Trịnh Minh Tiến DHTH6C 09076271 Trần Công Chính DHTH5C 11234421

Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Mục Lục Chương 1: Hoạt động ứng dụng web cá kiểu công web .3 I HTTP Web Server HTTP ? .3 Web Server .4 Các tiến trình .4 Internet .5 Máy chủ máy khách .6 Địa IP (IPaddress) Các máy chủ tên miền (Name servers) Cổng (Ports) Giaothức (Protocols) 11 II Các phương pháp công webiste 13 Tấn công từ chối dịch vụ .13 Tấn công Phishing: 16 Tấn công CROSS-SITE SCRIPTING 17 Tấn công SQL-injection 18 Tấn công Session Hijacking 19 Tấn công Social Engineering 20 Tấn công dựa lỗ hổng website 21 Chương 2: Modsecurity 22 I Các khả mod_security .22 II Cài đặt .24 Download mod_security: 24 Trước cài đặt 24 Giải nén 25 Biên dịch 25 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Tích hợp modsecurity vào apache .25 Khởi động lại apache .25 III Cấu hình .25 File cấu hình 25 Turning Rule on and of 25 SecDefaultAction 26 IV Rules 26 Xây dựng rules nào? .26 Cấu trúc rules 27 2.1 Variables 28 2.2 Collections 30 2.3 Operators 30 2.4 Actions 31 V Logging 32 Debug Log 32 Audit logging 33 Tuỳ biến thông tin log 34 VI Xây dựng sách Modsecurity chống lại số công 34 SQL Injection 34 XSS Attack 35 Website defacement .35 Brute force attacks 36 Directory indexing 36 Detecting the real IP address of an attacker 37 Một số công khác 37 VII Tài liệu tham khảo 39 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Chương 1: Hoạt động ứng dụng web cá kiểu công web I HTTP Web Server HTTP ? HTTP chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn bản) Nó giao thức mà World Wide Web sử dụng HTTP xác định cách thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, file multimedia khác) định dạng truyền tải sao, hành động mà Web server (máy chủ Web) trình duyệt Web (browser) phải làm để đáp ứng lệnh đa dạng Chẳng hạn, bạn gõ địa Web URL vào trình duyệt Web, lệnh HTTP gửi tới Web server để lệnh hướng dẫn tìm trang Web u cầu kéo mở trình duyệt Web Nói nơm na hơn, HTTP giao thức truyền tải file từ Web server vào trình duyệt Web để người dùng xem trang Web diện Internet.HTTP giao thức ứng dụng giao thức TCP/IP (các giao thức tảng cho Internet) Có tiêu chuẩn khác điều khiển cách thức World Wide Web làm việc HTML (HyperText Markup Language, ngơn ngữ đánh dấu siêu văn bản), có chức quản lý cách thức mà trang Web định dạng hiển thị người ta gọi HTTP giao thức “phi trạng thái” (stateless) lệnh thực thi cách độc lập, lệnh sau khơng biết điều lệnh đến trước Đây hạn chế, khiếm khuyết HTTP Nó ngun nhân tình trạng khó thực thi trang Web có khả phản ứng thơng minh lệnh mà người dùng nạp vào Và hạn chế nhà phát triển khắc phục công nghệ ActiveX, Java, JavaScript cookies Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Phiên HTTP 1.1 So với phiên nguyên thủy (HTTP 1.0), phiên truyền tải trang Web nhanh giảm tình trạng tắc nghẽn giao thơng Web Web Server Các tiến trình Khi bạn ngồi trước máy tính duyệt web Internet Có người bạn bạn gọi điện thoại cho bạn nói “Tôi vừa đọc viết hay! Bạn đánh vào địa sau xem thử nhé, địa trang web http://computer.howstuffworks.com/web-server.htm “ Khi bạn gõ vào địa trang web trình duyệt web ấn Enter, thật kỳ diệu, trang web hiển thị hình bạn Vậy, làm mà trang web thị hình bạn, chế hoạt động máy chủ Web nào? Chúng giúp bạn hiểu rõ viết Các bước tiến trình truyền tải trang web đến hình bạn thể theo mơ hình sau: Theo mơ hình trên, trình duyệt web thực kết nối tới máy chủ web, yêu cầu trang web nhận lại Sau đây, thứ tự bước xảy đến đằng sau hình bạn: Trình duyệt web tách địa website làm phần:  Phần giao thức: (“http”) Máy chủ tên miền: (www.howstuffworks.com) Khoa ATTT – Học viện KT Mật Mã  Tìm hiểu Modsecurity Tên tệp: (“web-server.htm”) Trình duyệt liên hệ với máy chủ tên miền để chuyển đổi tên miền "www.howstuffworks.com" địa IP (Internet Protcol)  Sau đó, trình duyệt gửi tiếp kết nối tới máy chủ có địa IP tương ứng qua cổng 80  Dựa giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu cầu tệp "http://computer.howstuffworks.com/web-server.htm." (Bạn ý, cookies gửi kèm theo từ trình duyệt web đến máy chủ)  Tiếp đến, máy chủ gửi đoạn text dạng HTML đến trình duyệt web bạn (cookies gửi kèm theo từ máy chủ tới trình duyệt web, cookies ghi đầu trang trang web)  Trình duyệt web đọc thẻ HTML, định dạng trang web kết xuất hình bạn Nếu bạn chưa khám phá tiến trình trên, bạn gặp phải nhiều thuật ngữ Để hiểu hiểu cách chi tiết, bạn cần biết thêm khái niệm địa internet (địa IP), cổng (ports), giao thức (protocol)… Đoạn viết sau giúp bạn hiểu rõ Internet Internet gì? Internet tập hợp khổng lồ hàng triệu máy tính, nối với mạng máy tính Mạng máy tính cho phép tất máy tính trao đổi thơng tin cho Một máy tính đặt nhà tham gia vào mạng Internet thông qua đường điện thoại, đường thuê bao số cáp modem kết nối đến nhà cung cấp dịch vụ Internet (Internet service provider ISP) Máy tính cơng ty, trường học thường có 01 card mạng (Network interface Card - NIC) để kết nối trực tiếp vào mạng nội (Local Area Network) công ty trường học Mạng nội công ty, trường học nối tới nhà cung cấp dịch vụ Internet ISP đường điện thoại có tốc độ cao, Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity ví dụ đường T1 Mỗi đường T1 đạt tốc độ 1.5 triệu bit giây, kết nối điện thoại thông thường đạt 30.000 đến 50.000 bít giây.Những nhà cung cấp dịch vụ ISP nối tới nhà cung cấp dịch vụ Internet lớn hơn…Đối với đường kết nối quốc gia hay khu vực, nhà cung cấp dịch vụ Internet thường sử dụng sợi cáp quang Hệ thống đường cáp toàn giới kết nối loại đường sợi cáp quang, cáp ngầm biển hệ thống vệ tinh (satellite) Bằng cách vậy, máy tính Internet kết nối với Internet Máy chủ máy khách Nhìn chung, máy tính Internet chia làm loại: Máy chủ máy khách Máy chủ loại máy tính cung cấp dịch vụ (máy chủ dịch vụ web, máy chủ dịch vụ thư điện tử) đến máy khác Máy khách máy tính sử dụng để kết nối tới dịch vụ máy chủ Khi bạn kết nối tới Yahoo! địa www.yahoo.com để xem trang web, trường hợp này, Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Yahoo! sử dụng máy tính, gọi máy chủ (cũng nhóm máy chủ có cấu hình lớn) kết nối Internet, nhằm cung cấp dịch vụ cho bạn Ngược lại, máy tính bạn khơng cung cấp dịch vụ Internet để người khác truy cập, coi máy tính sử dụng thơng thường, hay cịn gọi máy khách Một máy chủ cung cấp hay nhiều dịch vụ Internet Ví dụ, máy chủ có nhiều phần mềm chạy nó, cho phép hoạt động máy chủ web, máy chủ email máy chủ FTP Các máy trạm kết nối tới máy chủ thường với “mục đĩch” cụ thể, hướng u cầu tới máy chủ có ứng dụng phù hợp với “mục đích” đó, ví dụ bạn chạy chương trình duyệt web máy tính bạn, có nghĩa máy tính bạn kết nối tới máy chủ dịch vụ web Tương tự, chạy ứng dụng Telnet máy tính bạn kết nối tới máy chủ dịch vụ Telnet, chạy ứng dụng email kết nối tới máy chủ dịch vụ email… Địa IP (IPaddress) Để tất máy tính Internet liên hệ với nhau, máy tính cung cấp địa Internet, gọi IP Địa IP viết tắt từ Internet Protocol IP số 32 bít thể dạng số thập phân gồm có “octet”, ví dụ 216.27.61.137 số địa IP gọi “octet”, số có giá trị từ đến 255, có nghĩa “octet” có đến 28 giá trị khác Địa IP máy tính tham gia Internet Đối với máy chủ, địa IP cố định Một máy tính, kết nối Internet đường line điện thoại thơng qua modem, cung cấp địa IP nhà cung cấp dịch vụ Internet (ISP) Địa IP cho lần kết nối, đồng nghĩa thay đổi địa IP khác kết nối lần Theo Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity cách này, thay vi phải cung cấp địa IP cho khách hàng truy cập, nhà cung cấp dịch vụ Internet ISP cần địa IP cho modem Nếu bạn làm việc hệ điều hành windows, bạn xem nhiều thơng tin liên quan Internet ghi vào cấu hình máy tính bạn, bao gồm địa IP tại, tên máy cách sử dụng lệnh WINIPCFG.EXE (IPCONFIG.EXE Windows 2000/XP) Trên máy Unix,để hiển thị địa IP, tên máy tính, bạn gõ dịng lệnh nslookup dấu nhắc Khi máy tính kết nối Internet, thông số địa IP quan trọng giúp bạn kết nối tới máy chủ Ví dụ, trình duyệt web, bạn gõ địa kết nối http://209.116.69.66, lúc này, bạn kết nối kết máy chủ có địa IP 209.116.69.66 máy chủ có dịch vụ Web server cho website HowStuffWorks Các máy chủ tên miền (Name servers) Thông thường, người dùng Internet nhớ hết số địa IP, lý địa IP thay đổi Vì vậy, tất máy chủ Internet phải có tên cho dễ đọc, thường gọi “tên miền” – Domain names Ví dụ, tên miền www.howstuffworks.com tên cố định, dễ đọc so với việc phải nhớ địa IP 209.116.69.66 Tên miền www.howstuffworks.com gồm có phần: Tên máy ("www") Tên miền ("howstuffworks") Tên miền cấp ("com") Tên miền quản lý công ty, tên VeriSign VeriSign tạo tên miền “cấp một” đảm bảo tất tên miền khác tên miền cấp VeriSign trì thơng tin liên quan đến địa tên miền sở liệu “whois” Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Tên máy tạo cơng ty cung cấp dịch vụ lưu trữ tên miền “www” tên máy phổ biến, nhiều nơi thay tên khác, ví dụ tên máy thể khu vực địa lý, ví dụ “encarta.msn.com”, tên miền Microsoft's Encarta encyclopedia, tên máy "encarta" thay cho www Tập hợp máy chủ tên miền (domain name servers - DNS) ánh xạ tên miền dễ đọc tới địa IP tương ứng Những máy chủ lưu trữ sở liệu tên miền ánh xạ đến địa IP, chúng bố trí nhiều nơi mạng Internet Các công ty, nhà cung cấp dịch vụ Internet trường đại học trì máy chủ tên miền cỡ nhỏ để ánh xạ tên máy tới địa IP tương ứng Tại VeriSign, có máy chủ tên miền trung tâm sử dụng liệu cung cấp VeriSign để ánh xạ tên miền đến địa IP Nếu bạn gõ địa http://computer.howstuffworks.com/web-server.htm vào trình duyệt web, trình duyệt tách tên miền www.howstuffworks.com gửi tới máy chủ tên miền, sau máy chủ tên miền gửi ngược lại địa IP với tên miền www.howstuffworks.com Trên máy chủ UNIX, bạn biết thơng tin tương tự cách sử dụng lệnh nslookup đơn giản cần gõ vào tên www.howstuffworks.com dịng lệnh, câu lệnh tìm kiếm tên máy chủ chuyển địa IP tương ứng cho bạn Như vậy, Internet tạo thành hàng triệu máy tính, máy có địa IP Trong số đó, nhiều máy tính máy chủ cung cấp dịch vụ cho máy khác Internet, ví dụ máy chủ e-mail, máy chủ web, máy chủ FTP, máy chủ Gopher, máy chủ Telnet… Cổng (Ports) Bất kỳ máy chủ cung cấp dịch vụ Internet, sử dụng cổng đánh số Ví dụ, máy chủ chạy dịch vụ web dịch vụ FTP, dịch vụ WEB Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity thường dùng cổng 80, dịch vụ FTP dùng cổng 21 Các máy khách kết nối tới dịch vụ, thường rõ địa IP kết nối qua cổng cụ thể Trên Internet, dịch vụ có sẵn cổng tương ứng danh sách dịch cụ cổng tương ứng:  Echo :  daytime : 13  qotd : 17 (Quote of the Day)  ftp : 21  telnet : 23  smtp : 25 (Simple Mail Transfer, meaning e-mail)  time : 37  nameserver : 42  nicname : 43 (Who Is)  gopher : 70  finger : 79  www : 80 Khi máy chủ chấp nhận kết nối từ bên ngồi qua cổng tường lửa khơng chặn cổng đó, bạn kết nối cổng từ nơi Internet sử dụng dịch vụ tương ứng Tuy nhiên, khơng bắt buộc phải đặt xác số cổng với dịch vụ tương ứng, ví dụ với dịch vụ web thường cổng 80 Nhưng bạn cài đặt máy chủ phần mềm Web server máy chủ đó, bạn đặt dịch vụ web cổng khơng sử dụng, ví dụ cổng 918 Sau đó, máy chủ bạn đặt tên xxx.yyy.com, người duyệt web Internet kết nối tới máy chủ bạn với địa http://xxx.yyy.com:918 “:918” thể số cổng, kèm với địa kết 10 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Phase Response Header: thời điểm sau phần response header gửi trả cho client Bạn đặt rule muốn giám sát trình sau phần response gửi Phase Response Body: thời điểm bạn muốn kiểm tra liệu HTML gửi trả Phase logging: thời điểm hoạt động log thực hiện, rules đặt định rõ việc log nào, kiểm tra error message log Apache Đây cung thời điểm cuối để bạn chặn connection không mong muốn, kiểm tra response header mà bạn kiểm tra phase phase II Cài đặt Download mod_security: #wget http://www.modsecurity.org/download/modsecurity-apache_2.5.13.tar.gz Trước cài đặt Cần thư viện apxs, libxml2 cần file mod_unique_id.so Cài đặt thư viện #yum install httpd-devel (cài apxs) #yum install libxml2 Thêm dòng sau vào file http.conf (file nằm /etc/httpd/conf) dòng sau LoadModule unique_id_module modules/mod_unique_id.so (Chú ý: thêm vào đoạn có nhiều LoadModule đầu dòng) Giải nén #tar xzvf modsecurity-apache_2.5.13.tar.gz Biên dịch Tại thư mục apache2 gõ lệnh sau 24 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity #./configure #make Tích hợp modsecurity vào apache Thêm dòng sau vào file httpd.conf LoadModule security2_module modules/mod_security2.so Khởi động lại apache #service httpd restart III Cấu hình File cấu hình Modsecurity application firewall thuộc loại rules-based, nghĩa cần thiết lập luật (rules) để mod_security hoạt động Các rules thể dạng thị (directives) đặt trực tiếp file cấu hình Apache (thơng thường httpd.conf) Ngồi đặt cấu hình vào file riêng, chẳng hạn modsecurity.conf thư mục conf.d sau cần thêm vào httpd.conf Include conf.d/modsecurity.conf (mặc định httpd.conf có dịng include conf.d/*.conf với dịng thực tất file có phần mở rộng conf) Turning Rule on and of Theo mặc định rule engine bị disable Để kích hoạt modsecurity ta cần thêm thị sau vào file cấu hình SecRuleEngine On Directive dùng để điều khiển rule engine, sử dụng tuỳ chọn On, Off DynamicOnly Off : Vơ hiệu hố modsecurity 25 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity DetectionOnly : Khi phù hợp luật khơng thực action (nó có ích trường hợp muốn test luật mà khơng muốn block request có vấn đề với luật) On : Các rules modsecurity áp dụng cho tất nội dung SecDefaultAction Dùng để tạo action mặc định Khi tạo luật mà không rõ hành động cho luật thực hành động mặc định Ví dụ: SecDefaultAction "phase:2,deny,log,status:403" IV Rules Xây dựng rules nào? HTTP request GET /documentation/index.html HTTP/1.1 Host: www.modsecurity.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.1) ecko/20060124 Firefox/1.5.0.1 Accept: text/xml,application/xml,application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.modsecurity.org/index.php 26 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Cookie: utmz=129890064.1139909500.1.1.utmccn=(direct)| utmcsr=(direct)|utmcmd=(none); utma=129890064.347942152.1139909500 1140275483.1140425527.13; utmb=129890064; utmc=129890064 Xem xét request thấy HTTP Header sau : GET – Đây request method Host User-Agent Accept Accept-Language Accept-Encoding Accept-Encoding Keep-Alive Connection Referer Modsecurity sử dụng thông tin rules để cản lọc requests Và khơng header, modsecurity xem xét POST payload nhắc tới trên, Chẳng hạn ta có cấm request có Referer www.abc.com ta có rule sau: SecRule HTTP_Referer “www\.abc\.com” Khơng cho phép User-Agent có từ HotBar: SecRule HTTP_User-Agent “HotBar” Cấu trúc rules SecRule VARIABLES OPERATOR [ACTIONS] 2.1 Variables SecRule ARGS dirty Có thể dùng hay nhiều variables SecRule ARGS|REQUEST_HEADERS:User-Agent dirty 27 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity REMOTE_ADDR : Địa IP client REMOTE_HOST : hostname client (nếu tồn tại) REMOTE_USER : Authenticated username (nếu tồn tại) REMOTE_IDENT : Remote Username (lấy từ inetd, dùng) REQUEST_METHOD : Request Method (GET, HEAD, POST ) SCRIPT_FILENAME : Đường dẫn đầy đủ script thực thi PATH_INFO : Phần mở rộng URI phía sau tên script, ví dụ: /archive.php/5 PATH_INFO /5 QUERY_STRING : URI phía sau dấu ? Ví dụ /index.php?i=1 QUERY_STRING i=1 AUTH_TYPE : Basic Digest Authentication DOCUMENT_ROOT : đường dẫn đến documentroot SERVER_ADMIN : email Server Administrator SERVER_NAME : hostname Server SERVER_ADDR : Địa IP Server SERVER_PORT : Server port SERVER_PROTOCOL : protocol, (ví dụ HTTP/1.1) SERVER_SOFTWARE : Apache version TIME_YEAR : Năm (2006) TIME_MON : Tháng (2) TIME_DAY : Ngày TIME_HOUR : Giờ TIME_MIN : Phút TIME_SEC : Giây TIME_WDAY : Thứ tự ngày tuần (ví dụ - Thursday) TIME : Thời điểm viết theo cấu trúc : YmdHMS ví dụ: 20060220144530 : 20/02/2006 14h 45' 30'' 28 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity API_VERSION THE_REQUEST : dòng request vd: GET / HTTP/1.1 REQUEST_URI : Request URI REQUEST_FILENAME : Tên file yêu cầu đến IS_SUBREQ Một vài variables đặc biệt : POST_PAYLOAD – POST payload (nội dung POST hay POST body) ARGS - filter arguments,giống QUERY_STRING|POST_PAYLOAD ARGS_NAMES – variable/parameter names only ARGS_VALUES – variable/parameter values only COOKIES_NAMES - cookie names only COOKIES_VALUES - cookie values only SCRIPT_UID SCRIPT_GID SCRIPT_USERNAME SCRIPT_GROUPNAME SCRIPT_MODE ARGS_COUNT COOKIES_COUNT HEADERS HEADERS_COUNT HEADERS_NAMES HEADERS_VALUES FILES_COUNTHTTP_header – search request header "header" ENV_variable – search environment variable variable ARG_variable – search request variable/parameter variable COOKIE_name - search cookie with name name 29 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity FILE_NAME_variable - search the filename of the file uploaded under the name variable FILE_SIZE_variable - search the size of the file uploaded under the name variable FILES_NAMES FILES_SIZES Thậm chí cịn có vài Variables đặc biệt : HTTP_header – search request header "header" ENV_variable – search environment variable variable ARG_variable – search request variable/parameter variable COOKIE_name - search cookie with name name FILE_NAME_variable - search the filename of the file uploaded under the name variable FILE_SIZE_variable - search the size of the file uploaded under the name variable 2.2 2.3 Collections Một variables bao gồm hay nhiều phần liệu Khi variable có nhiều giá trị ta gọi collection Ví dụ: với variable ARGS ta có thơng số p, q SecRule ARGS:p dirty SecRule ARGS:q dirty Operators Sử dụng @ để operation SecRule ARGS "@rx dirty" Sử dụng !@ để operation negation SecRule &ARGS "!@rx ^0$" Ở đề cập đến operation rx (regular expression) RX quy định thể [Jj]oy : thể chuỗi có chứa Joy joy [0-9] : số từ tới [a-zA-Z] : chữ từ a đến z chũ thường lẫn in hoa ^ : bắt đầu chuỗi 30 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity $ : kết thúc chuỗi ^abc$ : chuỗi bao gồm từ abc :mọi kĩ tự p.t : ví dụ pat,pet, pzt… 2.4 Actions Khi request vi phạm rule mod_security thực thi hành động (action) Khi action khơng rõ rule rule sử dụng default action Có loại actions : Primary Actions Primary actions định cho phép request tiếp tục hay không Mỗi rule có primary action Có primary actions : deny : Request bị ngắt, mod_security trả HTTP status code 500 status code bạn thiết lập thị status: pass : Cho phép request tiếp tục xử lý rules Allow: Cho phép truy cập bỏ qua phases khác (trừ phases logging) Nếu muốn cho qua phase cần rõ allow:phase Khi kiểm tra luật phases sau Chỉ cho phép truy cập tới request phases: allow:request, cho qua phase 1,2 kiểm tra phase trở redirect : Redirect request đến url Secondary Actions Secondary actions bổ sung cho Primary actions, rule có nhiều Secondary actions status : n Request vi phạm rule mod_security trả HTTP status code n thay status code 500 mặc định exec : thực thi lệnh request vi phạm log : ghi log request vi phạm rule 31 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity nolog : không ghi log pause : n mod_security đợi thời gian n ms trả kết Flow Actions chain: kết nối hay nhiều rules lại với skipnext:n mod_security bỏ qua n rules theo sau Default Action Khi rule khơng rõ action rule dùng default action thiết lập SecDefaultAction Ví dụ : SecDefaultAction "phase:2,deny,log,status:403" V Logging Debug Log Sử dụng SecDebugLog directive lựa chọn file để ghi lại thông tin debug SecDebugLog logs/modsec-debug.log Bạn thay đổi mức độ chi tiết thông tin log thông qua directive : SecDebugLogLevel Giá trị log thay đổi từ 0-9 : - no logging - errors (intercepted requests) only - warnings - notices - details of how transactions are handled - as above, but including information about each piece of information handled - log everything, including very detailed debugging information Audit logging Apache log thơng tin khơng cho phép lần ngược bước kẻ công Mod_security hỗ trợ audit loging 32 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity với đầy đủ thơng tin từ lần ngược lại q trình kẻ cơng, chỉnh sửa rules cho hợp lý tránh bị “false positive” Có directives: SecAuditEngine On : bật audit log lên SecAuditLog logs/audit.log : file lưu trữ log Ngồi cịn có SecAuditLog2 logs/audit2.log :chỉ file lưu trữ log phụ Đây ví dụ audit log : ==378bfd37============================== Request: conmaz.com 203.160.1.170 - - [20/Feb/2006:02:21:52 0600] "GET /favicon.ico HTTP/1.1" 403 285 "-" "-" - "-" -GET /favicon.ico HTTP/1.1 Cookie: rocker=r0xker Host: conmaz.com Connection: Keep-Alive mod_security-message: Access denied with code 403 Pattern match "^$" at HEADER("User-Agent") mod_security-action: 403 HTTP/1.1 403 Forbidden Content-Length: 285 Keep-Alive: timeout=5, max=29 Connection: Keep-Alive Content-Type: text/html; charset=iso-8859-1 378bfd37— Tuỳ biến thông tin log SecAuditEngine chấp nhận giá trị sau : On – log tất requests Off – không log 33 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity RelevantOnly – log sinh lọc rules Ngồi mod_security cịn hỗ trợ log dựa vào status code , ví dụ bạn cần log lại requests gây lỗi 5xx : SecAuditLogRelevantStatus ^5 VI Xây dựng sách Modsecurity chống l ại s ố cơng SQL Injection Các từ khóa thường sử dụng công SQL Injection regular expressions tương ứng UNION SELECT union\s+select UNION ALL SELECT union\s+all\s+select INTO OUTFILE into\s+outfile DROP TABLE drop\s+table ALTER TABLE alter\s+table LOAD_FILE load_file SELECT * select\s+* \s : định nghĩa PCRE regular expression cho phép phát khoảng trắng mã thay (%20) Để chống lại công SQL Injection, ta dựa vào đặc điểm từ đưa rule sau: SecRule ARGS "union\s+select" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "union\s+all\s+select" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "into\s+outfile" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "drop\s+table" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "alter\s+table" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "load_file" "t:lowercase,deny,msg:'SQL Injection'" SecRule ARGS "select\s+*" "t:lowercase,deny,msg:'SQL Injection'" XSS Attack SecRule ARGS "alert\s+*\(" "t:lowercase,deny,msg:'XSS'" SecRule ARGS "&\{.+\}" "t:lowercase,deny,msg:'XSS'" SecRule ARGS "" "t:lowercase,deny,msg:'XSS'" 34 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity SecRule ARGS "javascript:" "t:lowercase,deny,msg:'XSS'" SecRule ARGS "vbscript:" "t:lowercase,deny,msg:'XSS'" Website defacement SecRule REMOTE_ADDR ".*" "phase:4,deny,chain,t:md5,t:hexEncode, exec:/usr/bin/emailadmin.sh" SecRule RESPONSE_BODY "!@contains %{MATCHED_VAR}" Brute force attacks # # Block further login attempts after failed attempts # # Initalize IP collection with user's IP address SecAction "initcol:ip=%{REMOTE_ADDR},pass,nolog" # Detect failed login attempts SecRule RESPONSE_BODY "Username does not exist" "phase:4,pass,setvar:ip.failed_logins=+1,expirevar:ip.failed_logins=60" # Block subsequent login attempts SecRule IP:FAILED_LOGINS "@gt 3" deny # # Throttle login attempts after failed attempts # SecAction "initcol:ip=%{REMOTE_ADDR},pass,nolog" SecRule RESPONSE_BODY "Username does not exist" phase:4,pass,setvar:ip.failed_logins=+1,expirevar:ip.failed_logins=10" SecRule IP:FAILED_LOGINS "@gt 3" "phase:4,allow,pause:3000" Directory indexing # # Prevent directory listings from accidentally being returned # SecRule REQUEST_URI "/$" "phase:4,deny,chain,log,msg:'Directory index returned'" SecRule RESPONSE_BODY "Index of /" Detecting the real IP address of an attacker SecRule ARGS "/etc/passwd" "pass,redirect:/log_ip.php" Một số công khác 35 Khoa ATTT – Học viện KT Mật Mã Tìm hiểu Modsecurity Xflash ddos SecRule REQUEST_HEADERS_NAMES "x-flash-version" deny Command Excution and file disclosure SecRule ARGS_VALUES "^(uname|id|ls|cat|rm|kill|mail)" SecRule ARGS “(/home|/var|/boot|/etc|/bin|/usr|/tmp)” HTML Tags SecRule ARGS "

Ngày đăng: 22/07/2022, 16:44

Từ khóa liên quan

Mục lục

  • 1. HTTP là gì ?

  • 2. Web Server

  • Các tiến trình cơ bản

  • Internet

  • Máy chủ và máy khách

  • Địa chỉ IP (IPaddress)

  • Các máy chủ tên miền (Name servers)

  • Cổng (Ports)

  • Giaothức (Protocols)

  • II. Các phương pháp tấn công webiste.

    • 1. Tấn công từ chối dịch vụ

    • 2. Tấn công Phishing:

    • 3. Tấn công CROSS-SITE SCRIPTING

    • 4. Tấn công SQL-injection

    • 5. Tấn công Session Hijacking

    • 6. Tấn công Social Engineering

    • 7. Tấn công dựa trên các lỗ hổng của website.

    • Chương 2: Modsecurity

      • I. Các khả năng của mod_security 

      • II. Cài đặt

        • 1. Download mod_security:

        • 2. Trước khi cài đặt

        • 3. Giải nén

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan