Tải bản đầy đủ (.docx) (64 trang)

Báo cáo thực tập cơ sở 1 Học viện kỹ thuật mật mã : Tìm hiểu một số kĩ thuật đảm bảo an toàn thông tin cho Website và quét lỗi bằng phần mềm Vega

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.26 MB, 64 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ

BÁO CÁO MÔN HỌC

THỰC TẬP CƠ SỞ

ĐỀ TÀI
BẢO MẬT WEBSITE VÀ DÒ QUÉT LỖ HỔNG BẢO MẬT
WEBSITE BẰNG VEGA

Sinh viên thực hiện:

Dương
Văn M*** AT1*07**
1


LỜI CẢM ƠN

Để có được thành quả như ngày hơm nay, ngồi sự nỗ lực khơng ngừng nghỉ
của các thành viên trong nhóm thì một phần khơng nhỏ đóng góp nên thành công này
là nhờ sự quan tâm, chỉ bảo, giúp đỡ của các thầy cơ, các anh chị khóa trên và bạn bè
xung quanh.
Chúng em xin chân thành cảm ơn thầy Phạm Văn Hưởng – giảng viên trực
tiếp hướng dẫn, chỉ bảo, tạo mọi điều kiện thuận lợi giúp đỡ chúng em trong quá trình
thực hiện đề tài.
Tuy đã có rất nhiều cố gắng và sự nỗ lực của các thành viên để hoàn thiện đề
tài, nhưng chắc chắn đề tài “ BẢO MẬT WEBSITE VÀ DÒ QUÉT LỖ HỔNG
BẢO MẬT WEBSITE BẰNG VEGA ” của chúng em còn nhiều thiếu sót. Chúng em
rất mong nhận được sự góp ý từ các thầy giáo để nhóm em có thể hoàn thiện tốt hơn
các đề tài nghiên cứu sau. Chúng em xin chân thành cảm ơn!


Hà Nội, ngày..23..tháng..8..năm 2022.
Nhóm sinh viên thực hiện đề tài
Nhóm 57

2


MỤC LỤC

3


DANH MỤC HÌNH VẼ

4


DANH MỤC BẢNG BIỂU

5


MỞ ĐẦU
1.Tính cấp thiết của đề tài

Ngày nay cơng nghệ thông tin đang là nền công nghệ mũi nhọn trong
chiến lược phát triển kinh tế, xây dựng đất nước của hầu hết các quốc gia. Các
sản phẩm công nghệ thông tin đã và đang được ứng dụng rộng rãi trong mọi lĩnh
vực của đời sống kinh tế, xã hội và hầu hết đều đem đến những giá trị thiết thực.
Đối tượng phục vụ chủ yếu của ngành công nghệ thông tin hiện nay chính là các

tổ chức, các cơ sở doanh nghiệp… Bảo mật luôn luôn là một vấn đề hàng đầu
cho tất cả các loại ứng dụng, đặc biệt là các website.

Từ những ngày đầu của Internet người ta đã quan tâm đến tính an tồn
trong trao đổi thơng tin. Tuy khơng có sự an tồn tuyệt đối nhưng những phát
triển trong lĩnh vực này thì rất nhanh và mang lại nhiều thành quả vì đây là vấn
đề cấp bách của nhiều doanh nghiệp. Khơng có một mức an tồn thích hợp, sự
khai thác thương mại của Internet thì khơng hồn tồn an tồn.

Chính vì thế sự an tồn của Web trên mạng cũng khơng thể nằm ngồi
vấn đề này. Có thể nói ngày nay ngồi việc nghiên cứu làm sao để tạo ra một
Website tốt mang lại nhiều lợi ích thì việc nghiên cứu để làm sao mang lại sự an
toàn cho Website cũng là một trong những vấn đề quan trọng nhất. Thật khó tin
tưởng để sử dụng một dịch như mua hàng trên một giao diện website, hoặc
chuyển tiền trực tuyến trên nền website nếu không đảm bảo được mức độ an
tồn tối đa. Vì vậy nhóm em đã chọn đề tài để báo cáo cho mơn thực tập cơ sở là
“BẢO MẬT WEBSITE VÀ DỊ QUÉT LỖ HỔNG BẢO MẬT WEBSITE BẰNG
VEGA”. Đề tài tập trung đi vào tìm hiểu về các lỗ hổng kĩ thuật tấn công website
và các vấn đề bảo mật liên quan, sử dụng ứng dụng mã nguồn mở có tên là
VEGA để quét và phân tích các lỗ hổng tồn tại trong 1 website bất kì . Từ đó
đưa ra các giải pháp đảm bảo an tồn thơng tin cho website nói riêng và cho cả
hệ thống nói chung.

2. Mục đích nghiên cứu

6


Mục đích nghiên cứu của đề tài là nghiên cứu phát hiện các lỗ
hổng bảo mật website, nêu ra một số giải pháp phát hiện các lỗ hổng

bảo mật website thường gặp, sử dụng mã nguồn mở Vega kiểm tra một
số trang web để đánh giá độ bảo mật , các lỗ hổng thường gặp của các
trang web.

3.

