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

Nghiên cứu kiểm thử bảo mật website (tt)

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 (372.65 KB, 26 trang )

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

T

N TH H NH

NGHI N C U I
TH
WEBSITE

B

Chuyên ngành: Hệ T n T
ã s : 60.48.01.04



T

n Tn

TẮT LU N VĂN TH C SĨ

HÀ NỘI – 2017


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS TS L H u Lập



Phản biện 1: .................................................................

Phản biện 2: ..................................................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc :… giờ … ngày ……tháng …… năm …………

Có thể tìm hiểu luận văn tại
-Thư viện của Học viện Công nghệ Bưu chính Viễn thông


1

MỞ Đ U
Đảm bảo an toàn cho website đang là một vấn đề cấp bách của tất cả các quốc gia
tr n thế giới, đặc biệt là ở Việt Nam
Ở Việt Nam gần đây có nh ng vụ tấn công vào các website gây ảnh hưởng nghi m
trọng điển hình như: Tháng 11/2006 website của Bộ Giáo dục & Đào tạo (có địa chỉ tại
www.moetgov vn) đã bị hacker tấn công, tháng 6/2013 hàng loạt trang báo dân trí,
vietnamnet, tuoitre đã bị tấn công làm t liệt Năm 2014 hàng loạt website thuộc hệ
thống của Công ty Cổ phần truyền thông Việt Nam (VCCorp) và các website được hỗ
trợ vận hành bởi đơn vị này đồng loạt gặp sự cố do tấn công DdoS. Gần đây vào ngày
29/7/2016, trang mạng chính thức của Vietnam Airlines đã bị hacker tấn công chiếm
quyền kiểm soát và chuyển sang trang mạng xấu ở nước ngoài D liệu của một số hội
vi n khách hàng thường xuy n của Vietnam Airlines đã bị công bố,..
Khả năng có thể truy cập 24/7 từ bất cứ nơi nào tr n thế giới hay các ứng dụng web
không an toàn thường cung cấp truy cập dễ dàng đến cơ sở d liệu là một sơ hở lớn cho
phép tin tặc có thể thực hiện các hoạt động bất hợp pháp bằng cách sử dụng các trang

web đã tấn công Hầu hết nguy n nhân của các vụ tấn công này là do website tồn tại
nhiều lỗ hổng bảo mật
Một điều đáng lo ngại n a là đối với các cá nhân, tổ chức và doanh nghiệp, CNTT
nói chung và các ứng dụng web nói ri ng đang trở thành một trong các nhân tố, công cụ
đắc lực hỗ trợ tăng hiệu suất làm việc và lợi nhuận, hiệu quả kinh tế cao cho họ, nhưng
sự quan tâm, và chi phí bỏ ra cho lĩnh vực bảo trì, bảo mật lại không đáng kể Đồng thời
các mối nguy hiểm đe dọa ngày càng mới và phát triển phức tạp hơn, khả năng tấn công
và khai thác của các kẻ xấu đã tăng l n rõ rệt, các mã độc, phần mềm độc hại, virut trở
n n khó phát hiện và ti u diệt hơn
Vì vậy vấn đề an ninh mạng nói chung và bảo mật Web Application nói ri ng đang
là một vấn đề quan trọng và cấp bách cần phải được nghi n cứu, tìm hiểu và đưa ra các
giải pháp và kỹ thuật mới để phòng tránh, đồng thời cá nhân, tổ chức và doanh nghiệp
cũng cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo cho hệ thống
mạng cũng như Web Application của mình hoạt động tốt, có khả năng chống chọi và
ngăn chặn trước các mối nguy hiểm và các cuộc tấn công.


2

Đó là lý do em đã chọn đề tài: “Nghi n cứu kiểm thử bảo mật website” để làm luận
văn tốt nghiệp với mục đích hiểu được việc kiểm thử website từ đó áp dụng vào công
việc thực tế

1.

ục đíc n

ên cứu

Tìm hiểu các vấn đề về bảo mật, các phương pháp và các công cụ kiểm thử bảo mật

website lựa chọn công cụ kiểm thử và thực hiện thử nghiệm kiểm thử bảo mật website
qua đó đánh giá kết quả
-

Tìm hiểu tổng quan về bảo mật

-

Nghi n cứu các loại kiểm thử bảo mật, quy trình kiểm thử bảo mật

-

Nghi n cứu các phương pháp và các công cụ tương ứng trong kiểm thử bảo
mật website
o Phương pháp kiểm thử hộp đen
o Phương pháp kiểm thử hộp trắng
o Phương pháp kiểm thử Fuzzing

2. Đ

-

Phân tích đánh giá, lựa chọn công cụ và thực hiện kiểm thử bảo mật website

-

Đánh giá kết quả đạt được

tƣợn và p ạm v n


ên cứu

Trong khuôn khổ luận văn thuộc loại nghi n cứu và ứng dụng, em chỉ giới hạn nghi n
cứu các vấn đề sau:
-

Nghi n cứu các phương pháp và các công cụ tương ứng trong kiểm thử bảo
mật website

-

Phân tích đánh giá, lựa chọn công cụ và thực hiện kiểm thử bảo mật website


3

CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT WEBSITE
1.1. Tổng quan về bảo mật
Bảo mật cần sự thỏa hiệp gi a v i ệ c đảm bảo an ninh và chức năng hay khả năng
sử dụng của hệ thống. Nếu bảo mật quá chặt chẽ, hệ thống sẽ trở nên rất khó sử dụng hoặc
khó hoạt động một cách hiệu quả. Nếu bảo mật quá đơn giản, hệ thống dễ bị tấn công và
xâm nhập
Kiểm thử bảo mật Web, theo nghĩa truyền thống, là đánh giá hiệu quả sự bảo vệ
toàn bộ hệ thống Web Nó yêu cầu kết hợp nhiều kiến thức về các công nghệ bảo mật,
công nghệ mạng, lập trình, và kinh nghiệm thực tế về thâm nhập các hệ thống mạng. Hầu
hết các kiểm thử viên phần mềm không có đầy đủ kiến thức này. Do đó chúng ta cần
nghi n cứu, tìm hiểu các kiến thức về bảo mật cho website từ đó có thể đưa ra cách thức
thực hiện cũng như đánh giá về khả năng bảo mật của website

1.2. Mục đích của bảo mật

Tùy thuộc vào các yêu cầu của mỗi hệ thống, mỗi hệ thống có nh ng mục đích khác
nhau, nhưng y u cầu bảo mật đều có điểm chung là: Đảm bảo sự an toàn d liệu cho hệ
thống và bảo vệ các tài nguyên trên mạng trước sự tấn công nhằm phá vỡ hệ thống hoặc
sử dụng trái phép các tài nguy n của một số người có chủ ý xấu

1.3. Th ng kê tình trạng bảo mật h ện nay của các tran web
Theo thống k của trang web bảo mật Security Daily, có đến 1039 website của Việt
Nam bị tấn công trong vòng nửa đầu tháng 9 năm 2015 – tăng đột biến gấp 4 lần so với các
tháng trước,
Trong số này, có 69 website giáo dục và hơn 30 website của các cơ quan thuộc Chính
phủ Việt Nam Hơn 1000 website các lỗ hổng bị tấn công đều là các lỗ hổng cơ bản và đã
tồn tại cách đây hơn chục năm và các hacker có thể dễ dàng tấn công các website này Số
lượng các website bị tin tặc tấn công sẽ còn tiếp tục tăng trong thời gian tới
Theo thống k

