Xây dựng mô hình Markov ẩn

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Hệ thống tường lửa thông minh cho các ứng dụng web iwaf (Trang 60)

6. Bố cục của luận văn

4.2Xây dựng mô hình Markov ẩn

4.2.1 Huấn luyện HMM

Việc huấn luyện HMM được thực hiện bởi thuật toán Baum-Welch. Tuy nhiên, thuật toán Baum-Welch cho kết quả cuối cùng chỉ đạt được tối ưu cục bộ. Do đó, hệ thống sử dụng tổ hợp HMM nhằm nâng cao hiệu quả mô hình đối với toàn bộ tập huấn luyện. Hệ thống sẽ hỗ trợ 02 phương pháp huấn luyện:

+ Phương pháp 1: Sử dụng thuật toán huấn luyện từ nhiều chuỗi quan sát bằng cách sử dụng k chuỗi quan sát tại mỗi thủ tục ước lượng lại của Baum-Welch để lập đi lập lại việc cập nhật các tham số của một HMM (chương 3, mục 3).

+ Phương pháp 2: Sử dụng thuật toán huấn luyện cho một tổ hợp các HMM Sử dụng một loạt các kỹ thuật tính trung bình đơn giản các tham số được ước lượng

độc lập để tìm ra mô hình hiệu quả (chương 3, mục 3) với trọng số Wk = 1.

Ngoài ra, hệ thống còn hỗ trợ chức năng huấn luyện nhiều HMM (phương pháp 1) hay nhiều tổ hợp HMM (phương pháp 2) từ cùng một chuỗi dữ liệu quan sát dùng để huấn luyện. Mục đích của chức năng này nhằm sử dụng các HMM hoặc tổ hợp HMM để tìm giá trị xác suất tốt nhất đối với chuỗi dữ liệu quan sát đầu vào

giống nhau (chương 3, phần 4). Để dễ hiểu và tránh nhầm lẫn khi sử dụng từ “tổ hợp HMM” chung cho 02 phương pháp trên trong chức năng này, thì mô hình tổ hợp HMM trong phương án 2 sẽ được viết tắt là HMMs. Nghĩa là chức năng này

hỗ trợ huấn luyện nhiều HMM (phương pháp 1) hay nhiều HMMs (phương pháp 2) từ cùng một chuỗi dữ liệu quan sát dùng để huấn luyện. Như vậy, từ tổ hợp có nghĩa bao gồm nhiều HMM hay HMMs.

Các tham số khởi tạo cho HMM bao gồm: số lượng các trạng thái N, xác suất khởi đầu của các trạng thái π, ma trận xác suất chuyển trạng thái A, ma trận xác suất nhả ký hiệu B.

+ Số lượng các trạng thái của các HMM hoặc HMMs bên trong tổ hợp được cấu hình giống nhau. Số lượng các trạng thái trong tổ hợp bằng giá trị trung bình chiều dài chuỗi huấn luyện. Chiều dài chuỗi huấn luyện có thể xét 02 khả năng. Một là chỉ xét các giá trị khác nhau trong chuỗi, ví dụ chuỗi {a,b,b,c,d,d} chiều dài là 4 do có 4 ký tự khác nhau là: {a,b,c,d}. Hai là xét tất cả các giá trị trong chuỗi, ví dụ chuỗi {a,b,b,c,d,d} chiều dài là 6.

+ Ma trận xác suất chuyển trạng thái A, ma trận xác suất nhả ký hiệu B được khởi tạo ngẫu nhiên.

+ Tùy theo cấu hình, số lượng các HMM, HMMs trong một tổ hợp có thể thay đổi sao cho phù hợp.

+ Với mỗi một HMM trong tổ hợp hoặc trong một HMMs sẽ sử dụng thuật toán Baum-Welch để huấn luyện, tính xác suất cho toàn bộ chuỗi dữ liệu huấn luyện đầu vào của nó.Tuy nhiên, thuật toán Baum-Welch sử dụng qua nhiều bước lặp để ước lượng và cập nhật các tham số mô hình cho đến khi hội tụ. Do đó, mô

