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

Nghiên cứu giải pháp đánh giá rủi ro cho ứng dụng web

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.66 MB, 87 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

TRẦN THỊ HÀ

1.1.

NGHIÊN CỨU GIẢI PHÁP ĐÁNH GIÁ RỦI RO CHO ỨNG

DỤNG WEB

LUẬN VĂN THẠC SĨ MÁY TÍNH

HÀ NỘI, 2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

TRẦN THỊ HÀ

1.2.

NGHIÊN CỨU GIẢI PHÁP ĐÁNH GIÁ RỦI RO CHO ỨNG

DỤNG WEB

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ MÁY TÍNH


Ngƣời hƣớng dẫn khoa học: TS. HỒ VĂN HƢƠNG

HÀ NỘI, 2015


1

LỜI CẢM ƠN
Trong thời gian làm luận văn em đã gặp rất nhiều khó khăn nhƣng đƣợc sự
giúp đỡ và tạo điều kiện rất nhiều từ các thầy cô giáo, bạn bè và gia đình, em đã
hoàn thành xong luận văn của mình.
Trƣớc tiên em xin đƣợc bày tỏ lòng biết ơn tới các thầy cô giáo đã và đang
công tác tại khoa Sau Đại Học – Trƣờng Đại học sƣ phạm Hà Nội 2, những ngƣời
đã giảng dạy và cung cấp những kiến thức khoa học quý báu trong suốt năm học
qua để em có nền tảng kiến thức thực hiện luận văn.
Đặc biệt em xin gứi lời cảm ơn sâu sắc tới TS. Hồ Văn Hƣơng, ngƣời đã tận
tình chỉ bảo, giúp đỡ và tạo điều kiện để em có thể hoàn thành luận văn này.
Em cũng xin gửi lời cảm ơn tới tập thể lớp Khoa Học Máy Tính – K17,
trƣờng Đại học sƣ phạm Hà Nội 2 đã nhiệt tình giúp đỡ và chia sẻ những kinh
nghiệm quý báu cho em.
Cuối cùng em xin gửi lời cảm ơn gia đình, bạn bè đã tạo điều kiện, giúp đỡ
và đóng góp nhiều ý kiến quý báu cho em trong cuộc sống, trong công việc và học
tập nói chung cũng nhƣ trong quá trình em thực hiện luận văn nói riêng.
Mặc dù đã có nhiều cố gắng nhƣng do hạn hẹp về kiến thức, kinh nghiệm
cũng nhƣ thời gian tìm hiểu, nghiên cứu và thực hiện nên luận văn không tránh khỏi
những thiếu sót. Em rất mong nhận đƣợc sự góp ý của thầy cô, bạn bè để em có thể
hoàn thiện tốt luận văn của mình.
Em xin chân thành cảm ơn!
Xuân Hòa, tháng 10 năm 2015
Học viên


Trần Thị Hà


2

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.
Tác giả luận văn

Trần Thị Hà


3

MỤC LỤC
LỜI CẢM ƠN .................................................................................................................. 1
LỜI CAM ĐOAN ............................................................................................................ 2
MỤC LỤC ........................................................................................................................ 3
DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT ........................................... 6
DANH MỤC BẢNG ........................................................................................................ 7
DANH MỤC HÌNH VẼ ................................................................................................... 8
MỞ ĐẦU ........................................................................................................................ 10
CHƢƠNG 1: TỔNG QUAN VỀ ĐÁNH GIÁ RỦI RO CHO ỨNG DỤNG WEB ...... 12
1.1.

Một số khái niệm về an toàn thông tin và đánh giá rủi ro ............................... 12


1.1.1

Khái niệm cơ bản về an toàn thông tin ...................................................... 12

1.1.2.

Khái niệm về đánh giá rủi ro ..................................................................... 13

1.2.

Khái quát về ứng dụng web ............................................................................. 13

1.2.1.

Giới thiệu chung ........................................................................................ 13

1.2.2.

Giao thức HTTP......................................................................................... 14

1.2.3.

Kiến trúc của web ...................................................................................... 15

1.2.4.

Hoạt động của web .................................................................................... 17

1.3.


Các mối đe dọa, các loại lỗ hổng phổ biến của ứng dụng web ....................... 19

1.3.1.

Các mối đe dọa .......................................................................................... 19

1.3.2.

Các loại lỗ hổng phổ biến theo tiêu chuẩn OWASP .................................. 20

1.4.

Một số biện pháp đảm bảo an toàn ứng dụng web .......................................... 22

1.5.

Kết luận chƣơng .............................................................................................. 23

CHƢƠNG 2: GIẢI PHÁP ĐÁNH GIÁ VÀ MÔ HÌNH ĐÁNH GIÁ RỦI RO CHO
ỨNG DỤNG WEB ........................................................................................................ 24
2.1

Giới thiệu chung .............................................................................................. 24

2.2.

Phân tích lỗ hổng bảo mật của các thành phần ứng dụng web ........................ 25


4


2.2.1

Lỗ hổng bảo mật trên máy chủ và máy trạm ............................................. 25

2.2.2.

Lỗ hổng bảo mật máy chủ web .................................................................. 29

2.2.3

Lỗ hổng bảo mật máy chủ ứng dụng ......................................................... 30

2.2.4.

Lỗ hổng máy chủ cơ sở dữ liệu.................................................................. 31

2.2.5.

Lỗ hổng bảo mật trong kết nối ................................................................... 32

2.2.6.

Một số kỹ thuật khai thác lỗ hổng bảo mật điển hình của ứng dụng web . 32

2.3.

Các phƣơng pháp kiểm tra lỗ hổng bảo mật ................................................... 38

2.1.1.


