1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)

78 259 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 2,01 MB

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

Nội dung

Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)

Trang 1

HUỲNH VĂN THỊNH

NGHIÊN CỨU GIẢI PHÁP

PHÁT HIỆN TẤN CÔNG WEBSITE DỰA VÀO DẤU HIỆU BẤT THƯỜNG

LUẬN VĂN THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

TP HỒ CHÍ MINH – 2017

Trang 2

HUỲNH VĂN THỊNH

NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN TẤN CÔNG WEBSITE DỰA VÀO DẤU HIỆU BẤT THƯỜNG

Chuyên ngành: Hệ thống thông tin

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công

bố trong bất kỳ công trình nào khác

TP Hồ Chí Minh, ngày 22 tháng 5 năm 2017

Học viên thực hiện luận văn

Huỳnh Văn Thịnh

Trang 4

LỜI CẢM ƠN

Trước tiên, tôi xin chân thành cảm ơn Thầy TS Nguyễn Hồng Sơn đã tận tình hướng dẫn và tạo mọi điều kiện thuận lợi để tôi hoàn thành tốt luận văn này Tôi cũng xin gửi lời cảm ơn đến Quý Thầy Cô tại Học Viện Công Nghệ Bưu Chính Viễn Thông

cơ sở Thành phố Hồ Chí Minh đã tận tình giảng dạy và trang bị cho tôi những kiến thức quý báu trong quá trình tham gia học tập tại Trường

Tôi chân thành biết ơn sâu sắc đến gia đình và bạn bè đã động viên và giúp đỡ tôi hoàn thành khóa học này

TP Hồ Chí Minh, ngày 22 tháng 5 năm 2017

Học viên thực hiện luận văn

Huỳnh Văn Thịnh

Trang 5

MỤC LỤC

Lời cam đoan i

Lời cảm ơn ii

Danh mục các thuật ngữ, chữ viết tắt v

Danh sách bảng vi

Danh sách hình vẽ vii

MỞ ĐẦU 1

CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT 3

1.1 Ứng dụng web 3

1.1.1 Khái niệm 3

1.1.2 Vấn đề bảo mật ứng dụng web 4

1.2 Giao thức HTTP 6

1.2.1 HTTPs 9

1.2.2 Các kỹ thuật lảng tránh HTTP 9

1.3 Ngôn ngữ PHP 10

1.4 Các rủi ro bảo mật cho ứng dụng web 11

1.4.1 Chèn mã 12

1.4.2 Phá vỡ xác thực và quản lý phiên làm việc 12

1.4.3 Thực thi mã lệnh xấu 13

1.4.4 Tham chiếu đối tượng trực tiếp không an toàn 14

1.4.5 Sai sót cấu hình bảo mật 15

1.4.6 Phơi bày dữ liệu nhạy cảm 15

1.4.7 Thiếu chức năng điều khiển truy cập 16

1.4.8 Giả mạo yêu cầu 17

1.4.9 Sử dụng thành phần đã tồn tại lỗ hổng 17

1.4.10 Chuyển hướng và chuyển tiếp không kiểm tra 18

1.5 Kỹ thuật nhận diện tấn công ứng dụng web 19

CHƯƠNG 2 – XÂY DỰNG CÔNG CỤ PHÁT HIỆN TẤN CÔNG WEBSITE 22

2.1 Các Profile 22

Trang 6

2.1.1 Profile 1 – Cấu trúc yêu cầu 23

2.1.2 Profile 2 – Các giá trị của yêu cầu 24

2.1.3 Profile 3 – Phản hồi của máy chủ 26

2.1.4 Profile 4 – Cấu trúc phiên 27

2.1.5 Profile 5 – Hồ sơ người dùng 29

2.1.6 Profile 6 – Tổng quan hệ thống 30

2.2 Đánh giá profile 32

2.3 Đề xuất profile 38

2.4 Nguồn dữ liệu huấn luyện 40

2.5 Profile Các yêu cầu của người dùng 41

2.6 Xây dựng công cụ nhận dạng bất thường 42

CHƯƠNG 3 – THỰC NGHIỆM VÀ ĐÁNH GIÁ 51

3.1 Thực nghiệm 51

3.2 Kết quả thực nghiệm và đánh giá 57

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61

TÀI LIỆU THAM KHẢO 62

Phụ lục 1 Danh sách mã trạng thái HTTP 65

Phụ lục 2 Định dạng nhật ký chung 67

Phụ lục 3 Định dạng nhật ký kết hợp 69

Trang 7

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

System

Hệ thống phát hiện xâm nhập trên máy chủ

hệ điều hành Windows

LDAP Lightweight Directory Access

Protocol

Giao thức truy cập nhanh các dịch

vụ thư mục

NIDS Network-based Intrusion Detection

Trang 8

DANH SÁCH BẢNG

Bảng 3.1: Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra

Bảng 3.2 Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra

Bảng 3.4 Kết quả dự báo lớp thực hiện trong trường hợp 3.1 trên tập dữ liệu 1 57Bảng 3.5 Kết quả dự báo lớp thực hiện trong trường hợp 3.2 trên tập dữ liệu 1 57Bảng 3.6 Kết quả dự báo lớp thực hiện trong trường hợp 3.3 trên tập dữ liệu 1 57Bảng 3.7 Kết quả dự báo lớp thực hiện trong trường hợp 3.4 trên tập dữ liệu 1 58Bảng 3.8 Kết quả dự báo lớp thực hiện trong trường hợp 3.5 trên tập dữ liệu 1

Trang 9

DANH SÁCH HÌNH VẼ

Hình 2.1 Thông tin chi tiết một lỗ hổng đối với WordPress Plugin

Hình 2.3 Mô hình chức năng nhận dạng bất thường sử dụng

Hình 3.5 Sử dụng mô hình sau khi huấn luyện để dự báo lớp

Hình 3.6 Tỉ lệ dự đoán đúng và dự đoán sai trong các trường hợp khác nhau

Hình 3.7 Tỉ lệ dự đoán đúng và dự đoán sai của từng loại tấn công

Trang 10

MỞ ĐẦU

Ngày nay, số lỗ hổng bảo mật được tìm thấy trong các ứng dụng cao hơn nhiều

so với số lỗ hổng được tìm thấy trong các hệ điều hành Các cuộc tấn công nhằm vào các ứng dụng web đang khai thác các lỗ hổng ở lớp ứng dụng và không phải ở lớp truyền tải hoặc lớp mạng như các cuộc tấn công thông thường trong quá khứ Đồng thời, số lượng và mức độ tác động của các lỗ hổng bảo mật trong các ứng dụng như vậy ngày càng tăng cao

