1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Học phần: Kỹ thuật giấu tin Bài báo cáo: Tìm hiểu ModSecurity

14 22 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 890,31 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ModSecurity Nhóm12 (2) docx HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN Học phần Kỹ thuật giấu tin Bài báo cáo Tìm hiểu ModSecurity Giảng viên Đỗ Xuân Chợ Sinh viên thực hiện Nhóm 12 Dương Văn Chung B18DCAT029 Nguyễn Bá Dương B18DCAT044 Nguyễn Văn Trung B18DCAT253 Hà Nội 2022 I ModSecurity ModSecurity là một web application firewall(WAF) được Ivan Ristic phát triển dành cho Apache Web Server Giống như những firewall thông thường khác, nó lọc những lưu lượng dữ liệu vào và ra.

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

Học phần: Kỹ thuật giấu tin

Bài báo cáo: Tìm hiểu ModSecurity

Giảng viên : Đỗ Xuân Chợ

Sinh viên thực hiện: Nhóm 12

Dương Văn Chung - B18DCAT029 Nguyễn Bá Dương - B18DCAT044 Nguyễn Văn Trung - B18DCAT253

Hà Nội-2022

Trang 2

I ModSecurity

ModSecurity là một web application firewall(WAF) được Ivan Ristic phát triển dành cho Apache Web Server Giống như những firewall thông thường khác, nó lọc những lưu lượng

dữ liệu vào và ra để có thể quyết định chặn lại những lưu lượng mà nó nghi ngờ là độc hại dựa theo tập rules nó định nghĩa Nó còn có nhiều tính năng vượt trội khác như : HTTP transaction logging và content injection…

Các rules được tạo và chỉnh sửa sử dụng một định dạng văn bản đơn giản, nó làm cho việc viết rules trở nên đơn giản hơn Một khi đã quen với cú pháp của ModSecurity, chúng ta có thể nhanh chóng viết được những rules để block một exploit mới hoặc ngăn chặn một lỗ hổng

Có thể hình dung ModSecurity như là một trạm trung gian giữa HTTP request và httpd(dịch

vụ web server) Khi phát hiện ra một cuộc tấn công, những chi tiết về vụ tấn công sẽ được lưu vào log file hoặc một email có thể được gửi tới người quản trị viên để báo hiệu có một cuộc tấn công xảy ra trên hệ thống

ModSecurity cho phép bạn bảo vệ server của mình thông qua việc viết các rules nhằm bao phủ một dải các viễn cảnh tấn công có thể Do đó, ModSecurity là một lớp bổ sung có thể giúp bạn bảo vệ theo một cách không cần bản vá

ModSecurity giải quyết các vấn đề tầm nhìn : nó giúp bạn nhìn thấy lưu lượng web của mình

Đó là chìa khóa trong security : mỗi khi bạn có thế nhìn thấy HTTP traffic, bạn có thể phân tích nó trong thời gian thực, record nó khi cần thiết và phàn ứng lại với các sự kiện Điểm nổi bật ở đây là bạn có thể làm tất cả mà không tác động gì tới các ứng dụng web Thậm chí tốt hơn, nó còn có thể áp dụng với bất kì ứng dụng nào, ngay cả khi bạn không thể truy được vào source code

1) Khả năng của modsecurity

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

Trang 3

Mod Security đứng trước Web Server, làm nhiệm vụ như một firewall để kiểm soát truy cập vào ra Web Server Các thông tin đi từ bên ngoài vào và bên trong ra sẽ được kiểm soát chặt chẽ để tránh những thông tin có thể gây hại cho Web Server hay là việc rò rỉ các thông tin đặc biệt từ Web Server đến Client

Mod Security có thể thực hiện các chức năng cụ thể sau:

- Request filtering : tất cả các request gửi đến web server đều được phân tích và càn lọc (filter) trước khi chúng được đưa đến các modules khác để xử lý

- Anti-evasion techniques : paths và parameters được chuẩn hóa trước khi phân tích để chống evasion techniques

- Understanding 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 parameters hay cookies của các requests…

- POST payload analysis : 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

