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

Khóa luận tốt nghiệp An toàn thông tin: Sử dụng kỹ thuật học sâu trong phát hiện tấn công ứng dụng web

90 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Sử Dụng Kỹ Thuật Học Sâu Trong Phát Hiện Tấn Công Ứng Dụng Web
Tác giả Nguyen Nhu Quynh, Le Nguyen Minh Thu
Người hướng dẫn TS. Nguyen Ngoc Tu, ThS. Nguyen Thanh Hoa
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành An Toan Thong Tin
Thể loại Khoa Luan Tot Nghiep
Năm xuất bản 2021
Thành phố TP. Ho Chi Minh
Định dạng
Số trang 90
Dung lượng 41,4 MB

Nội dung

Các kỹ thuật phát hiệnxâm nhập truyền thống mặc dù phổ biến và hiệu quả trong việc giám sát,phát hiện và đưa ra các cảnh báo khi có cuộc tan công vào ứng dụng webnhưng vẫn còn nhiều hạn

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG

NGUYEN NHU QUYNH

LE NGUYEN MINH THU

KHOA LUAN TOT NGHIEP

An empirical study on detecting web application attacks using

deep learning

KY SU NGANH AN TOAN THONG TIN

TP HO CHi MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG

NGUYEN NHƯ QUYNH - 17520966

LÊ NGUYEN MINH THU — 17521103

KHOA LUAN TOT NGHIEP

SU DUNG KY THUAT HOC SAU TRONG PHAT HIEN

TAN CONG UNG DUNG WEB

An empirical study on detecting web application attacks using

deep learning

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS NGUYEN NGOC TU

ThS NGUYEN THANH HOA

TP HO CHi MINH, 2021

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 463/QD-DHCNTT

ngày 23 tháng 7 năm 2021 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.

1 TS Lê Kim Hùng Chủ tịch

2 ThS Nguyễn Thanh Sơn Ủy viên

3 ThS Đỗ Hoàng Hiển Thư ký

Trang 4

LỜI CÁM ƠN

Lời đầu tiên nhóm tác giả xin gửi lời cảm ơn chân thành và bày tỏ lòng

biết ơn sâu sắc đến các thầy cô trường Đại học Công nghệ Thông tin và các thầy cô Khoa Mạng máy tính và Truyền thông của trường đã tận tình

hướng dẫn, truyền đạt kiến thức trong những năm học tập vừa qua

Đặc biệt, từ tận đáy lòng, chúng tôi xin gửi lời cảm ơn sâu sắc đến hai thay

đã hướng dẫn chúng tôi là TS Nguyễn Ngọc Tự, ThS Nguyễn Thanh Hòa

đã tận tình chỉ bảo cho chúng tôi tìm ra hướng nghiên cứu, hướng dẫn và

tạo mọi điều kiện để chúng tôi có thể hoàn thành khóa luận tốt nhất

Cuối cùng, chúng tôi xin cảm ơn đến gia đình, người thân, bạn bè và nhóm

AISP đã luôn đồng hành, khích lệ, động viên chúng tôi hoàn thành dé tài

Trang 5

Mục lục

1 MỞ ĐẦU 3

11 Đặtvấnđề 2 ee, 3

12 Muctiéunghiénettu ẶẶẶẶẶ So 4

13 Đốitượngnghincứu Ặ 5

14 Phạm vinghiêncỨu Ặ Ặ Ặ QC 5 1.5 Cấu trúc củakhóaluận ẶẶ 5

2 CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN CỨU LIEN QUAN 7 2.1 Học sâu và mạng nơ-ronnhântạo 7

2.1.1 Giớithệu ko 7 212 MạngnơronnhântạO 9

2.2 Mạngnơ-rontíchchập 000000080 e 17 2.2.1 Lớpđầuvào ee 18 2.2.2 Lóptchchập Ặ.ẶẶẶ Ặ 18 2.2.3 Lớốppoolng 2.0.0.0 xo 23 2.2.4 Flatenng HQ xo 24 2.2.5 Lớpkếtnốiđầyđủ 25

2.3 Các loại tấn công ứng dụng web phổbiến 26

2.4 Các kỹ thuật phát hiện tấn công web 28

2.5 Các nghiên cứu liên quan - 29

Trang 6

MỤC LỤC

3 PHAN TÍCH VA THIẾT KẾ HE THONG

3.1 Thiết kế mô hình để huấn

luyện -3.2 Các tiêu chí đánh giámôhìnhh

3.2.1 Tilệcảnhbáogiả Ặ.Ặ.ẶẶẶẶẶẶ 3.2.2 Độchínhxác ẶẶ QẶ Q SỐ Q

3.2.3 False positive rate và False negatverafte

3.2.4 Confusion matrix 0.0.0.0 000000000848

3.2.5 Precision, Recall và FÏlscore

3.2.6 Tiêu chí đánh giá trong phân loại nhiều lớp

3.3 Thiết kế mô-đun ứng dụng web để tích hợp với mô hình đã huấn luyện 4 THỰC NGHIỆM VÀ DANH GIÁ KET QUA 4.1 Chuẩn bị tập đữliệu Ặ.ẶẶ

411 Thuthậpdữlệu

412 Xửlýdữliệu

4.2 Môi trường huấn luyệnmôhình

-4.3 Kết quả thực nghiệm và đánh

giá -4.3.1 Kétquathucnghiém

4.3.2 Sosanh 4.4 Triển khai mô-đun tích hợp mô hình đã huấn luyện vào ứng dung web 44.1 Xây dựng websiteminhhoa

4.4.2 Tích hợp mô-đun phát hiện tan công đã huấn luyện

4.4.3 Đánh giá hoạt động của mô-đun phát hiện tấn công

5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 Kếtluận

5.2 Hướng phát triển

TÀI LIỆU THAM KHẢO

31

31

36 36 36 36

37

38

38

43

45

45

45

47

49

50

50

52

53

53 55 59

62

62 63

64

Trang 8

Danh sách hình vẽ

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

2.10

2.11

2.12

2.13

2.14

2.15

2.16

2.17

2.18

2.19

Hình thể hiện học sâu là một nhánh của ML và DL [5] 2 8

Các lớp của mô hình ANN 10

Hoạt động trong một perceptron 11

Bimnay #2 @ \ 1 12

Sigmoid, Tanh, ReLu activation functionÌ - 12

Mô hình tổng quat ANN[10] 13

Kihệu Ay ¬ạm ge w fe ww ˆ 14

Các lớp của mô hình CNN [13] .- 17

RGB ` s.5Ẳ D c 18

Phép nhân tích chập [l4] 19

Nhân tích chập có độ sâu là 3 [l4] 20

Filter có bước nhảy s=2[l4] 21

Ma tran I khi thêm padding là 1 [l4] 21

Các bước của một lớp tích chập [14] 22

Gộp cực đại va gộp trung bình [l4] 23

Max pooling có chiều sâu [14] - 24

Flattening [l6] Q2 25 Lớp kết nối đầy đủ [13] - 25

Mô hình CNN tổng quát [16] - 26

Trang 9

DANH SÁCH HÌNH VẼ

3.1

3.2

3.3

3.4

3.5

3.6

3.7

3.8

4.1

4.2

4.3

44

4.5

4.6

47

4.8

4.9

4.10

4.11

4.12

4.13

4.14

4.15

4.16

4.17

Kết quả so sánh CNN và LSTM trong bài báo [23] 32

Mô hình để xuất 33

Thuật toán Adam [29] .- 35

Confusion matrix phân loại nhiều lớp [31] 37

Ví du Confusion matrix phân loại ba lớp (BT, XSS, SQLi) 39

Sơ đồ hoạt động của ADM 43

Cài đặtADM Q Q Q ee ee 44 Gửi HTTP request đến ADM 44

Luu đồ xử lý dữ liệu và huấn luyện mô hình 49

Jupyter Lab gói Standard GPU trên Floyhub 50

Confusion matrix của mô hình nhóm tác giả - 52

Sơ đồ website minhhoạ 53

Giới thiệu trang tương tác với người dùng 54

Giới thiệu trang giao diện quản trỊ - 54

Sơ đồ hoạt động ADM trong thanh tìm kiếm website minh hoạ 55

Trang lỗi 403 ngăn chặn kẻ tấn công sử dụng chức năng search 56

Kết quả tìm kiếm trả về cho người dùng hợp lệ 56

Giới thiệu trang phát hiện tan công trong mục thống kê 57

Chi tiết dữ liệu được thống kê tại trang chi tiết phát hiện tấn công 58

Thông tin các tài khoản thuộc IP của kẻ tấn công 58

Trang đăng nhập web quản trị 59

Kết quả sau khi thực hiện truy vấn liên tiếp vào thanh tìm kiếm ba từ khoá ee 59 Kết quả quá trình thực thi các job trên terminal 60

Sơ đồ hoạt động ADM trong website đã tuỳ chỉnh 61

Kết qua dự đoán của một vài truy van tan công SQLi 61

Trang 10

Danh sách bảng

3.1

3.2

3.3

4.1

4.2

4.3

4.4

4.5

Định nghĩa TP, FP,TN,FN 36

Giá trị TP, TN,EP,EN SẺ 39 Giá tri Precision, Recall, Fl score - 40

Số lượng mẫu lấy từ các nguồn 47

Số lượng mẫu của từng loại dữ liệu .- 47

Bảng chia tập dữ liệu 50

Kết quả dự đoán 51

So sánh môhình 52

Trang 11

Danh mục từ viết tắt

AI Artificial Intelligence Trí tuệ nhân tạo

ANN _ Artificial Neural Networks Mang nơ ron nhân tao CNN Convolutional Neural Networks Mang nơ ron tích chap

DL Deep Learning Hoc sau

FC Fully Connected Layer Lớp kết nối đầy đủ

LSTM Long Short Term Memory Mang bộ nhớ dài ngắn

ML Machine Learning Học máy

RNN _ Recurrent Neural Network Mạng nơ ron hồi quy

ReLU Rectified Linear Unit Ham kich hoat ReLU

SQLi SQL Injection Tan cong SQL InjectionXSS Cross-site Scripting Tấn công XSS

Trang 12

TÓM TẮT

Các ứng dụng web luôn là mục tiêu phổ biến cho các cuộc tấn mạng vì

chúng có thể dễ dàng truy cập và thường chứa các lỗ hổng trong quá trình

phát triển Vì vậy, phát hiện tắn công và bảo vệ ứng dụng web là một trongnhững quan tâm hàng đầu đối với an ninh mạng Các kỹ thuật phát hiệnxâm nhập truyền thống mặc dù phổ biến và hiệu quả trong việc giám sát,phát hiện và đưa ra các cảnh báo khi có cuộc tan công vào ứng dụng webnhưng vẫn còn nhiều hạn chế: Thứ nhất, các kỹ thuật truyền thống cần

các quy tắc định nghĩa từ trước (signatures) nên không có khả năng phát

hiện những tan công mới hoặc biến thể của các loại tan công Thứ hai, hệthống phải được cấu hình một cách thủ công Điều này làm tốn thời gian vàđòi hỏi những kiến thức chuyên sâu về bảo mật Học sâu (Deep Learning -

DL) là một phương pháp trong học máy (MachineLearning - ML) và trí tuệ

nhân tạo (Artificial Intelligence - AI) dang là hướng tiếp cận mới với hiệuquả vượt trội hơn những kỹ thuật phát hiện tấn công web truyền thống vàcòn giải quyết được nhiều bài toán mà những kỹ thuật học máy cũ khó làmđược Trong dé tai này nhóm tác giả thực hiện nghiên cứu, đánh giá tính

khả thi và áp dụng kỹ thuật mạng nơ-ron tích chập (Convolutional Neural

Network - CNN) - một kỹ thuật tiên tiễn của học sâu, để xây dựng giảipháp phát hiện tấn công Cross-site scripting (XSS) va SQL Injection Kếtqua cho thấy mô hình có độ chính xác cao với micro F1 là 0.9964 và macro

F1 là 0.9962 khi sử dụng tập kiểm tra mà nhóm tác giả thu thập Nhóm tác

Trang 13

giả đã triển khai mô hình trong môi trường Docker Nhóm tác giả cũng đã

triển khai ứng dụng web và tích hợp với mô hình đã huấn luyện Mô hìnhcủa nhóm tác giả có thể ứng dụng vào thực tế và dễ dàng tích hợp vào ứng

dụng web.

Trang 14

1.1 Đặt van dé

Báo cáo của Gartner ghi nhận rằng có 75% các cuộc tan công được phát hiện ở lớp

ứng dụng và web server là mục tiêu chính của tin tặc trong các sự cố an ninh mạngnhững năm gần đây [1] Có hai lý do khiến web server bị tin tặc nhắm vào: Thứ nhất

là có hàng triệu thông tin nhạy cảm của người dùng được lưu trữ trên cơ sở dit liệu

của server, tin tặc có thể giả mạo hay bán những dữ liệu đánh cắp được Mặt khác, kẻ

tan công có thể chèn mã độc vào tài liệu nguồn của server và người dùng sẽ thành nạnnhân khi truy cập trình duyệt hay tải tài liệu mà không hề hay biết [1] Trong bối cảnh

mà các doanh nghiệp đang dần chuyển đổi số, lượng thông tin nhạy cảm càng tăng thìcác loại tấn công web ngày càng đa dạng Trong đó, SQL Injection đứng thứ nhất va

Cross-site Scripting (XSS) đứng thứ 7 trong danh sách 10 lỗ hỏng bảo mật web phổ

biến nhất theo chuẩn OWASP 2017 (OWASP Top Ten) [2] là những loại tấn công phổ

biến có thể vô hiệu hóa dịch vụ web, đánh cắp thông tin nhạy cảm của người dùng, gây

ra những tổn thất đáng kể cho cả nhà cung cấp dịch vụ và người dùng

Trang 15

Trong 9 tháng đầu năm 2020, hệ thống CyStack Attack Map ghi nhận 343.365 vụtấn công vào website trên quy mô toàn cau Tin mừng là số lượng tan công trên đã giảm24,7% so với cùng kỳ năm trước [3] Điều này cho thấy các phương pháp phát hiện,phòng ngừa tấn công ứng dụng web đã được phát triển tích cực Các kỹ thuật phát hiệntấn công web như: Phân tích tĩnh, phát hiện bất thường, hệ thống phát hiện và ngăn

chặn xâm nhập (IDS/IPS), web application firewalls (WAFs), Honeypot/Honeynet,

khá phổ biến và hiệu quả nhưng vẫn còn nhiều hạn chế vì thiếu tính linh hoạt, cần cầu

hình thủ công nên tốn nhiễu thời gian, phụ thuộc vào các quy tắc được định nghĩa trước

và bị giới hạn trong việc phân biệt đoạn mã độc trong những đoạn mã vô hại hay các

dang tấn công biến thể Trong khi đó, những năm gần đây học sâu (Deep Learning

-DL) đang là kỹ thuật tiềm năng trong việc phát hiện tấn công ứng dụng web Học sâu

có thể khắc phục được những hạn chế của các phương pháp truyền thống Hơn nữa,

một số kỹ thuật trong hoc sâu như mạng nơron nhân tao (Artificial Neural Network

-ANN), mạng no-ron tích chập (Convolutional Neural Networ - CNN), mạng bộ nhớ dài

ngắn (Long Short-Term Memory - LSTM) dang thể hiện ưu việt của nó trong phát hiện

tan công ứng dụng web với độ chính xác cao

1.2 Mục tiêu nghiên cứu

Thông qua khóa luận này, nhóm tác giả muốn thực hiện được các mục tiêu sau:

» Nghiên cứu về các kỹ thuật học sâu, tập trung vào các kỹ thuật Artificial Neural

Network và Convolutional Neural Network.

* Thiết kế và triển khai mô hình thực nghiệm va sử dung kỹ thuật ConvolutionalNeural Network trong phát hiện tấn công ứng dụng web Tập trung vào hai tấn

công SQL Injection và Cross-site Scripting.

Trang 16

¢ Đánh giá hiệu quả, cải thiện mô hình học sâu đã xây dựng va đưa ra định hướng

phát triển.

1.3 Đôi tượng nghiên cứu

Trong khóa luận này, nhóm tác giả sẽ nghiên cứu:

» Các kỹ thuật Deep Learning phổ biến

* Các nền tảng mã nguồn mở trong triển khai các mô hình Deep Learning

* Các loại tấn công ứng dụng web phổ biến Tập trung vào hai loại tan công phổ

biến là XSS và SOL Injection

1.4 Pham vi nghiên cứu

¢ Tap trung vào kỹ thuật mang nơ-ron nhân tao (Artificial Neural Network - ANN),

mạng nơ-ron tích chập (Convolutional Neural Network - CNN) va sử dung các

tập dữ liệu tan công ứng dụng web phổ biến, được chia sẻ và đánh giá cao bởi

cộng đồng nghiên cứu

» Tap trung vào hai loại tan công phổ biến là XSS va SOL Injection

1.5 Cấu trúc của khóa luận

Ngoài phần mục lục, danh mục các từ viết tắt, danh mục hình ảnh, danh mục bảng,

tài liệu tham khảo và phụ lục khóa luận được bố cục thành 5 chương như sau:

Trang 17

Chương 1 - Mở đầu

Đặt vấn đề và trình bày sơ lược về mục đích, đối tượng và phạm vi nghiên cứu

Chương 2 - Cở sở lý thuyết và các nghiên cứu liên quan

Trình bày và giải thích các cơ sở lý thuyết liên quan đến học sâu, mạng nơ-ron nhântạo, mạng nơ-ron tích chập Trình bày khái niệm một số tấn công ứng dụng web phổbiến và nguy cơ của chúng Trình bày một số phương pháp phát hiện và ngăn chặn tancông ứng dụng web truyền thống Bên cạnh đó, trình bày về tình hình nghiên cứu vềphát hiện tan công ứng dụng web có sử dung học sâu

Chương 3 - Phân tích và thiết kế mô hình

Tiến hành phân tích và xây dựng mô hình để huấn luyện Giải thích các tiêu chí

đánh giá một mô hình Cách tính toán đánh giá một mô hình Thực hiện thiết kế và

triển khai môi trường thực nghiệm.

Chương 4 - Thực nghiệm

Trinh bày về các nguồn thu thập tập dữ liệu và cách xử lý dữ liệu Triển khai môitrường huấn luyện mô hình Dua ra đánh giá kết quả của mô hình đã huấn luyện với

các tiêu chí đã trình bày So sánh mô hình của nhóm tác giả với mô hình của nghiên

cứu khác bằng cách sử dụng cùng tập dữ liệu để huấn luyện và thực nghiệm.

Chương 5 - Kết luận và hướng phát triển

Tổng kết các nội dung đã nghiên cứu trong đề tài Từ đó đề xuất các hướng pháttriển của đề tài có thể tiếp tục thực hiện trong tương lai

Trang 18

Chương 2

CƠ SỞ LÝ THUYET VA CÁC

NGHIÊN CỨU LIÊN QUAN

2.1 Học sâu và mang nơ-ron nhân tạo

2.1.1 Giới thiệu

Học sâu (Deep Learning - DL) là một phương pháp trong học máy (Machine

Learning - ML) và (Artificial Intelligence - AI) Trong những năm gần đây học sâuphát triển mạnh vì sự phát triển của dữ liệu lớn (Big data) và GPU cho phép giải quyếtnhiều bài toán phức tạp và nhanh

Theo [4], năm 2006, Geoffrey Hinton và các cộng sự đã xuất bản một bài báohướng dẫn cách huấn luyện một mạng nơ-ron sâu (deep neural network) có khả năngnhận dạng các chữ số viết tay với độ chính xác tối tân (> 98%) Họ đặt tên cho kỹ thuật

này là “Deep Learning” Bài báo này thu hút sự quan tâm của cộng đồng khoa học và

trước đó không lâu, nhiều bài báo mới đã chứng minh rằng học sâu có khả năng đạt

Trang 19

được những thành tựu đáng kinh ngạc mà không có kỹ thuật học máy nào khác có thểđạt được (với sự trợ giúp của sức mạnh tính toán to lớn và một lượng lớn dữ liệu).

Hình 2.1: Hình thể hiện học sâu là một nhánh của ML va DL [5].

Học sâu không chỉ giải quyết được những bài toán của toán học truyền thốngtrong học máy như phân lớp (Classification), hồi quy (Regression), học tăng cường

(Reinforcement Learning) mà còn có khả năng:

«Biểu diễn dữ liệu dưới dang vector (Representation Learning): Ví du ta có hai từ

gần nghĩa với nhau khi biểu diễn ra vector thì hai vector phải gần nhau Đối với

Trang 20

phương pháp học máy truyền thống khó làm được điều này.

* Có thể huấn luyện trên dữ liệu không được gán nhãn (Data Synthesis): Ví dụ đưa

vào một tập dữ liệu mặt người và mô hình sau khi huấn luyện có thể tự sinh ra

2.1.2 Mang nơ ron nhân tao

Mang nơ-ron nhân tao (Artificial Neural Network - ANN) là các hệ thông thần kinhnhân tạo được lấy cảm hứng từ các quá trình hoạt động của não người [6]

Theo [4], ANN đã tổn tại khá lâu và lần đầu tiên chúng được giới thiệu trở lại năm

1943 bởi Warren McCulloch và nhà toán hoc Walter Pitts Trong bài báo "A Logical

Calculus of Ideas Immanent in Nervous Activity", McCulloch va Pitts đã trình bày một

mô hình tinh toán đơn giản về cách các tế bao nơ-ron sinh hoc có thể hoạt động cùngnhau trong não động vật để thực hiện tính toán sử dung propositional logic Đây là kiếntrúc mạng nơ-ron nhân tạo đầu tiên Tuy nhiên ANN đã bị lãng quên trong một thờigian dài và ngày nay, sự phát triển của lượng dif liệu lớn và sự gia tăng mạnh mẽ về sứcmạnh tính toán, các thuật toán huấn luyện được cải thiện đã khiến cho ANN được quantâm trở lại và ngày càng tạo ra nhiều sản phẩm tuyệt vời

Trang 21

Mô hình ANN

Một mô hình ANN gồm có lớp đầu vào (input layer), lớp ẩn (hidden layer) và lớpđầu ra (output layer) như hình 2.2 Lớp input và output chỉ có một lớp nhưng có thể cónhiều lớp ẩn Mỗi hình tròn trong hình 2.2 được gọi là một node

eat

Input Layer Hidden Layer Output Layer

Hình 2.2: Các lớp của mô hình ANN.

Perceptron

Hoạt động của mỗi node trong lớp ẩn còn được gọi là perceptron Perceptron là

một trong những kiến trúc ANN đơn giản nhất, được phát minh vào năm 1957 bởi

Frank Rosenblatt [4] Mạng nơ-ron một lớp cũng được gọi là perceptron Trong một

perceptron sẽ cho một đầu ra duy nhất Hoạt động của một perceptron được thể hiện

trong hình 2.3.

10

Trang 22

n ẩ : a a

>» MiXi ƒ@) = "

i=0 Py

Hình 2.3: Hoạt động trong một perceptron.

Một mẫu dữ liệu đầu vào là một vector có n chiều gồm từ x; đến x, và 1 Các dữ

liệu đầu vào của một mô hình luôn có vector bằng nhau Một mẫu dé liệu có n chiều

thì perceptron có n trọng sô (weight) là các wo, w\, Wn Chú ý đầu vào còn có thêmmột hệ số 1

Tiếp theo ta tính tổng các weight và x tương ứng Nhận thấy 1 x wo luôn bằng wo,

giá trị wo này được gọi là bias Giả sử giá trị đầu ra của ta là y, rõ ràng y = w.x, đường

thang y = w.x luôn đi qua gốc tọa độ nên việc cộng thêm bias giúp mô hình linh hoạt

hơn.

Sau đó ta cho kết quả đó vào hàm kích hoạt (activation function) Ham này để giả

lập kích hoạt điện nơ-ron trong não người Khi cho kết quả đầu ra qua hàm này sẽ giúp

khống chế đầu ra trong khoảng [0,1] hay [-1, 1], tùy theo hàm kích hoạt mà ta sử dung.Nếu không có activation function thì mô hình rất lâu mới có thể hội tu Activationfunction trong ví dụ hình 2.3 là hàm binary Có một số hàm kích hoạt thông dung:

* Binary function: là một hàm kích hoạt dựa trên ngưỡng Nếu giá trị đầu vào caohơn hoặc thấp hơn một ngưỡng nhất định, tế bào thần kinh sẽ được kích hoạt và

gửi chính xác cùng một tín hiệu đến lớp tiếp theo

11

Trang 23

f(x) 1 nếu x >

x)=

Onéux <= 0

Hinh 2.4: Binary.

¢ Sigmoid: là một hàm toán học có đường cong hình chữ “S” đặc trưng, đường

cong này nằm trong khoảng từ 0 đến 1.

¢ Tanh: có phạm vi trong khoảng [-1,1].

* ReLU (Rectified Linear Unit): là hàm kích hoạt được sử dụng nhiều nhất trong

CNN và ANN, có phạm vi từ 0 đến vô cùng [0, oo] ReLU đã trở nên rất phổ biếntrong vài năm gần đây, nó thường được triển khai trong các lớp ẩn của ANN, đặcbiệt là trong hầu hết các mạng nơ-ron tích chập [7]

Sigmoid Tanh ReLU

Trang 24

* Softmax: là hàm kích hoạt thường thấy trong bài toán phân loại nhiều lớp trong

học sâu Softmax thường được dùng ở lớp output của mạng nơ-ron Hàm softmax

tính giá trị đầu ra là xác xuất của các lớp [8] Hàm softmax được định nghĩa như

sau [9]:

es

ve, c*

P(y = jx) = ,Với zj = w¿x, K là số lớp, z € R*

Mô hình tổng quát của ANN được thể hiện trong hình 2.6 Mỗi node trong lớp ẩn

(màu tim) và node trong lớp đầu ra (màu đỏ) được tính như cách hoạt động trong một

perceptron Kết quả đầu ra của lớp này lại là đầu vào của lớp tiếp theo Như vậy, mỗinode trong lớp ẩn và lớp đầu ra đều liên kết với tất cả các node ở lớp phía trước đó với

các hệ so weight va bias riêng.

input output

values values

Hình 2.6: Mô hình tổng quát ANN [10]

13

Trang 25

Lan truyền tiễn (Forward Propagation)

Đầu tiên ta bat đầu với một số kí hiệu để đề cập đến các trọng số một cách rõ ràng.

Gọi wit là weight từ nơ-ron thứ k ở lớp (1-1) đến nơ-ron thứ j của lớp 1 Bias kí hiệu là

bi là vi tri bias để tính giá trị của node thứ j tại lớp 1 Giá trị tai một node tại vi trí thứ

k ở lớp I là dị Cách tính giá trị này đã được mô tả trong phần percepfron ở trên Hình

2.7 là ví dụ về các kí hiệu trên.

Hình 2.7: Kí hiệu.

Ta có công thức tổng quát tinh output cho node tại lớp | vị trí thứ j là:

l I I-14 pl

Ví du tai node thứ 1 của lớp thứ 2 của hình 2.7 ta thực hiện tinh như tính một

perceptron đã trình bay ở trên Ta tính tổng các weight và a (giá trị của một node)

tương ứng rồi cộng bias

14

Trang 26

một lớp và máy tính sé random weight và bias Dé máy tự tìm được weight va bias tốt

cần sử dụng thuật toán lan truyền ngược

Lan truyền ngược (Back Propagation)

Cần một ham để đánh giá độ tốt của mô hình tức là giá tri dự đoán càng gần giá tri

thực tế càng tốt Sau khi có giá trị dự đoán của một đối tượng ta cần kiểm tra giá trị dựđoán sai số bao nhiêu so với giá trị thực tế Dé làm điều này ta sử dụng hàm mat mát(lost function) hay còn được gọi là hàm lỗi (error function) để kiểm tra Hàm mất máttrong bài này sẽ kí hiệu C là tổng giá trị hàm lỗi của các output Một ví dụ về hàm lỗi

là lỗi bình phương trung bình ( mean squared error cost function) [9].

C= 2 giá trị dự đoán — giá trị thực tế)”

Để dự đoán chính xác, người ta cần giảm thiểu sai số tính toán Rõ ràng giá trị lỗihay giá trị của loss function càng nhỏ càng tốt Giá trị này liên kết với tat cả các node

phía trước nó trong mạng nơ-ron, tức là nếu ta muốn giảm loss function ta cần điều

15

Trang 27

chỉnh tất cả các trọng số Các trọng số được sửa đổi bằng cách sử dụng một hàm được

gọi là hàm tối ưu hóa (optimize function) kết hợp với phương pháp back propagation

Back propagation là ta sẽ bắt đầu từ node output quay ngược lại các node phía

trước nó đến input, thực hiện tính toán optimize function 6 từng node mà ta cần cậpnhật trọng số để điều chỉnh từng weight trong mạng theo tỉ lệ với mức độ đóng góp của

giá trị loss function chung Nếu chúng ta lặp đi lặp lại, giảm từng lỗi và cập nhật weight

cuối cùng chúng ta sẽ có một loạt các weight tạo ra một mạng có thể dự đoán tốt Hàm

tối ưu hóa có nhiều loại Các hàm tối ưu hóa thường tính toán gradient tức là dao hàm

riêng của hàm mat mát đối với trọng số và trọng số được sửa đổi theo hướng ngược lạivới gradient được tính toán Chu kỳ này được lặp lại cho đến khi hàm mat mát đạt cực

tiểu

Dưới đây là cách cập nhật trọng số sử dung gradient Trong đó learning rate viết tắt

là 7, u là cập nhật (update), p là dự đoán (predict), nu là need update (cần cập nhật)

Learning rate là tốc độ học được thiết lập bởi nhà thiết kế thuật toán Nếu chúng ta sử

dụng tốc độ học quá nhỏ sẽ khiến trọng số cập nhật rất chậm, không đạt được tiến độ.

Ngược lại, nếu chúng ta sử dụng tỷ lệ học tập cao quá mức chúng sé bi phân kỳ [11]

oCOWnu

Wy = Wp — xT]

Trong do: oc là dao hàm của ham mat mát theo weight cần cập nhật.

Ap dụng quy tắc chuỗi (chain rule*) để tính đạo hàm của hàm mat mát theo weight cần cập nhật Quy tắc được mô tả như sau nếu z = f(y) và y = g(x) hay z(ƒ(ø(z)) thì:

Trang 28

Quá trình tính sóc của tất cả các weight trong mô hình lần lượt từ output trở về

input được gọi là lan truyền ngược

Các trọng số của mạng được chọn ngẫu nhiên, quá trình lan truyền tiến và lan truyềnngược sẽ thực hiện rồi lặp lại cho đến khi giá trị của hàm lỗi đủ nhỏ thì dừng [12]

2.2 Mạng nơ-ron tích chập

Mang nơ-ron tích chập (Convolutional Neural Network - CNN) được giới thiệu lầnđầu vào những năm 1980 bởi Yann LeCun - một nhà nghiên cứu khoa học máy tính.LeCun đã xây dựng dựa trên neocognitron - một mạng nơ-ron nhận dạng hình ảnh rat

cơ bản được thực hiện bởi Kunihiko Fukushima [4].

CNN gồm các lớp 4 lớp chính: đầu vào, lớp tích chập (Convolution), lớp gdp(Pooling), lớp kết nối đầy đủ (Fully Connected)

Convolutions Pooling Fully Connected

Hình 2.8: Các lớp của mô hình CNN [13].

17

Trang 29

Có thể nói lớp tích chập là lớp cực ki quan trọng trong CNN, bởi vì lớp này thực

hiện mọi phép tính toán Mục tiêu của lớp tích chập là trích chọn các đặc trưng của đầu

vào Lớp tích chập sử dụng các ma trận bộ lọc (Filter - kernel) kích thước k x k, với

k là số lẻ, nhân tích chập với đầu vào Kết quả đầu ra gọi là bản đồ tính nang (featuremap) hay bản đồ kích hoạt (activation map)

Cách nhân tích chập được thể hiện trong ví dụ ở hình 2.10

18

Trang 30

Ma trận bộ lọc F trong hình có kích thước 3 x 3 sẽ nhân với vùng ảnh được chon

A để tích chập (vùng màu đỏ trong phần I) Vùng ảnh được chọn để tích chập phải có

kích thước bằng với filter.

Kết quả đầu ra là ma trận O là phép nhân tích chập filter với từng ma trận A (tươngứng với kích thước filter và chiều sâu) được lay ra từ input Sau đó trượt s bước theochiều ngang và dọc để tiếp tục nhân tích chập rồi cộng lại

Trang 31

Kí hiệu phép tinh convolution O = A&@ Ƒ

Giá trị mỗi phan tử ma trận O khi ma trận A nhân tích chập với ma trận F là tổngcác phan tử của phép tính element-wise của ma trận A và F

Ớii =AIiXửii +AI3 X Fla+Aha X F13 + ai X F2i + A22 X F22 + A23 X F23 + an X

HẠị + A32 X F32 + A33 x F33 = 4x I+9x 013 2x( 1) +5x1+6x04 2x ( 1) t

2x1+4x0+5xI=2

Tương tự, ta cũng tính được giá trị các phần tử còn lại của ma trận O

Độ sâu hay kênh (channels) của filter luôn bằng độ sâu của input Trường hợp có

thêm độ sâu ta nhân tích chập từng channel của filter với channel tưởng ứng của ma

trận A được lấy ra từ input rồi cộng lại như hình 2.11

Hình 2.11: Nhân tích chập có độ sâu là 3 [14].

b) Bước nhảy (Stride)

Với s =k, ta sẽ nhảy k bước theo chiều ngang và dọc của Input như hình 2.12

20

Trang 32

Input Filter Result

: f=3 [i =2°1 + 5:04 3%1)+

-c~=~~~x=xee Stride: s= 2 2*1+4*0+3*(-1)+

p=o 5*1 + 4*0 + 2*(-1)

Dimension: 6 x 6

Filter with stride (s) = 2

Hình 2.12: Filter có bước nhảy s = 2 [14].

c) Dém (Padding)

Như ở trên thi mỗi lần thực hiện phép tinh convolution xong thì kích thước ma tranoutput đều nhỏ hơn input Tuy nhiên giờ ta muốn ma trận O thu được có kích thước

bang ma trận I => Thêm giá trị 0 ở viền ngoài ma trận I.

Với p =k, ta thêm k vector 0 vào trên dưới trái phải của input như hình 2.13.

Trang 33

d) Sau khi tích chập

Lớp tiếp theo sau khi tích chập là phi tuyến tính (non linear function) Các phi tuyến

tính có thể được sử dung để điều chỉnh hoặc cắt bỏ output Lớp nay được áp dụng để

bão hòa đầu ra hoặc hạn chế sản lượng được tạo ra

Sau khi tính tích chập ta được đầu ra O Thực hiện như hình 2.14 Lay O + biasrồi tính hàm kích hoạt (activation function) của O + b Các hàm kích hoạt là hàm phituyến tính

22

Trang 34

Tổng số tham số của layer: Mỗi kernel có kích thước F x F x D và có 1 hệ số bias,nên tổng tham số của một kernel là F x F x D~+ 1 Mà convolutional layer áp dụng Kfilter => Tổng số tham số trong layer này là K x (F x F x D+1).

Một convolution có thể có nhiều filter Số lượng filter bằng số lượng output Một

mô hình mạng CNN có thể có nhiều lớp tích chập

2.2.3 Lớp pooling

Ý tưởng chính của việc gộp (pooling) là lay mẫu nhỏ để giảm độ phức tap cho

các lớp tiếp theo Ví dụ như trong hình ảnh, pooling tương tự như giảm độ phân giải

Pooling không ảnh hưởng đến số lượng bộ loc (filter) Gộp tối đa (Max pooling) là một

trong những loại phổ biến nhất của phương pháp gdp Max pooling phân vùng hình ảnh

thành các vùng nhỏ hơn hình chữ nhật và chỉ trả về giá trị lớn nhất bên trong vùng đó

Một trong những kích thước phổ biến được sử dụng trong max pooling là 2 x 2 [15]

Có thể thấy trong hình 2.15, gộp tối đa được thực hiện trong các vùng 2 x 2, đầu tiên

là trên cùng bên trái (vùng màu tím), nó di chuyển 2 và thực hiện trên vùng màu vàng,

sau đó là vùng màu xanh lá cuối cùng là vùng xanh dương Điều này có nghĩa rằng

stride = 2 đã được sử dụng Ở lớp gộp, ta có thể áp dụng cả stride và padding Đôi với

average pooling, làm tương tự như max pooling, chỉ khác là thay vì lấy giá trị lớn nhấtbên trong vùng nhỏ ta lấy giá trị trung bình của tất cả phần tử trong vùng nhỏ đó như

hình 2.15:

Hình 2.15: Gộp cực dai va gộp trung bình [14].

23

Trang 35

Trường hợp với input có chiều sâu ta cũng pooling tương tự từng channel như hình

2.16:

6x6öx43

Hình 2.16: Max pooling có chiều sâu [14]

Trong một số mô hình người ta dùng convolutional layer với stride lồn hơn 1 để

giảm kích thước dữ liệu thay vì sử dụng pooling layer.

Trang 36

Hình 2.17: Flattening [16].

2.2.5 Lớp kết nói day đủ

Theo [15], lớp được kết nối day đủ (Fully Connected Layer - FC) tương tự như cách

mà các tế bào thần kinh được sắp xếp trong một mạng nơ-ron truyền thống Do đó, mỗi nút trong một lớp được kết nối đầy đủ được kết nối trực tiếp với mọi nút trong cả lớp

trước và lớp tiếp theo như trong 2.18 FC là lớp như mạng nơ-ron nhân tạo Ta đã biếtđầu vào của mạng nơ-ron nhân tạo là một vector, đó là lý do ta phải thực hiện flattening

trước đó.

25

Trang 37

Tổng quan các lớp trong mạng nơ-ron tích chập được thể hiện trong hình 4.15:

2.3 Các loại tan công ứng dung web phổ biến

Open Web Application Security Project (OWASP) là một tổ chức phi lợi nhuận,

hoạt động để cải thiện tính bảo mật của phần mềm Thông qua các dự án phần mềm mãnguồn mở do các cộng đồng lãnh đạo, hàng trăm chi hội địa phương trên toàn thé giới

và hàng chục nghìn thành viên và các hội nghị giáo dục và đào tạo hàng đầu Nền tảngOWASP là nguồn cho các nhà phát triển và nhà công nghệ để bảo mật web OWASP

có một dự án được gọi là OWASP Top Ten để liệt kê 10 tấn công phổ biến nhất VớiOWASP Top Ten - 2017 [2], 10 tan công ứng dụng web đó là :

1 Injection

2 Broken Authentication

3 Sensitive Data Exposure

4 XML External Entities (XXE)

5 Broken Access Control

26

Trang 38

Security Misconfiguration

Cross-Site Scripting XSS

Insecure Deserialization

Using Components with Known Vulnerabilities

Insufficient Logging and Monitoring

Theo kết qua báo cáo của Imperva Research Labs về mối de doa liên quan đến các

lỗ hổng cho các ứng dụng web và cơ sở dữ liệu trong năm 2020 [17], thì tấn công ứngdung web đứng thứ nhất và thứ bảy OWASP Top Ten là lỗ hỏng phổ biến nhất vào năm

2020 Cross-Site Scripting (XSS) chiêm 28% tổng sô lỗ hổng và đứng thứ hai là SOL

Injection với 15,66% Điều này cho thay XSS va SQL Injection là hai tan công ứngdụng web phổ biến trong những năm gần đây

1 SQL Injection:

Cấu trúc ngôn ngữ truy van dữ liệu (Structured Query Language - SQL) là một

ngôn ngữ thông dịch được sử dụng trong cơ sở dữ liệu của các ứng dụng web để

truy vấn, trích xuất, thay đổi dữ liệu Nếu điều này được thực hiện trong một cáchkhông an toàn, thì ứng dụng web có thể dễ bị tấn công tan công SQL Injection,

tức là nếu dif liệu do người dùng cung cấp không được xác thực đúng cách thìngười dùng có thể sửa đổi hoặc tạo ra một câu lệnh SQL và có thể thực thi mãtùy ý trên máy đích hoặc sửa đổi nội dung của cơ sở đữ liệu [18]

Cross-site Scripting

Kẻ tan công tự dựng máy chủ hoặc chèn mã tắn công được viết ở dang tĩnh hoặc

động với nội dung khác nhau như HTML, Java, JavaScript, ActiveX, Flash Khi

kẻ tan công yêu cầu trình duyệt của người dùng thực thi script, script sẽ chạy

27

Trang 39

trong ngữ cảnh bảo mật (hoặc vùng) của trang web lưu trữ Với loại đặc quyềnnày, mã ứng dụng có khả năng đọc, thay đổi và truyền bắt kỳ dữ liệu quan trọngnào mà từ trình duyệt có thể truy cập được Một cuộc tấn công XSS thành côngcho phép kẻ tấn công chiếm đoạt tài khoản của người dùng thông qua cookie,chuyển hướng người dùng đến một trang web khác từ trang web đã truy cập vàtạo điều kiện cho các loại tan công khác như tan công lừa dao (Phishing) hoặctan công từng lần tải xuống (Drive-by-downloads) Kiểu tan công XSS gây ra rủi

ro đáng kể trong trường hợp trình duyệt tương tác chặt chẽ với các hệ thống tệptrên máy tính của người dùng để tải nội dung Các cuộc tấn công XSS thườngđược sử dụng để chiếm quyền điều khiển các phiên của người dùng truy cập các

trang web hỗ trợ thương mại điện tử, trong đó script độc hại hay code chạy trên

máy của người dùng và kẻ tấn công có thể nắm bắt cookie, thông tin về trình

duyệt của người dùng cho phép kẻ tan công chiếm quyén điều khiển phiên [18]

2.4 Các ky thuật phát hiện tan công web

Có nhiều kỹ thuật phát hiện và ngăn chặn tấn công web truyền thống như:

¢ Hé thống phát hiện và ngăn chặn xâm nhập (Intrusion Detection and Prevention

Systems - IDS/IPS): Chủ yêu được sử dung để xác định các mối de dọa có thể xảy

ra, ghi nhật ký thông tin về chúng, cố gắng ngăn chặn chúng và báo cáo thông tincho bộ phận an ninh các nhà quản trị IDPS có thể tự ngăn chặn cuộc tan công,

thay đổi môi trường bảo mật bằng cách cấu hình lại tường lửa hoặc thay đổi bản

chất của cuộc tan công IDPS cũng có thể ứng phó với sự xâm nhập trong thiết bị

di động mạng không dây phụ thuộc vào loại hoặc bản chất cụ thể của một cuộc

xâm nhập và các giao thức được sử dụng Công nghệ IDPS không chỉ phát hiện

hoạt động đáng ngờ mà còn ngăn nó thành công bằng các phản hồi tự động [19].

28

Trang 40

¢ Tường lửa ứng dụng web (Web Application Firewall - WAF): giúp bảo vệ các

ứng dụng web bằng cách lọc và giám sát lưu lượng HTTP giữa ứng dụng web

va Internet WAF là một giao thức bảo vệ lớp ứng dung (application) trong môhình OSI WAF không được thiết kế để chống lại tat cả các loại tan công Phương

pháp giảm thiểu tan công này thường là một phần của bộ công cụ cùng nhau tao

ra một biện pháp phòng thủ toàn diện chống lại một loạt các cuộc tấn công

* Honeypot/honeynet: Spitzner định nghĩa honeypots như một tài nguyên hệ thống

thông tin mà giá trị của nó là khi nó bị sử dụng trái phép hoặc bất hợp pháp tài

nguyên đó Nó cũng có thể được định nghĩa là một tài nguyên máy tính có giá trị

khi bi tan công Một honeypot được cô tình cho phép tan công sau đó được phântích để kỹ thuật viên có thể tìm hiểu về các phương pháp, thủ tục và công cụ mà

kẻ tan công đã sử dụng Honeynet là mỏ rộng hon của honeypot, honeynet là mộtmạng lưới chứa nhiều honeypot [20]

Các kỹ thuật trên khá phổ biến và hiệu quả nhưng vẫn còn nhiều hạn chế vì thiếu

tính linh hoạt, cấu hình thủ công nên tốn nhiều thời gian, cần phụ thuộc vào các quy

tắc được định nghĩa trước và bị giới hạn trong việc phân biệt đoạn mã độc trong những

đoạn mã vô hại hay các dạng tan công biến thể

2.5 Các nghiên cứu liên quan

Yong Fang và các cộng sự [21] đã nghiên cứu mô hình phát hiện tan công Cross-site

Scripting ứng dụng kỹ thuật của học sâu là mạng bộ nhớ dài ngắn (Long Short Term

Memory - LSTM) và dat presicion 99,5 % va recall 97,9%.

Kahim và các cộng sự [22] đề xuất mô hình phát hiện tấn công XSS kết hợp hai kỹthuật CNN và LSTM để tạo ra một mô hình có thể sử dụng trong ứng dụng web Kết

29

Ngày đăng: 23/10/2024, 01:44