Không có nghi ngờ rằng bảo mật ứng dụng web là một chủ đề phổ biến và có giá trị Nó liên quan đến tất cả: Các doanh nghiệp mà doanh thu tăng từ thương mại điện tử trên Internet, những người dùng tin tưởng các ứng dụng web với các thông tin nhạy cảm, và các tội phạm có thể kiếm nhiều tiền bằng cách đánh cắp các dữ liệu thanh toán hoặc xâm nhập vào các tài khoản ngân hàng Danh tiếng đóng một vai trò quan trọng, hầu như không ai muốn kinh doanh với một website không an toàn, rất ít

tổ chức muốn tiết lộ các chi tiết về các lỗ hổng bảo mật riêng của họ hoặc tình trạng

bị xâm nhập Vì thế, nghiên cứu giải pháp phát hiện tấn công cho ứng dụng web luôn

là một chủ để cần thiết Theo thống kê của w3techs.com [20] cho thấy rằng PHP chiếm 81,9% trong tất cả các website sử dụng ngôn ngữ lập trình server-side Viết ứng dụng PHP là khá dễ dàng, nhưng số đông các lập trình viên lại bỏ qua khía cạnh

an ninh hoặc quan tâm không đúng mức Hiện tại, ngôn ngữ lập trình PHP được hỗ trợ trong hầu hết các máy chủ web của nhiều nhà cung cấp dịch vụ web hosting, vì thế viết công cụ phát hiện tấn công cho ứng dụng web bằng PHP là một lợi thế lớn

Đề tài này tập trung nghiên cứu và xây dựng công cụ phát hiện tấn công cho ứng dụng web PHP dựa vào dấu hiệu bất thường và công nghệ học máy, bằng cách xây dựng profile và sử dụng các mô hình positive (các mô hình học các hành vi bình thường)

Trang 11

Theo tìm hiểu, các công trình nghiên cứu hiện tại trong và ngoài nước theo hướng tiếp cận của đề tài chỉ dừng lại ở mức cơ bản “đề xuất một số mô hình phát

hiện”

Về ý nghĩa khoa học, kết quả nghiên cứu có thể làm tài liệu tham khảo, tài liệu

kỹ thuật cho việc xây dựng hệ thống nhận dạng bất thường, phát hiện xâm nhập cho các ứng dụng web

Về ý nghĩa thực tiễn, sản phẩm đạt hiệu quả cao sẽ là cơ sở để xây dựng hệ thống đảm bảo an toàn thông tin cho cho các ứng dụng web

Luận văn này được chia thành ba chương: chương 1 trình bày các cơ sở lý thuyết, chương 2 trình bày các bước xây dựng công cụ phát hiện tấn công, và tiếp theo là chương 3 trình bày cách thức và kết quả thực nghiệm từ công cụ được xây dựng Sau cùng luận văn kết thúc qua một số tổng kết trong phần kết luận và hướng phát triển

Trang 12

CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT

Chương này trình bày các cơ sở lý thuyết của luận văn như ứng dụng web, giao thức HTTP, ngôn ngữ PHP, các rủi ro bảo mật cho ứng dụng web và kỹ thuật nhận diện tấn công ứng dụng web

1.1 Ứng dụng web

1.1.1 Khái niệm

Các ứng dụng web là các chương trình máy tính Các chương trình này cho phép người dùng website gửi và lấy dữ liệu đến/từ một cơ sở dữ liệu qua Internet bằng cách sử dụng trình duyệt web ưa thích của họ Sau đó dữ liệu được hiển thị trong trình duyệt của người dùng, thông tin được tạo ra một cách tự động (trong một định dạng cụ thể, ví dụ trong HTML sử dụng CSS) bởi ứng dụng web thông qua một máy chủ web [18]

Máy chủ cơ sở dữ liệu

Máy chủ ứng dụng web Máy chủ web

Hình 1.1: Mô hình hoạt động của ứng dụng web

(Nguồn: windowsecurity.com)

Hình 1.1 mô tả chi tiết mô hình ứng dụng web ba lớp Lớp đầu tiên thường là một trình duyệt web hoặc giao diện người sử dụng; Lớp thứ hai là công cụ sử dụng

Trang 13

công nghệ sinh nội dung như PHP, JSP hay ASP; Lớp thứ ba là cơ sở dữ liệu có chứa nội dung (ví dụ như tin tức, sản phẩm…) và dữ liệu khách hàng (ví dụ như tên người dùng và mật khẩu, số an sinh xã hội, chi tiết thẻ tín dụng…)

Hình 1.2 dưới đây cho thấy làm thế nào các yêu cầu ban đầu được kích hoạt bởi người sử dụng thông qua trình duyệt trên Internet đến các máy chủ ứng dụng web Ứng dụng web truy cập vào các máy chủ cơ sở dữ liệu để thực hiện các nhiệm vụ cập nhật và lấy các thông tin nằm trong cơ sở dữ liệu Sau đó các ứng dụng web chuyển thông tin đến trình duyệt web để cung cấp cho người dùng

Chú thích

Hệ thống phía máy chủ

Máy chủ ứng dụng web

Máy chủ cơ sở dữ liệu Máy chủ web

Cơ sở dữ liệu

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

Người dùng gửi thông tin cập nhật giỏ hàng trên website qua cổng 80/443 Máy chủ web nhận thông tin giỏ hàng và gửi đến máy chủ ứng dụng web Máy chủ ứng dụng web nhận thông tin từ máy chủ web sau đó gửi đến máy chủ cơ

sở dữ liệu, tiếp theo cơ sở dữ liệu được cập nhật

Máy chủ ứng dụng web tự động tạo ra một trang web gửi về máy chủ web Máy chủ web tạo ra một trang web thông báo người dùng về giao dịch đã được thực hiện

Kết nối hai chiều giữa người dùng và máy chủ web

Người dùng không được phép truy cập đến bất kỳ tài nguyên nào ở mức dưới máy chủ web

Hình 1.2: Mô hình hoạt động chi tiết của ứng dụng web

(Nguồn: windowsecurity.com)

1.1.2 Vấn đề bảo mật ứng dụng web

Các ứng dụng web phụ thuộc vào các cơ sở dữ liệu để cung cấp các thông tin cần thiết cho người dùng Nhiều trong số những cơ sở dữ liệu này có chứa những thông tin có giá trị (ví dụ như thông tin cá nhân và các chi tiết tài chính) làm cho

Trang 14

chúng trở thành một mục tiêu thường xuyên của tin tặc Mặc dù các hành động phá hoại như thay đổi giao diện trang web vẫn còn phổ biến, ngày nay, tin tặc thích đạt được quyền truy cập vào các dữ liệu nhạy cảm nằm trên máy chủ cơ sở dữ liệu hơn

vì có thể kiếm được nhiều tiền từ việc bán các dữ liệu đánh cắp Những kẻ tấn công

sẽ cố gắng tiếp cận với máy chủ cơ sở dữ liệu thông qua hai con đường chính bao gồm:

