Kiểm thử xâm nhập ứng dụng web không chỉ để phát hiên các lỗhổng kỹ thuật của hê thống mà còn giúp xác định tác đông tiềm tàng đối với các dữ liêu bảo mật trên hê thống nếu lỗ hổng thực
Trang 1OC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THO
KHOA AN TOÀN THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: NGHIÊN CỨU VỀ KIỂM THỬ XÂM NHẬP
TRÊN WEBSITE CÓ MÃ HÓA
Sinh viên thực hiện : Tran Anh Đức
Mã sinh viên : B19DCAT047 Lớp : D19CATO3-B Khóa : 2019-2024
Hệ : Dai học chính quy
Trang 2Hà Nội, 01-2024
il
Trang 3Đồ án tốt nghiệp Lời cam đoan
LỜI CAM ĐOAN
Tôi xin cam đoan rằng đồ án tốt nghiêp “Nghiên cứu về
kiểm thử xâm nhập trên website có mã hóa” là công trìnhnghiên cứu của bản thân mình Những phần nôi dung sử dụngtài liêu tham khảo có trong đồ án đã được liêt kê và nêu rõ tạiphần tài liêu tham khảo Đồng thời những kết quả trình bàytrong đồ án đều mang tính chất trung thực, không sao chép,
Trần Anh Đức
Trần Anh Đức — B1I9DCAT047 i
Trang 4Đô án tôt nghiệp Lời cảm ơn
LỜI CẢM ƠN
Lời đầu tiên, em xin được gửi lời cảm ơn chân thành và
lòng biết ơn sâu sắc nhất đến Cô giáo ThS Ninh Thị Thu Trang,
đã nhận lời hỗ trợ em làm đồ án, đã luôn tận tình hướng dẫn,
chỉ dạy và đưa ra những góp ý quý báu để đề tài của em được
hoàn thiên hơn Trong thời gian học tập và làm việc với cô, em luôn nhận được sự giúp đỡ kịp thời giúp em vượt qua những khó khăn quá trình nghiên cứu.
Em xin được gửi lời cảm ơn chân thành nhất đến toàn thể
các thầy cô giáo bô môn, các thầy cô khoa Công nghê thông tinnói chung, các thầy cô trong khoa An toàn thông tin nói riêng
Em cảm ơn các thầy, cô đã giúp đỡ tận tình và tích cực truyền
tải nhiều kiến thức bổ ích về học tập và cả cuôc sống Nhữngkiến thức mà em tích lũy, tiếp thu được trong suốt những tháng
năm giảng đường sẽ là những kiến thức quý báu, bổ ích nhất
mà em luôn khắc ghi
Để hoàn thành đồ án này, em đã nhận được nhiều sự giúp
đỡ từ gia đình, bạn bè, những người đã luôn đông viên, đồng
hành và tạo điều kiên thuận lợi cho em trong suốt quãng thờigian học tập và làm đồ án tốt nghiêp
Trong suốt quá trình nghiên cứu, do kiến thức và khả năngcủa em còn hạn chế nên đồ án này không tránh khỏi những
thiếu sót Em rất mong nhận được những góp ý của thầy cô và
các bạn để kiến thức và đồ án tốt nghiêp của em được hoàn
thiên hơn nữa.
Môt lần nữa em xin chân thành cảm ơn!
Hà Nôi, tháng 01 năm 2024
Sinh viên thực hiên
Trần Anh Đức
Trần Anh Đức — B1I9DCAT047 ii
Trang 50969000 -ö- ,ÔỎ |CHƯƠNG 1: TONG QUAN VE KIEM THU XÂM NHẬP WEBSITE 2
1.1 Téng quan về kiểm thử xâm nhập - 2-2 s22 eEE+E+E+EzEerxzxees 2 1.1.1 Khái quát về kiểm thử xâm nhập +-+52+cecs+Eererszterszrereeree 2 1.1.2 Các hình thức kiểm thử xâm nhập - 2+ s+c2+s+c+eers+xeresrsreee 3 1.1.3 Giới thiệu về kiểm thử xâm nhập VU©ÌSifC - «s2 5
1.2 Quy trình kiểm thử xâm nhập website -¿- 2 sex Eerxerxrrees 51.2.1 Khảo sát, thu thập thông tin về mục tiÊM 5- s55 5s+cs+e+cs+se2 71.2.2 Dò quét điỂm VẾM + St SE+ESEEEEEEEEEEE3E1121E1111112111111111111 1x xe 91.2.3 Xác minh lỗ hồng và tấn công kiểm thủử - 2-52 5s+5s xe: 10
1.2.4 Đánh giá mức độ nguy hiểm các lỗ hỗng 5-2 c5s+cs+escssea II 1.2.5 Báo cáo và khuyẾn nghị 2-52 52 St+EEEEEEEEEEEEEEEErEerrkererrred 12
1.2.6 Tdi AANN Side n6 nốốốỐốỐốỐốỐẦốẦỐẦẦỐ ẮỐ 13
2.1.2 Qua trình mã hóa và giải mã trên ve SÏf€ «55s «<< ++s+++ 17
2.2 Quy trình kiểm thử xâm nhập website có mã hóa esses 202.3 Các phương pháp kiểm thử website có mã hóa 2 2555252 23
2.3.1 Phương pháp thu công với công cụ Burp 'ŠUÏÍ€ - ««++-«<+++s 23
2.3.2 Phương pháp sử dụng phan mém POstma :- 5252555: 28
Trần Anh Đức — B1I9DCAT047 iti
Trang 6Đồ án tốt nghiệp Mục lục
2.3.3 Đánh giá phương pháp thủ công với công cụ Burp Suite và phương pháp sử dụng POSfIHGH - c5 E889 E3 ESEEEESseEErrkkerekerreeerkeeerevee 31
Kết luận ChUON go eeceeseessssssessesscssesscsscsscsecssessssecsrcsrsavsnseesecsssavssaveeeeveeees 32
CHUONG 3: XAY DUNG BURPSUITE EXTENSION UNG DUNG VAOKIEM THU XÂM NHẬP WEBSITE CO MÃ HÓA -: -:-c:+csc2 32
3.1 Xây dung Burp Suite extension ce ceceseeeseeeeceseceeeeneeeeeseeeneeeseeeeeeees 32
3.1.1 Xác định yOu CU ceecececescescesessesvsssesessessssesssssesessssssesessssssseesssseevseseees 32
y7 - A 32
h9» 33 3.2 Xây dung website có mã hóa - - + + 1v vvkEsikeerrerkrrrkee 44 3.2.1 Cai AGt FrONt-ENnd n nhe 13 44
3.3 Ứng dụng AutoPencrypt Extension trong kiểm thử website mã hóa 47
3.3.1 Kiểm thử website ngân hàng BID[ - 5+ c++ee+ee+xczxerrcrrercee 473.3.2 Kiểm thử website P.TIT-SCOF€ - -5cSe+t‡EEEEEEEEEEEEEEEEEEErrrkrkres 50
Trang 7Đồ án tốt nghiệp Danh mục
DANH MỤC HÌNH ẢNH
Hình 1.1 Môt số loại kiểm thử xâm nhập phổ biến 2
Hình 1.2 Các hình thức kiểm thử xâm nhập - - +: 4
Hình 1.3 Quy trình kiểm thử xâm nhập website 6
Hình 1.4 Các phương pháp thu thập thông tin 7
Hình 1.5 Dò quét lỗ hổng bảo mật bằng công cụ Burp Suite 9
Hình 1.6 Phương diên đánh giá lỗ hổng bảo mật theo tiêu 301009117 3 11
Hình 1.7 Thang điểm CVSS va mức đô nghiêm trong tương ứng — A A 12
Hình 2.1 Giao thức truyền siêu văn bản an toàn HTTPS 16
Hình 2.2 Request va response ở dang bản rõ trên website (o] 0} amy ©) e160] 0 PA, 1 16
Hình 2.3 Request va response bi mã hóa trên website ngân hàng BIIDV L2 1 1212121111 101111111111 1010111010101 10101010101 HH Hư 17 Hình 2.4 Sơ đồ mã hóa giải mã request - response tổng quát .18 Hình 2.5 Sơ đồ chi tiết quá trình mã hóa - giải mã request body "THHa I1AaaaAaaÁAAAa 5S All am 18
Hình 2.6 Sơ đồ chi tiết quá trình mã hóa - giải mã response 00 2: :iliS 19
Hình 2.7 Source code JavaScript của website ngân hàng BIDV.21 Hình 2.8 Request body ở dạng bản rõ khi chạy chế đô debug .22 Hình 2.9 Khởi tạo cặp khóa bất đối xứng RSA - 25
Hình 2.10 Request body ở dạng đối tượng JSON 25
Hình 2.11 Kết quả thực thi script mã hóa request body 26
Hình 2.12 Request được mã hóa body và gửi tới server 27
Hình 2.13 Kết quả giải mã request body về dang bản rõ 27
Hình 2.14 Phần mềm Postman -. -¿5- 5222 2222EEzxeErrrrrrrrea 28 Hình 2.15 Xây dựng request trên ứng dụng Postman 29
Hình 2.16 Response do server trả về trên Postman 30
Hình 3.1 Luồng xử lý request - response của extension ˆ10i4e8i-)aiea/o0777 re 33 Hình 3.2 Giao diên của AutoPencrypt extension 34
Hình 3.3 Sơ đồ thành phần của LogTable - - - +s+s+s+sz¿ 35
Trần Anh Đức — B1I9DCAT047 Vv
Trang 8Đồ án tốt nghiệp Danh mục
Hình 3.4 Lớp đối tượng LogTable - ¿2 - + 2 2+s+E+xz£zzezxzeersrs 35 Hình 3.5 Lớp đối tượng LogEntry - - 2 2+s+E+EzEsEEzEzerrrersrs 36 Hình 3.6 Lớp đối tượng LogTableModel - =2 s+s+s+£zxzcs 37
Hình 3.7 Giao diên HTTPViewer được tạo bởi interface
re e2 1 38
Hình 3.8 Các thuôc tính để xây dựng HTTPViewer 38
Hình 3.9 Các thành phần thuôc Configuration Panel 39
Hình 3.10 Thiết kế JVM của thư viên Javet -5-scscss¿ 40 Hình 3.11 Biểu đồ so sánh hiêu năng thư viên Javet GraalJS -i12 [8] a 41
Hình 3.12 Triển khai ham handleHttpRequestToBeSent() 42
Hình 3.13 Triển khai hàm handleHttpResponseReceived() 43
Hình 3.14 Triển khai hàm loadLibrary() - 2-55: 43 Hình 3.15 Mô hình MERN Stack - 55552 S2 x+xzxzecrerrxreeea 44 Hình 3.16 Giao diên ứng dụng web PTIT-Score - 45
Hình 3.17 Script mã hóa - giải mã trên trình duyêt web 45
Hình 3.18 API được mã hóa request va response body 46
Hình 3.19 Script mã hóa - giải ma phía back-end server 46
Hình 3.20 Tích hợp extension AutoPencrypt vào BurpSuite 47
Hình 3.21 Viết script mã hóa cho website BIDV - 48
Hình 3.22 Viết script giải mã cho website BIDV 48
Hình 3.23 Import thư viên mã hóa node-forge 49
Hình 3.24 Kết quả gửi request thông qua Burp Repeater 49
Hình 3.25 AutoPencrypt ghi lại log các request đã được mã hóa ¬ A11BBBBBB Eset eA AAA GEEEEEES 50 Hình 3.26 Ung dung giới han loại file được upload trên giao 5-0 50
Hình 3.27 Request upload file bị mã hóa body 51
Hình 3.28 Viết script mã hóa cho website PTIT-Score 51
Hình 3.29 Viết script giải mã cho website PTIT-Score 52
Hình 3.30 Import thư viên mã hóa CryptoJS và Node-RSA 52
Hình 3.31 AutoPencrypt thực hiên mã hóa body request upload ¡II 53
Hình 3.32 Kết quả resposne body được giải mã về dạng bản rõ — äỐỐẼa 54
Hình 3.33 Thực hiên cài đặt tấn công Brute force password 54
Trần Anh Đức — B1I9DCAT047 vi
Trang 9Đồ án tốt nghiệp Danh mục
Hình 3.34 Các request brute force được xử lý bởi AutoPencrypt
HH Ẽ ẼäẼäẼA 55
Hình 3.35 Thực hiên rà quét tự đông bang Active Scan 56
Hình 3.36 Kết quả các request scan được AutoPencrypt mã hóa
Ha 56
Hình 3.37 Tạo file chứa request cần dò quét -. 5- 57
Hình 3.38 Dò quét bằng SQLMap với proxy server 58
Hình 3.39 Các request của SQLMap di qua Burp Suite được AutoPencrypt mã hóa - E222 1912121211112 8111121011111 ce 58
Forgery chéo miền
CVSS Common Hé thống Điểm đánh giá lỗ
Vulnerability Scoring hổng chung
System
DNS Domain Name Hê thống phân giải tên miền
Trần Anh Đức — B1I9DCAT047 vii
Trang 10Đồ án tốt nghiệp Danh mục
System
DoS Denial of Service Tấn công từ chối dịch vụ
HIPAA Health Insurance Luật Bảo vê Quyền riêng tư
Portability and và An ninh Y tế
Protocol Secure Văn bản An toàn
IDOR Insecure Direct Lỗ hổng tham chiếu đối
Object Reference tượng không an toàn
IDS Intrusion Detection | Hê thống Phát hiên tấn công
System xâm nhập
IP Internet Protocol Giao thức Internet
ISO International Tổ chức tiêu chuẩn hóa quốc
OSSTMM | Open Source Security | Hudng dẫn phương pháp
Testing Methodology | kiểm thử bảo mật mã nguồn
Manual mở
OWASP Open Web Dự án bảo mật Ứng dụng
Application Security Web mở
Project
PCI DSS Payment Card Tiêu chuẩn bảo mật dữ liêu
Industry Data ngành Thẻ thanh toán
Security Standard
PR Privileges Required Đặc quyền yêu cầu
PTES Penetration Testing | Tiêu chuẩn thực hiên kiểm
Execution Standard thử xâm nhập
PoC Proof of Concept Bang chứng thực nghiêm
Trang 11Đồ án tốt nghiệp Danh mục
RCE Remote Code Thực thi mã từ xa
Execution
RSA Rivest-Shamir- Thuật toán ma hóa khóa
Adleman công khai RSA
SQL Structured Query Ngôn ngữ truy vấn có cấu
Language trúc
SSL Secure Sockets Layer | Tiêu chuẩn công nghé bảo
mật, truyền thông mã hoaTLS Transport Layer Bảo mật lớp Vận chuyển
Security
UI User Interaction Tương tác người dung
URL Uniform Resource Định danh truy cập tài
Locator nguyên trên Internet
WEB World Wide Web Mạng toàn cầu
WSTG | Web Security Testing Hướng dẫn kiểm thử bảo
Guide mật Web
XSS Cross-Site Scripting Lỗ hổng chèn mã script
chéo miền
Trang 12Đồ án tốt nghiệp Lời mở đầu
MỞ ĐẦU
Trong thời kỳ chuyển đổi số hiên nay, các ứng dụng web
được ra đời ngày càng nhiều nhằm phục vụ các lĩnh vực trong
đời sống như y tế, giáo dục, thương mại điên tử Tuy nhiên, với
các thủ đoạn ngày càng tinh vi của tin tặc, nguy cơ những
thông tin được truyền trên Internet có thể bị đánh cắp thật sự làvấn đề đáng quan tâm Do vậy, để đảm bảo an toàn cho các
thông tin truyền trên Internet, các ứng dụng web hiên đại đã
được triển khai cơ chế mã hóa các thông điêp trao đổi giữa phíawebserver và trình duyêt Điều này giúp đảm bảo chỉ phía trìnhduyêt và máy chủ ứng dụng web mới có thể giải mã thông điêp,
dù tin tặc có chặn bắt, đánh cắp thông điêp trên đường truyền
cũng không thể giải mã được
Tuy viêc mã hóa request - response body giúp đảm bảo an
toàn cho thông diép nhưng cũng gây không ít khó khăn cho
người kiểm thử trong quá trình kiểm thử xâm nhập đối vớinhững website có mã hóa Đây là lý do đề tài “Nghiên cứu về
kiểm thử xâm nhập trên website có mã hóa” cần được tiến
hành tìm hiểu và nghiên cứu Đồ án này sẽ tập trung nghiên
cứu về quy trình kiểm thử xâm nhập website có mã hóa mã hóa
và xây dựng BurpSuite Extension ứng dụng vào kiểm thử web
mã hóa.
Đồ án được xây dựng thành 3 chương:
Chương 1: Tổng quan về kiểm thử xâm nhập websiteChương 2: Quy trình kiểm thử xâm nhập trên website
có mã hóa
Chương 3: Xây dựng BurpSuite Extension ứng dụng
vào kiểm thử xâm nhập website có mã hóa
Trần Anh Đức — B1I9DCAT047 1
Trang 13Đồ án tốt nghiệp Chương 1
CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ XÂM NHẬP
WEBSITE
Chương 1 giới thiệu tổng quan về kiểm thử xâm nhập ứng
dụng web: định nghĩa, mục tiêu, lợi ích của kiểm thử, các hình
thức kiểm thử xâm nhập phổ biến Bên cạnh đó, chương này
cũng đề cập đến các giai đoạn chính trong quy trình kiểm thử
xâm nhập ứng dụng web thông thường.
1.1 Tổng quan về kiểm thử xâm nhập
1.1.1 Khái quát về kiểm thử xâm nhập Kiểm thử xâm nhập (Penetration Testing hay
Pentest) là quá trình thực hành mô phỏng các cuôc tấn công
của kẻ tấn công vào hê thống nhằm mục đích xác định xem hê
thống, mạng hay ứng dụng có an toàn hay không Các cuôc tấn
công này được thực hiên bên trong hoặc bên ngoài hê thống
giúp cung cấp thông tin về hê thống mục tiêu, xác định các lỗ
hổng bảo mật và phát hiên các cách khai thác có thể gây tổn
hại đến hê thống, ứng dụng [1]
Người kiểm thử xâm nhập (Pentester) sẽ đóng vai trò là
người tấn công xâm nhập vào hê thống để phát hiên, xác định
những điểm yếu và các lỗ hổng bảo mật tiềm tàng của hê thống
mà tin tặc có thể khai thác va gây thiét hại Người kiểm thử xâmnhập cần có được sự cho phép, ủy quyền của chủ hê thống hoặcphần mềm mục tiêu để thực hiên kiểm thử Người kiểm thử còn
được gọi là hacker mũ trắng (white hat hacker hay ethical
hacker) [2].
Đối tượng kiểm thử (Pentest target) thường là các ứng
dụng web, mobile, các API, cơ sở hạ tầng mạng - Network hoặc
bất kỳ đối tượng, hê thống nào có kết nối tới Internet mà có khả
năng bị tấn công khai thác Mỗi đối tượng kiểm thử sẽ tương
ứng với môt loại kiểm thử xâm nhập
Trần Anh Đức — B19DCAT047 2
Trang 14Đồ án tốt nghiệp Chương 1
Mobile Web
application application
Penetration testing
Social Engineering
Hình 1.1 Một số loại kiểm thử xâm nhập phổ biến
Mục tiêu chính của kiểm thử xâm nhập là để cho tổ chứcthấy rằng lỗ hổng có thể được sử dụng bởi kẻ tấn công để
chống lại họ như thế nào Qua đó, chuyên gia bảo mật sẽ cung
cấp lời khuyên về các biên pháp khắc phục, đối phó cần thiếtcần được thực hiên để giảm thiểu các mối đe dọa của những lỗ
hổng được tìm thấy, loại trừ khả năng bị tấn công khai tháctrong tương lai [3] Kiểm thử xâm nhập không phải là môt quá
trình được thực hiên mot lần mà nó cần được thực hiên định kỳ
nhằm phát hiên và ngăn chặn những lỗ hổng bảo mật mới haynhững lỗ hổng Zero-day Trong một số tình huống như thay đổi
cấu trúc hê thống, cập nhật mã nguồn hay thêm chức năng mới
cho ứng dụng thì quá trình kiểm thử cần được thực hiên càng
sớm càng tốt nhằm đảm bảo tính bảo mật liên tục cho hê thống
hoặc ứng dụng.
Những lợi ích quan trọng mà kiểm thử xâm nhập mang lạiđối với tổ chức, doanh nghiép có thể kể đến như:
- Phat hiên kịp thời lỗ hổng bảo mật và điểm yếu tiềm ẩn
bên trong hê thống, giúp giảm thiểu thiêt hại cho hê thống
- _ Đánh giá nguy cơ và mức đô rủi ro mà các lỗ hổng bảo mật
có thể gây ra, giúp tổ chức xác định được các vấn đề nào
cần được ưu tiên khắc phục
- Kiểm tra các chính sách bảo mật đã được thiết lập, triển
khai có thực sự hiêu quả và an toàn hay không Nếu có sự
Trần Anh Đức — B19DCAT047 3
Trang 15Đồ án tốt nghiệp Chương 1
vi phạm hoặc bất kỳ điểm yếu nào trong thực hiên chínhsách, tổ chức có thể đối phó và cập nhật chính sách kịp
thời.
- Tăng cường nhận thức bảo mật của đôi ngũ phát triển ứng
dụng và người quản lý, giúp họ hiểu hơn về mức đô quan
trọng của viêc bảo vê thông tin và dữ liêu.
- Đảm bảo các hê thống ứng dụng tuân thủ theo các quy
định và tiêu chuẩn bảo mật của từng ngành cụ thể như cáctiêu chuẩn HIPAA, PCI DSS, ISO 27001
1.1.2 Các hình thức kiểm thử xâm nhập
Mặc dù có nhiều loại kiểm thử xâm nhập với các đối tượngkiểm thử khác nhau nhưng đều được triển khai áp dụng theocác hình thức kiểm thử sau: kiểm thử hôp trắng, kiểm thử hôpđen và kiểm thử hôp xám Các hình thức kiểm thử này chủ yếu
khác nhau về hướng tiếp cận đối tượng, viêc áp dụng các hình
thức kiểm thử xâm nhập khác nhau giúp cho tổ chức có thểđánh giá mức đô an toàn của hê thống môt cách đầy đủ và toàndiên nhất
wm © |
ZERO KNOWLEDGE SOME KNOWLEDGE FULL KNOWLEDGE
Hình 1.2 Các hình thức kiểm thử xâm nhập
- Kiểm thử hộp trắng (White box Testing) là hình thức
kiểm thử mà người kiểm thử sẽ được cung cấp mọi thông tin vềđối tượng mục tiêu trước khi họ tiến hành quá trình kiểm thử.Những thông tin này bao gồm: địa chỉ IP, sơ đồ hạ tầng mạng,các giao thức sử dụng, hoặc mã nguồn và các thành phần nôi
bô của ứng dụng.
Mục tiêu của kiểm thử hôp trắng nhằm xác định nguy cơ, lỗhổng tiềm tang trong nôi bô của hé thống, kiểm tra tính đúng
đắn của mã nguồn và xác định điểm yếu bên trong mã giúp
ngăn ngừa nguy cơ bị khai thác từ bên trong.
Trần Anh Đức — B19DCAT047 4
Trang 16Đồ án tốt nghiệp Chương 1
- Kiểm thử hộp đen (Black box Testing) còn được gọi là
“blind testing”, là hình thức kiểm thử dưới góc đô của môt kẻtấn công trong thực tế Người kiểm thử sẽ không nhận được bất
kỳ thông tin nào về hê thống trước khi tấn công mà phải tự tìm
kiếm và thu thập thông tin về đối tượng để tiến hành kiểm thử
Kiểm thử hôp đen là loại kiểm thử khó thực hiên nhất, đòi
hỏi người kiểm thử phải có trình đô cao và nhiều kinh nghiêm.Hình thức kiểm thử này yêu cầu môt lượng lớn thời gian để tìmhiểu về hê thống mục tiêu và nỗ lực tấn công, nên tốn nhiều chỉ
phí nhưng là hình thức tốt nhất để kiểm tra tính bảo mật tổng
thể của hê thống
- Kiểm thử hộp xám (Gray box Testing) là hình thức
kiểm thử kết hợp giữa kiểm thử hôp trang và kiểm thử hôp den
Người kiểm thử sẽ được cung cấp môt phần thông tin về đối
tượng kiểm thử, ví dụ địa chỉ IP, tài khoản đăng nhập, tài liêu
đặc tả và có quyền truy cập môt phần vào hê thống mục tiêu
Hình thức kiểm thử này thường được áp dụng trong kiểm
thử ứng dụng web, giúp đảm bảo cân bằng giữa tính bảo mật và
tiên ích của người dùng trên những ứng dụng này Tuy nhiên,
kiểm thử hôp xám cũng có hạn chế do không có kiến thức đầy
đủ, chi tiết về mã nguồn, người kiểm thử sẽ không thể kiểm tra
các lỗi cú pháp hoặc lỗi biên dịch của ứng dụng dẫn đến viêc bỏsót các lỗ hổng
1.1.3 Giới thiệu về kiểm thử xâm nhập website
Kể tử khi ra đời vào năm 1990 cho đến nay, công nghê Web
đã phát triển rất mạnh mẽ và là hạ tầng cung cấp các dịch vụ
phổ biến nhất trên Internet Ban đầu, các trang web được ra đời
là các trang web tĩnh, người dùng chỉ có thể đọc các nôi dung
của các trang web này mà không có tương tác nào khác Nhưng khi công nghê WEB 2.0 ra đời, các trang web đông được tạo ra
nhằm tăng khả năng tương tác giữa người dùng và trang web.Các trang web đông cho phép người dùng có thể thực hiên
nhiều thao tác hơn như thêm, sửa, xóa các dữ liêu trên trang
web, nôi dung của trang web có thể thay đổi tùy chỉnh bởi người
dùng Điều này giúp tăng trải nghiêm của người dùng, giúp cho
Trần Anh Đức — B19DCAT047 5
Trang 17Đồ án tốt nghiệp Chương 1
nôi dung của trang web trở nên sinh đông hơn và các trang web
từ đó cũng được ứng dụng vào nhiều ngành nghề khác nhau
trong thời kỳ chuyển đổi số Các website ngày càng lưu trữ
nhiều thông tin, dữ liêu về người dùng và dan trở thành mụctiêu khai thác của kẻ tấn công
Từ đó khái niêm kiểm thử xâm nhâp ứng dụng web được ra
đời Kiểm thử xâm nhập ứng dung web là mot loại kiểm tra xâm
nhập cụ thể, tập trung vào viêc xác định các lỗ hổng liên quan
đến web và đánh giá tác đông của chúng đối với chủ sở hữu hêthống Kiểm thử thâm nhập ứng dụng web được thực hiên bằngcách mô phỏng các cuôc tấn công trái phép từ bên trong hay
bên ngoài để có được quyền truy cập vào dữ liêu nhạy cảm
Kiểm thử xâm nhập ứng dụng web không chỉ để phát hiên các lỗhổng kỹ thuật của hê thống mà còn giúp xác định tác đông tiềm
tàng đối với các dữ liêu bảo mật trên hê thống nếu lỗ hổng thực
sự bị kẻ tấn công khai thác
Để dam bảo tính hiéu quả, chính xác và hạn chế việc bỏ sót
các lỗ hổng bảo mật trong quá trình kiểm thử xâm nhập web,
người kiểm thử cần phải thực hiên tuân theo môt quy trình kiểm
thử xâm nhập nhất định
1.2 Quy trình kiểm thử xâm nhập website
Hiên nay trên thế giới có môt vài mô hình, tiêu chuẩn đãđưa ra các quy trình kiểm thử xâm nhập khác nhau như tiêu
chuẩn Penetration Testing Execution Standard (PTES) là môt
tiêu chuẩn được sử dụng trong lĩnh vực kiểm thử xâm nhập,cung cấp môt khung làm viêc chi tiết và toàn diên gồm 7 giaiđoạn kiểm thử sau: Tương tác trước khi kiểm thử, Thu thậpthông tin, Mô hình hóa mối đe dọa, Phân tích lỗ hổng bảo mật,
Khai thác, Hậu khai thác, Lập báo cáo [4] Hay mô hình Open
Source Security Testing Methodology Manual (OSSTMM) đưa ra
quy trình kiểm thử gồm 10 giai đoạn chính [5]
Bảng 1 So sánh ưu nhược điểm của quy trình PTES và OSSTMM
Quy trình PTES Quy trình OSSTMM
Ưu điểm |- Cung cấp quy trình|- Tập trung vào việc
Trần Anh Đức — B19DCAT047 6
Trang 18Đồ án tốt nghiệp Chương 1
kiểm thử rõ rang, chi tiết
- Tập trung vào viéc áp
dụng phương pháp và kỹ
thuật kiểm thử bảo mật
chuyên sâu, giúp đảm
bảo chất lượng và hiêu
suất của quy trình kiểm
thử.
- Có thể được sử dụng
cho các hê thống phức
tạp và môi trường mạng lớn.
với các yêu cầu cụ thể
của dự án kiểm thử
Nhược
điểm
- Yêu cầu môt quá trình
kiểm thử chỉ tiết và tỉ mi,
do đó, nó có thể tốn
nhiều thời gian và nguồn
lực.
- Dodi hỏi kiến thức
chuyên sâu về bảo mật
để triển khai hiêu quả
được thực hiên theo môt trình tự gồm 6 giai đoạn chính:
Giai đoạn 2 Giai đoạn 4 Giai đoạn 6
Đánh giá mức độ nguy
Dò quét điểm yếu ec neehiểm các lỗ hổng Tái đánh giá
Giai đoạn 1 Giai đoạn 3 Giai đoạn 5
Xác minh lỗ hổng và
tấn công kiểm thử
Khảo sát, thu thập Báo cáo và khuyến nghị
thông tin về mục tiêu
Hình 1.3 Quy trình kiểm thử xâm nhập website
Trần Anh Đức — B19DCAT047 7
Trang 19Đồ án tốt nghiệp Chương 1
1.2.1 Khảo sát, thu thập thông tin về mục tiêuGiai đoạn Thu thập thông tin là giai đoạn nhằm thu thập
càng nhiều thông tin về mục tiêu càng tốt, viêc thu thập thông
tin day đủ và chính xác sẽ giúp rút ngắn thời gian kiểm thử di
nhiều lần Đây là giai đoạn đầu và cũng là giai đoạn quan trọng
nhất của quy trình kiểm thử xâm nhập
Trong giai đoạn này, người kiểm thử sẽ sử dụng các công cụ
để quét lỗ hổng, cổng mở và các dịch vụ chạy trên cổng hoặc
mọi thông tin được công khai trên internet để phục vụ kiểm thửnhư thông tin về phiên bản máy chủ ứng dụng, phiên bản ngôn
ngữ, framework, các đường dẫn ẩn, subdomain của ứng dụng.
Các thông tin này thường được thu thập theo 2 cách phổ biến:
thu thập thông tin thụ đông và thu thập thông tin chủ đông.
INFORMATION
ACTIVE GATHERING PASSIVE
h
@ lx :
Hình 1.4 Các phương pháp thu thập thông tin
1.2.1.1 Thu thập thông tin thụ động Thu thập thông tin thụ đông là viéc thu thập thông tin ma
không tương tác trực tiếp với đối tượng hoặc sử dụng thông tin
có sẵn được công khai hoặc có tương tác nhưng chỉ thực hiên
các thao tác sử dụng ứng dụng web như người dùng bình
thường Mục tiêu của thu thập thông tin thụ đông là tìm hiểu,
thu thập càng nhiều thông tin về ứng dụng càng tốt mà không
để lại bất kỳ dấu vết nào, không gây ra bất kỳ tác đông nào tớitưởng lửa hoặc hê thống phát hiên tấn công xâm nhập IDS
Môt số kỹ thuật thường được sử dụng để thu thập thông tin
thụ đông gồm:
Trần Anh Đức — B19DCAT047 8
Trang 20Đồ án tốt nghiệp Chương 1
- Xem mã nguồn HTML của trang web có thể cung cấp
thông tin về cấu trúc và các phần tử trong trang web,
qua đó có thể tìm thấy URL của các tài liêu, hình ảnh,
thư viên js hoặc các phần tử khác mà trang web sử
dụng.
- Kiểm tra tên miền và thông tin WHOIS để thu thập
thông tin về tên miền của trang web, thông tin về
người sở hữu, đăng ký và quản lý tên miền, tên đơn vịcung cấp dịch vụ tên miền
- Thu thập thông tin từ công cụ tìm kiếm như
GoogleHacking, Shodan Search Engine để lọc, tìm
kiếm và xác định được các lỗ hổng, các thông tin dữ
liêu nhạy cảm của mét trang web như địa chỉ IP, vị trí,
hê điều hành các cổng mở của các máy chủ web
Quá trình thu thập thông tin thụ đông sẽ giúp người kiểm
thử hiểu rõ hơn về ứng dụng web mục tiêu, thu thập thông tin
phục vụ cho giai đoạn tiếp theo của quá trình kiểm thử, giúp
nâng cao khả năng tấn công khai thác hiêu quả mà không tiết
lô dấu vết, sự tồn tại của mình đối với ứng dụng
1.2.1.2 Thu thập thông tin chủ động
Thu thập thông tin chủ đông trong kiểm thử xâm nhập làmôt phương pháp thu thập thông tin về mục tiêu bằng cách
tương tác trực tiếp với hê thống, ứng dụng hoặc mạng mục tiêu
Khác với phương pháp thu thập thông tin thụ đông, trong quá
trình thu thập thông tin chủ đông, người kiểm thử thực hiên các
hoạt đông tấn công nhằm khám phá và thu thập thông tin từ
mục tiêu Việc thu thập thông tin chủ đông sẽ giúp thu thập
được nhiều thông tin hơn về ứng dụng web và các lỗ hổng đang
tồn tại trên ứng dụng
Môt số kỹ thuật thường được sử dụng:
- Port Scanning để xác định các cổng mạng được mở
trên máy chủ web, từ đó tìm ra các dịch vụ đang chạy
trên các cổng đó
- Brute Force Attack: thử đăng nhập bằng cách sử dụng
các danh sách tên người dùng, mật khẩu phổ biến
Trần Anh Đức — B19DCAT047 9
Trang 21Đồ án tốt nghiệp Chương 1
(wordlists) để thực hiên liệt kê username (userenumeration), vét cạn mật khẩu và tìm ra mật khẩu
đăng nhập hợp lê.
- Application Fingerprinting: phát hiên và xác định các
ứng dụng sử dụng công nghê, ngôn ngữ hay thư viên
gì và các phiên bản tương ứng bằng công cụ
Wappalyzer.
- DNS Enumeration: xac dinh cac ban ghi DNS cua muc
tiêu để thu thâp thông tin về tên miền (domain) và
các tên miền con (subdomain) của hê thống ứng dụng
web.
Quá trình thu thập thông tin chủ đông sẽ giúp người kiểmthử đánh giá mức đô bảo mật của hê thống và xác định các
điểm yếu, lỗ hổng bảo mật có thể được khai thác Tuy nhiên,
việc thực hiên các hoạt đông thu thập thông tin chủ đông này
có thể tạo ra sự chấn đông hoặc ảnh hưởng đến hiêu suất của
hê thống mục tiêu, vì vậy nó phải được thực hiên cẩn thận vàcùng với sự chấp thuận của người quản lý hê thống hoặc chủ sở
hữu.
1.2.2 Dò quét điểm yếu
Dò quét điểm yếu là môt trong những giai đoạn quan trọng
trong quá trình kiểm thử bảo mật của môt hê thống hoặc ứngdụng Giai đoạn này giúp người kiểm thử xác định được các lỗhổng bảo mật tiềm tàng mà có thể bị khai thác trong tương lai
Giai đoạn này bao gồm viêc sử dụng các kỹ thuật và các
công cụ rà quét lỗ hổng như Acunetix, Nessus, OWASP ZAP,BurpSuite để dò tìm các lỗ hổng bảo mật, thiếu sót cấu hình và
các vấn đề liên quan khác trên hê thống hoặc ứng dụng đangđược kiểm thử
Trần Anh Đức — B19DCAT047 10
Trang 22Đồ án tốt nghiệp Chương 1 '“ Burp Suite Professional | = |[ml mm
Burp Intruder Repeater Window Help
| Target | Proxy | Spider | Scanner | Intruder | Repeater | Sequencer | Decoder | Comparer | Extender | Options | Alerts Ì
Results | Scan queue [Live scanning | Options |
/ @ Cross-site scripting (stored)
> @ addressbook @ HTTP header injection
> 1 admin | |
> @ cclookup > @ Cleartext submission of password [2]
» ? employees ! OS command injection
» j filestore ? LDAP injection
» 7 labs © Open redirection
> @ search » @ Password field with autocomplete enabled [2]
> @ settings » | Cross-domain Referer leakage [2] v
> © updates
> j https://0b7bd624bab7 mdseclabs net | Advisory [ Request | Response Ì
a
@ Cross-site scripting (reflected) )
Issue: Cross-site scripting (reflected)
Hình 1.5 Dò quét lỗ hổng bảo mật bằng công cu Burp Suite
Các công cụ dò quét bảo mật tự đông sẽ tạo ra các yêu cầu
(request) đến ứng dụng web và dựa vào phản hồi để kiểm tra
các lỗ hổng bảo mật, từ đó có thể xác định được các lỗ hổng
phổ biến như SQL injection, XSS, CSRF, clickjacking và phát hiênđược điểm yếu trong quá trình triển khai và cấu hình của ứng
dụng web Kết thúc quá trình dò quét, các công cụ sẽ đưa ra
danh sách mô tả chỉ tiết về các lỗ hổng kèm theo mức đô chắcchắn về lỗ hổng đã phát hiên được Người kiểm thử sẽ dựa vào
kết quả dò quét để thực hiên viêc xác minh lỗ hổng và tấn công
kiểm thử trong giai đoạn tiếp theo của quy trình kiểm thử xâm
nhập.
”^?
1.2.3 Xác minh lỗ hổng và tấn công kiểm thử
Xác minh lỗ hổng và tấn công kiểm thử là giai đoạn thực
hiên khai thác các lỗ hổng bảo mật đã được xác định để đảm
bảo rằng các lỗ hổng đó thực sự tồn tại và có thể bị khai thác.
Sau khi lỗ hổng đã được xác minh, người kiểm thử sẽ xây dựng
vector tấn công và sử dụng các kỹ thuật, công cụ để tấn công
Trần Anh Đức — B19DCAT047 11
Trang 23Đồ án tốt nghiệp Chương 1
ứng dụng web và khai thác các lỗ hổng bảo mật đã được xác
định.
Ngoài những lỗ hổng bảo mật được phát hiên trong giai
đoạn Dò quét điểm yếu, người kiểm thử cần thực hiên tấn công
kiểm thử theo môt số checklist như OWASP Top 10, OWASP
WSTG v4.2 để phát hiên và khai thác những lỗ hổng bảo mật
mà công cụ rà quét không thể xác định được Checklist
“OWASP WSTG v4.2” là môt trong những checklist chi tiết,
day đủ và được sử dụng phổ biến nhất hiên nay Trong checklist
đưa ra danh mục hướng dẫn đánh giá những lỗ hổng bảo mật
nghiêm trọng nhất trên các ứng dụng web [6]:
(1)Configuration and Deployment Management Testing
(Đánh giá cấu hình và quan ly triển khai)
(2)Identity Management Testing (Đánh giá quản lý định
danh)
(3) Authentication Testing (Đánh giá quá trình xác thực)
(4) Authorization Testing (Đánh giá quá trình phân quyền)
(5) Session Management Testing (Đánh giá quản lý phiên)
(6)Input Validation Testing (Đánh giá kiểm tra dữ liêu đầu
vào)
(7) Testing for Error Handling (Đánh giá quá trình xử lý lỗi)
(8)Testing for Weak Cryptography (Đánh giá điểm yếu
trong mã hóa) (9)Business Logic Testing (Đánh giá hoạt đông nghiệp vụ)
(10) Client-side Testing (Đánh giá phía máy khách) (11) API Testing (Đánh giá API).
Trong mỗi mục đánh gia, checklist đã xây dung vector tấn
công tương ứng của từng lỗ hổng bảo mật theo hai hình thức
kiểm thử chủ yếu là kiểm thử hôp đen và kiểm thử hôp xám.Người kiểm thử sẽ thực hiên tấn công, khai thác các lỗ hổng bảomật theo từng mục nhỏ trong checklist, để đảm bảo rằng ứng
dụng web đã được đánh giá kỹ lưỡng thông qua mọi vector tấn
công và xác định được mọi lỗ hổng bảo mật đang tồn tại trên
ứng dụng web.
Trần Anh Đức — B19DCAT047 12
Trang 24Đồ án tốt nghiệp Chương 1
1.2.4 Đánh giá mức độ nguy hiểm các lỗ hổngSau khi xác định, phát hiên được tất cả các lỗ hổng bảo mật
trên ứng dụng web, người kiểm thử sẽ thực hiên đánh giá mức
đô nguy hiểm và rủi ro của các lỗ hổng bảo mật đối với hê
thống ứng dụng Từ đó có thể xác định mức đô ưu tiên để giải
quyết các lỗ hổng này
Trong giai đoạn này, người kiểm thử đánh giá mức đô nguy
hiểm, tác đông của các lỗ hổng bảo mật dựa trên các yếu tố
như tính bí mật, tính toàn vẹn và tính sẵn dùng Viêc đánh giá
mức đô nguy hiểm của các lỗ hổng bảo mật trong kiểm thử xâm
nhập được thực hiên theo môt tiêu chuẩn chung là tiêu chuẩn
CVSS (Common Vulnerabiliy Scoring System - viết tắt của hê
thống đánh giá lỗ hổng bảo mật chung) Tiêu chuẩn này được
tạo ra nhằm đánh giá ảnh hưởng do lỗ hổng bảo mật gây ra cho
hê thống ứng dụng Dựa trên tiêu chuẩn này, người kiểm thử sẽ
đánh giá mức đô nghiêm trọng của lỗ hổng bảo mật trên hai
phương diên là "Mức đô khó của tấn công" và "Ảnh hưởng bởi
tấn công"
Mức độ khó của tấn công Ảnh hưởng bởi tấn công
Attacker có thể dễ dàng tấn oP Vi phạm C-I-A của thông tin ở
công System hay không? mức độ nào?
Hình 1.6 Phương diện đánh giá lỗ hổng bảo mật theo tiêu
chuẩn CVSS
“Mức đô khó của tấn công” sẽ được đánh giá dựa trên các
tiêu chí sau:
- Attack Vector (AV): Phân loại nguồn tấn công
- Attack Complexity (AC): Sự phức tạp của điều kiên
tấn công
- Privileges Required (PR): Mức đô đặc quyền cần thiết
- User Interaction (Ul): Mức đô yêu cầu tương tác từ
người dùng.
Trần Anh Đức — B19DCAT047 13
Trang 25Đồ án tốt nghiệp Chương 1
- Scope (S): Phạm vi ảnh hưởng của tấn công
“Ảnh hưởng bởi tấn công” nhằm xác định mức đô ảnh
hướng của lỗ hổng tới ba đặc tính của An toàn thông tin:
- Confidentiality Impact (C): Ảnh hưởng đến tính bí mật.
-_ Integrity Impact (I): Ảnh hưởng đến tính toàn vẹn.
- Availability Impact (A): Ảnh hưởng đến tính sẵn dùng.
Điểm CVSS cơ sở hay CVSS Base Score là mức điểm dựa
trên kết quả đánh giá của hai phương diên nêu trên Giá trị nàyđược dùng để đánh giá tầm quan trọng và mức đô nghiêm trọng
của lỗ hổng Mức đô nghiêm trọng của lỗ hổng được chia thành
4 mức chính: Nghiêm trọng (Critical), Nguy hiểm (High), Trung
bình (Medium) và Thấp (Low)
0 None
Hình 1.7 Thang điểm CVSS và mức độ nghiêm trọng tương ứng
Tổ chức hoặc chủ sở hữu của hê thống ứng dụng sẽ dựa vào
các mức đô nghiêm trọng của từng lỗ hổng để xác định lỗ hổng
nào cần được ưu tiên giải quyết và khắc phục
Trần Anh Đức — B19DCAT047 14
Trang 26Đồ án tốt nghiệp Chương 1
1.2.5 Báo cáo và khuyến nghị
Báo cáo và khuyến nghị là môt trong những giai đoạn quan
trọng nhất trong quy trình kiểm thử xâm nhập Trong giai đoạn
này, các kết quả kiểm thử từ các giai đoạn trước đó sẽ được
tổng hợp, phân tích và đưa ra các báo cáo chỉ tiết về các lỗ
hổng bảo mật, rủi ro, thiêt hại có thể xảy ra và đề xuất các biên
pháp giải quyết, khắc phục lỗ hổng Kết quả của quá trình kiểm
thử cần được trình bày chi tiết, rõ ràng và cần phải thể hiên
những nôi dung quan trọng sau:
Thông tin về phạm vi (scope) của hê thống ứng dụng đã
được kiểm thử xâm nhập
Tóm tắt tổng quan về kết quả kiểm thử: phần này baogồm số lượng của từng loại lỗ hổng được tìm thấy, mức
đô nghiêm trọng và ảnh hưởng dự kiến của các lỗ hổng
đối với hê thống
Danh sách chi tiết lỗ hổng: ở phần này, người kiểm thử
cần mô tả về kịch bản khai thác lỗ hổng, đưa ra bằngchứng khai thác (PoC) để chứng minh sự tồn tại của lỗhổng, giúp người đọc có thể hiểu rõ hơn về tình huống và
cách thức khai thác Bên cạnh đó, báo cáo cần đưa ra
mức đô nghiêm trọng và tác đông của từng lỗ hổng
Khuyến nghị: người kiểm thử đề xuất các giải pháp, biên
pháp khắc phục và cải thiên dựa trên từng lỗ hổng đã tìmthấy Mỗi khuyến nghị nên được mô tả chỉ tiết, bao gồm
cách thức thực hiên, các biên pháp bảo mật mới, cung
cấp thêm các tài liêu tham khảo và hướng dẫn để hỗ trợnhà phát triển hê thống trong quá trình khắc phục
Tổng kết về quá trình kiểm thử, nhấn mạnh về tầm quan
trọng của viêc khắc phục các lỗ hổng bảo mật và cải
thiên bảo mật cho ứng dụng web Ngoài ra báo cáo cần
đề cập đến thời gian, cách thức tiến hành kiểm tra tái
đánh giá sau khi triển khai biên pháp khắc phục để đảm
bảo rằng lỗ hổng đã được giải quyết môt cách hiéu quả
Báo cáo và khuyến nghị kiểm thử xâm nhập cung cấp môt
cái nhìn toàn diên về tình trạng bảo mật của ứng dụng web và
Trần Anh Đức — B19DCAT047 15
Trang 27Đồ án tốt nghiệp Chương 1
đóng góp quan trọng vào viêc nâng cao bảo mật và giảm thiểu
rủi ro của hê thống Do vậy, báo cáo nên được viết môt cách rõ
ràng, chi tiết và dễ hiểu để người đọc và các nha phát triển cóthể thực hiên các biên pháp khắc phục môt cách hiéu qua
1.2.6 Tái đánh giá
Sau khi các nhà phát triển hê thống ứng dụng web thực
hiên giải quyết, khắc phục các lỗ hổng bảo mật, người kiểm thử
sẽ tiến hành tái đánh giá lại ứng dụng web dựa trên những lỗ
hổng đã tìm thấy Giai đoạn này là giai đoạn cuối cùng trongquy trình kiểm thử, mục tiêu chính của giai đoạn này là xác
nhận rằng các lỗ hổng đã được khắc phục triêt để hoàn toàn và
không tạo ra các lỗ hổng bảo mật mới Người kiểm thử sẽ sửdụng các phương pháp và kỹ thuật kiểm thử xâm nhập tương tựnhư trong quá trình kiểm thử ban đầu để tiến hành đánh giá lại
lỗ hổng, xác minh rằng lỗ hổng không còn tồn tại Nếu các lỗ
hổng bảo mật đã được giải quyết không đúng cách hoặc còn tồntại các lỗ hổng bảo mật khác, người kiểm thử sẽ tiếp tục đề xuất
các biên pháp để giải quyết chúng
Tương tự như giai đoạn Báo cáo và khuyến nghị trong quy
trình kiểm thử, kết quả của quá trình tái đánh giá cũng được ghi
lại, mô tả chi tiết cách thức tái đánh giá và đánh giá hiêu quả
của các biên pháp khắc phục Nếu các lỗ hổng bảo mật đã đượckhắc phục hoàn toàn và không tìm thấy lỗ hổng mới, hê thống
ứng dụng web sẽ được ghi nhận là an toàn.
Kết luận chương
Chương 1 đã trình bày khái quát về kiểm thử xâm nhập:
định nghĩa, mục tiêu, lợi ích mà kiểm thử xâm nhập mang lại,các hình thức kiểm thử xâm nhập phổ biến Bên cạnh đó,
chương này cũng nêu rõ quy trình kiểm thử xâm nhập đối với
môt website thông thường.
Trần Anh Đức — B19DCAT047 16
Trang 28Đồ án tốt nghiệp Chương 2
CHƯƠNG 2: QUY TRÌNH KIỂM THỬ XÂM NHẬP TRÊN
WEBSITE CÓ MÃ HÓAChương 2 sử dụng website thực tế của ngân hàng BIDV để
làm ví dụ minh họa và làm cơ sở lý thuyết để trình bày tổngquan về website có mã hóa: đặt vấn đề, quá trình mã hóa và
giải mã request - response giữa máy chủ ứng dụng web và trình
duyệt Ngoài ra, trong chương này có đưa ra quy trình kiểm thử
xâm nhập trên website có mã hóa, các phương pháp kiểm thử
web mã hóa phổ biến Từ đó làm cơ sở đánh giá và đề xuất
phương pháp sử dụng BurpSuite Extension.
2.1 Tổng quan về website có mã hóa
2.1.1 Đặt vấn đề
Môi trường Internet ngày càng phát triển và được sử dụngrông rãi, đã mở ra môt thế giới kết nối toàn cau, cho phép
chúng ta truy cập vào hàng tỷ trang web, ứng dụng di đông và
dịch vụ trực tuyến Tuy nhiên, cùng với sự phát triển của
Internet và ứng dụng web, nguy cơ về bảo mật thông tin và tỷ
lê tôi phạm mạng ngày càng tăng cao Vì vậy viêc bảo mật dữ
liêu, an toàn thông tin trên đường truyền Internet ngày càng
được chú trọng hơn, đặc biêt là đảm bảo an toàn cho dữ liêu trên ứng dụng web.
Trước đây, các website được phát triển chủ yếu dựa trên
giao thức truyền tải siêu văn bản - HTTP (Hypertext Transfer
Protocol) để truyền dữ liêu dưới dạng văn bản, hình ảnh, âm
thanh, video từ máy chủ ứng dụng web tới trình duyêt phía người dùng và ngược lại HTTP hoạt đông theo mô hình Client (máy khách) - Server (máy chủ) Việc truy cập website được
tiến hành dựa trên các giao tiếp giữa 2 đối tượng trên Trong
quá suốt quá trình kết nối và trao đổi thông tin, giữa trình duyêt
người dùng và máy chủ ứng dụng web không có biên pháp xác
thực nào, các thông tin trao đổi được gửi qua giao thức HTTP(bao gồm địa chỉ IP, dữ liêu mà người dùng nhập vào websit)không được mã hóa và bảo mật Đây chính là kẽ hở mà nhiều kẻ
tấn công đã lợi dụng để đánh cắp thông tin người dùng, thường
Trần Anh Đức — B19DCAT047 15
Trang 29Đồ án tốt nghiệp Chương 2
được gọi là tấn công nghe lén (sniffing) hay tấn công Man in The
Middle [7].
Do đó, giao thức HTTPS được ra đời, là giao thức HTTP tích
hợp thêm Chứng chỉ bảo mật SSL nhằm mã hóa các thông điêp
để tăng tính bảo mật cho thông diép trên đường truyền
Internet HTTPS hoạt đông tương tự như HTTP, tuy nhiên được
bổ sung thêm chứng chỉ SSL (Secure Sockets) hoặc TLS(Transport Layer Security) Hiên tại, HTTPS là tiêu chuẩn bảo
mật hàng đầu cho hàng triêu website trên toàn thế giới, tiêu
chuẩn này giúp đảm bảo các nôi dung thông diép sẽ được mã
hóa trước khi truyền đi, và giải mã khi nhận Điều này khiến kẻ
tấn công dù có nghe lén hay chặn bắt gói được tin trên đường
truyền cũng không thể đọc được nôi dung của thông tin đó [7]
Khi thực hiện kiểm thử xâm nhập các website thông thường (website sửdụng giao thức HTTP hoặc HTTPS), người kiêm thử có thé chặn bắt và dé dàng
quan sát request, response của ứng dụng đó ở dạng bản rõ nhờ công cụ
BurpSuite Nếu website đó sử dụng giao thức HTTPS, công cụ BurpSuite sẽ tự
động bóc tách lớp mã hóa request, response được thực hiện bởi HTTPS và hiển thị cho người kiểm thử.
Trần Anh Đức — B19DCAT047 16
Trang 30Đồ án tốt nghiệp Chương 2
f ] = m Request Response
Raw Hex \n = Pretty Raw Hex =] =
1 POST /api/auth/login HTTP/1.1 uu) °°» »
2 Host: qldt.ptit.edu.vn 12 {
3 Accept: application/json, text/plain, */* "IDUser":@
4 Accept-Language: en-US,en;q=0.5 "Session":
5 Accept-Encoding: gzip, deflate, br "id" null
6 Content-Type: application/x-www-form-urlencoded “name” :null,
7 Ua: 8%MTcwNTQ5MDkwMDQzMg==%U2F SdGVkX1+5SHt@sROXe+x5ch/BYPp319DV6N7btog= "Eu11Name":nu11
8 Idpe: @ "error":nu11,
9 Content-Length: 58 “principal":null
1@ Origin: https://qldt.ptit.edu.vn “access token" :null
11 Referer: https://qldt.ptit.edu.vn/ "refresh_token":nu11
12 Sec-Fetch-Dest: empty "userName":nu11 ,
13 Sec-Fetch-Mode: cors "roles" :null
14 Sec-Fetch-Site: same-origin “info":null '
15 Te: trailers “IDDVPC":null
16 Connection: close "tatcape":false
các ứng dụng web còn triển khai thêm bước mã hóa request và
response body nữa như mot bước bảo mật bổ sung quan trọng.Viêc mã hóa request và response body nhằm bảo vê dữ liêu
trong lưu trữ, đảm bảo dữ liêu được an toàn ngay cả khi được
lưu trữ trên máy chủ Mặc dù dữ liêu có thể đã được mã hóa khi
truyền tải, nhưng nếu nó không được mã hóa trong quá trình
lưu trữ, nó có thể bị lô khi máy chủ bị tấn công hoặc bị truy cập
trái phép Ngoài ra, trong môt số ngành và lĩnh vực như ngânhàng, tài chính, tín dụng, y tế thì viêc thực hiên mã hóa request
và response body là bắt buôc, giúp đảm bảo tuân thủ các quy
định pháp luật và tiêu chuẩn bảo mật liên quan đến bảo mật
thông tin, dữ liêu người dùng như ISO 27001, PCI-DSS.
Đối với những website có mã hóa này, công cụ BurpSuite
cũng thực hiên việc bóc tách lớp mã hóa HTTPS nhưng bên
trong request body và response body được triển khai bổ sung
thêm môt lớp mã hóa nữa Điều này giúp tăng tính bảo mật củathông tin trên đường truyền nhưng gây không ít khó khăn đối
với người kiểm thử xâm nhập
Trần Anh Đức — B19DCAT047 17
Trang 31Đồ án tốt nghiệp Chương 2
= a
Request Response
Pretty Raw — Hex in = Pretty Raw Hex Bn =
Post /w2/auth HTTP/1.1 i HTTP/1.1 401 Unauthorized
Host: smartbanking idv com vn Date: Sun, 17 Dec 23 10
3 User-Agent: Mozi 0 (Windows NT 10.0; Winé4; x64; rv:120.0) 3 Content-Type: application/j
Gecko/20100101 Firefox/120.0 4 Connection: close
4 Accept: application/json 5 vary: Origin
5 Accept-Language: vi 6 Vary: Acc
6 Accept-Encoding: p 7 Vary: Acc
X-Request-Td Access-Control-Allow-o
tent -Type ntent-Type-Options
tent -Lengt $S-Protection: 1; m
1i Referer: http smartbanking bidv com vn/dang-nhap 2 Pragma: no-cache
¡2 Sec-Fetch-Dest: empty Expires: 0
3 Sec-Fetch-Mode: cors 4 X-Frame-Optior
Sec-Fetch-8ite: same-origin| 5 Server: BIDV
15 Te: trailers 16 Content-Length:
nection: close
ens
"'$q xgHwB xSWEYVHiMmu lad 4DCOCE gR3bGKHKGnV2aF nW2pF 6qH/2q3z8t ShoOgEePvy
OEUCULGE /t 7z5y1nRT2SEOhGSghBDyo=",
nan:
"V¥n68iimJoHuft Lvx363LdZsmnOcMNCW£Cdbkd+nIm3vadbOkaF fev7I£CnIbLbK1lsp
SGETnf q2HbSOaKkvVd pOvy 2xSKAiai VNMPqLASeGqzIZ10BZcUR tt SSZBb8CDK7Se6Kb71Di + U+qvMRIOeWNNEFen 1qE20Zqiol Saaa0xhNqvpéUMQunGVr
BzROVWCaxiwptHs/E/fTOWXOUmiyBxjpof vCSew4wo PyRgdg0/ d6kgwe 17CwdUCJ32aw8C3 Wiw4WbdJcxqEW+CLT SCnHje PCSYMg+ZdYyR7C/ TsmbA=="
E/ qnQ3aAc4T4m+ Sa ScRFudcJ INKZE1lyW3iJ1wGxZhn15B7bLVyEhzDGd1GSaGBnnSkwAv
"oPReLEJ7iLVGRpCjAKLY 1KjNSMz Laco P2upnadSYWMo f Le vShbB Zo DAo PDAXSEXvb4pLn
/$qj01Za5nwfzv4QuiAL/IASAIVCewkKCpoGAPGz8T/0oGDFs8Bb1YgduuLVAcWVt24t 6f#o
10T?vn4ZE5xD7hU2Bgu9zW jmamdzA£UEz£fktYvNsW12gWNyqhh0rii+A58U13)ZG£im3QyV.
3U8%85 OypsMTE90V2kz PgOKH4D1V5 PWhpw45 00Ao UpOWYRk 4AYLO PRwLyRZYUOfw}YH7Pu
nKW9 6B QOkwe Zd0 jsCx6nuS9s9EULsAryDEAOLBP7ekS2¥y9 0AGbnVnuvSn1opo=="
@@ <3 | search | ohighlights (2) {03 € ||) searc © _ Ohighlights
Hình 2.10 Request và response bị mã hóa trên website ngân
hàng BIDV
”2m ~
2.1.2 Quá trình mã hóa và giải mã trên website
Trong suốt quá trình gửi và nhận thông điêp giữa máy chủứng dụng (server) và trình duyêt (client), các thông điêp đềuđược mã hóa trước khi truyền đi và đảm bảo chỉ bên nhận mới
có thể thực hiên giải mã thông diép đó Mỗi khi trình duyêt gửiyêu cầu (request) tới máy chủ web, trình duyêt sẽ thực hiên
viêc mã hóa request body sau đó gửi thông điêp ở dạng bản mã
dung.
Tran Anh Đức — B19DCAT047 18
Trang 33Đồ án tốt nghiệp Chương 2
(1)Ở phía Client, request body ban đầu ở dạng bản rõ sẽ
được mã hóa bằng khóa bí mật AES được sinh bởi trình
duyêt.
(2)Khóa bí mật AES của client được mã hóa bằng khóa công
khai RSA của máy chủ ứng dụng web Khóa công khai
RSA này là khóa mặc định và được gửi cho Client mỗi khi
trang web được truy cập trên trình duyêt.
(3)Khi đó request body được gửi tới phía Server sẽ bao gồm
khóa AES được mã hóa và request body gốc được mã
hóa.
(4)Phía Server sau khi nhận được request sẽ sử dụng khóa
bí mật RSA để giải mã và có được khóa bí mật AES của
Client.
(5)Server dùng khóa AES này để giải mã phần còn lại trong
request body và có được request body ở dạng bản rõ ban
đầu
Trong request body nay sẽ chứa môt giá trị là khóa công khai RSA của Client Sau khi xử lý request, máy chủ web sẽ thực
hiên sinh khóa bí mật AES để mã hóa response body và dùng
khóa công khai RSA của Client để mã hóa khóa AES
Original —) Encrypted =) anginal
Response Body Response Body Response BodyEncrypt Decrypt
Webserver Client
Hình 2.13 So đồ chi tiết quá trình mã hóa - giải mã response
body
Trần Anh Đức — B19DCAT047 20
Trang 34Đồ án tốt nghiệp Chương 2
Quá trình mã hóa và giải mã response body được mô tả như
Sau:
(1)Ở phía Server, sau khi xử ly request thi response body
ban đầu ở dang ban rõ sẽ được ma hóa bằng khóa bi mật
AES được sinh bởi máy chủ web.
(2)Khóa bí mật AES của Server được mã hóa bằng khóa
công khai RSA của phía Client Khóa công khai RSA này
là khóa được phía Client gửi thông qua request body.
(3)Khi đó response body được gửi tới phía Client sẽ bao
gồm khóa AES được mã hóa và response body gốc được
mã hóa.
(4)Phía Client sau khi nhận được response sẽ sử dụng khóa
bí mật RSA để giải mã và có được khóa bí mật AES của
Server.
(5) Client dùng khóa AES này để giải mã phần còn lại trong
response body và có được response body ở dạng bản rõ.
2.2 Quy trình kiểm thử xâm nhập website có mã hóa
Khi thực hiên kiểm thử xâm nhập web, người kiểm thử cầnthực hiên sửa đổi các tham số được truyền trong request bodytrước khi gửi đến máy chủ ứng dụng web Từ đó, người kiểm thử
có thé dựa vào viéc quan sát response body do webserver trả
về để biết được chức năng hay API đó có thực sự tồn tại lỗ hổng
hay không Nhưng đối với những website có mã hóa, do request
body đã được mã hóa trước khi gửi đến server, người kiểm thử
sẽ không thể thực hiên dò quét hay tấn công nếu không có đượcrequest body ở dạng bản rõ Vì vậy, đồ án đưa ra môt quy trìnhkiểm thử xâm nhập cải tiến để người kiểm thử có thể thực hiênkiểm thử những website có mã hóa này Quy trình kiểm thử cảitiến sẽ thực hiên theo 6 giai đoạn tương tự với quy trình kiểm
thử thông thường:
- Giai đoạn 1: Khảo sát, thu thập thông tin về mục tiêu
- Giai đoạn 2: Dò quét điểm yếu
- Giai đoạn 3: Xác minh lỗ hổng và tấn công kiểm thử
- Giai đoạn 4: Đánh giá mức đô nguy hiểm các lỗ hổng
- Giai đoạn 5: Báo cáo và khuyến nghị
Trần Anh Đức — B19DCAT047 21
Trang 35Đồ án tốt nghiệp Chương 2
- Giai đoạn 6: Tái đánh gia
Tuy nhiên, trong các giai đoạn 1, 2, 3 do các request body trong API của website đã bị mã hóa nên các bước, cách thức thực hiên
kiểm thử trong ba giai đoạn này sẽ khác so với quy trình kiểm
thử thông thường.
Trong giai đoạn đầu tiên - Khảo sát, thu thập thôngtin về mục tiêu, ngoài những thông tin về phiên bản hê điều
hành webserver, ngôn ngữ của ứng dụng web, tên miền thì
người kiểm thử cần thực hiên thu thập thêm thông tin về thư
viên mã hóa, thuật toán mã hóa - giải mã, các khóa mã hóa và các request body ở dạng bản rõ mà ứng dụng web đó xử lý Đây
là những thông tin quan trọng, làm tiền dé giúp người kiểm thử
có thể thực hiên tiếp các giai đoạn còn lại trong quy trình kiểm
thử xâm nhập website có mã hóa.
Do các request body được mã hóa trước khi gửi đến
webserver nên có thể suy luận rằng: “việc mã hóa được thực
hiện bởi một hàm mã hóa JavaScript trên trình duyệt (phía
client) rồi gửi request tới server” Mỗi khi trình duyêt truy cậpđến trang web, phía server sẽ trả về cho trình duyêt các fileJavaScript để thực hiên viéc xử lý mã hóa - giải mã trên trình
duyêt Do vậy, để thu thập được các thông tin liên quan về mã
hóa như thư viên, thuật toán mã hóa, khóa mã hóa và request
body ở dạng bản rõ, người kiểm thử sẽ thực hiên theo các bước
sau:
- Bước 1.1: Đọc source code javascript của trang
web
Người kiểm thử sẽ thực hiên đọc source code JavaScript
của trang web trên trình duyêt và tìm kiếm các hàm mã
hóa, giải mã theo các từ khóa như encrypt, decrypt,
AES, RSA, encode để tìm vị trí của hàm mã hóa - giải
mã, thông tin về thuật toán mã hóa và khóa mã hóa mà
ứng dụng sử dụng.
Trần Anh Đức — B19DCAT047 22
Trang 36Đồ án tốt nghiệp Chương 2
GO Inspector Console © Debugger NN Network {} Style Editor (2) Performance 4 Memory € Storage Ff Accessibility 888 Application ú
Sources Outline Search [8] {) main-es2015.6 js?v=2.5.0.27 X main-es2015.6 js?v=2.5.0.27 143-es2015.f6 69cd1309985./s » BỊ
© Main Thread encrypt (1) {
© smartbanking bidv.com.vn n = a.random.getBytesSync(32),
»›
0 = a.pki.publickeyFromPem(a.util.decode64(this.defaultPublickey)).encrypt(a.util.encode64(n));
return {
d: i.toString('base64"), k: a.util.encode64(o)
Hình 2.14 Source code JavaScript của website ngân hàng BIDV
- Bước 1.2: Đánh các breakpoint trên source code
JavaScript và chạy debug trên trình duyệt
Breakpoint là điểm đánh dấu tại các điểm, các dòng cụthể trong mã nguồn giúp dừng thực thi mã và người kiểmthử có thể kiểm tra trạng thái của mã tại vị trí đó và tiếp
tục thực thi từng dòng mã Trong hàm mã hóa request
body, người kiểm thử thực hiên đánh các breakpoint tại
các dòng code trên file script xử lý đầu vào để bật chế
đô debug trên trình duyệt Việc chạy debug sẽ giúp
người kiểm thử biết được đầu vào của hàm mã hóa ở
dạng bản rõ là gì, đầu ra là gì, cách xử lý thuật toán của
hàm.
Trần Anh Đức — B19DCAT047 23
Trang 37Đồ án tốt nghiệp Chương 2
[4] {}) main-es2015.6 js?v=2.5.027 X main-es2015.6 js?v=2.5.0.27 143-es2015.f6 69cd1309985.Js » BỊ]
encrypt(1) { try {
4507 const n = a.random.getBytesSync(32), n: "¿Í»ù¡Z\u9816}P\u9984*\u99844B\u9982\09817k+\u809e01u988f*Ï\u9886ÄX\U8985\u8989566£
4508 u = a.random.getBytesSync(16); u: "\u@@1d2« p\uee92\uee05+y6 'Ũuoú\u@ðec”
Hình 2.15 Request body ở dạng bản rõ khi chạy chế độ debug
- Bước 1.3: Tìm kiếm các thư viện mã hóa được sử
a2
dụng và viết lại script mã hóa - giải mã
Sau khi đã đọc và hiểu rõ luồng xử lý của hàm mã hóa,người kiểm thử cần tìm hiểu về thư viên mã hóa mà ứng
dụng sử dụng và tên của gói thư viên và thư viên thực
thi trên môi trường nào Do viêc mã hóa chủ yếu dựatrên sự kết hợp giữa thuật toán RSA và AES nên các thư
viên và script mã hóa sẽ thường chỉ thực thi được với
môi trường runtime của NodeJS Vì vậy người kiểm thử
cần tải về node_modules tương ứng với các thư viên mãhóa và sau đó thực hiên viết lại script mã hóa - giải mã
để phục vụ cho các giai đoạn kiểm thử sau này
Trong giai đoạn thứ 2 - Dò quét điểm yếu đối với
website thông thường, khi người kiểm thử sử dụng các công cụ
rà quét điểm yếu như Acunetix hay Nesuss thì các công cụ này
sẽ tự đông sửa đổi, chèn các đoạn payload khai thác vào trong
các param hoặc body của request sau đó gửi các request này
tới ứng dụng và dựa vào request body để xác định điểm yếu, lỗ
hổng Đối với website có mã hóa, các công cụ rà quét sẽ khôngthể xác định được vị trí, tham số để sửa đổi hoặc chèn payload
vào request Ứng dụng web sẽ không thể giải mã, xử lý và phản
hổi các request rà quét này do các giá trị trong request body
Trần Anh Đức — B19DCAT047 24
Trang 38Đồ án tốt nghiệp Chương 2
không được thực hiên mã hóa đúng cách Do đó, người kiểm thửkhông thể sử dụng các công cụ rà quét này để dò quét và pháthiên các lỗ hổng bảo mật Phương pháp thực hiên dò quét cácwebsite có mã hóa sẽ được đề cập đến trong nôi dung phần 2.3.Các phương pháp kiểm thử website có mã hóa
Trong giai đoạn 3 - Xác minh và tấn công kiểm thử,
người kiểm thử có thể thực hiên khai thác, kiểm thử các tínhnăng tại giao diên web trên để xác định tính năng đó có tồn tại
lỗ hổng bảo mật hay không Trong môt số trường hợp, ngườikiểm thử không thể khai thác lỗ hổng trên giao diên web nhưng
khi tấn công khai thác qua API thì có thể tấn công thành công lỗ
hổng Ví dụ đối với lỗi kiểm tra dữ liêu đầu vào, trên giao diênweb ứng dụng không cho phép người dùng nhập số âm nhưngkhi gọi qua API thì người dùng có thể nhập được số âm Vì vậykhi tấn công kiểm thử đối với web mã hóa, để có thể xác định lỗhổng thông qua API, người kiểm thử cần thực hiên các bước sau:
- Bước 3.1: Thực hiện sửa đổi, chèn payload vào
request body ở dạng bản rõ
- Bước 3.2: Mã hóa request body và gửi request tới
server
- Bước 3.3: Giải mã response body trả về từ server
- Bước 3.4: Quan sát response body bản rõ và phân
tích, xác định lỗ hổng
(Thông tin về thuật toán và script mã hóa - giải mã,
request body ở dạng bản rõ đã được thu thập trong Giai
đoạn Khai thác, thu thập thông tin về mục tiêu)
Đối với các giai đoạn 4, 5, 6 là giai đoạn hậu kiểm thử xâmnhập, người kiểm thử có thể thực hiên, triển khai các bước
tương tự như trong quy trình kiểm thử xâm nhập website thông
thường.
2.3 Các phương pháp kiểm thử website có mã hóa
Như đã đề cập trong quy trình kiểm thử xâm nhập cải tiến,
người kiểm thử sẽ không thể thực hiên rà quét hoặc tấn công lỗhổng trên website có mã hóa theo cách thông thường mà phải
kết hợp với môt số phương pháp kiểm thử web mã hóa khác
Trần Anh Đức — B19DCAT047 25
Trang 39Đồ án tốt nghiệp Chương 2
Hiên nay có 2 phương pháp phổ biến được sử dụng là phương
pháp thủ công với công cụ BurpSuite và phương pháp sử dụng ứng dụng Postman.
2.3.1 Phương pháp thủ công với công cụ Burp Suite
Sau giai đoạn Khảo sát, thu thập thông tin về mục tiêu,người kiểm thử đã viết được các đoạn script để thực hiên mã
hóa request body và giải mã response body Đối với phương
pháp này, người kiểm thử sẽ sử dụng công cụ Burp Suite để
thực hiên kiểm thử kết hợp với viêc thực hiên thủ công từng
bước chạy script mã hóa, giải mã trong giai đoạn Xác minh và
tấn công kiểm thử của quy trình kiểm thử xâm nhập cải tiến
Phương pháp này chủ yếu được sử dụng để tấn công khai thác,chưa phù hợp để rà quét lỗ hổng ứng dụng do không thể sửa
đổi, mã hóa - giải mã request hàng loạt
2.3.1.1 Giới thiệu về công cụ Burp SuiteBurp Suite là môt công cụ kiểm thử bảo mật phần mềm,phát triển bởi PortSwigger, được sử dụng rông rãi trong lĩnh vựckiểm thử bảo mật ứng dụng web Burp Suite cung cấp nhiều
tính năng mạnh mẽ giúp phân tích và tấn công khai thác lỗ
hổng trên ứng dụng web Công cụ này có thể được sử dụng đểthực hiên các hoạt đông như kiểm thử lỗ hổng bảo mật, rà quét,phát hiên và khai thác các lỗ hổng, theo dõi và ghi lại các yêu
cầu và phản hồi HTTP/S
Các tính năng chính của Burp Suite bao gồm:
- Proxy: cho phép người dùng chuyển hướng các yêu cầu
HTTP/S giữa trình duyêt và máy chủ ứng dụng để kiểm
tra và chỉnh sửa dữ liêu trước khi gửi đi Điều này giúp
phát hiên và khai thác các lỗ hổng bảo mật
- Scanner: công cụ Scanner của Burp Suite có thé tự đông
rà quét, phát hiên các lỗ hổng bảo mật trong ứng dụngweb, bao gồm các lỗ hổng phổ biến như XSS (Cross-Site
Scripting), SQL Injection, và CSRF (Cross-Site Request
Forgery).
- Intruder: tính năng này giúp thực hiên các cuôc tấn công
được tùy chỉnh trên các yêu cầu HTTP theo các kịch bản
Trần Anh Đức — B19DCAT047 26
Trang 40Đồ án tốt nghiệp Chương 2
khác nhau như tấn công Brute force theo từ điển, DoS
để kiểm tra tính bảo mật của ứng dụng
- Repeater: cho phép người kiểm thử tái tạo các yêu cầu
HTTP trước đó và thay đổi dữ liêu để thử nghiêm và
kiểm tra tác đông của các thay đổi này đến ứng dụng
- Decoder: gồm các công cụ giải mã để xem các thông tin
bảo mật đã được mã hóa, như Base64, URL-encoded,
HTML encoded và nhiều kiểu mã hóa khác
2.3.1.2 Thực hiện kiểm thử
Bước 3.1: Thực hiện sửa đổi, chèn payload vào
request body dạng bản rõ
Người kiểm thử thực hiên sửa đổi các trường của request
body ở dạng bản rõ dưới dạng 1 đối tượng JSON Trong requestbody có chứa môt tham số clientPubKey là khóa công khai RSA,
server sử dụng khóa này để mã hóa trong response trả về cho
client Phía người kiểm thử sẽ sử dụng khóa bí mật RSA để giải
mã response body được trả về Do vậy, người kiểm thử cần thực
hiên tạo 1 cặp khóa bất đối xứng RSA
1024 v Generate key pair
Private key Public key
-BEGIN RSA PRIVATE KEY = nn BEGIN PUBLIC
KEY -MITChiwIBAAKBgQDEc4MYex4vr72ieV2zCr2w7H4z3cLADIMxsOG1w6VUSC7Xj58C MIGFMAQGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDECAMYex4vr72ieV2zCr2w7Haz
3c1ADTMxs@G1w6VUSC7Xj58CMw@UnBLiiTuNx3H/STDJ1VHhqg2k40dnqu13ChLJs
'VnR7121iTrE+oxJiYrBE1etcX3Z2Dkoaxk1tCAB28XGNFLGqUYdNsFJEZukK1h/p ALq1FrL8mkXeY@OtKQIDAQAB
END PUBLIC KEY.
nh END RSA PRIVATE
KEY -Hình 2.16 Khởi tạo cặp khóa bất đối xứng RSA
Khóa RSA công khai vừa tạo sẽ được truyền vào trong
request body Với request đăng nhập trên website, request
body sẽ chứa các tham số bắt buôc như tài khoản (user), mật
khẩu (pin), mã captcha, captcha token Người kiểm thử sẽ thực
hiên thay đổi giá trị của các tham số này để thực hiên tấn công
Trần Anh Đức — B19DCAT047 27