- Audit logging : mọi request đều có thể được ghi lại (bao gồm cả POST) để người quản trị có thể theo dõi nếu cần

- HTTPS filtering : ModSecurity có thể phân tích HTTPS

- Compressed content filtering : ModSecurity sẽ phân tích sau khi đã giải nén các

request data

Giám sát theo thời gian thực và phát hiện tấn công

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

Phòng chống tấn công và vá lỗi

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

Trang 4

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 (lọc)

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

Phát triển các mẫu nhú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

2) Hoạt động của modsecurity

Trang 5

Trong ModSecurity, mỗi phiên phân tích sẽ được thực hiện lần lượt qua 5 bước (phase), tại mỗi bước ModSecurity sẽ thực thi các rule tương ứng nhằm phát hiện và phòng chống các khai thác

Hình 1.2 - Quá trình xử lý các request của Apache và mod security

ModSecurity cho phép bạn đặt rule tại một trong năm thời điểm trong chu kỳ xử lý của Apache như sau :

- Phase Request Header : rule được đặt tại đây sẽ được thực hiện ngay sau khi Apache đọc request header, lúc này phần request body vẫn chưa được đọc Đây là bước đầu tiên trong quá trình thực hiện phân tích gói tin Mục đích của bước này nhằm cho phép người viết rule tương tác với các request trước khi thực hiện các yêu cầu trong phần HTTP body Phần này khá quan trọng để phân tích các khai thác dựa vào HTTP method cũng như dựa vào URL như SQL Injection, Reflect XSS, Local file include …

- Phase Request Body : đây là thời điểm các thông tin chức năng chung đưa vào được phân tích và xem xét, các rule mang tính application-oriented thường được đặt ở đây Bước này là quá trình kiểm tra chính trong quá trình client gởi request đến server, phần này sẽ có hiệu quả khi người dùng cố sử dụng phương thức POST hoặc PUT để upload tập tin lên phía server Việc kiểm tra này bảo đảm dữ liệu đưa lên server là an toàn, tránh tình trạng upload

mã độc hoặc các dạng tấn công như Stored XSS, Ajax Injection ModSecurity hỗ trợ ba loại

mã hóa request body :

+ Application/x-www-form-urlencoded dùng để truyền form dữ liệu

+ Multipart/form-data dùng để truyền file

+ Text/xml : dùng để phân tích dữ liệu XML

- Phase Response Header : Những request đã được xử lý tại server sẽ được trả về cho ModSecurity kiểm tra trạng thái trong phần respone header Trước khi phần respone body được đọc thì ModSecurity sẽ dựa vào tập rule để xác định có cần kiểm tra nội dung dữ liệu trong phần body hay không

Ví dụ: mã trạng thái trả về là 404 (Not found) thì lúc này sẽ không cần kiểm tra nội dung gói tin trả về

Trang 6

- Phase Response Body : Sau khi ModSecurity đã hoàn thành việc kiểm tra tại respone header thì nội dung trong phần body sẽ được kiểm tra so trùng với mẫu trong tập lệnh Việc này là khá hiệu quả để phát hiện và phòng chống xâm nhập trong trường hợp ở phase request header và phase request body không phát hiện được tấn công

Ví dụ: trong khai thác SQL injection, nếu hacker cố gắng sử dụng một số công nghệ evasion thì việc phát hiện khi request là khó khăn Khi khai thác thành công, ModSecurity sẽ phân tích kết quả trong gói tin trả về để phát hiện nếu như câu truy vấn thành công

- Phase Logging : đây là thời điểm các hoạt động log được thực hiện các rules đặt ở đây

sẽ định rõ việc log sẽ như thế nào, nó sẽ kiểm tra các error message log của Apache Đây cũng là thời điểm cuối cùng để bạn chặn các connection không mong muốn, kiểm tra các response header mà bạn không thể kiểm tra ở phase response header và phase response body

3) Rules

Toàn bộ thông tin của HTTP request thể hiện thông qua một số trường :

ModSecurity sẽ sử dụng thông tin trong các luật của nó để càn lọc các requests Và không chỉ trong header, ModSecurity cũng có thể xem xét cả POST payload như đã nhắc tới