- Máy chủ cơ sở dữ liệu, tất cả các hệ thống cơ sở dữ liệu hiện đại (Microsoft SQL Server, Oracle và MySQL…) có thể được truy cập thông qua một cổng cụ thể nào đó và bất kỳ ai cũng có thể thử kết nối trực tiếp đến các cơ sở dữ liệu bằng cách qua mặt các cơ chế bảo mật được sử dụng bởi hệ điều hành Những cổng này vẫn mở

để cho phép những truyền thông hợp pháp và do đó tạo thành một lỗ hổng lớn

- Các ứng dụng web, các điểm yếu hay lỗ hổng nghiêm trọng của các ứng dụng web thường bắt nguồn từ việc viết mã không đúng phương pháp hay qui trình phát triển ứng dụng không an toàn sẽ cho phép kẻ tấn công truy cập trực tiếp và khai thác

cơ sở dữ liệu để lấy dữ liệu nhạy cảm

Chú thích

Hệ thống phía máy chủ

Máy chủ ứng dụng web

Internet

Hacker chèn lệnh thực thi SQL

vào trong cơ sở dữ liệu

thông qua ứng dụng web

để lấy thông tin thẻ tín dụng

Firewall Router Switch Access point

Máy chủ cơ sở dữ liệu

Máy chủ web

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

Hacker tìm lỗ hổng của ứng dụng web, sau đó chuyển đoạn mã khai khác đến máy chủ web qua cổng 80/443 Máy chủ web nhận mã độc từ hacker và gửi đến máy chủ ứng dụng web Máy chủ ứng dụng web nhận mã độc từ máy chủ web, sau đó gửi đến máy chủ cơ

sở dữ liệu Máy chủ cơ sở dữ liệu thực thi mã độc trên cơ sở dữ liệu Cở sở dữ liệu trả về bảng chứa thông tin thẻ tín dụng Máy chủ ứng dụng web tự động tạo ra một trang web gửi về máy chủ web với thông tin thẻ tín dụng

Máy chủ web gửi về bảng chứa thông tin thẻ tín dụng cho hacker

Kết nối hai chiều giữa người dùng và máy chủ web

Dữ liệu bảng chứa thông tin thẻ tín dụng được trích xuất từ cơ sở dữ liệu

6

Hình 1.3: Các bước tấn công vào ứng dụng web

(Nguồn: windowsecurity.com)

Trang 15

Hình 1.3 mô tả việc kẻ tấn công có thể dễ dàng, nhanh chóng truy cập dữ liệu trong máy chủ cơ sở dữ liệu thông qua một loạt các kỹ thuật tấn công với một ít may mắn do sơ suất trong sử dụng, cấu hình của người quản trị và lỗi lập trình dẫn đến lỗ hổng trong các ứng dụng web

Bảo mật ứng dụng web liên quan đến việc người dùng có thể nhập, tùy biến

dữ liệu đầu vào bất kỳ Các ứng dụng web phải đối mặt với một vấn đề căn bản và cần phải giải quyết tốt đó là các kết nối từ phía người dùng thường ngoài tầm kiểm soát của ứng dụng web, người dùng có thể nhập hay tùy biến dữ liệu đầu vào bất kỳ

để chuyển về cho ứng dụng web xử lý Do đó, để đảm bảo an toàn thì các ứng web phải giả định rằng các dữ liệu đầu vào đều có nguy cơ là mã độc và có các bước kiểm tra chắc chắn rằng kẻ tấn công không thể thay thế hay chèn dữ liệu đầu vào một cách thủ công để gây hại cho các ứng dụng web bằng cách can thiệp vào tính lôgic và cách thức hoạt động của các ứng dụng web, từ đó có thể truy cập trái phép vào các chức năng và dữ liệu của ứng dụng web

1.2 Giao thức HTTP

Giao thức truyền siêu văn bản HTTP là một giao thức lớp ứng dụng cho các

hệ thống thông tin siêu phương tiện, cộng tác, phân tán Nó là một giao thức chung, không trạng thái, một giao thức có thể được sử dụng cho nhiều tác vụ khác ngoài truyền siêu văn bản, chẳng hạn như các máy chủ tên miền và các hệ thống quản lý đối tượng phân tán, thông qua sự mở rộng của các phương thức yêu cầu, các mã lỗi

và các header của nó Một đặc trưng của HTTP là định kiểu và điều chỉnh cách biểu diễn dữ liệu, cho phép các hệ thống được xây dựng độc lập với dữ liệu đang được truyền Phiên bản hiện tại là “HTTP/ 1.1” được mô tả trong RFC 2616, và là bản cập nhật cho RFC 2068 Phần này được trình bày theo [7] [11]

HTTP là một giao thức yêu cầu/phản hồi (request/response) Chỉ có máy khách

là được phép gửi các yêu cầu Nó yêu cầu máy chủ web cung cấp một trang nhất định Nếu tệp tin không thể xác định được vị trí, một phản hồi lỗi được gửi trả về để thay

Trang 16

thế Một vị trí (location) như vậy trên một máy chủ web được mô tả bằng một URL (Universal Resource Locators):

Vị trí của các nguồn tài nguyên biết được trên máy chủ

Thông tin ngữ cảnh tùy chọn

Trong một yêu cầu HTTP, máy khách liên hệ với máy chủ qua mạng, và gửi một yêu cầu định dạng thích hợp mô tả tài nguyên mà nó muốn Tài nguyên này được đóng gói trong các khối được gọi là “request header” và “request body” Các máy chủ phân tích yêu cầu, nếu có thể thực hiện, nó trả lời bằng một phản hồi rằng thao tác đã thành công, bất kỳ biến đổi thông tin nào liên quan đến kết quả dữ liệu (nếu có), và nội dung đã được lấy ra như kết quả giao dịch Nó được định dạng và đóng gói trong các khối được gọi là “server status”, “response header” và “response body”

Các yêu cầu cơ bản điển hình nhất giữa máy chủ và máy khách là giao dịch GET, nơi mà trình duyệt web yêu cầu một trang HTML được gửi đi:

Máy khách

thức và phiên bản