Đối tượng và phạm vi nghiên cứu
Đối tượng và phạm vi nghiên cứu của đề tài là nghiên cứu các
giải pháp, công cụ phát hiện các lỗ hổng bảo mật website và mã nguồn
mở Vega.

4. Phương pháp nghiên cứu

- Về mặt lí thuyết : Thu thập, khảo sát, phân tích các tài liệu và thơng
tin có liên quan đến phát hiện lỗ hổng bảo mật website.
- Về mặt thực nghiệm : Tiến hành phát hiện lỗ hổng bảo mật của
website trên ứng dụng Vega .
Kết cấu của luận văn gồm 2 chương chính với các nội dung sau:
Chương 1: Tổng quan về các lỗ hổng bảo mật website.
Chương 2: Nghiên cứu giải pháp phát hiện và ngăn chặn lỗ hổng bảo
mật website.
Chương 3: Thử nghiệm 1 số trang web phát hiện lỗ hổng bảo mật bằng

7


phần mềm Vega.
Trong chương 3 sẽ tiến hành tìm kiếm thử nghiệm phát hiện một số
dạng lỗ hổng bảo mật website bằng phần mềm Vega.


8


CHƯƠNG 1. TỔNG QUAN VỀ TẤN CÔNG LỖ HỔNG BẢO MẬT
WEBSITE
Nội dung của chương 1 sẽ khảo sát tổng quan về công nghệ web, một số
phương thức tấn công lỗ hổng bảo mật website, một số nguyên nhân gây ra lỗ hổng
bảo mật website và các vấn đề khác liên quan.

1.1 Tổng quan về công nghệ Web
1.1.1 Giới thiệu chung
Trang web (web page) trên mạng Internet là nơi giới thiệu những
thơng tin, hình ảnh về doanh nghiệp và sản phẩm, dịch vụ của doanh nghiệp
(hay giới thiệu bất cứ thông tin gì) để khách hàng có thể truy cập ở bất kỳ nơi
đâu, bất cứ lúc nào.
Website là tập hợp nhiều trang web. Khi doanh nghiệp xây dựng
website nghĩa là đang xây dựng nhiều trang thông tin, catalog sản phẩm, dịch
vụ, Để tạo nên một website cần phải có 3 yếu tố cơ bản :
 Cần phải có tên miền (domain).
 Nơi lưu trữ website (hosting).
 Nội dung các trang thông tin (web page).
Một số thuật ngữ cơ bản:
Website động (Dynamic website) là website có cơ sở dữ liệu, được
cung cấp công cụ quản lý website (Admin Tool). Đặc điểm của website động
là tính linh hoạt và có thể cập nhật thông tin thường xuyên, quản lý các thành
phần trên website dễ dàng. Loại website này thường được viết bằng các ngơn
ngữ lập trình như PHP, Asp.net, JSP, Perl,..., quản trị Cơ sở dữ liệu bằng SQL
hoặc MySQL...
Website tĩnh do lập trình bằng ngơn ngữ HTML theo từng trang như
brochure, khơng có cơ sở dữ liệu và khơng có cơng cụ quản lý thông tin trên

website. Thông thường website tĩnh được thiết kế bằng các phần mềm như
FrontPage, Dreamwaver,... Đặc điểm của website tĩnh là ít thay đổi nội dung,
sự

9


thay đổi nội dung này thường liên quan đến sự thay đổi các văn bản đi kèm thể
hiện nội dung trên đó.
Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ
công nghệ website được mọi người biết đến là web 2.0 .
- Tên miền (domain): Tên miền chính là địa chỉ website, trên internet chỉ tồn tại

duy nhất một địa chỉ (tức là tồn tại duy nhất một tên miền). Có 2 loại tên miền:
- Tên miền Quốc tế: là tên miền có dạng .com; .net; .org; .biz; .name ...
- Tên miền Việt Nam: là tên miền có dạng .vn; .com.vn; .net.vn; org.vn;

.gov.vn;...
- Lưu trữ website: Dữ liệu thông tin của website phải được lưu trữ trên một máy

tính (máy chủ - server) ln hoạt động và kết nối với mạng Internet. Một
server có thể lưu trữ nhiều website, nếu server này bị sự cố chẳng hạn tắt trong
một thời điểm nào đó thì khơng ai có thể truy cập được những website lưu trữ
trên server tại thời điểm bị sự cố.
- Tùy theo nhu cầu lưu trữ thơng tin mà doanh nghiệp có thể th dung lượng

thích hợp cho website [thuê dung lượng host].
- Dung lượng host: Là nơi để lưu cơ sở dữ liệu của website (hình ảnh, thơng tin,

…), đơn vị đo dung lượng thường là MB hoặc GB.

- Băng thông hay dung lượng đường truyền: Là tổng số MB dữ liệu tải lên máy

