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

Nghiên cứu cải tiến tập luật trong hệ thống giám sát an ninh mạng

82 677 3

Đ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 82
Dung lượng 7,3 MB

Nội dung

Vậy vấn đề đặt ra ở đây đó là người quản trị hệ thống cần có một cái nhìn tổng quát về bức tranh của hệ thống mạng dựa trên việc thu thập dữ liệu vào ra trong hệ thống từ các thiết bị, d

Trang 2

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN NGỌC HÓA

Hà Nội - 2015

Trang 3

LỜI CẢM ƠN

Luận văn Thạc sĩ này được thực hiện tại Đại học Công nghệ - Đại học Quốc gia Hà Nội dưới sự hướng dẫn của TS Nguyễn Ngọc Hóa Xin được gửi lời cảm ơn sâu sắc đến thầy Nguyễn Ngọc Hóa về những ý kiến quý báu liên quan đến các định hướng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi cho tôi trong suốt quá trình nghiên cứu hoàn thành luận văn này Tôi xin được gửi lời cảm ơn đến các thầy,

cô trong Bộ môn Hệ thống Thông tin cũng như Khoa Công nghệ Thông tin đã mang lại cho tôi những kiến thức vô cùng quý giá và bổ ích trong quá trình theo học tại trường

Tôi xin gửi lời cảm ơn tới các đồng chí lãnh đạo đơn vị nơi tôi công tác đã tạo điều kiện và thời gian để tôi có thể hoàn thành chương trình học của mình Bên cạnh

đó tôi xin gửi lời cám ơn tới các đồng nghiệp trong Ban cơ yếu Chính phủ đã tạo điều kiện và giúp đỡ tôi hoàn thành khóa luận này một cách tốt nhất

Cuối cùng tôi cũng xin chân thành cảm ơn đến các học viên cao học khóa K19, K20, K21 đã giúp đỡ tôi trong suốt thời gian học tập

Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định Tôi rất mong nhận được những sự góp ý quý báu của thầy cô và các bạn

Hà Nội, ngày 1 tháng 10 năm 2015

Nguyễn Thị Thu Hằng

Trang 4

TÓM TẮT Ngày nay với sự phát triển mạnh mẽ của Internet đã làm tăng nguy cơ mất an toàn và rò rỉ thông tin Để hạn chế được vấn đề này mỗi hệ thống mạng cần có những biện pháp cụ thể để có thể kiểm soát được tình trạng hiện tại của hệ thống và có những biện pháp đối phó cụ thể khi có tấn công xảy ra Vậy vấn đề đặt ra ở đây đó là người quản trị hệ thống cần có một cái nhìn tổng quát về bức tranh của hệ thống mạng dựa trên việc thu thập dữ liệu vào ra trong hệ thống từ các thiết bị, dịch vụ và ứng dụng đang được sử dụng trong chính hệ thống đó chẳng hạn như: Mail Server, Firewall, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), Anti-Virus,… Những dữ liệu này sau đó sẽ được phân tích đối chiếu với những dấu hiệu, hoặc tập luật có sẵn để đánh giá và đưa ra các cảnh báo chính xác tới người quản trị hệ thống

Tuy nhiên, số lượng nhật ký hệ thống từ các thiết bị, dịch vụ hoặc ứng dụng trong hệ thống là tương đối lớn với nhiều định dạng khác nhau Ngoài ra, do khối lượng nhật ký hệ thống thu được quá lớn nên một số thông tin cảnh báo quan trọng có thể bị bỏ qua dẫn đến sự cố gây mất an toàn thông tin khi không được cảnh báo và xử

lý kịp thời Do đó, cần có một hệ thống để có thể quản lý, tổ chức, theo dõi những hiểm họa gây mất an toàn thông tin có thể xảy ra với hệ thống, từ đó đưa ra các biện pháp đối phó, ngăn chặn nhằm làm giảm các thiệt hại xuống mức thấp nhất có thể Một hệ thống như vậy được gọi là hệ thống giám sát an ninh mạng

Hệ thống giám sát an ninh mạng (GSANM) thực hiện thu thập, quản lý, và phân tích các sự kiện an ninh, sau đó so sánh với các dấu hiệu và tập luật có sẵn nhằm đưa

ra các đánh giá cảnh báo cho người quản trị hệ thống Tuy nhiên, việc cập nhật các tập luật này một cách thường xuyên là một việc làm vô cùng cần thiết, bên cạnh đó việc

bổ sung các định dạng dữ liệu nhật ký mới chưa có cho hệ thống cũng rất quan trọng, nhằm nâng cao hiệu quả cho hệ thống GSANM Do vậy, luận văn này hướng tới mục tiêu chính là nghiên cứu cải tiến tập luật trong hệ thống giám sát an ninh mạng để đưa

ra các cảnh báo tấn công

Trong luận văn này tôi đã tiến hành (i) khảo sát thực tế tập luật hiện có trong hệ thống giám sát tại Ban Cơ yếu Chính phủ; từ đó (ii) tiến hành đề xuất mô hình cải tiến tập luật đã có; và (iii) thử nghiệm mô hình đề xuất cải tiến tập luật với định hướng nâng cao hiệu quả trong khả năng giám sát hệ thống mạng cũng như đưa ra các cảnh báo chính xác tới người quản trị hệ thống

Từ khóa: Giám sát an ninh mạng, Tập luật, SIEM (Security Information and

Event Management)

Trang 5

LỜI CAM ĐOANTôi xin cam đoan luận văn “Nghiên cứu cải tiến tập luật trong hệ thống

giám sát an ninh mạng” là công trình nghiên cứu của cá nhân tôi dưới sự hướng dẫn

của TS Nguyễn Ngọc Hóa, trung thực và không sao chép của tác giả khác Trong toàn

bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu

và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp

Tôi xin chịu mọi trách nhiệm và mọi hình thức kỷ luật theo quy định cho lời cam đoan này

Hà Nội, ngày 1 tháng 10 năm 2015

Nguyễn Thị Thu Hằng

Trang 6

MỤC LỤC

LỜI CẢM ƠN i

TÓM TẮT ii

LỜI CAM ĐOAN iii

MỤC LỤC iv

DANH SÁCH CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT vi

DANH MỤC BẢNG x

MỞ ĐẦU 1

CHƯƠNG I: KHẢO SÁT, ĐÁNH GIÁ HỆ THỐNG GIÁM SÁT AN NINH MẠNG 3 1.1 Tình hình chung 3

1.1.1 Tình hình giám sát an ninh mạng tại một số nước trên thế giới 3

1.1.2 Tình hình giám sát an ninh mạng tại Việt Nam 4

1.2 Hệ thống GSANM đang được triển khai hiện tại 5

1.2.1 Giới thiệu về hệ thống GSANM 5

1.2.2 Các thành phần chức năng của hệ thống GSANM 7

1.2.3 Mô hình của hệ thống GSANM 9

1.3 Giao diện quản lý của hệ thống GSANM 11

CHƯƠNG II: NGHIÊN CỨU MỘT SỐ DẠNG TẤN CÔNG PHỔ BIẾN VÀO ỨNG DỤNG WEB 16

2.1 Các kỹ thuật tấn công phổ biến vào ứng dụng Web 16

2.1.1 Kỹ thuật tấn công Tiêm mã SQL 16

2.1.2 Kỹ thuật tấn công XSS 22

2.1.3 Kỹ thuật tấn công Tràn bộ đệm 31

2.2 Các kỹ thuật tấn công vượt qua Tường lửa ứng dụng web 34

2.2.1 Tường lửa ứng dụng web là gì? 34

2.2.2 Một số phương pháp tấn công vượt các thiết bị Tường lửa ứng dụng web……… 35

CHƯƠNG III: PHƯƠNG PHÁP TRÍCH XUẤT CÁC TRƯỜNG THÔNG TIN QUAN TRỌNG TỪ NHẬT KÝ HỆ THỐNG 39

3.1 Yêu cầu thực tiễn 39

3.2 Giải pháp trích xuất các trường thông tin quan trọng từ nhật ký hệ thống hệ thống……… 40

3.2.1 Mô hình chung 40

3.2.2 Các bước thực hiện 40

Trang 7

CHƯƠNG IV: XÂY DỰNG TẬP LUẬT CẢNH BÁO TẤN CÔNG CHO HỆ

THỐNG GIÁM SÁT AN NINH MẠNG VÀ TRIỂN KHAI THỬ NGHIỆM 52

4.1 Thực trạng hệ thống GSANM tại Ban Cơ yếu Chính phủ 52

4.2 Các luật sẽ bổ sung vào hệ thống GSANM 53

4.3 Các bước tạo luật cho hệ thống GSANM 55

4.4 Thực nghiệm triển khai hệ thống GSANM tại TTCNTT&GSANM 62

4.4.1 Mô hình thực nghiệm 62

4.4.2 Thu thập nhật ký hệ thống 63

4.5 Kết quả thực nghiệm 64

KẾT LUẬN CHUNG 69

TÀI LIỆU THAM KHẢO 70

Trang 8

DANH SÁCH CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT

TTCNTT & GSANM Trung tâm Công nghệ Thông tin & Giám sát an ninh mạng

Trang 9

URL Unifrom Resource Locator

Trang 10

DANH MỤC HÌNH VẼ

Hình 1.1: Các thành phần của hệ thống GSANM 8

Hình 1.2: Mô hình hệ thống GSANM phân tán 9

Hình 1.3: Mô hình hệ thống GSANM độc lập 11

Hình 1.4: Tap Dashboard 11

Hình 1.5: Tap Offenses 12

Hình 1.6: Tap Log Activity 12

Hình 1.7: Network Activity 13

Hình 1.8: Tap Asset 13

Hình 1.9: Tap Report 14

Hình 1.10: Tab Admin 14

Hình 2.1: Ví dụ về một trang Web mua sắm trực tuyến 23

Hình 2.2: Minh họa trang web có lỗi XSS 24

Hình 2.3: Thông điệp lỗi tự động được tạo ra 25

Hình 2.4: Các bước thực hiên tấn công Reflected XSS 26

Hình 2.5: Các bước thực hiện Stored XSS 28

Hình 2.6: Các bước thực hiện tấn công DOM-Based XSS 31

Hình 2.7: Ví dụ mô tả tràn bộ đệm Heap 34

Hình 3.1: Mô hình trích xuất các trường thông tin quan trọng từ nhật ký hệ thống 40

