1. Trang chủ
  2. » Luận Văn - Báo Cáo

Detecting abnormal imput data on web applications by visualization

130 10 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 130
Dung lượng 23,6 MB

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

Nội dung

Trong khi đó, với kiến thức và kinh nghiệm của mình, một nhà quản trị ứng dụng web có thể nhận thấy được sự liên quan giữa các sự kiện, gắn kết chúng lại với nhau, và xây dựng nên một kị

Trang 1

BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN

Tên đề tài: Phát hiện dữ liệu nhập bất thường trên ứng dụng web thông qua

trực quan hóa

Mẫu R08 Ngày nhận hồ sơ

(Do CQ quản lý ghi)

Tham gia thực hiện

1 ThS Đặng Trần Trí Chủ nhiệm 0909.263.742 tridang@cse.hcmut.edu.vn

2 ThS Trương Quỳnh Chi Tham gia 0932.067.134 tqchi@cse.hcmut.edu.vn

3 ThS Trương Quang Hải Tham gia 0909.595.484 haitruong@cse.hcmut.edu.vn

4 ThS Nguyễn Thị Ái Thảo Tham gia 0905.933.683 thaonguyen@cse.hcmut.edu.vn

5 ThS Lê Thị Bảo Thu Tham gia 0983.181.131 thule@cse.hcmut.edu.vn

C

Đại học Quốc gia

Thành phố Hồ Chí Minh

TP.HCM, tháng 1 năm 2015

Trang 3

MỤC LỤC

TÓM TẮT 2

ABSTRACT 3

DANH MỤC CÁC HÌNH VẼ & ĐỒ THỊ 4

LỜI CẢM ƠN 5

Chương 1 – Tổng quan về đề tài 6

Chương 2 – Trực quan hóa dữ liệu nhập từ web form 8

2.1 – Mục tiêu 8

2.2 – Thiết kế trực quan hóa và tương tác 9

2.3 – Hiện thực hệ thống 11

2.4 – Đánh giá 13

2.5 – Kết luận 15

Chương 3 – Xây dựng và trực quan hóa kịch bản tấn công trong không - thời gian 16

3.1 – Mục tiêu 16

3.2 – Thiết kế trực quan hóa 17

3.3 – Hiện thực hệ thống 19

3.4 – Đánh giá 21

3.5 – Kết luận 23

Chương 4 – Trực quan hóa tấn công trong không gian địa lý và không gian web 24

4.1 – Trực quan hóa các điểm nguổn 24

4.2 – Thiết kế trực quan hóa 25

4.3 – Tương tác người dùng 28

4.4 – Đánh giá 31

4.5 – Kết luận 33

Chương 5 – Tổng kết 34

TÀI LIỆU THAM KHẢO 35

PHỤ LỤC 37

P1 - Phụ lục sản phẩm 37

P1.1 - Bài báo gửi đăng tạp chí thuộc danh mục ISI 37

P1.2 - Bài báo đã đăng trên tạp chí IJWIS 53

P1.3 - Bài báo đã được chấp nhận trên tạp chí TLDKS 72

P1.4 - Bài báo đã đăng trên kỷ yếu hội nghị quốc tế ACOMP 2013 89

P1.5 - Bảng điểm chuyên đề tiến sỹ 102

P2 - Phụ lục quản lý 103

P2.1 - Phiếu gia hạn 103

P2.2 - Quyết định phê duyệt kinh phí 104

P2.3 - Hợp đồng 110

P2.4 - Thuyết minh đề cương đã được phê duyệt 115

Trang 4

TÓM TẮT

Sự phổ biến của ứng dụng web trong nhiều lĩnh vực đời sống làm cho chúng trở thành một trong những mục tiêu bị tấn công nhiều nhất Vì vậy, việc phát hiện và hiểu rõ các tấn công xảy ra trên ứng dụng web là một nhu cầu cần thiết Hiện nay, để giải quyết bài toán này, đa số các giải pháp đều tập trung vào việc phát hiện tấn công một cách tự động Mặc dù cách làm này có nhiều ưu điểm nhưng nó lại không thể khai thác được khả năng quan sát và suy luận của con người Đề tài này góp phần giải quyết thiếu sót trên bằng cách sử dụng trực quan hóa thông tin để tích hợp con người vào quá trình quan sát, suy luận đối với các tấn công trên ứng dụng web Ngoài trực quan hóa, những giải pháp mà đề tài đề xuất còn cung cấp cơ chế tương tác người dùng để giúp nhà quản trị bảo mật có được thông tin mong muốn một cách dễ dàng và tự nhiên Thí nghiệm trên một số kịch bản giả lập đã chứng minh tính hiệu quả mà giải pháp mang lại Qua đó, có thể thấy rằng tuy không hoàn toàn thay thế các công cụ phát hiện tấn công tự động, kỹ thuật đề xuất này là một công cụ bổ sung đáng kể để tăng cường bảo mật cho ứng dụng web

Trang 5

ABSTRACT

The popularity of web applications in various areas makes them one of the most attacked targets

on the Internet Therefore, it is necessary to recognize and understand these attacks early once they happen To solve this problem, most of the current works focus on developing techniques to detect attacks automatically Although this approach has many advantages, it does not utilize human perception and reasoning skills To partly solve that issue, this research project applies information visualization techniques to integrate human users into the monitoring and analysis processes of web application attacks Furthermore, the proposed approaches also provides interaction mechanisms to help security administrators acquire needed information in an easy and natural way Experimenting on virtual scenarios confirms the benefits this technique brings to human users As a result, while our approach does not completely replace the traditional automatic intrusion detection tools, it is a valuable component for hardening web application security

Trang 6

DANH MỤC CÁC HÌNH VẼ & ĐỒ THỊ

Hình 1 Số lượng tấn công thông qua web bị phát hiện và ngăn chặn theo thời gian 6

Hình 2 Một phần web form để đăng ký tài khoản Google 8

Hình 3 Ánh xạ từ các thành phần nhập sang dạng trực quan 9

Hình 4 Xác định vị trí đánh dấu của giá trị nhập 11

Hình 5 Giao diện chính của chương trình thử nghiệm 12

Hình 6 Kết quả sau khi sắp xếp một cột 14

Hình 7 Tìm kiếm những giá trị có thể là tấn công SQL injection trên ứng dụng web 15

Hình 8 Kịch bản tấn công được xây dựng và trực quan hóa 17

Hình 9 Biểu diễn các sự kiện trong trục tọa độ thời gian 18

Hình 10 Biểu diễn các sự kiện trong trục tọa độ không gian 19

Hình 11 Kiến trúc hệ thống của giải pháp 20

Hình 12 Các tham số để xây dựng kịch bản tấn công 21

Hình 13 Kết quả trực quan hóa kịch bản tấn công thực hiện bởi Subgraph Vega 22

Hình 14 Kết quả trực quan hóa kịch bản tấn công thực hiện bởi Zed Attack Proxy 22

Hình 15 Kết quả trực quan hóa kịch bản tấn công thực hiện thủ công 23

Hình 16 Thiết kế trực quan hóa tấn công trong không gian địa lý và không gian web 25

Hình 17 Biểu diễn nguồn tấn công 26

Hình 18 Biểu diễn đích tấn công 27

Hình 19 Trực quan hóa liên kết nguồn – đích 28

Hình 20 Thao tác phóng to/thu nhỏ 29

Hình 21 Thao tác mở rộng/thu hẹp 30

Hình 22 Minh họa thao tác lọc 30

Hình 23 Xem chi tiết tấn công 31

Hình 24 Tấn công từ một nguồn 32

Hình 25 Tấn công từ nhiều nguồn 32

Trang 7

LỜI CÁM ƠN

Trong quá trình thực hiện đề tài này, nhóm nghiên cứu đã nhận được nhiều sự hỗ trợ quý báu từ gia đình, bạn bè, và đồng nghiệp

Xin gửi lời cám ơn đến Đại Học Quốc Gia TP.HCM đã hỗ trợ kinh phí để thực hiện đề tài

Xin gửi lời cám ơn đến Đại Học Bách Khoa, đặc biệt là Phòng Khoa học Công nghệ và Dự án đã

tư vấn cặn kẽ về quy trình đăng ký, thực hiện, cũng như hoàn thành đề tài

Xin gửi lời cám ơn đến Khoa Khoa học và Kỹ thuật Máy tính đã hỗ trợ về mặt chuyên môn và tổ chức các buổi seminar liên quan trong quá trình làm đề tài

Xin gửi lời cám ơn đến các thành viên D-STAR Lab đã tham gia hỗ trợ về mặt lập trình, thí nghiệm, đọc và phản hồi các báo cáo trong đề tài Đặc biệt, xin gửi lời cám ơn đến PGS TS Đặng Trần Khánh đã cố vấn những kiến thức và kinh nghiệm về quá trình quản lý và thực hiện một đề tài nghiên cứu khoa học sao cho hiệu quả

Trang 8

CHƯƠNG 1 – TổNG QUAN Về Đề TÀI

Ngày nay, ứng dụng web (web applications) được sử dụng rộng rãi trong nhiều lĩnh vực đời sống

