1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÙI VIỆT THẮNG NGHIÊN CỨU VỀ QUY TRÌNH
KIỂM TRA BẢO MẬT ỨNG DỤNG WEB
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI – 2013
2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN
THÔNG
này có thể ảnh hưởng tới tất cả người dùng, ảnh hưởng tới
uy tín của công ty, tổ chức đó, gây mất mát về mặt tài
chính và các ràng buộc về pháp lý,…
Luận văn “Nghiên cứu tìm hiểu về quy trình kiểm
tra bảo mật ứng dụng Web” sẽ đáp ứng phần nào nhu cầu
cấp thiết về an ninh bảo mật hiện nay. Xây dựng nên quy
trình phục vụ cho việc kiểm tra và phát hiện các điểm yếu
an toàn thông tin trong ứng dụng Web, từ đó đưa ra báo
cáo đánh giá về an toàn thông tin cho Website.
4Chương 1 – TỔNG QUAN VỀ AN NINH AN
TOÀN ỨNG DỤNG WEB
1.1 Khái niệm ứng dụng Web
Ứng dụng Web là các chương trình máy tính cho
phép người dùng Website đăng nhập, truy vấn vào ra dữ
liệu qua mạng Internet/Intranet trên trình duyệt Web của
người dùng. Dữ liệu sẽ được gửi tới người dùng trong
trình duyệt theo kiểu thông tin động từ ứng dụng Web qua
một Web Server.
1.2 Các công nghệ dùng trong ứng dụng Web
1.2.1 Giao thức HTTP
1.2.2 Công nghệ được sử dụng trong chức năng của ứng
4Chương 2 – QUY TRÌNH KIỂM TRA BẢO MẬT
ỨNG DỤNG WEB
2.1 Quy trình kiểm tra việc thu thập thông tin từ ứng
dụng Web
2.1.1 Spiders, Robots, và Crawlers
Trên URL, gõ thêm “/robots.txt” ngay sau địa chỉ
của site sẽ thu được nội dung của tập tin robots.txt.
2.1.2 Sử dụng công cụ tìm kiếm
Sử dụng toán tử tìm kiếm (site, cache…) có thể hạn
chế kết quả tìm kiếm của Google cho một tên miền cụ thể.
2.1.3 Fingerprint ứng dụng Web
Sử dụng Httprecon để fingerprint ứng dụng web.
2.1.4 Khám phá ứng dụng
Ba yếu tố ảnh hưởng đến việc có bao nhiêu ứng
dụng liên quan đến một DNS nhất định (hoặc địa chỉ IP):
SSL/TLS đối với site
6Sử dụng nmap để xác định các dịch vụ SSL.
Sử dụng SSLDigger để kiểm tra các giao thức và
mật mã hỗ trợ.
2.2.2 Kiểm tra quản lý cấu hình cơ sở hạ tầng
Để kiểm tra cơ sở hạ tầng quản lý cấu hình, những
bước sau cần được thực hiện:
Các thành phần khác nhau tạo nên cơ sở hạ tầng
cần được xác định để hiểu cách chúng tương tác
với một ứng dụng Web và cách chúng ảnh hưởng
đến an ninh.
Các thành phần của cơ sở hạ tầng cần phải
đượcxem xét để đảm bảo không có bất kỳ lỗ hổng nào.
Cần đánh giá lại bằng các công cụ quản trị để duy
2.2.4 Kiểm tra việc xử lý phần mở rộng tập tin
Để xác định các tập tin có phần mở rộng nhất định,
một kỹ thuật kết hợp là sử dụng máy quét lỗ hổng
(Nesuss, Nikto), công cụ mirroring (wget, curl, httrack) để
tải về cấu trúc trang Web nhằm xác định các thư mục Web
và cách các phần mở rộng tập tin riêng lẻ được phục vụ.
2.2.5 Kiểm tra các tập tin cũ, sao lưu, không được tham
chiếu
Kiểm tra các tập tin không được tham chiếu sử
dụng cả kỹ thuật tự động và thủ công, và thường liên quan
đến một sự kết hợp sau đây:
(i) Suy luận từ các sơ đồ đặt tên được sử dụng cho nội
dung xuất bản
(ii) Các đầu mối khác trong nội dung xuất bản
(iii) Phán đoán
(iv) Thông tin thu được thông qua lỗ hổng máy chủ và
cấu hình sai
8
2.2.3 Ki
ể
m tra quản l
ý
c
ấ
Gửi dữ liệu với phương thức POST qua HTTPS
Gửi dữ liệu với phương thức POST qua HTTPS
trên trang HTTP
9 Gửi dữ liệu với phương thức GET qua HTTPS
2.3.2 Kiểm tra việc liệt kê người dùng
Kiểm thử với username và mật khẩu hợp lệ.
Kiểm thử với username hợp lệ và mật khẩu sai.
Kiểm thử với một username không tồn tại.
Sau đó xem xét lại các thông tin phản
hồi.2.3.3 Kiểm tra phán đoán, từ điển tài khoản người
dùng
Sử dụng Burp Suit hay một số công cụ khác để tấn
công từ điển tài khoản người dùng.
2.3.4 Kiểm tra Brute Force tài khoản
Một số công cụ được dùng để thực hiện brute force:
THC Hydra: />
Sưu tập Cookie
Kỹ thuật đảo ngược Cookie
Thao tác sửa đổi Cookie
2.4.2 Kiểm tra các thuộc tính của cookies
Sử dụng WebScarab chặn tất cả các responses mà
một cookie được thiết lập bởi ứng dụng và kiểm tra các
thuộc tính của cookie có thể bị tổn thương sau:
Thuộc tính secure
11 Thuộc tính HttpOnly
Thuộc tính domain
Thuộc tính path
Thuộc tính expires
2.4.3 Kiểm tra lỗ hổng ấn định phiên
Gửi yêu cầu tới site được kiểm tra và xem xét
response trả lời (WebScarab). Nhận thấy rằng ứng dụng
thiết đặt một định danh phiên mới cho client. Tiếp theo,
nếu xác thực thành công tới ứng dụng mà không có cookie
mới được ban hành vào lúc xác thực thành công, điều này
có thể dẫn tới việc cướp phiên.
2.4.4 Kiểm tra khả năng để lộ các biến của phiên
gồm:
Tìm hiểu về ứng dụng
Thu thập dữ liệu để tạo các thử nghiệm logic
Thiết kế các thử nghiệm logic
Điều kiện tiên quyết tiêu chuẩn
Thực hiện các thử nghiệm logic
2.7 Quy trình kiểm tra tính hợp lệ của dữ liệu
132.7.1 Kiểm tra lỗ hổng XSS (Cross site scripting)
2.7.1.1 Kiểm tra lỗ hổng Reflected Cross Site Scripting
Công cụ được khuyến nghị dùng cho việc này là:
CAL 9000 và OWASP Xenotix XSS Exploit Framework
2.7.1.2 Kiểm tra lỗ hổng Stored Cross Site Scripting
Stored XSS có thể bị khai thác bởi các framework
khai thác trình duyệt như BeEF, XSS Proxy, …
2.7.1.3 Kiểm tra lỗ hổng DOM based XSS
Kiểm tra hộp đen đối với DOM based XSS thường
không được thực hiện vì truy cập vào mã nguồn luôn được
dùng.
tính năng tìm kiếm của ứng dụng.
2.8.2 Kiểm tra khả năng khóa tài khoản người dùng
Kiểm tra một tài khoản không thực sự khóa sau
một số lần nhất định đăng nhập thất bại.
2.9 Quy trình kiểm tra Web services
2.9.1 Thu thập thông tin về Web services
Sử dụng công cụ online để tìm kiếm WS công cộng
như là seekda Web Services Search Engine hay WSindex.
2.9.2 Kiểm tra về WSDL
15Sử dụng công cụ WSDigger để tự động hóa kiểm
tra an toàn WS.
2.9.3 Kiểm tra cấu trúc XML
Sử dụng công cụ WSDigger để chèn một dữ liệu
độc hại vào phương thức WS và xem kết quả ở đầu ra của
giao diện.
2.9.4 Kiểm tra lỗ hổng Replay
Hình 3.1: Truy cập tập tin robots.txt
Fingerprint ứng dụng web với httprecon:
Server: Apache
Version: 2.2.3
17Khám phá ứng dụng web:
Hình 3.3: Xác định các cổng và dịch vụ với nmap
Hình 3.4: Xác định các hostname trên cùng IP của site
18Phân tích thông báo lỗi:
Hình 3.5: Thông báo lỗi để lộ thông tin của site Hình 3.11: Kiểm thử với một username không tồn tại
Tấn công từ điển tài khoản người dùng:
Hình 3.12: Tấn công từ điển với Burp Suit
21Bỏ qua lược đồ xác thực:
Hình 3.13: Vượt qua lược đồ xác thực
Ứng dụng hoàn toàn tin tưởng vào địa chỉ email
trong việc xác lập lại và lưu giữ lại mật khẩu.
3.2.4 Kiểm tra quản lý phiên trong ứng dụng
Đăng nhập với 2 tài khoản khác nhau sau, thu được
hai PHPSESSID hoàn toàn trùng khớp.
3.2.5 Kiểm tra tính ủy quyền trong ứng dụng web
Vượt qua lược đồ ủy quyền
Thông qua việc kiểm thử thủ công kết hợp với tool
tự động, kết luận rằng trang web này có các lỗi XSS, SQL
Injection và nên mã hóa các thông tin nhạy cảm để đảm
bảo an toàn cho người truy cập trang web.