Hình 3.2: Giao diện của Adaptive Log Exporter 41

Hình 3.3: Định dạng mẫu chung của log 45

Hình 3.4: Kết quả thực hiện cú pháp tìm tên sự kiện FTP 47

Hình 3.5: Kết quả thực hiện cú pháp tìm địa chỉ IP nguồn 47

Hình 3.6: Xác định tên sự kiện 48

Hình 3.7: Xác định các thông tin cụ thể khác cho nhật ký hệ thống 49

Hình 3.9: Log mới đã được định dạng 50

Hình 3.10: Thêm định dạng mới vào hệ thống GSANM 50

Hình 4.1: Các luật hiện có trong hệ thống 52

Hình 4.2: Các tập luật có sẵn của hệ thống GSANM 53

Hình 4.3: Xác định lưu lượng của các thiết bị, và toàn bộ lưu lượng mạng của hệ thống từng phút 54

Hình 4.4: Các bước cải tiến tập luật cho hệ thống 55

Hình 4.5: Cấu hình ghi nhật ký hệ thống cho Web IIS 6.0 56

Hình 4.6: Cấu hình thu thập nhật ký hệ thống trên hệ thống GSNAM 57

Trang 11

Hình 4.7: Nhật ký hệ thống được hiển thị theo thời gian thực 57

Hình 4.8: Các thông số khác của nhật ký hệ thống 58

Hình 4.9: Khai báo máy chủ vào phần Web Server 58

Hình 4.10: Phân thích payload thu được và xác đinh dấu hiệu tấn công 59

Hình 4.11: Các bước tạo luật 60

Hình 4.12: Xác định các tham số cho luật 60

Hình 4.13: Định lượng mức độ rủi ro của luật và các tham số khác 61

Hình 4.14: Kết thúc quá trình tạo luật 61

Hình 4.15: Mô hình thực nghiệm 62

Hình 4.16: Nhật ký hệ thống thu thập được từ máy chủ web 63

Hình 4.17: Payload được hệ thống GSANM thu thập được 64

Hình 4.19: Các tập luật được đưa vào hệ thống GSANM 65

Hình 4.20: Cảnh báo hiện tượng bất thường và các tấn công vào hệ thống mạng đang được giám sát 65

Hình 4.21: Các cảnh báo tấn công khác mà hệ thống GSANM thu được 66

Hình 4.22: Nhật ký hệ thống các cảnh báo thu được 66

Hình 4.23: Hệ thống đưa ra cảnh báo tấn công LFI 67

Hình 4.24: Hệ thống đưa ra các cảnh báo các tấn công khác 67

Trang 12

DANH MỤC BẢNG

Bảng 3.1: Nhãn thông tin quan trọng 46 Bảng 3.2: Cú pháp lọc cơ bản trong Regex 48 Bảng 4.1: Bảng mô tả các tấn công 55

Trang 13

MỞ ĐẦU

Với sự phát triển mạnh mẽ của Internet và World Wide Web đã đặt ra nhiệm vụ đảm bảo an toàn thông tin cho các hệ thống mạng của các cơ quan, tổ chức nhằm tránh khỏi những hiểm họa mất an toàn thông tin trước những tấn công mạng có thể xảy ra

Để có thể làm việc này các cơ quan, tổ chức phải có một hệ thống giám sát an ninh mạng đủ mạnh nhằm kiểm soát, thu thập toàn bộ lưu lượng dữ liệu vào ra cho cả một

hệ thống mạng và đưa ra những cảnh báo chính xác tới người quản trị hệ thống khi có tấn công xảy ra

Việc giám sát an ninh mạng hiện nay đã được các quốc gia trên thế giới vô cùng quan tâm và nó có vai trò sống còn cho an ninh quốc gia Trong đó, Mỹ là quốc gia đi tiên phong cho lĩnh vực giám sát an ninh mạng trên toàn cầu Ngoài ra, các quốc gia láng giềng bên cạnh nước ta như Hàn Quốc, Trung Quốc cũng xem đây là một nhiệm

vụ tối mật cho quốc phòng an ninh Tại Việt Nam, trong những năm gần đây giám sát

an ninh mạng cũng được xem là một nhiệm vụ trọng yếu được các cơ quan cấp bộ, ban, ngành vô cùng quan tâm và thực hiện công việc này một cách tích cực

Tuy nhiên, để có thể thực hiện tốt được nhiệm vụ này đòi hỏi phải có một chính sách giám sát an ninh mạng cả chiều rộng lẫn chiều sâu cộng với các thiết bị giám sát

an ninh mạng hiện đại Một hệ thống giám sát an ninh mạng tốt cần phải thu thập được tất cả các nhật ký vào ra của hệ thống, sau đó thực hiện phân tích những dữ liệu này,

và dựa trên những dấu hiệu hoặc tập luật sẵn có để đưa ra cảnh bảo tới người quản trị

Trong luận văn này tôi nghiên cứu về hệ thống giám sát an ninh mạng hiện tại đang được triển khai, nghiên cứu các kỹ thuật tấn công phổ biến vào ứng dụng Web, nhằm đưa ra các dấu hiệu tấn công để thiết kế tập luật phù hợp với từng hệ thống mạng, nghiên cứu cách thức trích xuất các trường thông tin quan trọng từ dữ liệu nhật

ký và xây dựng bổ sung cũng như chỉnh sửa các tập luật cho hệ thống GSANM Cuối cùng tôi tiến hành thực nghiệm triển khai hệ thống giám sát an ninh mạng tại đơn vị

Trang 14

Trung tâm Công nghệ thông tin và Giám sát an ninh mạng (TTCNTT&GSANM) tại Ban Cơ yếu Chính phủ để đánh giá hiệu quả của các tập luật đã đƣợc thiết kế

Trang 15

CHƯƠNG I: KHẢO SÁT, ĐÁNH GIÁ HỆ THỐNG GIÁM SÁT AN NINH

MẠNG 1.1 Tình hình chung

Thuật ngữ ―Giám sát an ninh mạng‖ (GSANM) không phải là mới nhưng có lẽ

nó vẫn còn xa lạ hoặc chưa được nhiều người biết đến Trong những thập niên trở lại đây, công nghệ thông tin phát triển một cách nhanh chóng, song song với các sáng tạo công nghệ nhằm giúp con người phát triển thì luôn tồn tại nhiều mặt trái của nó Các vấn đề còn tồn tại chính là các hiểm họa mất cắp thông tin quan trọng liên quan đến danh tiếng, tiền bạc, hoặc chỉ với mục đích giải trí,… do những kẻ tấn công thực hiện thông qua môi trường Internet

Theo báo cáo thường niên hàng năm về các hiểm họa an toàn Internet của hãng Symantec trong năm 2013-2014 đã thống kê dựa trên dữ liệu địa lý của dạng tấn công thông qua môi trường Interner liên quan đến mã độc, spam zombie, phishing host, máy tính nhiễm botnet, nguồn gốc tấn công mạng, nguồn gốc tấn công Web cho biết: Mỹ là quốc gia đứng đầu với 20.7 % về các hoạt động tấn công liên quan đến mã độc Tiếp sau đó là Trung Quốc, Ấn Độ, và Việt Nam đứng thứ 9 trong bảng xếp hạng này với 2.4% Cũng theo thống kê trên về các tấn công liên quan đến spam zombie thì Việt Nam là quốc gia xếp đầu tiên với 10.1%, tiếp sau đó là các nước như Hà Lan, Iran, Nga, Đức,… Liên quan đến các tấn công phishing host thì Mỹ là quốc gia xếp thứ nhất với 46.6%, trong đó Trung Quốc là quốc gia đứng đầu tiên với 16.5% các máy tính nhiễm botnet Ngoài ra Mỹ là nước đứng đầu với 21.1% các tấn công Web và Trung Quốc lại là nước đứng đầu với liên quan tới các tấn công mạng với 28.7% [1]

1.1.1 Tình hình giám sát an ninh mạng tại một số nước trên thế giới

Khi các hoạt động kinh tế, giáo dục, chính trị, quân sự hiện nay trên toàn thế giới đều dựa vào hệ thống mạng và kết nối Internet thì nguy cơ dẫn đến cuộc chiến tranh liên quan đến không gian mạng giữa các quốc gia đang dần được kích hoạt Nhận thấy những hiểm họa tiềm ẩn xuất phát từ Internet này mà các quốc gia trên thế giới đã và đang thành lập các lực lượng phản ứng phòng chống và tác chiến mạng

Trong đó Mỹ là quốc gia đã tập trung vào lĩnh vực an ninh mạng từ những năm

1990 Chịu trách nhiệm cho lĩnh vực này gồm có Bộ An ninh nội địa (Department of Homeland Security), Cục điều tra liên bang FBI (Federal Bureau of Investigation), Bộ Quốc phòng Mỹ (Department of Defense) và US Cyber Command Bộ An ninh nội địa

có trách nhiệm chính trong việc bảo đảm an ninh trong nước Đơn vị National Cyber Security Division của Bộ An ninh Nội địa được giao nhiệm vụ ―hợp tác làm việc với các cơ quan nhà nước, tư nhân và quốc tế để đảm bảo không gian mạng và quyền lợi không gian mạng của nước Mỹ‖ Đơn vị này cũng có một số chương trình để bảo vệ

cơ sở hạ tầng mạng chống lại các tấn công Đơn vị National Cyber Response Coordination Group thuộc đơn vị National Cyber Security Division bao gồm 13 cơ

Trang 16

quan liên bang và có trách nhiệm phối hợp phản ứng liên bang trong sự cố không gian mạng mang tầm cỡ quốc gia Cyber Command, một đơn vị con nằm dưới sự quản lý của Cơ quan chỉ huy chiến lược Hoa Kỳ (US Strategic Command) có trách nhiệm đối phó với các mối đe dọa liên quan đến cơ sở hạ tầng mạng quân sự Các đơn vị thành viên của Cyber Command bao gồm các lực lượng Army Forces Cyber Command, Air Force 24, Hạm đội Cyber Command, và Marine Cyber Command [2], [3]

Tại Anh một lực lượng đặc biệt được thành lập đầu năm 2011 với tên gọi Cyber Security Operations Centre chịu trách nhiệm về cả khả năng tấn công và phòng thủ không gian mạng Trung tâm này thực hiện nhiệm vụ chính là giám sát sự phát triển và tình trạng hiện tại của hệ thống IT chính phủ Anh, phân tích các xu hướng và nâng cao

