Ca kiểm thử mức chung

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web (Trang 28 - 34)

F2

Ca kiểm thử cho chức năng Đăng nhập –

Đăng xuất R1, R5, R6, R9, R8 10

F3 Ca kiểm thử cho chức năng Tìm kiếm R1, R2, R4, R12 13 F4 Ca kiểm thử cho chức năng Thêm mới R1, R2, R3, R4, R12 15 F4 Ca kiểm thử cho chức năng Thêm mới R1, R2, R3, R4, R12 15 F5 Ca kiểm thử cho chức năng Sửa R1, R2, R3, R4, R12 22 F6 Ca kiểm thử cho chức năng Xóa R1, R3, R4, R12 6 F7 Ca kiểm thử cho chức năng Xem thông tin R1, R4 4 F8 Ca kiểm thử cho chức năng Download R4, R7 9 F9 Ca kiểm thử cho chức năng Upload R3, R4, R7 12 F10 Ca kiểm thử cho chức năng Import R1, R2, R3, R4, R7 7 F11

Ca kiểm thử cho chức năng Trang có

chuyển hƣớng R11 1

F12

Ca kiểm thử liên quan đến dữ liệu nhạy

cảm R8 4

F13 Ca kiểm thử cho chức năng liên quan đến mật khẩu R13, R14 6

Tổng: 115

Dựa trên bảng phân tích này, chúng tôi thiết kế các ca kiểm thử tƣơng ứng với từng nguy cơ và từng chức năng tƣơng ứng. Mỗi ca kiểm thử sẽ đƣợc thiết kế gồm các nội dung sau (tƣơng ứng với từng cột trong các bảng từ 2.3 đến 2.15):

- Mã ca kiểm thử: mỗi ca kiểm thử có 1 mã riêng đƣợc hình thành theo quy tắc

Nhóm chức năng (F)_Rủi ro (R)_số thứ tự

- Mục đích kiểm thử: mô tả tóm tắt mục địch cụ thể của từng ca kiểm thử

- Các bước thực hiện: mô tả chi tiết từng bƣớc thực hiện để phát hiện ra lỗ hổng

về ATTT. Để thực hiện đƣợc các ca kiểm thử này, chúng tôi dùng thêm các công cụ hỗ trợ trong quá trình kiểm thử nhƣ firebug (để xem mã nguồn phía trình duyệt) và tamper data (để bắt gọi tin gửi lên server).

- Kết quả mong muốn: mô tả kết quả đầu ra của hệ thống khi hệ thống không có

lỗi

- Ghi chú: mô tả lại phạm vi áp dụng với từng ca kiểm thử, biểu hiện của hệ

F1. Ca kiểm thử mức chung

Dựa vào công cụ hỗ trợ nhƣ firebug, chúng tôi có thể thay đổi dữ liệu cookies của hệ thống, từ đó chiếm quyền điều khiển, nhằm mục đích kiểm tra xem hệ thống có bị các lỗi Session Hijacking hay không. Ngoài ra, firebug cũng hỗ trợ chúng tôi kiểm tra việc hệ thống thiết lập thuộc tính HTTP onlỵ Các trƣờng hợp này đƣợc chúng tôi thiết kế thành các ca kiểm thử nhƣ bảng 2.3.

Bảng 2.3. Các ca kiểm thử chỉ cần kiểm tra một lần trên toàn bộ hệ thống

Mã ca

kiểm thử Mục đích kiểm thử Các bƣớc thực hiện mong muốn Kết quả Ghi chú

CHỨC NĂNG: Các case chỉ kiểm tra 1 lần trên cả hệ thống

Mỗi case phải check 1 lần duy nhất trên cả hệ thống

F1_R5_1

Session Hijacking (Kiểm tra lỗi 2 tài khoản, 2 trình duyệt, trên cùng 1 máy)

1. Trên Firefox: Đăng nhập vào hệ thống với Tài khoản A có quyền cao hơn tài khoản B

2. Trên Chrome: Đăng nhập vào hệ thống với Tài khoản B

3. Trên Firefox: Dùng tiện ích để lấy cookie của tài khoản A: Firebug/ Net/ Click Link/ cookies

4. Trên Chrome:

+ Delete cookies cũ (F12/ resources/ cookies/ địa chỉ hệ thống đang test/ Chuột phải vào cookies/ delete)