hình bổ sung thêm 02 tham số quan trọng đó là ngưỡng hội tụ, số lần lập tối đa

(số lần tính toán lại ước lượng lại mô hình). Các thông số này được điều chỉnh đến điểm hội tụ khi đó kết quả thuật toán không còn hiệu quả, điều này phụ thuộc vào sai số đã qui định giữa các tham số (π, A, B) của HMM trước và HMM sau khi ước lượng lại tham số:

Đặt các tham số của HMM trước khi ước lượng tham số là: π, A, B Tương tự các tham số của HMM sau khi ước lượng tham số là: π’, A’, B’

Công thức: absolute(a - b) <= (atol + rtol * absolute(b))

Bảng 4.1 Các giá trị dung sai để tìm ngưỡng hội tụ

alpha_ATOL = 1e-9 beta_ATOL = 1e-8 alpha_RTOL = 1e-6 beta_RTOL = 1e-5

Kết quả của quá trình huấn luyện, hệ thống sẽ lưu lại thông tin cấu hình tổ hợp và tập các ký tự phát sinh tương ứng (có thể xem bộ lọc các ký tự). Sau đó, hệ thống sẽ sử dụng các truy vấn huấn luyện để thống kê lại thành 01 bảng ngưỡng xác suất của tất cả các ứng dụng web được huấn luyện (cách tính giá trị xác suất của một truy vấn 4.2.2 bên dưới). Bảng này sẽ được sử dụng để so sánh với xác suất của một truy vấn đến một ứng dụng, từ đó giúp xác định truy vấn có hợp lệ hay không.

Bảng 4.2 Danh sách giá trị ngưỡng của các ứng dụng

Tên ứng dụng Threshold chuỗi thuộc tính Threshold giá trị thuộc tính

wp-login.php 0.4999999993583 0.0000000034556

post.php 0.999999999223 1.0

4.2.2 Tính giá trị xác xuất của một truy vấn

Mỗi câu truy vấn đến hệ thống sẽ được tách ra thành 02 phần: chuỗi các thuộc tính và tập hợp bao gồm {thuộc tính, giá trị thuộc tính} (Module 1). Hệ thống

sẽ sử dụng các tổ hợp đã xây dựng trong quá trình huấn luyện để tính giá trị xác suất của truy vấn này.

Với mỗi tổ hợp, sử dụng bởi bộ lọc các ký tự đi kèm để kiểm tra dữ liệu đầu vào có phát sinh các ký tự không nằm trong tập huấn luyện hay không?

+ Nếu tập huấn luyện có phát sinh ký tự bất thường thì P = 0.

+ Nếu tập huấn luyện không phát sinh ký tự bất thường thì hệ thống dùng