sự phản ứng lại khi có sự cố mạng xảy ra [2]

Tại Trung Quốc sách trắng về Quốc phòng năm 2004 đã nêu rõ Quân ủy Trung ương Trung Quốc (PLA) xác định PLA Air Force chịu trách nhiệm cho các hoạt động liên quan đến thông tin và hoạt động phản động liên quan đến thông tin Cục 4 của Tổng cục nhân viên PLA chịu trách nhiệm về các hoạt động phản động liên quan đến điện tử và nghiên cứu phát triển công nghệ chiến tranh thông tin, chịu trách nhiệm về khả năng không gian mạng cho quân đội Cục 3 chịu trách nhiệm cho các tín hiệu thông minh và tập trung vào việc thu thập, phân tích, khai thác thông tin điện tử Cục 3

và 4 cũng tiến hành nghiên cứu các công nghệ tiên tiến về bảo mật thông tin [2], [3]

Sách trắng của Bộ quốc phòng Hàn Quốc năm 2008 đã xác định an ninh mạng

là một thành phần thiết yếu của quốc phòng Năm 2010 sách này cũng vạch ra tấn công mạng là một trong những hiểm họa an toàn phi truyền thống Các đội ứng cứu khẩn cấp đã được thành lập ở mức quân đoàn để giám sát các hệ thống thông tin quốc phòng Trung tâm chiến tranh mạng (Cyber War Center) của Bộ quốc phòng đã được thành lập năm 2010 Mục đích chính của trung tâm này là tăng tính bảo mật cho hệ thống mạng của chính phủ và các thông tin tài chính Bộ quốc phòng cũng tuyên bố tạo ra một đơn vị Cyber Warfare Command độc lập chịu trách nhiệm cho các hoạt động phòng thủ và tấn công trong không gian mạng Hội đồng chiến lược An ninh mạng Quốc gia (National Cybersecurity Strategy Council) là cơ quan điều phối phát triển các chính sách không gian mạng, và được chủ trì bởi người đứng đầu các hoạt động tình báo quốc gia (National Intelligence Service) [2]

1.1.2 Tình hình giám sát an ninh mạng tại Việt Nam

Tại Việt Nam các cơ quan bộ ngành khác nhau chịu trách nhiệm giám sát an ninh mạng cho từng lĩnh vực khác nhau Để thực hiện GSANM yêu cầu và đòi hỏi một

sự đầu tư lớn về con người và vật chất, bên cạnh đó các chuyên gia thực hiện GSANM phải am hiểu và có trình độ kỹ thuật sâu đối với công nghệ thông tin nói chung và các mảng đặc biệt về mạng nói riêng

Trang 17

Bộ Thông tin và Truyền thông thực hiện nhiệm vụ, quyền hạn quy định tại Nghị định số 36/2012/NĐ-CP và Nghị định số 132/2013/NĐ-CP bảo đảm an toàn thông tin cho các hệ thống thông tin và Internet; bảo đảm an toàn thông tin cho các hoạt động ứng dụng và phát triển công nghệ thông tin; phòng, chống thư rác; tổ chức thực hiện chức năng quản lý, điều phối các hoạt động ứng cứu sự cố máy tính trong toàn quốc Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (Vietnam Computer Emergency Response Team - VNCERT) là đơn vị trực thuộc Bộ thông tin – Truyền thông được thành lập ngày 20/12/2005 theo quyết định số 339/QĐ-TTg của Thủ tướng Chính phủ thực hiện chức năng điều phối và tổ chức các hoạt động phản ứng nhanh các sự cố máy tính cho mạng Internet Việt Nam [16]

Bên cạnh đó Bộ Quốc phòng thực hiện quản lý nhà nước về an toàn thông tin trong lĩnh vực quốc phòng Một đơn vị khác chịu trách nhiệm xây dựng, đề xuất ban hành các tiêu chuẩn và quy định kỹ thuật về mật mã trong an toàn và bảo mật thông tin

đó chính là Ban Cơ yếu Chính phủ Bộ Công an chịu trách nhiệm quản lý, kiểm soát, phòng ngừa, phát hiện, ngăn chặn, đấu tranh chống âm mưu, hoạt động lợi dụng hệ thống thông tin gây phương hại đến an ninh quốc gia, trật tự an toàn xã hội và lợi ích của công dân Bộ Công an đã có một số Cục chức năng liên quan tới hoạt động đảm bảo an toàn, an ninh cho hệ thống CNTT của các cơ quan Nhà nước như Cục Công nghệ tin học nghiệp vụ, Cục Phòng chống tội phạm công nghệ cao, Cục An ninh mạng, Cục An ninh thông tin…

Một số tổ chức khác cũng chung tay góp phần đảm bảo an ninh mạng cho quốc gia như: Hiệp hội an toàn thông tin (viết tắt là VNISA) đã ra đời và là tổ chức xã hội nghề nghiệp phi lợi nhuận đầu tiên hoạt động trong lĩnh vực bảo mật thông tin được nhà nước Việt Nam công nhận VNISA tập hợp các cá nhân, tổ chức làm công tác nghiên cứu giảng dạy, ứng dụng và phát triển an toàn thông tin nhằm hướng dẫn thực hiện các chủ trương đường lối của nhà nước trong việc ứng dụng và phát triển kỹ thuật, công nghệ, an toàn thông tin, đưa ra đề xuất, khuyến nghị với cơ quan quản lý nhà nước trong việc xây dựng cơ chế chính sách phát triển ngành [17]

Trung tâm an ninh mạng Bách Khoa, tên đầy đủ là Trung tâm phần mềm và giải pháp an ninh mạng là một trung tâm nghiên cứu của Trường Đại học Bách Khoa Hà Nội Hỗ trợ chuyên môn cho các cơ quan chức năng của Chính phủ trong công tác phòng chống, truy tìm tội phạm tin học tham gia, xây dựng luật pháp về tội phạm tin học Tham gia các hoạt động phòng chống tấn công phá hoại bằng CNTT; Hợp tác với các tổ chức An ninh mạng và Cứu hộ các sự cố máy tính của các nước trên thế giới và trong khu vực trong việc khắc phục sự cố máy tính, chia sẻ thông tin về an ninh thông tin

1.2 Hệ thống GSANM đang được triển khai hiện tại

1.2.1 Giới thiệu về hệ thống GSANM

Trang 18

GSANM là hệ thống được xây dựng nhằm mục đích thu thập, theo dõi, phân tích các sự kiện, dữ liệu ra vào mạng từ đó phát hiện các tấn công mạng và đưa ra cảnh báo cho hệ thống mạng được giám sát Về bản chất đây là hệ thống phân tích sự kiện, luồng dữ liệu mà không tích hợp các giải pháp ngăn chặn vào trong đó Hệ thống này hoạt động độc lập và chỉ thu thập nhật ký hệ thống của các thiết bị, ứng dụng hay các luồng dữ liệu chứ không ảnh hưởng đến chúng Hệ thống GSANM được triển khai tại các hệ thống mạng có độ nhảy cảm cao hoặc có các thông tin cần bảo mật, hoặc cũng

có thể đơn giản chỉ là để theo dõi các diễn biến của mạng [4]

Về cơ bản hệ thống GSANM tuân thủ theo mô hình SIEM (Security Information and Event Management) Đây là mô hình chung cho hệ thống GSANM được sử dụng rất nhiều trên thế giới và các nhà sản xuất các thiết bị GSANM cũng dựa trên mô hình chuẩn này Đối với hệ thống GSANM chức năng chính của nó là sẽ thu thập:

 Các sự kiện an ninh (Securtity Event): Được sinh ra từ các ứng dụng hoặc thiết bị như: Nhật ký hệ thống IIS, Firewall, VPN (Virtual Private Network), IDS (Intrusion Detection System), IPS (Intrusion Prevention System), …

 Bối cảnh hoạt động mạng (Network activity context): Tầng 7 bối cảnh ứng dụng từ lưu lượng mạng và lưu lượng các ứng dụng

 Thông tin hệ điều hành: Tên nhà sản xuất và chi tiết về số phiên bản

 Các nhật ký hệ thống ứng dụng: Kế hoạch nguồn lực doanh nghiệp (Enterprise Resource Planning – ERP), quy trình làm việc, cơ sở dữ liệu ứng dụng, nền tảng quản lý, … [5]

Với mỗi dòng nhật ký hệ thống sinh được tính là một sự kiện, các sự kiên được tính trên giây (EPS), và xử lý các luồng dữ liệu này được tính trên phút (FPM) sau đó

hệ thống sẽ tiến hành phân tích bằng các bộ luật và đưa ra các cảnh báo cần thiết tới nhà quản trị hệ thống

Về mô hình GSNAM được triển khai có hai dạng chính: Dạng phân tán và dạng hoạt động độc lập

 Dạng phân tán (Distributed): Là mô hình mà trong đó có hệ thống xử lý được đặt ở trung tâm GSANM và mọi hoạt động của hệ thống như: Các sự kiện, luồng dữ liệu, …sẽ được xử lý tại trung tâm sau đó được hiển thị lên giao diện Web site Đối với mô hình này thường đòi hỏi một sự đầu tư quy

mô đầu và lực lượng con người phải nhiều mới đủ khả năng để vận hành hệ thống này

 Dạng hoạt động độc lập (All in one): Đây là mô hình mà hệ thống được xây dựng riêng lẻ cho các đơn vị, và không liên quan tới nhau, có nghĩa là hệ thống hoạt động độc lập Các nhật ký hệ thống và luồng dữ liệu được trực tiếp thu thập tại mạng con, sau đó đẩy về thiết bị GSANM và tại đây luồng

Trang 19

dữ liệu sẽ được xử lý Tuy nhiên, mô hình này phù hợp cho các ngân hàng

và đơn vị nhỏ và yêu cầu về đầu tư và lực lượng con người không cao [4],[6]

1.2.2 Các thành phần chức năng của hệ thống GSANM

Các thành phần chính của hệ thống GSANM được mô tả như hình 1.1 Trong đó:

 CONSOLE:

o Là nơi xử lý, lưu trữ các sự kiện an ninh được cảnh báo, các sự kiện này được gửi lên từ Event Processor và Flow Processor Ngoài ra tại đây còn chứa các tập luật xử lý các dữ liệu, CONSOLE có khả năng hoạt động độc lập