khác của Bkav, tại Việt Nam, trung bình mỗi tháng lại có hơn 300

website của các doanh nghiệp, tổ chức trong nước bị tấn công Tỷ lệ website tồn tại lỗ hổng
ở khu vực Châu Á là 36%, Châu Âu 15%, Châu Mỹ 5% và Châu Phi 33% thì tại Việt Nam
tỷ lệ này là 40% Như vậy, mức độ bảo mật của hệ thống các webstie Việt Nam chỉ ở mức
trung bình so với các nước trong khu vực và thấp so với tr n thế giới Trong đó đáng chú ý
là 30% các website ngân hàng tại Việt Nam tồn tại lỗ hổng Và có tới 2/3 trong số này ở
mức độ nguy hiểm trung bình và cao


4

1.4. Một s phƣơng pháp tấn công phổ biến hiện nay
1.4.1.


Tấn công SqlInjection

1.4.2.1. Khái quát
1.4.2.2. Minh họa
1.4.2.3. Cơ chế phát hiện
1.4.2.4. Các thức phòng tránh
1.4.2.

Tấn công Cross Site Scripting

1.4.2.5. Khái quát
1.4.2.6. Minh họa
1.4.2.7. Cơ chế phát hiện
1.4.2.8. Cách thức phòng tránh
1.4.3. Lỗ hổng Directory Listing

1.4.3.1. Khái quát
1.4.3.2. Minh họa
1.4.3.3. Phát hiện
1.4.3.4. Phòng chống
ết luận c ƣơn
Trong chương này đã n u l n các khái niệm cơ bản về bảo mật, mục đích của bảo mật,
thống k tình trạng bảo mật của website Đồng thời giới thiệu một số lỗ hổng phổ biến hiện
nay Để đảm bảo an toàn cho website cần thực hiện kiểm thử bảo mật cho chúng Việc áp
dụng các phương pháp kiểm thử bảo mật website sẽ được giới thiệu ở chương 2 kiểm thử
bảo mật website


5


CHƯƠNG 2 – KIỂM THỬ BẢO MẬT WEBSITE
2.1. G ớ th ệu về kiểm thử phần mềm
Kiểm thử phần mềm (kiểm tra, thử nghiệm) là một cuộc kiểm tra được tiến hành để
cung cấp cho các b n li n quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được
kiểm thử Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc
lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được nh ng rủi ro trong quá
trình triển khai phần mềmKiểm thử phần mềm là quá trình thực thi một chương trình với
mục đích tìm lỗi.
2.2. K ểm thử bảo mật

2.2.1. Mục đích của kiểm thử bảo mật
Với tư cách là kiểm thử viên, là tập trung kiểm thử bảo mật của Website và ứng dụng
Web. Điều đó có nghĩa là chúng ta tìm kiếm các lỗ hổng và rò rỉ thông tin gây nên chủ
yếu do lập trình và do cấu hình sai các trình chủ Web và các trình chủ ứng dụng khác.

2.2.2 Trách nhiệm của kiểm thử bảo mật
Kiểm thử bảo mật liên quan đến trách nhiệm của nhiều người khác nhau sau đây:
- Nhà định nghĩa chính sách (policymaker)
- Người quản trị mạng, thiết kế và cài đặt các biện pháp bảo
- Lập trình viên phần mềm
- Các chuyên gia và nhà tư vấn bảo mật

2.2.3.

Mục đích kiểm thử bảo mật

Kiểm thử bảo mật cho website nhằm mục đích tìm ra các lỗi về bảo mật của website nó là
cơ sở để xác định các lỗ hổng bảo mật.

2.3. Các loạ kiểm thử bảo mật

2.3.1. Kiểm thử yêu cầu và thiết kế
Bất kỳ hệ thống nào cũng được xây dựng từ một tập hợp các yêu cầu Đôi khi
nh ng yêu cầu này được viết một cách rõ ràng, nhưng thường chúng là nh ng phát biểu
mập mờ không được định nghĩa rõ ràng về tính bảo mật. Ví dụ, có thể có phát biểu “Ứng
dụng phải an toàn” Nhưng “an toàn” nghĩa là gì và nên phải dành bao nhiêu công sức và
thời gian để làm cho sản phẩm an toàn. Kiểm thử bảo mật ở giai đoạn y u cầu thiết kế cho
ứng dụng web chính là việc xem xét các y u cần thiết có đã mô tả rõ các ti u chí cụ thể về
y u cầu bảo mật cho ứng dụng web hay chưa


6

2.3.2.

Kiểm thử mã nguồn

2.3.3. Kiểm thử các thiết lập của trình duyệt
2.3.4. Kiểm thử bức tường lửa
2.4. Quy trình k ểm thử bảo mật website


Bước đầu ti n là phải hiểu được nghiệp vụ hệ thống, mục ti u bảo mật và tuân thủ
bảo mật của tổ chức Việc lập kế hoạch kiểm tra n n xem xét tất cả các yếu tố bảo
mật



Thu thập tất cả các thông tin thiết lập hệ thống được sử dụng để phát triển phần mềm
và mạng giống như hệ điều hành, công nghệ, phần cứng




Check list các lỗ hổng và rủi ro bảo mật, chuẩn bị kế hoạch kiểm tra để giải quyết
nh ng vấn đề này



Đối với mỗi mối đe dọa được xác định, lỗ hổng và rủi ro bảo mật chuẩn bị ma trận
lưu vết (traceability matrix)



Tất cả các thử nghiệm bảo mật có thể không thể thực hiện bằng tay, do đó xác định
các công cụ để thực hiện tất cả các trường hợp kiểm tra bảo mật nhanh hơn và đáng
tin cậy hơn



Chuẩn bị các testcase kiểm tra bảo mật



Thực hiện test các testcase đó và retest các bug đã được sửa



Thực hiện test tích hợp




Chuẩn bị báo cáo chi tiết về kiểm tra bảo mật, trong đó có lỗ hổng bảo mật và các
mối đe dọa, rủi ro chi tiết, và các vấn đề bảo mật khác

2.4.1. Kiểm thử bảo mật thủ công (manually)
a,

ểm t ử t ủ c n

Kiểm thử thủ công là quá trình kiểm thử mà người kiểm thử phải xác định vị trí d liệu
cần được gửi đến ứng dụng bằng cách sử dụng các intercepting proxy (là một ứng dụng
nằm gi a ứng dụng và trình duyệt, cho phép người kiểm thử thay đổi giá trị một cách tùy
biến trước khi gửi đến đến ứng dụng) và tập d liệu cần gửi đến ứng dụng tương ứng với
các vị trí gửi đã xác định trước đó Kiểm thử thủ công bao gồm design, business logic
cũng như xác minh mã nguồn Quá trình kiểm thử thâm nhập:
o

Xác định các lỗ hổng có trong hệ thống là bước quan trọng đầu ti n trong quá
trình

o

Hoạt động sửa ch a được thực hiện tr n nh ng lỗ hổng này


7
o