xã hội khác nhau, từ giáo dục, giải trí cho đến thương mại, truyền thông, v.v Sự phát triển của ứng dụng web phần nào làm cho con người ngày càng phụ thuộc vào chúng Nếu như hoạt động thông thường của ứng dụng web bị ảnh hưởng, thì công việc hàng ngày của người sử dụng cũng sẽ

bị tác động theo Hơn nữa, do sự phổ biến của ứng dụng web, chúng trở thành một trong những mục tiêu bị tấn công nhiều nhất, và con số này ngày càng tăng thêm Hình 1 cung cấp số liệu thống kê về tình hình tấn công thông qua web bị phát hiện và ngăn chặn trong thời gian gần đây, theo như nghiên cứu của công ty Symantec [1]

Hình 1 Số lượng tấn công thông qua web bị phát hiện và ngăn chặn theo thời gian Hình ảnh trích

từ nghiên cứu của công ty Symantec [1]

Từ những nguyên nhân trên, có thể thấy rằng trong tình hình hiện nay, yêu cầu đảm bảo an toàn cho ứng dụng web trở nên quan trọng và cấp thiết Vì lẽ đó, ngoài khả năng khai thác các giải pháp có sẵn, việc nghiên cứu và ứng dụng những giải pháp mới để bảo mật ứng dụng web là không thể thiếu

Các hướng tiếp cận truyền thống cho bài toán bảo mật ứng dụng web tập trung vào việc tự động hóa các quy trình có liên quan đến con người Một vài phương pháp điển hình bao gồm tự động kiểm tra mã nguồn chương trình để tìm kiếm lỗi bảo mật (white-box testing), hay tự động tấn công vào ứng dụng web để xem phản ứng của chúng như thế nào (black-box testing), hoặc tự động phát hiện tấn công vào ứng dụng web (intrusion detection) để cảnh báo cho nhà quản trị Ưu điểm chung của các cách tiếp cận này là chúng giảm thiểu công sức và thời gian của nhà quản trị ứng dụng web Tuy nhiên, cách làm trên lại không khai thác được kinh nghiệm, khả năng quan sát và suy luận của con người vào quá trình bảo mật Chẳng hạn đối với trường hợp của các công cụ phát

Trang 9

hiện tấn công tự động: hầu như chúng chỉ có thể phát hiện ra những tấn công riêng lẻ và cung cấp thông tin dưới dạng có hoặc không có tấn công xảy ra Trong khi đó, với kiến thức và kinh nghiệm của mình, một nhà quản trị ứng dụng web có thể nhận thấy được sự liên quan giữa các sự kiện, gắn kết chúng lại với nhau, và xây dựng nên một kịch bản tấn công có ý nghĩa hơn Vì vậy, ngoài việc khai thác sức mạnh tính toán của máy tính, thì vấn đề tích hợp con người vào quá trình quan sát, suy luận đóng vai trò quan trọng trong quy trình bảo mật Đây là một hướng tiếp cận mới và cũng chính là phương pháp mà đề tài này sử dụng để bảo mật ứng dụng web

Để khai thác khả năng quan sát và suy luận của con người, đề tài sử dụng trực quan hóa thông tin làm phương tiện giao tiếp giữa nhà quản trị và các sự kiện bảo mật So với văn bản, hình ảnh có thể truyền tải được nhiều thông tin hơn trong một đơn vị thời gian Hơn nữa, khi được dùng một cách phù hợp, thông tin trực quan còn hỗ trợ người quan sát phát hiện và nhận dạng mẫu (pattern),

từ đó tăng cường khả năng suy luận Đối với các hệ thống trực quan được hiện thực trên máy tính, chúng còn cung cấp khả năng tương tác với người sử dụng Thông qua tương tác, người sử dụng

có thể nhận được thông tin ở nhiều cấp độ hoặc điều kiện khác nhau tùy theo nhu cầu của mình

Vì những ưu điểm mà trực quan hóa và tương tác người dùng mang lại nêu trên, việc khai thác chúng để gắn kết chặt chẽ nhà quản trị vào quá trình bảo mật ứng dụng web là một cách tiếp cận hữu ích Cụ thể hơn, đề tài này sẽ sử dụng trực quan hóa và tương tác người dùng để đạt được các mục tiêu sau:

• Hỗ trợ bảo mật ứng dụng web bằng cách kết hợp máy tính và con người

• Cho phép quan sát các tấn công theo những mức độ chi tiết khác nhau

• Hỗ trợ phân tích và tổng hợp thông tin thông qua tương tác người dùng

Trong quá trình thực hiện đề tài này, nhóm nghiên cứu đã đề xuất, hiện thực, và đánh giá 3 phương pháp khác nhau phục vụ cho các mục tiêu trên Chi tiết về từng phương pháp được mô tả trong các Chương 2, 3, và 4 của báo cáo này Chương 5 trình bày tổng kết về kết quả mà đề tài đạt được, những hạn chế còn chưa giải quyết, và định hướng cho việc phát triển sau này Phần phụ lục của báo cáo cung cấp thông tin minh chứng về những kết quả mà đề tài đạt được, thuyết minh ban đầu, và hợp đồng thực hiện đề tài

Trang 10

CHƯƠNG 2 – TRựC QUAN HÓA Dữ LIệU NHậP Từ WEB FORM

Phương tiện phổ biến để ứng dụng web nhận dữ liệu từ người dùng là thông qua web form [2] Mỗi web form được tạo ra với một mục đích cụ thể, chẳng hạn như để đăng ký thành viên mới hoặc để tìm kiếm thông tin trên một website Tùy theo mục đích cụ thể đó mà từng web form sẽ chứa các thành phần nhập (input element) khác nhau Thông thường, ứng với mỗi web form xác định, thì số lượng thành phần nhập, thứ tự xuất hiện của chúng, và miền giá trị của từng thành phần nhập là không thay đổi Hình 2 minh họa một phần của web form để đăng ký tài khoản Google, trong đó có chứa các thành phần nhập như họ, tên, username, mật khẩu, v.v theo thứ tự xác định

Hình 2 Một phần web form để đăng ký tài khoản Google với số lượng, thứ tự, và miền giá trị của các thành phần nhập xác định

Trang 11

Dựa vào quan sát trên, nhóm nghiên cứu đề xuất kỹ thuật trực quan hóa dữ liệu nhập từ web form với mục tiêu chính là hỗ trợ nhà quản trị trong việc nhận dạng các giá trị bất thường (là những giá trị dùng để tấn công) Giải pháp đề xuất không tự động phân loại thế nào là bình thường, thế nào

là nguy hiểm mà chỉ cung cấp công cụ để nhà quản trị nhanh chóng tìm ra những giá trị là nguy hiểm theo nhận định của riêng họ Cơ sở của kỹ thuật trực quan hóa này là trên cùng một web form, những lần nhập dữ liệu khác nhau (từ đây gọi là tắt là “lần nhập“) phải có cùng số lượng, thứ tự và miền giá trị cho các thành phần nhập Bằng cách biểu diễn những thông tin này dưới dạng đồ họa và cung cấp cơ chế tương tác phù hợp, giải pháp mà nhóm nghiên cứu đề xuất cho phép nhà quản trị ứng dụng web tìm kiếm, phân tích, và xác định các tấn công hiệu quả hơn Chi tiết về thiết kế trực quan hóa và tương tác của giải pháp sẽ được trình bày trong phần kế tiếp

2.2 – Thiết kế trực quan hóa và tương tác

Xét một web form cụ thể với n thành phần nhập N thành phần nhập này có thứ tự xác định và thành phần nhập thứ i có tên tương ứng là namei (trong đó i đi từ 1 đến n) Khi một form như vậy được gửi lên máy chủ web từ người dùng thì mỗi thành phần nhập namei chứa một giá trị tương ứng valuei, là giá trị mà người dùng đã nhập vào Như vậy, mỗi web form khi gửi lên máy chủ web được xem như một tập hợp có thứ tự các cặp (namei, valuei) như sau:

{(name1, value1), (name2, value2), , (namen, valuen)}

Với mỗi form xác định, số lượng và thứ tự giữa các cặp (namei, valuei) là như nhau Dựa trên đặc điểm này, nhóm nghiên cứu đưa ra thiết kế trực quan hóa để làm nổi bật những lần nhập có sự khác biệt về số lượng, hoặc thứ tự, hoặc cả 2, chẳng hạn khi hacker cố tình thay đổi cấu trúc form trước khi gửi dữ liệu Cụ thể hơn, mỗi thành phần nhập với tên xác định sẽ được ánh xạ thành một màu nhất định trên giao diện trực quan hóa Việc sử dụng màu sắc, là một thuộc tính đồ họa tiền chú ý (pre-attentive attribute) [3], cho phép việc nhận dạng sự khác biệt được thực hiện nhanh chóng mà không tốn nhiều công sức của nhà quản trị Việc ánh xạ từ thành phần nhập nào sang màu gì sẽ được thiết lập bởi chính nhà quản trị, thông qua một file cấu hình Hình 3 minh họa cách thức chuyển từ các giá trị nhập vào web form sang dạng trực quan