thuật toán Viterbi để tìm ra dãy trạng thái tối ưu, sau đó tính được giá trị xác xuất P. (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ: Trong tập giá trị {login, admin4@2} đưa vào tổ hợp để tính xác xuất, hệ thống sẽ kiểm tra trong thuộc tính “login” đã được huấn luyện giá trị thuộc tính có phát sinh ký tự mới không? ở đây là ký tự mới là {4,@,2} nếu có thì sẽ gán xác

xuất là P = 0. (P thấp sẽ bị xem là bất thường).

Trong mỗi tổ hợp, thì xác xuất được chọn là xác xuất lớn nhất đại diện cho mỗi tổ hợp.

Giữa các tổ hợp trong hệ thống (Module 2) chọn giá trị xác xuất nhỏ nhất, giá trị này sẽ giá trị xác xuất đại diện cho xác suất giá trị thuộc tính một câu truy vấn hoặc lấy 02 giá trị xác suất làm đại diện được lấy từ xác xuất nhỏ nhất của các giá trị thuộc tính và xác suất chuỗi thuộc tính đầu vào.

CHƯƠNG 5: MÔ HÌNH VÀ CHỨC NĂNG CỦA IWAF

5.1 Đặc điểm của IWAF

- Sử dụng kỹ thuật nhận dạng động dạng Network-based.

- Bảo vệ ứng dụng web trước các nguy cơ khai thác lổ hỏng trong OWASP Top 10.

- WAF đáp ứng đầy đủ chức năng cơ bản và chức năng mở rộng của WAF. - Có hiệu suất cao: cache nội dung, nén dữ liệu, hỗ trợ chia tải, …

- Giao diện thân thiện và dễ sử dụng.

- Chống lại việc rò rỉ thông tin và các thông tin giả mạo. - Phân tích các phiên làm việc mã hóa.

- Hỗ trợ bảo mật các ứng dụng web của các hãng thứ ba như: Sharepoint, Zoomla, Websphere, …

Đặc điểm khác biệt so với các WAF khác:

- Kết hợp mô hình an toàn Negative và Positive, phương pháp bảo vệ dạng Rule-based và Anomaly-based.

- Sử dụng cơ chế machine learning tự động và kỹ thuật nhận dạng bất thường thông minh như mô hình Markov ẩn.

- Có khả năng phát triển thành hệ thống các IWAF trao đổi thông tin các địa chỉ, hình thức tấn công mới.

- IWAF linh hoạt và khả năng mở rộng cao như cập nhật các chính sách mới, các thuật toán nhận dạng tấn công mới.

5.2 Các chức năng chính của IWAF 5.2.1 Chức năng kiểm tra kết nối 5.2.1 Chức năng kiểm tra kết nối

Trong chức năng kiểm tra kết nối sử dụng 02 phương pháp kiểm tra là: Rule- based và Anomaly-based.

+ Phương pháp Rule-based: phân tích dữ liệu truy vấn, phân tích dữ liệu phản hồi, phân tích dữ liệu xác thực, phân tích trạng thái phiên làm việc, nhận dạng tấn công trên một số kỹ thuật tấn công mạng thông dụng, kiểm tra việc tải tập tin,

kiểm tra tỉ lệ truy cập và dòng lưu chuyển của ứng dụng. (chi tiết trong phụ lục danh sách các chức năng trong phương pháp Rule-based).

+ Phương pháp nhận dạng Anomaly-based: đây là phương pháp nhận dạng quan trọng thể hiện tính thông minh của hệ thống. Phương pháp này bao gồm các chức năng cơ bản sau:

- Sử dụng mô hình tổ hợp HMM để nhận dạng bất thường đối với các thuộc tính đầu vào.

- Tích hợp các cơ chế nhận dạng bất thường khác (tính mở rộng sau này) Cơ chế hoạt động: mỗi chức năng nhận dạng tấn công hay bất thường thay vì sẽ khóa kết nối như các WAF truyền thống, thì các kết quả đầu ra của các chức năng này là một giá trị bất thường của truy vấn Anomaly-number. Tham số này sẽ được xử lý tại “chức năng xử lý”.

5.2.2 Chức năng xử lý

Nhận thông tin tham số Anomaly-number để quyết định cơ chế passing, blocking, rewriting theo cấu hình người sử dụng. Cơ chế sử dụng Anomaly-number

sẽ giúp IWAF xử lý tốt hạn chế của WAF truyền thống là nhận định sai False positives và False negatives.

Hình 5.1 Mô hình hoạt động IWAF

Mô tả hoạt động mô hình: mô hình hoạt động của IWAF được mô tả qua các bước như sau:

+ Bước 1: Người dùng thực hiện một truy vấn đến một ứng dụng web được bảo vệ, nội dung truy vấn đến IWAF để tiến hành xử lý. (adsbygoogle = window.adsbygoogle || []).push({});

+ Bước 2: Truy vấn được đưa qua 02 phương pháp nhận dạng bất thường Rule-based và Anomaly-based. Kết quả đầu ra là tổng giá trị Anomaly-number

Phân tích dữ liệu phản hồi

Chức Năng Kiểm Tra Kết Nối

Phân tích dữ liệu truy vấn

Kiểm tra việc upload file

Kiểm tra tỉ lệ truy cập và dòng lưu chuyển dữ liệu

của ứng dụng

Phân tích dữ liệu xác thực

Phân tích trạng thái phiên làm việc

Nhận dạng tấn công trên một số kỹ thuật tấn công mạng thông dụng Máy chủ ứng dụng Web Mô hình Markov ẩn Các mô hình nhận dạng khác Phương pháp nhận dạng bất thường Anomaly-based

Máy học - Machine learning

Phương pháp nhận dạng bất thường Rule-based Anomaly-number Chức Năng Xử Lý Passing (Cho phép qua) Threshold Blocking (Khóa kết nối) Error Processing (Xử lý lỗi) Rewriting (thay đổi nội dung )

A n o m a ly -n u m b e r > Threshold < Threshold truy vấn bất thường Truy vấn đến ứng dụng web

Phản hồi lỗi, khóa kết nối, nội dung

đã bị thay đổi

Ứng dụng web phản hồi thông tin với các truy vấn hợp pháp Thông tin phản hồi sau

khi được kiểm tra

Nhật ký hệ thống Nhật ký hệ thống Thông báo Báo cáo Cập nhật Rules Quản trị Chức Năng Quản Lý

+ Bước 3: Truy vấn với giá trị Anomaly-number được so sánh với qui định ngưỡng an toàn (threshold). Nếu Anomaly-number nhỏ hơn threshold thì truy vấn được xem là bình thường và được truy xuất đến ứng dụng. Ngược lại, truy vấn sẽ bị khóa, thay đổi nội dung, thông báo lỗi và gởi ngược lại người dùng.

+ Bước 4: Truy vấn hợp pháp được ứng dụng web trả lời phản hồi. Phản hồi này khi đến IWAF sẽ bị kiểm tra xem có dấu hiệu bất thường không? Nếu không phản hồi sẽ đến máy người dùng, ngược lại sẽ bị thông báo lỗi hoặc khóa.

5.3. Xây dựng IWAF

IWAF được xây dựng trên nền tảng mã nguồn mở. IWAF sử dụng và phát triển thêm các tính năng cho hệ thống WAF mã nguồn mở nổi tiếng là Modsecurity.

ModSecurity là một WAF mã nguồn mở được Ivan Ristic phát triển dành cho Web Server Apache, hiện nay đã hỗ trợ IIS 7.5, Nginx, Java. Ông là một người có rất nhiều kinh nghiệm trong bảo vệ Web Server Apache. Ông đã có nhiều thời gian nghiên cứu Web Application Security, Web Intrusion Detection, và Security Patterns. Trước khi chuyển sang lĩnh vực bảo mật, Ivan đã có nhiều năm làm việc như một Developer, System Architect, Technical Director trong phát triển phần mềm. Ông hiện đang là thành viên của OWASP và chuyên viên của Web Application Security Consortium (WASC).

Modsecurity là WAF có tính mở, nó không đưa ra mô hình bảo mật cụ thể nào mà phụ thuộc vào việc sử dụng của người dùng. Người dùng có thể xây dựng các module, chính sách để đưa vào modsecurity sao cho phù hợp với hệ thống web cần phải bảo vệ.

Một số chức năng chính của Modsecurity

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

+ Understanding of the HTTP protocol: Modsecurity hiểu được giao thức HTTP và có khả năng lọc dựa trên các thông tin ở HTTP Header hay có thể xem xét đến từng thông số hay cookies của các request …

+ POST payload analysis: Ngoài việc lọc dựa trên HTTP Header, modsecurity có thể dựa trên nội dung (payload) của POST requests.

+ Audit logging: Mọi requests đề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. (adsbygoogle = window.adsbygoogle || []).push({});

+ Compressed content filtering: modsecurity sẽ phân tích sau khi đã giải nén các các dữ liệu được yêu cầu.

Modsecurity cho phép chúng ta đặt chính sách (xử lý) tại một trong 05 thời điểm trong chu kỳ xử lý như sau:

Hình 5.2 Sơ đồ xử lý của modsecurity (nguồn Modsecurity Reference-Manual)

+ Phase 1-Request Header: chính sách được đặt tại đây sẽ được thực hiện ngay sau khi webserver đọc request header, lúc này phần request body vẫn chưa được đọc.

+ Phase 2-Request Body: Đây là thời điểm các thông tin chức năng chung đưa vào vào được phân tích và xem xét, các qui tắc mang tính ứng dụng hướng kết

nối thường được đặt ở đây. Ở thời điểm này, webserver đã nhận đủ các thông số của request và phần request body đã được đọc. Modsecurity hỗ trợ ba loại mã hoá 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: Đây là thời điểm ngay sau khi phần response header được gửi trả về cho client. Chúng ta đặt rule ở đây nếu muốn giám sát quá trình sau khi phần response được gửi đi.

+ Phase 3-Response Body: Đây là thời điểm kiểm tra dữ liệu HTML gửi trả về.

+ Phase 4- logging: Là thời điểm các hoạt động ghi nhật ký được thực hiện, các chính sách đặt ở đây sẽ định rõ việc ghi nhật ký sẽ thực hiệ như thế nào.

CHƯƠNG 6: CÀI ĐẶT PHẦN MỀM, THỬ NGHIỆM, PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ

6.1 Cài đặt phần mềm IWAF

Việc cài đặt phần mềm bao gồm thực hiện 03 bước như sau:

+ Bước 1: Cài đặt phần mềm máy chủ ứng dụng web Apache và tường lửa Modsecurity.

+ Bước 2: Cài đặt các rules thực hiện chức năng kiểm tra theo phương pháp Rule-based.

+ Bước 3: Cài đặt các rules thực hiện chức năng kiểm tra theo phương pháp Anomaly-based.

Quá trình cài đặt và cấu hình được trình bày chi tiết trong phần phụ lục đính kèm.

6.2 Thử nghiệm và phân tích mô hình tổ hợp HMM

Trong chương này, báo cáo tập trung phân tích các thử nghiệm liên quan đến cơ chế nhận dạng các bất thường dựa trên dữ liệu đầu vào sử dụng tổ hợp HMM. Các cơ chế nhận dạng tấn công dựa trên Rule-based sẽ không đưa vào thử nghiệm và phân tích.

6.2.1 Mẫu dữ liệu thử nghiệm và các phương án thử nghiệm

Để tiến hành thử nghiệm cho mô hình tổ hợp HMM, tôi đã xây dựng một ứng dụng web thông dụng hiện nay là Wordpress dùng để tạo các trang Blog, Website. Dữ liệu các truy vấn thu thập được trong quá trình sử dụng dùng để làm tập huấn luyện và xây dựng các ngưỡng cho các ứng dụng web. Dữ liệu thu thập có khoảng 10,000 truy vấn, trong đó có khoản 3,460 truy vấn hợp lệ (truy vấn có tham số đến các ứng dụng web). Các truy vấn phân chia kết nối đến 13 ứng dụng web. Các truy vấn này được xem là hợp pháp (bình thường) được tạo ra người dùng trong cơ quan, không đưa ra ngoài Internet.

Ngoài ra, để việc đánh giá tốt hơn, tôi cũng đã lấy thông tin truy vấn trong vòng 03 tháng từ trang web thương mại điện tử http://www.retot.com từ công ty CÔNG TY CỔ PHẦN VIHAN để phục vụ việc thử nghiệm. Dữ liệu truy vấn khá lớn khoản 1,330,000 truy vấn, trong đó có khoảng 556,126 truy vấn hợp lệ.

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Hệ thống tường lửa thông minh cho các ứng dụng web iwaf (Trang 60)