2.3.1. Phƣơng pháp kiểm tra hộp đen ........................................................ 38

2.1.2.

2.3.2 Phƣơng pháp kiểm tra hộp trắng....................................................... 39

2.3.3.

Phƣơng pháp kiểm tra hộp xám ................................................................. 41

2.1.3.

2.3.4. Phân tích, so sánh các phƣơng pháp kiểm tra lỗ hổng ..................... 41

2.4.

Một số công cụ phần mềm kiểm tra ................................................................ 42

2.4.1.

Các công cụ kiểm tra lỗ hổng hệ thống ..................................................... 43

2.1.4.

2.4.2. Các công cụ kiểm tra lỗ hổng ứng dụng .......................................... 45

2.5.

Đánh giá công cụ dò quét lỗ hổng ứng dụng ................................................... 52


2.5.1. Đánh giá kỹ thuật và thuật toán sử dụng: .................................................... 52
2.5.2.
2.6.

Khả năng ứng dụng thực tiễn ..................................................................... 53

Tổng kết chƣơng .............................................................................................. 55

CHƢƠNG 3: THỬ NGHIỆM ĐÁNH GIÁ RỦI RO CHO ỨNG DỤNG WEB
THEO PHƢƠNG PHÁP HỘP ĐEN .............................................................................. 56
3.1.

Đế xuất quy trình triển khai, đánh giá cổng thông tin điện tử:........................ 56

3.1.1. Mục đích ........................................................................................................ 56
3.1.1.

Phạm vi áp dụng ........................................................................................ 56

3.1.2.

Quy trình thực hiện .................................................................................... 56

3.1.3.

Đánh giá quy trình ..................................................................................... 59

3.2.


Áp dụng quy trình triển khai đánh giá cổng thông tin điện tử của Trƣờng

Đại học Sƣ Phạm Hà Nội 2, sử dụng công cụ Acunetix............................................ 59
3.2.1.

Xây dựng kịch bản đánh giá ...................................................................... 59

3.2.2.

Triển khai đánh giá thực tế ........................................................................ 60


5

3.2.3.
3.3.

Kết quả đánh giá ........................................................................................ 65

Áp dụng quy trình triển khai đánh giá cổng thông tin điện tử tỉnh Vĩnh

Phúc, sử dụng công cụ Acunetix. .............................................................................. 70
3.3.1.

Xây dựng kịch bản đánh giá ...................................................................... 70

3.3.2.

Triển khai đánh giá thực tế ........................................................................ 71


3.4.

Đề xuất giải pháp đảm bảo an toàn cho ứng dụng web ................................... 72

3.4.1.

An toàn hạ tầng mạng ................................................................................ 72

3.4.2.

An toàn hệ thống máy chủ ......................................................................... 73

3.4.3.

An toàn cho ứng dụng ................................................................................ 73

3.4.4.

Đối phó với tấn công từ chối dịch vụ ........................................................ 74

3.5.

Tổng kết chƣơng .............................................................................................. 74

KẾT LUẬN CHUNG ..................................................................................................... 75
TÀI LIỆU THAM KHẢO .............................................................................................. 77
PHỤ LỤC ....................................................................................................................... 78


6


DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT
Ký hiệu
ASP

CAPTC
HA

DOM

ESAPI

IDE

Tiếng Anh
Active Server Pages
Completely Automated Public
Turing test to tell Computers and
Humans Apart
Document Object Model

Tiếng Việt
Môi trƣờng cho các ứng dụng chạy
trên Server
Phép thử Turing hoàn toàn tự động
để phân biệt máy tính và con ngƣời
Hệ giao tiếp lập trình ứng dụng cho
HTML và XML

Anhanced Small Arms Protective


Tăng cƣờng lá chắn nhỏ bảo vệ

Insert

chèn

Integrated Development
Environment

Môi trƣờng phát triển tích hợp

IDS

Intrusion Detection System

Một hệ thống phát hiện xâm nhập

IIS

Internet Information Services

Dịch vụ cung cấp thông tin Internet

IPSec

Internet Protocol Security

Giao thức bảo mật Internet


NTFS

New Technology File System

Hệ thống tập tin công nghệ mới

OSI

Open Systems Interconnection

OWASP

Open Web Application Security
Project

Mô hình tham chiếu kết nối các hệ
thống mở
Dự án an ninh mở ứng dụng Web


7

DANH MỤC BẢNG
Bảng 2.1: Ƣu và nhƣợc điểm của phƣơng pháp kiểm tra hộp đen ...........................39
Bảng 2.2: Ƣu và nhƣợc điểm của phƣơng pháp kiểm tra hộp trắng .........................40
Bảng 2.3: Ƣu và nhƣợc điểm của phƣơng pháp kiểm tra hộp xám ..........................41
Bảng 3.1: Nội dung quy trình ....................................................................................58
Bảng 3.2. Xây dựng kịch bản ....................................................................................60
Bảng 3.3. Kết quả theo kịch bản ...............................................................................66
Bảng 3.4. Xây dựng kịch bản ....................................................................................71

Bảng 3.5. Kết quả theo kịch bản ...............................................................................72


8

DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình một lớp ............................................................................... 15
Hình 1.2: Mô hình hai lớp ................................................................................ 16
Hình 1.3: Mô hình 3 lớp ................................................................................... 17
Hình 1.4: Mô hình N lớp .................................................................................. 17
Hình 1.5: Mô hình hoạt động của một ứng dụng web ...................................... 18
Hình 1.6: Một số Web Server thông dụng hiện nay ......................................... 19
Hình 1.7: Các lỗ hổng bảo mật có nguy cơ tấn công cao nhất ......................... 22
Hình 2.1: Mối quan hệ giữa rủi ro, mối đe dọa và lỗ hổng bảo mật ................ 24
Hình 2.2: Các lỗ hổng, mối đe dọa trong mỗi thành phần của hệ thống ......... 24
Hình 2.3: Các lỗ hổng và mối đe dọa đối với máy chủ web ............................ 30
Hình 2.4: Lỗ hổng và các mối nguy cơ đối với máy chủ ứng dụng ................. 29
Hình 2.5: Lỗ hổng trên máy chủ CSDL ........................................................... 31
Hình 2.6: Kỹ thuật tấn công File Inclusion ...................................................... 37
Hình 2.7: Thông tin về tính năng và giá của các công cụ quét tự động ........... 43
Hình 2.8: Kết quả quét của công cụ MBSA ..................................................... 44
Hình 2.9: Công cụ Nessus ................................................................................ 45
Hình 2.10: Các thông tin WebScarab ghi lại đƣợc ........................................... 46
Hình 2.11: Chƣơng trình kiểm tra lỗi bảo mật W3AF ..................................... 46
Hình 2.12: Công cụ kiểm tra lỗi bảo mật Acunetix ......................................... 49
Hình 2.13: Giao diện công cụ IBM Rational AppScan .................................... 52
Hình 3.1. Màn hình chính khi Crawl ................................................................ 61
Hình 3.2. Giao diện chính của Acunetix .......................................................... 61
Hình 3.3. Nhập địa chỉ và tùy chọn quét .......................................................... 62
Hình 3.4. Tùy chọn Scanning Profile ............................................................... 62

Hình 3.5. Thông tin về Server .......................................................................... 63
Hình 3.6. Chọn Login sequence ....................................................................... 63
Hình 3.7. Kết thúc quá trình tùy chọn .............................................................. 64
Hình 3.8. Giao diện khi đang thực hiện quét.................................................... 64


9

Hình 3.9. Kết quả đánh giá ............................................................................... 65
Hình 3.10. Báo cáo tổng hợp ............................................................................ 68
Hình 3.11. Chi tiết về file nguồn phát sinh lỗi ................................................. 69
Hình 3.12. Khuyến cáo để thực hiện vá lỗi ...................................................... 69


10

MỞ ĐẦU
1. Lý do chọn đề tài
Với xu thế phát triển nhanh chóng của ngành thƣơng mại điện tử hiện nay,
rất nhiều doanh nghiệp hiện đang sử dụng ứng dụng web để cung cấp dịch vụ
thƣơng mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cách hiệu quả
nhất. Đa số ứng dụng web có thể bị những lỗi mà các phƣơng pháp phòng chống
mạng thông thƣờng không bảo vệ đƣợc. Lỗi và lỗ hổng trong mã nguồn của ứng
dụng web có thể gây ra những hậu quả nghiêm trọng nhƣ lộ dữ liệu nhạy cảm, gây
tổn thƣơng đến toàn hệ thống hạ tầng công nghệ thông tin. Sự cố bảo mật trong ứng
dụng web có thể ảnh hƣởng đến danh tiếng của công ty, mất mát về mặt tài chính,
ảnh hƣởng đến uy tín với khách hàng và các vấn đề liên quan đến pháp lý.
Khi một tổ chức triển khai trực tuyến một ứng dụng web, điều này đồng
nghĩa với việc tổ chức đó cho phép bất kỳ ai cũng có quyền truy cập vào ứng dụng
qua giao thức HTTP. Những truy cập này có khả năng vƣợt qua tƣờng lửa, hệ thống

lọc tầng mạng, các lớp bảo vệ hệ thống và cả hệ thống phát hiện xâm nhập. Vì các
mã tấn công đều nằm trong các gói giao thức HTTP hợp lệ. Ngay cả những trang
Web có mức độ bảo mật cao sử dụng SSL cũng đều cho phép tất cả các dữ liệu đi
qua mà không hề kiểm tra tính hợp lệ của những dữ liệu này. Điều này có nghĩa bảo
mật ứng dụng web là một yếu tố quan trọng nằm trong hệ thống phòng thủ ngoại vi,
cùng với tƣờng lửa và các thiết bị bảo mật khác. Vì vậy, việc “Nghiên cứu giải pháp
đánh giá rủi ro cho ứng dụng Web ” là đề tài rất cấp thiết và có ý nghĩa thực tiễn.
2. Mục đích nghiên cứu
Nghiên cứu về các lỗ hổng bảo mật và phƣơng pháp đánh giá mức độ rủi ro
cho ứng dụng Web nói chung và website nói riêng. Kết quả nghiên cứu của luận
văn sẽ góp phần giúp cho các nhà quản lý (hay chủ sở hữu) các website có đƣợc cái
nhìn đầy đủ về hiện trạng và mức độ an toàn các website của họ thông qua kết quả
đánh giá sự tồn tại các lỗ hổng, các nguy cơ tấn công tiềm ẩn.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu tổng quan về đánh giá rủi ro cho ứng dụng Web.


11

- Nghiên cứu giải pháp đánh giá và mô hình đánh giá rủi ro cho ứng dụng Web.
- Nghiên cứu một số công cụ đánh giá lỗ hổng bảo mật của website.
- Tiến hành thử nghiệm đánh giá rủi ro cho ứng dụng Web theo phƣơng pháp hộp
đen.
4. Phƣơng pháp nghiên cứu
- Phƣơng pháp nghiên cứu lý luận: Đọc tài liệu, phân tích, hệ thống hoá, khái quát
hoá tài liệu để tổng quan cơ sở lý luận của đề tài.
- Phương pháp mô phỏng thực nghiệm: Sử dụng công cụ Acunetix để áp
dụng triển khai đánh giá cổng thông tin điện tử của Trường Đại học Sư Phạm Hà
Nội 2 và cổng thông tin điển tử của Tỉnh Vĩnh Phúc.
Bố cục của luận văn gồm 3 chương:

Chương 1: Tổng quan về đánh giá rủi ro cho ứng dụng web
Trình bày các khái niệm về an toàn thông tin, đánh giá rủi ro, tổng quan về ứng
dụng web. Đồng thời nghiên cứu các mối đe dọa, các lỗ hổng bảo mật phổ biến của
ứng dụng web và các biện pháp đảm bảo an toàn ứng dụng web.
Chương 2: Phương pháp đánh giá và mô hình đánh giá rủi ro cho ứng dụng web
Giới thiệu và phân tích các lỗ hổng bảo mật của các thành phần ứng dụng web,
phân tích và đánh giá các phƣơng pháp kiểm tra lỗ hổng, lựa chọn ra phƣơng pháp
kiểm tra tối ƣu. Đồng thời phân tích và đánh giá một số công cụ kiểm tra lỗ hổng và
chọn ra một công cụ để thử nghiệm đánh giá ở chƣơng 3.
Chương 3: Thử nghiệm đánh giá rủi ro cho ứng dụng web theo phương pháp hộp
đen
Sử dụng công cụ phần mềm kiểm tra lỗ hổng Acunetix xây dựng kịch bản, tiến
hành thử nghiệm đánh giá rủi ro cho ứng dụng web của 2 đơn vị cụ thể và đề xuất
các giải pháp đảm bảo an toàn cho ứng dụng web.


12

CHƢƠNG 1: TỔNG QUAN VỀ ĐÁNH GIÁ RỦI RO CHO ỨNG DỤNG
WEB
1.1.

Một số khái niệm về an toàn thông tin và đánh giá rủi ro
1.1.1

Khái niệm cơ bản về an toàn thông tin

An toàn thông tin: Là sự bảo vệ thông tin chống lại các rủi ro, mất mát, phá
hủy hay sử dụng không hợp lệ.
Đảm bảo an toàn thông tin: Là đảm bảo các tính chất bí mật, toàn vẹn,

chính xác, sẵn sàng phục vụ của thông tin trong lƣu trữ, xử lý và truyền tải trên
mạng [3]. Khái niệm này bao hàm việc đảm bảo an toàn kỹ thuật cho hoạt động của
các cơ sở hạ tầng thông tin, cả phần cứng và phần mềm hoạt động theo các tiêu
chuẩn kỹ thuật nhằm ngăn ngừa các hành vi trái phép gây hại cho cộng đồng, phạm
pháp hay khủng bố.
An toàn phần cứng là bảo đảm hoạt động cho mạng và các thiết bị. An toàn
phần mềm là bảo đảm cho phần mềm, cơ sở dữ liệu, ứng dụng.
Những đặc tính cơ bản của thông tin cần được đảm bảo: Các đặc điểm
này bao trùm toàn bộ phạm trù an toàn các hệ thống thông tin, đúng với mọi tổ
chức, không lệ thuộc vào việc chia sẻ thông tin nhƣ thế nào [3].
Tính bảo mật (Confidentialy): là đảm bảo thông tin chỉ đƣợc tiếp cận bởi
những ngƣời đƣợc cấp quyền tƣơng ứng.
Tính toàn vẹn (Integrity): là bảo vệ sự chính xác, hoàn chỉnh của thông tin
và thông tin chỉ đƣợc thay đổi bởi những ngƣời đƣợc cấp quyền.
Tính sẵn sàng (availability): là những ngƣời đƣợc quyền sử dụng có thể
truy xuất thông tin khi họ cần.
Tính xác thực: Trong hoạt động tính toán, kinh doanh qua mạng và an toàn
thông tin, tính xác thực là vô cùng cần thiết để đảm bảo rằng dữ liệu, giao dịch, kết
nối hoặc các tài liệu đều là thật.
Tính không thể chối cãi: có nghĩa rằng một bên giao dịch không thể phủ
nhận việc họ đã thực hiện giao dịch với các bên khác.


13

1.1.2.

Khái niệm về đánh giá rủi ro

Thông tin: giống nhƣ các tài sản quan trọng khác, có giá trị cho một tổ chức

và do vậy cần phải đƣợc bảo vệ phù hợp. Thông tin có thể là bản in hay bản viết
trên giấy (tài liệu), các tệp lƣu trữ điện tử số, thông tin chuyển qua mạng hoặc thƣ
điện tử, thông tin trong các đàm thoại.
Mối đe doạ (nguy cơ): là nguyên nhân tiềm ẩn gây ra sự cố không mong
muốn, kết quả là có thể gây tổn hại cho một hệ thống hoặc tổ chức [4]. Ví dụ, các
loại mã độc, kẻ tấn công (attacker), các kỹ thuật khai thác, thảm hoạ thiên nhiên...
Lỗ hổng bảo mật: là nhƣợc điểm (hay điểm yếu) của một tài sản hoặc một
nhóm tài sản có khả năng bị khai thác bởi một hay nhiều mối đe dọa [4]. Ví dụ, lỗ
hổng do thiếu cơ chế kiểm soát dữ liệu đầu vào từ phía ngƣời dùng của một
website, lỗ hổng do đặt mật khẩu yếu...
Rủi ro: là sự kết hợp giữa hậu quả do xuất hiện sự kiện không mong muốn
và khả năng (xác suất) xảy ra sự kiện này hay nói cách khác là khả năng một tài sản
thông tin (ví dụ một ứng dụng web) bị tác động bởi một tác nhân đe doạ [6].
Những đặc trưng của rủi ro:
Rủi ro bao gồm 3 yếu tố: xác suất xảy ra (Probability), khả năng ảnh hƣởng
đến đối tƣợng (Impacts on objectives) và thời lƣợng ảnh hƣởng (Duration).
Đánh giá rủi ro: là việc xác định giá trị của các tài sản thông tin, nhận biết
các đe dọa có thể xảy ra và các lỗ hổng bảo mật tồn tại, nhận biết các biện pháp xử
lý hiện có và hiệu quả của các biện pháp đó, xác định các hậu quả tiềm ẩn và cuối
cùng là phân loại và sắp xếp thứ tự ƣu tiên các biện pháp xử lý các rủi ro [6].
Sự khác nhau giữa rủi ro và không đảm bảo an ninh thông tin:
An toàn thông tin là bảo vệ thông tin và hệ thống thông tin nói chung. Rủi ro
là hậu quả khi thông tin và hệ thống thông tin không đƣợc đảm bảo.