o CONSOLE có hai giao diện, giao diện command line giúp người quản trị cấu hình, xử lý các lỗi hệ thống, và giao diện web là nơi hiển thị các cảnh báo cũng như các sự kiện thu thập được Các cảnh báo sẽ được lưu trữ tùy vào cấu hình quản trị trong bao lâu, thường là một năm cho mỗi hệ thống

o Năng lực hoạt động của CONSOLE tùy thuộc vào nhiều yếu tố như: Đường truyền mạng, cấu hình phần cứng, … thông thường hệ thống hoạt động với công suất 1000EPS và 100000FPM Khi hệ thống GSANM được thiết lập và cấu hình thì CONSOLE sẽ tự động cấu hình tương ứng cho các thiết bị khác một cách chủ động sau khi kết nối vào các thiết bị thông qua cổng 22 Từ đó các việc cấu hình các thiết bị trong hệ thống GSANM có thể được thực hiện thông qua CONSOLE bằng hai cách đó là qua giao diện Web với cổng 443 hoặc qua giao diện command line [6]

 EVENT PROCESSOR (EP):

o Đây là nơi xử lý các sự kiện được gửi về từ Event Collector Các sự kiện này sẽ được xử lý thông qua các tập luật tại đây Nếu là cảnh báo hoặc các sự kiện từ các thiết bị an ninh đưa ra cảnh báo thì nó sẽ được gửi thẳng trực tiếp lên CONSOLE để xử lý Nếu là các sự kiện không đưa ra cảnh báo sẽ được lưu trữ tại đây mà không chuyển lên CONSOLE

o Các sự kiện được lưu trữ tùy theo cấu hình của quản trị, thường là ba tháng cho các sự kiện không đưa ra cảnh báo Các nhật ký hệ thống không đưa ra cảnh báo nó sẽ được quản lý qua giao diện web của CONSOLE [6]

Trang 20

FLOW PROCESSOR (FP): Đây là nơi xử lý luồng dữ liệu, FP nhận dữ

liệu từ Flow Collector và xử lý dựa trên các tập luật của FP Sau đó, các cảnh báo sẽ được nó gửi lên CONSOLE còn các sự kiện không đưa ra cảnh báo sẽ được lưu trữ tại FP và được quản lý dựa trên giao diện web của CONSOLE Thời gian lưu trữ các sự kiện này tùy thuộc vào cấu hình thường là ba tháng

Hình 1.1: Các thành phần của hệ thống GSANM

 EVENT COLLECTOR (EC):

o Là nơi thu thập nhật ký hệ thống, tiếp nhận các nhật ký hệ thống từ các thiết bị, hoặc các ứng dụng gửi về Tại đây nhật ký hệ thống sẽ được mã hóa, nén và gửi về EP qua cổng 22 Sau đó nó sẽ được EP phân tích và xử lý

o Đối với EC có rất nhiều phương pháp lấy nhật ký hệ thống khác nhau VD: Cài đặt agent lên các máy tính cần thu thập và gửi nhật ký hệ thống đã được chỉ định về cho EC Tại CONSOLE người quản trị sẽ cấu hình cho EC thu nhận các nhật ký hệ thống từ các agent này Sau

đó các nhật ký hệ thống này sẽ được quản lý dựa trên giao diện web của CONSOLE EC chỉ có khả năng thu thập các sự kiện mà không

có khả năng thu thập các luồng dữ liệu Với một thiết bị, dịch vụ như IIS, thường có khoảng 20 sự kiện trên giây (20 EPS) [7]

Trang 21

 FLOW COLLECTOR (FC): Đây là nơi thu thập các luồng dữ liệu từ

mạng được giám sát FC thường thu nhận luồng dữ liệu từ các switch có chức năng span port của Cisco Sau đó dữ liệu cũng được nén, mã hóa và chuyển về FP xử lý thông qua cổng 22 CONSOLE sẽ cấu hình cho FC lắng nghe ở cổng Ethernet được kết nối với span port để thu thập dữ liệu Khả năng xử lý hiện tại trên hệ thống GSANM đối với FC là 220000FPM [6] Các thiết bị phần cứng EC và FC của hệ thống GSANM có chức năng thu thập nhật ký hệ thống ở dạng ―thô‖ là dạng chưa được phân tích Đối với mỗi thiết bị này người quản trị hệ thống cần cung cấp địa chỉ IP tĩnh public, sau đó việc trao đổi dữ liệu qua hệ thống sẽ được mã hóa, nén lại và gửi tới EP, FP để phân tích và xử lý thông qua cổng 22 CONSOLE sẽ hiển thị dữ liệu lên giao diện web để người quản trị có thể sẽ xem các cảnh báo này thông qua cổng 443

1.2.3 Mô hình của hệ thống GSANM

1.2.3.1 Hệ thống GSANM phân tán

Hình 1.2: Mô hình hệ thống GSANM phân tán

Hệ thống GSANM phân tán được xây dựng theo quy mô lớn về thiết bị và con người Các EC và FC có thể được đặt ở rất nhiều mạng khác nhau, và năng lực hoạt động của hệ thống được tính toán kỹ lưỡng sao cho khả năng xử lý của các thiết bị đáp ứng được nhu cầu hệ thống mà không bị quá tải Để thu thập nhật ký hệ thống từ các thiết bị hay ứng dụng trước hết EC phải kết nối đến các thiết bị hoặc ứng dụng đó Sau

đó tùy theo các dạng ứng dụng hay thiết bị mà cách cấu hình lấy nhật ký hệ thống sẽ

Trang 22

khác nhau Nhưng điều tối thiểu nhất đó là các thiết bị phải được kích hoạt chế độ lưu nhật ký hệ thống

Với các ứng dụng thì các file nhật ký hệ thống đã có định dạng sẵn, chế độ lưu nhật ký hệ thống dễ dàng được kích hoạt và lưu vào một thư mục nào đó trên máy tính

EC sẽ được cung cấp tài khoản, trao quyền truy cập vào thư mục và đọc các nhật ký hệ thống đó, sau đó nhật ký hệ thống này sẽ được chuyển về EC Tuy nhiên, có những thiết bị không cho phép thu thập nhật ký hệ thống như cách trên VD: Firewall Checkpoint, IPS, … thì các thiết bị này luôn có các tính năng ―forward log‖ cho server nên khi cấu hình thu thập nhật ký hệ thống người quản trị buộc phải sử dụng phương pháp này

Đối với FC, thiết bị này sẽ được kết nối vật lý với các switch hỗ trợ span port

và dữ liệu sẽ được gửi về FC thông qua span port Nhật ký hệ thống sau khi được EC

và FC thu thập sẽ được nén, mã hóa và gửi về cho EP và FP tương ứng thông qua giao thức SSH cổng 22, các nhật ký hệ thống này được xử lý tại EP và FP và gửi lên CONSOLE những cảnh báo cần thiết, CONSOLE sẽ hiển thị chúng lên giao diện web thông qua cổng 443

Như vậy hệ thống GSANM phân tán là một quá trình xuyên suốt từ việc thu thập nhật ký hệ thống hay luồng dữ liệu tới EC, FC sau đó nhật ký hệ thống được chuyển tiếp về EP và FP rồi gửi đến CONSOLE và hiển thị lên giao diện web Toàn

bộ quá trình này đều được nén và mã hóa để đảm bảo không bị lộ khi có tấn công xảy

ra Một đặc điểm đáng chú ý khác nữa là khi kết nối giữa các thiết bị được thiết lập thì toàn bộ hệ thống được cấu hình qua thiết bị CONSOLE trên giao diện web hoặc giao diện command line

1.2.3.2 Mô hình hệ thống GSANM hoạt động độc lập (All in one)

Mô hình hệ thống GSANM độc lập chỉ có một thiết bị duy nhất đó là CONSOLE (All in One) Nhật ký hệ thống và luồng dữ liệu được gửi trực tiếp lên thiết

bị này mà không cần thông qua EP, FP, EC, FC CONSOLE có khả năng hoạt động độc lập và có chức năng tương ứng với tất cả các thiết bị kia Do vậy, khi nhật ký hệ thống được gửi về thì CONSOLE sẽ xử lý và trực tiếp hiển thị lên giao diện Web Hệ thống này chỉ thích hợp cho các mạng nhỏ và vừa như các ngân hàng hoặc các doanh nghiệp nhỏ và không cần đầu tư quá lớn về nhân lực và trang thiết bị [6]

Trang 23

Hình 1.3: Mô hình hệ thống GSANM độc lập

1.3 Giao diện quản lý của hệ thống GSANM

Giao diện của hệ thống GSANM cơ bản có 07 thành phần chính sau:

 Dashboard: Là nơi hiển thị dữ liệu dưới dạng biểu đồ giúp cho các chuyên gia

GSANM có cái nhìn tổng quát về toàn bộ hệ thống được giám sát Việc hiển thị dưới dạng đồ thị trực quan ở thời gian thực rất hiệu quả cho việc GSANM Cấu hình thời gian thực để mô tả các biểu đồ này do người quản trị hệ thống lựa chọn

có thể trong vòng một phút Dữ liệu hiển thị dưới dạng bảng hay biểu đồ tùy thuộc mục đích của người quản trị hệ thống

Hình 1.4: Tap Dashboard

Trang 24

 Offenses: Đây là nơi hiển thị các cảnh báo và các nguy cơ có thể bị tấn công, và

quản lý các tập luật cho hệ thống mạng được giám sát Offenses cũng cho phép người quản trị tạo các tập luật mới phù hợp với hệ thống mạng được giám sát Người quản trị có thể tìm kiếm, lọc các cảnh báo tại Offenses theo thời gian, dạng tấn công hoặc theo từng hệ thống mạng cụ thể Việc xử lý hoặc gửi cảnh báo tự động bằng địa chỉ email hay SMS là tính năng không thể thiếu của Offenses Dữ liệu được hiển thị trong phần Offenses có thể được xuất ra dưới dạng file doc, do

đó điều này rất hiệu quả trong việc thực hiện viết các báo cáo

Hình 1.5: Tap Offenses

 Log Activity: Là nơi hiển thị nhật ký hệ thống được thu thập từ Event Collector