Hình 3 Ánh xạ từ các thành phần nhập sang dạng trực quan Mỗi thành phần nhập sẽ có một màu tương ứng, được quy định bởi nhà quản trị dựa vào tên thành phần đó Ứng với mỗi web form, dãy màu này sẽ gần như cố định do số lượng và thứ tự các thành phần trên đó là không thay đổi Như minh họa ở Hình 3, mỗi lần nhập sẽ được biểu diễn dưới dạng một dãy màu theo chiều ngang Các lần nhập khác nhau trên cùng một web form sẽ được hiển thị tương ứng thành nhiều

Trang 12

dãy màu xếp chồng lên nhau theo thứ tự từ trên xuống dưới Khi một dãy màu có sự khác biệt so với các dãy màu còn lại, dãy màu đó sẽ được nhận biết dễ dàng bởi nhà quản trị (điều này sẽ được làm rõ hơn trong phần thí nghiệm)

Phương pháp thiết kế trực quan hóa vừa nêu cho phép so sánh sự sai khác về số lượng và thứ tự các thành phần nhập giữa những lần nhập khác nhau Tuy nhiên, nó lại không hỗ trợ so sánh bản thân giá trị chứa trong các thành phần nhập Do đó, nhóm nghiên cứu sử dụng thêm việc đánh dấu

vị trí để hiển thị thứ tự tương đối giữa các giá trị trong cùng một thành phần nhập như sau

Xét một thành phần nhập nào đó với m lần nhập khác nhau Trong m lần nhập này, thành phần này sẽ chứa m giá trị (có thể có giá trị trùng nhau) Sắp xếp các giá trị này theo thứ tự tăng dần ta

sẽ được danh sách V:

V = (value1, value2, , valuem)

Vị trí tương đối của một giá trị v nào đó sẽ được xác định theo công thức

percentile(v) = 100*(i-1)/m; với i = min {j} sao cho valuej = v

Nói một cách đơn giản, hàm percentile(v) này tính số lượng phần trăm các giá trị thực sự nhỏ hơn

v trong danh sách V Nó cho phép chuyển một giá trị nhập từ thứ tự (so với các giá trị khác trong cùng thành phần nhập) sang dạng số thực với miền giá trị [0;100) Từ đây, có thể áp dụng các phương pháp tính toán thống kê cơ bản như trung bình và độ lệch chuẩn để từ đó xác định vị trí đánh dấu cho giá trị đang xét Chi tiết về việc tính toán vị trí đánh dấu được trình bày trong phần phụ lục Trong phần này, xin được trình bày nguyên lý chính của phương pháp

Xét một thành phần nhập nào đó đã được ánh xạ sang một màu sắc cụ thể và được biểu diễn trên một đoạn thẳng có độ dài L pixel L là số lẻ để pixel trung tâm thực sự nằm giữa đoạn thẳng này Mỗi thành phần nhập tùy theo độ quan trọng của chúng mà nhà quản trị có thể gán cho chúng những chiều dài L khác nhau Giá trị trung bình µ và độ lệch chuẩn σ của toàn bộ giá trị nhập ứng với thành phần nhập này sẽ được xác định Sau đó, những giá trị “gần“ với trung bình (lệch tối đa

±σ so với µ) sẽ được đánh dấu tương ứng với pixel trung tâm của đoạn thẳng biểu diễn Tương tự, những giá trị lệch so với trung bình từ σ đến 2σ sẽ được đánh dấu tương ứng với pixel bên phải pixel trung tâm, những giá trị lệch so với trung bình từ -σ đến -2σ sẽ được đánh dấu tương ứng với pixel bên trái pixel trung tâm, v.v Thông qua đó, toàn bộ các giá trị sẽ được đánh dấu với vị trí pixel tương ứng Thông qua vị trí của pixel được đánh dấu, nhà quản trị có thể phần nào biết được giá trị tương đối mà người dùng nhập vào một thành phần nhập trong những lần nhập khác nhau Hình 4 minh họa phương pháp tính toán vị trí pixel để đánh dấu đã trình bày

Trang 13

Hình 4 Xác định vị trí đánh dấu của giá trị nhập Mỗi giá trị nhập sẽ được chuyển sang số thực thông qua hàm percentile() Sau đó, dựa vào sự khác biệt giữa giá trị nhập này so với giá trị trung bình (của toàn bộ các giá trị nhập khác vào cùng thành phần nhập) mà vị trí pixel đánh dấu được xách định Trong hình minh họa hoạt động của phương pháp cho trường hợp L = 5

Phương pháp trực quan hóa các giá trị nhập đề xuất cho phép nhà quản trị nhận dạng các giá trị có

sự khác biệt lớn so với trung bình, và từ đó có thể kiểm tra để xác nhận chúng có thực sự là những trường hợp tấn công hay không Tuy nhiên, không phải lúc nào những giá trị có sự khác biệt lớn

so với trung bình cũng là những giá trị tấn công Ngược lại, có những giá trị có thể gần với trung bình nhưng lại có khả năng chính là các giá trị tấn công Để hỗ trợ khả năng của nhà quản trị trong việc tự tìm kiếm những giá trị tấn công này, hệ thống đề xuất cung cấp thêm chức năng tìm kiếm Giả định được đưa ra ở đây là nhà quản trị có thể không biết một cách đầy đủ toàn bộ những giá trị tấn công, nhưng có thể biết được một phần của chúng Chức năng tìm kiếm cho phép nhà quản trị khai thác thông tin không đầy đủ mà mình biết được để tìm kiếm các giá trị nghi ngờ có thể là tấn công Một chức năng tương tác khác mà hệ thống cung cấp là sắp xếp Chức năng này cho phép nhà quản trị định nghĩa tiêu chuẩn để sắp xếp (ví dụ theo chiều dài chuỗi, theo bảng mã, theo giá trị số, v.v ) và dựa trên đó để sắp xếp các giá trị nhập Bằng cách này, những giá trị nhập tương tự sẽ ở gần nhau và từ đó việc quan sát, phân tích chúng sẽ dễ dàng hơn

2.3 – Hiện thực hệ thống

Nhóm nghiên cứu đã xây dựng một phiên bản thử nghiệm theo thiết kế trực quan hóa và tương tác

đề xuất để tiến hành một vài thí nghiệm đánh giá giải pháp Ngôn ngữ lập trình sử dụng để xây dựng phiên bản này là Java Dữ liệu nhập vào ứng dụng web được lưu trên file log Để tăng hiệu quả hoạt động, nhóm đã thực hiện thêm một bước tiền xử lý là trích xuất các giá trị từ file log để lưu vào một cơ sở dữ liệu JavaDB Việc làm này cho phép chương trình truy vấn dữ liệu dễ dàng hơn so với khi làm việc trực tiếp trên file log

Giao diện chính của hệ thống bao gồm 5 phần như được mô tả trong Hình 5

Trang 14

Hình 5 Giao diện chính của chương trình thử nghiệm Trong đó bao gồm 5 phần: legend; overview visualization; zoomed visualization; detailed table; và user interaction controls

• Legend: cung cấp thông tin về việc ánh xạ từ tên các thành phần nhập sang màu sắc tương ứng

• Overview visualization: hiển thị trực quan tập hợp các lần nhập và giá trị nhập ở mức độ tổng quan nhất

• Zoomed visualization: hiển thị dưới dạng phóng to một phần của overview visualization theo lựa chọn người dùng

• Detailed table: bảng chi tiết các cặp (name, value) ứng với lần nhập đang được chọn từ zoomed visualization

• User interaction controls: các thành phần hỗ trợ tương tác người dùng như tìm kiếm và sắp xếp

Trang 15

Quá trình tương tác chính của hệ thống diễn ra theo thứ tự: overview visualization => zoomed visualization => detailed table Trong đó, overview visualization cung cấp cho nhà quản trị một bức tranh tổng quan về toàn bộ hệ thống Khi nhà quản trị phát hiện ra một khu vực mà mình quan tâm trong overview visualization thì họ có thể sử dụng chuột để phóng to khu vực đó nhằm quan sát chi tiết hơn Khu vực phóng to sẽ được hiển thị trong zoomed visualization Cuối cùng, khi nhà quản trị muốn xem xét dữ liệu ở mức độ chi tiết nhất thì họ có thể click chuột vào khu vực zoomed visualization để hiển thị những giá trị nhập tương ứng trong bảng detailed table

2.4 – Đánh giá

Đánh giá về khả năng hiển thị dữ liệu

Trong các thành phần chính của giao diện chương trình, thì thành phần overview visualization chiếm nhiều không gian nhất Đây cũng là thành phần mà người dùng sẽ quan tâm trước hết để có một cái nhìn tổng quan về toàn bộ hệ thống Sau đó, tùy theo nội dung quan sát được, mà người dùng sẽ tương tác với thành phần này để từ đó có các thông tin chi tiết hơn ở những thành phần khác như zoomed visualization hay detailed table Do vai trò này, nên khả năng hiển thị dữ liệu của overview visualization góp phần quan trọng vào toàn bộ hoạt động của hệ thống Ở thiết kế trực quan hóa này, màu sắc và vị trí đánh dấu được dùng để thể hiện các thành phần nhập và giá trị tương đối của từng lần nhập so với các lần nhập khác Mặc dù cách biểu diễn này không cho phép người dùng nhận biết được giá trị cụ thể của từng thành phần nhập trong mỗi lần nhập, nó lại