+ Thay cookie của tài khoản B bằng cookie của tài khoản A và lƣu lại (document.cookie = "JSESSIONID =

<cookie của tài khoản A>")

+ Refresh URL trên trình duyệt của B với cookie mới

Tài khoản B không tấn công đƣợc vào tài khoản A (không thực hiện đƣợc tháo tác thuộc tài khoản A hoặc view đƣợc thông tin thuộc tài khoản A hoặc cả 2 bị hết session)

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: Tài khoản B thực hiện đƣợc các quyền của tài khoản Ạ - Giải thích lỗi: Lỗi session hijacking không cho phép 2 phiên truy cập đồng thời, session đƣợc xây dựng từ các thông tin ngƣời dùng: IP, trình duyệt, địa chỉ mac

20 F1_R5_2

Session Hijacking (Kiểm tra lỗi 1 user có tài khoản, 1 user không có tài khoản, 2 trình duyệt, trên cùng 1 máy) 1. Trên Firefox:

+ Đăng nhập vào hệ thống với Tài khoản A có quyền vào hệ thống

+ Dùng tiện ích để lấy cookie của tài khoản A: Firebug/ Net/ Click Link/ cookies

+ Copy link trên thanh ađress 2. Trên Chrome:

+ Paste link vừa copy trên Firefox

+ Delete cookies cũ (F12/ resources/ cookies/ địa chỉ hệ thống đang test/ Chuột phải vào cookies/ delete)

+ Sửa cookie hiện tại bằng cookie của tài khoản A và lƣu lại (gõ lệnh: document.cookie = "JSESSIONID = <cookie của tài khoản A>")

3. Refresh URL trên Chrome vừa thay đổi cookie mới

Trên Chrome không vào đƣợc tài khoản A (không thực hiện đƣợc thao tác thuộc tài khoản A hoặc view đƣợc thông tin thuộc tài khoản A hoặc cả 2 bị hết session)

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: Trên Chrome chiếm đƣợc các quyền của tài khoản A

F1_R5_3

Session Hijacking (Kiểm tra lỗi 2 tài khoản, 1 trình duyệt, trên 2 máy)

1. Máy 1: Đăng nhập vào hệ thống với Tài khoản A có quyền cao hơn tài khoản B bằng trình duyệt Chrome 2. Máy 2: Đăng nhập vào hệ thống với Tài khoản B bằng trình duyệt Chromẹ

3. Máy 1: Dùng tiện ích để lấy cookie của tài khoản A (Chrome/ F12/ resources/ cookies/ địa chỉ hệ thống đang test)

4. Máy 2:

+ Xóa cookie hiện tại (Chrome/ F12/ resources/ cookies/ địa chỉ hệ thống đang test/ Chuột phải vào cookies/ delete)

+ Thay cookie của tài khoản B bằng cookie của tài khoản A và lƣu lại (Console/ gõ lệnh: document.cookie =

"JSESSIONID = <cookie của tài khoản A>") + Refresh URL trên trình duyệt của B vừa thay đổi cookie mới

+ Thực hiện cùng thao tác tài khoản A có quyền, nhƣng tài khoản B không có quyền

Tài khoản B không tấn công đƣợc vào tài khoản A (không thực hiện đƣợc tháo tác thuộc tài khoản A hoặc view đƣợc thông tin thuộc tài khoản A hoặc cả 2 bị hết session)

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: Tài khoản B thực hiện đƣợc các quyền của tài khoản A

22 F1_R5_4

Session Hijacking (Kiểm tra lỗi 1 user có tài khoản, 1 user không có tài khoản, 1 trình duyệt, trên 2 máy) 1. Trên máy 1:

+ Đăng nhập vào hệ thống với Tài khoản A có quyền vào hệ thống

+ Dùng tiện ích để lấy cookie của tài khoản A (Chrome/ F12/ resources/ cookies/ địa chỉ hệ thống đang test) + Copy link trên thanh ađress

3. Trên máy 2:

+ Paste link vừa copy trên máy 1

+ Delete cookies hiện tại (Chrome/ F12/ resources/ cookies/ địa chỉ hệ thống đang test/ Chuột phải vào cookies/ delete)

+ Sửa cookie hiện tại bằng cookie của tài khoản A và lƣu lại (Console/ gõ lệnh: document.cookie = "JSESSIONID = <cookie của tài khoản A>")

+ Refresh URL vừa thay đổi cookie mới

Trên Chrome không vào đƣợc tài khoản A (không thực hiện đƣợc thao tác thuộc tài khoản A hoặc view đƣợc thông tin thuộc tài khoản A hoặc cả 2 bị hết session)

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: Trên Chrome chiếm đƣợc các quyền của tài khoản A

F1_R12_ 5

Kiểm tra việc cố tình tạo trang lỗi để khai thác thông tin nhạy cảm của hệ thống

1. Đăng nhập vào hệ thống

2. Sửa 1 thông tin trên đƣờng link rồi enter. VD: + Link gốc:

http://tuyendung.viettel.com.vn/RMSPortal/Index.do + Link sau sửa:

http://tuyendung.viettel.com.vn/RMSPortal/abc123 5. Kiểm tra thông tin hiển thị lên có chứa các thông tin nhạy cảm không (VD: sessionid, CMND, số tài khoản, phiên bản tomcat...)

- Hiển thị trang trắng hoặc thông báo Có lỗi xảy ra (Nhƣng không hiển thị các thông tin của hệ thống)

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: Trình duyệt hiển thị kết quả lỗi, bao gồm các thông tin: phiên bản tomcat,version dự án, full ra trang lỗi do không bắt ngoại lệ...làm thất thoát thông tin.

F1_R10_ 6

Kiểm tra HttpOnly Cookie

Pre: Cài và chạy Ađ-ons cookie và FireBug cho FireFox 1. Đăng nhập vào ứng dụng

2. Dùng firebug kiểm tra trƣờng HttpOnly của Jsession - Firefox: Firebug -> Cookies -> SID/ JSessionID/... -> kiểm tra HttpOnly

- Chrome: F12/ resources/ cookies/ ip server/ xem thuộc tính HTTP

- Nếu xem thuộc tính only bằng cách view, đôi lúc view trên firebug thì không có thuộc tính only => nên tốt nhất là xem bằng cách gõ lệnh document.cookie hoặc xem trên trình duyệt Chrome

SID/

JSessionID/... có giá trị http only

- Phạm vi kiểm thử: 1 lần - Biểu hiện lỗi: SID/ JSessionID/... không có giá trị HttpOnly

- Giải thích lỗi: Hacker có thể sử dụng javascript để đánh cắp cookies của ngƣời dùng

24

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web (Trang 28 - 34)

Tải bản đầy đủ (PDF)

(114 trang)