Kiểm thử thâm nhập tương tự sẽ được lặp lại cho đến khi hệ thống từ chối tất
cả các cuộc kiểm tra


b, Các bƣớc k ểm t ử bảo mật t ủ c n
o

Thu thập d liệu

o

Đánh giá tính chất dễ bị tổn thương của hệ thống

o

Khai thác thực tế: Đây là một bước cực kỳ quan trọng

o

Phân tích kết quả và chuẩn bị báo cáo
Quá trình tìm kiếm lỗi bảo mật trong mã nguồn của ứng dụng bằng phương

pháp thủ công thì phải đòi hỏi người kiểm thử phải có một phương pháp kiểm thử và
ra soát hợp lý Bởi vì khối lượng tập tin cũng như nội dung trong các ứng dụng web
là rất lớn, nếu như không có một phương pháp rà soát và đánh giá hợp lý thì sẽ ti u
tốn rất nhiều thời gian để phát hiện lỗi

2.4.2. Kiểm thử bảo mật tự động (Automation)
Phương pháp kiểm thử lỗi tự động là quá trình các công cụ sẽ thực hiện tự động quét thư
mục, tập tin của ứng dụng web và tự động xác định các điểm mà cần đệ trình d liệu Tr n
cơ sở đã xác định các điểm cần gửi tự động đến công cụ sẽ thực hiện gửi các tập d liệu
được định nghĩa sẵn và chờ sự phản hồi từ phía ứng dụng web để kiểm tra xem liệu ứng
dụng đó có bị các lỗi bảo mật hay không.
Công cụ tự động có thể được sử dụng để xác định một số lỗ hổng ti u chuẩn hiện tại trong

một ứng dụng Công cụ kiểm thử bảo mật quét mã hiện nay dùng để kiểm tra xem có mã độc
hay không có thể dẫn đến vi phạm an ninh tiềm tàng Công cụ kiểm thử bảo mật không thể
xác minh lỗ hổng bảo mật hiện tại trong hệ thống như các kỹ thuật mã hóa d liệu và các giá
trị mã cứng giống như username và password
Các ti u chí để chọn công cụ kiểm thử bảo mật tốt nhất:
o

Nó sẽ dễ dàng được triển khai, cấu hình và sử dụng

o

Nó sẽ quét được hệ thống một cách dễ dàng

o

Nó có thể phân loại lỗ hổng dựa tr n mức độ nghi m trọng cần sửa ch a ngay
lập tức

o

Có khả năng tự động xác minh các lỗ hổng

o

Có thể xác minh lại nh ng khai thác mà đã được tìm thấy trước đó

o

Nó sẽ tạo ra các báo cáo và các bản ghi chi tiết về lỗ hổng



8

2.5. Các p ƣơn p áp k ểm t ử bảo mật
2.5.1. Phương pháp kiểm tra hộp trắng
2 5 1 1 Nội dung phương pháp
Phương pháp kiểm tra hộp trắng các lỗi bảo mật tr n ứng dụng web là quá trình kiểm tra
trực tiếp mã nguồn của ứng dụng web để tìm ra các lỗi bảo mật Quá trình quan sát và kiểm
tra mã nguồn có thể thực hiện thủ công hoặc thực hiện bằng công cụ Quá trình thực hiện
bằng công cụ tức là quá trình mà công cụ sẽ thực hiện quét toàn bộ mã nguồn của ứng dụng
và dựa tr n tập nhận biết các hàm, các chỉ dẫn có khả năng gây ra lỗi bởi ngôn ng lập trình
phát triển ứng dụng web
ểm t ử đƣờn d ễn t ến của c ƣơn trìn

a,

Đây là khái niệm chỉ đến việc thiết kế các trường hợp kiểm thử tr n từng lệnh trong
chương trình sẽ thực hiện ít nhất một lần Kỹ thuật này không quan tâm đến ảnh hưởng l n
các đường quyết định (decisions path).
Việc xây dựng tập hợp kiểm thử có thể thực hiện theo nh ng bước sau đây:
1) Dùng tài liệu thiết kế hay source code để vẽ ra một đồ thị mô tả flow chart của
chương trình hay hàm
2) Xác định đồ thị V(G)
3) Từ đồ thị xác định tập đường độc lập tuyến tính lẫn nhau
4) Xây dựng nh ng trường hợp kiểm thử dựa tr n tập đường xác định ở bước
trên.
Mỗi trường hợp được chạy và so sánh với kết quả mong đợi Nếu tất cả các trường
hợp kiểm định đều cho kết quả như mong muốn thì có thể khẳng định rằng tất cả các dòng
lệnh trong thủ tục average đều được kiểm thử ít nhất một lần
ểm t ử cấu trúc đ ều k ển


b,


ểm t ử các b ểu t ức đ ều k ện
Kiểm thử biểu thức điều kiện là phương pháp kiểm thử tr n nh ng điều kiện logic

của hàm hay module Một điều kiện đơn giản là một biến boolean hoặc là một biểu thức
quan hệ:
-

X hay Not X một điều kiện logic đơn giản

-

Biểu thức quan hệ thường có dạng : E1 E2


9