có ưu điểm là cho phép thể hiện rất nhiều giá trị nhập trên một không gian giới hạn, cũng như sự khác nhau tương đối giữa các giá trị Hơn nữa, tại bước đầu tiên của quá trình phân tích, việc hiển thị giá trị cụ thể của từng thành phần nhập là không cần thiết

Về số lượng các lần nhập mà chương trình này có thể biểu diễn cùng lúc, có thể ước lượng theo các bước sau Trước hết, mỗi lần nhập được trực quan hóa thành một đoạn thẳng nằm ngang có độ dày 1 pixel Chiều dài của đoạn thẳng phụ thuộc vào số lượng thành phần nhập trên form Giả sử một thành phần nhập được biểu diễn bằng 9 pixel (giá trị này có thể thay đổi tăng hoặc giảm, tuy nhiên 9 là khá đủ để biểu diễn trong hầu hết trường hợp – cụ thể về việc tính toán này được cung cấp trong bài báo trình bày ở phần phụ lục), thì một form với 20 thành phần nhập có thể được biểu diễn chỉ với một đoạn thẳng có chiều dài nhỏ hơn 200 pixel Mặt khác, các đoạn thẳng này được xếp chồng lên nhau, do đó không có khoảng cách giữa chúng Vì vậy, với cách biểu diễn này trên các màn hình máy tính hiện nay, có thể hiển thị từ 3 đến 4 cột và mỗi cột chứa được khoảng 1000 đoạn thẳng thể hiện các lần nhập Tổng hợp các số liệu lại, có thể thấy rằng phương pháp trực quan hóa này cùng một lúc có thể hiển thị được 3000 ~ 4000 lần nhập Đây là một cải thiện đáng

kể so với việc hiển thị bằng văn bản, trong đó chỉ có khoảng vài chục dòng có thể hiển thị cùng lúc

Trang 16

Đánh giá thông qua một số kịch bản tấn công

Trong phần này, nhóm nghiên cứu thực hiện một số tấn công giả lập để kiểm tra xem chúng có thể được nhận biết dễ dàng thông qua giao diện trực quan hóa đã hiện thực hay không Do đó, nhóm

đã cài đặt ứng dụng WordPress [5] vào một máy chủ web chạy cục bộ và dùng form đăng ký tài khoản trên đó để thử nghiệm Công cụ Generatedata [6] được dùng để sinh ra các giá trị nhập an toàn, còn công cụ Exploit-Me [7] được dùng để sinh ra các giá trị tấn công

Kịch bản 1: Thay đổi cấu trúc form đăng ký tài khoản Trong trường hợp này, những lần nhập có cấu trúc khác biệt (về số lượng, thứ tự, hoặc tên của các thành phần nhập) so với những lần nhập còn lại sẽ được hiển thị với sự khác biệt có thể dễ dàng nhận biết thông qua thị giác Hình 5 minh họa về kịch bản này, trong đó các đoạn thẳng có cấu trúc màu khác biệt có thể được nhận dạng dễ dàng bằng cách quét qua khu vực overview visualization

Kịch bản 2: Sử dụng sắp xếp để gom nhóm các giá trị tương tự lại gần nhau Trong tình huống này, nhà quản trị có thể sử dụng cơ chế sắp xếp (trong phiên bản prototype, có 3 cách sắp xếp được hiện thực: theo chiều dài, theo thứ tự chuỗi, và theo giá trị số) để gom các giá trị tương tự lại gần nhau, từ đó tiết kiệm thời gian phân tích một khi đã phát hiện ra được giá trị quan tâm Một ưu điểm khác của giao diện trực quan hóa này trong việc sắp xếp là: khi một thành phần nhập được chọn để sắp xếp, thứ tự tương đối giữa các giá trị trong những thành phần nhập khác cũng được thể hiện một phần Hình 6 minh họa kết quả sau khi sắp xếp trên cột thứ nhì

Hình 6 Kết quả sau khi sắp xếp một cột (cột thứ nhì): các giá trị tương tự nhau sẽ được hiển thị gần nhau Mặt khác, thứ tự tương đối giữa các giá trị trong những cột khác cũng được thể hiện một phần

Kịch bản 3: Sử dụng tìm kiếm để phát hiện tấn công với thông tin không đầy đủ Trong trường hợp nhà quản trị biết được thông tin không đầy đủ về một loại tấn công nào đó (chẳng hạn tấn công thông qua phương pháp SQL injection), thì họ có thể sử dụng thông tin không đầy đủ này để tìm kiếm các giá trị thỏa mãn Từ đó, việc kiểm tra tấn công sẽ trở nên dễ dàng và nhanh chóng hơn do chỉ cần thực hiện trên các lần nhập thỏa mãn điều kiện tìm kiếm Hình 7 minh họa kết quả tìm kiếm đối với tấn công SQL injection

Trang 17

Hình 7 Tìm kiếm những giá trị có thể là tấn công SQL injection trên ứng dụng web Trong trường hợp này, thông tin không đầy đủ là những tấn công SQL injection thường chứa ký tự ‘ (dấu nháy đơn) Những lần nhập thỏa mãn điều kiện tìm kiếm sẽ được đánh dấu

2.5 – Kết luận

Phương pháp trực quan hóa dữ liệu nhập từ web form đã đề xuất cho phép hiển thị các giá trị nhập

từ người dùng với số lượng cao hơn hẳn so với hiển thị bằng văn bản Hệ thống còn cung cấp cơ chế tương tác người dùng dựa theo nguyên lý “visual information seeking mantra“ [4], hỗ trợ việc phân tích thông tin cho nhà quản trị Phiên bản dạng prototype đã được hiện thực và thí nghiệm để chứng minh tính hiệu quả của giải pháp đề xuất trong một số trường hợp tấn công cụ thể

Giải pháp trực quan hóa mà nhóm nghiên cứu đề xuất không thể thay thế các công cụ phát hiện tấn công tự động Tuy vậy, nó có thể được dùng như một công cụ bổ sung để cung cấp thêm cái nhìn khác cho nhà quản trị Đặc biệt, đối với những trường hợp tấn công phức tạp, cần có sự phân tích của con người, thì công cụ này có thể giúp tiết kiệm đáng kể công sức và thời gian của người

sử dụng

Trang 18

CHƯƠNG 3 – XÂY DựNG VÀ TRựC QUAN HÓA KịCH BảN TấN CÔNG

TRONG KHÔNG - THờI GIAN

3.1 – Mục tiêu

Đối với các hệ thống phát hiện xâm nhập hiện nay, mục tiêu chủ yếu của chúng là nhận dạng các tấn công riêng lẻ và ghi nhận vào log file hoặc cơ sở dữ liệu Việc xem xét và phân tích các sự kiện này thông thường do chính nhà quản trị thực hiện mà không nhận được sự hỗ trợ từ các hệ thống phát hiện xâm nhập Nói cách khác, các hệ thống phát hiện xâm nhập chỉ tập trung vào việc nhận dạng tấn công mà không quan tâm đến việc người dùng khai thác thông tin thu thập được như thế nào Hơn nữa, mặc dù việc phát hiện từng tấn công riêng lẻ có thể giúp nhà quản trị biết được ít nhiều về tình trạng an toàn của hệ thống, nhưng chúng lại không cung cấp một cái nhìn toàn diện về toàn bộ quá trình tấn công, vì hiếm khi các tấn công chỉ bao gồm một bước đơn giản Trong những trường hợp phổ biến, quá trình xâm nhập bao gồm những bước tìm hiểu về hệ thống trước khi thực hiện tấn công, cũng như những bước khai thác hệ thống và che dấu hành vi tấn công sau đó Vì vậy, việc cung cấp một công cụ hỗ trợ cho phép nhà quản trị có thể liên kết các sự kiện riêng lẻ và hiển thị chúng trực quan là cần thiết Chẳng hạn, công cụ này có thể giúp nhà quản trị thấy được toàn bộ quá trình hoạt động của một trường hợp tấn công cũng như những khu vực

mà cuộc tấn công tập trung vào, từ đó phần nào biết được động cơ và kỹ năng của hacker Những thông tin này không chỉ hữu ích để chống trả lại tấn công đang diễn ra, mà còn có thể giúp ích cho quá trình lên kế hoạch phòng thủ trong tương lai

Để xây dựng công cụ nêu trên, có hai vấn đề chính cần được giải quyết: vấn đề thứ nhất là nhận biết các bước liên quan của cùng một cuộc tấn công để gom chúng lại với nhau, và vấn đề thứ hai

là phát triển kỹ thuật trực quan hóa để hiển thị các bước này sao cho dễ hiểu đối với nhà quản trị Trong giải pháp mà nhóm nghiên cứu đề xuất, vấn đề thứ nhất được gọi là “attack scenario construction” và vấn đề thứ hai được gọi là “attack scenario visualization”