cho hệ thống mạng được giám sát Các nhật ký hệ thống này được thu thập và lưu trữ tại Event Processor và Flow Processor, sau đó sẽ được gửi lên CONSOLE và hiển thị qua giao diện web tại Log Activity Tại đây, người quản trị có thể theo dõi dòng dữ liệu nhật ký hệ thống theo thời gian thực, do đó giúp cho người quản trị phát hiện các tấn công có thể xảy ra khi kẻ tấn công mới bắt đầu thực hiện dò quét

và tìm kiếm thông tin

Hình 1.6: Tap Log Activity

Trang 25

Ngoài ra, đây cũng là nơi giúp cho việc tìm kiếm nhật ký hệ thống cũ được lưu trữ trong hệ thống, thực hiện kiểm tra phân tích nhật ký hệ thống, hay phát hiện và định dạng các loại nhật ký hệ thống mới chưa được định dạng, các trường thông tin quan trọng để tạo các luật mới phù hợp cho hệ thống mạng được giám sát

 Network Activity: Tương tự như Log Activity, Network Activity là nơi hiển thị

luồng dữ liệu được gửi về từ Flow Processor và luồng dữ liệu này được phân tích

và kiểm tra tại đây Cũng giống với Log Activity, Network Activity hiển thị luồng

dữ liệu theo thời gian giúp tăng khả năng phát hiện sớm các tấn công vào hệ thống mạng được giám sát So với việc phân tích nhật ký hệ thống thì việc phân tích luồng dữ liệu sẽ vất vả hơn rất nhiều, bởi vì việc định dạng các giao thức và xử lý chúng không đơn thuần như việc xử lý các nhật ký hệ thống được gửi về

Hình 1.7: Network Activity

Asset: Là nơi liệt kê, cập nhật các thiết bị hiện có của các hệ thống mạng được

giám sát, giúp cho việc xác định và phân loại các thiết bị của mạng để tránh các nhầm lẫn khi tạo tập luật, hoặc đưa ra các cảnh báo sai

Hình 1.8: Tap Asset

Trang 26

 Report: Là nơi các cảnh báo được tạo ra dưới các dạng file pdf, doc hay html,

tùy theo mục đích tạo báo cáo của người quản trị hệ thống Ngoài ra, Report cũng

có chức năng thống kê dữ liệu hay tổng hợp số liệu theo thời gian mong muốn Người quản trị có nhiều tùy chọn khác nhau để tạo báo cáo, có thể tạo báo cáo theo các phương pháp thủ công, hoặc theo định kỳ và các báo cáo này có thể được gửi định kỳ qua email cho các tổ chức có hệ thống mạng được giám sát Nguồn dữ liệu cung cấp để tạo báo cáo có thể được tổng hợp từ Log Activity, Offenses hay Network Activity tùy vào mục đích của báo cáo

Hình 1.9: Tap Report

Admin: Là nơi cấu hình từ xa cho các thiết bị trong hệ thống, cấu hình thu thập

nhật ký hệ thống, dò quét, forward log cho hệ thống GSANM hay cấu hình truy cập vào các thư mục đọc nhật ký hệ thống của các ứng dụng sẽ được thực hiện tại đây Ngoài ra, việc phân quyền cho hệ thống GSANM trong tab Admin cũng là một trong những chức năng hết sức cần thiết giúp cho việc hiển thị nhật ký hệ thống và luồng dữ liệu ở các hệ thống mạng riêng biệt Tab Admin cũng là nơi tập trung hiển thị và quản lý thông số cho cả hệ thống mạng

Hình 1.10: Tab Admin

Trang 27

Tổng kết chương 1

Chương này chúng tôi giới thiệu tình hình giám sát an ninh mạng tại một số nước trên thế giới và Việt Nam Đồng cung cấp mô hình giám sát an ninh mạng đang được sử dụng hiện nay, và mô tả chi tiết các thành phần trong hệ thống giám sát an ninh mạng

Chương II sẽ giới thiệu các kỹ thuật tấn công phổ biến vào ứng dụng Web và một số tấn công vượt qua tường lửa ứng dụng Web để làm cơ sở đưa ra các nhận dạng tấn công cũng như thiết kế tập luật cho hệ thống giám sát an ninh mạng ở các chương III, IV, V

Trang 28

CHƯƠNG II: NGHIÊN CỨU MỘT SỐ DẠNG TẤN CÔNG PHỔ BIẾN VÀO

ỨNG DỤNG WEB 2.1 Các kỹ thuật tấn công phổ biến vào ứng dụng Web

2.1.1 Kỹ thuật tấn công Tiêm mã SQL

2.1.1.1 Tổng quan về tấn công Tiêm mã SQL

Tiêm mã SQL là kỹ thuật tấn công dựa vào lỗ hổng của các ứng dụng Web trong quá trình kiểm tra giá trị nhập vào và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để chèn mã khai thác nhằm thực thi các câu lệnh SQL bất hợp pháp Trong đó mã chèn vào được thực thi một cách hợp pháp là do giá trị truyền vào không được lọc, hoặc kiểm soát Khi khai thác lỗ hỗng này thành công, kẻ tấn công có thể insert, update, hoặc delete các giá trị trong bảng cơ sở dữ liệu, hoặc chiếm quyền điều khiển server, Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, My SQL, Oracle, MS Access, …

Khi kẻ tấn công gửi dữ liệu thông qua các form, ứng dụng web sẽ thực hiện và trả về cho trình duyệt kết quả câu truy vấn hay thông báo lỗi có liên quan đến cơ sở dữ liệu Nhờ những thông tin này mà kẻ tấn công biết được nội dung của cơ sở dữ liệu và

từ đó có thể điều khiển toàn bộ hệ thống ứng dụng

Các tấn công có thể được mô tả cụ thể hoá dựa vào mục đích của kẻ tấn công Dưới đây là một số mục tiêu tấn công

 Xác định các tham số có thể bị tiêm: Là kiểu tấn công mà hacker muốn

thăm dò một ứng dụng Web để khám phá các tham số và các trường dữ liệu đầu vào có thể tấn công Tiêm mã SQL

 Thực hiện tìm fingerprint cơ sở dữ liệu: Là kiểu tấn công mà hacker

muốn khám phá kiểu và phiên bản của cơ sở dữ liệu mà ứng dụng Web đang

sử dụng Đối với mỗi loại cơ sở dữ liệu thì việc hồi đáp các truy vấn theo các cách khác nhau và các tấn công khác nhau, thông tin này có thể được sử dụng để ―fingerprint‖ cơ sở dữ liệu đó Sau khi đã biết được loại và phiên bản của cơ sở dữ liệu được ứng dụng Web sử dụng, kẻ tấn công có thể thực hiện các tấn công cụ thể vào cơ sở dữ liệu

 Xác định giản đồ cơ sở dữ liệu: Để trích được dữ liệu từ cơ sở dữ liệu một

cách chính xác, kẻ tấn công thường muốn biết thông tin về các giản đồ cơ

sở dữ liệu, như tên các bảng, tên các cột, và các kiểu dữ liệu Các tấn công

sẽ được tạo ra để thu thập hoặc suy luận các dạng thông tin kiểu này

 Trích dữ liệu: Là các kiểu tấn công sử dụng các công nghệ trích dữ liệu từ

cơ sở dữ liệu Phụ thuộc vào các kiểu ứng dụng Web, thông tin này có thể là nhạy cảm mà kẻ tấn công đang cần đến Đây là kiểu tấn công phổ biến nhất của tấn công Tiêm mã SQL

Trang 29

 Thêm và sửa dữ liệu: Mục đích của các tấn công này là thêm hoặc thay đổi

thông tin trong cơ sở dữ liệu

 Từ chối dịch vụ: Các tấn công dạng này được thực hiện để tắt cơ sở dữ liệu

của ứng dụng Web, do vậy từ chối phục vụ các người dùng khác Các tấn công yêu cầu khoá hoặc xoá các bảng cơ sở dữ liệu

 Bỏ qua quá trình xác thực: Mục đích của các kiểu tấn công này là cho

phép kẻ tấn công bỏ qua các cơ chế xác thực cơ sở dữ liệu và ứng dụng Bỏ qua các cơ chế xác thực có thể cho phép kẻ tấn công chiếm được các đặc quyền và các quyền gắn kết với người dùng ứng dụng khác

 Thực hiện các lệnh từ xa: Là kiểu tấn công cố gắng thực hiện các lệnh từ

xa trên cơ sở dữ liệu Các lệnh này có thể là các thủ tục, hàm lưu trữ mà người dùng cơ sở dữ liệu có thể thực hiện được

 Thực hiện leo thang đặc quyền: Các tấn công dạng này đưa ra lợi thế của

các lỗi thực thi hoặc các sai sót logic trong cơ sở dữ liệu để leo thang các quyền của kẻ tấn công Trái với các tấn công bỏ qua bước xác thực, các tấn công dạng này tập trung vào việc khai thác các quyền người dùng cơ sở dữ liệu

2.1.1.2 Các kiểu tấn công Tiêm mã SQL

a) Tấn công dựa vào tính dư thừa (Tautologies)

Tấn công này thực hiện tiêm mã vào trong một hoặc nhiều câu lệnh điều kiện

để làm cho các câu lệnh này luôn luôn đánh giá là đúng Kết quả của tấn công phụ thuộc vào các kết quả của truy vấn được sử dụng bên trong ứng dụng Kiểu tấn công này thường được sử dụng để vượt qua bước xác thực và trích dữ liệu Kẻ tấn công khai thác trường có thể tiêm mã sử dụng trong điều kiện WHERE của câu truy vấn Biến đổi điều kiện này thành điều kiện không cần thiết làm cho câu truy vấn thực hiện trả lại tất cả các dòng trong bảng cơ sở dữ liệu

Ví dụ: Kẻ tấn công gửi chuỗi “ ‟ or 1=1 - -” tới trường đăng nhập Khi đó câu

truy vấn là:

SELECT accounts FROM users WHERE

login=‟‟ or 1=1 AND pass=‟‟ AND pin=

Đoạn mã được tiêm vào trong điều kiện (OR 1=1) làm biến đổi toàn bộ mệnh

đề WHERE thành một điều kiện thừa Cơ sở dữ liệu dùng điều kiện đó để đánh giá mỗi dòng và quyết định những dòng nào sẽ trả về cho ứng dụng Bởi vì điều kiện WHERE là điều kiện thừa, nên câu truy vấn luôn đánh giá đúng đối với mỗi dòng trong bảng và trả về tất cả các dòng cho ứng dụng Trong ví dụ này tập dữ liệu được