1.2.

Khái quát về ứng dụng web
1.2.1.

Giới thiệu chung


Đa số các trang Web hiện nay là các ứng dụng thực tế. Các ứng dụng này hỗ
trợ việc đăng ký, đăng nhập, giao dịch tài chính, tìm kiếm..., các nội dung trình bày


14

cho ngƣời sử dụng đƣợc tạo ra tự động và thƣờng đƣợc thiết kế cho mỗi ngƣời
dùng cụ thể. Ứng dụng Web đƣợc tạo ra để thực hiện tất cả các chức năng hữu ích
mà có thể thực hiện trực tuyến. Có rất nhiều cách hiểu khác nhau về ứng dụng Web
nhƣ dƣới góc độ kỹ thuật và dƣới góc độ chức năng.
Dƣới góc độ chức năng, một ứng dụng web (Web Application) là một
chƣơng trình ứng dụng có thể tiếp cận thông qua môi trƣờng mạng Internet (hoặc
Intranet), ứng dụng web phổ biển nhờ vào việc có thể truy cập ở bất cứ nơi đâu
thông qua trình duyệt hoặc ứng dụng khác, ứng dụng web chỉ cần cập nhật và bảo
trì trên máy chủ hoặc cụm máy chủ, chứ không phải thực hiện trên hàng ngàn máy
tính sử dụng, đó cũng là lý do chính cho sự phổ biến của nó. Một số ứng dụng web
phổ biến hiện nay nhƣ webmail, bán hàng trực tuyến, cổng thông tin điện tử, diễn
đàn thảo luận, quảng bá thông tin, giải trí...
Việc phát triển ứng dụng web có thể dựa trên những bộ khung có sẵn nhƣ
Joomla, Dotnetrmke, SharePoint, PHP Nuke, CMS portal, Liferay… hoặc tự xây
dựng bằng những ngôn ngữ lập trình nhƣ ASP, PHP, JSP, Perl, Python... Một thành
phần khác không thể thiếu trong việc phát triển ứng dụng web là hệ quản trị cơ sở
dữ liệu. CSDL cho phép lƣu trữ và truy xuất dữ liệu một cách linh hoạt. Một số cơ
sở dữ liệu đƣợc sử dụng cho ứng dụng web phổ biến hiện nay nhƣ Oracle, SQL
Server, MySQL....
Xu hƣớng phát triển ứng dụng web hiện nay hƣớng tới sự thuận tiện trong
chia sẻ, hợp tác và sáng tạo giữa các ngƣời dùng, giao diện trực quan, dễ sử dụng.
1.2.2.


Giao thức HTTP

Giao thức HTTP (Hypertex Transfer Protocol): là giao thức truyền thông
cốt lõi đƣợc sử dụng để truy nhập World Wide Web và tất cả các ứng dụng Web.
Giao thức này hoạt động theo cơ chế request/response mà trong đó client gửi
message request (yêu cầu) và server gửi lại message response (hồi đáp). HTTP đã
đƣợc mở rộng, phát triển theo nhiều hƣớng khác nhau để hỗ trợ cho các ứng dụng
phân tán phức tạp phổ biến hiện nay.
Giao thức HTTPS (HTTP over SSL/TLS): là sự kết hợp giữa giao thức


15

HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách an
toàn trên Internet. HTTPS đƣợc thiết lập sẽ giúp bảo mật thông tin truyền giữa hai
máy tính. Do đó, cứ thông tin nào cần bảo mật trên nền web thì có thể sử dụng nó.
Tuy nhiên, hệ thống phải xử lý nhiều hơn.
1.2.3.

Kiến trúc của web

Một ứng dụng web khi triển khai, về cơ bản sẽ có ba lớp nhƣ sau: lớp trình
bày, lớp ứng dụng và lớp cơ sở dữ liệu.

- Lớp trình bày: là lớp máy chủ web hoạt động, có nhiệm vụ hiển thị dữ liệu
cho ngƣời dùng.

- Lớp ứng dụng: là lớp mà ứng dụng Web hoạt động, nó sẽ xử lý thông tin
ngƣời dùng yêu cầu, đƣa ra quyết định, gửi kết quả đến “lớp trình bày”.


- Lớp cơ sở dữ liệu: là nơi máy chủ Cơ sở dữ liệu (CSDL) hoạt động,
thƣờng là các hệ quản trị CSDL (DBMS-database management system) chịu trách
nhiệm quản lý các file dữ liệu và quyền sử dụng.
Theo phân lớp nhƣ trên, có thể có các loại mô hình kiến trúc web nhƣ sau:
a. Mô hình một lớp
Mô hình 1 lớp