Đối với vấn đề “attack scenario construction”, cách tiếp cận được các nghiên cứu trước đây sử dụng là xây dựng mối quan hệ nhân quả giữa các sự kiện Chẳng hạn, ứng với mỗi trường hợp tấn công, Debar và Wespi định nghĩa các điều kiện phải thỏa mãn để tấn công đó có thể thành công (những điều kiện này được gọi là “pre-condition”) cũng như những điều kiện trở nên thỏa mãn sau khi tấn công thực hiện thành công (những điều kiện này được gọi là “post-condition”) [8] Sau đó, kịch bản tấn công được xây dựng thông qua chuỗi pre-condition và post-condition này Ning và các cộng sự cũng có cách tiếp cận tương tự (họ dùng thuật ngữ “prerequisite” và “consequence”

để mô tả cho mối quan hệ nhân quả giữa các sự kiện) nhưng giải pháp của họ có thêm chức năng

Trang 19

trực quan hóa kịch bản tấn công được xây dựng [9] Hình 8 minh họa kết quả của việc xây dựng

và trực quan hóa kịch bản tấn công đề xuất trong [9]

Hình 8 Kịch bản tấn công được xây dựng và trực quan hóa [9] Một đồ thị có hướng được dùng

để mô tả mối quan hệ nhân quả giữa các sự kiện trong kịch bản tấn công

Điểm hạn chế chung của những phương pháp xây dựng kịch bản tấn công đã nêu là chúng dựa vào nhà quản trị để định nghĩa mối quan hệ nhân quả giữa các sự kiện, là một việc tốn nhiều thời gian

và công sức Trong nghiên cứu này, chúng tôi khai thác mối liên kết giữa các trang web và thời gian truy xuất chúng để phần nào tự động hóa quá trình xây dựng kịch bản tấn công

Đối với vấn đề “attack scenario visualization“, theo sự tìm hiểu của chúng tôi, hiện tại chỉ có các nghiên cứu về trực quan hóa kịch bản tấn công trong lĩnh vực an ninh mạng (network security), trong đó nghiên cứu của Ning và các cộng sự [9] là một ví dụ Còn đối với lĩnh vực bảo mật ứng dụng web thì chưa có công trình nào liên quan đã được công bố

Tóm lại, trong giải pháp này, nhóm nghiên cứu đã có đóng góp chính sau: đề xuất, hiện thực, và đánh giá kỹ thuật để xây dựng cũng như trực quan hóa kịch bản tấn công đối với ứng dụng web Trong những phần kế tiếp, chúng tôi sẽ trình bày chi tiết hơn về cách tiếp cận của mình

3.2 – Thiết kế trực quan hóa

Mục đích chính của chức năng trực quan hóa là hiển thị kịch bản tấn công một cách hiệu quả đến nhà quản trị ứng dụng web Khi nhà quản trị chọn một tấn công nào đó, các sự kiện liên quan đến

Trang 20

nó sẽ được thu thập để xây dựng kịch bản tấn công Sau đó, kịch bản tấn công này sẽ được hiển thị đến nhà quản trị Ở mức tối thiểu, mỗi sự kiện thu thập được bao gồm những dữ liệu sau

• Thời điểm xảy ra sự kiện

• Địa chỉ URL xảy ra sự kiện

• Các thông tin khác (trình duyệt, địa chỉ IP, v.v )

Trong các dữ liệu trên, thì nghiên cứu này tập trung vào thời gian và không gian xảy ra sự kiện vì chúng là những thông tin cơ bản giúp cho nhà quản trị thấy được sự phát triển của một kịch bản tấn công Do đó, giao diện trực quan hóa sẽ được xây dựng để thể hiện rõ điều này

Trong trục tọa độ thời gian

Trong trục tọa độ này, các sự kiện liên quan trong một kịch bản tấn công sẽ được sắp xếp và hiển thị trên một không gian 1 chiều theo giá trị thời điểm xảy ra sự kiện (Hình 9) Trong đó, các sự kiện được chia thành pre-event và post-event Pre-event là những sự kiện xảy ra trước tấn công được lựa chọn, còn post-event là những sự kiện xảy ra sau tấn công được lựa chọn Bằng cách chia những sự kiện ra thành pre-event và post-event, nhà quản trị có thể dễ dàng phân loại được những

gì xảy ra trước và sau tấn công cụ thể mà mình quan tâm Để việc hiển thị được rõ ràng, những sự kiện gần nhau đến một ngưỡng nào đó sẽ được gộp lại thành một sự kiện đại diện với kích thước lớn hơn Ngoài ra, tùy thuộc vào số lượng tấn công xảy ra trong sự kiện (hoặc sự kiện đại diện) mà mỗi sự kiện sẽ có mức độ nghiêm trọng khác nhau, được biểu diễn thông qua màu sắc

Hình 9 Biểu diễn các sự kiện trong trục tọa độ thời gian Các sự kiện được chia thành pre-event (bên trái) và post-event (bên phải) Kích thước của mỗi hình tròn biểu diễn số sự kiện chứa trong

đó, còn màu sắc biểu thị mức độ nghiêm trọng (số tấn công chứa trong đó)

Trang 21

Trong trục tọa độ không gian

Nếu như trong trục tọa độ thời gian các sự kiện được gom nhóm dựa trên thời điểm xảy ra, thì trong trục tọa độ không gian chúng được gom nhóm dựa trên địa chỉ URL xảy ra sự kiện Thông qua kết quả của việc trực quan hóa kịch bản tấn công trong trục tọa độ không gian, nhà quản trị có thể thấy được số lượng truy xuất và mức độ nghiêm trọng (biểu diễn bằng kích thước và màu sắc như trong trục tọa độ thời gian) xảy ra trên từng trang web Vị trí của mỗi trang web trong trục tọa

độ không gian được xác định bằng khoảng cách đến trang được chọn Ở đây, khoảng cách giữa 2 trang web được định nghĩa là số siêu liên kết (hyperlink) tối thiểu để đi từ trang này đến trang còn lại Tương tự như trong trục tọa độ thời gian, các sự kiện trong trục tọa độ không gian cũng được chia thành pre-event và post-event Hình 10 minh họa thiết kế trực quan hóa trong trục tọa độ không gian

Hình 10 Biểu diễn các sự kiện trong trục tọa độ không gian Các sự kiện được gom nhóm theo địa chỉ URL xảy ra sự kiện Kích thước và màu sắc biểu diễn số lượng sự kiện và mức độ nghiêm trọng trên từng trang Vị trí của mỗi trang được xác định thông qua khoảng cách từ trang đó đến trang được chọn

3.3 – Hiện thực hệ thống

Kiến trúc hệ thống

Hình 11 mô tả kiến trúc hệ thống của giải pháp

Trang 22

Hình 11 Kiến trúc hệ thống của giải pháp cho phép xây dựng và trực quan hóa kịch bản tấn công trên ứng dụng web

Dữ liệu để trực quan hóa được thu thập từ các log file của máy chủ web cũng như lấy từ cơ sở dữ liệu của hệ thống phát hiện xâm nhập Kiến trúc này cho phép trong tương lai có thể bổ sung thêm những dữ liệu mới vào mà không làm ảnh hưởng nhiều đến hệ thống hiện tại Ngoài ra, hệ thống còn bao gồm một thành phần crawler để duyệt qua website cần trực quan hóa, thu thập thông tin

về mối liên kết (thông qua hyperlink) giữa các trang web Nhà quản trị tương tác trực tiếp với hệ thống để điều chỉnh kết quả đầu ra của hai quá trình xây dựng và trực quan hóa kịch bản tấn công

Xây dựng kịch bản tấn công

Chức năng này tìm kiếm các sự kiện liên quan để xây dựng nên kịch bản tấn công từ một tấn công

cụ thể được nhà quản trị chọn Để nhận biết những sự kiện liên quan với nhau, chúng tôi sử dụng phương pháp thường dùng trong bài toán xây dựng web session [10], tuy nhiên giá trị các tham số

để gắn kết những sự kiện sẽ được nhập trực tiếp từ nhà quản trị, thay vì xác định tự động Nguyên nhân của cách làm này là bởi vì khác với bài toán xây dựng web session truyền thống, trong đó ứng dụng web được truy xuất bởi người dùng thông thường, trong bài toán xây dựng kịch bản tấn công, hacker có thể sẽ tìm cách để che dấu các truy xuất của mình Do đó, việc để nhà quản trị thay đổi các tham số theo nhu cầu thực tế là cần thiết

Cụ thể, các tham số được dùng để gắn kết những sự kiện với nhau bao gồm: ngưỡng thời gian giữa

2 sự kiện, địa chỉ IP, và trình duyệt Hình 12 là giao diện để tác động vào 3 tham số này

Trang 23

Hình 12 Các tham số để xây dựng kịch bản tấn công có thể được thay đổi động bởi nhà quản trị Trong phiên bản hiện thực, có 3 tham số được dùng để xây dựng kịch bản tấn công: ngưỡng thời gian giữa 2 sự kiện, địa chỉ IP và trình duyệt