User-Agent: Mozilla/5.0 (X11; Linux

Trang 17

Máy chủ

HTTP/1.x 200 OK

Trạng thái kết quả: mã trạng thái trả về (status-code) và mô tả về mã trạng thái (phụ lục 1)

Date: Wed, 19 Oct 2016 10:25:51

Content-Type: text/html;

charset=ISO-8859-1

MIME (Multipurpose Internet Mail Extensions) định dạng thông tin về loại (html) kết quả

Một dòng trống ngăn cách response header và response body

- CONNECT: Thiết lập một đường hầm đến máy chủ xác định bởi một URI

- OPTIONS: Mô tả các tùy chọn truyền thông cho các tài nguyên đích

- TRACE: Thực hiện một kiểm tra lặp lại thông điệp dọc theo đường dẫn đến tài nguyên đích

Trang 18

1.2.1 HTTPs

Giao thức HTTP sử dụng giao thức TCP làm cơ chế vận chuyển, TCP không được mã hóa (plain text) và do đó có thể bị chặn bởi một kẻ tấn công đứng ở một vị trí phù hợp trên mạng HTTPs bản chất là cùng một giao thức lớp ứng dụng như HTTP nhưng được tạo đường hầm qua cơ chế vận chuyển an toàn SSL (Secure Sockets Layer) [5] Điều này giúp bảo vệ sự riêng tư và toàn vẹn dữ liệu được truyền qua mạng, giảm các khả năng tấn công đánh chặn HTTP yêu cầu và đáp ứng chức năng chính xác theo cùng một cách bất kể việc SSL được sử dụng để vận chuyển

1.2.2 Các kỹ thuật lảng tránh HTTP

Theo [11], có nhiều loại lảng tránh khác nhau ở những vị trí khác nhau của giao thức HTTP Chúng có thể xuất hiện trong phần URI yêu cầu của giao thức HTTP, các phần HTTP header, HTTP body khác… Các loại lảng tránh có thể là các lảng tránh giao thức giải mã, các kỹ thuật che dấu đơn giản, hoặc các lảng tránh nâng cao hơn, như chèn thêm ký tự để đánh lừa hệ thống IDS Lảng tránh đặc biệt hiệu quả đối với các URL và các thông số URL

tấn công vượt đường dẫn khác Tất cả các URI sau đây có cùng một ý nghĩa:

Trang 19

- Các đường dẫn tự tham chiếu (Ví dụ: Sử dụng /./ và tương đương được mã hóa)

mã hóa)

- Trường hợp hỗn hợp

Mã hóa Hex:

URL chỉ có thể được gửi qua Internet bằng cách sử dụng bộ ký tự ASCII Vì URL thường chứa các ký tự bên ngoài bộ ASCII nên URL phải được chuyển đổi thành định dạng ASCII hợp lệ Mã hóa URL sẽ thay thế các ký tự ASCII không an toàn bằng ký tự “%” theo sau là hai chữ số thập lục phân URL không thể chứa khoảng trắng nên mã hoá URL thường thay thế một khoảng trắng bằng dấu cộng (+) hoặc bằng %20 [17]

Ví dụ, để mã hóa các chữ C, có giá trị thập lục phân trong bảng mã ASCII là 0x43, mã hóa sẽ trông như thế này:

%43

GET /%69%6E%64%65%78%2E%68%74%6D%6C HTTP/1.1

1.3 Ngôn ngữ PHP

PHP xuất phát từ một dự án theo sở thích riêng (viết tắt ban đầu của nó là

“Personal Home Page”) [19] Kể từ lúc xuất hiện, nó đã phát triển gần như không thể nhận ra, trở thành một framework hết sức mạnh mẽ và phong phú dành cho phát triển các ứng dụng web Nó thường được sử dụng kết hợp với các công nghệ mã nguồn

Trang 20

mở khác trong một bộ phần mềm được gọi là LAMP stack (gồm hệ điều hành Linux, máy chủ web Apache, máy chủ cơ sở dữ liệu MySQL, và ngôn ngữ lập trình PHP dành cho các ứng dụng web)

Hàng loạt ứng dụng mã nguồn mở và các thành phần (component) đã được phát triển bằng PHP Nhiều trong số này cung cấp các giải pháp có sẵn (off-the-shelf) cho các chức năng ứng dụng phổ biến, thường tích hợp vào các ứng dụng được xây dựng có thể tùy chỉnh mở rộng hơn như:

- Các ứng dụng bảng tin (Bulletin board) — PHPBB, PHP-Nuke

- Ứng dụng quản trị đầu cuối — PhpMyAdmin

- Các Web mail — SquirrelMail, IlohaMail, Roundcube

- Ứng dụng chia sẻ hình ảnh (Photo galleries) — Gallery

- Các ứng dụng bán hàng trực tuyến — osCommerce, ECW-Shop

- Các ứng dụng wiki — MediaWiki, WakkaWikki

- Các CMS — Wordpress, Joomla, Drupal, NukeViet

1.4 Các rủi ro bảo mật cho ứng dụng web

OWASP là dự án mở về bảo mật ứng dụng web Dự án này là một sự cố gắng chung của cộng đồng nhằm giúp các tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn Mục tiêu chính của OWASP Top 10 là để hướng dẫn các lập trình viên, người thiết kế, kỹ sư, quản lí và cả tổ chức về hậu quả của những điểm yếu quan trọng nhất trong ứng dụng web OWASP Top 10 xuất hiện lần đầu tiên vào năm 2003, được cập nhật sửa đổi cho phù hợp với từng giai đoạn trong những năm 2004, 2007,

và 2013 Mục này sẽ trình bày những rủi ro bảo mật mà các ứng dụng web thường gặp theo đánh giá của OWASP Top 10 năm 2013 [10]

Trang 21

1.4.1 Chèn mã

Rủi ro chèn mã (Injection) xảy ra trong các ứng dụng như SQL, LDAP khi những dữ liệu không xác thực được gửi tới hệ thống biên dịch như một phần của mã lệnh Những dữ liệu này của kẻ tấn công có thể lừa hệ thống biên dịch thực hiện những mã lệnh độc hại hoặc giúp kẻ tấn công xâm nhập đến những dữ liệu quan trọng một cách trái phép

- Ví dụ kịch bản tấn công:

+ Kịch bản 1: Ứng dụng sử dụng dữ liệu không tin cậy

String query = “SELECT * FROM accounts WHERE custID='“ + $id + “'“; + Kịch bản 2: Tương tự như vậy, sự tin cậy mù quáng của ứng dụng vào các framework có thể dẫn đến các truy vấn mà vẫn còn dễ bị tổn thương, ví dụ HQL:

Query HQLQuery = session.createQuery(“FROM accounts WHERE custID='“ + $id + “'“);

http://example.com/app/accountView?id=' or '1'='1

Thay đổi này có ý nghĩa là cả hai câu truy vấn đều trả về kết quả tất cả các bản

thậm chí gọi các thủ tục lưu trữ

1.4.2 Phá vỡ xác thực và quản lý phiên làm việc

Rủi ro phá vỡ xác thực và quản lý phiên làm việc (Broken Authentication and Session Management) xảy ra khi những đoạn chương trình kiểm tra danh tính và quản

lý phiên làm việc của người dùng được làm không đúng cách, thiếu chính xác Điều này giúp kẻ xâm nhập có thể ăn cắp mật mã, khóa, mã của các phiên làm việc hoặc tận dụng những lỗi khác để giả mạo danh tính các người dùng khác, cho phép kẻ tấn công từ bên ngoài có thể truy cập vào những tài nguyên nội bộ trái phép (Ví dụ: Trang

Trang 22

quản trị) Ngoài ra kẻ tấn công còn có thể thực hiện các hành vi nâng quyền quản trị hoặc tấn công dựa vào các dạng như ấn định phiên (session fixation)