Web Server
Web Application
Data base Server

Hình 1.1: Mô hình một lớp
Trong mô hình 1 lớp, máy chủ web, ứng dụng web, máy chủ cơ sở dữ liệu
đều đƣợc thiết lập trên cùng một tài nguyên máy chủ (cùng một host) nhƣ hình vẽ.
Ƣu điểm: Dễ dàng cài đặt và không tốn nhiều tài nguyên.


16

Nhƣợc điểm: Khi một lớp bị tin tặc tấn công và chiếm quyền kiểm soát có
thể dẫn đến các lớp khác cũng bị ảnh hƣởng theo. Hơn nữa, sẽ gặp nhiều khó khăn
trong quá trình vận hành và triển khai các biệp pháp bảo vệ cho ứng dụng.
b. Mô hình hai lớp:
Khác với mô hình 1 lớp, trong mô hình 2 lớp các máy chủ web, ứng dụng
web đƣợc thiết lập trên cùng một máy chủ, còn máy chủ cơ sở dữ liệu đƣợc thiết
lập trên một máy chủ khác.

Mô hình 2 lớp

Web Server

Web Application
Data base Server

Hình 1.2: Mô hình hai lớp
Ƣu điểm: Không tốn quá nhiều tài nguyên nhƣng vẫn đảm bảo đƣợc một
phần nào đó quá trình vận hành và bảo mật.
Nhƣợc điểm: Máy chủ web và máy chủ ứng dụng đƣợc kết hợp trên một
máy chủ nên khi máy chủ này bị tin tặc tấn công, có thể mã nguồn ứng dụng web sẽ
bị lộ, điều này có thể dẫn đến máy chủ CSDL cũng có thể tiếp tục bị tấn công.
c. Mô hình ba lớp
Trong mô hình 3 lớp, các máy chủ web, ứng dụng web và máy chủ cơ sở
dữ liệu đều đƣợc thiết lập trên các host khác nhau (Hình 1.3).
Ƣu điểm: Dễ dàng vận hành hệ thống và chủ động phòng, chống các nguy cơ
tấn công từ tin tặc.
Nhƣợc điểm: Tốn kém nhiều tài nguyên và quá trình cài đặt.


17

Mô hình 3 lớp

Web Server
Web Application
Data base Server

Hình 1.3: Mô hình 3 lớp
d. Mô hình N lớp:
Trong mô hình N lớp, máy chủ web, ứng dụng và máy chủ cơ sở dữ liệu đều
đƣợc tổ chức thành cụm máy chủ độc lập (Hình 1.4). Mô hình này phù hợp với
những hệ thống cung cấp dịch vụ lớn, đòi hỏi phải có nhiều tài nguyên.

Ƣu điểm: Cung cấp dịch vụ rộng lớn với nhiều ngƣời sử dụng.
Nhƣợc điểm: Tốn nhiều tài nguyên, tăng chi phí cài đặt và vận hành cao.
Mô hình N lớp

Web Server

Web Application

Database Server

1.2.4.

Hình 1.4: Mô hình N lớp
Hoạt động của web

Thông qua trình duyệt, ngƣời dùng cuối sẽ kết nối đến máy chủ phục vụ web
bằng địa chỉ URL. Tại đây, máy chủ phục vụ web sẽ xử lý kết nối và gửi yêu cầu
đến ứng dụng web. Tùy theo yêu cầu, ứng dụng web sẽ truy vấn đến cơ sở dữ liệu


18

và nhận kết quả trả về, sau đó sẽ gửi phản hồi về máy chủ phục vụ web. Cuối cùng,
máy chủ phục vụ web sẽ gửi dữ liệu về trình duyệt dƣới dạng siêu văn bản và ngƣời
dùng cuối sẽ nhận thông tin hiển thị trên trình duyệt.

Hình 1.5: Mô hình hoạt động của một ứng dụng web
Trình duyệt web (web browser): là các ứng dụng phần mềm cho phép ngƣời
dùng truy vấn dữ liệu và tƣơng tác với nội dung (văn bản, hình ảnh, đoạn phim,
nhạc, trò chơi và các thông tin khác) nằm trên trang Web bên trong website.

Một số trình duyệt web hiện nay bao gồm Internet Explorer, Mozilla
Firefox, Safari, Google Chrome, opera....
Máy chủ web (Web Server): là máy chủ cài đặt các chƣơng trình phục vụ
các ứng dụng web. Web Server có khả năng tiếp nhận yêu cầu từ các trình duyệt
web và gửi phản hồi đến máy khách với những trang web, thông qua môi trƣờng
mạng Internet bằng các giao thức HTTP hoặc các giao thức khác.


19

Một số Web Server thông dụng hiện nay gồm:
Product

Vendor

Web Site Hosted

Percent

Apache

Apache

179,720,332

60.31%

IIS

Microsoft


57,644,692

19.34%

Nginx

Igor Sysoev

22,806,060

7.65%

GWS

Google

15,161,530

5.09%

Lighttpd

Lighttpd

1,796,471

0.60%

-


-

SunOne Sun Microsystems

Hình 1.6: Một số Web Server thông dụng hiện nay
Ứng dụng Web (Web Application): là nơi mà các kịch bản hay mã nguồn
tạo ra ứng dụng web đƣợc thực thi. Mã nguồn sẽ đƣợc biên dịch và thực hiện các
truy vấn đến cơ sở dữ liệu dựa vào mã nguồn ứng dụng.
Máy chủ cơ sở dữ liệu (Database Server): là máy chủ lƣu trữ tất cả các dữ
liệu liên quan đến ứng dụng web. Bất kỳ ngƣời sử dụng nào trên mạng máy tính, về
nguyên tắc đều có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo
quyền hạn mà không phụ thuộc vào vị trí địa lý.
Cơ sở dữ liệu (Database): là một tập hợp thông tin có cấu trúc. Một số hệ cơ
sở dữ liệu phổ biến hiện nay là MS SQL Server, Oracle, My SQL, Postgres....