E1, E2 là các biểu thức số học và phép toán quan hệ là một trong các phép toán sau :
<, <=, ==,! = , > hay >= Một điều kiện kết hợp của 2 hay nhiều điều kiện đơn giản, các
phép toán boolean: OR (| |, AND (&) and NOT (!)
Các loại lỗi của điều kiện bao gồm:
-

Lỗi trong các thao tác luận lý (lỗi tồn tại một biểu thức không đúng, thiếu hoặc thừa
các thao tác luận lý):

-


Lỗi do giá trị của biến luận lý

-

Lỗi do dấu ngoặc

-

Lỗi do phép toán quan hệ

-

Lỗi trong biểu thức toán học
Mục đích của kiểm thử cấu trúc điều khiển là phát hiện không chỉ lỗi trong điều kiện

mà còn nh ng lỗi khác trong chương trình Nếu một tập kiểm thử cho một chương trình P là
hiệu quả cho việc phát hiện lỗi trong điều kiện của P, thì bộ kiểm thử đò cũng có thể phát
hiện các lỗi khác trong P.
E1 E2
Ba trường hợp kiểm thử được y u cầu để kiểm tra là giá trị E1 lớn hơn, nhỏ hơn và
bằng giá trị của E2 Nếu là không đúng và E1, E2 là đúng thì 3 loại
kiểm thử tr n có đảm bảo có thể xác định được lỗi trong phép toán quan hệ Để phát hiện lỗi
trong E1và E2 thì các trường hợp kiểm thử E1 lớn hơn, nhỏ hơn E2 có thể phát hiện ra được
lỗi
Một biểu thức có n biến, thì có 2n khả năng kiểm thử xảy ra khi (n>0)
c,

ểm t ử luồn dữ l ệu (DFT)
Phương pháp kiểm thử luồng d liệu chọn lựa một số đường diễn tiến của chương


trình dựa vào việc cấp phát, định nghĩa, và sử dụng nh ng biến trong chương trình
Phương pháp kiểm thử luồng d liệu y u cầu rằng tất cả các chuỗi DU đều được
kiểm thử ít nhất một lần
DFT rất h u ích cho các loại kiểm thử một chương trình có nhiều lệnh if và lệnh lặp
lồng nhau nhiều cấp
d,

ểm t ử vòn lặp


10

Vòng lặp là một trong nh ng nền tảng cho rất nhiều các thuật toán được cài đặt trong
các phần mềm Tuy nhiên, cho đến lúc này chúng ta vẫn còn ít chú ý đến việc xây dựng các
trường hợp để kiểm thử
Kiểm thử vòng lặp tập trung vào tính chất của cấu trúc vòng lặp Có 4 cấu trúc vòng
lặp như sau: vòng lặp đơn giản, vòng lặp móc nối, vòng lặp tạo thành tổ, và vòng lặp không
cầu trúc
(1) Vòn lặp đơn
Tập hợp tiếp theo là các trường hợp kiểm thử cho vòng lặp đơn, với n là maximum số
lần lặp
 Bỏ tính toàn vẹn của vòng lặp
 Chỉ cần một lần duyệt xuy n qua cả vòng lặp
 Hai lần duyệt xuy n qua cả vòng lặp
 m lần duyệt xuy n qua cả vòng lặp
 n-1, n, n+1 lần duyệt xuy n qua cả vòng lặp
(2) Vòn lặp tạo tổ
Nếu như chúng ta mở rộng phương pháp kiểm thử cho vòng lặp đơn thì số lượng
trường hợp kiểm thử sẽ tăng rất nhiều Sau đây là một cách là giảm sồ lượng trường hợp

kiểm thử:
 Bắt đầu tại vòng lặp con trong cùng Thiết lập tất cả các vòng lặp khác là giá trị
minimum.
 Kiểm soát vòng lặp ở trong cùng trong khi gi các vòng lặp b n ngoài lặp lại với giá
trị là minimum thông số ảnh hưởng nhau (thông số đó có thể là biến lặp) Th m môt
số trường hợp ngoài phạm vi của biến lặp và một số giá trị đặc biệt
 Thực hi n như bước tr n và tiến ra ngoài dần
 Thực hiện tiếp cho đến khi tất cả các vòng lặp được kiểm thử hết
(3) Vòn lặp móc n


11

Đối với kiểu này có thể kiểm thử bằng cách như với vòng lặp đơn ở tr n nếu các biền
lặp độc lập với nhau Tuy nhi n nếu 2 vòng lặp là móc nối và biến lặp của vòng lặp thứ nhất
được sử dụng như là biến khởi tạo cho vòng lặp 2 thì 2 vòng lặp này không còn độc lặp n a
Phương pháp dùng cho vòng lặp tạo tổ sẽ được sử dụng ở đây
(4) Vòn lặp k

n có cấu trúc

Khi nào gặp các cấu trúc lặp như vậy thì n n thiết kế lại Việc kiểm thử rất phức tạp

2.5.1 2 Một số công cụ ti u biểu
Một số công cụ giúp kiểm thử bảo mật website áp dụng phương pháp kiểm thử hộp trắng
sau:
a, AppCodeScan
Là công cụ hỗ trợ việc quét mã nguồn là AppCodeScan do Blueinfy Solutions Pvt Ltd phát
triển
Việc thực hiện quét mã nguồn bằng công cụ rất đơn giản Chỉ cần lựa chọn thư mục có chứa

mã nguồn ứng dụng Web cần scan và thực hiện lựa chọn rule (lựa chọn các kiểu cần áp
dụng cho quá trình scan).
b, Công cụ RATS (Rough Auditing Tool for Security)
Công cụ RATS cũng là một trong nh ng công cụ thực hiện rà soát mã nguồn đối với một số ứng
dụng được viết bằng các ngôn ng như C, C++, Perl, PHP, Python và Ruby do Secure Software Inc
phát triển Công cụ này cũng chỉ dựa tr n tập các hàm mà có nguy cơ gây ra lỗi bảo mật đối với
dụng và nó thực hiện scan với tốc độ cao Sau khi thực hiện chạy công cụ thì công cụ sẽ đưa ra một
danh sách các hàm và vị trí trong mã nguồn, giúp người kiểm tra có thể nhanh chóng tập trung ra
soát lại các hàm mà RATS đưa ra, kiểm tra liệu khi sử dụng các hàm đó đã an toàn hay chưa

2.5.2. Phương pháp kiểm thử hộp đen
2.5.2.1. Nội dung phương pháp
Phương pháp kiểm tra hộp đen các lỗi bảo mật tr n ứng dụng web đề cập đến việc kiểm
tra các ứng dụng từ b n ngoài, tức là quan sát các d liệu được đệ trình đến ứng dụng và các
d liệu từ ứng dụng xuất ra mà không cần hiểu đến hoạt động b n trong của nó Quá trình
đệ trình d liệu từ b n ngoài đến ứng dụng có thể thực hiện bằng thủ công hoặc sử dụng
công cụ tự động gửi đến ứng dụng

2.5.2.2. kiểm thử hộp đen
a) Phân đoạn tương đương


12

Phân đoạn tương đương là phương pháp chia d liệu vào thành các đoạn, mỗi đoạn
đại diện cho một số d liệu Và việc kiểm thử chỉ thực hiện tr n đại diện đó Mục
đích của phương pháp này là giảm số lượng test bằng cách chọn các tập d liệu đại
diện
b) Phương pháp phân tích giá trị bi n
Phương pháp phân tích giá trị bi n là một trường hợp ri ng của phương pháp phân

đoạn tương đương Với ý tưởng như sau:
 Kiểm tra điều kiện bi n của đoạn thì có tác dụng hơn là kiểm tra các giá trị tùy
ý của các lớp như tr n
 Chọn các giá trị bi n đầu vào để kiểm tra các đoạn thay vì kiểm tra nh ng giá
trị tùy ý
 Chiến lược của phương pháp
 Chọn một giá trị tùy ý cho mỗi đoạn
 Chọn các giá trị chính xác ở bi n tr n và bi n dưới của mỗi đoạn
 Chọn các giá trị ở ngay b n dưới và b n tr n của mỗi bi n nếu có thể
c) Phương pháp đồ thị nguy n nhân - kết quả (Cause - Effect Graphing)
Phương pháp đồ thị nguy n nhân - kết quả sử dụng một đồ thị có hướng mà ánh xạ
một bộ nguy n nhân sang một bộ kết quả Bộ các nguy n nhân có thể được xem như
đầu vào còn bộ các kết quả có thể được xem như đầu ra Thông thường, đồ thị mô tả
nh ng nút nguy n nhân ở b n trái còn nh ng nút kết quả ở b n phải Có thể có
nh ng nút trung gian đứng ở gi a để kết hợp các nút sử dụng các phép toán logic
AND và OR.
Thay vì các kiểm thử vi n phải cố gắng xác định các trường hợp kiểm thử một cách
thủ công thì họ có thể sử dụng kỹ thuật tr n để xác định các trường hợp kiểm thử có
thể bao phủ 100% các chức năng Điểm bắt đầu để xây dựng đồ thị nguy n nhân –
kết quả dựa vào tài liệu đặc tả về hệ thống Từng đầu vào và đầu ra trong đồ thị
nguy n nhân kết quả tương ứng với một biểu thức điều kiện cái mà có thể nhận một
trong hai giá trị true hoặc false
2.5.2.3.

