1. Trang chủ
  2. » Luận Văn - Báo Cáo

KIỂM THỬ PHẦN MỀM, NGHIÊN CỨU KỸ THUẬT KIỂM THỬ BẢO MẬT WEBSITE

31 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm Thử Phần Mềm, Nghiên Cứu Kỹ Thuật Kiểm Thử Bảo Mật Website
Người hướng dẫn ThS. Hoàng Quang Huy
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Kỹ Thuật Phần Mềm, Bảo Mật Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 844,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

KIỂM THỬ PHẦN MỀM, NGHIÊN CỨU KỸ THUẬT KIỂM THỬ BẢO MẬT WEBSITE,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ệ 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.

Trang 1

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 Hoàng Quang Huy

Nhóm: 04

Thành viên:

Hà Nội - 2022

1

Trang 2

MỤC LỤC

1.3 T ÌNH TRẠNG BẢO MẬT W EBSITE HIỆN NAY 4

1.4 M ỘT SỐ PHƯƠNG PHÁP TẤN CÔNG W EBSITE HIỆN NAY 5

CHƯƠNG III: SỬ DỤNG CÔNG CỤ ACUNETIX WEB VULNERABILITY ĐỂ KIỂM THỬ BẢO MẬT WEBSITE 15

3 T ÍNH NĂNG VÀ NHƯỢC ĐIỂM CỦA A CUNETIX W EB V ULNERABILITY 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Ề B URP S UITE C OMMUNITY E DITION 1

B P HÁT HIỆN LỖ HỔNG XSS CHÍNH XÁC , NHANH GỌN VỚI B URP S UITE VÀ P HANTOM JS 4

C S Ử DỤNG B URP S UITE ĐỂ THỰC HIỆN TẤN CÔNG B RUTE F ORCE 6

TÀI LIỆU THAM KHẢO

11

1

Trang 3

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àncho 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ớibấ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ệcbả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ảomậ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 đượcbằ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 dolỗ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ằmkhai 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, doanhnghiệ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”

Trang 4

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ậtwebsite 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ậtwebsite

● 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ậtwebsite

+ 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

Trang 5

3 CHƯƠNG I: TỔNG QUAN VỀ BẢO MẬT WEBSITE

1.1 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ụngcủ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ệ toàn bộ hệ thống Web Nó yêu cầukế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ệmthự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 chowebsite 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ủawebsite

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 yêu cầu bảo mật đều có điểm chunglà: Đả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ấncô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ó 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ángtrướ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ínhphủ 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ồntạ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ượngcá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 websitecủ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ựcChâ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

Trang 6

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ácwebsite 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ểmtrung 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ụngweb, 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à, trongtrườ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 đếncá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ã độcphổ 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ửicho 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ư sessiontokens, 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à toàn quyền kiểm soát tất cả các chức năng và dữ liệucủa ứng dụng

Trang 7

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 hoàn toà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 đầuvà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ườidù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 để cungcấ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ểnkhai phần mềm

Kiể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 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ụngWeb Đ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 dolậ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

Trang 8

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êucầ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ảnphẩ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ệcxem 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ụngweb 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ảomậ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ếtnhữ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ưuvế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áccô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à quá trình kiểm thử mà người kiểm thử phải xác định vị trí dữ liệucầ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ằmgiữ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

Trang 9

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ộckiể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 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

Trang 10

5 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ạitrong 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ẽ quét đượ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ậptứ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

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 trongchươ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:

Trang 11

Dùng tài liệu thiết kế hay source code để vẽ ra một đồ thị mô tả flowchart của chươngtrì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ợpkiể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ệnhtrong 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ủahà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 <phép toán quan hệ> 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ácphé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ácthao 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 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ệuquả 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áclỗi khác trong P

E1 <phép toán quan hệ> 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ằnggiá trị của E2 Nếu <phép toán quan hệ> 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)

Trang 12

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ìnhdự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ểmthử í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ồngnhau 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ácphầ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ườnghợ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ặpnhư 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ấutrú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ầnlặ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ò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ườnghợ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ườnghợ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

Trang 13

Đố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ươngphá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ểmtra 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

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 đạidiệ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ươngphá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ạntươ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ủacá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ênnhâ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

Trang 14

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ớimộ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

+ 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

(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ấtkhó 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

Trang 15

đổ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ụngweb

+ 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ộtphiê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ạngthái trong quá trình kiểm tra các ứng dụng web

Ngày đăng: 10/06/2023, 19:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w