1.3.

Các mối đe dọa, các loại lỗ hổng phổ biến của ứng dụng web
1.3.1.

Các mối đe dọa

Những nguy cơ tiềm ẩn, đối với an toàn ứng dụng web đến từ nhiều
nguyên nhân khách quan và chủ quan sau đây:

- Thảm họa bất ngờ: tác động đến từ bên ngoài, ảnh hƣởng đến bảo vệ ở
mức vật lý của trang web nhƣ hỏa hoạn, bão lũ, động đất, khủng bố, tai nạn lao
động ...


- Sự cố máy tính: trục trặc vật lý ảnh hƣởng đến hoạt động của trang web
nhƣ sự cố nguồn điện, hỏng phần cứng, thiết bị nối mạng hỏng, môi trƣờng vận
hành thiết bị hỏng,...

- Sự cố vô tình: sự kiện ảnh hƣởng đến hệ thống do yếu tố con ngƣời nhƣ


20

- nhân viên thiếu hiểu biết về bảo mật, lơ là, cẩu thả khi quản lý hệ thống....
- Sự cố có chủ ý: hoạt động phá hoại, khai thác tấn công làm ảnh hƣởng
đến an toàn của trang web, bao gồm tội phạm máy tính, tình báo và khủng bố công
nghệ cao, nhân viên bất mãn với tổ chức, nhân viên gián điệp bán thông tin để nhận
hối lộ, nhân viên bị đánh lừa tài khoản hệ thống...
Loại bỏ các mối đe dọa trên đòi hỏi phải tốn nhiều thời gian và công sức.
Trƣớc hết là cần ý thức rõ ràng và đầy đủ về những hiểm họa này, sau đó lên kế
hoạch thực hiện quản lý và phòng tránh rủi ro thích hợp trƣớc mỗi loại nguy cơ.
1.3.2.

Các loại lỗ hổng phổ biến theo tiêu chuẩn OWASP

Đứng trên quan điểm của ngƣời đánh giá rủi ro cũng nhƣ ngƣời quản trị an
toàn ứng dụng web thì việc hiểu rõ lỗ hổng bảo mật có ý nghĩa vô cùng quan trọng
OWASP (Open Web Application Security Project) là một dự án mở về bảo mật
ứng dụng web thúc đẩy cố gắng chung của cộng đồng nhằm giúp các cá nhân, tổ
chức, doanh nghiệp có thể phát triển, mua và bảo trì các ứng dụng web một cách an
toàn. Hàng năm OWASP tổng hợp, cập nhật và công bố danh sách 10 lỗ hổng phổ
biến nhất của ứng dụng web một cách ngắn gọn và xúc tích, giúp các doanh nghiệp,
cá nhân xây dựng, phát triển hay đánh giá các ứng dụng web có thể tự đƣa ra đƣợc
các giải pháp phù hợp, nâng cao bảo mật thông tin. Danh sách này luôn đƣợc thay

đổi và cập nhật liên tục, do sự thay đổi về các tác động ảnh hƣởng của các lỗ hổng.
Theo OWASP trong năm 2013 [7], 10 rủi ro an ninh cao nhất là:
1. Injection (Chèn mã): Sai sót trong nhập liệu, ví dụ SQL injection, OS
injection, LDAP injection... Thông tin sai lệch đƣợc đƣa vào cùng với các biến dữ
liệu đầu vào nhƣ một phần của lệnh hay câu truy vấn. Kẻ tấn công lợi dụng sơ hở
này để thực hiện các lệnh không mong muốn hay truy cập các dữ liệu bất hợp pháp.
2. Broken Authentication and Session Management (Lỗi xác thực,
quản lý phiên): Lỗ hổng này cho phép kẻ tấn công lợi dụng để đoạt mật khẩu, khóa
hay phiên làm việc, từ đó mạo danh phiên làm việc và danh tính của ngƣời dùng.
3. Cross-Site Scripting (Lỗi chéo trang-XSS): Lỗ hổng bảo mật do thiếu
cơ chế kiểm soát dữ liệu nhập vào. Các dữ liệu bất hợp pháp đƣợc gửi đến trình


21

duyệt web mà không đƣợc xác nhận. Điều này cho phép kẻ tấn công thực thi các
kịch bản trên trình duyệt web của nạn nhân, làm thay đổi nội dung trang web,
chuyển hƣớng trang web hay đánh cắp phiên làm việc đƣợc lƣu trên trình duyệt...
4. Insecure Direct Object References (Tham chiếu trực tiếp đối tượng
không an toàn): Nhà phát triển ứng dụng web đƣa ra tham chiếu đến một đối tƣợng
bên trong ứng dụng nhƣ là một tập tin, một thƣ mục hay một khóa cơ sở dữ liệu.
Nếu việc kiểm tra quá trình tham chiếu này không an toàn, kẻ tấn công có thể dựa
theo để tham chiếu đến các dữ liệu mà họ không có quyền truy cập
5. Security Misconfigtiration (Cấu hình bảo mật kém): Một hệ thống
bảo mật tốt là hệ thống triển khai cho khung ứng dụng, máy chủ ứng dụng, máy chủ
cơ sở dữ liệu, nền tảng... các phƣơng pháp bảo mật cần thiết, thống nhất và liên kết
với nhau. Điều này nhằm tránh những nguy cơ bị khai thác vào ứng dụng, ví dụ để
lộ những thông tin quan trọng khi trao đổi các gói tin.
6. Sensitive Data Exposure (Lộ dữ liệu nhạy cảm): Các dữ liệu nhạy
cảm nhƣ thông tin thẻ tín dụng, tài khoản ngân hàng, ID (định danh) nộp thuế...

