Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
          
        
            
               
            
 
            
                
                     Giúp người đọc nhận thức được tầm quan trọng của 
bảo mật ứng dụng Web. 
 Giới thiệu một 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. 
 Đưa ra báo cáo đánh giá vềan toàn thông tin cho 
Website. 
Hướng nghiên cứu tiếp theo của luận văn: 
 Nghiên cứu, tìm hiểu hơn nữa các lỗhổng bảo mật 
trong ứng dụng Web. 
 Xây dựng chương trình đánh giá mức độbảo mật 
Website.
                
              
                                            
                                
            
 
            
                 26 trang
26 trang | 
Chia sẻ: lylyngoc | Lượt xem: 3663 | Lượt tải: 5 
              
            Bạn đang xem trước 20 trang tài liệu Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 
2 
Luậ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 
Người hướng dẫn khoa học: PGS TS Lê Mỹ Tú 
Phản biện 1: TS Phạm Thanh Giang 
Phản biện 2: TS Hoàng Xuân Dậu 
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận 
văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn 
thông 
Vào lúc: 13 giờ 30 ngày 15 tháng 02 năm 2014 
Có thể tìm hiểu luận văn tại: 
- Thư viện của Học viện Công nghệ Bưu chính Viễn 
thông 
3 
LỜI NÓI ĐẦU 
Ngày nay, ứng dụng Web đã có mặt trong hầu hết 
mọi lĩnh vực của cuộc sống hiện đại. Cùng với sự phát 
triển nhanh chóng của ứng dụng Web thì vấn đề bảo mật 
ứng dụng Web đang là lĩnh vực vô cùng nóng hổi nhằm 
đảm bảo an toàn cho tất cả người dùng ứng dụng. Vậy nếu 
có một lỗi bảo mật xảy ra trong ứng dụng Web thì điều 
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. 
4 
Chươ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 
dụng Web 
1.2.3 Các lược đồ mã hóa (Encoding Schemes) 
1.3 Cơ chế phòng thủ trong ứng dụng Web 
+ Xử lý truy cập người dùng 
+ Xử lý đầu vào người dùng 
+ Xử lý kẻ tấn công 
+ Quản lý ứng dụng 
3 
1.4 Các rủi ro thường gặp trong ứng dụng Web 
 Lỗi nhúng mã 
 Hư hỏng cơ chế chứng thực và quản lý phiên làm 
việc 
 Thực thi mã script xấu 
 Đối tượng tham chiếu thiếu an toàn 
 Sai sót trong cấu hình bảo mật 
 Phơi bày dữ liệu nhạy cảm 
 Thiếu chức năng điều khiển mức truy cập 
 Giả mạo yêu cầu (Cross Site Request Forgery) 
 Sử dụng các thành phần dễ bị tổn thương đã biết 
 Chuyển hướng và chuyển tiếp thiếu thẩm tra 
4 
Chươ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): 
 Sự khác nhau dựa trên URL 
 Các cổng không tiêu chuẩn 
 Máy chủ ảo 
5 
2.1.5 Phân tích thông báo lỗi 
Thông báo lỗi có thể được tạo ra bằng cách yêu cầu 
một URL không tồn tại. Thông báo lỗi có thể cho thấy 
những thông tin về phiên bản máy chủ Web, hệ điều hành, 
môđun và các sản phẩm khác được sử dụng. Thông báo lỗi 
này này cung cấp thông tin hữu ích về ứng dụng. 
2.2 Quy trình kiểm tra việc quản lý cấu hình trong ứng 
dụng Web 
2.2.1 Kiểm tra SSL/TLS 
a/ Kiểm tra giá trị chứng chỉ SSL 
Bằng cách nhấp vào ổ khóa xuất hiện trong cửa sổ 
trình duyệt khi truy cập vào một trang Web https, có thể 
xem thông tin liên quan đến chứng nhận. Nếu ứng dụng 
yêu cầu một chứng chỉ client, có thể cài đặt để truy cập. 
Thông tin chứng chỉ có sẵn trong trình duyệt bằng cách 
kiểm tra các chứng chỉ liên quan trong danh sách các 
chứng chỉ được cài đặt. 
b/ Kiểm tra các thông số kỹ thuật và thủ tục mật mã 
SSL/TLS đối với site 
6 
Sử 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 được 
xem 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 
trì, bảo dưỡng các thành phần khác nhau. 
 Các hệ thống xác thực, nếu có, cần phải xem xét để 
