Tải bản đầy đủ (.docx) (52 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 (931.43 KB, 52 trang )

TRẦN THỊ HÀ
Bộ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC sư PHẠM 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


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


3

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 nhung đuợ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.
Truớc tiên em xin đuợ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 - Truờng Đại học su phạm Hà Nội 2, những nguờ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 Huơng, nguờ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, truờng
Đại học su 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 nhu 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 nhung do hạn hẹp về kiến thức, kinh nghiệm cũng
nhu 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 đuợ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à


4

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à chua từng đuợ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à



MỤC LỤC

PHỤ LỤC

7


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

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

DOM

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


ESAPI

Anhanced Small Arms Protective

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

Insert
IDE

Integrated Development

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

IDS

Environment
Intrusion Detection System

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

OWAS
P

Open Web Application Security
Project

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

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


DANH MỤC
• BẢNG


DANH MỤC
• HÌNH VẼ

8
Hình 3.8. Giao diện khi đang thực hiện quét


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.
-

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 phuơng pháp hộp đen.

4. Phương pháp nghiền cứu
- Phuơ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 phuơng pháp kiểm tra lỗ hổng, lụa chọn ra phuơng pháp kiểm tra tối
uu. Đồ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á ở chuô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.
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 CO’ 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ênrkhác.
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
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


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
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
Web

điểm: Dễ dàng cài đặt và không tốn nhiều tài nguyên.
Server Web
Application


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.

Ư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 khrmá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.


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
đ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 nguời sử dụng.
Nhuợc điểm: Tốn nhiều tài nguyên, tăng chi phí cài đặt và vận hành cao.

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, nguờ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 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ị ưên trình duyệt.

Hình 2.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 Fừefox,
Safari, Google Chrome, opera....
Máy chủ web (Web Server): là máy chủ cài đặt các chương ừì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.



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

Apache

179,720,332

IIS

Microsoft

57,644,692

Igor Sysoev
Google

22,806,060
15,161,530

Lighttpd

1,796,471

Ngin
x
G WS
Lighttpd


SunOne Sun Microsystems
Hình 1.6: Một số Web Server thông dụng hiện nay

Percent
60.31
%
19.34
%
7.65%
5.09%
0.60%
-

ứ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ự co 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ô tinh', sự kiện ảnh hưởng đến hệ thống do yếu tố con người như

-

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 huở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.
Truớ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 truớ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 nguời đánh giá rủi ro cũng nhu nguờ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ự đua ra đuợ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 đuợc thay đổi và cập nhật liên tục, do sự thay đổi về các tác động
ảnh huở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 đuợc đua vào cùng với các biến dữ liệu đầu vào nhu 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 nguờ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 đuợc gửi đến trình 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


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ộtSQL
số biện
pháp đảm bảo an toàn ứng dụng web [4]
Injection
Các biệnScripting
pháp đảm bảo an toàn cho ứng dụng web không chỉ có lập trình an
Cross-Site
Predictable
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:
Resource Location
Triển khai hệ thống phòng thủ: gồm hai nội dung chính là tổ chức mô hình
Brute Force
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
Information
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ị
Leakage
Insufficient
Firewall, Authentication
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ư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 luu và phục hồi: thiết lập cơ chế sao luu thuờng xuyên
cho hệ thống nhằm luu lại các trạng thái ổn định của hệ thống. Bản sao luu sẽ đuợc sử
dụng trong truờng hợp kiểm tra lỗi hệ thống hoặc phục hồi hệ thống ở trạng thái truớ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 nhu 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 thuờ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ụ nhu Trung tâm VNCERT.

1.5.

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

đánh giá rủi ro. Thông qua chuơng này ta cũng nắm đuợc một cách tổng quan về ứng
dụng web. Đồng thời, hiểu đ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.


CHƯƠNG 2: GIẢI PHÁP ĐÁNH GIÁ VÀ MÔ HÌNH
ĐÁNH GIÁ RỦI RO CHO ỨNG DỤNG WEB 2.1 Giới thiệu chung

Thường đi kèm với lỗ hổng bảo mật là các mối đe dọa và nguy cơ tấn công.
Nếu hệ thống không được gia cố kỹ càng, loại bỏ các lỗ hổng, cách ly với các mối đe
dọa thì khả năng xuất hiện rủi ro sẽ tăng lên. Như vậy, giữa lỗ hổng bảo mật, mối đe
dọa và rủi ro là ba yếu tố có mối quan hệ chặt chẽ với nhau (Hình 2.1).

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
Một yếu tố khác cần phải được nhắc đến, đó là giá trị của một ứng dụng web
càng cao (ví dụ website của ngân hàng) thì càng khiến cho rủi ro tăng lên. Bản thân nó
thu hút những người dùng (khách hàng hợp pháp), đồng thời cả kẻ tấn công. Do đó,
nguy cơ bị tấn công, khai thác sẽ tăng lên và rủi ro cũng sẽ lớn hơn.

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
Đối với một ứng dụng web, lỗ hổng bảo mật có thể xuất hiện tại bất cứ thành
phần nào của hệ thống, như hạ tầng mạng (bao gồm lỗ hổng trong kết nối), hệ điều


hành, hay các dịch vụ được cài đặt trên hệ điều hành đó. Hình 2.2 giới thiệu tổng quan
về các lỗ hổng, mối đe doạ đối với mỗi thành phần trong hệ thống.
Trong chương này, ta chỉ tập trung nghiên cứu các vấn đề liên quan đến lỗ hổng
bảo mật, các mối đe dọa nhằm xác định rủi ro đối với ứng dụng web.
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
Xét về yếu tố kỹ thuật, trong số các loại lỗ hổng thuộc về hạ tầng mạng, hệ
điều hành, hay lỗ hổng thuộc về ứng dụng, thì hạ tầng mạng luôn luôn được ưu tiên
đầu tư, bảo vệ nhiều nhất. Thế nhưng, những cuộc tấn công nhằm vào các lỗ hổng ứng
dụng chiếm số lượng lớn nhất (trên 70%). Chính vì vậy, luận văn này sẽ tập trung
nghiên cứu sâu hơn các vấn đề an toàn thuộc về ứng dụng.
Các máy chủ phục vụ ứng dụng web gồm máy chủ web, máy chủ ứng dụng,
máy chủ CSDL. Các thành phần ứng dụng được cài đặt trên môi trường HĐH, do đó,
chúng ẩn chứa những loại lỗ hổng giống nhau (như 2.2.1). Mặt khác, mỗi loại máy chủ
được cài các dịch vụ khác nhau, thực hiện các nhiệm vụ khác nhau, nên sẽ có những

loại lỗ hổng riêng của từng máy chủ (sẽ thảo luận kỹ hơn ở phần sau). 2.2.1 Lỗ hổng
bảo mật trên máy chủ và máy trạm [6]
a. Lỗ hổng bảo mật trên máy chủ
Trên thế giới, các loại HĐH cho máy chủ phổ biến là Windows, Linux, UNIX
hay MacOS. Tính riêng đối với hệ thống máy chủ phục vụ web, HĐH Linux được sử
dụng phổ biến nhất (36.72%), thứ hai là HĐH Windows (với 33.10%). Theo thống kê
hàng năm của CVE Details (Hệ thống cung cấp thông tin về lỗ hổng bảo mật của tập
đoàn MITRE, được ủy Ban an ninh mạng quốc gia Mỹ bảo trợ) thì lỗ hổng bảo mật
trên HĐH Windows luôn chiếm số lượng lớn hơn hẳn các HĐH khác, trong số đó có
rất nhiều lỗ hổng nghiêm trọng được đánh giá mức 9.3/10 (mức 10 là nghiêm trọng
nhất).
Chính vì những lý do trên, nội dung phần này chúng ta sẽ đi sâu tìm hiểu các
loại lỗ hổng điển hình của HĐH Windows, bao gồm:
-

Không cập nhật bản vá lỗi;

-

Nhiều dịch vụ không cần thiết, song vẫn được cài đặt;

-

Nhiều giao thức không cần thiết, nhưng vẫn bị kích hoạt;


-

Quản lý tài khoản không chặt chẽ;


-

Thiếu cơ chế bảo vệ các tệp và các thư mục;

-

Mở những cổng không cần thiết;

-

Thiếu cơ chế ghi nhật ký (log) và kiểm toán (audit).
Sau đây là chi tiết từng loại lỗ hổng, nguy cơ tấn công và giải pháp khắc
phục.
♦♦♦ Lỗ hổng do không cập nhật bản vá lỗi
Phần lớn các loại lỗ hổng sau khi được phát hiện thì đều được công bố rộng rãi,
trong đó bao gồm các lỗ hổng của hệ thống máy chủ. Đó là một trong những nguyên
nhân cơ bản hình thành các mối đe dọa. Thông thường, sau khi lỗ hổng mới được công
bố thì ngay lập tức kỳ thuật khai thác những lỗ hổng đó cũng xuất hiện. Nếu máy chủ
không kịp thời cập nhật bản vá lỗi, kẻ tấn công sẽ có cơ hội tấn công khai thác những
lỗ hổng này. Do đó, việc đưa ra các bản vá và cập nhật bản vá cho máy chủ được coi là
công việc quan trọng bậc nhất trong vấn đề đảm bảo an toàn cho hệ thống. Những máy
tính không thường xuyên cập nhật bản vá sẽ là môi trường thuận lợi cho tấn công bằng
các loại mã độc như virus, worm, Trojan .... Ngoài việc cập nhật bản vá lỗi cho HĐH,
trên mỗi máy chủ (web server, app server, datebase server) cũng cần được cập nhật các
bản vá cho các dịch vụ và ứng dụng cài trên đó. Đe kiểm tra trạng thái cập nhật bản vá
lỗi trên HĐH Windows, Microsoft cung cấp một công cụ miễn phí là MB SA
(Microsoft Baseline Security Analyzer).
♦♦♦ Lỗ hẩng do chạy các dịch vụ
Các dịch vụ được cài đặt trên máy chủ là nơi rất dễ bị tổn thương, vì bản thân
mỗi dịch vụ đó có thể tiềm ẩn những lỗ hổng. Mặt khác, mỗi dịch vụ được cài đặt trên

hệ thống thường sẽ mở một số cổng nhất định. Kẻ tấn công có thể lợi dụng, khai thác
những điểm yếu này nhằm thâm nhập, điều khiển máy tính từ xa. Do đó, việc loại bớt
các dịch vụ không cần thiết sẽ vừa đảm bảo bảm hiệu năng hệ thống,
dễ dàng quản lý và đặc biệt là làm giảm bề mặt tấn công.
♦♦♦ Lỗ hổng do các giao thức được kích hoạt
Một số giao thức không được sử dụng, nhưng vẫn được kích hoạt dẫn đến các
nguy cơ bị tấn công chiếm quyền điều khiển hệ thống hoặc lây lan các loại mã độc. Đó


×