không đƣợc lƣu trữ và bảo vệ an toàn, kẻ tấn công có thể lấy cắp hoặc thay đổi
những thông tin này. Dữ liệu nhạy cảm cần đƣợc lƣu trữ, truyền tải và bảo vệ đúng
cách, có mã hoá và sao lƣu.
7. Missing Function Level Access Control: Thiếu các điều khoản trong
việc phân quyền quản trị các mức, dẫn đến việc kẻ tấn công có thể lợi dụng và truy
ra các điểm yếu trên hệ thống hay lợi dụng để leo thang đặc quyền.
8. Cross-Site Request Forgery (CSRF): Lợi dụng sơ hở của nạn nhân, tin
tặc có thể lừa nạn nhân thực hiện các hành động nguy hiểm mà nạn nhân không hề
hay biết, ví dụ chuyển tiền từ tài khoản nạn nhân sang tài khoản kẻ tấn công.
9. Using Known Vulnerable Components: Sử dụng các thƣ viện, plugin,
module... có chứa các lỗ hổng đã đƣợc công khai, dễ dàng dẫn đến việc bị kẻ tấn
công lợi dụng để tấn công vào hệ thống một cách nhanh chóng.
10. Unvalidated Redirects and Forwards: Chuyển hƣớng không an toàn
ngƣời dùng đến một đƣờng dẫn bên ngoài có thể bị kẻ tấn công lợi dụng để chuyển


22

hƣớng nạn nhân đến một trang đích đƣợc chuẩn bị sẵn của kẻ tấn công.

Hình 1.7: Các lỗ hổng bảo mật có nguy cơ tấn công cao nhất

1.4.

Một số biện pháp đảm bảo an toàn ứng dụng web [4]
Các biện pháp đảm bảo an toàn cho ứng dụng web không chỉ có lập trình an

toàn (an toàn mã nguồn) mà cần đƣợc triển khai cho toàn bộ các thành phần, bao
gồm:
Triển khai hệ thống phòng thủ: gồm hai nội dung chính là tổ chức mô hình

mạng hợp lý và tổ chức hệ thống phòng thủ. Điều này giúp ngƣời quản trị có cách
nhìn tổng quan về toàn bộ hệ thống của mình. Hệ thống phòng thủ có thể là thiết bị
Firewall, thiết bị ngăn chặn và phát hiện tấn công IDS/IPS...
Vận hành ứng dụng web an toàn: nhƣ đã trình bày ở phần trên, các lỗ hổng
phổ biến mà OWASP đƣa ra hàng năm chính là cơ sở để ngƣời quản trị nhận diện
các lỗ hổng trên ứng dụng của họ. Từ đó có biện pháp khắc phục, sửa đổi mã nguồn
kịp thời, nhằm đối phó với các mối đe dọa luôn luôn thƣờng trực.
Thiết lập cấu hình cơ sở dữ liệu an toàn: rất quan trọng trong vận hành ứng
dụng. CSDL là nơi lƣu trữ toàn bộ dữ liệu quan trọng của ứng dụng. Vì vậy, thƣờng
bị tin tặc tìm cách tấn công và khai thác. Nội dung này giúp ngƣời quản trị hiểu
đƣợc yêu cầu thiết lập an toàn cho CSDL nhằm đối phó với nguy cơ tấn công.
Cài đặt các ứng dụng bảo vệ: ngoài việc khắc phục lỗi cho các thành phần
của một ứng dụng, nội dung này sẽ trình bày việc cài đặt các ứng dụng bảo vệ nhƣ


23

hệ thống chống virus (Anti-Virus) hay hệ thống phát hiện xâm nhập máy tính (Host
Based IDS) nhằm bảo vệ ứng dụng một cách chủ động và tổng quát.
Thiết lập cơ chế sao lƣu và phục hồi: thiết lập cơ chế sao lƣu thƣờng xuyên
cho hệ thống nhằm lƣu lại các trạng thái ổn định của hệ thống. Bản sao lƣu sẽ đƣợc
sử dụng trong trƣờng hợp kiểm tra lỗi hệ thống hoặc phục hồi hệ thống ở trạng thái
trƣớc khi bị tấn công (cần thiết).
Phòng chống tấn công từ chối dịch vụ: việc phòng chống tấn công
DoS/DDoS luôn luôn là bài toán khó đối với bất kỳ tổ chức nào. Đối với một cuộc
tấn công quy mô lớn thì gần nhƣ không có biện pháp nào thực sự hữu hiệu để có
thể chống đỡ. Chính vì vậy, để hạn chế đến mức thấp nhất loại tấn công này, hệ
thống cần thƣờng xuyên cập nhật bản vá lỗi, thiết lập hệ thống cân bằng, sẵn sàng
kết nối với các kênh ứng cứu sự cố máy tính, ví dụ nhƣ Trung tâm VNCERT.


1.5.

Kết luận chƣơng
Chƣơng 1, đã trình bày khái quát đƣợc các khái niệm về an toàn thông tin

và đánh giá rủi ro. Thông qua chƣơng này ta cũng nắm đƣợc một cách tổng quan
về ứng dụng web. Đồng thời, hiểu đƣợc các mối đe dọa và các loại lỗ hổng bảo
mật của ứng dụng web, các biện pháp phòng chống tấn công, bảo đảm an toàn
ứng dụng web.


×