Ưu điểm và nhược điểm của phương pháp kiểm thử hộp đen

a, Ưu điểm của phương pháp
-

Người kiểm thử được thực hiện từ quan điểm của người dùng và sẽ giúp đỡ trong

việc sáng tỏ sự ch nh lệch về thông số kỹ thuật


13

-

Kiểm thử theo phương pháp hộp đen không có “mối ràng buộc” nào với code, và
nhận thức của người kiểm thử rất đơn giản: một source code có nhiều lỗi Sử dụng
nguy n tắc, "Hỏi và bạn sẽ nhận" các nhân vi n kiểm thử tìm được nhiều bug ở nơi
mà các nhân vi n phát triển không tìm thấy

-

Việc kiểm thử có thể được thực hiện bởi một cơ quan độc lập với đơn vị phát triển
chương trình, cho phép một cái nhìn khách quan và tránh sự phát triển thi n vị

-

Hệ thống thật sự với toàn bộ y u cầu của nó được kiểm thử chính xác

-

Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các y u cầu chức năng được xác
định

b, Nhược điểm của phương pháp kiểm thử hộp đen
-

D liệu đầu vào y u cầu một khối lượng mẫu khá lớn


-

Khi y u cầu rõ ràng các thông số không rõ ràng thì việc thiết kế kịch bản kiểm thử rất
khó và do đó khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tố đầu vào, và
thiếu cả thời gian cho việc tập hợp này

-

Khả năng để bản thân người thực hiện lạc lối trong khi kiểm thử là khá cao

-

Chỉ có một số nhỏ các đầu vào có thể được kiểm tra và nhiều đường dẫn chương
trình sẽ được để lại chưa được kiểm tra

2.5.2.4.

Một số công cụ kiểm tra thủ công hộp đen ti u biểu

a, Wa3f là một công cụ đánh giá các lỗi bảo mật tự động và miễn phí Thực hiện kiểm tra
tất cả các lỗi bảo mật phổ biến nhất trong danh sách 10 lỗi bảo mật do OWASP giới thiệu
năm 2013
b, WebScarab là một framework được viết bằng Java phục vụ cho việc phân tích nh ng
ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS WebScarab có khả năng ghi lại
hoặc thay đổi tham số ứng dụng trước khi đi trình nh ng y u cầu, phản hồi gi a trình duyệt
và ứng dụng web
c, BurpSuite là một framework được viết bằng Java cũng có chức tương tự như webScarab
như intercepting proxy, spider, fuzzer, … BurpSuite hiện tại có hai phi n bản, một phi n
bản miễn phí và một phi n bản thương mại Phi n bản thương mại thì có th m phần tự động

quét các lỗi ứng dụng web và cho phép người sử dụng có thể tìm kiếm hoặc lưu lại trạng
thái trong quá trình kiểm tra các ứng dụng web


14

2.5.3. Phương pháp kiểm thử mờ (Fuzzed testing)
Fuzzing là một kỹ thuật phát hiện lỗi của phần mềm bằng cách tự động hoặc bán tự động sử
dụng phương pháp lặp lại thao tác sinh d liệu sau đó chuyển cho hệ thống xử lý Nó cung
cấp d liệu đầu vào cho chương trình (là các d liệu không hợp lệ, d liệu không mong đợi:
các giá trị vượt quá bi n, các giá trị đặc biệt có ảnh hưởng tới phần xử lý, hiển thị của
chương trình), sau đó theo dõi và ghi lại các lỗi, các kết quả trả về của ứng dụng trong quá
trình xử lý của chương trình Fuzzing không đòi hỏi quyền truy cập vào mã nguồn, do nó có
khả năng tìm thấy lỗi một cách nhanh chóng và tránh được việc phải xem mã nguồn Các
chương trình và framework được dùng để tạo ra kỹ thuật fuzzing hoặc thực hiện fuzzing
được gọi là Fuzzer Tùy theo môi trường và ứng dụng cần kiểm tra mà người ta có các
phương án khác nhau để xây dựng Fuzzer

2.5.3.1. Thuật toán Fuzzing
Fuzzing là thuật toán trong kiểm thử “ti u cực” được hiểu trái ngược với kiểm tra
chức năng, kiểm tra khả năng của hệ thống Trong kiểm thử ti u cực, thay vì gửi các d liệu
hợp lý (được xử lý trong mã nguồn), hệ thống kiểm thử sẽ nhận được các đầu vào hoặc
chuỗi đầu vào không hợp lệ hoặc bán hợp lệ thông qua giao diện tương tác Chương trình
hoặc framework tạo ra các kiểm thử fuzz (fuzz test) hoặc thực thi các kiểm thử gọi là fuzzer
Fuzzer có thể được phân loại dựa tr n 2 ti u chí khác biệt nhau: Vector ti m (injection) hoặc
vector tấn công Một quy trình fuzzing đơn giản bao gồm một chuỗi các thông điệp được
gửi tới SUT (hệ thống được kiểm tra) Các kết quả thay đổi và thông điệp gửi tới có thể
được phân tích, trong một số trường hợp có thể bị bỏ qua Kết quả trả về điển hình của một
kiểm thử fuzz bao gồm: Đáp trả hợp lệ (Valid response), đáp trả lỗi (Error response), đáp trả
bất thường (Anomalous response), sụp đổ hay thất bại (Crash or other failure)

Quá trình fuzzing không chỉ là việc gửi và nhận các thông điệp Kiểm thử đầu ti n sẽ được
tạo ra và gửi tới SUT Việc giám sát mục ti u cần được thực hiện li n tục Tất cả các thất
bại đều được ghi lại để đánh giá trong các lần sau Một phần quan trọng của quá trình
fuzzing là giám sát mã lệnh, khi nó xử lý một đầu vào không hợp lệ

2.5.3.2. Phân loại các kỹ thuật fuzzing
Dựa tr n các phương pháp sinh d liệu và cách thực hiện phương pháp fuzzing chúng
ta có thể phân chia phương pháp fuzzing thành 5 loại như sau:
-