3.4 – Đánh giá

Môi trường thử nghiệm

Để tiến hành thử nghiệm giải pháp đề xuất, nhóm nghiên cứu đã sử dụng những kịch bản khác nhau tấn công vào ứng dụng web, từ đó xem xét kết quả thu được thông qua trực quan hóa Cụ thể hơn, chúng tôi đã tấn công vào một ứng dụng web thử nghiệm (được cài đặt cục bộ) bằng những cách thức sau

• Sử dụng công cụ tấn công tự động Subgraph Vega [11]

• Sử dụng công cụ tấn công tự động OWASP Zed Attack Proxy [12]

• Tấn công thủ công

Mục đích của chúng tôi khi lựa chọn những cách thức tấn công khác nhau là nhằm xem xét liệu quá trình tấn công mà những phương pháp/công cụ này thực hiện có thể được thấy trong kết quả trực quan hóa hay không Nói cách khác, liệu sự khác nhau trong những quá trình tấn công này có thể được thể hiện đến nhà quản trị hay không

Một công cụ cần thiết khác cho quá trình thử nghiệm là hệ thống phát hiện xâm nhập trên ứng dụng web Nhóm nghiên cứu đã sử dụng PHPIDS [13] để thu thập thông tin về các tấn công trong những thí nghiệm thực hiện

Kết quả

Kết quả trực quan hóa quá trình tấn công bằng công cụ Subgraph Vega và OWASP Zed Attack Proxy thể hiện trong Hình 13 và Hình 14, trong khi đó Hình 15 thể hiện kết quả của quá trình tấn công thủ công

Trang 24

Hình 13 Kết quả trực quan hóa kịch bản tấn công thực hiện bởi Subgraph Vega

Hình 14 Kết quả trực quan hóa kịch bản tấn công thực hiện bởi OWASP Zed Attack Proxy

Trang 25

Hình 15 Kết quả trực quan hóa kịch bản tấn công thực hiện thủ công

Kết quả trực quan hóa phần nào cho thấy sự khác nhau trong kỹ thuật tấn công ở từng trường hợp Chẳng hạn đối với Subgraph Vega, các tấn công diễn ra liên tục trên một số ít trang Trước và sau những tấn công là rất nhiều các sự kiện bình thường Trong khi đó, OWASP Zed Attack Proxy thực hiện tấn công với tần suất ít hơn nhiều Cuối cùng, tấn công thủ công có thể được nhận biết

dễ dàng qua số lượng sự kiện, cả thông thường và tấn công, ít ỏi mà chúng tạo ra

3.5 – Kết luận

Trong nghiên cứu này, chúng tôi đã đề xuất một phương pháp cho phép xây dựng và trực quan hóa kịch bản tấn công diễn ra trên ứng dụng web So với từng tấn công riêng lẻ, kịch bản tấn công cung cấp một cái nhìn đầy đủ hơn về toàn bộ quá trình xâm nhập vào ứng dụng web của hacker

Do đó, việc trực quan hóa kịch bản tấn công cho phép nhà quản trị khai thác hiệu quả hơn thông tin mà các hệ thống phát hiện xâm nhập thu được

Các thí nghiệm với những trường hợp tấn công khác nhau đã cho thấy được hiệu quả mà nghiên cứu này mang lại Ngoài việc nhận biết kịch bản tấn công được thực hiện tự động hay bởi con người, sự khác nhau về phương pháp tấn công của từng công cụ cũng phần nào được thể hiện bởi

kỹ thuật trực quan hóa đề xuất

Trang 26

CHƯƠNG 4 – TRựC QUAN HÓA TấN CÔNG TRONG KHÔNG GIAN ĐịA

LÝ VÀ KHÔNG GIAN WEB

4.1 – Mục tiêu

Giống như kỹ thuật đã đề xuất ở Chương 3, kỹ thuật đề xuất trong chương này cũng sử dụng các thông tin tấn công riêng lẻ, được nhận dạng bởi hệ thống phát hiện xâm nhập, để trực quan hóa cho nhà quản trị xem xét Điểm khác biệt giữa 2 phương pháp nằm ở cách thức chúng hiển thị thông tin Nếu như kỹ thuật trực quan hóa trong Chương 3 tập trung vào việc hiển thị các sự kiện liên quan trong một kịch bản tấn công, thì kỹ thuật trong chương này tập trung vào việc biểu diễn các sự kiện riêng lẻ trong không gian địa lý và không gian web Ý nghĩa của phương pháp trực quan hóa trong chương này là

• Khi sử dụng không địa lý để biểu diễn nguồn tấn công (attack source) thay vì địa chỉ IP: phương pháp này hiển thị tấn công trong không gian vật lý, thay vì không gian logic, do đó

sẽ dễ thiểu hơn đối với con người

• Đích tấn công (attack destination) được biểu diễn trong không gian web một cách có cấu trúc thay vì là các trang riêng lẻ: cách làm này cho phép quan sát các đích tấn công dễ dàng

Hình 16 minh họa thiết kế tổng quan của kỹ thuật trực quan hóa đề xuất trong chương này

Những đóng góp chính của giải pháp đề xuất trong chương này bao gồm: đề xuất một kỹ thuật trực quan hóa và tương tác người dùng để hỗ trợ phân tích các tấn công xảy ra trên ứng dụng web; xây dựng một phiên bản phần mềm để thử nghiệm phương pháp đề xuất; và tiến hành các thí nghiệm để đánh giá mức độ hiệu quả của kỹ thuật đề xuất

Trang 27

Hình 16 Thiết kế cho giải pháp trực quan hóa các tấn công trong không gian địa lý và không gian web Sự độc lập tương đối giữa các thành phần nhằm tạo sự thuận tiện cho việc tương tác người dùng của nhà quản trị

4.2 – Thiết kế trực quan hóa

Trực quan hóa các điểm nguồn

Khi một tấn công bị phát hiện, thì nguồn tấn công được hệ thống phát hiện xâm nhập ghi nhận dưới dạng địa chỉ IP Địa chỉ IP sau đó sẽ được chuyển sang vị trí địa lý Để có được vị trí địa lý

từ địa chỉ IP, hiện tại có nhiều cách tiếp cận khác nhau Trong đề tài này, nhóm nghiên cứu sử dụng phương pháp dùng các cơ sở dữ liệu GeoIP có sẵn để thực hiện việc chuyển đổi Mặc dù cách làm này còn hạn chế về độ chính xác [14], nhưng nó lại có ưu điểm dễ dàng triển khai và hiện thực Hơn nữa, vì thành phần này độc lập với thiết kế trực quan hóa, nên có thể nâng cấp về sau mà không ảnh hưởng đến toàn bộ hệ thống Cụ thể hơn, cơ sở dữ liệu được dùng để hiện thực

là phiên bản miễn phí được cung cấp bởi MaxMind [15] Sau khi có được vị trí địa lý, việc cần làm kế tiếp là hiển thị các vị trí này lên một bản đồ phù hợp Google Static Maps API [16] được chọn để làm công cụ hiện thực chức năng đó

Sau khi có được tọa độ của điểm nguồn dưới dạng kinh độ λ và vĩ độ φ, việc cần làm kế tiếp là đánh dấu điểm tương ứng trên bản đồ Để làm được việc này, trước hết hình ảnh của bản đồ được lấy từ Google Static Maps API Do Google Maps sử dụng một biến thể của phép chiếu Mercator

để chuyển hình cầu của Trái Đất sang hình phẳng, tọa độ x và y trên bản đồ có thể được tính toán

thông qua kinh độ và vĩ độ theo công thức:

Trang 28

Trong đó, R là bán kính Trái Đất, còn λ0 là kinh độ của gốc tọa độ tự nhiên Tọa độ x và y sẽ được

co giãn dựa trên kích thước khung hình dùng để trực quan hóa và qua đó xác định tọa độ điểm pixel của chúng Hình 17 minh họa cách thức biểu diễn điểm nguồn trong không gian địa lý

Hình 17 Biểu diễn nguồn tấn công Địa chỉ IP nguồn tấn công sẽ được chuyển sang tọa độ địa lý

và trực quan hóa dưới dạng một điểm trên bản đồ

Trực quan hóa các điểm đích

Khác với các điểm nguồn được trực quan hóa trong một không gian vật lý (có tọa độ địa lý xác định), các điểm đích được trực quan hóa trong một không gian logic Trong giải pháp này, nhóm nghiên cứu sử dụng địa chỉ URL để xây dựng nên một cây phân cấp Việc sử dụng địa chỉ URL với cấu trúc cây sẽ tạo nên giao diện trực quan hóa đơn giản hơn (chẳng hạn so với sử dụng siêu liên kết giữa các trang với cấu trúc graph [17] để trực quan hóa) Mỗi trang với địa chỉ URL xác định được xem là một nút trong cây Mối quan hệ cha/con giữa các nút được xác định dựa trên giá trị URL giữa chúng Chẳng hạn, nếu một trang có địa chỉ URL là “domain/someurl” thì nút đại diện trang đó sẽ là cha của nút đại diện trang có URL là “domain/someurl/onemore” Sau đó, cây phân cấp sẽ được trực quan hóa với bố cục xuyên tâm (radial layout) So với bố cục tuyến tính (linear layout), bố cục này có lợi thế là sử dụng không gian hiệu quả hơn, mà lại có tính trung lập (neutrality) đối với các nút [18] Thư viện Java Universal Network/Graph Framework [19] được