chủ hoặc tải về từ máy chủ (download, upload) nơi đặt website, đơn vị đo
thông thường là MB/giây.
1.1.1.1 Khái niệm về ứng dụng website
Web app (Web application) là một chương trình ứng dụng được lưu trữ trên
một máy chủ từ xa và được phân phối bằng Internet thông qua bất kỳ trình duyệt
nào hiện có. Giao diện người dùng của Web app thường được xây dựng bằng các
ngôn ngữ lập trình như HTML, CSS, Javascript. Khác với các ứng dụng dành cho
thiết bị di động, hiện tại khơng có SDK cụ thể nào để phát triển các Web app.
Ngoài ra, bất kỳ thành phần nào của Website có thể thực hiện một số chức
năng cho người dùng đều đủ điều kiện là Web app. Ví dụ: mua hàng, tính tiền,
thanh tốn,…
Các Web App có thể được thiết kế cho nhiều mục đích sử dụng khác nhau
và được sử dụng bởi bất kỳ ai từ tổ chức đến một cá nhân. Một số ví dụ điển hình
về các Web app mà chúng ta thường dùng hàng ngày như: Email, các
10


trang thương mại điện tử, website chỉnh sửa ảnh, Facebook…Nhờ có Web app
chúng ta có thể thực hiện các chức năng như đăng thông tin, upload file, xuất báo
cáo, chỉnh sửa ảnh trực tuyến,..

Hình 1. 1. Mơ phỏng ứng dụng Web

1.1.2 Dịch vụ và cơ chế hoạt động Web
Dịch vụ Web là sự kết hợp các máy tính cá nhân với các thiết bị khác,
các cơ sở dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính tốn ảo
mà người sử dụng có thể làm việc thơng qua các trình duyệt mạng.
Bản thân các dịch vụ này sẽ chạy trên các máy phục vụ trên nền

Internet chứ khơng phải là các máy tính cá nhân, do vậy có thể chuyển các
chức nǎng từ máy tính cá nhân lên Internet. Người sử dụng có thể làm việc
với các dịch vụ thông qua bất kỳ loại máy nào có hỗ trợ Web service và có
truy cập Internet, kể cả các thiết bị cầm tay. Do đó các Web service sẽ biến đổi
Internet thành một môi trường làm việc chứ không chỉ là một phương tiện để
xem và tải nội dung .
Web Service là một giao diện truy cập mạng đến các ứng dụng chức
năng, được xây dựng từ việc sử dụng các công nghệ chuẩn Internet . Được
minh hoạ trong hình 1.1 sau:
11


Hình 1. 2 Dịch vụ Web Service.

Web Service cho phép truy cập tới các code ứng dụng sử dụng chuẩn
công nghệ Internet.
Khơng giống như mơ hình Client/Server truyền thống, chẳng hạn như
hệ thống Web server/webpage, Web Service không cung cấp cho người dùng
một giao diện đồ hoạ nào, Web Service đơn thuần chỉ là việc chia sẻ các dữ
liệu logic và xử lý các dữ liệu đó thơng qua một giao diện chương trình ứng
dụng được cài đặt xuyên suốt trên mạng máy tính. Tuy nhiên nguời phát triển
Web Service hồn tồn có thể đưa Web Service vào một giao diện đồ hoạ
người dùng (chẳng hạn như là một trang web hoặc một chương trình thực thi
nào đó) để có thể cung cấp thêm các chức năng đặc biệt cho người dùng.
Cơ chế hoạt động của Web Service yêu cầu phải có 3 thao tác đó là :
Find, Public, Bind .

Hình 1. 3. Cơ chế hoạt động của Web Service.

Trong kiến trúc Web Service, Service Provider công bố các mô tả về các service

thơng qua Service Registry. Service Consumer tìm kiếm trong các Service Registry để
tìm ra các service mà họ cần sử dụng. Service Consumer có thể là một người hoặc
cũng có thể là một chương trình.
Kĩ thuật mơ tả dịch vụ là một trong những thành phần chủ chốt của kiến trúc
Web Service. Các thông tin mô tả đầy đủ nhất về kiến trúc Web Service được thể hiện
trong hai tài liệu riêng biệt, đó là Network Accessible Service Specification Language
(NASSL) và Web-Defined Service (WDS).
1.1.3 So sánh giữa Ứng dụng website và website
12


- Về khả năng tương tác
Mục đích chính của Website là cung cấp những thơng tin hữu ích, nhưng tại đó,
người đọc chỉ có thể xem, nghe và click các link qua lại chứ không thể tác động hay tạo
nên sự ảnh hưởng gì của trang. Nên khả năng tương tác của Website thấp
Cịn mục đích của Web app là tăng khả năng tương tác của người dùng với trang
nên bạn khơng chỉ đọc, nghe mà cịn có thẻ thao tác dữ liệu trên trang bằng cách nhấn
nút, gửi biểu mẫu, nhận phản hồi từ trang, nhắn tin trực tuyến hay mua hàng, thanh tốn,

- Về khả năng tích hợp
Thực tế, cả Website và Web app đều có khả năng tích hợp các phần mềm, cơng cụ
trực tuyến khác. Tuy nhiên, web app có khả năng tích hợp cao hơn do chúng có những
chức năng phức tạp và thường yêu cầu tương tác với các hệ thống bổ sung.
Điển hình như phần mềm CRM thường được tích hợp trong Web app, giúp cho việc quản
lý bán hàng trở nên dễ dàng và hiệu quả hơn.
Còn với Website, phần lớn sẽ tập trung vào việc cung cấp cho người dùng những
chức năng cốt lõi hơn là các chức năng tích hợp.

Hình 1. 4. Website và Web Application