Trang 30

trả về khác NULL, nên việc xác thực người dùng đã thành công Bởi vậy ứng dụng thực hiện phương thức displayAccounts() và hiển thị toàn bộ các tài khoản được trả về

b) Kiểu tấn công dựa vào truy vấn trái phép/sai logic

Tấn công này cho phép kẻ tấn công thu thập thông tin quan trọng về kiểu và cấu trúc cơ sở dữ liệu back-end của ứng dụng Web Tấn công này được xem như bước thu thập thông tin, tài liệu để hỗ trợ cho các tấn công khác Kiểu tấn công này đưa ra các lỗ hổng bảo mật dựa vào các trang thông báo lỗi mặc định được trả về từ các server ứng dụng Trong thực tế thông báo lỗi được tạo ra thường liên quan đến các tham số mà kẻ tấn công tiêm vào Ban đầu thông tin lỗi thêm vào dự định hỗ trợ cho lập trình viên gỡ rối ứng dụng, sau này kẻ tấn công sử dụng nó để thu thập thông tin về giản đồ của cơ

sở dữ liệu

Khi thực hiện tấn công này kẻ tấn công cố gắng tiêm các lệnh gây ra lỗi cú pháp, lỗi chuyển đổi kiểu hoặc lỗi logic vào cơ sở dữ liệu Trong đó các lỗi cú pháp có thể được sử dụng để xác định các tham số có thể bị tiêm, các lỗi định kiểu có thể được

sử dụng để suy luận ra kiểu dữ liệu của các cột hoặc để trích dữ liệu, và các lỗi logic thường liên quan đến tên của các bảng và cột

Ví dụ: Kẻ tấn công thực hiện tấn công này nhằm gây ra lỗi khi chuyển đổi kiểu

dữ liệu Để thực hiện điều này, kẻ tấn công tiêm đoạn lệnh sau vào trường pin:

“convert(int,(select top 1 name from sysobjects where xtype=‟u‟))”

Và kết quả của truy vấn sẽ như sau:

SELECT accounts FROM users WHERE login=‟‟ AND

pass=‟‟ AND pin= convert (int,(select top 1 name from

sysobjects where xtype=‟u‟))

Trong chuỗi tấn công này, câu truy vấn cố gắng trích bảng người dùng đầu tiên (xtype=‘u‘) từ bảng metadata của cơ sở dữ liệu Giả sử hệ quản trị cơ sở dữ liệu dùng trong ví dụ này là Microsoft SQL Server, thì các bảng metadata được gọi là sysobjects Sau đó truy vấn này chuyển đổi tên bảng thành một số nguyên Do việc chuyển đổi kiểu này không được phép nên cơ sở dữ liệu sẽ đưa ra thông báo lỗi Đối với Microsoft SQL Server, lỗi này sẽ là ―Microsoft OLE DB Provider for SQL Server (0x80040E07) Error converting nvarchar value ‘CreditCards‘ to a column of data type int.‖

Như vậy kẻ tấn công sẽ thu thập được hai thông tin có ích Đầu tiên, kẻ tấn công có thể biết đây là cơ sở dữ liệu SQL Server Thứ hai thông báo lỗi liên quan đến giá trị của chuỗi gây ra lỗi khi chuyển đổi kiểu Trong trường hợp này, giá trị này là tên của bảng được định nghĩa trong cơ sở dữ liệu là ―CreditCards‖ Sử dụng thông tin

về giản đồ của cơ sở dữ liệu, kẻ tấn công có thể mở rộng các tấn công và mục tiêu là các mẩu thông tin cụ thể

c) Tấn công dựa vào truy vấn kết hợp

Trang 31

Kẻ tấn công khai thác các tham số có thể bị tấn công để thay đổi tập dữ liệu được trả về Với kỹ thuật này, kẻ tấn công có thể đánh lừa ứng dụng trả về dữ liệu từ một bảng khác mà không phải từ một bảng mà người phát triển mong muốn Kẻ tấn cống thực hiện điều này bằng cách tiêm một lệnh theo dạng:

UNION SELECT <phần còn lại của truy vấn đã được tiêm >

Kẻ tấn công hoàn toàn kiểm soát truy vấn thứ hai, nên có thể sử dụng truy vấn này để truy xuất thông tin từ một bảng cụ thể Kết quả của tấn công là cơ sở dữ liệu trả lại tập dữ liệu mà là sự kết hợp của kết quả truy vấn thứ nhất và truy vấn thứ hai

Ví dụ: Kẻ tấn công có thể tiêm đoạn đoạn sau:

“‟ UNION SELECT cardNo from CreditCards where acctNo=10032 ”

Vào trường login, và câu truy vấn được tạo ra như sau:

SELECT accounts FROM users WHERE login=‟‟ UNION

SELECT cardNo from CreditCards where

acctNo=10032 AND pass=‟‟ AND pin=

Giả sử rằng không tồn tại đăng nhập với login=―‖, truy vấn thứ nhất trả lại giá trị NULL, trong khi đó câu truy vấn thứ hai trả lại dữ liệu của bảng ―CreditCards‖ Trong trường hợp này, cơ sở dữ liệu sẽ trả lại cột cardNo đối với tài khoản ―10032‖

Cơ sở dữ liệu hợp sẽ kết quả của hai truy vấn này và gửi trả lại cho ứng dụng

d) Kiểu tấn công dựa vào các truy vấn Piggy-backed

Trong tấn công này kẻ tấn công sẽ thử thêm các câu truy vấn mới vào truy vấn ban đầu Tuy nhiên, kẻ tấn công không cố sửa đổi câu truy vấn ban đầu mà thay vào

đó kẻ tấn công tạo thêm các câu truy vấn, tách biệt được mang cùng với truy vấn ban đầu Kết quả là cơ sở dữ liệu nhận nhiều câu truy vấn SQL Đầu tiên là câu truy vấn mong đợi, được thực hiện bình thường; tiếp theo là thực hiện câu truy vấn đã được tiêm vào Kiểu tấn công này có thể là cực kỳ nguy hiểm, nếu thành công kẻ tấn công

có thể chèn bất kỳ lệnh SQL nào, bao gồm các thủ tục lưu trữ và chúng được thực hiện cùng với câu truy vấn ban đầu Lỗ hổng bảo mật đối với kiểu tấn công này thường phụ thuộc vào có việc cấu hình cơ sở dữ liệu cho phép thực hiện nhiều câu lệnh trên một chuỗi đơn

Ví dụ: Nếu như kẻ tấn công nhập thêm

“‟; drop table users - -”

Vào trong trường pass, và ứng dụng sẽ tạo ra truy vấn:

SELECT accounts FROM users WHERE login=‟doe‟ AND

pass=‟‟; drop table users ‟ AND pin=123

Trang 32

Sau khi hoàn thành câu truy vấn đầu tiên, cơ sở dữ liệu sẽ nhận biết ký tự kết thúc truy vấn (―;‖) và thực hiện truy vấn thứ hai đã được tiêm vào

Kết quả thực hiện của truy vấn thứ hai sẽ xoá bảng users, làm phá huỷ thông tin

có giá trị trong CSDL Các kiểu truy vấn khác có thể thực hiện chèn người dùng mới vào cơ sở dữ liệu hoặc thực hiện các thủ tục lưu trữ Tuy nhiên nhiều cơ sở dữ liệu không yêu cầu ký tự đặc biệt để tách rời các câu truy vấn đơn lẻ, vì vậy cách ngăn chặn kiểu tấn công này bằng cách quét ký tự đặc biệt là không hiệu quả

e) Tấn công dựa vào thủ tục lưu trữ

Để thực hiện được tấn công này kẻ tấn công sẽ cố gắng thực hiện các thủ tục lưu trữ đang có trong cơ sở dữ liệu Ngày nay, hầu hết trong các cơ sở dữ liệu đều lưu các thủ tục lưu trữ để mở rộng tính năng của cơ sở dữ liệu và cho phép nó tương tác với hệ điều hành Do đó khi kẻ tấn công xác định được cơ sở dữ liệu đang được sử dụng, tấn công Tiêm mã SQL có thể giả mạo để thực thi các thủ tục lưu trữ, bao gồm các thủ tục tương tác với hệ điều hành

Ngoài ra, các thủ tục lưu trữ thường được viết dưới dạng ngôn ngữ kịch bản, do vậy các thủ tục lưu này có thể chứa các lỗ hổng bảo mật khác như: tràn bộ đệm, leo thang đặc quyền,…

Đoạn chương trình sau mô tả một thủ tục thực hiện xác thực người dùng

CREATE PROCEDURE DBO.isAut,henticated

@userName varchar2, @pass varchar2, @pin int

AS

EXEC("SELECT accounts FROM users

WHERE login=‟" +@userName+ "‟ and pass=‟" +@password+

"‟ and pin=" +@pin);

GO

Ví dụ: Trong trường hợp này, các thủ tục lưu trữ được tham số hoá có thể bị

khai thác bởi Tiêm mã SQL Giả sử chuỗi truy vấn được tạo tại dòng 5, 6, 7 của ví dụ được thay bởi lời gọi thủ tục lưu trữ được định nghĩa ở trên Thủ tục này trả lại giá trị đúng/sai để chỉ ra người dùng được xác nhận chính xác Để thực hiện một tấn công Tiêm mã SQL, kẻ tấn công tiêm đoạn:

“ ‟ ; SHUTDOWN; ”

vào trong trường userName hoặc password Khi đó thủ tục sẽ tạo câu truy vấn sau:

SELECT accounts FROM users WHERE

login=‟doe‟ AND pass=‟ ‟; SHUTDOWN; AND pin=

Tấn công này làm việc giống như tấn công piggy-back Truy vấn thứ nhất thực hiện bình thường, sau đó truy vấn nguy hiểm thứ hai được thực hiện, và kết quả của

Trang 33

quá trình thực hiện này là tắt cơ sở dữ liệu Ví dụ này chỉ ra rằng thủ tục lưu trữ có thể

bị tấn công giống như các mã lệnh ứng dụng thông thường

f) Tấn công dựa vào sự suy đoán