đó, họ sẽ sử dụng được phiên và thẻ tín dụng của anh ta

+ Kịch bản 2: Thời gian chờ (timeout) của ứng dụng không được thiết lập đúng cách Người dùng sử dụng máy tính công cộng để truy cập trang web Thay vì chọn

“Thoát” (logout) người dùng chỉ đóng trình duyệt và bỏ đi Kẻ tấn công sử dụng cùng trình duyệt một giờ sau đó, và trình duyệt đó vẫn còn được chứng thực

+ Kịch bản 3: Kẻ tấn công truy cập vào cơ sở dữ liệu mật khẩu của hệ thống Mật khẩu người dùng không được mã hóa thích hợp, để lộ mật khẩu người dùng cho

kẻ tấn công

1.4.3 Thực thi mã lệnh xấu

Rủi ro thực thi mã lệnh xấu (Cross-Site Scripting - XSS) xảy ra khi một ứng dụng tiếp nhận những dữ liệu không đáng tin cậy và gửi chúng đến cho trình duyệt web mà không qua xử lý và kiểm duyệt XSS cho phép kẻ tấn công thực thi mã độc trên trình duyệt của người bị tấn công và lợi dụng ăn cắp phiên truy cập để mạo danh, phá hoại trang web hoặc lừa người sử dụng đến những trang web chứa mã độc khác

- Ví dụ kịch bản tấn công: Ứng dụng sử dụng dữ liệu không tin cậy trong việc xây dựng đoạn mã sau mà không kiểm tra tính hợp lệ:

Trang 23

(String) page += “<input name='creditcard' type='TEXT‘ value='“ + request.getParameter(“CC”) + “'>“;

Kẻ tấn công sửa đổi tham số “CC” trong trình duyệt của mình:

'><script>document.location =

'http://www.attacker.com/cgi-bin/cookie.cgi?foo='+document.cookie</script>'

Đây là nguyên nhân mà ID phiên của nạn nhân được đưa đến trang web của

kẻ tấn công, cho phép kẻ tấn công chiếm quyền điều khiển phiên hiện tại của người dùng

1.4.4 Tham chiếu đối tượng trực tiếp không an toàn

Tham chiếu đối tượng trực tiếp không an toàn (Insecure Direct Object References) xảy ra khi người phát triển để lộ một tham chiếu đến những đối tượng trong hệ thống như các tệp tin, thư mục hay khóa dữ liệu Nếu chúng ta không có một

hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này để truy cập dữ liệu một cách trái phép Trong những trường hợp kẻ tấn công có thể xác định được chính xác cấu trúc truy vấn gởi đến máy chủ, kẻ tấn công có thể nhanh chóng thu thập dữ liệu như thẻ tín dụng, mã khách hàng, thông tin cá nhân

- Ví dụ kịch bản tấn công: Ứng dụng sử dụng dữ liệu chưa được xác minh trong câu truy vấn SQL truy cập vào bảng thông tin tài khoản:

String query = “SELECT * FROM accts WHERE account = ?”;

PreparedStatement pstmt = connection.prepareStatement(query, … ); pstmt.setString(1, request.getParameter(“acct”));

ResultSet results = pstmt.executeQuery();

để gửi bất kỳ số tài khoản nào mà hắn ta muốn Nếu không xác minh đúng cách, kẻ tấn công có thể truy cập vào tài khoản người dùng bất kỳ, thay vì chỉ là tài khoản của khách hàng đã dự định

http://example.com/app/accountInfo?acct=notmyacct

Trang 24

1.4.5 Sai sót cấu hình bảo mật

Sai sót cấu hình bảo mật (Security Misconfiguration) có thể gây ra những hậu quả nghiêm trọng Một cơ chế bảo mật tốt cần phải định nghĩa những hiệu chỉnh về

an ninh và triển khai nó cho các ứng dụng, máy chủ ứng dụng, máy chủ web, máy chủ cơ sở dữ liệu và các ứng dụng nền tảng Tất cả những thiết lập nên được định nghĩa, thực hiện và bảo trì bởi vì rất nhiều hệ thống không được triển khai với thiết lập an toàn mặc định Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng

- Ví dụ kịch bản tấn công:

+ Kịch bản 1: Giao diện điều khiển quản trị máy chủ ứng dụng được tự động cài đặt và không được gỡ bỏ Tài khoản mặc định không được thay đổi Kẻ tấn công phát hiện ra các trang quản trị chuẩn trên máy chủ, đăng nhập với mật khẩu mặc định

+ Kịch bản 2: Liệt kê danh sách thư mục không được vô hiệu hóa trên máy chủ Kẻ tấn công phát hiện ra và hắn ta có thể liệt kê các thư mục để tìm thấy bất kỳ tệp tin nào một cách dễ dàng

1.4.6 Phơi bày dữ liệu nhạy cảm

Phơi bày dữ liệu nhạy cảm (Sensitive Data Exposure) xảy ra khi nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng, mã số thuế và những mã xác thực bí mật bằng các phương thức mã hóa hay băm (hash) Kẻ tấn công có thể ăn cắp hay thay đổi những dữ liệu nhạy cảm này và thực hiện các hành vi trộm cắp, gian lận…

Trang 25

text) Hệ thống nên mã hóa các số thẻ tín dụng mà sử dụng một khóa công khai, và chỉ cho phép các ứng dụng giải mã chúng với khóa riêng

+ Kịch bản 2: Trang web không sử dụng SSL để chứng thực Kẻ tấn công chỉ đơn giản là theo dõi lưu lượng mạng (như dùng một mạng không dây mở), và đánh cắp cookie phiên của người dùng, sau đó dùng lại cookie này và cướp phiên làm việc của người dùng, truy cập dữ liệu cá nhân của người dùng

+ Trường hợp 3: Các cơ sở dữ liệu mật khẩu sử dụng chuỗi băm không kết hợp với chuỗi salt để lưu trữ mật khẩu của tất cả người dùng Một lỗ hổng tải lên tệp tin (file upload) cho phép kẻ tấn công lấy các tệp tin mật khẩu Tất cả các chuỗi băm

table) của các chuỗi băm đã được tính trước

1.4.7 Thiếu chức năng điều khiển truy cập

Thiếu chức năng điều khiển truy cập (Missing Function Level Access Control) xảy ra khi ứng dụng web thực hiện việc kiểm tra kiểm soát truy cập không tốt Gần như tất cả các ứng dụng web đều kiểm tra quyền truy cập cấp độ chức năng trước khi thực hiện chức năng mà có thể nhìn thấy trong giao diện người dùng Tuy nhiên, các ứng dụng cần phải thực hiện kiểm tra kiểm soát truy cập tương tự trên máy chủ khi mỗi chức năng được truy cập Nếu các yêu cầu không được kiểm soát, kẻ tấn công sẽ

có thể giả mạo yêu cầu để truy cập vào chức năng trái phép hay lợi dụng để leo thang đặc quyền