- Về khả năng xác thực thông tin
Đối với Web app, xác thực là một yếu tố quan trọng và rất cần thiết khi người
dùng đăng nhập. Khả năng có tác dụng giúp người dùng bảo mật tài khoản, tránh truy
cập trái phép và rò rỉ những dữ liệu riêng tư của họ.
13


Cịn với các Website, thơng tin xác thực thường khơng bắt buộc đối với người
dùng. Chỉ trong trường hợp website của bạn chứa thông tin nhạy cảm, chỉ phù hợp với
một đối tượng nhất định thì tính năng xác thực mới cần dùng đến. Hoặc người dùng
cũng có thể được đề nghị đăng ký tài khoản để có quyền truy cập vào các tùy chọn
khơng có sẵn.
- Về ngơn ngữ sử dụng khi thiết kế
Website thường được thiết kế khá đơn giản, chủ yếu hiển thị nội dung văn bản, hình
ảnh, video và hỗ trợ việc giới thiệu, nhận thơng tin của người dùng từ form yêu cầu.
Nên các lập trình viên Website thường sử dụng CMS WordPress bởi có mã nguồn
chuẩn SEO, giao diện đơn giản, giúp tiết kiệm chi phí và thời gian triển khai.
Cịn Web app được thiết kế phức tạp hơn với nhiều ngơn ngữ. Ngồi HTML,
CSS cịn có PHP, LAMP, MEAN, .NET, Ruby, Python,… Hơn nữa, các Web app
thường là được lập trình bằng code tay mà khơng có sự hỗ trợ của các CMS hay mã
nguồn có sẵn.

1.2 Một số phương thức tấn cơng lỗ hổng bảo mật website
1.2.1 Giới thiệu chung.

Các lỗ hổng bảo mật trên một hệ thống thơng tin nói chung là các điểm yếu
có thể tạo ra sự ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho
phép các truy cập không hợp pháp vào hệ thống. Các lỗ hổng cũng có thể nằm
ngay các dịch vụ cung cấp như sendmail, web, ftp … Ngoài ra các lỗ hổng cịn tồn
tại ngay chính tại hệ điều hành như trong Windows, UNIX; hoặc trong các ứng

dụng mà người sử dụng thường xuyên sử dụng như Word processing, các hệ
databases, ...
Có thể được phân chia các dạng lỗ hổng bảo mật trên một hệ thống nói
chung thành ba cấp độ nguy hiểm như sau :
Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thức
tấn công theo DoS (Dinal of Services – Từ chối dịch vụ). Mức độ nguy hiểm thấp,
chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống;
không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp.
Lỗ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền
trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Mức độ nguy hiểm
trung bình. Những lỗ hổng này thường có trong các ứng dụng trên hệ thống; có
thể dẫn đến mất hoặc lộ thơng tin yêu cầu bảo mật.
14


Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngồi có thể
truy nhập vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể làm phá hủy
toàn bộ hệ thống.
Các lỗ hổng bảo mật Website là các điểm yếu của hệ thống cung cấp dịch vụ
Web cho phép tin tặc tấn công đánh cắp dữ liệu người dùng, dữ liệu hệ thống, kiểm
soát ứng dụng web, hoặc thậm chí kiểm sốt cả hệ thống máy chủ chạy ứng dụng
web. Các lỗ hổng bảo mật Website rất đa dạng và bao gồm cả ba loại trên.
Trong phần tiếp theo, luận văn sẽ trình bày một số phương thức tấn công lỗ
hổng bảo mật Website.
1.2.2 Các phương thức tấn công lỗ hổng bảo mật website

Trong mục này, luận văn sẽ khảo sát các phương thức tấn công lỗ hổng bảo
mật Website dựa trên khuyến nghị của OWASP .
1.2.2.1.


Tấn công SQL injection

SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng
trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của
hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất
hợp pháp (không được người phát triển ứng dụng lường trước). Hậu quả của nó rất
tai hại vì nó cho phép những kẻ tấn cơng có thể thực hiện các thao tác xóa, hiệu
chỉnh, … do có tồn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà
ứng dụng đó đang chạy. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu
được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle,
DB2, Sysbase. Có 4 dạng tấn cơng kiểu SQL injection sau:
-

Vượt qua kiểm tra lúc đăng nhập

-

Sử dụng câu lệnh SELECT.

-

Sử dụng câu lệnh INSERT.

-

Sử dụng các Stored-Procedures.
1.2.2.2.

Tấn công kiểu Broken Authentication And Session Management


Đây là kiểu tấn công lỗi xác thực và quản lý phiên làm việc (Broken
Authentication And Session Management), bao gồm những đoạn chương trình
kiểm tra danh tính và quản lý phiên làm việc của người sử dụng thường hay được
15