Trong tấn công này, truy vấn bị sửa đổi nhằm thực hiện các câu trả lời dạng đúng/sai về giá trị dữ liệu trong cơ sở dữ liệu Thông thường kẻ tấn công thử tấn công vào một site mà đã được cho là an toàn ngay cả khi việc tiêm mã thành công và kẻ tấn công không thu được thông tin hữu ích nào trong các thông báo lỗi, do vậy kẻ tấn công

sử dụng các phương khác để nhận câu trả lời từ cơ sở dữ liệu Trong tình huống này,

kẻ tấn công tiêm các câu lệnh vào site và sau đó quan sát chức năng hồi đáp của Website đó thay đổi Bằng việc ghi chép tỉ mỉ khi nào site đó có ứng xử giống nhau và khi nào ứng xử của nó thay đổi và kẻ tấn công có thể suy luận chắc chắn về các tham

số dễ bị tấn công và còn biết các thông tin thêm về các giá trị trong cơ sở dữ liệu Có hai kỹ thuật tấn công đã được biết dựa vào sự suy luận Chúng đều cho phép kẻ tấn công trích dữ liệu từ một cơ sở dữ liệu và phát hiện các tham số có thể bị tấn công

Tiêm mù (Blind Injection): Trong kỹ thuật này, thông tin phải được suy luận

từ ứng xử của trang web bằng cách hỏi server các câu hỏi dạng đúng/sai Nếu như các lệnh đã được tiêm đánh giá là đúng, thì site tiếp tục hoạt động bình thường Nếu như các lệnh đánh giá là sai, mặc dù không có thông báo lỗi mô tả, thì trang web này cũng

có sự khác biệt đáng kể so với các trang web hoạt động bình thường

Tấn công Timing: Tấn công kiểu này cho phép thu thông tin từ cơ sở dữ liệu

bằng cách quan sát độ trễ thời gian trong câu trả lời của cơ sở dữ liệu Tấn công này là rất giống với Blind Injection, nhưng phương pháp suy luận là khác nhau

Để thực hiện tấn công Timing, kẻ tấn công xây dựng câu truy vấn đã được tiêm theo dạng các phát biểu if/then Lần theo mỗi nhánh, kẻ tấn công sử dụng cấu trúc SQL để đưa ra khoảng thời gian thực hiện Ví dụ từ khoá WAITFOR làm cho cơ sở dữ liệu tạm dừng đáp ứng yêu cầu trong khoảng thời gian xác định Bằng cách đo việc tăng, giảm thời gian đáp ứng của cơ sở dữ liệu mà kẻ tấn công có thể suy luận nhánh nào đã thực hiện phần tiêm

Ví dụ: Sau đây minh họa hai cách trong các tấn công dựa vào suy luận có thể

được sử dụng Đầu tiên xác định các tham số có thể bị tấn công, sử dụng Blind Injection

Xem xét 2 cách tiêm có thể vào trường login

Thứ nhất là “legalUser‟ and 1=0 ” và thứ 2 là “legalUser‟ and 1=1 ”

Kết quả trong 2 truy vấn sau:

SELECT accounts FROM users WHERE login=‟legalUser‟

and 1=0 ‟ AND pass=‟‟ AND pin=0

Trang 34

SELECT accounts FROM users WHERE login=‟legalUser‟

and 1=1 ‟ AND pass=‟‟ AND pin=0

Bây giờ chúng ta xem xét hai ngữ cảnh

Trong ngữ cảnh đầu, một ứng dụng an toàn và đầu vào đăng nhập được xác nhận chính xác Trong trường hợp này, cả hai cách tiêm đều trả lại các thông báo lỗi đăng nhập, và kẻ tấn công sẽ biết được tham số đăng nhập không thể bị tấn công

Trong ngữ cảnh thứ hai, một ứng dụng không an toàn và tham số đăng nhập bị tấn công do kẻ tấn công thực hiện tiêm đoạn mã vào truy vấn Kẻ tấn công gửi Injection thứ nhất và ứng dụng trả về một thông báo lỗi do nó luôn đánh giá là sai Tuy nhiên, kẻ tấn công không biết được lỗi đăng nhập do việc kiểm tra đầu vào hay do bản thân tấn công đó gây ra Sau đó kẻ tấn công thực hiện tiếp truy vấn thứ hai, mà luôn tạo ra giá trị đúng Trong trường hợp không có thông báo lỗi đăng nhập, kẻ tấn công biết được tấn công đã thực hiện và tham số login là có thể bị tấn công Injection

Suy luận theo cách thứ hai dựa vào tấn công có thể được sử dụng để thực hiện trích dữ liệu Dưới đây trình bày cách sử dụng tấn công suy luận dựa vào timing để trích tên bảng từ cơ sở dữ liệu

Trong tấn công này, tham số login được chèn vào đoạn sau:

„„legalUser‟ and ASCII(SUBSTRING((select top 1 name from

sysobjects),1,1)) > X WAITFOR 5 ‟‟

Và câu truy vấn được tạo ra như sau:

SELECT accounts FROM users WHERE login=‟legalUser‟ and

ASCII(SUBSTRING((select top 1 name from sysobjects),1,1))

> X WAITFOR 5 ‟ AND pass=‟‟ AND pin=0

Trong tấn công này, hàm SUBSTRING được sử dụng để trích ký tự đầu tiên của tên bảng đầu tiên Sử dụng cách tìm kiếm nhị phân, kẻ tấn công có thể hỏi các câu hỏi về ký tự này Trong trường hợp này, kẻ tấn công lựa chọn như giá trị ASCII của ký

tự là lớn hơn hoặc nhỏ hơn giá trị X Bằng cách quan sát thời gian phản hồi kẻ tấn công biết được giá trị này lớn hơn hay nhỏ hơn Kẻ tấn công có thể sử dụng phương pháp tìm kiếm nhị phân bằng cách thay đổi giá trị X để xác định giá trị của ký tự này.[8]

2.1.2 Kỹ thuật tấn công XSS

2.1.2.1 Tổng quan về kỹ thuật tấn công XSS

Cross-Site Scripting hay còn được gọi tắt là XSS là một trong những kỹ thuật tấn công phổ biến nhất hiện nay, đồng thời đây cũng là một trong những vấn đề bảo mật quan trọng mà rất nhiều nhà lập trình, phát triển ứng dụng Web quan tâm XSS là

kỹ thuật tấn công bằng cách chèn vào các Website động (ASP, PHP, CGI, JSP, .) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho người

Trang 35

dùng, hoặc kẻ tấn công có thể thực hiện nhúng các thẻ script vào URL và tìm cách lừa người dùng click vào các liên kết này, khi đó mã độc sẽ được thực thi trên máy của nạn nhân Trong đó, những đoạn mã nguy hiểm này thường được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML

Để hiểu rõ hơn về tấn công XSS chúng ta cùng xem xét ví dụ sau đây:

Ví dụ sau mô tả kẻ tấn công đã chèn script vào URL như sau:

http://www.example.com/search.cgi?query=<script>alert('testing for XSS');</script>

Hình 2.1: Ví dụ về một trang Web mua sắm trực tuyến Kết quả trả về của trình duyệt như sau:

Trang 36

Hình 2.2: Minh họa trang web có lỗi XSS Mục tiêu tấn công của XSS không hướng đến máy chủ hệ thống mà nhằm vào những người sử dụng Website, khi người dùng vô tình duyệt trang Web có chứa các đoạn mã nguy hiểm do các kẻ tấn công tạo ra nhằm mục đích chuyển người dùng tới các Website khác, đặt lại Homepage, hay ăn cấp mất mật khẩu, cookie hoặc cài các chương trình mã độc như virus, backdoor, worm, … lên máy nạn nhân

Kỹ thuật tấn công XSS chỉ gây thiệt hại đối với Web Client ở phía người dùng trong đó nạn nhân trực tiếp là người dùng duyệt trang Web đó Nguyên nhân của vấn

đề này là do kỹ thuật tấn công XSS sử dụng client-side script, và những đoạn mã này chỉ chạy trên trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ thống Website ở phía server

2.1.2.2 Các kỹ thuật tấn công XSS

XSS là kỹ thuật tấn công bắt buộc trình duyệt Web của người dùng thực thi mã độc hại Thông thường mã độc hại này được viết bằng HTML hoặc JavaScript và kẻ tấn công thực thi trong trình duyệt Web của người dùng mà không phải trên server Kẻ tấn công chỉ sử dụng các trang Web tin cậy để thực hiện hành vi của họ và người dùng

là nạn nhân trong các cuộc tấn công này Khi kẻ tấn công kiểm soát được các luồng (thread) điều khiển trong trình duyệt Web của người dùng, thì họ có thể thực hiện các hành động như: Account hijacking, keystroke recording, intranet hacking, đánh cắp history của người dùng,… Kỹ thuật tấn công XSS có thể được phân loại như sau:

a) Reflected XSS

Ví dụ rất phổ biến của lỗi XSS xảy ra khi ứng dụng Web sử dụng trang Web động để hiển thị message hay thông báo lỗi tới người dùng Thông thường, các trang này chứa tham số trong chuỗi văn bản của thông điệp, và server chỉ đơn giản gửi văn

Trang 37

bản này tới người dùng Cơ chế này thuận tiện cho những nhà phát triển, bởi vì nó cho phép họ gọi trang lỗi đã được tùy biến từ bất cứ đâu trong ứng dụng mà không cần các thông điệp hard-code riêng lẻ trong trang báo lỗi Ví dụ: URL sau sẽ trả lại thông điệp lỗi như hình 2.3 dưới đây:

https://wahh-app.com/error.php?message=Sorry%2c+an+error+occurred

Hình 2.3: Thông điệp lỗi tự động được tạo ra Nhìn vào mã nguồn HTML với page được trả về, chúng ta có thể nhìn thấy ứng dụng chỉ đơn giản copy giá trị của tham số message trong URL và chèn tham số này vào vị trí thích hợp trong trang thông báo lỗi:

<p>Sorry, an error occurred.</p>

Hành động người dùng cung cấp dữ liệu đầu vào và dữ liệu này được chèn vào trong mã nguồn HTML của hồi đáp từ server là một trong những đặc điểm của lỗ hổng bảo mật XSS, và nếu quá trình lọc dữ liệu đầu vào không được thực hiện thì ứng dụng này chắc chắn chứa lỗ hổng bảo mật