sử dụng để trực quan hóa cây kết quả Hình 18 là ví dụ về một cây có bố cục xuyên tâm Những đường tròn được vẽ thêm vào đối với các nút có cùng cấp, nhằm giúp việc so sánh độ sâu giữa chúng nhanh chóng hơn

Trang 29

Hình 18 Cây có bố cục xuyên tâm được dùng để trực quan hóa không gian website Những nút có cùng cấp nằm trên cùng một đường tròn (được vẽ thêm vào để hỗ trợ so sánh)

Trực quan hóa liên kết nguồn – đích

Sau khi các điểm nguồn và đích được xác định, tọa độ của chúng là cố định trong không gian tương ứng (không gian địa lý đối với điểm nguồn, cây bố cục xuyên tâm đối với điểm đích) Do

đó, các cách tiếp cận truyền thống để vẽ đồ thị với bố cục mang tính thẩm mỹ [20] [21] không thể được áp dụng trực tiếp trong trường hợp này Thay vào đó, nhóm nghiên cứu sử dụng đoạn thẳng đơn giản để kết nối giữa điểm nguồn và điểm đích, đồng thời cung cấp cơ chế tương tác để hỗ trợ quá trình quan sát, theo dõi Trong trường hợp có nhiều hơn một kết nối giữa cặp điểm nào đó (chẳng hạn khi một trang web bị tấn công bởi cùng một địa chỉ nhiều lần), đoạn thẳng nối giữa chúng sẽ được vẽ với độ dày lớn hơn Một ví dụ được cho trong Hình 19, đó là kết quả trực quan hóa trường hợp một điểm nguồn tấn công vào nhiều điểm đích

Trang 30

Hình 19 Trực quan hóa liên kết nguồn – đích Trong trường hợp này, có một điểm nguồn tấn công vào nhiều điểm đích trên website đang được theo dõi

4.3 – Tương tác người dùng

Phóng to/thu nhỏ (zoom in/out)

Việc phóng to/thu nhỏ giúp nhà quản trị có thể tập trung vào khu vực mà họ quan tâm hoặc xem xét tình hình tổng quan toàn hệ thống Việc phóng to/thu nhỏ có thể thực hiện trong cả không gian địa lý lẫn cây bố cục xuyên tâm

Trong không gian địa lý: việc phóng to/thu nhỏ diễn ra theo cách thông thường Ở đây chỉ có một vấn đề cần xử lý đặc biệt là cách hiển thị các điểm nguồn khi thực hiện thao tác này Khi hiển thị dưới dạng phóng to, các điểm nguồn sẽ có khoảng cách xa hơn so với khi hiện thị thu nhỏ Do đó, khi chuyển từ một mức độ chi tiết này sang một mức độ chi tiết khác, có thể xảy ra tình trạng kết hợp hoặc tách điểm Ví dụ, ở mức độ chi tiết nhỏ nhất (trong đó hiển thị toàn bộ Trái Đất), hai điểm nguồn từ hai thành phố kề nhau có thể rất gần nhau nên chúng sẽ được vẽ thành một; tuy nhiên, khi khu vực này được phóng to, thì khoảng cách giữa hai điểm trên sẽ dài ra, nên chúng sẽ được tách thành hai điểm riêng biệt Hình 20 hiển thị cùng một khu vực nhưng ở hai mức độ chi tiết khác nhau

Trang 31

Hình 20 Thao tác phóng to/thu nhỏ Khi được hiển thị ở mức độ phóng to (bên trái), khoảng cách giữa các điểm nguồn tăng, có thể xảy ra hiện tượng tách điểm Trong khi đó, với chế độ hiển thị thu nhỏ (bên phải), có thể xảy ra hiện tượng kết hợp điểm

Trong cây bố cục xuyên tâm: việc phóng to/thu nhỏ được thực hiện thông qua thao tác mở rộng (expand)/thu hẹp (collapse) trên các nút Một nút được mở rộng sẽ cho phép hiển thị các nút con; trong khi đó, một nút bị thu hẹp sẽ làm biến mất các cây con tương ứng Điểm đích nằm trên cây con của nút bị thu hẹp sẽ được di chuyển sang nút bị thu hẹp tương ứng (để đảm bảo tính đúng đắn đối với tổng số lượng tấn công) Ngược lại, khi một nút được mở rộng, nếu nút đó có chứa điểm đích nằm trên cây con, thì điểm đích đó sẽ được di chuyển sang cây con tương ứng (đã được hiển thị sau thao tác mở rộng) Hình 21 minh họa quá trình mở rộng và thu hẹp trên cây bố cục xuyên tâm

Trang 32

Hình 21 Thao tác mở rộng/thu hẹp Khi một nút được mở rộng (bên trái), các nút con của nó sẽ được hiển thị, đồng thời, các điểm đích của nút con được di chuyển về vị trí tương ứng Ngược lại, khi một nút bị thu hẹp (bên phải), các cây con của nó sẽ biến mất, đồng thời, các điểm đích trên những cây con được di chuyển về nút bị thu hẹp

Lọc (filter)

Nếu như thao tác phóng to/thu nhỏ cho phép nhà quản trị quan sát tập trung tại khu vực mong muốn với tổn thất là những vùng ở cách xa không được hiển thị, thì thao tác lọc cho phép làm nổi bật khu vực mong muốn nhưng vẫn hiển thị ngữ cảnh xung quanh Vì lẽ đó, nhà quản trị có thể dùng thao tác này để có cái nhìn nhanh chóng về khu vực mình quan tâm

Để làm nổi bật những tấn công mong muốn, nhà quản trị có thể lựa chọn thông qua điểm nguồn trong không gian địa lý, điểm đích trong cây bố cục xuyên tâm, hoặc trực tiếp trên đoạn thẳng nối giữa điểm nguồn và điểm đích Những tấn công được lựa chọn sẽ được hiển thị với màu sắc đặc biệt Cách làm này tạo ra sự phân loại cho phép quan sát những tấn công đó dễ dàng hơn Hình 22 minh họa kết quả của thao tác lọc

Hình 22 Thao tác lọc cho phép làm nổi bật những tấn công mà nhà quản trị quan tâm, đồng thời vẫn hiển thị ngữ cảnh xung quanh

Trang 33

Xem chi tiết

Hệ thống cung cấp thao tác xem chi tiết để nhà quản trị có thể xem toàn bộ dữ liệu mà hệ thống phát hiện xâm nhập thu thập được Thao tác này hữu ích trong trường hợp những thông tin ở mức

độ trừu tượng cao hơn đã hiển thị trước đó không đủ để rút ra kết luận Chẳng hạn, khi nhà quản trị muốn biết giá trị thực sự dùng để tấn công vào ứng dụng web Hình 23 cho thấy kết quả của thao tác này

Hinh 23 Xem chi tiết tấn công Thao tác xem chi tiết cho phép hiển thị toàn bộ dữ liệu thu thập được bởi hệ thống phát hiện xâm nhập

4.4 – Đánh giá

Môi trường thử nghiệm

Tương tự với cách thử nghiệm đã thực hiện ở chương 3, chúng tôi dùng hai công cụ tấn công tự động là Subgraph Vega [11] và OWASP Zed Attack Proxy [12] để tấn công vào ứng dụng web Các tấn công sẽ được ghi nhận bởi hệ thống phát hiện xâm nhập trên ứng dụng web PHPIDS [13]

Do các tấn công được chạy giả lập từ một máy duy nhất, các địa chỉ IP nguồn tấn công đều giống nhau Mặc dù kiểu tấn công này không hiếm gặp trong thực tế, nhóm nghiên cứu muốn xây dựng thêm những trường hợp tấn công đa dạng hơn Vì vậy, chúng tôi đã dùng Tor [22], một công cụ có mục đích chính là bảo vệ tính riêng tư của người duyệt web, để thay thế địa chỉ IP thật của máy tính tấn công bằng địa chỉ IP giả Cách làm này cho phép mô phỏng quá trình tấn công được thực hiện trên nhiều hơn một vị trí

Trang 34

Kết quả thí nghiệm

Giao diện trực quan hóa và tương tác cho phép xem xét tổng quan về toàn bộ các tấn công theo một cách có cấu trúc hơn so với quá trình xem thông thường là duyệt qua từng tấn công một Việc thể hiện địa chỉ IP dưới dạng tọa độ địa lý làm cho người xem dễ hình dung hơn về các điểm xuất phát tấn công Tương tự, việc thể hiện các trang web bị tấn công dưới dạng các nút trong một cây cho thấy được mối quan hệ giữa chúng với nhau theo địa chỉ URL Ngoài ra, những công cụ tương tác người dùng giúp quá trình duyệt qua các tấn công dễ dàng, thuận tiện, và thú vị hơn so với cách duyệt tuyến tính truyền thống