làm qua loa không đúng cách. Điều này giúp kẻ thâm nhập có thể ăn cắp mật mã,
khóa, mã của các phiên làm việc {session token} hoặc tận dụng những lỗi khác để
giả mạo danh tính các người dùng khác.
Quản lý xác thực và phiên bao gồm tất cả các khía cạnh xử lý xác thực và
quản lý phiên làm việc. Xác thực là một khía cạnh quan trọng của quá trình này,
nhưng ngay cả các cơ chế xác thực vững chắc cũng có thể bị suy yếu do chức năng
quản lý có khe hở, bao gồm thay đổi mật khẩu, ghi nhớ mật khẩu, thay đổi tài
khoản và nhiều chức năng khác. Vì các cuộc tấn cơng có thể xảy ra với nhiều ứng
dụng web nên chức năng quản lý tài khoản yêu cầu xác thực lại ngay cả khi người
sử dụng có phiên làm việc hợp lệ. Một phương pháp xác thực mạnh mẽ hơn là sử
dụng phần mềm và phần cứng tuy nhiên phương pháp này rất tốn kém.
Các ứng dụng web thường phải thiết lập phiên để theo dõi các luồng yêu cầu
từ người dùng, giao thức HTTP khơng hỗ trợ khả năng này vì vậy các ứng dụng
web phải tự tạo ra nó. Thơng thường môi trường ứng dụng web cung cấp khả năng
phiên nhưng nhiều nhà phát triển thích tự họ tạo ra một thẻ phiên của riêng họ. Tuy
nhiên, chức năng ứng dụng liên quan đến quản lý xác thực và phiên làm việc
thường thực hiện một cách chính xác, điều này cho phép kẻ tấn cơng lấy được mật
khẩu, khóa, thẻ phiên hoặc khai thác lỗ hổng để thực hiện các giả mạo danh tính
người dùng.
1.2.2.3.
Tấn cơng Cross Site Scripting (XSS)
Kiểu tấn công thực thi mã script xấu Cross-Site Scripting (XSS) là một trong
những kĩ thuật tấn công phổ biến nhất hiên nay, đồng thời 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.
Cross-Site Scripting hay cịn được gọi tắt là XSS (thay vì gọi tắt là CSS để
tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) 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 người
sử dụng khác. Trong đó, những đoạn mã nguy hiểm được chèn vào hầu hết được
16


viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là
cả các thẻ HTML. Kĩ thuật tấn cơng XSS đã nhanh chóng trở thành một trong
những lỗi phổ biến nhất của Web Applications và mối đe dọa của chúng đối với
người sử dụng ngày càng lớn.
1.2.2.4.

Kiểu tấn công Insecure Direct Object References

Kiểu tấn công đối tượng tham chiếu trực tiếp khơng an tồn (Insecure Direct
Object References), xảy ra khi người phát triển để lộ một tham chiếu đến những
đối tượng trong hệ thống như các tập tin, thư mục hay chìa khóa dữ liệu. Nếu
chúng ta khơng có một hệ thống kiểm tra truy cập, kẻ tấn cơng có thể lợi dụng
những tham chiếu này để truy cập dữ liệu một cách trái phép.
Việc phân quyền yếu cho phép người dùng có thể truy cập dữ liệu của người
khác. Hacker có thể xác định được cấu trúc truy vấn gửi đến server và có thể nhanh
chóng thu nhập dữ liệu như Credit Card, mã khách hàng, thông tin cá nhân.
1.2.2.5.

Tấn cơng Security Misconfiguration


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

Tấn cơng Sensitive Data Exposure ( Dị rỉ dữ liệu nhạy cảm )

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


1.2.2.7.
)

