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

Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web

26 1,1K 2

Đ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

Định dạng
Số trang 26
Dung lượng 916,87 KB

Nội dung

Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web

Trang 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

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI – 2013

Trang 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

Trang 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

Trang 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

Trang 5

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

Trang 6

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

 Sự khác nhau dựa trên URL

 Các cổng không tiêu chuẩn

 Máy chủ ảo

Trang 7

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

Trang 8

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

Trang 9

2.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

Trang 10

2.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

Trang 11

 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: http://www.thc.org/thc-hydra/

 John the Ripper: http://www.openwall.com/john/

 Brutus http://www.hoobie.net/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ố

Trang 12

 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

 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

Trang 13

 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

Trang 14

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

Trang 15

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

Trang 16

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

Trang 17

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á

Trang 18

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à http://radarexpress.eu/

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

Trang 19

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

Trang 20

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: http://radarexpress.eu/admin/

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

Trang 21

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

Trang 22

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

Trang 23

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

Trang 24

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

Trang 25

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

Trang 26

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

Ngày đăng: 27/05/2014, 22:31

HÌNH ẢNH LIÊN QUAN

Hình 3.1: Truy cập tập tin robots.txt - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.1 Truy cập tập tin robots.txt (Trang 18)
Hình 3.3: Xác định các cổng và dịch vụ với nmap - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.3 Xác định các cổng và dịch vụ với nmap (Trang 19)
Hình 3.4: Xác định các hostname trên cùng IP của site - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.4 Xác định các hostname trên cùng IP của site (Trang 19)
Hình 3.7: Cấu trúc site với công cụ Httptrack - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.7 Cấu trúc site với công cụ Httptrack (Trang 20)
Hình 3.5: Thông báo lỗi để lộ thông tin của site - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.5 Thông báo lỗi để lộ thông tin của site (Trang 20)
Hình 3.10: Kiểm thử với username hợp lệ và mật khẩu sai - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.10 Kiểm thử với username hợp lệ và mật khẩu sai (Trang 21)
Hình 3.12: Tấn công từ điển với Burp Suit - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.12 Tấn công từ điển với Burp Suit (Trang 22)
Hình 3.11: Kiểm thử với một username không tồn tại - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.11 Kiểm thử với một username không tồn tại (Trang 22)
Hình 3.13: Vượt qua lược đồ xác thực - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.13 Vượt qua lược đồ xác thực (Trang 23)
Hình 3.17: Site có lỗi XSS - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.17 Site có lỗi XSS (Trang 24)
Hình 3.18: Site có lỗi SQL Injection  3.3 Đánh giá kết quả - Tóm tắt luận văn Thạc sỹ ngành Khoa học máy tính: Nghiên cứu về quy trình kiểm tra bảo mật ứng dụng web
Hình 3.18 Site có lỗi SQL Injection 3.3 Đánh giá kết quả (Trang 25)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w