Dựa trên kết quả trực quan hóa khi không có Tor (Hình 24) và khi có Tor (Hình 25), những điểm giống và khác nhau giữa hai công cụ tấn công cũng có thể được xác định Chẳng hạn, tốc độ tấn công của Subgraph Vega cao hơn so với OWASP Zed Attack Proxy Hay một điểm giống nhau giữa chúng là cả hai đều tấn công liên tục vào một trang web, rồi sau đó mới tấn công sang trang

kế tiếp Hơn nữa, nếu xét số lượng tấn công được vẽ ra trong một đơn vị thời gian, cũng có thể dễ dàng nhận biết tấn công được thực hiện bởi công cụ tự động hay bởi con người

Hình 24 Tấn công từ một nguồn Kết quả trực quan hóa đối với Subgraph Vega (bên trái) và OWASP Zed Attack Proxy (bên phải)

Hình 25 Tấn công từ nhiều nguồn Tor được dùng để tạo nhiều địa chỉ IP giả Kết quả trực quan hóa đối với Subgraph Vega (bên trái) và OWASP Zed Attack Proxy (bên phải)

Trang 35

4.5 – Kết luận

Trong nghiên cứu này, chúng tôi đã đề xuất một kỹ thuật trực quan hóa và tương tác nhằm hỗ trợ nhà quản trị quan sát và phân tích các tấn công xảy ra trên ứng dụng web Mặc dù không tự nhận biết các tấn công, kỹ thuật đề xuất cho phép tổ chức và trình bày những tấn công được phát hiện bởi công cụ khác theo một cách hiệu quả cho người xem Điểm mới của kỹ thuật này là hiển thị nguồn tấn công trong không gian địa lý, đích tấn công trong cây bố cục xuyên tâm, và gắn chúng với nhau qua những đoạn thẳng kết nối Song song đó, kỹ thuật này còn bao gồm những chức năng tương tác người dùng nhằm tăng cường hỗ trợ quá trình phân tích Kết quả thực nghiệm đã cho thấy, kỹ thuật này vừa cho phép quan sát, phân tích tấn công dễ dàng hơn, vừa tiết kiệm công sức của nhà quản trị trong quá trình sử dụng

Tuy nhiên, hệ thống này vẫn còn vài hạn chế có thể khắc phục được Trước hết đó là khả năng biểu diễn đối với website lớn và có nhiều tấn công xảy ra Nguyên nhân là trong phiên bản thử nghiệm này, nhóm nghiên cứu chỉ mới chú trọng đến khả năng biểu diễn của giải pháp mà chưa chú trọng đến hiệu suất của giải thuật trực quan hóa Hạn chế thứ hai là phần đánh giá về giải pháp còn mang tính chủ quan do được thực hiện bởi chính nhóm nghiên cứu Vấn đề này có thể được khắc phục phần nào bằng cách dùng những biện pháp đánh giá khác có chi phí thấp như heuristic evaluation [23] hoặc cognitive walkthrough [24] đối với giao diện trực quan hóa Hạn chế thứ ba

là dữ liệu để trực quan do các công cụ tấn công tự động sinh ra, nên còn thiếu tính thực tế Cách khắc phục hạn chế này là thiết lập một website honeypot nhằm thu hút tấn công từ bên ngoài và sử dụng dữ liệu thu được để xây dựng những kịch bản tấn công thực tế hơn

Trang 36

CHƯƠNG 5 – TổNG KếT

Trong quá trình thực hiện đề tài này, nhóm nghiên cứu đã đề xuất, hiện thực, và đánh giá 3 kỹ thuật trực quan hóa khác nhau để hỗ trợ nhà quản trị trong việc quan sát và phân tích những sự kiện bảo mật xảy ra trên ứng dụng web mình quản lý

• Kỹ thuật thứ nhất làm việc trên dữ liệu nhập thô từ người dùng, cung cấp một giao diện cho phép hiển thị hàng nghìn dòng dữ liệu cùng lúc Cơ chế tương tác như sắp xếp và tìm kiếm giúp quá trình phân tích được thực hiện dễ dàng và tiết kiệm thời gian, công sức hơn

• Kỹ thuật thứ hai làm việc trên dữ liệu cung cấp bởi hệ thống phát hiện xâm nhập, cung cấp một giao diện cho phép hiển thị kịch bản tấn công trong không gian và thời gian Qua đó,

có thể dễ dàng hơn trong việc quan sát sự phát triển của một trường hợp tấn công nào đó

• Kỹ thuật thứ ba cũng làm việc trên dữ liệu cung cấp bởi hệ thống phát hiện xâm nhập, nhưng cung cấp giao diện hiển thị tấn công trong không gian địa lý và không gian web Kết quả là việc hiển thị có cấu trúc hơn, nhà quản trị dễ hiểu hơn về những trường hợp tấn công, cũng như khả năng tương tác đa dạng hơn do sự độc lập tương đối giữa các thành phẩn hiển thị

Tuy vậy, những giải pháp mà chúng tôi đưa có những điểm hạn chế chung như sau

• Chưa được thử nghiệm đối với các nhà quản trị bảo mật thực tế Điều này sẽ ảnh hưởng nhiều đến tính thuyết phục của những giải pháp đề xuất

• Những trường hợp tấn công được thực hiện thông qua tấn công giả lập Điều này sẽ khiến cho dữ liệu dùng để thí nghiệm thiếu đi tính thực tế

• Những giải pháp đề xuất được đánh giá chủ yếu về mặt tính năng mà thiếu đi sự đánh giá

về mặt hiệu suất (performance) Trong khi đây là yếu tố quan trọng để những giải pháp đề xuất có thể hoạt động được trong môi trường thực tế

Nếu khắc phục được những hạn chế nêu trên, đề tài sẽ trở nên hoàn thiện hơn Khi đó, những giải pháp đề xuất sẽ có nhiều đóng góp vào bài toán bảo mật ứng dụng web mà hiện nay đang được cộng đồng nghiên cứu cũng như chuyên gia bảo mật quan tâm

Trang 37

TÀI LIỆU THAM KHẢO

[1] Symantec, “Internet Security Threat Report 2014”,

[6] Generatedata, “Generatedata.com”, http://www.generatedata.com/, truy cập 10/2014

[7] Exploit-Me, “Exploit-Me | Security Compass Labs”, me/, truy cập 10/2014

http://labs.securitycompass.com/exploit-[8] Debar, H and Wespi, A (2001), “Aggregation and Correlation of Intrusion-Detection Alerts”, Lee, W., Mé, L and Wespi, A (eds.) RAID 2001, LNCS, Vol 2212, pp 85–103,

Springer, Heidelberg

[9] Ning, P., Cui, Y and Reeves, D.S (2002), “Constructing Attack Scenarios Through

Correlation of Intrusion alerts”, 9th ACM Conference on Computer and Communications

Security, pp 245–254, ACM, New York

[10] Spiliopoulou, M., Mobasher, B., Berendt, B and Nakagawa, M (2003), “A Framework for The Evaluation of Session Reconstruction Heuristics in Web-usage Analysis”, INFORMS Journal

on Computing, Vol 15, pp 171–190

[11] Subgraph, “Subgraph Vega”, http://subgraph.com/products.html, truy cập 10/2014

[12] OWASP, “OWASP Zed Attack Proxy Project”,

https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project, truy cập 10/2014

[13] PHPIDS, “PHPIDS”, http://www.phpids.org, truy cập 10/2014

Trang 38

[14] Poese, I., Uhlig, S., Kaafar, M., Donnet, B and Gueye, B (2011), “IP Geolocation

Databases: Unreliable?”, ACM SIGCOMM Computer Communication Review, Vol 41, pp

53-56

[15] MaxMind, “MaxMind IP Geolocation”, http://www.maxmind.com/, truy cập 10/2014

[16] Google, “Google Static Maps API”,

[19] Jung, “Java Universal Network/Graph Framework”, http://jung.sourceforge.net/, truy cập 10/2014

[20] Eades, P and Wormald, N (1994), “Edge Crossings in Drawings of Bipartite Graphs,”

Algorithmica, Vol 11, pp 379-403

[21] Newton, M., Ondrej, S and Imrich, V (2002), “Two New Heuristics for Two-Sided Bipartite Graph Drawing”, Graph Drawing, Springer Berlin Heidelberg, pp 312-319

[22], Tor, “Tor Project”, https://www.torproject.org/, truy cập 10/2014

[23] Nielsen, J and Molich, R (1990), “Heuristic Evaluation of User Interfaces,” Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp 249-256

[24] Wharton, C., Rieman, J., Lewis, C and Polson, P (1994), “The Cognitive Walkthrough Method: a Practitioner's Guide,” J Nielsen and R Mack (eds.), Usability Inspection Methods, John Wiley & Sons, New York, NY, pp 105-140

Trang 39

PHỤ LỤC P1 – Phụ lục sản phẩm

P1.1 - Bài báo gửi đăng tạp chí thuộc danh mục ISI

Ngày đăng: 23/01/2021, 11:05

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

TÀI LIỆU LIÊN QUAN

w