- Ví dụ kịch bản tấn công: Kẻ tấn công truy cập đến các URL mục tiêu Các URL sau yêu cầu xác thực Các quyền quản trị cũng được yêu cầu để truy cập được vào trang “admin_getappInfo”

http://example.com/app/getappInfo

http://example.com/app/admin_getappInfo

cho việc bẻ khóa các mật khẩu băm (http://project-rainbowcrack.com)

Trang 26

Nếu một người dùng không xác thực cũng có thể truy cập vào trang, đó là một

lỗ hổng Nếu được xác thực, không phải quản trị, người dùng được phép truy cập vào trang “admin_getappInfo”, đây cũng là một lỗ hổng, và có thể dẫn kẻ tấn công đến nhiều trang quản trị mà không được bảo vệ đúng cách

1.4.8 Giả mạo yêu cầu

Giả mạo yêu cầu (Cross-Site Request Forgery - CSRF) ép buộc trình duyệt web của một người dùng gửi những yêu cầu giả như cookie của phiên truy cập và những thông tin tự động khác bao gồm thông tin đăng nhập đến một ứng dụng web Điều này cho phép kẻ tấn công buộc trình duyệt web tạo ra những yêu cầu đến ứng dụng web mà ứng dụng không thể biết đây là những yêu cầu giả mạo của kẻ tấn công

<Img src =

“http://example.com/app/transferFunds?amount=1500&destinationAccoun t=attackersAcct#” width = “0” height = “0” />

Nếu nạn nhân đến thăm bất kỳ trang web nào của kẻ tấn công trong khi đã

tin phiên làm việc của người dùng, chứng thực yêu cầu của kẻ tấn công

1.4.9 Sử dụng thành phần đã tồn tại lỗ hổng

Sử dụng thành phần đã tồn tại lỗ hổng (Using Known Vulnerable Components) dùng các thư viện, plugin, module… có chứa các lỗ hổng bảo mật đã được công khai

Trang 27

Các thành phần này gần như luôn luôn chạy với quyền cao nhất trong hệ thống Vì vậy, nếu bị khai thác, các thành phần này có thể gây mất dữ liệu nghiêm trọng Các ứng dụng sử dụng các thành phần tồn tại lỗ hổng có thể làm suy yếu phòng thủ của

hệ thống, cho phép một loạt các cuộc tấn công và ảnh hưởng đến hệ thống

- Ví dụ kịch bản tấn công:

Sử dụng thành phần đã tồn tại lỗ hổng có thể gây ra gần như bất kỳ loại rủi ro nào, từ phần mềm độc hại tầm thường đến tinh vi được thiết kế để nhắm mục tiêu là một tổ chức cụ thể Các thành phần gần như luôn luôn chạy với các đặc quyền đầy

đủ của các ứng dụng, sai sót trong bất kỳ thành phần nào đều có thể là nghiêm trọng, hai thành phần dễ bị tổn thương sau đây đã được tải về 22 triệu lần trong năm 2011

+ Apache CXF Authentication Bypass: Lỗi cung cấp một token nhận dạng, kẻ tấn công có thể gọi bất kỳ dịch vụ web nào với quyền hạn đầy đủ

+ Spring Remote Code Execution: Lạm dụng sử dụng ngôn ngữ biểu thức (Expression Language) trong Spring cho phép kẻ tấn công thực thi mã tùy ý, ảnh hưởng lên máy chủ

Mọi ứng dụng sử dụng các thư viện dễ bị tổn thương này dễ bị tấn công khi cả hai thành phần này có thể truy cập trực tiếp bởi người dùng ứng dụng Các thư viện

dễ bị tổn thương khác, được sử dụng sâu hơn trong một ứng dụng, có thể khó khai thác hơn

1.4.10 Chuyển hướng và chuyển tiếp không kiểm tra

Chuyển hướng và chuyển tiếp không kiểm tra (Unvalidated Redirects and Forwards) xảy ra khi chuyển hướng hoặc chuyển tiếp người dùng đến một đường dẫn khác mà không kiểm tra tính hợp lệ Nếu không được kiểm tra một cách cẩn thận, kẻ tấn công có thể lợi dụng để chuyển hướng nạn nhân đến các trang web lừa đảo hay trang web chứa phần mềm độc hại, hoặc chuyển tiếp để truy cập các trang trái phép

- Ví dụ kịch bản tấn công:

Trang 28

+ Kịch bản 1: Ứng dụng có một trang gọi là “redirect.php” mà có một tham

dùng đến một trang web độc hại để thực hiện lừa đảo và cài đặt phần mềm độc hại

mà kẻ tấn công không được phép

http://www.example.com/boring.php?fwd=admin.php

1.5 Kỹ thuật nhận diện tấn công ứng dụng web

Có 2 hướng tiếp cận chính là sử dụng kỹ thuật nhận dạng tĩnh hoặc sử dụng

kỹ thuật nhận dạng động Phần này được trình bày dựa theo các thông tin được cung cấp tại [24]

Hình 1.4: Kỹ thuật phát hiện tấn công ứng dụng web

- Kỹ thuật nhận dạng động: Không chỉ có thể phát hiện xâm nhập mà còn có thể phản ứng lại

Nhận dạng tấn công

ứng dụng web

Kỹ thuật nhận dạng động (Real-time detection)

Nhận dạng tấn công trên mạng (Network-based)

Nhận dạng tấn công trên máy chủ (Webserver-based)

Kỹ thuật nhận dạng tĩnh (Log-based detection)

Trang 29

+ Network-based: Hệ thống được đặt ở đường kết nối vật lý giữa người dùng

và ứng dụng web

+ Webserver-based: Hệ thống được tích hợp vào trong máy chủ web

- Kỹ thuật nhận dạng tĩnh: Dựa trên nhật ký truy cập chi tiết của máy chủ web, nơi mà các thông tin về tất cả các yêu cầu truy cập từ phía người dùng được lưu lại Hơn nữa, máy chủ web cũng có thể tạo ra các nhật ký truy cập theo các định dạng đặc biệt nào đó để kiểm soát dữ liệu được thu thập

Phương pháp phát hiện tấn công:

- Phương pháp đầu tiên gọi là phát hiện dấu hiệu (misuse detection), phát hiện xâm nhập dựa vào luật (rule-based intrusion detection), hoặc phát hiện dựa vào chữ

ký (signature based detection) Phương pháp này dựa trên dấu hiệu sử dụng mẫu của các cuộc tấn công đã biết hoặc điểm yếu của hệ thống để xác định tấn công, tương tự như các phần mềm chống virus sử dụng mẫu để phát hiện virus Yếu điểm của kỹ thuật này là không thể phát hiện các loại tấn công mới, nên nó cần phải cập nhật liên tục các dấu hiệu tấn công để nhận dạng các cuộc tấn công mới

- Phương pháp thứ hai được gọi là phát hiện bất thường (anomaly detection), phát hiện xâm nhập dựa trên thống kê (statistical based intrusion detection) hoặc phát hiện xâm nhập dựa theo profile (profile based intrusion detection) Khi vận hành ở chế độ này, các hành vi đi chệch khỏi profile hành vi bình thường của người dùng thì gọi là bất thường Khi được đào tạo tốt, thì một hệ thống phát hiện xâm nhập dựa theo profile sẽ phát hiện bất cứ điều gì khác thường, nên nó có khả năng nhận dạng được các loại tấn công mới Phát hiện bất thường có thể tiếp cận theo hai hướng:

+ Sử dụng số liệu thống kê: Thực hiện thu thập, lưu trữ và thống kê dữ liệu bình thường và bất thường Sau đó, định kỳ tính toán ngưỡng bình thường/bất thường, nếu vượt ngưỡng thì đưa ra cảnh báo

+ Sử dụng học máy: Dựa vào những dữ liệu huấn luyện đã được gán nhãn là bình thường/bất thường để tạo ra mô hình phân lớp dữ liệu bằng các phương pháp

Trang 30

học máy Sau đó, với những dữ liệu mới, ta sẽ kiểm tra chúng là bất thường hay không

để đưa ra cảnh báo hoặc có hành động phù hợp Chất lượng của mô hình phân lớp phụ thuộc vào tập dữ liệu huấn luyện, dữ liệu kiểm tra và các đặc trưng được chọn

Trang 31

CHƯƠNG 2 – XÂY DỰNG CÔNG CỤ PHÁT HIỆN TẤN CÔNG WEBSITE

Trong chương này sẽ trình bày các bước mà cần được thực hiện để triển khai công cụ phát hiện tấn công Bắt đầu với việc thiết kế các profile để xem xét các hành

vi của người dùng Những profile này sau đó được đánh giá và chọn ra một tập con các mô hình phù hợp để tiếp tục sử dụng Tiếp theo sẽ xem xét nguồn tài nguyên dữ liệu được sử dụng để huấn luyện Cuối cùng là mô tả xây dựng công cụ được triển khai với profile được chọn

2.1 Các Profile

Profile về hành vi của các chương trình là một tham chiếu hữu ích để phát hiện các xâm nhập tiềm ẩn đối với các hệ thống [1] Khi xem xét xây dựng các profile để phát hiện xâm nhập dựa vào bất thường, thì các khía cạnh để xem xét là rất nhiều và

đa dạng Do mức độ tùy biến và chuyên hóa của các máy chủ và các ứng dụng, rất ít thông tin về xây dựng profile có thể được tiến hành trên một cơ sở chung Các giải pháp có sẵn phần lớn là các giải pháp đặc biệt để phục vụ cho một máy chủ hoặc một ứng dụng Tuy nhiên, một số nỗ lực đã được thực hiện để tạo ra một framework cho việc xây dựng các tính năng và mô hình cho các hệ thống phát hiện xâm nhập [15] Khai phá dữ liệu được sử dụng trong mô hình tự động để phát hiện xâm nhập (MADAM ID) là framework hiện có thích hợp nhất Nó nhằm mục đích sử dụng các

kỹ thuật khai phá dữ liệu để trích xuất các mô hình hữu ích từ các kho dữ liệu lớn Một tiền đề cơ bản để phát hiện xâm nhập là khi cơ chế theo dõi được kích hoạt để ghi lại các sự kiện hệ thống, bằng chứng rõ rệt của các hoạt động hợp pháp và xâm nhập sẽ được thể hiện trong các dữ liệu được theo dõi [14]

Các mục bên dưới sẽ đưa ra một sự lựa chọn trong các profile có thể được sử dụng trong một chương trình phát hiện xâm nhập dựa vào dấu hiệu bất thường Các profile xem xét dữ liệu ở các mức trừu tượng khác nhau để đạt được hiểu biết và có cái nhìn sâu sắc về các tiêu chí, nơi mà các cuộc tấn công có thể được thực hiện, từ

Trang 32

một phân tích về giá trị của một tham số đơn đến một bức tranh tổng thể về hành vi của người dùng

2.1.1 Profile 1 – Cấu trúc yêu cầu

Profile đầu tiên là xem xét cấu trúc của một yêu cầu Các phần tử dữ liệu trong profile này là một yêu cầu của người dùng gửi đến máy chủ Profile bao gồm bốn mô hình khác nhau, xem xét cấu trúc và tính lôgic của một yêu cầu, nhằm phát hiện các cấu trúc yêu cầu lỗi và độc hại Mô tả chi tiết của profile này được trình bày trong bảng 2.1

Bảng 2.1: Các mô hình của profile 1 – Cấu trúc yêu cầu Cấu trúc yêu cầu (Request structure)

xem là bất thường

học cho mỗi đường dẫn duy nhất

đường dẫn, nó được xem là một bất thường

cầu

cấu trúc của ứng dụng

Trang 33

Học Một thuộc tính đến trước một thuộc tính khác khi chúng

xuất hiện cùng nhau trong danh sách tham số của ít nhất một truy vấn và đến trước trong danh sách có thứ tự của các thuộc tính của tất cả các truy vấn, nơi mà chúng xuất hiện cùng nhau

một truy vấn có thỏa mãn các ràng buộc thứ tự đã xác định trong pha học

vắng mặt của thuộc tính)