ở trên,…

Chẳng hạn chúng ta có thể cấm request có Referer là www.abc.com bằng luật sau :

SecRule HTTP_Referer “www\.abc\.com”

Cấu trúc của Rules

SecRule VARIABLES OPERATOR [ACTIONS]

a Variables

Trang 7

b Collections

Một variables có thể bao gồm 1 hay nhiều phần dữ liệu Khi variable có nhiều hơn 1 giá trị thì ta gọi nó là collection.

Trang 8

c Operators

Sử dụng @ để chỉ ra đây là một operation

Sử dụng !@ để chỉ ra một operation negation

Toán tử @rx (regular expression) là một toán tử mặc định, được sử dụng khi không có một toán tử nào khác được chỉ định

Biểu thức Ý nghĩa phù hợp [Jj]oy Thể hiện mọi chuỗi có chứa Joy hoặc joy [0-9] Bất kỳ số nào từ 0 đến 9

[a-zA-Z] Mọi chữ từ a đên z và từ A đến Z

^ Bắt đầu một chuỗi

^Host Từ Host khi tìm thấy ở đầu 1 chuỗi

$ Kết thúc một chuỗi

^Host$ Chuỗi chỉ gồm từ Host Một từ bất kỳ

p.t Ví dụ như pot,pet,pat,…

@beginsWith Khớp các chuỗi bắt đầu với chuỗi chỉ định SecRule REQUEST_LINE

“!@beginsWith GET”

@containts Khớp các chuỗi có chứa chuỗi chỉ định tại

bất cứ vị trí nào

SecRule REQUEST_LINE

“@contains select”

@containsWord Khớp xâu chứa từ được chỉ định “Từ” ở đây

được hiểu là đoạn xâu được ngăn bởi một hoặc nhiều ký tự không phải chữ, số.

SecRule ARGS

“@containsWord from”

@endsWith Khớp xâu kết thúc bởi xâu chỉ định SecRule ARGS “@endsWith ”

@streq Khớp xâu giống hoàn toàn xâu chỉ định SecRule REMOTE_HOST

“@streq victim\.com”

@within Khá giống @contains, chỉ khác là một so

khớp xảy ra khi biến cần so xuất hiện bên trong xâu được chỉ định

SecRule REMOTE_USER

“@within cuong,nam,an”

(sẽ khớp nếu remote user là cuong, nam hoặc an)

@pm Khớp với một trong những cụm từ đi sau nó SecRule ARGS "@pm red green

blue" deny

@pmFromFile Nếu có quá nhiều chuỗi muốn đặt vào, ta có

thể liệt kê các chuỗi này vào một file và dùng @pmFromFile

SecRule ARGS “@pmFromFile /usr/log/alo.txt”

Toán tử Toán tử đại số

tương đương

Ví dụ

@eq = SecRule RESPONSE_STATUS “@eq 200”

@ge ≥ SecRule RESPONSE_STATUS “@ge 400”

@gt > SecRule RESPONSE_STATUS “@gt 399”

@le ≤ SecRule RESPONSE_STATUS “@le 199”

@lt < SecRule RESPONSE_STATUS “@lt 200”

d Action

Trang 9

Khi request vi phạm một rule nào đó thì ModSecurity sẽ thực thi một hành động (action) Khi action không được chỉ rõ trong rule thì rule đó sẽ sử dụng default action Có 3 loại actions :

- Primary Actions

Primary actions sẽ quyết định cho phép request tiếp tục hay không Mỗi rule chỉ có một primary action Có 4 primary actions :

Deny : Request sẽ bị ngắt, ModSecurity sẽ trả về HTTP status code 500 hoặc là status code của bạn thiết lập trong chỉ thị status

Pass : Cho phép request tiếp tục được xử lý ở các rules tiếp theo

Allow : Cho phép truy cập ngay lập tức và bỏ qua các phases khác (trừ phases logging) Nếu muốn chỉ cho qua phase hiện tại thì cần chỉ rõ allow:phase Khi đó sẽ vẫn được kiểm tra bởi các luật tại các phases sau Chỉ cho phép truy cập tới các request phases: allow:request,

