Thứ Sáu, 10 tháng 1, 2014

Tìm hiểu về Mod Security [Phần 1]

Yeah chính thức thi xong. Rảnh rỗi tập trung nghiên cứu mod security. Dự định viết một loạt bài về em này, vừa viết vừa học :)

1. Mở đầu
Ngày nay ứng dụng web ngày càng phổ biến, vấn đề bảo mật ứng dụng web cũng nhận được sự quan tâm đặc biệt do nhận thấy được sự nguy hiểm nằm tại các lỗ hổng bảo mật của các phần mềm web server hoặc các modules phụ trợ, điều này có thể dẫn đến việc một web server bị thỏa hiệp (compromise), thất thoát dữ liệu hoặc là downtime. Hậu quả sẽ rất nặng nề nếu ta không có những biện pháp hợp lý để bảo vệ ứng dụng web của mình, và ModSecurity là một trong những công cụ giúp ta làm điều này.

2. ModSecurity là gì ?
ModSecurity là một web application firewall (WAF). 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 lệnh nó định nghĩa. Nó còn có nhiều tính năng vượt trội khác như là 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ỗi khi bạn đã quen với cú pháp của ModSecurity, bạn 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.

Bạn 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.

3. Tại sao tôi cần dùng ModSecurity ?
Hình dung rằng bạn đang quản trị một web server, server của bạn chạy phà phà không gặp phải bất kì sự cố lớn nào. Một ngày đẹp trời, nó đột nhiên dở chứng - web server port bị đóng và bạn thậm chí không thể đăng nhập được vào server thông qua SSH.

Điều bạn không biết đó là có một 0-day exploit của PHP, xuất phát từ việc web site của bạn có nhiều dynamic content được viết bằng PHP. Hacker có thể lợi dụng exploit này để thực thi shellcode trên server của bạn (thêm vào một user mới và cho phép anh này login vào trong server của bạn thông qua SSH). Một khi đã đi vào bên trong hacker có thể tiến hành leo thang đặc quyền để chiếm lấy quyền root. Một khi đã có quyền root thì "sân khấu" sẽ là của anh ta, muốn làm gì thì làm.

Điều khó khăn trong việc bảo vệ server đó là những exploits mới hầu như ngày nào cũng xuất hiện và bạn sẽ gặp khó khăn trong việc cập nhật và sẽ có những khoảng thời gian server của bạn năm trong tình trạng báo động.

ModSecurity cho phép bạn bảo vệ server của mình thông qua việc viết các luật 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 sẽ giúp bạn ngủ ngon hơn, trên tất cả, nó giải quyết các vấn đề về 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.

Thế đã, phần sau sẽ nói về cách cài đặt ModSecurity :3