không đầy đủ hoặc bị thay đổi

nhận được mà xuất hiện cùng lúc trong một truy vấn Điều này được thực hiện bằng cách ghi lại từng nhóm nhỏ riêng biệt của thuộc tính được thấy trong pha huấn luyện

mỗi truy vấn

2.1.2 Profile 2 – Các giá trị của yêu cầu

Profile 2 xem xét các giá trị của các tham số khác nhau được thiết lập bởi người dùng, để phát hiện các giá trị bất thường, ví dụ như mã độc Profile này vượt

ra ngoài ranh giới một sự kiểm tra tính hợp lệ đầu vào truyền thống bằng cách học sự phân bố ký tự (character distribution) và suy luận cấu trúc (structural inference) Nó tìm kiếm phát hiện tất cả các loại tấn công mà cần truyền dữ liệu đến máy chủ, từ đó dẫn đến một vi phạm an ninh, chẳng hạn như các cuộc tấn công chèn (injection) Mô

tả chi tiết của profile này được trình bày trong bảng 2.2

Bảng 2.2: Các mô hình của profile 2 – Các giá trị của yêu cầu

Các giá trị của yêu cầu (Request values)

Trang 34

Mô tả Xem xét các kiểu đặc tính của các giá trị của các tham số

cho từng thuộc tính, ví dụ: kiểu string, boolean, integer, hay float…

Overflow) đòi hỏi nhiều không gian nhớ hơn không gian nhớ được cung cấp

thuộc tính