đảm bảo rằng chỉ phục vụ nhu cầu của các ứng 
dụng và không bị thao tác bởi người dùng bên 
ngoài để leo thang truy cập. 
 Danh sách các cổng xác định cho các ứng dụng cần 
được duy trì và tuân thủ dưới sự kiểm soát. 
72.2.3 Kiểm tra quản lý cấu hình ứng dụng
Kiểm tra các file và thư mục mẫu 
Xem xét lời chú thích 
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 
82.2.3 Kiểm tra quản lý cấu hình ứng dụng
2.2.6 Kiểm tra giao diện quản trị 
 Liệt kê tập tin và thư mục 
 Các ghi chú và liên kết trong Source 
 Xem xét lại tài liệu máy chủ và ứng dụng 
 Lựa chọn cổng máy chủ khác 
2.2.7 Kiểm tra các phương thức HTTP 
Phương pháp kiểm tra rất đơn giản là sử dụng 
netcat (hoặc telnet). 
2.3 Quy trình kiểm tra tính xác thực trong ứng dụng 
Web 
2.3.1 Kiểm tra thông tin xác thực được truyền qua kênh 
mã hóa 
Sử dụng WebScarab để bắt giữ header các gói tin 
và kiểm tra chúng. 
 Gửi dữ liệu với phương thức POST qua HTTP 
 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:  
 John the Ripper:  
 Brutus  
2.3.5 Kiểm tra việc bỏ qua lược đồ xác thực 
Một số phương pháp vượt qua lược đồ xác thực: 
 Thay đổi tham số 
10 
 Trực tiếp yêu cầu một trang được bảo vệ thông qua 
address bar trong trình duyệt. 
 Dự đoán Session ID 
 SQL Injection 
2.3.6 Kiểm tra điểm yếu trong việc xác lập lại và lưu giữ 
lại mật khẩu 
2.3.7 Kiểm tra việc đăng xuất và quản lý bộ nhớ cache 
của trình duyệt 
2.4 Quy trình kiểm tra quản lý phiên trong ứng dụng 
Web 
2.4.1 Kiểm tra lược đồ quản lý phiên 
 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 
 Kiểm tra khả năng mã hóa và tái sử dụng session 
token 
 Kiểm tra khả năng lưu trữ trong bộ nhớ cache 
 Kiểm tra phương thức gửi dữ liệu 
2.5 Quy trình kiểm tra tính ủy quyền trong ứng dụng 
Web 
2.5.1 Kiểm tra khả năng tấn công Path Traversal 
12 
Tấn công Path Traversal nhằm mục đích truy cập 
các tập tin và thư mục được lưu trữ bên ngoài thư mục 
Web root. Bằng cách duyệt ứng dụng, kẻ tấn công tìm 
kiếm các liên kết tới các tập tin được lưu trữ trên máy chủ 
Web. Do đó cần phải liệt kê tất cả các phần của ứng dụng 
mà chấp nhận nội dung từ người sử dụng. 
2.5.2 Kiểm tra khả năng vượt qua lược đồ ủy quyền 
Sử dụng một proxy (WebScarab) sửa đổi các tham 
số (userID, groupID,…) để có thể truy cập vào các chức 
năng không được phép. 
2.6 Quy trình kiểm tra tính logic trong giao dịch 
Phát hiện ra lỗ hổng bảo mật logic vẫn luôn là một 
nghệ thuật. Ở đây đưa ra một phương pháp tiếp cận bao 
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 
13 
2.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. 
2.7.2 Kiểm tra lỗi SQL Injection 
Phát hiện SQL Injection 
Việc kiểm tra SQL injection cần một lượng lớn các 
truy vấn. Tester có thể cần một công cụ tự động để khai 
thác lỗ hổng như SQLDumper, CAL 9000, ... đồng thời có 
thể kết hợp với một số thao tác thủ công thông qua các 
testcase. 
2.7.3 Kiểm thử OS Commanding 
14 
Cung cấp các lệnh hệ thống hoạt động thông qua 
đầu vào một giao diện web. 
2.7.4 Kiểm thử Code Injection 
Chèn một mã chương trình vào các đầu vào được 
máy chủ web xử lí như các tập tin. 
2.8 Quy trình kiểm tra việc từ chối dịch vụ trong ứng 
dụng Web 
2.8.1 Kiểm tra khả năng tấn công SQL Wildcard 
Gửi chuỗi dữ liệu gồm một số kí tự đại diện qua 
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 
15 
Sử 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 
 Sử dụng Wireshark hay WebScarab để nắm bắt lưu 
