TÓM TẮT LUẬN VĂN Những công cụ phát hiện tấn công vào ứng dụng web có thể hỗ trợ nhà quản trị trong việc bảo mật.. Trong luận văn này, trực quan hóa thông tin được sử dụng để hiện thị tấ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS ĐẶNG TRẦN KHÁNH
Đồng Nai – Năm 2019
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin chân thành cảm ơn thầy PGS.TS Đặng Trần Khánh đã tận tình
hướng dẫn, chỉ bảo trong suốt thời gian thực hiện luận văn
Xin chân thành cám ơn các thầy cô trong khoa sau đại học của Trường Đại Học Lạc Hồng đã cung cấp những kiến thức quí báu trong suốt quá trình học tập, các thầy cô trong văn phòng khoa đã hết lòng giúp đỡ, tạo điều kiện thuận lợi để tôi hoàn thành luận văn
Xin gửi lời cảm ơn đến những người thân trong gia đình, cùng các anh chị, các bạn trong lớp đã luôn quan tâm giúp đỡ trong suốt thời gian học tập cũng như làm luận văn
Do thời gian làm luận văn còn hạn chế, và kiến thức cũng có hạn, nên luận văn không tránh khỏi những thiếu sót Rất mong nhận được những ý kiến đóng góp của quí thầy cô và các bạn để luận văn được hoàn chỉnh hơn
Xin chân thành cảm ơn!
Đồng Nai, ngày 12 tháng 12 năm 2019
SOK DARAVUTHY
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan rằng kết quả đạt được trong luận văn này là sản phẩm của riêng cá nhân, là kết quả đạt được trong quá trình học tập và nghiên cứu khoa học độc lập Trong toàn bộ nội dung của luận văn, những điều được trình bày là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Không có sản phẩm hay nghiên cứu nào của người khác được sử dụng trong luận văn
mà không có trích dẫn theo đúng quy định
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỹ luật theo quy định cho lời cam đoan của mình
Đồng Nai, ngày 12 tháng 12 năm 2019
SOK DARAVUTHY
Trang 5TÓM TẮT LUẬN VĂN
Những công cụ phát hiện tấn công vào ứng dụng web có thể hỗ trợ nhà quản trị trong việc bảo mật Tuy nhiên, những công cụ này hầu hết tập trung vào việc phát hiện tấn công và chỉ ghi nhận lại kết quả dưới dạng văn bản Kết quả tấn công dạng văn bản lại không phù hợp cho việc theo dõi theo thời gian thực, khi tấn công đang xảy ra Trong luận văn này, trực quan hóa thông tin được sử dụng để hiện thị tấn công vào ứng dụng web dưới dạng đồ họa Mặc dù chỉ được thử nghiệm trong môi trường giả lập, giải pháp trong luận văn đã cho thấy được sự hỗ trợ của mình đối với nhà quản trị Trong tương lai, kết quả của luận văn có thể được thử nghiệm trong môi trường thực để
có sự đánh giá đầy đủ và khách quan hơn
Trang 6MỤC LỤC
LỜI CAM ĐOAN ii
TÓM TẮT LUẬN VĂN iii
MỤC LỤC iv
DANH MỤC HÌNH vi
PHẦN MỞ ĐẦU 1
Tầm quan trọng của ứng dụng web 1
Tình hình bảo mật ứng dụng web 1
Theo dõi sự kiện bảo mật 3
Mục tiêu của luận văn 5
Chương 1 Kiến thức nền tảng 7
1.1 Trực quan hóa thông tin 7
1.1.1 Giới thiệu về trực quan hóa thông tin 7
1.1.2 Phát triển ứng dụng trực quan hóa thông tin 11
1.2 Phát hiện tấn công 14
1.2.1 Giới thiệu về phát hiện tấn công 14
1.2.2 Phương pháp phát hiện tấn công 16
1.2.3 Phát hiện tấn công vào ứng dụng web 17
1.3 Trực quan hóa thông tin cho bảo mật 18
1.3.1 Live Cyber Threat Map của Check Point 21
1.3.2 Digital Attack Map (Google Ideas và Arbor Networks) 23
1.3.3 CyberThreat Real – Time Map của Kaspersky 24
Chương 2 Phân tích thiết kế hệ thống 26
2.1 Mục tiêu của hệ thống 26
Trang 72.2 Thiết kế ánh xạ trực quan 27
2.2.1 Ý tưởng và thiết kế sơ bộ 27
2.2.1 Trực quan hóa nguồn tấn công 28
2.2.2 Trực quan hóa đích tấn công 30
2.2.3 Trực quan hóa tấn công 31
Chương 3 Hiện thực giải pháp 33
3.1 Kiến trúc giải pháp 33
3.2 Xử lý dữ liệu 35
3.3 Xác định tọa độ x, y 37
3.4 Thư viện p5js 39
3.4.1 Tải hình ảnh bản đồ từ Google Maps 39
3.4.2 Đọc dữ liệu tấn công 40
3.4.3 Vẽ các đối tượng cơ bản 41
Chương 4 Thử nghiệm và đánh giá kết quả 42
4.1 Xây dựng môi trường thử nghiệm 42
4.2 Ngữ cảnh ứng dụng 44
4.3 Tấn công giả lập 44
4.4 Thử nghiệm nhiều tấn công 45
Kết luận 48
Trang 8DANH MỤC HÌNH
Hình 0.1 Tấn công vào web theo ngày 2
Hình 0.2 Tấn công vào web theo tháng 2
Hình 0.3 Thống kê lỗi bảo mật trên ứng dụng web 4
Hình 0.4 Dữ liệu thô về sự kiện bảo mật 5
Hình 1.1 Biển báo giao thông là ví dụ cụ thể của trực quan hóa thông tin 8
Hình 1.2 Bản đồ tương tác Google Maps 9
Hình 1.3 Dữ liệu dạng bảng (trái) và đồ thị phân tán (phải) 10
Hình 1.4 Quy trình xây dựng giải pháp trực quan hóa thông tin 12
Hình 1.5 Thuộc tính đồ họa với độ chính xác tăng dần từ dưới lên trên 13
Hình 1.6 Phân loại các hệ thống phát hiện tấn công 15
Hình 1.7 Tấn công theo kiểu SQL injection 18
Hình 1.8 Tấn công theo kiểu Cross – site scripting 19
Hình 1.9 Live Cyber Threat Map của Check Point 21
Hình 1.10 Xem chi tiết một khu vực của Live Cyber Threat Map 22
Hình 1.11 Giao diện của Digital Attack Map 23
Hình 1.12 Giao diện của CyberThreat Real – Time Map 24
Hình 1.13 Hiển thị thống kê của CyberThreat Real – Time Map 25
Hình 2.1 Các đối tượng chính 28
Hình 2.2 Thiết kế sơ bộ 28
Hình 2.3 Cấu trúc của một tấn công 29
Hình 2.4 Thông tin tấn công với địa chỉ ip (cột thứ nhì) 29
Hình 2.5 Ý nghĩa kinh độ (Longitude) và vĩ độ (Latitude) 30
Hình 2.6 Dùng cây phân cấp để thể hiện địa chỉ URL 31
Hình 2.7 Biểu diễn tấn công bằng kết nối 32
Hình 3.1 Biểu diễn tấn công bằng kết nối 33
Hình 3.2 Phép chiếu Mercator 38
Hình 3.3 Chuyển đổi từ kinh, vĩ độ sang tọa độ x, y 38
Hình 3.4 Tải và vẽ bản đồ 40
Trang 9Hình 3.5 Vẽ cây biểu diễn ứng dụng web 41
Hình 4.1 Bảng điều khiển của XAMPP 43
Hình 4.2 Trực quan hóa một số tấn công thực hiện thủ công 45
Hình 4.3 Kết quả khi có 5 tấn công xảy ra cùng lúc 46
Hình 4.4 Kết quả khi có 10 tấn công xảy ra cùng lúc 47
Trang 10PHẦN MỞ ĐẦU
Tầm quan trọng của ứng dụng web
Ngày nay, ứng dụng web được sử dụng phổ biến trong đời sống con người với nhiều mục tiêu khác nhau Trên thế giới, có những trang web nổi tiếng mà hầu như ai cũng biết đến như là Google để tìm kiếm thông tin, Facebook để kết nối bạn bè và xây dựng mối quan hệ, Amazon để mua sách và các sản phẩm khác, hay Ebay để mua và bán trực tiếp đến những người khác, v.v… Ở Việt Nam, số lượng những trang web nổi tiếng cũng không ít Chẳng hạn như các trang tin tức VNExpress, TuoiTre, ThanhNien, v.v… hay các trang bán hàng thương mại điện tử như Lazada, Tiki, Shopee, v.v… Không chỉ được xây dựng và triển khai bởi các tổ chức lớn, ứng dụng web còn được sử dụng bởi cá nhân, công ty, hoặc tổ chức vừa và nhỏ để giới thiệu sản phẩm, dịch vụ mà mình cung cấp ra bên ngoài Có thể nói, hiện nay, hầu như tổ chức nào cũng trang bị website cho riêng mình Chẳng hạn trường Đại Học Lạc Hồng cũng đã có trang web riêng cho mình từ lâu Việc sở hữu trang web riêng ngày nay không còn là tùy chọn mà
đã trở thành bắt buộc
Với sự triển khai rộng rãi như vậy, thì làm sao để ứng dụng web hoạt động an toàn là một đòi hỏi cấp thiết Đảm bảo ứng dụng web hoạt động an toàn không chỉ là vấn đề liên quan đến công nghệ thông tin, mà đó còn là vấn đề về bộ mặt và uy tín của
tổ chức sở hữu ứng dụng web đối với những người bên ngoài
Trang 11Hình 0.1 Tấn công vào web theo ngày
Hình 0.2 Tấn công vào web theo tháng
Không chỉ là một trong những mục tiêu bị tấn công hàng đầu, ứng dụng web còn
là một trong những nền tảng có số lượng lỗi bảo mật hàng đầu Những lỗi bảo mật trên ứng dụng web thông thường là do việc viết chương trình không tốt gây ra Chẳng hạn khi lập trình viên không kiểm tra dữ liệu đầu vào một cách đầy đủ, thì hacker có thể nhập vào những giá trị đặc biệt làm chương trình thực thi theo một cách không lường trước Hình 0.3 là thống kê năm 2018 về các loại lỗi bảo mật trên ứng dụng web, theo báo cáo của công ty edgescan [2]
Để bảo mật ứng dụng web, ngoài việc sử dụng các công cụ ngăn chặn tấn công tự động như Firewall hay IPS thì nhà quản trị còn phải theo dõi những sự kiện bảo mật xảy ra trên ứng dụng web mà mình quản lý Những sự kiện bảo mật này thông thường không thể đánh giá tự động được mà cẩn phải có kiến thức và kinh nghiệm về môi trường thực tế của nhà quản trị Chẳng hạn như xét sự kiện một người đăng nhập sai
Trang 12vào ứng dụng web nhiều lần Nếu như không có kiến thức và kinh nghiệm về người dùng cụ thể, chẳng hạn như tuổi tác, trình độ, sai như thế nào, v.v… mà chỉ đơn thuần dựa trên số lần sai để quyết định rằng sự kiện này có phải là tấn công hay không thì sẽ còn nhiều hạn chế Vì vậy, mặc dù những công cụ tự động chắc chắn mang lại hiệu quả không nhỏ, nhưng chỉ sử dụng công cụ tự động không là chưa đủ, mà còn phải có sự tham gia trực tiếp từ nhà quản trị
Theo dõi sự kiện bảo mật
Khi có một sự kiện bảo mật xảy ra, nhà quản trị cần phải có thông tin về sự kiện
đó Xét một trong những máy chủ web phổ biến nhất trên thế giới hiện nay là Apache1, thì các sự kiện được lưu trong file log có định dạng tương tự như Hình 0.4
Như được minh họa trong Hình 0.4, việc theo dõi những sự kiện bảo mật dưới dạng thô là một việc làm không dễ dàng Mặc dù dữ liệu thô này cung cấp khá đầy đủ thông tin về sự kiện bảo mật xảy ra, nhưng việc hiểu và liên kết những sự kiện này lại với nhau là không dễ dàng Điều này càng đúng hơn khi việc theo dõi cần phải được thực hiện tức thời theo thời gian thực
1 https://httpd.apache.org/
Trang 13Hình 0.3 Thống kê lỗi bảo mật trên ứng dụng web
Trang 14Hình 0.4 Dữ liệu thô về sự kiện bảo mật
Như vậy, việc theo dõi sự kiện bảo mật xảy ra trên ứng dụng web trong thời gian thực không thể chỉ dựa vào những dữ liệu thô dạng văn bản Thay vào đó, nếu việc hiển thị được thể hiện dưới dạng trực quan sinh động thì công sức và hiệu quả của nhà quản trị sẽ được cải thiện Ngoài ra, việc biểu diễn sự kiện bảo mật còn phải làm sao để làm nổi bật được những tính chất quan trọng của bản thân sự kiện Đó cũng chính là mục tiêu của luận văn này
Mục tiêu của luận văn
Mục tiêu chính của luận văn này là nghiên cứu và xây dựng một giải pháp sử dụng trực quan hóa thông tin để hỗ trợ nhà quản trị theo dõi những tấn công xảy ra trên ứng dụng web theo thời gian thực Ngoài thông tin quan trọng thể hiện dưới dạng trực quan, thì giải pháp cũng phải có cách thức thể hiện thông tin chi tiết dưới dạng văn bản một cách phù hợp Thông tin chi tiết này sẽ giúp nhà quản trị phân tích sâu hơn về những sự kiện mà người này cảm thấy quan trọng
Để đánh giá giải pháp, luận văn sử dụng phương pháp thực nghiệm Cụ thể hơn,
sẽ có người dùng sử dụng giải pháp mà luận văn phát triển trong những kịch bản thử
Trang 15nghiệm Tính hiệu quả của giải pháp sẽ được đánh giá dựa trên cảm nhận của người dùng đó
Một điểm cần lưu ý là giải pháp trong luận văn không có tác dụng thay thế những công cụ tự động Mục tiêu và đóng góp chính của giải pháp là làm cho những tấn công được phát hiện bởi các công cụ tự động trở nên dễ hiểu và hữu ích hơn cho nhà quản trị Do đó, hai cách tiếp cận (phát hiện tấn công tự động và giải pháp trong luận văn) có tác dụng bổ sung và hoàn thiện lẫn nhau
Phần còn lại của luận văn bao gồm những nội dung sau: trong Chương 1, kiến thức nền tảng liên quan sẽ được trình bày; Chương 2 sẽ giới thiệu về cách phân tích và thiết kế giải pháp; phần hiện thực giải pháp được trình bày trong Chương 3; các thí nghiệm và kết quả thí nghiệm được đề cập trong Chương 4; và chương cuối cùng được dùng để kết luận cũng như đề xuất các công việc trong tương lai
Trang 16Chương 1 Kiến thức nền tảng
1.1 Trực quan hóa thông tin
1.1.1 Giới thiệu về trực quan hóa thông tin
Có nhiều cách định nghĩa khác nhau về trực quan hóa thông tin Trong phạm vi của luận văn này, trực quan hóa thông tin được xem là ngành khoa học kỹ thuật nghiên cứu về các nguyên lý, phương pháp và cách thức nhằm biểu diễn thông tin một cách nhanh chóng, dễ dàng và hiệu quả dưới dạng hình ảnh đến người xem Nói cách khác, trực quan hóa thông tin là việc tạo ra hình ảnh và giao diện để truyền tải các thông điệp đến người xem
Một trong những ích lợi rõ ràng nhất của trực quan hóa thông tin là có thể biểu diễn một lượng lớn thông tin một cách nhanh chóng Nguyên nhân là do hình ảnh có thể được sử dụng khá hiệu quả trong truyền thông cũng như trong giao tiếp giữa con người với nhau Thông qua hình ảnh, con người nhanh chóng nhận ra ý nghĩa trong đó
mà không phải tốn nhiều thời gian và công sức xem xét chi tiết Một ví dụ cụ thể nhất
là các biển báo giao thông (Hình 1.1) Những biển báo giao thông sử dụng hình dạng, kích thước, và màu sắc để giúp người lái xe nhanh chóng nhận ra cảnh báo mà không cần phải tốn nhiều thời gian đọc và xử lý chính xác Không chỉ vậy, việc sử dụng biển báo giao thông một cách nhất quán còn giúp người lái xe hiểu được ý nghĩa của chúng khi lưu thông tại các quốc gia mà họ không biết ngôn ngữ tại đó Song song với biển báo giao thông, một trường hợp tương tự là bản đồ giao thông Bản đồ giao thông giúp con người có thể xác định hành trình của mình từ nơi bắt đầu đến nơi kết thúc một cách
dễ dàng so với dùng văn bản Mặc dù người sử dụng có thể không nhớ được một cách chính xác hành trình của mình với bản đồ giao thông, nhưng họ vẫn có được một sự ước lượng tương đối về khoảng cách hay số lượng giao lộ cần phải đi qua trước khi đến đích mong muốn
Trang 17Hình 1.1 Biển báo giao thông là ví dụ cụ thể của trực quan hóa thông tin
Khi trực quan hóa thông tin được triển khai trên máy tính, thì nó sẽ có thêm một tính chất hữu ích khác nữa, đó là khả năng tương tác Nếu như khi hiển thị trên giấy, hình ảnh trực quan là cố định, thì khi hiển thị trên máy tính, hình ảnh có thể thay đổi theo thời gian cho phù hợp với nhu cầu của người sử dụng Xét lại ví dụ bản đồ giao thông, nếu như bản đồ ấy là trên giấy, thì người sử dụng phải ghi nhớ các cung đường, các ngã rẽ để đi đến đích cần thiết Việc ghi nhớ này mặc dù không phải quá khó, nhưng cũng phần nào làm cho người sử dụng mệt mỏi Trong khi đó, nếu như bản đồ
Trang 18được biểu diễn trên máy tính (hay các thiết bị điện tử khác) thì việc dẫn đường sẽ trở nên thuận tiện hơn nhiều: vị trí trung tâm bản đồ sẽ tự động cập nhật theo vị trí của người dùng khi họ di chuyển, các chỉ dẫn rẽ trái rẽ phải sẽ được thể hiện tại thời điểm thích hợp, những cảnh báo nguy hiểm hay chú ý sẽ được làm nổi bật v.v… Hình 1.2 là minh họa về bản đồ tương tác Google Maps2
Hình 1.2 Bản đồ tương tác Google Maps
Một ích lợi khác của trực quan hóa thông tin là khả năng hỗ trợ khám phá tri thức Khả năng này thường có được khi trực quan hóa thông tin được xây dựng với chức năng tương tác Việc khám phá tri thức được thực hiện thông qua việc duyệt qua dữ liệu trực quan Việc duyệt dữ liệu trực quan không chỉ là duyệt tuyến tính theo một chiều, mà còn có thể là gom nhóm, hoặc xem chi tiết, v.v… giúp làm sáng tỏ dữ liệu bên dưới Xét trường hợp minh họa trong Hình 1.3: dữ liệu được thể hiện dưới dạng bảng và dưới dạng đồ thị phân tán Bằng cách lựa chọn các trục tọa độ khác nhau cho
2 https://maps.google.com
Trang 19đồ thị phân tán (quá trình duyệt), người xem có thể có được một hệ trục tọa độ mà mối liên hệ giữa các đối tượng trong bảng bên trái được thể hiện rõ
Hình 1.3 Dữ liệu dạng bảng (trái) và đồ thị phân tán (phải)
Những ích lợi mà trực quan hóa thông tin mang lại cho người xem là nguyên nhân chính làm cho chúng ngày càng được ứng dụng rộng rãi So với cách hiển thị văn bản truyền thống, công cụ trực quan hóa thông tin tạo ra hiệu quả đáng kể hơn, đặc biệt
là cho mục tiêu theo dõi và phân tích dữ liệu Sở dĩ có điều này, vì hệ thống thị giác của con người có khả năng xử lí hình ảnh hiệu quả hơn so với văn bản Con người có thể quét, ghi nhớ hình ảnh một cách nhanh chóng Ngoài ra, hệ thống thị giác con người còn có khả năng nhận dạng mẫu, cũng như có thể phát hiện những thay đổi trong kích thước, màu sắc, hình dạng, chuyển động và kết cấu hiệu quả
Một số ích lợi khác của trực quan hóa thông tin, theo Raffael Marty [3], bao gồm:
Trả lời câu hỏi: Hình ảnh có thể giúp người xem trả lời những câu hỏi liên quan đến tập dữ liệu dùng trong trực quan hóa
Đặt ra câu hỏi mới: Hình ảnh trực quan hóa có thể giúp người xem nhận dạng các tình huống đặc biệt, từ đó có thể đưa ra các câu hỏi “tại sao” về
dữ liệu
Trang 20 Khám phá (exploration): Hình ảnh trực quan cho phép duyệt qua dữ liệu bên dưới một cách thuận tiện, và qua đó giúp khám phá thêm về bản thân
dữ liệu
Hỗ trợ cho các quyết định: Hình ảnh giúp phân tích một lượng lớn dữ liệu nhanh chóng Ngoài ra, việc biểu diễn dưới dạng hình ảnh còn giúp thể hiện ý nghĩa của dữ liệu rõ ràng hơn Những điều này góp phần hỗ trợ việc
ra quyết định của người xem
Hiệu quả truyền đạt thông tin: Trong cùng một đơn vị thời gian, hình ảnh
có thể truyền đạt lượng thông tin nhiều hơn so với văn bản
Truyền cảm hứng: Việc quan sát và khám phá dữ liệu dạng hình ảnh thông qua tương tác là một quá trình thú vị hơn so với việc xem xét những bảng
số liệu tĩnh
1.1.2 Phát triển ứng dụng trực quan hóa thông tin
Trong luận văn này, quy trình xây dựng giải pháp trực quan hóa thông tin được dựa theo tài liệu [4] Các bước chính của quy trình này là:
1 Thu thập dữ liệu thô
2 Tiền xử lý và chuẩn hóa dữ liệu
3 Ánh xạ từ dữ liệu sang hình ảnh
4 Tạo khung nhìn
5 Tương tác với người dùng
Hình 1.4 dưới đây thể hiện mối liên hệ giữa các bước trong quy trình trực quan hóa thông tin dùng trong luận văn này
Trang 21Hình 1.4 Quy trình xây dựng giải pháp trực quan hóa thông tin
Thu thập dữ liệu thô (raw data): Dữ liệu là thành phần quan trọng cho giải pháp trực quan hóa thông tin Độ chính xác và hữu ích của giải pháp trực quan hóa thông tin phụ thuộc vào chất lượng và loại dữ liệu thu thập được Chẳng hạn để trực quan hóa các tấn công vào ứng dụng web thì thông tin
về các tấn công cần phải được thu thập Thông tin thu thập được càng đầy
đủ thì có thể biểu diễn tấn công càng chi tiết
Tiền xử lý và chuẩn hóa dữ liệu (preprocessing & transformation): Dữ liệu thô thu thập được có thể chứa một vài sai sót hoặc có thể ở dạng không phù hợp, do đó chúng cần được đưa qua bước tiền xử lý và chuẩn hóa Một vài thao tác ở bước này bao gồm: loại bỏ những thuộc tính không dùng đến, thêm vào những thuộc tính phù hợp thông qua tính toán, hoặc chuyển
dữ liệu từ dạng không có cấu trúc sang dạng có cấu trúc (bảng, cây, đồ thị, v.v )
Ánh xạ từ dữ liệu sang hình ảnh (visual mapping): Bước này quyết định sử dụng thiết kế trực quan nào để biểu diễn dữ liệu đã được chuẩn hóa Có 3 lựa chọn cần được xác định tại bước này: xác định không gian nền để trực quan hóa (hệ trục tọa độ 2 hoặc 3 chiều, hay hệ trục tọa độ cực, v.v ); xác định thành phần đồ họa (điểm, đường, bề mặt, hình khối, v.v ) để biểu diễn đối tượng dữ liệu; và xác định thuộc tính đồ họa (màu sắc, kích thước, hình dạng, độ dày, độ sáng, hướng, v.v ) cho các thành phần đồ họa Mỗi thuộc tính đồ họa có mức độ chính xác khác nhau nên tùy theo nhu cầu mà
Trang 22có thể lựa chọn dùng thuộc tính nào cho từng loại dữ liệu Hình 1.5 thể hiện sự khác nhau về độ chính xác của từng loại thuộc tính đồ họa Qua
đó, có thể thấy được việc lựa chọn thuộc tính đồ họa cần dựa theo nhu cầu
về mức độ chính xác khi biểu diễn Chẳng hạn như thuộc tính màu sắc không nên dùng để thể hiện các giá trị chính xác Nếu muốn biểu diễn chính xác thì nên dùng thuộc tính vị trí Còn nếu chỉ để phân biệt các giá trị khác nhau, thì việc dùng thuộc tính màu sắc là hoàn toàn phù hợp
Hình 1.5 Thuộc tính đồ họa với độ chính xác tăng dần từ dưới lên trên
Tạo khung nhìn (view creation): Sau khi đã quyết định những thiết kế trực quan, bước kế tiếp là hiển thị chúng dưới dạng hình ảnh trong không gian vật lý 2 chiều trên màn hình thiết bị Kết quả của bước này là những gì người dùng thấy được trên màn hình Tuy nhiên, do số lượng đối tượng trực quan hóa có thể rất nhiều nên không phải tất cả chúng đều có thể hiển thị trên màn hình Trong trường hợp này, có thể áp dụng những biện pháp
Trang 23tương tác để hiển thị/che dấu từng đối tượng tùy theo nhu cầu Chẳng hạn khi mới hiển thị, thì chỉ những đối tượng quan trọng là được hiển thị Còn khi người dùng có nhu cầu xem chi tiết thì mới hiển thị những đối tượng liên quan Tương tự, khi người dùng di chuyển chuột, thì những đối tượng
đã ra khỏi khung nhìn sẽ không còn được thấy nữa, và việc xử lý chúng cũng nên bỏ qua để tiết kiệm thời gian CPU
Tương tác với người dùng (interaction & manipulation): Như ở bước tạo khung nhìn đã đề cập, tích hợp tương tác người dùng cho phép những đối tượng phù hợp được hiển thị/che dấu tùy theo nhu cầu của người sử dụng giải pháp trực quan hóa Đối với những hệ thống có rất nhiều dữ liệu, bước này là không thể thiếu vì không gian màn hình thiết bị không thể cùng lúc biểu diễn toàn bộ dữ liệu Ngay cả khi máy tính có khả năng hiển thị toàn
bộ dữ liệu, thì khả năng quan sát và phân tích của người xem cũng có giới hạn và không thể xử lý toàn bộ dữ liệu cùng lúc Do đó, tương tác người dùng nên được thiết kế để phục vụ nhu cầu dữ liệu của người dùng tốt hơn
1.2 Phát hiện tấn công
1.2.1 Giới thiệu về phát hiện tấn công
Phát hiện tấn công hay phát hiện xâm nhập là phần mềm hoặc thiết bị dùng để theo dõi và ghi nhận bất thường xảy ra trên một hệ thống [5] Có nhiều cách để phân loại các hệ thống phát hiện tấn công, chẳng hạn dựa theo chiến thuật phát hiện, dựa theo cách triển khai hệ thống, dựa theo dữ liệu nguồn, v.v… Hình 1.6 [5] trình bày tổng quan về một hệ thống phân loại cho những giải pháp phát hiện tấn công
Dựa theo Hình 1.6, có những phương pháp phân loại hệ thống phát hiện tấn công chính sau đây
Dựa theo cách triển khai hệ thống: Cách phân loại này dựa theo cấu trúc triển khai hệ thống phát hiện tấn công Một vài ví dụ như là triển khai trên một máy, triển khai trên nhiều máy, tập trung hoặc phân tán, v.v…
Trang 24Hình 1.6 Phân loại các hệ thống phát hiện tấn công
Dựa theo dữ liệu nguồn: Cách phân loại này dựa theo phương pháp thu thập dữ liệu nguồn (tập trung hay phân tán), loại dữ liệu nguồn (lấy từ file log, từ log của ứng dụng, từ dữ liệu mạng có dây hoặc không dây), hay thành phần thu thập dữ liệu
Trang 25 Dựa theo thời gian: Cách phân loại này dựa theo độ mịn của thời gian (thu thập liên tục hay gián đoạn), thời điểm phát hiện tấn công (theo thời gian thực hay sau đó), theo cách phản ứng của hệ thống phát hiện (phản ứng thụ động hay phản ứng chủ động)
Dựa theo chiến thuật phát hiện tấn công: Cách phân loại này dựa theo phương pháp phát hiện tấn công (dựa trên dấu hiệu, dựa trên bất thường, hoặc dựa trên đặc tả), theo chiến thuật xử lý dữ liệu (xử lý tập trung hay phân tán), và theo kỹ thuật phát hiện (dựa trên trạng thái hoặc dựa trên sự chuyển đổi trạng thái)
1.2.2 Phương pháp phát hiện tấn công
Như đã trình bày trong phần phân loại ở trên, có 3 phương pháp chính để phát hiện tấn công
Phát hiện dựa trên dấu hiệu (signature – based) [6, 7]: Dấu hiệu là mẫu hoặc chuỗi của tấn công đã biết trước đó Phát hiện dựa trên dấu hiệu hoạt động bằng cách quét qua dữ liệu thu thập được, so sánh dữ liệu này với những dấu hiệu đã biết, xem có sự trùng khớp nào hay không Nếu có thì cảnh báo có tấn công xảy ra Ưu điểm của phát hiện dựa trên dấu hiệu là đơn giản và hiệu quả Khuyết điểm của phương pháp này là không phát hiện được tấn công mới hoặc biến thể của tấn công đã biết; phải cập nhật
cơ sở dữ liệu dấu hiệu tấn công thường xuyên
Phát hiện dựa trên bất thường (anomaly – based) [8, 9]: Khác với phát hiện dựa trên dấu hiệu, phát hiện dựa trên bất thường theo dõi sự khác biệt so với điều kiện hoạt động bình thường của hệ thống Xét ví dụ về thời điểm đăng nhập, nếu có một sự kiện đăng nhập xảy ra tại một thời điểm không gặp trong quá khứ (chẳng hạn đăng nhập vào giữa đêm, trong khi trước đó chỉ đăng nhập trong giờ làm việc) thì phát hiện dựa trên bất thường sẽ xem điều này là tấn công Ưu điểm của phát hiện dựa trên bất thường là có thể phát hiện được những tấn công mới hoặc biến thể của những tấn công đã
Trang 26biết Còn khuyết điểm của phương pháp này là hoạt động bình thường của
hệ thống có thể thay đổi và khi đó phải xây dựng lại những điều kiện hoạt động bình thường để so sánh cho phù hợp
Phát hiện dựa trên đặc tả (specification – based) [10, 11]: Phát hiện dựa trên đặc tả theo dõi sự thay đổi trạng thái của hệ thống dựa theo từng giao thức cụ thể (nên phương pháp này còn có tên gọi là Stateful Protocol Analysis – SPA) để nhận dạng tấn công Điểm khác biệt của phương pháp phát hiện này so với phát hiện dựa trên bất thường là trong khi phát hiện dựa trên bất thường ghi nhận trạng thái bình thường dựa trên tình hình cụ thể của hệ thống, thì phương pháp này ghi nhận điều kiện bình thường dựa theo đặc tả của nhà cung cấp phần mềm hoặc phần cứng ứng với giao thức đang xét Ưu điểm của phương pháp này là có thể theo dõi được trạng thái
và sự thay đổi của trạng thái theo từng giao thức Còn khuyết điểm của phương pháp này là phải tốn nhiều tài nguyên cho việc theo dõi trạng thái, cũng như không phát hiện được những tấn công mà vẫn tuân thủ theo giao thức được cài đặt
1.2.3 Phát hiện tấn công vào ứng dụng web
Mặc dù phát hiện tấn công vào ứng dụng web cũng tuân theo những nguyên lý và cách tiếp cận kể trên, do các đặc thù của ứng dụng web, các kỹ thuật để phát hiện tấn công dành riêng cho ứng dụng web cũng có sự khác biệt nhất định [12] Một số kiểu tấn công phổ biến vào ứng dụng web bao gồm
Chèn (injection): Chèn là kiểu tấn công mà trong đó hacker gửi giá trị được thiết lập đặc biệt đến ứng dụng web để thực thi Nếu ứng dụng web được viết tốt thì giá trị đặc biệt chỉ được xử lý như dữ liệu Nhưng nếu ứng dụng web không xử lý tốt dữ liệu đầu vào, thì khi dữ liệu này chứa mã chương trình, câu lệnh SQL, v.v… chúng sẽ được thực thi bởi ứng dụng web Một loại hình phổ biến nhất của kiểu tấn công chèn là chèn mã SQL (SQL injection) Trong kiểu tấn công này, hacker gửi câu lệnh SQL đến
Trang 27ứng dụng web, ứng dụng web đưa câu lệnh này vào để xử lý nhưng vô tình lại thực thi câu lệnh Do câu lệnh được đưa vào bởi hacker, nên hacker có toàn quyền quyết định câu lệnh sẽ làm gì Hình 1.7 minh họa cách thức SQL injection hoạt động
Hình 1.7 Tấn công theo kiểu SQL injection
Cross-site scripting (XSS): Tương tự với kiểu tấn công SQL injection, kiểu tấn công XSS chèn mã (thường là mã JavaScript thực thi trên trình duyệt) vào ứng dụng web đáng tin nào đó Khi một người dùng khác mở ứng dụng web này lên, mã chèn bởi hacker sẽ được tự động thực thi như là mã của ứng dụng web đáng tin Những mã độc chèn bởi hacker thông thường
sẽ sao chép cookie từ trình duyệt của người dùng, hoặc chuyển người dùng sang một trang web giả mạo nào đó để tiếp tục lừa đảo, đánh cắp thông tin, v.v… Hình 1.8 minh họa kiểu tấn công XSS
1.3 Trực quan hóa thông tin cho bảo mật
Do những ích lợi mà trực quan hóa thông tin mang lại, nên kỹ thuật này đã được
áp dụng để giải quyết nhiều vấn đề khác nhau, trong đó có vấn đề bảo mật hệ thống Bảo mật thông qua trực quan hóa dùng hình ảnh để hỗ trợ con người ra quyết định liên quan đến bảo mật
Trang 28Hình 1.8 Tấn công theo kiểu Cross – site scripting
Đối với việc bảo mật hệ thống thông tin, ngoài việc sử dụng những công cụ tự động như hệ thống phát hiện tấn công hay tường lửa thì vai trò của con người là không thể thiếu Trong số đó phải kể đến vai trò của nhà quản trị hệ thống Nhà quản trị không chỉ phải hiểu rõ về hệ thống mình đang bảo vệ, mà còn phải hiểu rõ về bản chất,
kỹ năng, mục tiêu của hacker đối với hệ thống của mình Để làm được điều này, chỉ với những công cụ tự động thôi là chưa đủ Nhà quản trị còn cần phải có kỹ năng nhận biết, phân tích, tổng hợp từ những sự kiện đơn lẻ để rút ra những thông tin hữu ích Những công việc này (còn được gọi là tác vụ bảo mật) có thể được hỗ trợ ít nhiều thông qua các giải pháp trực quan hóa thông tin phù hợp
Hội nghị chuyên ngành hàng năm về ứng dụng trực quan hóa thông tin trong lĩnh vực bảo mật (IEEE Symposium on Visualization for Cyber Security – VizSec) đã đưa
Trang 29ra một danh sách (chưa hoàn tất) về những khía cạnh trong bảo mật có thể được nâng cao bằng cách áp dụng trực quan hóa thông tin3:
Nâng cao nhận thức và hiểu biết về tình hình bảo mật (Situation awareness and/or understanding)
Xử lý sự cố, bao gồm sắp thứ tự ưu tiên, khám phá, xét tương quan, và phản hồi (Incident handling including triage, exploration, correlation, and response)
Điều tra số (Computer forensics)
Ghi nhận và báo cáo kết quả điều tra (Recording and reporting results of investigations)
Hỗ trợ cấu hình và triển khai bảo mật chủ động (Assisting proactive security configuration and deployment)
Dịch ngược mã nguồn và phân tích mã độc (Reverse engineering and malware analysis)
Quản lý khả năng bị tổn thương (Vulnerability management)
Phân tích nhiều nguồn dữ liệu (Multiple data source analysis)
Phân tích nhu cầu thông tin cho phòng thủ mạng (Analyzing information requirements for computer network defense)
Mô hình hóa hành vi hệ thống và mạng (Modeling system and network behavior)
Mô hình hóa hành vi tấn công và phòng thủ (Modeling attacker and defender behavior)
Nghiên cứu rủi ro và tác động của tấn công trực tuyến (Studying risk and impact
of cyber attacks)
Dự đoán tấn công và mục tiêu trong tương lai (Predicting future attacks or targets)
Ước lượng và giáo dục về bảo mật (Security metrics and education)
Bảo mật phần mềm (Software security)
3 https://vizsec.org/
Trang 30 Bảo mật ứng dụng di động (Mobile application security)
Tính riêng tư và bảo mật mạng xã hội (Social networking privacy and security) Qua danh sách này, có thể thấy được rằng trực quan hóa thông tin đã được nghiên cứu và ứng dụng trong rất nhiều lĩnh vực bảo mật khác nhau Vì vậy, ứng dụng trực quan hóa thông tin để hỗ trợ theo dõi tấn công vào ứng dụng web là một vấn đề hữu ích Dưới đây là một vài giải pháp sử dụng trực quan hóa thông tin để theo dõi các sự kiện bảo mật theo thời gian thực
1.3.1 Live Cyber Threat Map của Check Point
Check Point là một công ty lớn về bảo mật trên thế giới Họ có một website gọi là Live Cyber Threat Map4 để hiển thị những tấn công ghi nhận được trên thế giới theo thời gian thực Hình 1.9 chụp từ giao diện của Live Cyber Threat Map
Hình 1.9 Live Cyber Threat Map của Check Point
Khi có một tấn công xảy ra, trên ứng dụng web của Check Point sẽ vẽ ra một đoạn thẳng kết nối từ điểm nguồn đến điểm đích Điểm nguồn là nơi xuất phát tấn công
và điểm đích là nơi bị tấn công Điểm nguồn và đích là 2 điểm nằm trên một bản đồ thế giới (khu vực giữa của Hình 1.9) Đoạn thẳng vẽ ra dưới dạng chuyển động, làm cho
4 https://threatmap.checkpoint.com