vấn, với các tham số trung bình và phương sai như được xác định ở pha học, nhiệm vụ của pha phát hiện là đánh giá sự bất thường của một tham số với chiều dài nhất định, dựa vào một giá trị ngưỡng

thuộc tính)

với các phần tử bình thường bằng sự phân bố của các ký tự

ký tự của nó được lưu trữ Sau đó, sự phân bố ký tự lý tưởng (ICD - tức hoàn toàn hợp lệ) là xấp xỉ trung bình của tất cả các phân bố ký tự được lưu giữ

phát hiện là xác định xác suất phân bố ký tự của một thuộc tính yêu cầu là một phần tử thực sự rút ra từ ICD của nó

Trang 35

Nhận diện Mã lệnh được chèn với các thuộc tính cấu trúc khác với ngữ

pháp tự nhiên sẽ bị ngăn chặn

cầu, thì ngữ pháp kết quả phải có khả năng tạo ra ít nhất tất

cả các mẫu huấn luyện

bởi pha phát hiện để xác định xác suất của các thuộc tính yêu cầu

hạn các giá trị

ngẫu nhiên, là dựa vào việc quan sát lượng các giá trị tham

số khác nhau bị giới hạn bởi một số giá trị trong trường hợp của bảng liệt kê, trong khi nó không bị giới hạn trong trường hợp của các giá trị ngẫu nhiên

vấn chứa các token được rút ra từ một bảng liệt kê, thì bất

kỳ giá trị mới nào được xem là không xuất hiện trong tập các giá trị nhận biết được là bất thường

2.1.3 Profile 3 – Phản hồi của máy chủ

Profile phản hồi của máy chủ tìm kiếm phát hiện nếu thông tin nhạy cảm đang

bị phơi bày cho người dùng một cách sai trái Nó cố gắng học cách các máy chủ phản hồi lại các yêu cầu của người dùng khác nhau, để nhận diện khi một người dùng có được một phản hồi từ máy chủ mà không như dự định Mô tả chi tiết của profile này được trình bày trong bảng 2.3

Bảng 2.3: Các mô hình của profile 3 – Phản hồi của máy chủ

Phản hồi của máy chủ (Server response)

Trang 36

Mô tả Xem xét mối quan hệ giữa các yêu cầu và các phản hồi

cầu/phản hồi”

chủ” bình thường, và sử dụng các cặp này để tính toán xác suất thống kê của mỗi cặp mới

của máy chủ” mà có xác suất đủ thấp

2.1.4 Profile 4 – Cấu trúc phiên

Profile cấu trúc phiên xem xét mỗi phiên như một phần tử dữ liệu để học Một phiên được định nghĩa là một chuỗi các tương tác giữa người dùng và máy chủ, từ đăng nhập đến đăng xuất, hoặc thời gian chờ Trong lúc tương tác này, nó có thể học một mẫu mà từ cách một người dùng tương tác với hệ thống một cách bình thường, cho phép phát hiện các mẫu tương tác bất thường Hơn nữa, phiên có thể được phân tích để phát hiện các loại hành động độc hại đang tìm kiếm để qua mặt tính lôgic ứng dụng hoặc đang tìm kiếm các tài nguyên không được công khai Một phiên cũng cung cấp một tập hợp các thông tin quan trọng để phát hiện các hoạt động rô bốt Mô tả chi tiết của profile này được thể hiện trong bảng 2.4

Bảng 2.4: Các mô hình của profile 4 – Cấu trúc phiên Cấu trúc phiên (Session structure)

yêu cầu)

phía người dùng để khám phá ra những lần yêu cầu bất thường

tiếp phía người dùng được tạo ra

Trang 37

Phát hiện Trong pha phát hiện, sự phân bố thời gian chờ giữa các yêu

cầu liên tiếp phía người dùng được biên dịch Mục tiêu sau

đó là để xác định xác suất mà thời gian được quan sát trì hoãn giữa các yêu cầu liên tiếp là một mẫu từ sự phân bố được học

và dịch vụ khác nhau của trang web

với phiên của một máy khách cụ thể (dựa trên địa chỉ IP)

tương ứng của nó Khi phiên này có trong pha huấn luyện, thì đầu ra từ mô hình cho truy vấn là bình thường

cầu khác nhau

dò hệ thống, ví dụ: DoS

các trang (page) và các dịch vụ khác nhau, với một tần suất gọi trung bình và phương sai cho mỗi chúng

tập sẽ liên tục được đánh giá so với tần suất trung bình đã học Nếu bộ sưu tập của phiên vi phạm phương sai hợp lệ của các tần suất gọi, nó là bất thường

dài bởi một vài kỹ xảo, để thực hiện các hành động độc hại trên các phiên hợp lệ

Trang 38

Học Pha học bao gồm học thời gian phiên trung bình, cùng với

phương sai, để tạo ra một giới hạn trên cho các thời gian phiên

phiên sẽ được coi là bất thường

gọi)

để ngăn timeout và giữ phiên hợp lệ

cùng với phương sai, cho các phiên bình thường

được coi là bất thường

phiên)

một khoảng thời gian ngắn, để phát hiện hoạt động tự động

mà không vi phạm giới hạn phát hiện đối với các yêu cầu đơn

phiên, cùng với phương sai, cho các phiên bình thường

được coi là bất thường

2.1.5 Profile 5 – Hồ sơ người dùng

Để phát hiện khi một người dùng bất hợp pháp đã giành được quyền truy cập trái phép vào một tài khoản, cần phải học cách người dùng hợp pháp thường hoạt động Khi một ranh giới của tương tác người dùng bình thường được tạo ra, nó có thể phát hiện các sai phạm từ những quy tắc này so với các người dùng khác Sử dụng các đặc điểm hành vi của một người dùng, có thể phát hiện những người dùng sai trái

Trang 39

đã giành được quyền truy cập vào một tài khoản Mô tả chi tiết của profile này được thể hiện trong bảng 2.5

Bảng 2.5: Các mô hình của profile 5 – Hồ sơ người dùng

Hồ sơ người dùng (User profile)

hạn như thời gian đăng nhập, khoảng thời gian của phiên, các dịch vụ đã sử dụng, số lượng giao dịch đã thực hiện ở mỗi phiên, và số lần đăng nhập mỗi tuần

dấu hiệu cho thấy các thông tin của người sử dụng đang được sử dụng bởi một người khác

dùng trong một khung thời gian nhất định

thể cho một người dùng di chuyển trong một khung thời gian, đó là một dấu hiệu chắc chắn rằng một trong hai vị trí

là bị sử dụng bởi một người dùng độc hại

2.1.6 Profile 6 – Tổng quan hệ thống

Để phát hiện các cuộc tấn công được thực hiện bởi những người dùng khác nhau, toàn bộ hệ thống cần phải được xem xét Các tấn công phân tán thường nhằm làm quá tải và tiêu tốn tài nguyên hệ thống, dẫn đến các người dùng bình thường mất

Ngày đăng: 07/11/2017, 14:01

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w