BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
------------------------------------
BÀI TẬP LỚN
KIỂM THỬ PHẦN MỀM
ĐỀ TÀI
NGHIÊN CỨU KỸ THUẬT KIỂM THỬ BẢO MẬT WEBSITE
GVHD: ThS. Hồng Quang Huy
Nhóm: 04
Thành viên:
Hà Nội - 2022
1
MỤC LỤC
LỜI NÓI ĐẦU
2
CHƯƠNG I: TỔNG QUAN VỀ BẢO MẬT WEBSITE
4
1.1.
1.2.
1.3.
1.4.
1.4.1.
A.
B.
C.
A.
B.
C.
1.
2.
2.1
2.2
3.
4.
5.
6.
6.1
6.2
TỔNG QUAN VỀ BẢO MẬT
TẠI SAO PHẢI BẢO MẬT WEBSITE?
TÌNH TRẠNG BẢO MẬT WEBSITE HIỆN NAY
MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG WEBSITE HIỆN NAY
TẤN CÔNG SQL INJECTION
KHÁI NIỆM TẤN CÔNG SQL INJECTION
CÁCH THỨC TẤN CƠNG
PHƯƠNG PHÁP PHỊNG TRÁNH
KHÁI NIỆM TẤN CƠNG CROSS SITE SCRIPTING
CÁCH THỨC TẤN CƠNG
PHƯƠNG PHÁP PHỊNG TRÁNH
TÌM HIỂU VỀ KIỂM THỬ PHẦN MỀM
TÌM HIỂU VỀ KIỂM THỬ BẢO MẬT
MỤC ĐÍCH CỦA KIỂM THỬ BẢO MẬT
CÁC LOẠI KIỂM THỬ BẢO MẬT
QUY TRÌNH KIỂM THỬ BẢO MẬT WEBSITE
KIỂM THỬ BẢO MẬT THỦ CÔNG (MANUALLY)
KIỂM THỬ BẢO MẬT TỰ ĐỘNG (AUTOMATION)
CÁC PHƯƠNG PHÁP KIỂM THỬ BẢO MẬT
PHƯƠNG PHÁP KIỂM THỬ HỘP TRẮNG
PHƯƠNG PHÁP KIỂM THỬ HỘP ĐEN
4
4
4
5
5
5
5
5
5
5
6
6
6
6
6
7
7
9
9
9
12
CHƯƠNG III: SỬ DỤNG CÔNG CỤ ACUNETIX WEB VULNERABILITY ĐỂ KIỂM THỬ BẢO MẬT WEBSITE
1.
2.
3.
4.
TÌM HIỂU VỀ ACUNETIX WEB VULNERABILITY
HOẠT ĐỘNG CỦA ACUNETIX WEB VULNERABILITY
TÍNH NĂNG VÀ NHƯỢC ĐIỂM CỦA ACUNETIX WEB VULNERABILITY
DOWNLOAD VÀ THỰC NGHIỆM KIỂM THỬ BẢO MẬT WEBSITE
15
15
15
16
16
CHƯƠNG IV: SỬ DỤNG CÔNG CỤ BURP SUITE COMMUNITY EDITION ĐỂ TIẾN HÀNH KIỂM THỬ
1
A.
TÌM HIỂU VỀ BURP SUITE COMMUNITY EDITION
1
1.
BURP SUITE LÀ GÌ?
1
2.
3.
4.
1
2
2
Lợi ích của phần mềm Burp Suite trong đánh giá Web
Một số tính năng nổi bật của Burp Suite
Hướng dẫn cài đặt
B.
PHÁT HIỆN LỖ HỔNG XSS CHÍNH XÁC, NHANH GỌN VỚI BURP SUITE VÀ PHANTOM JS
4
C.
SỬ DỤNG BURP SUITE ĐỂ THỰC HIỆN TẤN CÔNG BRUTE FORCE
6
KẾT LUẬN
10
TÀI LIỆU THAM KHẢO
11
1
LỜI NÓI ĐẦU
Với sự phát triển rất nhanh của các ứng dụng trên nền Web, việc bảo mật an ninh an toàn
cho các trang Web là một lĩnh vực đặc biệt quan trọng vì nó được truy cập mọi lúc mọi nơi với
bất kỳ ai. Tuy vậy không phải bất kỳ nhà phát triển phần mềm Web nào cũng chú tâm đến việc
bảo mật an ninh, vì vậy nhiều ứng dụng Web vẫn tồn tại với các nguy cơ an ninh, an toàn, bảo
mật và gây ra nhiều thiệt hại khi bị tấn cơng. Tuy nhiên việc tìm kiếm và phát hiện ra các nguy
cơ an ninh thủ công khá khó khăn trong khi đó có nhiều nguy cơ an ninh có thể phát hiện được
bằng các cơng cụ tự động.
Các lỗ hổng an ninh mạng là những lỗi phần mềm, lỗi trong thiết kế phần cứng hoặc do
lỗi của người sử dụng. Đấy là những lỗ hổng mà hacker tấn công các hệ thống mạng nhằm
khai thác tài nguyên hoặc dữ liệu. Vì thế việc vá lỗi bảo mật, loại bỏ lỗ hổng thường xuyên
được tung ra từ các nhà sản xuất để khắc phục lỗ hổng đó, đồng thời được các các chuyên gia
về bảo mật khuyến cáo nhiều cách phòng tránh hacker khai thác do lỗi từ người sử dụng.
Đối với Việt Nam thời gian vừa qua các cuộc tấn cơng có quy mơ lớn xâm nhập vào hệ
thống mạng, thay đổi giao diện web hay đánh cắp dữ liệu thông tin của các tổ chức, doanh
nghiệp được thực hiện với tần suất tăng đột biến. Đối tượng được nhắm tới bao gồm tổ chức,
tập đoàn kinh tế lớn và các cơ quan cấp chính phủ. Tuy nhiên, theo một nghiên cứu gần đây,
xu hướng tấn công sắp tới sẽ hướng mục tiêu vào các doanh nghiệp vừa và nhỏ. Đây là những
đối tượng dễ bị tổn thương nhất và ít gây ra các vấn đề về pháp lý liên quan.
Do đó để ngăn chặn với những thách thức về lỗ hổng bảo mật và tuân thủ tốt trong mơi
trường mạng ngày nay. Nhóm chúng em chọn đề tài nghiên cứu: “Nghiên cứu kỹ thuật kiểm
thử bảo mật Website”.
2
1. Mục đích đề tài
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.
● Phương pháp kiểm thử hộp đen.
● Phương pháp kiểm thử hộp trắng.
● Phương pháp kiểm thử Fuzzing.
● 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.
2. Phạm vi hướng nghiên cứu
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
3.
1.1.
CHƯƠNG I: TỔNG QUAN VỀ BẢO MẬT WEBSITE
Tổng quan về bảo mật
Bảo mật đảm bảo hài hòa giữa việ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 là đánh giá hiệu quả sự bảo vệ tồn bộ hệ thống Web Nó 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.
Tại sao phải bảo mật Website?
Mỗi Website có những mục đích khác nhau, nhưng 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 ngun của một số người có mục
đích xấu.
1.3.
Tình trạng bảo mật Website hiện nay
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
4
với các nước trong khu vực và thấp so với trên thế giới Trong đó đáng chú ý à 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.
1.4.
Một số phương pháp tấn cơng Website hiện nay
1.4.1. Tấn công SQL Injection
a. Khái niệm tấn cơng SQL Injection
SQL Injection – cịn được gọi là SQLi – sử dụng những lỗ hổng trong các kênh đầu vào
(input) của website để nhắm mục tiêu vào cơ sở dữ liệu nằm trong phần phụ trợ của ứng dụng
web, nơi lưu giữ những thơng tin nhạy cảm và có giá trị nhất. Chúng có thể được kẻ tấn cơng
sử dụng để ăn cắp hoặc xáo trộn dữ liệu, cản trở sự hoạt động của các ứng dụng, và, trong
trường hợp xấu nhất, nó có thể chiếm được quyền truy cập quản trị vào máy chủ cơ sở dữ liệu.
b. Cách thức tấn công
Các cuộc tấn công SQL Injection được thực hiện bằng cách gửi lệnh SQL độc hại đến
các máy chủ cơ sở dữ liệu thông qua các yêu cầu của người dùng mà website cho phép. Bất kỳ
kênh input nào cũng có thể được sử dụng để gửi các lệnh độc hại, bao gồm các thẻ<input>,
chuỗi truy vấn (query strings), cookie và tệp tin.
c. Phương pháp phòng tránh
+ Kiểm soát các input của người dùng.
+ Xác nhận các chuỗi input ở phía máy chủ.
+ Sử dụng các câu lệnh tham số.
+ Xây dựng hàng rào phòng thủ.
+ Tránh quyền quản trị.
1.4.2. Tấn công Cross Site Scripting
a. Khái niệm tấn công Cross Site Scripting
XSS là tên viết tắt của Cross-site scripting. Đây là một hình thức tấn cơng bằng mã độc
phổ biến. Các hacker sẽ lợi dụng lỗ hổng trong bảo mật web để chèn các mã script, sau đó gửi
cho người dùng để truy cập và mạo danh người dùng.
Mục đích của việc này chính là ăn cắp dữ liệu nhận dạng của người dùng như session
tokens, cookies và các thông tin khác. Khi đăng nhập vào được các tài khoản website, hacker
có thể truy cập vào bất cứ dữ liệu nào và tồn quyền kiểm sốt tất cả các chức năng và dữ liệu
của ứng dụng.
5
Tấn cơng XSS là hình thức tấn cơng đơn giản nhưng đặc biệt nguy hiểm. Đây cũng là kỹ
thuật được hacker sử dụng phổ biến nhất trong thời điểm hiện nay.
b. Cách thức tấn công
Tấn công XSS nghĩa là gửi chèn lệnh và script độc hại, những mã đôc hại này thường
được viết bằng các ngơn ngữ lập trình phía client như VBScript, Flash, html,… Tuy nhiên,
cách tấn công này thường sử dụng JavaScript và HTML.
XSS hoạt động bằng cách điều khiển một trang web dễ bị tấn công để trả về JavaScript
độc hại cho người dùng. Khi mã độc thực thi bên trong trình duyệt, hacker hồn tồn có thể
xâm nhập vào tài khoản và sử dụng dữ liệu của người dùng.
c. Phương pháp phòng tránh
Bước đầu tiên trong việc ngăn chặn cuộc tấn công này là input validation (Xác thực đầu
vào). Mọi thứ do người dùng nhập phải được xác thực chính xác vì thơng tin input của người
dùng có thể tìm đường đến output. Data validation (Xác thực dữ liệu) có thể được đặt tên là cơ
sở để đảm bảo tính bảo mật của hệ thống.
CHƯƠNG II: KIỂM THỬ BẢO MẬT WEBSITE
1. Tìm hiể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ước 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ềm.
Kiểm thử phần mềm là q trình thực thi một chương trình với mục đích tìm lỗi.
2. Tìm hiểu về kiểm thử bảo mật
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.
6
2.2 Các loại kiểm thử bảo mật
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 tồn”
Nhưng “an tồ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 u cần thiết có đã mơ tả rõ các tiêu chí cụ thể về u cầu bảo mật cho ứng dụng
web hay chưa.
● Kiểm thử yêu cầu và thiết kế.
● Kiểm thử mã nguồn.
● Kiểm thử các thiết lập trình của trình duyệt
● Kiểm thử bức tường lửa.
3. Quy trình kiể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.
4. Kiểm thử bảo mật thủ công (manually)
Kiểm thử thủ cơng là q 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
7
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:
● 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
● Hoạt động sửa chữa được thực hiện trên những lỗ hổng này.
● 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
Các bước để kiểm thử bảo mật thủ tục:
● Thu thập dữ liệu.
● Đánh giá tính chất dễ bị tổn thương của hệ thống.
● Khai thác thực tế
● 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 số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à số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.
8
5. Kiểm thử bảo mật tự động (automation)
Phương pháp kiểm thử lỗi tự động là q 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:
● Nó sẽ dễ dàng được triển khai, cấu hình và sử dụng.
● Nó sẽ qt được hệ thống một cách dễ dàng.
● 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.
● Có khả năng tự động xác minh các lỗ hổng.
● Có thể xác minh lại những khai thác mà đã được tìm thấy trước đó.
● Nó sẽ tạo ra các báo cáo và các bản ghi chi tiết về lỗ hổng.
6. Các phương pháp kiểm thử bảo mật
6.1 Phương pháp kiểm thử hộp trắng
Phương pháp kiểm thử 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. Q 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 cu. Q trình thực hiện bằng
cơng cụ tức là q trình mà cơng cụ sẽ thực hiện qt tồ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.
A. Kiểm thử đường dẫn tiến của chương trình
Đâ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:
9
Dùng tài liệu thiết kế hay source code để vẽ ra một đồ thị mơ tả flowchart của chương
trình hay hàm:
+ Xác định đồ thị V(G).
+ Từ đồ thị xác định tập đường độc lập tuyến tính lẫn nhau.
+ 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.
B. Kiểm thử biểu thức điều kiệ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
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 tốn học
Mục đích của kiểm thử cấu trúc điều kiệ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).
10
C. Kiểm thử luồng dữ liệ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. Kiểm thử vòng lặp
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ịng 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 tồ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òng 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 sốt vịng lặp ở trong cùng trong khi giữ các vòng lặp bên ngồ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ịng lặp móc nối
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ịng lặp khơng 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. Vì việc kiểm thử rất phức tạp.
6.2 Phương pháp kiểm thử hộp đen
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ó. Q trình đệ
trình dữ liệu từ bên ngồ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.
A. Kiểm thử hộp đen phân đoạn tương đương
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. Kiểm thử hộp đen theo 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. Kiểm thử hộp đen theo phương pháp đồ thị nguyên nhân kết quả
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.
12
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.
D. Ưu điểm, nhược điểm của phương pháp kiểm thử hộp đen
(1) Ưu điểm
+ 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.
+ 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 tồn bộ 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.
(2) Nhược điểm
+ 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.
E. Một số công cụ kiểm tra thủ công hộp đen tiểu biểu
+ 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.
+ WebScarab là một framework được viết bằng Java phục vụ cho việc phân tích ứ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
13
đổ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.
+ 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 qt 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
4. CHƯƠNG III: SỬ DỤNG CÔNG CỤ ACUNETIX WEB
VULNERABILITY ĐỂ KIỂM THỬ BẢO MẬT
WEBSITE
1. Tìm hiểu về 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.
2. Hoạt động của Acunetix Web Vulnerability
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ỹ 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ề) tồ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ồn 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ể
15
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ị lên 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 hồ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. Tính năng và nhược điểm của Acunetix 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.
+ Công nghệ AcuSensor thông minh cho phép quét chính xác nhiều lỗ hổng web.
4. Download và thực nghiệm kiểm thử bảo mật Website
+ Download 14 trial.
+ 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
+ Các bước thực hiện
16
Bước 1: 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.
Bước 2: 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.
Bước 3: Sau khi config chương trình hồ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ó.
Bước 4: 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à: Error! Hyperlink
reference not valid.vào Website URL Chọn nút “Next”.
Bước 5: 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”
Bước 6: 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”.
Bước 7: 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”
Bước 8: 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”
Kết quả:
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:
17
+ 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 tồ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.
18
CHƯƠNG IV: SỬ DỤNG CÔNG CỤ BURP SUITE
COMMUNITY EDITION ĐỂ TIẾN HÀNH KIỂM THỬ
A. Tìm hiểu về Burp Suite Community Edition
1. Burp Suite là gì?
-
Burp Suite là trình quét bảo mật phổ biến được sử dụng rộng rãi nhất hiện nay
được tích hợp với nhiều tính năng mạnh mẽ cùng các phần mềm mở rộng tùy
chọn có khả năng kiểm tra được tính bảo mật của ứng dụng web và cả các thành
phần khác nhau có trong web nữa.
-
Burp Suite sẽ giúp người dùng đánh giá một số các tiêu chí bảo mật như kiểm
tra các vấn đề về phiên bản người dùng, tiến hành kiểm tra cơ chế xác thực, liệt
kê và đánh giá các tham số đầu vào của ứng dụng...
2. Lợi ích của phần mềm Burp Suite trong đánh giá Web
Burp Suite được nhiều doanh nghiệp áp dụng rất nhiều trong việc đánh giá web
bởi họ hiểu được Burp Suite là gì cũng như những lợi ích mà phần mềm này có
thể mang lại:
● Miễn phí: Burp Suite có hai phiên bản mà bạn có thể lựa chọn bao gồm phiên
bản miễn phí (free) và phiên bản trả phí (pro). Bạn có thể lựa chọn phiên bản
miễn phí để sử dụng được hết các tính năng chung của Burp Suite như Web
spider, Comparer, Proxy Server, Repeater, Decoder... hoặc lựa chọn phiên bản
trả phí để sử dụng thêm chức năng scan web.
● Tiện lợi: Burp Suite được tích hợp rất nhiều các cơng cụ, tính năng khác nhau
giúp tạo nên sự tiện lợi khi sử dụng hơn cho người dùng bởi Burp Suite đã giúp
bạn mở được nhiều công cụ một lúc và bạn sẽ không cần phải tự mình làm điều
đó.
● Dễ dàng sử dụng: Người dùng có thể sử dụng và chạy được nhiều ứng dụng
Burp Suite một cách dễ dàng chỉ với một môi trường java và click đúp chuột
vào các file chạy. Bên cạnh đó, giao diện Burp Suite cũng vơ cùng thân thiện
với những người dùng nhờ khả năng phát triển ngôn ngữ java.
20