nó sẽ cho qua phase 1,2 và vẫn kiểm tra ở phase 3 trở đi

Redirect : Redirect một request đến một url nào đó

- Secondary Actions

Secondary actions sẽ bổ sung cho Primary actions, một rule có thể có nhiều Secondary actions

Status : n : khi một Request vi phạm một rule nào đó thì ModSecurity có thể trả về các HTTP status code n thay vì status code 500 mặc định

exec : thực thi một lệnh nào đó nếu một request vi phạm

log : ghi log những request vi phạm rule

nolog : không ghi log

pause : n : ModSecurity sẽ đợi một thời gian n ms rồi mới trả về kết quả

- Flow Actions

Chain : kết nối 2 hay nhiều rules lại với nhau

Skipnext : n : ModSecurity sẽ bỏ qua n rules theo sau nó

- Default Action

Khi một rule không chỉ rõ action thì rule đó sẽ dùng default action được thiết lập trong

SecDefaultAction

Ví dụ : SecDefaultAction "phase:2,deny,log,status:403"

4) Log

a Debug log

Sử dụng SecDebugLog directive lựa chọn file để ghi lại các thông tin debug SecDebugLog logs/modsec-debug.log

Bạn có thể thay đổi mức độ chi tiết các thông tin được log thông qua directive :

SecDebugLogLevel 4

Giá trị log có thể thay đổi từ 0-9 :

0 - no logging

1 - errors (intercepted requests) only

2 - warnings

3 - notices

4 - details of how transactions are handled

Trang 10

5 - as above, but including information about each piece of information handled.

9 - log everything, including very detailed debugging information

b Audit Logging

Apache log ít thông tin vì thế nó không cho phép chúng ta có thể lần ngược các bước của kẻ tấn công ModSecurity hỗ trợ audit loging với đầy đủ thông tin và từ đó

có thể lần ngược lại quá trình của kẻ tấn công, cũng như là chỉnh sửa các rules cho hợp lý tránh bị “false positive” Có 2 directives:

SecAuditEngine On : Bật audit log lên

SecAuditLog logs/audit.log : Chỉ ra file lưu trữ log chính

Ngoài ra còn có

SecAuditLog2 logs/audit2.log : Chỉ ra file lưu trữ log phụ

Đây là một ví dụ của 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—

c Tùy biến thông tin log

SecAuditEngine chấp nhận 3 giá trị sau :

On : Log tất cả các requests

Off : Không log

RelevantOnly : Chỉ log những gì được sinh ra bởi các bộ lọc rules

Ngoài ra ModSecurity còn hỗ trợ log dựa vào status code , ví dụ bạn cần log lại những requests gây ra lỗi 5xx :

SecAuditLogRelevantStatus ^5

5) Ưu và Nhược điểm của Modsecurity

● Ưu điểm

- Rule trong Modsecurity được xậy dựng một cách logic dễ sử dụng, hỗ trợ tốt đối với web server Apache

- Nó cho ta thấy được luồng lưu lượng HTTP từ đó ghi lại khi cần thiết và có các hành động với các sự kiện, như vậy có thể bảo vệ

nó tốt hơn các ứng dụng

Ngày đăng: 25/05/2022, 00:49

HÌNH ẢNH LIÊN QUAN

- 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 - Học phần: Kỹ thuật giấu tin       Bài báo cáo: Tìm hiểu ModSecurity
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 (Trang 3)
Hình 1.2 - Quá trình xử lý các request của Apache và modsecurity - Học phần: Kỹ thuật giấu tin       Bài báo cáo: Tìm hiểu ModSecurity
Hình 1.2 Quá trình xử lý các request của Apache và modsecurity (Trang 5)
Cấu hình rules trong apache/conf/httpd.conf Viết rules - Học phần: Kỹ thuật giấu tin       Bài báo cáo: Tìm hiểu ModSecurity
u hình rules trong apache/conf/httpd.conf Viết rules (Trang 12)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w