Modsecurity là một open soure, web application firewall, được Ivan Ristic phát triển dành cho Apache web sever. Nó được xem là một bộ máy phát hiện và phòng chống xâm nhập dành cho các ứng dụng web (Web application firewall). Hoạt động như module của web server apache, hoặc có thể đứng độc lập một mình như là một Reverxe proxy để bảo vệ nhiều loại Webserver như là IIS, Tomcat, Apache.
Hình 2.1. Mô hình tổng quan ModSecurity
Hiện nay với 70% các cuộc tấn công là nhằm vào web application khiến cho việc bảo vệ chúng trở thành một vấn đề cần phải quan tâm hàng đầu. Webapplication firewall được triển khai để thiết lập một lớp bảo vệ bên ngoài và tăng thêm tính năng bảo mật, chống lại hàng loạt các cuộc tấn công đã biết và chưa biết trước khi chúng tác động vào ứng dụng web. Một số kiểu tấn công phổ biến như là FingerPrinting , XSS, SQL Injiection , XXs Session hacking, Denial of sevices , …
Dựa trên hình 2.1 có thể dễ dàng nhận thấy ModSecurity là một tường lửa mức ứng dụng. Đứng trước Webserver và có khả năng xử lý traffic trước khi đưa vào Webserver. Mọi yêu cầu gửi đến Webserver từ phía client sẻ được gửi qua modsecurity.
Modsecurity có thể:
- Theo dõi HTTP traffic để phát hiện những dấu hiệu bất thường.
- Lọc các dữ liệu ra vào webserver.
- Ghi lại các tương tác giữa client và webserver.
- And more ....
Modsecurity hoạt động dựa trên các rules. Modsecurity có hoạt động hiệu quả hay không phụ thuộc rất lớn vào khả năng thiết lập rule của người quản trị.
Có khả năng phân tích tỷ mỉ và log toàn bộ các hoạt động của giao thức http như Request, response .
Có khả năng theo dõi lưu lượng gói tin http ( HTTP trafic ) theo thời gian thực để sớm phát hiện các cuộc tấn công tương tự như hệ thống web intrustion detection .
Chủ động theo dõi những request để phát hiện những điểm không bình thường, các gói tin này sẽ bị loại bỏ.
Sử dụng Modsecurity dưới hai hình thức Open source hoặc thương mại với nhiều hỗ trợ nhà cung cấp.
Modsecurity được biết là có thể hoạt động tốt trên hàng loạt các hệ điều hành như : Linux, Windows, Solaris, FreeBSD, Open BSD , Net BSD , AIX, Mac OSX, và HP-UX.
HTTP, HTTPS Traffic Input |
Reject |
Hình 1.2. Kiểm soát HTTP Traffic
Các máy chủ chạy ứng dụng web thường được cấu hình rất tốt để ghi lại log cùa luồng dữ liệu, nó rất hữu dụng cho việc phân tích. Nhưng trong đó phần lớn không log lại được những yêu cầu chính. Những kẻ khai thác biết được điều này và đó là lý do tại sao hiện nay hầu hết các cuộc tấn công được thực hiện thông qua POST request, làm cho hệ thống của web server bị biến đổi và không có khả năng chống lại các tấn công này. Modsecurity sẽ ghi log lại đầy đủ giao dịch, luồng dữ liệu HTTP nếu có thể, cho phép hoàn thành các yêu cầu và trả lời được ghi lại. Khả năng ghi log của nó cũng cho phép đưa ra các quyết định tốt để biết chính xác điều gì xảy ra và vào lúc nào đối với máy chủ web server, chắc chắn chỉ dữ liệu liên quan được ghi lại. Như một vài yêu cầu và trả lời có thể chứa đựng những dữ liệu nhạy cảm và có liên quan đến các cuộc tấn công.
· Lọc ( filter ) các Request : tất cả các request gửi đến web sever đều được phân tích và cận lọc trước khi chúng được đưa đến các Modules khác để xử lý.
· Kỹ thuật Anti- evasion: paths và parameters được chuẩn hóa trước khi phân tích để chống evasion techniques . Kỹ thuật này sẽ được trình bày ở phần sau.
· Understandig of the HTTP protocol : Modsecurity là web application firewall nên nó có khả năng hiểu được HTTP Protocol. Modsecurity có khả năng cản lọc dựa trên các thông tin ở HTTP header hay có thể xem xét đến từng Paramters hay cookies của các requests …
· Phân tích POST playload: Ngoài việc cản lọc dựa trên HTTP header, modsecurity có thể dựa trên nội dung (payload) của POST request.
· Auditlogging: Mọi request đều có thể được ghi lại ( Bao gồm cả POST ) để chúng ta có thể xem xét sau nếu cần.
· Lọc luồng dữ liệu HTTPS : Modsecurity có thể phân tích HTTPS.
Lọc nội dung gói tin đã được nén : Modsecurity sẽ phân tích sau khi đã giải nén các request data.
Bên cạnh việc cung cấp khả năng ghi log, modsecurity còn có khả năng giám sát luồng dữ liệu HTTP theo thời gian thực để phát hiện tấn công, Trong trường hợp đó hệ thống chạy Modsecurity được xem như một công cụ phát hiện xâm nhập web, cho phép phản ứng lại các sự kiện đáng ngờ đang diễn ra trên hệ thống web.
Modsecurity cũng có thể đưa ra hành động ngay lập tức để ngăn chặn lại các cuộc tấn công vào các ứng dụng web. Có 03 phương pháp thường được sử dụng :
- Các điểm bất lợi của mô hình security NSM ( Nagative security model ). Giám sát những yêu cầu không bình thường, những hành vi khác thường và những tấn công phổ biến vào ứng dụng web. Nó lưu giữ các điểm bất thường này trong mỗi yêu cầu ,địa chỉ IP, các phiên ứng dụng và các tài khoản người dùng. Các yêu cầu có điểm bất thường cao sẽ được ghi log lại hoặc bị loại bỏ hoàn toàn.
- Các điểm tích cực của mô hình Security PSM (Positive Security Model) khi các điểm tích cực của mô hình securiry được triển khai, chỉ những yêu cầu nào được biết là có giá trị được chấp nhận và tất cả các thứ khác sẽ bị loại bỏ. Cách tiếp cận theo phương pháp này làm việc tốt nhất với các ứng dụng được sử dụng nhiều như hiếm khi được cập nhật
- Biết điểm yếu và giảm rủi ro (Known weaknesses and vulnerabilities) ngôn ngữ Ruler của modsecurity là một dụng cụ lý tưởng để sửa chữa ( chắp vá ). Việc sửa chữa chắp vá các điểm yếu bên ngoài làm giảm bớt các nguy cơ bị tấn công. Thời gian cần thiết để sửa chữa chắp vá các lỗ hổng của các ứng dụng thường phải mất nhiều tuần. Với Modscurity , ứng dụng có thể được sửa chữa chắp vá( patched ) từ bên ngoài mà không cần chạm vào các ứng dụng mã nguồn ( và thậm chí không có bất cứ một truy cập nào tới nó ), làm cho hệ thống của bạn an toàn cho đến khi lỗi của ứng dụng được sửa chữa.
Tính linh hoạt của Ruler engine được đặt phần nhân của Modsecurity . Ngôn ngữ lập trình dùng triển khai Ruler modsecurity, ngôn ngữ này thiết kế sao cho Modsecurity có thể làm việc với các luồng dữ liệu giao dịch HTTP, ngôn ngữ dùng thiết kế ruler modsecurity rất dễ cho việc sử dụng.
Modsecurity là một firewall ứng dụng web, điều này có nghĩa rằng nó có thể được triển khai như một phần cơ sở hạ tầng của máy chủ ứng dụng wed,cơ sở hạ tầng có máy chủ ứng dụng web như là apaches ,IIS. Xây dựng hệ thống Web server với modsecurity này nhiều lợi ích :
- Không làm thay đổi mạng đã có sẳn. Nó chỉ mất vài phút để thêm modsecurity vào web server đã có sẵn (Tức đã tồn tại) trong hệ thống mạng. Triển khai miễn phí và chỉ thêm các tính năng mà người dùng cần.
- Không có điểm nào bất hợp lý. Không giống như việc triển khai mạng cơ bản, có nhiều yêu cầu cần thiết sao cho phù hợp . Phát triển mẫu nhúng chỉ là một can thiệp khá nhỏ
- Không có vấn đề gì với nội dung đã được mã hóa hoặc đã được nén. Nhiều hệ thống IDS gặp nhiều khó khăn trong việc phân tích luồng dữ liệu truy cập sử dụng SSL. Nó không có vấn đề gì đối với Modsecurity bởi vì nó được định vị để làm việc khi luồng dữ liệu đã được giải mã và giải nén.
Modsecurity làm việc tốt khi nó được triển khai như một phần của máy chủ Apaches – based reverseproxy, và nhiều khách hàng đã chọn lựa nó để triển khai cho web server. Trong kịch bản này Modsecurity có thể bảo vệ cho rất nhiều web server.
Modsecurity hoạt động như một cỗ máy IDPS (Intrustion detection and Prevention system). Quá trình phát hiện xâm nhập nó là tiến trình Modsecurity giám sát luồng dữ liệu HTTP, HTTTPS đi tới ( Request ) hoặc đi ra ( Reponse ) khỏi Web Server và phân tích chúng để có thể tìm ra các dấu hiệu của sự việc bất thường, đó là những vi phạm hay những đe dọa sắp xảy ra vi phạm tới chính sách an ninh của web server , chính sách truy cập , hay hoạt động trái chính sách chuẩn. Những sự việc bất thường đó do nhiều nguyên nhân, kẻ tấn công đạt được sự truy cập trái phép vào hệ thống thông qua internet như qua lỗi SQL injection , và những người dùng hợp pháp lạm dụng quyền hay cố gắng thêm vào các quyền mà họ không được phép.
Modsecurity hoạt động phát hiện các tấn công dựa vào hai phương pháp :
- Dựa vào các mẫu
- Dựa vào các dấu hiệu bất thường
Một trong những phương pháp phát hiện các cuộc tấn công đó là dựa vào mẫu (Pattern) các dấu hiệu ( Signature ) trong request gửi tới Web server . Các dấu hiệu (Siganature) , mẫu ( Pattern ) nguy hiểm của các kiểu tấn công được cấu hình trong các ruler. Luồng dữ liệu HTTP khi qua kiểm tra nếu chứa các dấu hiệu, mẫu nguy hiểm này sẽ bị cấm . Các hành động kèm theo như ghi lại nhật ký, ghi rõ request này thuộc vào loại tấn công nào.
Các mẫu này cụ thể là các ký tự trong các gói tin request hoặc Response , các ký tự như trong requeat URI, host, user – agent, acces – encoding, cookie.
Hầu hết các dạng tấn công đã biết đều có thể lấy các mẫu một cách rất đơn giản thông qua việc Capture. Những mẫu đặc biệt ở các kiểu tấn công này sẽ được đưa vào ruler.
Từ nội dung các thông báo lỗi từ Web Server người quản trị cũng có thể khắc phục nhanh qua sử dụng Modsecurity
Các lỗi do ứng dụng web xuất ra màn hình cũng qua sự kiểm soát của modsecurity do đó hacker rất khó có thể biết và khai thác các hệ thống này.
Với lỗi trên qua các dấu hiệu đặc thù và nguy hiểm như “ ODBC Error Code “ chúng ta có thể phục hồi tạm thời bằng ruler sau :
SecRule RESPONSE BODY “ODBC Error code”,Deny, log, status:503, phase : 4msg : Database Error Message Deteced ”
Dạng thứ hai dựa vào các dấu hiệu bất thường, ngoài các dạng tấn công được liệt kê cụ thể thì còn rất nhiều các dạng tấn công khác. Các dấu hiệu bất thường như các “bad user – agent ”
Ví dụ một “ bad ueer – agent ” gồm các dấu hiệu đặc biệt :
(.|\s|\n)?(script|about|applet|activex|chrome|object)(.|\s|\n)?>.*<(.|\s|\n)?(script|about|applet|activex|chrome|object)
2.2.1. Modsecurity core ruler
2.2.1.1. Tổng quan về Core ruler
Modsecurity là một firewall ứng dụng web do vậy bản thân nó mặc định cũng không có khả năng phòng chống các tấn công nếu không có các rule đã được cấu hình cẩn thận. Để tận dụng triệt để những tính năng của mod security đã cho ra một tập luật khá chặt chẽ và đầy đủ, miễn phí đối với phiên bản “mềm “. Khác với các hệ thống dò tìm và phát hiện xâm nhập khác, chỉ dựa trên những dấu hiệu, đặc điểm cụ thể từ những tổn thất đã có từ trước, các core rule này cung cấp sự bảo vệ chung nhất từ những tồn tại chưa được biết tới thường thấy ở các ứng dụng web. Breach security khuyến cáo, với những core rule đã được xây dựng sẵn này chỉ sử dụng như một bản hướng dẫn để triển khai cho một hệ thống sử dụng Modsecurity. Core rule mới nhất có thể được tìm thấy tại www.modsecurity.org/projects/rules
2.2.1.2. Nội dung Core rule
Để cung cấp sự bảo vệ ứng dụng web một cách bao quát, Core rule bao gồm những nội dung sau :
- Bảo vệ luồng dữ liệu HTTP- Phát hiện các hành vi vi phạm của các giao thức HTTP và chính sách sử dụng được định nghĩa.
- Phòng chống các tấn công phổ biến vào Web server – phát hiện các tấn công vào các ứng dụng bảo mật cho web sever.
- Tự động phát hiện, phát hiện Bots, các cỗ máy dò tìm, máy quét và các mã độc hại.
- Phòng chống trojan – phát hiện truy cập của Trojan horses.
- Các lỗi ấn, các thông báo từ web Server.
2.2.1.3. Cấu trúc của Core rule
Cấu hình rule modsecurity bao gồm các thông tin khác nhau , các yêu cầu thiết đặt khác nhau về nội dung
- Cấu trúc bao gồm chỉ thị, các biến, các hàm chuyểnđổi, các signature và các action tương ứng cho phép, không cho phép, ghi log.
- Yêu cầu về logic là phát hiện các cuộc tấn công.
- Thiết đặt chính sách đưa ra hành động xử lý nếu phát hiện ra tấn công
- Thông tin về các cuộc tấn công
Cho phép xử lý tách riêng thành các thành phần khác nhau, cơ bản core ruler là dựa trên các mẫu đã được xây dựng sẳn và cũng có thể tự xây dựng thêm các core rule.
» Tin mới nhất:
» Các tin khác: