Tải bản đầy đủ (.pdf) (65 trang)

Nghiên cứu giải pháp đảm bảo an toàn ứng dụng web (Luận văn thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.03 MB, 65 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN ĐỨC SƠN
NGHIÊN CỨU GIẢI PHÁP
ĐẢM BẢO AN TOÀN ỨNG DỤNG WEB

LUẬN VĂN THẠC SỸ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI – 2018


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN ĐỨC SƠN

NGHIÊN CỨU GIẢI PHÁP
ĐẢM BẢO AN TOÀN ỨNG DỤNG WEB
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8.48.01.04

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

(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. LÊ HỮU LẬP

HÀ NỘI - 2018



i

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 cứ công trình nào.
Tác giả luận văn

Nguyễn Đức Sơn


ii

LỜI CÁM ƠN
Lời đầu tiên em muốn gửi là lời biết ơn chân thành tới PGS.TS Lê Hữu
Lập, người đã tận tâm chỉ dẫn, định hướng cho em trong suốt quá trình học tập
và làm luận văn này. Trong suốt thời gian thực hiện luận văn thầy đã tận tình chỉ
bảo, tạo điều kiện cho em về thời gian và những sự giúp đỡ quý báu về kiến
thức và tài liệu tham khảo để em có thể hoàn thành đề cương, luận văn tốt
nghiệp một cách tốt nhất. Em muốn gửi lời biết ơn chân thành nhất tới toàn thể
các thầy cô trong trường - những người có kiến thức uyên bác, tâm huyết với
học viên, và là tấm gương sáng về nghị lực, lòng say mê khoa học.
Xin gửi lời cám ơn gia đình, đồng nghiệp và những người bạn tốt trong
tập thể lớp cao học M16CQIS01-B, những người bạn luôn đồng hành, giúp đỡ
tôi trong quá trình học tập và thực hiện luận văn.
Cuối cùng em xin kính chúc các thầy cô và toàn thể học viên, sinh viên
trường Học viện Công nghệ Bưu Chính Viễn Thông một sức khỏe dồi dào, sớm
đạt được những thành công trên con đường sự nghiệp. Chúc Nhà trường phát
triển bền vững, xứng đáng là cờ đầu của ngành, sớm vươn xa xứng tầm quốc tế.
Xin trân trọng cám ơn!

Tác giả

Nguyễn Đức Sơn


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CÁM ƠN ............................................................................................................ ii
MỤC LỤC................................................................................................................. iii
DANH MỤC THUẬT NGỮ, CHỮ VIẾT TẮT .................................................... v
DANH SÁCH BẢNG, BIỂU ................................................................................... vi
DANH SÁCH HÌNH VẼ ........................................................................................ vii
MỞ ĐẦU .................................................................................................................... 1
Chương 1: TỔNG QUAN AN TOÀN ỨNG DỤNG WEB ....................................... 2
1.1 Thực trạng an toàn ứng dụng web ..................................................................... 2
1.2 Các kỹ thuật tấn công ứng dụng web ................................................................ 3
1.2.1 Tấn công từ chối dịch vụ ............................................................................ 4
1.2.2 Tấn công SQL Inejection ........................................................................... 9
1.2.3 Tấn công SSL ........................................................................................... 13
1.2.4 Tấn công XSS ........................................................................................... 14
1.2.5 Một số loại tấn công khác ......................................................................... 17
1.3. Ảnh hưởng của các cuộc tấn công ................................................................. 18
1.3.1 Trên thế giới ............................................................................................. 18
1.3.2 Tại Việt Nam ............................................................................................ 21
1.4 Kết chương ...................................................................................................... 23
Chương 2: NGHIÊN CỨU GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG WEB ..... 24
2.1 Phòng chống tấn công từ chối dịch vụ. ........................................................... 24
2.1.1 Phòng chống tấn công từ chối dịch vụ tổng quát ..................................... 24

2.1.2 Biện pháp phòng chống tấn công DDoS .................................................. 25
2.2.1 Các biện pháp phòng chống ở mức lập trình ............................................ 29
2.2.2 Các biện pháp phòng chống ở mức nền tảng ........................................... 30
2.3 Phòng chống tấn công SSL ............................................................................. 32
2.3.1 Sử dụng kết nối an toàn HTTPS ............................................................... 32
2.3.2 Sử dụng các tài khoản trực tuyến an toàn................................................. 33
2.3.3 Bảo mật các thiết bị trong mạng ............................................................... 34


iv

2.3.4 Sử dụng chứng chỉ số tin cậy ................................................................... 34
2.4 Phòng chống tấn công XSS ............................................................................. 35
2.4.1 Lọc ............................................................................................................ 36
2.4.2 Mã hóa đầu vào ........................................................................................ 37
2.4.3 Mã hóa đầu ra ........................................................................................... 37
2.4.4 Bảo mật trình duyệt .................................................................................. 38
2.4.5. Sử dụng máy ảo ....................................................................................... 39
2.4.6. Bảo vệ Web Mail ..................................................................................... 39
2.4.7. Cẩn thận với độ dài chuỗi URL ............................................................... 40
2.5 Phân tích, đánh giá các giải pháp phòng chống tấn công web ........................ 40
Chương 3: ĐỀ XUẤT GIẢI PHÁP AN TOÀN AN NINH MẠNG CỦA TRƯỜNG
ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI .............................................. 43
3.1 Hệ thống web của Trường Đại học Công nghệ Giao thông vận tải. ............... 43
3.2 Đề xuất giải pháp nâng cao độ an toàn an ninh cho các trang web của trường
Đại học Công nghệ Giao thông vận tải ................................................................. 45
3.2.1 Đề xuất giải pháp chung ........................................................................... 46
3.2.1 Đề xuất một số giải pháp cụ thể ............................................................... 47
KẾT LUẬN ............................................................................................................... 54



v

DANH MỤC THUẬT NGỮ, CHỮ VIẾT TẮT
Từ viết tắt Tiếng anh

Tiếng việt

CA

Certificate Authority

Đơn vị chứng thực

DDoS

Distributed Denial of Service

Tấn công từ chối dịch vụ
phân tán

DoS

Denial of Service

Tấn công từ chối dịch vụ

DRDoS

Distributed Reflection Denial of Service


Tấn công từ chối dịch vụ
phản xạ

HTTP

Hypertext Transfer Protocol

Giao thức truyền tải siêu
văn bản

HTTPS

Hypertext Transfer Protocol Secure

Giao thức truyền tải siêu
văn bản bảo mật

ICMP

Internet Control Message Protocol

Giao thức điều khiển thông
điệp internet

IDS

Intrucsion Detection System

Hệ thống phát hiện xâm

nhập

IP

Internet Protocol

Giao thức internet

SGC

Server Gated Cryptography

Mã hóa máy chủ

SIP

Session Initiation Protocol

Giao thức khởi tạo phiên

SSL

Secure Sockets Layer

Tiêu chuẩn bảo mật

TLS

Transport Layer Security


Bảo mật tầng giao vận

UDP

User Datagram Protocol

Giao thức truyền tải người
dùng

URL

Uniform Resource Locator

Định vị tài nguyên thống
nhất

XSS

Cross Site Scripting

Tấn công chèn mã vào
website


vi

DANH SÁCH BẢNG, BIỂU
Bảng 2.1: Các phương pháp mã hóa đầu ra chống XSS ........................................... 38



vii

DANH SÁCH HÌNH VẼ
Hình 1.1 Top 10 tấn công trên ứng dụng web quý 1 2017 ............................................. 2
Hình 1.2 Thuộc tính bảo về ứng dụng web..................................................................... 4
Hình 1.3 Tấn công SYN Flood ....................................................................................... 6
Hình 1.4 Tấn công Reflected Attack .............................................................................. 7
Hình 1.5 Cơ chế tấn công SQL Injection ...................................................................... 10
Hình 1.6 Công cụ tấn công SQL Injection thực hiện thành công ................................. 13
Hình 1.7 Mô hình tấn công SSL ................................................................................... 13
Hình 1.8 Cơ chế thực hiện tấn công XSS ..................................................................... 15
Hình 2.1 Sử dụng phần mềm xác định mạng và ảo hóa chức năng mạng .................... 28
Hình 2.2 Sử dụng IDS đề phòng chống tấn công DDoS .............................................. 29
Hình 2.3 Sử dụng tưởng lửa để chống lại SQL Inejection ........................................... 31
Hình 2.4 Kết nối an toàn và kết nối không an toàn ..................................................... 32
Hình 2.5 Tùy chọn lưu thông tin tài khoản của trình duyệt .......................................... 34
Hình 2.6 Chứng thực SSL ............................................................................................ 35
Hình 2.7 Sử dụng mã hóa PGP với E-mail ................................................................... 40
Hình 3.1 Cổng thông tin điện tử utt.edu.vn .................................................................. 43
Hình 3.2 Chức năng tra cứu quá trình đăng ký học ...................................................... 44
Hình 3.3 Hệ thống thi trắc nghiệm ............................................................................... 45
Hình 3.4 Công cụ Acunetix thống kê số lượng lỗ hổng ............................................... 46
Hình 3.5 Công cụ NMap phát hiện các cổng đang được mở ....................................... 48
Hình 3.6 Công cụ NMap thế hiện hệ thống chưa có tường lửa .................................... 48
Hình 3.7 Sử dụng Wireshark để giám sát các gói tin ................................................... 49
Hình 3.8 Các tính năng hữu ích, miễn phí của Project Shield ...................................... 49
Hình 3.9 Máy chủ qldt.utt.edu.vn không được tường lửa bảo vệ ................................. 50
Hình 3.10 Thiết lập địa chỉ MAC tĩnh .......................................................................... 51
Hình 3.11 Công cụ Cain bắt được các thông tin nhạy cảm gửi tới máy chủ ................ 51
Hình 3.12 Chức năng đăng ký học chưa được kiểm soát chặt chẽ ............................... 52



1

MỞ ĐẦU
Việc thiếu quan tâm và đầu tư đúng mức đến đảm an toàn hệ thống và
dữ liệu của bộ phận chuyên trách dẫn đến các vụ tấn công vào các website rất
phổ biến. Điều này cũng đồng nghĩa với việc dữ liệu có nguy cơ bị đánh cắp,
hệ thống bị ngưng trệ hoặc bị khai thác trái phép là rất lớn khi an ninh hệ
thống không được đảm bảo. Vì vậy cần phải tăng cường khả năng phòng,
chống các nguy cơ tấn công vào các ứng dụng web và biện pháp ngăn chặn,
khắc phục kịp thời các sự cố này.
Việc đi sâu tìm hiểu về các dạng tấn công vào các website sẽ giúp cho
chúng ta hiểu hơn về những lổ hổng trong công tác quản lý website, qua đó
đưa ra những giải pháp giúp các nhà quản lý có những biện pháp khắc phục,
ngăn chặn sự thâm nhập từ bên ngoài, cũng như vai trò quan trọng trong việc
triển khai ứng dụng những công nghệ mới an toàn và bảo mật hơn.
Chính vì vây, học viên đã chọn đề tài “Nghiên cứu giải pháp đảm bảo
an toàn ứng dụng web” làm đề tài luận văn của mình.
Ngoài phần Mở đầu và Kết luận, cấu trúc luận văn gồm 3 chương với mô tả
sơ lược nội dung từng chương như sau:
Chương 1 - Tổng quan an toàn ứng dụng web: Chương này luận văn nêu tổng
quan về thực trạng lỗ hổng an ninh web, kỹ thuật tấn công, các ảnh hưởng khi bị tấn
công.
Chương 2 - Nghiên cứu giải pháp phòng chống tấn công web: Chương này luận
văn tập trung nghiên cứu cách phòng chống một số dạng tấn công phổ biến.
Chương 3 - Đề xuất giải pháp an toàn an ninh mạng của trường Đại học Công
nghệ Giao thông vận tải: Chương này khảo sát, đánh giá, đề xuất giải pháp nâng
cao độ an toàn an ninh mạng của trường Đại học Công nghệ Giao thông vận tải.



2

Chương 1: TỔNG QUAN AN TOÀN ỨNG DỤNG WEB
1.1 Thực trạng an toàn ứng dụng web
Trong cuộc chạy đua số hóa, bùng nổ công nghệ thông tin đã đẩy mạnh các
ứng dụng web để nâng cao khả năng quản lý, phục vụ công việc. Do mong muốn
đưa các ứng dụng này vào thực tế càng nhanh càng tốt nên việc chuẩn bị đầy đủ các
quy trình kiểm soát bảo mật thường xảy ra thiếu sót.
Hình 1.1 là thống kê của Positive Technologies security, trong quý 1 năm
2017 tỉ lệ các cuộc tấn công ứng dụng web

Hình 1.1 Top 10 tấn công trên ứng dụng web quý 1 năm 2017
(Nguồn: pt security.com 2017)

Các ứng dụng web được đưa vào sử dụng quá nhanh chóng nên chưa được
đầu tư kiểm tra an toàn an ninh đầy đủ, thường là không được kiểm tra. Nếu có thì
chỉ là tự dùng một số công cụ/phần mềm để kiểm tra lỗ hổng bảo mật, chưa thuê
công ty bảo mật chuyên nghiệp để thực hiện, có thể vì chi phí khá cao hoặc đội ngũ
bảo mật không chú trọng hoặc không biết rõ về yêu cầu [12].
Người sử dụng cuối không được đào tạo bài bản hoặc không được cảnh báo
về nguy cơ bảo mật nên họ rất dễ mắc sai lầm khi giao dịch trên Internet nên họ
chính là lỗ hổng bảo mật lớn nhất đối với vấn đề an ninh mạng của ứng dụng web.
Đa số các thiết bị bảo mật hiện tại đã cũ, không còn phù hợp với tình hình an
ninh mạng hiện tại, trừ khi vừa mới đầu tư mua mới các thiết bị này. Chẳng hạn như


3

thiết bị tường lửa truyền thống vẫn còn được sử dụng, trong khi nó không thể đảm

bảo an toàn cho hệ thống như các thiết bị tường lửa thế hệ mới.
Việc trang bị thiết bị tường lửa cho ứng dụng web cũng chưa được chú trọng
và đầy đủ. Hoặc đôi khi quá tự tin vào hệ thống tường lửa thế hệ mới vừa được
trang bị nên không chú ý rằng nó không đủ chức năng để bảo vệ các ứng dụng trên
Internet. Hơn nữa việc đầu tư các thiết bị tường lửa cũng khá đắt nên không phải ai
cũng sẵn sàng đầu tư để mua các thiết bị này.
Đội ngũ công nghệ thông tin thường thiếu người chuyên trách về bảo mật và
thường là nhân viên quản trị mạng hoặc quản trị hệ thống kiêm nhiệm công việc này
do thiếu ngân sách cho nhân lực. Do đó việc có nhân viên chuyên trách về bảo mật
cho ứng dụng web là điều khá xa xỉ. Hơn nữa, đội ngũ lập trình ít được đào tạo về
bảo mật trong lập trình nên ít khi họ chú ý đến vấn đề bảo mật trong quá trình lập
trình, họ chỉ chú trong sao cho công việc hoàn thành đúng tiến độ và chạy đúng theo
yêu cầu của người sử dụng. Ngoài ra, đội ngũ chuyên trách về kiến trúc và thiết kế
hệ thống cũng bị thiếu, thường thì cũng kiêm nhiệm.
Chính sách hoặc quy trình bảo mật chưa được xây dựng đầy đủ nên không
ngăn chặn được các nguy cơ về an ninh mạng hoặc nhân viên thực thi sai quy trình
bảo mật hoặc đội ngũ giám sát bảo mật không đủ mạnh để kiểm soát các vấn đề an
ninh mạng.
Những khiếm khuyết kể trên đã được các kẻ tấn công khai thác triệt để để tạo
ra các cuộc tấn công và gây ra rất nhiều tổn thất nặng nề. Có rất nhiều giải pháp
được đưa ra bởi các tổ chức, cá nhân nhưng chưa thực sự có hiệu quả trong vấn đề
phòng chống các cuộc tấn công. Nguy hiểm hơn, các cuộc tấn công vào ứng dụng
web diễn ra rất phức tạp, tinh vi, khó đoán trước và gây ra hậu quả rất lớn.

1.2 Các kỹ thuật tấn công ứng dụng web
Các phương thức tấn công ứng dụng web rất đa dạng về hình thức, quy mô
và thiệt hại gây ra cũng ở nhiều mức khác nhau. Dựa vào nguyên lý hoạt động, các
thuộc tính liên quan mà kẻ tấn công có thể lợi dụng để thực hiện hành vi của mình,
được thể hiện ở hình 1.2



4

Hình 1.2 Thuộc tính bảo về ứng dụng web
(nguồn 2017)

Dưới đây là một số kỹ thuật tấn công phổ biến:

1.2.1 Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ DoS là một sự kiện bảo mật xảy ra khi kẻ tấn công
có hành động ngăn cản người dùng hợp pháp truy cập hệ thống máy tính, thiết bị
hoặc các tài nguyên mạng khác. Trong tấn công từ chối dịch vụ, kẻ tấn công nhằm
vào các máy tính và sử dụng mạng máy tính dùng để ngăn cản truy cập email,
website, tài khoản trực tuyến và các dịch vụ khác [7]. Một kiểu DoS rõ ràng và phổ
biến nhất là kẻ tấn công tạo ra số lượng yêu cầu rất lớn từ máy chủ, hệ thống hoặc
mạng, làm cạn kiệt tài nguyên của nạn nhân, khiến người dùng hợp pháp gặp khó
khăn hoặc thậm chí không thể sử dụng chúng. Cụ thể hơn, khi nhập vào URL của
một website vào trình duyệt, lúc đó người dùng đang gửi một yêu cầu đến máy chủ
của trang này để xem. Máy chủ chỉ có thể xử lý một số yêu cầu nhất định trong một
khoảng thời gian, vì vậy nếu kẻ tấn công làm gửi ồ ạt nhiều yêu cầu đến máy chủ sẽ
làm nó bị quá tải và yêu cầu của họ không được xử lý. Đây là kiểu từ chối dịch vụ
vì nó làm cho người dùng không thể truy cập đến trang đó.
Tấn công từ chối dịch vụ phân tán DDoS là nỗ lực làm sập một dịch vụ trực
tuyến bằng cách làm tràn ngập nó với các yêu cầu từ nhiều nguồn. Trong tấn công
DDoS, một kẻ tấn công có thể sử dụng các máy tính cá nhân để tấn công vào các
máy tính khác. Bằng cách lợi dụng những lỗ hổng về bảo mật cũng như sự không
hiểu biết, kẻ này có thể giành quyền điều khiển máy tính. Sau đó chúng sử dụng
máy tính bị chiếm quyền điều khiển để gửi số lượng lớn dữ liệu đến một website
hoặc gửi thư rác đến một địa chỉ hòm thư nào đó. Tấn công này được được gọi là



5

phân tán vì kẻ tấn công sử dụng nhiều máy tính để thực hiện tấn công Dos. Mặc dù
DDoS cung cấp một chế độ tấn công ít phức tạp hơn các dạng tấn công mạng khác,
nhưng chúng đang ngày càng mạnh mẽ và tinh vi hơn.
Có ba loại tấn công cơ bản:
• Volume-based: Sử dụng lưu lượng truy cập cao để làm tràn ngập băng
thông mạng
• Protocol: Tập trung vào việc khai thác các tài nguyên máy chủ
• Application: Tập trung vào các ứng dụng web và được xem là loại tấn công
tinh vi và nghiêm trọng nhất
Tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS: Để thực hiện,
kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính hoặc mạng máy tính
trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào ạt các gói tin
(packet) với số lượng rất lớn, mục đích chiếm dụng tài nguyên và làm tràn ngập
đường truyền của một mục tiêu xác định nào đó. DRDoS chỉ mới xuất hiện gần đây
nhưng lại là loại nguy hiểm nhất. Nếu được thực hiện bởi các kẻ tấn công chuyên
nghiệp, không một hệ thống nào có thể đứng vững được trước nó. Đáng nói hơn,
hiện cũng đã xuất hiện nhiều loại virus, worm, trojan có chức năng tự động thực
hiện tấn công DoS. Đây có lẽ là kiểu tấn công lợi hại nhất và làm boot máy tính
nhanh gọn nhất. Cách làm thì cũng tương tự như DDos nhưng thay vì tấn công bằng
nhiều máy tính thì người tấn công chỉ cần dùng một máy tấn công thông qua các
server lớn trên thế giới. Vẫn với phương pháp giả mạo địa chỉ IP của victim, kẻ tấn
công sẽ gởi các gói tin đến các server mạnh nhất, nhanh nhất và có đường truyền
rộng nhất, các server này sẽ phản hồi các gói tin đó đến địa chỉ của victim. Việc
cùng một lúc nhận được nhiều gói tin thông qua các server lớn này sẽ nhanh chóng
làm nghẽn đường truyền của máy tính nạn nhân và làm crash, reboot máy tính đó.
Cách tấn công này lợi hại ở chỗ chỉ cần một máy có kết nối Internet đơn giản với
đường truyền bình thường cũng có thể đánh bật được hệ thống có đường truyền tốt

nhất thế giới nếu như không kịp ngăn chặn.
Các kiểu tấn công từ chối dịch vụ phổ biến hiện nay


6

• UDP Flood: UDP là một giao thức kết nối không tin cậy. Một cuộc tấn
công gây ngập lụt UDP có thể được bắt đầu bằng cách gửi một số lượng lớn các gói
tin UDP tới cổng ngẫu nhiên trên một máy chủ từ xa và kết quả là các máy chủ ở xa
sẽ kiểm tra các ứng dụng với cổng, thấy rằng không có ứng dụng nghe ở cổng, trả
lời với một ICMP Destination Unreachable gói.
Như vậy, hệ thống nạn nhân sẽ bị buộc nhận nhiều gói tin ICMP, dẫn đến
mất khả năng xử lý các yêu cầu của các khách hàng thông thường. Những kẻ tấn
công cũng có thể giả mạo địa chỉ IP của gói tin UDP, đảm bảo rằng ICMP gói trở
lại quá mức không tiếp cận họ, và nặc danh hóa vị trí mạng của họ. Hầu hết các hệ
điều hành sẽ giảm nhẹ một phần của cuộc tấn công bằng cách hạn chế tốc độ phản
ứng ICMP được gửi đi.
• SYN Flood: Kiểu tấn công TCP SYN flood là một kiểu tấn công trực tiếp
vào máy chủ bằng cách tạo ra một số lượng lớn các kết nối TCP nhưng không hoàn
thành các kết nối này [6]. Một người dùng bình thường kết nối tới máy chủ ban đầu
thực hiện Request TCP SYN và lúc này máy chủ không còn khả năng đáp lại – kết
nối không được thực hiện. Hình 1.3 mô phỏng một cuộc tấn công SYN Flood

Hình 1.3 Tấn công SYN Flood

Đầu tiên các khách hàng gửi gói tin yêu cầu SYN với số thứ tự x đến các
máy chủ. Các máy chủ đáp ứng bằng cách gửi một thông báo nhận (ACK – SYN) .
Với cờ SYN = y và cờ ACK = x + 1. Khi khách hàng nhận được, khách hàng sẽ
gửi một thông báo nhận (ACK) với cờ y + 1.



7

SYN Flood là một loại tấn công website bằng DDoS. Ở đây, kẻ tấn công gửi
các yêu cầu SYN vĩnh viễn để ăn tài nguyên máy chủ nhiều nhất có thể. Kẻ tấn
công không bao giờ trả lời SYN-ACK hoặc thậm chí nếu nó trả lời nó sử dụng một
địa chỉ IP giả. Vì vậy, các máy chủ không bao giờ nhận được các gói tin trả lời thậm
chí chờ đợi cho đến khi hết thời gian chờ.
• Peer-to-Peer Attacks: Mô hình tấn công DDoS máy chủ thư mục tập chung
Peer-to-Peer là kết nối mạng ngang hàng, nó tạo cơ hội cho kẻ tấn công. Lý do là
thay vì dựa vào một máy chủ trung tâm, một peer sẽ phát trực tiếp một truy vấn vào
mạng, và bất cứ ai có nguồn lực được mong muốn sẽ đáp ứng. Thay vì sử dụng một
máy chủ để đẩy lưu lượng đến đích, máy peer-to-peer được khai thác để định tuyến
lưu lượng đến đích. Khi được thực hiện thành công, kẻ tấn công sử dụng filesharing sẽ được gửi đến mục tiêu (Target) cho đến khi mục tiêu bị quá tải, ngập lụt
và ngừng kết nối.
• Reflected Attack: Còn gọi là tấn công ánh xạ được thực hiên bằng cách gửi
càng nhiều gói tin với địa chỉ giả mạo đến càng nhiều máy tính càng tốt. Các máy
tính nhận được các gói tin sẽ trả lời, nhưng tin trả lời này tới địa chỉ nạn nhân bị giả
mạo. Tất nhiên các máy tính này sẽ cố gắng trả lời ngay lập tức làm trang web bị
ngập lụt đến khi tài nguyên máy chủ bị cạn kiệt (hình 1.4).

Hình 1.4 Tấn công Reflected Attack


8

• Nuke: Các gói tin ICMP độc hại và phân mảnh được gửi qua Ping. Nó đã
được sửa đổi để các gói tin này đến đích. Cuối cùng máy tính nạn nhân sẽ gián đoạn
hoạt động. Cuộc tấn công này tập trung chủ yếu vào mạng máy tính và thuộc loại
cuộc tấn công từ chối dịch vụ kiểu cũ.

• Slowloris: Loại tấn công từ chối dịch vụ phân tán náy rất khó để phát hiện
và hạn chế. Sự việc đáng chú ý nhất là vụ tấn công trong cuộc bầu cử tổng thống
Iran năm 2009. Loại tấn công này có kĩ thuật tương tự như SYN flood (tạo nửa kết
nối để làm cạn kiệt tài nguyên máy chủ) nhưng diễn ra ở lớp HTTP (lớp ứng dụng).
Để tấn công, tin tặc gửi yêu cầu HTTP đến máy chủ, nhưng không gửi toàn bộ yêu
cầu, mà chỉ gửi một phần (và bổ sung nhỏ giọt, để khỏi bị ngắt kết nối). Với hàng
trăm kết nối như vậy, tin tặc chỉ tốn rất ít tài nguyên, nhưng đủ để làm treo máy chủ,
không thể tiếp nhận các kết nối từ người dùng hợp lệ.
• Degradation of Service Attacks: Còn gọi là tấn công làm suy giảm dịch vụ.
Mục đích của cuộc tấn công này là làm chậm thời gian đáp ứng của máy chủ. Thông
thường một cuộc tấn công DDoS nhằm mục đích khiến trang web hoặc máy chủ
không thể thực hiện tác vụ thông thường. Nhưng mục tiêu của kiểu tấn công này là
để làm chậm thời gian phản hồi xuống mức hầu hết mọi người không thể sử dụng
được trang web. Máy tính Zombie được sử dụng để làm tràn máy tính mục tiêu với
lưu lượng truy cập độc hại, nó sẽ gây ra các vấn đề về hiệu suất và thời gian tải
trang. Những loại tấn công này có thể khó phát hiện vì mục tiêu không phải là để
đưa trang web ngừng kết nối, nhưng để làm giảm hiệu suất. Chúng thường bị lẫn
lộn với sự gia tăng lưu lượng sử dụng website.
• Unintentional DDoS: Xảy ra khi có sự tăng đột biến trong lưu lượng web
khiến máy chủ không thể xử lý tất cả các yêu cầu đến. Càng nhiều lưu lượng truy
cập xảy ra, càng nhiều tài nguyên được sử dụng. Điều này khiến thời gian tải trang
hết hạn và cuối cùng server sẽ không phản hồi và ngừng kết nối.
• Application Level Attacks: Nhằm vào mục tiêu là các ứng dụng có nhiều lỗ
hổng. Thay vì cố gắng lụt toàn bộ máy chủ, một kẻ tấn công sẽ tập trung tấn công
vào một hoặc một vài ứng dụng. Các ứng dụng email dựa trên web, WordPress,


9

Joomla và phần mềm diễn đàn là những ví dụ điển hình về các mục tiêu cụ thể của

ứng dụng.
• Multi-Vector Attacks: Là hình thức phức tạp nhất trong các cuộc tấn công
từ chối dịch vụ phân tán DDoS. Thay vì sử dụng một phương pháp đơn lẻ, nó là một
sự kết hợp của nhiều công cụ và chiến lược khác nhau để lụt mục tiêu và làm ngừng
kết nối. Thông thường, các Multi-Vector Attacks tấn công các ứng dụng cụ thể trên
server mục tiêu cũng như làm tràn mục tiêu với một lượng lớn lưu lượng độc hại.
Những kiểu tấn công DDoS kiểu này rất khó để ngăn chặn và hạn chế vì nó là tổng
hợp của các hình thức khác nhau và nhắm mục tiêu với nguồn lực khác nhau cùng
một lúc.
• Zero Day DDoS: Cuộc tấn công dựa vào “Zero Day” chỉ đơn giản là một
phương pháp tấn công mà chưa có bản vá hoặc chưa được ghi nhận trước đây. Đây
là thuật ngữ chung được sử dụng để mô tả các lỗ hổng mới và cách khai thác mới.

1.2.2 Tấn công SQL Inejection
SQL Injection (chèn mã độc SQL) là một kỹ thuật cho phép kẻ tấn công chèn
mã SQL vào dữ liệu gửi đến máy chủ và được thực hiện trên máy chủ cơ sở dữ liệu
[1].
Nguyên nhân: dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác không
được kiểm tra hoặc kiểm tra không kỹ lưỡng.
Cơ chế tấn công được mô tả ở hình 1.5


10

Hình 1.5 Cơ chế tấn công SQL Injection

Tùy mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công:
• Vượt qua các khâu xác thực người dùng
Chẳng hạn form HTML đăng nhập:
<form method="post" action="/test_sql.asp">

Tên đăng nhập: <input type=text name="username">

Mật khẩu: <input type=password name="passwd">

<input type=submit name="login" value="Log In">
</form>
<%
'

Mã asp xử lý đăng nhập trong file test_sql.asp:

'
g.thiết đã k.nối với CSDL SQL qua đối tượng conn và bảng tbl_accounts
lưu t.tin người dùng Dim username, passwd, sqlString, rsLogin
'
lấy dữ liệu từ form
username = Request.Form("username") passwd = Request.Form("passwd")
'
tạo và thực hiện câu truy vấn sql
sqlString = "SELECT * FROM tbl_accounts WHERE username='" &username&"'
AND passwd='" &passwd& "'"
set rsLogin = conn.execute(sqlString)
if (NOT rsLogin.eof()) then
' cho phép đăng nhập, bắt đầu phiên làm việc


11

else
end if
%>
Nếu người dùng nhập admin vào trường username và abc123 vào trường

passwd của form, mã asp hoạt động đúng, nếu tồn tại người dùng với username và
password sẽ cho phép đăng nhập, nếu không tồn tại người dùng với username và
password sẽ từ chối đăng nhập và báo lỗi.
Nếu người dùng nhập aaaa' OR 1=1-- vào trường username và một chuỗi
bất kỳ vào trường passwd của form, mã asp hoạt động sai:
Chuỗi chứa câu truy vấn SQL trở thành:
SELECT * FROM tbl_accounts WHERE username='aaaa' OR 1=1--' AND
passwd='aaaa'
Câu truy vấn sẽ trả về mọi bản ghi trong bảng do mệnh đề OR 1=1 luôn đúng
và phần kiểm tra mật khẩu đã bị loại bỏ bởi ký hiệu (--): phần lệnh sau ký hiệu (--)
được coi là ghi chú và không được thực hiện.
• Chèn, xóa hoặc sửa đổi dữ liệu
Sử dụng các câu lệnh INSERT INTO, DROP TABLE, UPDATE với cấu trúc
tương tự để chèn, xóa hoặc sửa đổi dữ liệu
• Đánh cắp các thông tin trong CSDL
Sử dụng lệnh UNION SELECT, ORDER BY để tìm kiếm các thông tin của
các bảng trong cơ sở dữ liệu.
• Chiếm quyền điều khiển hệ thống
Khả năng máy chủ web bị chiếm quyền điều khiển xảy ra khi website và cơ
sở dữ liệu của nó tồn tại 2 lỗ hổng:
- Lỗ hổng cho phép tấn công chèn mã SQL;
- Lỗ hổng thiết lập quyền truy nhập – sử dụng người dùng có quyền quản trị
để truy nhập và thao tác dữ liệu website.
Tin tặc có thể chèn mã để chạy các thủ tục hệ thống cho phép can thiệp vào
hệ quản trị cơ sở dữ liệu và hệ điều hành. Ví dụ, MS SQL cung cấp các thủ tục hệ
mở rộng:


12


sp_send_dbmail: cho phép gửi email từ cơ sở dữ liệu.
xp_cmdshell: cho phép chạy các lệnh và chương trình cài đặt trên hệ điều hành
windows.
Ví dụ, MS SQL cung cấp các thủ tục hệ mở rộng:
sp_send_dbmail: cho phép gửi email từ cơ sở dữ liệu.
xp_cmdshell: cho phép chạy các lệnh và chương trình cài đặt trên HĐH windows.
EXEC xp_cmdshell 'dir *.exe'
EXEC xp_cmdshell 'shutdown /s /t 00' : tắt máy chủ chạy cơ sở dữ liệu
EXEC xp_cmdshell 'net stop W3SVC' : dừng hoạt động máy chủ web
EXEC xp_cmdshell 'net stop MSSQLSERVER' : dừng hoạt động máy chủ cơ sở dữ
liệu
Ngoài ra, tin tặc có thể thực hiện các thao tác nguy hiểm đến cơ sở dữ liệu
nếu có quyền của người quản trị cơ sở dữ liệu hoặc quản trị hệ thống, như:
- Xóa cả bảng: DROP TABLE <tên bảng>
- Xóa cả bảng: DROP DATABASE <tên cơ sở dữ liệu >
- Tạo 1 tài khoản mới: sp_addlogin <username>
- Đổi mật khẩu: sp_password
Có rất nhiều công cụ phát hiện và khai thác lỗ hổng này. Hình 1.6 là ví dụ về
1 ứng dụng web lỗi SQL Injection, có thể xem các thông tin bảng users của cơ sở
dữ liệu:


13

Hình 1.6 Công cụ tấn công SQL Injection thực hiện thành công

1.2.3 Tấn công SSL
SSL là tiêu chuẩn của công nghệ bảo mật, truyền thông mã hoá giữa máy chủ
Web server và trình duyệt (browser). Tiêu chuẩn này hoạt động và đảm bảo rằng
các dữ liệu truyền tải giữa máy chủ và trình duyệt của người dùng đều riêng tư và

toàn vẹn [14].
Lợi dụng quá trình chuyển gói tin đi qua nhiều trạm thuộc các mạng khác
nhau, kẻ tấn công chặn bắt các thông điệp giữa 2 bên tham gia truyền thông và
chuyển thông điệp lại cho bên kia. Kiểu tấn công này trong giới chuyên môn gọi
là man-in-the-middle (người đứng giữa), là một trong nhiều kỹ thuật tấn công mạng,
cho phép kẻ nào đó can thiệp vào kết nối Internet của người khác và thu thập mọi
thông tin truyền trên hệ thống mạng đó. Loại tấn công này thường được sử dụng để
đánh cắp thông tin.
Có hai bước để thực hiện tấn công kiểu man-in-the-middle. Đầu tiên, kẻ tấn
công phải xâm nhập được vào hệ thống mạng. Thứ hai, kẻ tấn công phải giải mã dữ
liệu. Hình 1.7 mô tả cách thức hoạt động của tấn công SSL

Hình 1.7 Mô hình tấn công SSL

• Xâm nhập vào hệ thống mạng: Có 4 cách thông dụng


14

- Giả điểm truy cập Wi-Fi: Kẻ tấn công thiết lập một access point giả, giả
một mạng mà người dùng sẽ tin tưởng là thật, khi người dùng kết nối (hoặc có thể
thiết bị tự động kết nối mà không cần người dùng can thiệp), kẻ tấn công đã vào
được cùng một mạng với thiết bị của người dùng.
- Giả giao thức phân giải địa chỉ: Kẻ tấn công thiết lập địa chỉ MAC của
chính chúng như là một gateway hoặc thiết bị của nạn nhân, kẻ tấn công có thể can
thiệp hoặc chỉnh sửa mọi luồng dữ liệu.
- Chiếm proxy/SSL Bump: Kẻ tấn công lừa người dùng cài một ứng dụng
độc hại hoặc một profile cấu hình nào đó, hoặc sử dụng một phương thức bảo mật
khác.
Luồng dữ liệu trên thiết bị bị định hướng đến kiến trúc mạng dựng sẵn của kẻ tấn

công.
- Mạng riêng ảo giả: Một người dùng bị lừa để tải về một ứng dụng hay một
profile cấu hình để yêu cầu kích hoạt VPN. Luồng dữ liệu trên thiết bị bị định
hướng trỏ vào VPN của kẻ tấn công.
• Giải mã dữ liệu: Có vài cách sau để giải mã dữ liệu trong khi dữ liệu đang
di chuyển trên hệ thống mạng. Trong đó, ba cách sau là thường gặp nhất:
- Tấn công chứng thực host: Kết nối thông qua man-in-the-middle, kẻ tấn
công thiết lập session SSL với host đã nhắm trước, Host hồi đáp với chứng thực
SSL, chứng thực giả tới người dùng cuối và người dùng chấp nhận. Nếu người dùng
bị lừa cài đặt một chứng thực root thì thậm chí hệ thống vô hiệu hoá cảnh báo về
chứng thực về sau.
- SSL Strip: Kết nối thông qua kẻ tấn công, kẻ tấn công viết lại nội dung
nhưng không gồm các link HTTPS, thông tin vào ra, như tài khoản đăng nhập, sẽ
hiển thị ở dạng văn bản thuần, không hề mã hoá.
- Hạ cấp giao thức TLS: Kẻ tấn công chiếm kết nối để hạ cấp giao thức.
Những giao thức lỗi thời như TLS lại rất dễ giải mã nếu kẻ tấn công am tường công
nghệ.

1.2.4 Tấn công XSS


15

Tấn công XSS là một trong những kĩ thuật tấn công phổ biến, nó cũng là một
trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những
người sử dụng web. Bất kì một website nào cho phép người sử dụng đăng thông tin
mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các
lỗi XSS. Đây là một 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 những nạn nhân sử dụng.

Lỗi này xảy ra khi ứng dụng web thu nhận các dữ liệu nguy hiểm được nhập
từ kẻ tấn công. Một website thường chứa các link, thông qua các link này kẻ tấn
công có thể chèn các đoạn code vào và khi người dùng nào đó sử dụng link này thì
coi như 99% là sập bẫy, kẻ tấn công có thể thông qua lỗi này để chèn code vào site
hay link để lấy các thông tin quan trọng từ nạn nhân.

Hình 1.8 Cơ chế thực hiện tấn công XSS

Phụ thuộc vào mục đích của kẻ tấn công, những đoạn Javascript được chèn
vào để lấy những thông tin như:


16

• Cookie: kẻ tấn công có thể lấy được cookie của người dùng và dùng những
thông tin trong cookie để giả mạo phiên truy cập hoặc lấy những thông tin nhạy
cảm khác được lưu trong cookie.
• Keylogging: kẻ tấn công có thể ghi lại những thao tác gõ phím của người
dùng bằng cách sử dụng sự kiện trong Javascript và gửi tất cả những thao tác gõ
phím đó về cho hắn để thực hiện những mục đích như đánh cắp các thông tin nhạy
cảm, lấy mật khẩu truy cập website hoặc mã số thẻ tín dụng…
• Phishing: kẻ tấn công có thể thay đổi giao diện của website bằng cách thay
đổi cấu trúc HTML trong trang web để đánh lừa người dùng. Kẻ tấn công có thể tạo
ra những form đăng nhập giả nhằm lừa người dùng đăng nhập vào để đánh cắp mật
khẩu.
Sau đó các thông tin này được gửi tới cho kẻ tấn công. Cách thường dùng
của kẻ tấn công là mã hoá các phần nguy hiểm của link (đã chèn code) thành kiểu
hệ 16 ( hoặc có thể là các hình thức khác ) để làm cho nạn nhân ít nghi ngờ khi click
vào cái link nguy hiểm đó. Sau đó là tìm cách nào đó để cho nạn nhân chịu click
vào cái link đó.

Hầu hết các ứng dụng web hiện nay dùng cookie để kết hợp 1 tài khoản duy
nhất cho 1 người dùng nào đó, nghĩa là cookie của người nào người đó dùng. Các
webmail, web bán hàng, nhà băng , … đa số đều dùng cookie với mục đích chứng
thực ngừơi dùng, và đây là cái mà kẻ tấn công cần.
Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là các
yêu cầu (request) được gửi từ các máy client tới server nhằm chèn vào đó các thông
tin vượt quá tầm kiểm soát của server. Nó có thể là một request được gửi từ các
form

dữ

liệu

hoặc

cũng



thể

đó

chỉ



các

URL


như

là đang bị lỗi
XSS!’);</script>. Và rất có thể trình duyệt sẽ hiện lên một popup thông báo
“Website đang bị lỗi XSS!”.
Các đoạn mã trong thẻ script không hề bị giới hạn bởi chúng hoàn toàn có
thể thay thế bằng một file nguồn trên một server khác thông qua thuộc tính src của


×