lượng http. 
 Sử dụng TCPReplay để bắt đầu tấn công replay. 
2.10 Giới thiệu một số mẫu biểu báo cáo 
Báo cáo được khuyến nghị gồm ba phần sau: 
 Báo cáo tóm tắt 
 Tổng quan về quản lý kỹ thuật 
 Kết quả đánh giá 
16 
Chương 3 – TRIỂN KHAI THỬ NGHIỆM 
3.1 Đặt vấn đề 
Để hạn chế về trách nhiệm pháp lý, việc triển khai 
thử nghiệm sẽ áp dụng với các site nước ngoài, cụ thể là 
3.2 Áp dụng quy trình kiểm tra 
3.2.1 Thu thập thông tin về ứng dụng Web 
Kiểm tra tập tin robots.txt của site: 
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 
17 
Khá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 
18 
Phâ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 
3.2.2 Kiểm tra quản lý cấu hình trong ứng dụng Web 
Giao diện quản trị được truy cập qua URL: 
Lập cấu trúc ứng dụng site: 
Hình 3.7: Cấu trúc site với công cụ Httptrack 
19 
3.2.3 Kiểm tra tính xác thực trong ứng dụng web 
Thông tin xác thực không được truyền qua kênh mã hóa. 
Liệt kê người dùng: 
Hình 3.9: Kiểm thử với username và mật khẩu hợp lệ 
Hình 3.10: Kiểm thử với username hợp lệ và mật khẩu sai 
20 
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 
21 
Bỏ 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 
22 
Hình 3.16: Người dùng có thể upload file 
3.2.6 Kiểm tra tính hợp lệ của dữ liệu 
Kiểm tra lỗ hổng XSS: 
Hình 3.17: Site có lỗi XSS 
23 
Kiểm tra lỗi SQL injection: 
Hình 3.18: Site có lỗi SQL Injection 
3.3 Đánh giá kết quả 
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. 
24 
KẾT LUẬN 
Việc nghiên cứu tìm hiểu về quy trình kiểm tra bảo 
mật ứng dụng Web sẽ đóng góp một phần vào việc đánh 
giá và bảo đảm an toàn thông tin cho Website, đáp ứng 
nhu cầu cấp thiết về an ninh bảo mật hiện nay. 
Kết quả thu được của luận văn: 
 Giúp người đọc nhận thức được tầm quan trọng của 
bảo mật ứng dụng Web. 
 Giới thiệu một 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. 
 Đưa ra báo cáo đánh giá về an toàn thông tin cho 
Website. 
Hướng nghiên cứu tiếp theo của luận văn: 
 Nghiên cứu, tìm hiểu hơn nữa các lỗ hổng bảo mật 
trong ứng dụng Web. 
 Xây dựng chương trình đánh giá mức độ bảo mật 
Website. 
            Các file đính kèm theo tài liệu này:
 ttlv_bui_viet_thang_7122.pdf ttlv_bui_viet_thang_7122.pdf