Lỗi XSS đơn giản như vậy chiếm khoản 75% các lỗ hổng XSS tồn tại trong các ứng dụng Web hiện tại Lỗi XSS này thường được gọi là Reflected XSS bởi vì việc thực hiện khai thác lỗ hổng bảo mật liên quan đến việc tạo ra yêu cầu nhúng mã JavaScript mà đoạn mã này được ánh xạ lại tới bất kỳ người dùng nào thực hiện gửi yêu cầu Payload tấn công được gửi đi và được thực thi thông qua yêu cầu từ người dùng gửi đi và hồi đáp từ server Vì lý do này mà đôi khi lỗi XSS này cũng được gọi là First-order XSS

Lỗ hổng bảo mật XSS có thể được khai thác theo nhiều cách khác nhau Một trong những cuộc tấn công XSS đơn giản nhằm lấy được session token của người dùng hợp lệ có thể được minh họa như hình 2.4 sau đây:

Trang 38

Hình 2.4: Các bước thực hiên tấn công Reflected XSS

1 Người dùng thực hiện đăng nhập vào ứng dụng như bình thường và được cung cấp cookie chứa session token:

Set-Cookie: sessId=184a9138ed37374201a4c9672362f12459c2a652491a3

2 Kẻ tấn công sử dụng kỹ thuật Social Engineering nhằm cung cấp cho người dùng URL lừa đảo như sau:

https://wahhapp.com/error.php?message=<script>var+i=new+Image; +i.src=”http://wahh-attacker.com/“%2bdocument.cookie;</script> Chuỗi URL này sẽ tạo ra dialog message chứa JavaScript và thực hiện đánh cắp session token của người dùng

3 Người dùng thực hiện gửi yêu cầu tới ứng dụng với chuỗi URL mà kẻ tấn công cung cấp

4 Server hồi đáp lại yêu cầu mà người dùng đã gửi Kết quả của tấn công XSS là hồi đáp của server chứa đoạn JavaScript mà kẻ tấn công tạo ra

5 Trình duyệt của người dùng nhận được chuỗi JavaScript do kẻ tấn công tạo ra, và chuỗi JavaScipt này được thực thi trong ứng dụng phía người dùng như bất kỳ đoạn mã khác nhận được từ ứng dụng

6 Đoạn mã độc JavaScript do kẻ tấn công tạo ra như sau:

var i=new Image;

i.src=”http://wahh-attacker.com/“+document.cookie;

Khi đoạn mã này được thực thi thì trình duyệt của người dùng thực hiện gửi session token hiện tại của người dùng tới domain wahh-attacker.com do attacker sở hữu

GET /sessId=184a9138ed37374201a4c9672362f12459c2a652491a3

HTTP/1.1

Trang 39

Host: wahh-attacker.com

7 Kẻ tấn công lấy được session token của người dùng và sử dụng session token này

để chiếm phiên làm việc của người dùng nhằm lấy thông tin cá nhân, thực hiện các hành động bất hợp pháp với tư cách là người dùng hợp lệ

Sau khi thực hiện tất cả các bước trên đây, chúng ta có thể tự đặt câu hỏi rằng, nếu kẻ tấn công có thể khiến cho người dùng truy cập vào URL của mình, thì tại sao anh ta phải gửi mã độc JavaScript mà anh ta tạo ra thông qua lỗi XSS trong lỗ hổng bảo mật của ứng dụng Tại sao anh ta không thực hiện đơn giản hơn đó là xây dựng

mã độc script trên wahh-attacker.com và gửi liên kết trực tiếp đến script này cho người dùng Liệu script này có thực thi và lấy được thông tin đúng như cách đã được mô tả trong ví dụ hay không?

Thực tế, có hai lý do quan trọng để giải thích tại sao kẻ tấn công thực hiện tấn công XSS phức tạp như vậy Lý do đầu tiên và quan trọng nhất là mục đích của kẻ tấn công thực thi đoạn mã script tùy ý để lấy được session token của người dùng là không

hề đơn giản Trình duyệt không cho phép bất kỳ đoạn script truy cập vào các cookie của site, nếu không quá trình chiếm phiên làm việc trở nên quá dễ dàng Hơn nữa, cookie chỉ có thể được truy cập bởi site đã được server cung cấp Do đó, nếu script tồn tại trong wahh-attacker.com thì truy vấn document.cookie sẽ không thu được cookie được cấp cho wahh-app.com, và tấn công chiếm quyền điều khiển sẽ thất bại

Lý do tại sao kẻ tấn công khai thác thành công lỗ hổng XSS đó là: Khi trình duyệt của người dùng nhận được các yêu cầu thì mã độc JavaScript của kẻ tấn công đã được gửi tới trình duyệt thông qua wahh-app.com Khi người dùng click vào URL do

kẻ tấn công tạo ra, trình duyệt sẽ thực hiện gửi yêu cầu tới app.com/error.php, và ứng dụng sẽ trả về page chứa đoạn mã JavaScript Với bất cứ đoạn mã JavaScript nào nhận được từ wahh-app.com, trình duyệt sẽ thực thi đoạn script này Đó là lý do tại sao script của kẻ tấn công mặc dù bắt nguồn ở nơi khác, nhưng vẫn có thể truy cập được vào cookie cấp cho wahh-app.com Đó cũng là lý do tạo sao lỗ hổng bảo mật này được gọi là Cross-Site Scripting

https://wahh-Lý do thứ hai giải thích tại sao kẻ tấn công lại phải thực hiện tấn công XSS rắc rối như vậy đó là ở bước 2 đã được mô tả ở trên: Khả năng thành công khi kẻ tấn công

sử dụng URL lừa đảo có địa chỉ wahh-app.com là cao hơn so với liên kết wahhattacker.com Mục đích của kẻ tấn công cố gắng tạo sự tin tưởng của người dùng

để họ tin rằng liên kết người dùng nhận được là đáng tin cậy và họ sẽ truy cập vào liên kết đó

b) Stored XSS

Trang 40

Kỹ thuật tấn công Stored XSS có thể thành công do dữ liệu người dùng cung cấp được lưu trữ trong ứng dụng, thông thường được lưu tại cơ sở dữ liệu back-end và được hiển thị tới người dùng khác mà không được lọc hoặc xử lý một cách thích hợp

Tấn công dựa vào lỗi Stored XSS thường bao gồm ít nhất hai yêu cầu liên quan đến ứng dụng Thứ nhất, kẻ tấn công gửi dữ liệu gắn mã độc và dữ liệu này được lưu trữ trong ứng dụng Thứ hai, nạn nhân xem trang có chứa dữ liệu của attacker và đoạn

mã độc được thực thi Chính vì lý do này mà lỗ hổng bảo mật này đôi khi cũng được gọi là Second-order Cross-Site Scripting

Hình 2.5 sẽ minh họa các bước thực hiện tấn công Stored XSS để chiếm phiên làm việc của người dùng

Ngày đăng: 06/04/2016, 19:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Symantec, ISTR 20 Internet Security Threat Report Appendices, Symantec, 2015 [2] James A. Lewis, Katrina Timlin, ―Cybersecurity and Cyberwarfare”, Center forStrategic and International Studies, 2011 Sách, tạp chí
Tiêu đề: ISTR 20 Internet Security Threat Report Appendices", Symantec, 2015 [2] James A. Lewis, Katrina Timlin, ―"Cybersecurity and Cyberwarfare”
[3] P.W. Singer, Allan Friedman, Cybersecurity and Cyberwar, Oxford University Press, 2014 Sách, tạp chí
Tiêu đề: Cybersecurity and Cyberwar
[4] Richard Bejtlich, The Practice of Network Security Monitoring, 2013 [5] IBM, IBM Security Qradar SIEM, IBM Corporation, 2013 Sách, tạp chí
Tiêu đề: The Practice of Network Security Monitoring", 2013 [5] IBM, "IBM Security Qradar SIEM
[6] IBM, IBM Security Qradar Version 7.2.4 Hardware Guide, IBM Corporation, 2014 – 2015 Sách, tạp chí
Tiêu đề: IBM Security Qradar Version 7.2.4 Hardware Guide
[7] IBM, IBM Security Qradar 7.1.x and 7.2.x DSM Configuration Guide, IBM Coporation, 2015 Sách, tạp chí
Tiêu đề: IBM Security Qradar 7.1.x and 7.2.x DSM Configuration Guide
[8] Pushkar Y.Jane, M.S.Chaudhari, “SQLIA: Detection and Prevention Techniques: A Survey”, IOSR Journal of Computer Engineering (IOSR-JCE), 2012 Sách, tạp chí
Tiêu đề: “SQLIA: Detection and Prevention Techniques: "A Survey”
[9] Jeremiah Grossman, Robert Hansen, Petko D. Petkov, Anton Rager, Seth Fogie, XSS Attacks Cross Site Scripting Exploits and Defense, Syngress Publishing, 2007 Sách, tạp chí
Tiêu đề: XSS Attacks Cross Site Scripting Exploits and Defense
[10] Eric Chien and Pộter Szửr, Blended Attacks Exploit, Vulnerabilities and Buffer- Overflow Techniques in Computer Viruses, Symantec Security Response, 2002 Sách, tạp chí
Tiêu đề: Vulnerabilities and Buffer-Overflow Techniques in Computer Viruses
[11] James C. Foster, Vitaly Osipov, Nish Bhalla, Tràn bộ đệm Attacks: Detect, Exploit, Prevent, Syngress Publishing, 2005 Sách, tạp chí
Tiêu đề: Tràn bộ đệm Attacks: Detect, Exploit, Prevent
[12] Imperva, Web Application Attack Report #5, Imperva, 2014 Sách, tạp chí
Tiêu đề: Web Application Attack Report #5
[13] Juniper Networks, Security Threat Response Manager: Adaptive Log Exporter Users Guide, Juniper Network, 2012 Sách, tạp chí
Tiêu đề: Security Threat Response Manager: Adaptive Log Exporter Users Guide
[14] Jan Goyvaerts, Regular Expression: The Complete Tutorial, http://www.regular- expressions.info/print.html, 2007 Sách, tạp chí
Tiêu đề: Regular Expression: The Complete Tutorial
[15] Michael Stanton, A Qradar Log Source Extension Walkthrough, SANS Institute InforSec Reading Room, 2014.Trang web Sách, tạp chí
Tiêu đề: A Qradar Log Source Extension Walkthrough

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w