Sử dụng các testcase được sinh trước (Pregenerated Test Cases

-

Sinh d liệu ngẫu nhi n (Random


15

-

Kiểm tra thủ công bằng cách thay đổi giao thức (Manual Protocol Mutation Testing

-

Thay đổi giao thức tự động (Mutation hay là Brute Force Testing).

-

Tự động sinh d liệu cho giao thức (Automatic Protocol Generation Testing)


2.5.3.3. Ưu điểm và nhược điểm của kiểm thử Fuzzing
a, Ƣu đ ểm:


Kiểm thử fuzzing giúp tìm thấy nh ng lỗi nghi m trọng nhất về bảo mật hoặc khiếm
khuyết



Kết quả sử dụng kiểm thử Fuzzing hiệu quả hơn khi sử dụng các phương pháp kiểm
thử khác



Kiểm thử fuzzing cải thiện vấn đề về an ninh khi kiểm tra phần mềm



Lỗi được tìm thấy bằng fuzzing đôi khi nghi m trọng và hầu hết là nh ng lỗi mà tin
tặc hay sử dụng Trong đó có crashes, rò rỉ bộ nhớ, unhandled exception, vv



Nh ng lỗi không được tìm thấy khi kiểm thử bị hạn chế về thời gian và nguồn lực thì
cũng được kiểm thử fuzzing tìm ra

b, N ƣợc đ ểm:



Chỉ ri ng kiểm thử Fuzzing thì không thể xử lý hết được các mối đe dọa an ninh tổng
thể hoặc các lỗi



Kiểm thử Fuzzing kém hiệu quả với các lỗi mà không gây treo chương trình, chẳng
hạn như một số loại virus, computer Worm, Trojan, vv Chỉ hiệu quả trong các tình
huống cụ thể



Fuzzing không cung cấp nhiều kiến thức về hoạt động nội bộ của các phần mềm



Với chương trình có các đầu vào phức tạp đòi hỏi phải tốn thời gian hơn để tạo ra
một fuzzer đủ thông minh

2.5.3.4. Các giai đoạn của kiểm thử Fuzzing
Các bước thực hiện của kiểm thử fuzzing bao gồm các step cơ bản sau:
Bước 1: Xác định mục ti u (Identify target)
Bước 2: Xác định đầu vào (Identify the Inputs)
Bước 3: Tạo d liệu Fuzzed hay còn gọi là Tạo trường hợp thử nghiệm (Generate Fuzzed
Data )
a Injectionvector hoặc attack vector
b Kỹ thuật testcase
Bước 4: Thực hiện test sử dụng d liệu fuzz (Excute Fuzzed Data)


16


Bước 5: Giám sát d liệu fuzz (Monitor for exception Fuzzed Data)
Bước 6: Xác định khả năng khai thác (Determine exploitability)

2.5.3.5. Fuzzing ứng dụng web
Kỹ thuật fuzzing được ứng dụng rất nhiều trong việc kiểm thử phần mềm, hệ thống,
hay các chuẩn giao thức Tuy nhi n trong phạm vi của luận văn chỉ đi sâu vào phân tích
phương pháp fuzzing đặc thù cho ứng dụng website.
Một ứng dụng web thao tác với người dùng qua trình duyệt và sử dụng giao thức HTTP
hoặc HTTPS Một hệ thống website sẽ chứa các điểm đầu vào của hệ thống bao gồm:
-

Các form nhập d liệu

-

Các giá trị tr n các URL của website

-

Các trường trong HTTP Headers (bao gồm cả cookies)
Việc kiểm thử hệ thống sẽ tập trung chủ yếu vào các điểm đầu vào của hệ thống cụ

thể là việc gửi các d liệu qua Headers, phương thức GET , POST Fuzzer sẽ phải thực hiện
việc thu thập toàn bộ các điểm đầu vào của hệ thống trước khi thực hiện fuzzing.
Các t ức t u t ập lỗ bảo mật
Một công cụ kiểm tra lỗi bảo mật sử dụng phương pháp kiểm tra fuzzing được tổ chức thành
2 phần:



Phần 1: Tập hợp tất cả các định dạng URL mà gây ra lỗi cho một ứng dụng cụ thể Ví
dụ: lỗi bảo mật cho ứng dụng Joomla được phát hiện nằm trong URL:
“index php?option=com_content&view=article” URL này sẽ được lưu trong cơ sở
d liệu của chương trình cùng với tham số đệ trình gây ra lỗi của nó



Phần 2: Tập hợp tất cả đặc điểm nhận diện tương ứng với URL gây ra lỗi trong quá
trình fuzzing Các điểm điểm nhận diện này cũng sẽ lưu cùng với URL gây ra lỗi
trong cơ sở d liệu

N uyên tắc t ực

ện:

Dựa vào các phân tích các lỗ hổng ở tr n mà các nhà phát triển sẽ thiết kế bộ d liệu
fuzzing phù hợp nhằm phát hiện tối đa các lỗ hổng bảo mật website Sau đó các công cụ sử
dụng phương pháp fuzzing để kiểm tra lỗi bảo mật sẽ không thực hiện việc quét cấu trúc thư
mục và tập tin của ứng dụng web, mà sẽ là tập hợp tất cả các lỗi đã được công bố đối với
từng ứng dụng web cụ thể và thực hiện đệ trình đến ứng dụng web xem thử ứng dụng đó có
bị mắc các lỗi bảo mật hay không
2.3.5.6.

ột s c n cụ t êu b ểu


17

a, Nikto
Là một trong nh ng công cụ thực hiện fuzzer để tìm lỗi bảo mật Nikto cho phép người sử

dụng tùy biến viết các thành phần và nhúng kết với Nikto để thực thi Hơn n a, Nikto cũng
hỗ trợ nhiều định dạng của nh ng chương trình quét lỗi bảo mật khác như: Nmap, Nessus
b,AppScan
Một công cụ thương mại tập hợp lớn các lỗi bảo mật cho từng ứng dụng web riêng biệt.
c, Acunetix Web Vulnerability Scanner (AWV)
Công cụ này kiểm tra tất cả các lỗ hổng web, bao gồm SQL Injection, Cross Site
Scripting và nhiều lỗ hổng khác
Acunetix sử dụng kỹ thuật phân tích động với hướng tiếp cận dựa tr n phỏng đoán,
sử dụng thuật toán Fuzzing
2.6. Đán

á về các p ƣơn p áp và c n cụ k ểm t ử bảo mật webs te

Với các ưu điểm và nhược điểm đã trình bày ở tr n của mỗi phương pháp kiểm thử:
Hộp trắng, hộp đen và Fuzzing thì việc đánh giá và lựa chọn áp dụng các phương pháp vào
mỗi trường hợp kiểm thử nhất định là cần thiết
Phương pháp kiểm thử hộp trắng cho phép kiểm thử đến mức chi tiết từng mã lệnh,
từ đó có thể tìm kiếm lỗi ngay trong mã lệnh dẫn đến việc sửa lỗi có thể dễ dàng và không
mất nhiều thời gian, chi phí sửa lỗi Nhưng nhược điểm là đòi hỏi người kiểm thử phải có
kiến thức về lập trình, và mất thời gian để kiểm thử nếu chương trình có lượng mã lệnh lớn
Mặt khác không phải tất cả các lỗi, lỗ hổng bảo mật của website có thể tìm được qua
phương pháp này
Phương pháp kiểm thử hộp đen thích hợp kiểm tra phân đoạn lớn các mã lệnh, các
chức năng lớn Người kiểm thử không cần hiểu biết về mã lệnh viết trong chương trình mà
dựa và hiểu biết y u cầu của chương trình, kinh nghiệm và kỹ năng để đưa ra các bộ đầu
vào và thực hiện kiểm thử
Phương pháp kiểm thử mờ (Fuzzing) thì sẽ tập trung vào việc đưa các giá trị đầu vào
không hợp lệ để tìm ra các lỗi của website. Phương pháp này cũng được ứng dụng trong việc
thiết kế các công cụ để kiểm tra lỗi bảo mật Web nhiều nhất
Để có thể kiểm thử bảo mật website hiệu quả, nhanh và chính xác thì việc lựa chọn

công cụ hỗ trợ kiểm thử đóng một vai trò vô cùng quan trọng Với các công cụ tương ứng
với các phương pháp kiểm thử ở tr n thì:


18

Các công cụ áp dụng phương pháp hộp trắng giúp cho người kiểm thử có thể phân
tích được các lỗi tiềm ẩn, rủi ro của code từ đó giúp các lập trình vi n dễ dàng tìm và sửa
lỗi Nhưng việc tìm lỗi bằng phương pháp kiểm thử hộp trắng là chưa đầy đủ Để có một
website hoàn chỉnh đến tay người dùng thì ngoài việc coding còn phải tích hợp với các hệ
thống cơ sở d liệu, cơ sở hạ tầng, máy chủ cũng như các thiết lập an toàn khác cho website
Do đó cần thực hiện thêm các phương pháp kiểm thử hộp đen thủ công hoặc thông qua công
cụ Với việc kiểm thử bảo mật thì sử dụng công cụ kiểm thử sẽ giúp cho quá trình kiểm thử
nhanh, chính xác hơn từ đó tiết kiệm thời gian và công sức của con người Nhưng nếu áp
dụng toàn bộ kỹ thuật kiểm thử hộp đen tức là đẩy cả giá trị hợp lệ, không hợp lệ vào thực
hiện thì việc kiểm thử bảo mật sẽ mất thời gian (vì thực tế các giá trị hợp lệ đã được kiểm
tra theo chức năng) Do đó sẽ ưu ti n lựa chọn công cụ phát triển dự theo phương pháp kiểm
thử hộp đen nhưng các giá trị đầu vào là không hợp lệ (phương pháp Fuzzing) để tìm các lỗi
liên quan đến bảo mật của website
Trong các công cụ đã giới thiệu ở tr n áp dụng phương pháp kiểm thử Fuzzing thì
Acunetix Web Vulnerability (AWV) có thể kiểm tra tất cả các lỗ hổng web, bao gồm SQL
Injection, Cross Site Scripting và nhiều lỗ hổng khác Acunetix sử dụng kỹ thuật phân tích
động với hướng tiếp cận dựa tr n phỏng đoán, sử dụng thuật toán Fuzzing Ban đầu Module
Crawler phân tích toàn bộ trang web bằng cách làm theo tất cả các li n kết tr n trang web
Sau đó, AWV sẽ vạch ra cấu trúc trang web và hiển thị thông tin chi tiết về mỗi tập tin Sau
quá trình thu thập thông tin, AWV tự động hiển thị một loạt các lỗ hổng có thể bị tấn công
tr n mỗi trang được tìm thấy Khi các lỗ hổng được tìm thấy, Acunetix AWV báo cáo về lỗ
hổng này Mặt khác Acunetix được đánh giá là có giao diện trực quan, dễ sử dụng và thân
thiện với người dùng Giao diện trạng thái đồ họa Scan cho người dùng thấy chi tiết quét
dạng nút Ngoài ra, với Acunetix còn hỗ trợ bản tổng hợp kết quả kiểm thử đầy đủ chi tiết

bao gồm việc phân tích phán đoán lỗi, và đề xuất các sửa lỗi bảo mật Do đó đây là một
công cụ rất h u ích cho các chuy n gia bảo mật, kỹ sư kiểm thử cũng như các đơn vị tổ
chức phát triển, sử dụng website trong việc tìm lỗi li n quan đến bảo mật website.
Tr n cơ sở phân tích về một số kỹ thuật và một số thuật toán được sử dụng trong các
công cụ phân tích, dò quét lỗ hổng cho website, bằng việc so sánh ưu, nhược điểm của các
công cụ này Bản thân em đề xuất chọn sử dụng công cụ Acunetix Web Vulnerability
Scanner để thử nghiệm dò quét và đánh giá mức độ an toàn bảo mật của các website trong
thực tế


19

ết luận c ƣơn 2
Trong chương này đã giới thiệu tổng quan về kiểm thử phần mềm, đi sâu trình bày
kiểm thử bảo mật cho website, các loại kiểm thử bảo mật, quy trình kiểm thử bảo mật và các
phương pháp kiểm thử bảo mật cho website tìm hiểu các công cụ kiểm thử bảo mật cho
website, từ đó đánh giá và lựa chọn công cụ Tr n cơ sở lý thuyết ở chương 1, chương 2,
chương 3 sẽ giới thiệu cụ thể về công cụ Acunetix Web Vulnerability sử dụng cho kiểm thử
bảo mật website

CHƢƠNG 3 – S

DỤNG CÔNG CỤ “ACUNETIX WEB

VULNERABILITY” Đ KI

TH

B


T WEBSITE

3.1. G ớ t ệu về c n cụ “Acunetix Web Vulnerability”
Web Vulnerability Scanner (Acunetix AWV) là một công cụ hỗ trợ kiểm thử bảo mật
các ứng dụng Web bằng cách thử các bộ d liệu đồ sộ từ đó tìm các lỗ hổng bảo mật như:
SQL Injection, Cross-Site Scripting (XSS), chính sách xác thực…và các lỗi bảo mật khác,
đồng thời cũng quét các lỗi bảo mật của các Webserver như Apache, IIS
Acunetix Web Vulnerability Scanner là sản phẩm hàng đầu trong lĩnh vực rà soát lỗ
hổng bảo mật Website, giúp các cơ quan, doanh nghiệp có thể đánh giá được tình trạng bảo
mật hiện tại của website, rà soát các lỗ hổng bảo mật tồn tại tr n website của mình Giúp các
cơ quan, doanh nghiệp kịp thời đưa ra các biện pháp khắc phục và tránh các rủi ro có thể
xảy ra Acunetix AWV được đánh giá là một trong nh ng sản phẩm tốt nhất, phù hợp với
nhu cầu đánh giá bảo mật cho các cơ quan, doanh nghiệp

3.2. Acunetix Web Vulnerability làm v ệc n ƣ t ế nào?
Acunetix AWV (Web Vulnerability Scanner) 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 Cross-Site
Scripting,… và tìm kiếm nh ng chính sách đối với mật khẩu đăng nhập cũng như các
phương thức xác thực vào Web Site Acunetix AWV là một công cụ quét lỗi cho ứng dụng
Web dựa tr n một cơ sở d liệu rộng lớn được cập nhật thường xuy n, với các thuật toán
Heuristic đáp ứng được các cơ chế họat động phức tạp của môi trường Web Acunetix
AWV có thể tự động kiểm tra các lổ hỗng thông dụng và các mối nhạy cảm khác của nh ng
website có thể truy cập bằng trình duyệt, hay nh ng ứng dụng được xây dụng tr n các kỹ


20

thuật ti n tiến như AJAX để thực hiện được điều này Acunetix AWV dựa tr n nhiều
phương pháp và công cụ tích hợp để:
• Crawling (lấy về) toàn bộ website gồm tất cả các li n kết tr n site và cả trong tập tin

robots txt sau đó hiển thị tòan bộ cấu trúc này một cách chi tiết
• Sau tiến trình cwarling và khám phá tình trạng của ứng dụng web, Acunetix AWV tự động
phát động các đợt tấn công đã được lập trình sẳn dựa tr n các lổ hổng, giống như khi web
site bị một hacker tấn công thực sự, phân tích các trang và nh ng vị trí có thể nhập liệu cùng
với các sự kết hợp
khác nhau của d liệu đầu vào có thể làm cho website hiển thị nh ng thông tin nhạy cảm
• Sau khi tìm ra được các lổ hổng, Acunetix AWV thông báo tr n các “Alerts Node”, mỗi
alert gồm các thông tin về lỗi cũng như các mối nguy hiểm có thể gặp phải và “dĩ nhi n” là
kèm theo các khuyến nghị về cách thức khắc phục
• Sau khi tiến trình kiểm tra hoàn tất, chúng ta có thể lưu lại thành một tập tin để phân tích
sau này, với công cụ báo cáo chuy n nghiệp sẽ giúp cho các web master dễ dàng tổng hợp
các kết quả kiểm tra khác nhau tr n ứng dụng Web của mình
Sau khi quét, Acunetix AWV sẽ liệt k cấu trúc của site, phi n bản webserver đang sử
dụng, URL không tồn tại, các lỗi phát hiện được cũng như mức độ Security của site đang
quét, nhìn hình các bạn sẽ thấy nh ng liệt k rất cụ thể
Mức độ bảo mật của website được AWV đánh giá từ low, medium, high Nếu website của
bạn được liệt k ở mức low, hãy nhanh chóng fix lỗi mà AWV liệt k

3.3. N ữn tín

năn cũn n ƣ ƣu đ ểm c ín

của c n cụ Acunet x Web

Vulnerability


Tự động phân tích Javascript cho phép kiểm tra các ứng dụng AJAX và Web 2 0




Phân tích chuy n sâu về các lỗi SQL Injection và Cross Site Scripting.



Visual Macro Recorder cho phép dễ dàng thử nghiệm các web form và các khu vực được

bảo vệ bằng mật khẩu


Hỗ trợ chuẩn báo cáo rộng rãi, bao gồm chuẩn VISA PCI



Bộ quét đa luồng tốc độ cao có thể thu thập d liệu từ hàng ngàn trang một cách dễ dàng

• Tự động kiểm tra các form upload tệp tin


Acunetix thu thập thông tin và phân tích các trang web bao gồm cả nội dung flash,

SOAP và AJAX.


21



Công nghệ AcuSensor thông minh cho phép quét chính xác nhiều lỗ hổng web


3.5. T ực n

ệm để k ểm t ử bảo mật webs te

3.4.1. Download
Link download bản 14 trial:
/>Hoặc có thể scan online tại link:
/>
3.4.2. Yêu cầu về cấu hình cài đặt tool Acunetix
- Hệ điều hành: MS Windows 7 hoặc Windows 2008 R2 hoặc thấp hơn
- CPU: 32 bit hoặc 64 bits processor
- System memory: 2 GB RAM
- Storage: 200MB ổ cứng

3.4.3. Sử dụng Acunetix Web Vulnerability
Sau khi chúng ta download phần mềm và cài đặt, ta có thể update phi n bản mới nếu
cần
Cửa sổ tool Explorer (b n trái) cung cấp cho ta các công cụ WebScanner gồm Tool (Site
Scrawler, Target Finder, Subdomain, Authentication,..v..v.. ), Web Service, Configuration,
General chỉ cần nhấp chuột vào công cụ nào đó để AWV thực hiện nhiệm vụ của mình
Cửa sổ b n phải tr n cùng 1 lần n a liệt k lại các công cụ
Dưới phần này là phần thao tác nhanh đến các dịch vụ như NewScan, Sample Scan,
Reporter,..v..v.
Sau khi config chương trình hoàn tất, ta tiến hành quét, AWV sẽ cung cấp cho bạn phi n
bản của Webserver nếu detect được, các ứng dụng Web đang chạy, cổng mở, cấu trúc site,
mức độ Secure, các URL có thể lợi dụng, ngôn ng , kiểu kết nối và thông tin về cách khai
thác, và quan trọng là các lỗi đang có
Thực hiện kiểm thử với link mà Acunetix cung cấp:
Bắt đầu một quét mới thì đơn giản như việc khởi động Scan wizard bằng việc chọn nút
“New Scan” trong thanh toolbar chính Wizard sẽ hướng dẫn thông qua một số tùy chọn, Ở

đây ta có thể sử dụng để tùy chỉnh quét và nhập URL của website muốn thực hiện scan
Nhập URL của website muốn scan, ở đây là: vào Website URL
Chọn nút “Next”


22

Hiển thị màn hình “Options” để thiết lập các thông số muốn thực hiện scan. Tiếp
theo chúng ta cần select một scanning Profile Một Scanning profile là một nhóm các kiểm
thử hợp lý để thực hiện một nhóm kiểm thử cụ thể
Chọn nút “Next”
Hiển thị màn hình “Target”: Hiển thị các thông tin của URL dự định Scan
Chọn nút “Next”
Hiển thị màn hình “Login” nếu như website y u cầu phải login ở bước này bạn phải ghi lại
các bước bắt buộc cho việc login website
Chọn nút “Next”
Hiển thị màn hình “Finish” với các thông tin của lần scan hiện tại
Chọn nút “Finish”
Hiển thị màn hình Scan và bắt đầu scan như màn hình sau
Trong quá trình Scan sẽ đưa ra các thông báo lỗi cụ thể ở các chức năng, theo các loại cũng
như phân loại lỗi
3.4.4. Kết quả thực nghiệm
Kết quả thu được sau khi thực hiện kiểm thử bảo mật cho 2 website đề xuất
như bảng sau:
Web 1(): Có 89 lỗ hổng ở mức cao như: SQL Injection, Cross
site scripting, , 53 lỗi ở mức trung bình như Directory Listing, và nếu bị tấn công sẽ gây
ảnh hưởng nghi m trọng
Kết luận: Không an toàn
Web 2 (): Chỉ có 59 cảnh báo về khả năng bị phá vỡ các link
Kết luận: Khá an toàn nhưng cần xem xét các cảnh báo

3.5. Đán

á kết quả t ực n

ệm

Với kết quả thực nghiệm ở tr n ta thấy với trang web 1() là trang
web đề xuất của nhà cung cấp công cụ Tại trang web này nhà cung cấp cố tình tạo ra các lỗ
hổng nghi m trọng để từ đó người thử nghiệm có thể thấy được các lỗ hổng chính mà công
cụ có thể quét và phát hiện ra Do đó trang web này được đánh giá có nhiều lỗ hổng nguy
hiểm không an toàn


23

Trang web 2 () là một trang báo chính chức của một doanh nghiệp n n đã
được kiểm thử về bảo mật Do đó khi thực hiện kiểm thử bằng công cụ ta không tìm thấy
lỗi, lỗi hổng nào nghi m trọng mà chỉ có các cảnh báo
Với kết quả thực nghiệm kiểm thử bảo mật 2 trang web tr n ta thấy rằng công cụ Acunetix
phản ánh khá chính xác hiện trạng về bảo mật website của các trang web Do đó đây là một
công cụ đáng tin cậy cho phép các kiểm thử có thể sử dụng để kiểm thử bảo mật cho
website.

ết luận c ƣơn 3
Chương này đã giới thiệu tổng quan, các tính năng chính cũng giới thiệu cách sử
dụng công cụ Acunetix cho việc thực hiện kiểm thử bảo mật website Kết quả của việc kiểm
thử thu được kết quả là danh sách các lỗi, lỗ hổng bảo mật của website Từ đó đánh giá về
mức độ bảo mật của website



×