Tấn công Missing Function Level Access Control ( lỗi phân quyền

Kiểu tấn công thiếu chức năng điều khiển truy cập (Missing Function Level
Access Control) bao gồm gần như tất cả các ứng dụng web kiểm tra quyền truy cập
cấp độ chức năng trước khi thực hiện chức năng mà có thể nhìn thấy trong giao
diện người dùng. Tuy nhiên, các ứng dụng cần phải thực hiện kiểm tra kiểm soát

truy cập tương tự trên máy chủ khi mỗi chức năng được truy cập. Nếu yêu cầu
không được xác nhận, kẻ tấn cơng sẽ có thể giả mạo u cầu để truy cập vào chức
năng trái phép.

1.2.2.8.

Tấn công Cross-Site Request Forgery (CSRF)

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

1.2.2.9.

Tấn công Using Components with Known Vulnerabilities

Kiểu tấn công sử dụng thành phần đã tồn tại lỗ hổng (Using Components with
Known Vulnerabilities) bao gồm các lổ hổng có thể có trong các thành phần (thành
phần phát triển ứng dụng) như các thư viện, các framework, và mô-đun phần mềm
khác. Các thành phần này gần như luôn luôn chạy với quyền cao nhất trong hệ
thống. Vì vậy, nếu bị khai thác, các thành phần này có thể gây mất dữ liệu nghiêm
trọng
Các ứng dụng sử dụng các thành phần tồn tại lổ hổng có thể làm suy yếu
phịng thủ của hệ thống, cho phép một loạt các cuộc tấn công và ảnh hưởng đến hệ
thống.

1.2.2.10.


Tấn công Unvalidated Redirects and Forwards
18


Kiểu tấn công chuyển hướng và chuyển tiếp thiếu kiểm tra (Unvalidated
Redirects and Forwards) là kiểu tấn công ứng dụng web thường chuyển hướng,
chuyển tiếp người dùng đến những trang web, website khác và sử dụng những
thông tin thiếu tin cậy để xác định trang đích đến. Nếu khơng được kiểm tra một
cách cẩn thận, kẻ tấn cơng có thể lợi dụng để chuyển hướng nạn nhân đến các trang
web lừa đảo hay trang web chứa phần mềm độc hại, hoặc chuyển tiếp để truy cập
các trang trái phép.
Ngoài 10 phương thức tấn công phổ biến mạng hiện nay theo OWASP, cịn có
thể kế đến phương pháp tấn cơng APT rất quan trọng trong tấn công mạng.
1.2.2.11.

Tấn công APT

Thuật ngữ APT (Advanced Persistent Threat) được sử dụng để mô tả kiểu
tấn cơng dai dẳng và có chủ đích vào một thực thể được nhắm đến. Thơng thường
tấn cơng APT có sự chuẩn bị kỹ càng và được thực hiện, hỗ trợ bởi một tổ chức
hoặc cao cấp hơn là chính phủ của một nước nào đó nhằm tìm kiếm thơng tin tình
báo từ cá nhân, doanh nghiệp, chính phủ nước khác.

Phân tích các thuật ngữ trong APT:
Advanced: thuật ngữ này trong cụm từ APT chỉ các kiểu tấn công cao cấp
hơn các thể loại thông thường. Trong APT, tin tặc sử dụng các malware và các biến
thể khác nhau để tiến hành qua mặt và xâm nhập vào hệ thống. Khơng giống các
virus hay chương trình độc hại máy tính khác, các malware này phần lớn có thể
qua mặt được các phương pháp bảo vệ truyền thống khác như Firewall, IPS, và

phần mềm diệt virus.
Persistent: kiểu tấn công APT thực sự bao giờ cũng có chủ đích nhất định và
thuật ngữ Persistent mang ý nghĩa việc tấn công luôn theo sát để đạt được mục đích
của nó. Mục tiêu tấn cơng sẽ khơng bị tấn cơng ngay tức thì mà các mã độc sẽ đi
theo nhiều đường khác nhau cho đến khi xâm nhập vào hệ thống, sau đó chờ thời
cơ. Chúng chỉ thực sự kích hoạt tấn cơng khi phát hiện đúng mục tiêu.
Threat: chỉ các mối nguy hại liên quan đến an ninh, an tồn thơng tin.
Theo thống kế của FireEye , tấn cơng APT nằm trong nhóm hiểm họa an tồn
thơng tin bắt đầu xuất hiện từ giai đoạn 2010-2011 cho đến nay. Đây là phương
19


thức tấn cơng đa dạng, nhanh chóng tạo ra các biến thể để qua mặt các giải pháp an
ninh và gây thiệt hại to lớn so với các rủi ro an ninh khác như virus, spyware.
1.2.3 Nhận xét và đánh giá

Thực tế với tình hình hiện nay, các ứng dụng Web ngày một nhiều. Sự thay
đổi chóng mặt của cơng nghệ đã giúp ứng dụng Web được cải tiến nâng cao rất
nhiều, và vấn đề bảo mật cho ứng dụng Web không ngừng tăng lên. Một khi ứng
dụng Web bị rò rỉ lỗ hổng, các hacker sẽ dễ dàng chiếm quyền quản trị Web, ứng
dụng và phần mềm của công ty. Nguyên nhân dẫn đến các ứng dụng Web bị rị rỉ
thơng tin, các nguy cơ về lỗ hổng, là do các đoạn mã lệnh, mã code không phù hợp
trong ứng dụng Web. Chỉ cần một lỗ hổng, hacker cũng có thể xâm nhập và truy
cập vào cơ sở dữ liệu, thông tin và thực hiện các hành vi sai trái như đánh cắp, thay
đổi, chỉnh sửa, mã hóa dữ liệu…Đối với các doanh nghiệp, tổ chức, cơ quan nhà
nước, việc tăng lớp bảo mật, rà quét lỗ hổng ứng dụng là điều cần thiết.
Việc đánh cắp hoặc chiếm đoạt quyền truy cập của người dùng, nhà quản trị,
cũng như chiếm các phiên làm việc trên session management hoặc ẩn phiên làm
việc session fixation, dẫn đến các hậu quả không an tồn như: những thơng tin cá
nhân, thơng tin quan trọng, tài chính của cơng ty và khách hàng sẽ bị hacker xâm

phạm; ứng dụng web và các phần mềm khác mà cơng ty, doanh nghiệp đang sử
dụng rất có thể sẽ bị hacker cài mã theo dõi, virus độc hại; hệ thống máy chủ hoặc
hệ thống có thể bị tê liệt do sự cố bắt nguồn từ các ứng dụng Web,…..

CHƯƠNG 2. NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN LỖ HỔNG
BẢO MẬT WEBSITE
Trong chương 2 này sẽ nghiên cứu về một số giải pháp phát hiện lỗ hổng bảo
mật website.

2.1 Tổng quan về phát hiện lỗ hổng bảo mật Website
2.1.1 Giới thiệu chung.

Hệ thống Website có thể hoạt động và cung cấp dịch vụ cho người dùng
20


thường trải qua các giai đoạn sau đây:
1 Giai đoạn thiết kế hệ thống Website;
2 Giai đoạn cài đặt hệ thống Website;
3 Giai đoạn triển khai và vận hành khai thác hệ thống Website.

Trong cả ba giai đoạn trên đều có thể phát sinh các lỗ hổng bảo mật và
cần phải có các giải pháp phát hiện lỗ hổng bảo mật cho hệ thống Website.
Quy trình phát hiện lỗ hổng bảo mật cho hệ thống Website đang hoạt
động thông thường được thực hiện theo các bước sau:
1 Bước 1: Khảo sát hiện trạng hệ thống Website

Trước hết, thực hiện khảo sát tồn bộ hệ thống website nhằm thu thập
những thơng tin cơ bản về thiết kế, cài đặt và hiện trạng vận hành để chuẩn bị
cho bước 2.

2 Bước 2: Xây dựng kịch bản đánh giá

Trong bước này cần xây dựng các kịch bản cụ thể để tiến hành phát hiện
lỗ hổng bảo mật cho hệ thống Website.
3 Bước 3: Đánh giá sơ bộ

Thường sử dụng các công cụ rà qt tồn bộ hệ thống website bao gồm
website chính và các website site con như: blog, website wordpress, diễn
đàn,....
4 Bước 4: Đánh giá chi tiết

Trong bước này thường thực hiện tấn cơng từ bên trong và bên ngồi
mạng nội bộ kết nối hệ thống website. Trong đó, tấn cơng từ bên trong hệ
thống sẽ tiến hành thâm nhập toàn bộ hệ thống thông qua bộ lưu trữ mật khẩu
của website, tấn cơng từ diễn đàn, …. Cịn tấn cơng từ bên ngồi hệ thống sẽ
giả lập vai trị là các hacker thâm nhập vào hệ thống thông qua wifi, internet,
host, IDS, tường lửa, ….
Trên cơ sở đánh giá chi tiết sẽ đưa ra những giải pháp, những tư vấn thiết
21


thực nhằm khắc phục các lỗ hổng bảo mật đã phát hiện cho hệ thống website.
Trong mục tiếp theo, dựa trên ý tưởng trình bày trong [2], luận văn sẽ
đưa ra mơ hình phát hiện lỗ hổng bảo mật Website tổng qt.
2.1.2 Cơ chế và mơ hình phát hiện lổ hổng bảo mật Website.

Lỗ hổng bảo mật Website rất đa dạng và có thể do nhiều nguyên nhân
khác nhau, có thể phát sinh từ những yếu tố thuần túy kỹ thuật; cũng có thể do
các yếu tố về tổ chức và quản lý như: thiếu hoặc khiếm khuyết trong các biện
pháp bảo vệ thông tin. Tuy nhiên, lỗ hổng bảo mật Website có thể được chia

thành ba loại: lỗ hổng khách quan, lỗ hổng chủ quan và lỗ hổng ngẫu nhiên.
Lỗ hổng khách quan xuất phát từ các đặc tính kỹ thuật vốn có của thiết bị và
phần mềm của Website. Lỗ hổng chủ quan xuất phát từ hành vi của chủ thể,
có thể là nhà thiết kế, các quản trị viên và người sử dụng. Lỗ hổng ngẫu nhiên
xuất phát từ môi trường của hệ thống Website và những bối cảnh khơng dự
đốn trước được.
Hình 2.1 dưới đây mơ tả mơ hình tổng qt phát hiện lỗ hổng bảo mật
Website.
Theo hình 2.1, quá trình phát hiện lỗ hổng bảo mật Website được xây
dựng bằng cách thực hiện kiểm tra thụ động và kiểm tra thăm dị tích cực
(active probe) các lỗ hổng.
Trong q trình rà qt (scan), các cơng cụ phân tích lỗ hổng bảo mật
Website  sẽ gửi yêu cầu đến địa chỉ của Website (lên cổng máy chủ) 
phân tích các gói dữ liệu nhận được  sau đó trả về tương ứng về các lỗ
hổng có thể tồn tại.
Phương pháp thăm dị tích cực cung cấp khả năng phân tích dấu vết số
đoạn phần mềm của Website, thực hiện quá trình so sánh kết quả nhận được
với dấu vết số lỗ hổng đã được biết của Website đang được kiểm tra. Trong
quá trình kiểm tra thăm dị tích cực, các phương tiện phân tích an tồn mô
phỏng các tấn công vào Website, sử dụng thông tin lỗ hổng nhận được khi
quét.
22


Hình 2. 1. Mơ hình cơ chế tổng qt phát hiện lỗ hổng bảo mật Website.

Kết quả rà quét và kiểm tra thăm dị tích cực được đưa vào cơ sở dữ liệu lỗ
hổng, trong đó lưu giữ thơng tin các lỗ hổng của Website. Trên cơ sở so sánh
thông tin lỗ hổng được phát hiện với thông tin các lỗ hổng của Website, các
phương tiện phân tích an tồn hệ thống lập báo cáo về sự vắng mặt hay hiện

diện của những trùng hợp trong thông tin của các lỗ hổng, báo cáo này được
lưu trong cơ sở dữ liệu lỗ hổng.
Mô tả thông tin các lỗ hổng đã được biết đến và lỗ hổng chưa biết (lỗ
hổng zero-day) được lưu giữ bằng thơng tin về các tính chất đặc thù của từng
lỗ hổng cụ thể. Để nhận dạng chính xác thơng tin lỗ hổng được phát hiện, cơ
sở dữ liệu lỗ hổng cần chứa thông tin về tên gọi và phiên bản phần mềm của
Website, về định danh, tên và lớp của các lỗ hổng được phát hiện. các lỗ hổng
đã được biết đến và lỗ hổng zero-day được lưu giữ bằng thơng tin về các tính
chất đặc thù của từng lỗ hổng cụ thể. Để nhận dạng chính xác thơng tin lỗ
hổng được phát hiện, cơ sở dữ liệu lỗ hổng cần chứa thông tin về tên gọi và
phiên bản phần mềm của Website, về định danh, tên và lớp của các lỗ hổng
được phát hiện
23


Dựa trên các thông tin trên, các phương tiện phân tích an tồn sẽ phân
loại các mức độ của lỗ hổng. Để đánh giá một cách chính xác thơng tin về lỗ
hổng bao gồm: loại khiếm khuyết của Website, vị trí phát hiện và phương
pháp phát hiện lỗ hổng. Quá trình đánh giá lỗ hổng kết thúc bằng các khuyến
nghị về việc loại bỏ lỗ hổng hoặc loại trừ khả năng sử dụng chúng.
Trong trường hợp lỗ hổng được phát hiện lần đầu tiên, các phương tiện
phân tích sẽ đưa thơng tin về nó vào cơ sở dữ liệu lỗ hổng và hình thành cơ sở
dữ liệu mới của lỗ hổng zero-day. Khi các nhà phát triển Website đưa ra các
bản cập nhật và các biện pháp bảo vệ thông tin, thì lỗ hổng zero-day sẽ
chuyển thành lỗ hổng đã biết.

1

Giải pháp sử dụng cơng cụ phần mềm dị qt.
.

2.1.3 Giới thiệu giải pháp

Trong quá trình thiết kế, cài đặt và vận hành hệ thống Website, thường
xuyên dò quét phát hiện các lỗ hổng bảo mật để kịp thời xử lý là sự lựa chọn
thông minh giúp cho các doanh ngiệp, cá nhân, tổ chức bảo vệ được hệ thống
của mình. Để thực hiện dị qt phát hiện các lỗ hổng bảo mật, người dùng có
thể tự cài đặt các phần mềm hoặc sử dụng các phần mềm sẵn có của các nhà
cung cấp.
Một số tiêu chuẩn kiểm thử lỗ hổng bảo mật website điển hình:
– OWASP (Open Web Application Security Project).
– OSSTMM (Open Source Security Testing Methodology Manual) – Kiểm thử

theo phương thức mã nguồn mở.
– PTF (Penetration Testing Framework) – Dò quét lỗ hổng bảo mật hệ thống.
– ISSAF (Information Systems Security Assessment Framework) – Đánh giá

bảo mật Hệ thống thông tin.
Để xây dựng các phần mềm phát hiện lỗ hổng bảo mật, trước hết cần
nghiên cứu kỹ các đặc điểm lỗ hổng bảo mật dựa trên các tiêu chuẩn nêu trên.
Tiếp theo là sử dụng phần mềm để dị qt phát hiện lỗ hổng bảo mật.
Q trình tự cài đặt các phần mềm phát hiện lỗ hổng bảo mật giúp cho
các nhà phát triển Website nắm rõ bản chất của lỗ hổng và sớm có các giải
24


pháp khắc phục.
Trong hình 2.2 mơ tả sơ đồ tấn công lỗ hổng cơ sở dữ liệu SQL của
website được viết bằng ngơn ngữ lập trình PHP và cơ sở dữ liệu SQL server .

Hình 2. 2. Sơ đồ thực hiện tấn công lỗ hổng cơ sở dữ liệu SQL trên web


Trên cơ sở đó, thực hiên cài đặt phần mềm theo sơ đồ trên để phát hiện
lỗ hổng bảo mật webiste tương ứng.

2.1.4 Một số phần mềm phát hiện lỗ hổng bảo mật Website

Hiện nay có khá nhiều phần mềm miễn phí cũng như trả phí được phát
hành. Một số ứng dụng phát hiện lỗ hổng bảo mật Website khá phổ biến được
liệt kê dưới đây.
- IBM AppScan: cho phép tìm ra các lỗ hổng ứng dụng trên nền tảng web. IBM

AppScan có thể dị qt ra các lỗ hổng báo mật website như SQL Injection,
XSS, tìm kiếm phát hiện ra Trojan và Backdoor….
- WebInspect: cho phép nhận dạng ra các lỗ hổng website phổ biến. Sử dụng

Webinspect để dị qt lỗ hổng website cho ta biết cấu hình web server đã
chuẩn chưa, đồng thời nó cũng thử sử dụng một vài tấn công để khai thác lỗ
hổng website.
- Phần mềm Havij: phát hiện lỗ hổng cơ sở dữ liệu SQL với ngơn ngữ lập trình
web là PHP.
- Phần mềm Acunetix: là chương trình tự động kiểm tra các ứng dụng
Web để tìm kiếm các lỗ hổng bảo mật như SQL Injection, hay Cross25


×