Chương 1 - TONG QUAN VE AN NINH AN TOAN UNG DUNG WEB 1.1 Khái niệm ứng dung 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 q
Trang 1HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG
br
PK —=—==
—S ===
BUI VIET THANG
NGHIEN CUU VE QUY TRINH
KIEM TRA BAO MAT UNG DUNG WEB
Chuyén nganh: KHOA HQC MAY TINH
Mã so: 60.48.01.01
TOM TAT LUẬN VAN THAC SĨ
HÀ NỘI - 2013
Trang 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ÔNGNgười hướng dẫn khoa học: PGS TS Lê Mỹ Tú
Phản biện 1: TS Pham Thanh Giang Phan bién 2: TS Hoang Xuan Dau
Luận van sé được bao vệ trước Hội đồng chấm luậnvă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 3LỜI NÓI ĐẦU
Ngày nay, ứng dụng Web đã có mặt trong hầu hếtmọi lĩnh vực của cuộc sống hiện đại Cùng với sự pháttriể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 tat cả người dùng ứng dung Vậy nếu
có một lỗi bảo mật xảy ra trong ứng dụng Web thì điềunày có thể ảnh hưởng tới tất cả người dùng, ảnh hưởng tới
uy tin của công ty, tổ chức đó, gây mat mát về mặt tai
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ểmtra bảo mật ứng dụng Web” sẽ đáp ứng phần nào nhu cầucấp thiết về an ninh bảo mật hiện nay Xây dựng nên quytrì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 4Chương 1 - TONG QUAN VE AN NINH AN
TOAN UNG DUNG WEB
1.1 Khái niệm ứng dung 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
1.2.3 Các lược đồ mã hóa (Encoding Schemes)
1.3 Cơ chế phòng thủ trong ứng dụng Web
Z“_ Xử lý truy cập người dùng
* Xử lý đầu vào người dùng
* Xử lý kẻ tan công
* Quản ly ứng dung
Trang 51.4 Các rủi ro thường gap trong ứng dụng Web
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ậpGiả mạo yêu cau (Cross Site Request Forgery)
Sử dụng các thành phan dé bị ton thương đã biếtChuyên hướng và chuyền tiếp thiếu thâm tra
Trang 62.1.1 Spiders, Robots, va Crawlers
Trên URL, gõ thêm “/robots.txf” ngay sau dia chi
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ụ tim kiém
Sử dụng toán tử tìm kiếm (site, cache ) có thể hạnchế 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ử dung Httprecon dé fingerprint ứng dung web
2.1.4 Kham phá ứng dung
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 chi IP):
Sự khác nhau dựa trên URL
Các công không tiêu chuẩn
Máy chủ ảo
Trang 752.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ầumột URL không tồn tại Thông báo lỗi có thể cho thấynhữ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ỗinà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 quan ly cau 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
Bang cách nhấp vào 6 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ụngyêu cầu một chứng chi 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áchkiể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 8Sử dụng nmap dé xác định các dịch vu 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ý cau hình cơ sở hạ tang
Dé kiểm tra cơ sở hạ tầng quan 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ạ tangcầ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
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 972.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 mau
Xem xét lời chú thích
2.2.4 Kiểm tra việc xử lý phan mở rộng tập tin
Đề xác định các tập tin có phan mở rộng nhất định,một kỹ thuật kết hợp là sử dung máy quét lỗ hồng(Nesuss, Nikto), công cu mirroring (wget, curl, httrack) đểtai vé cau tric 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ộidung xuất bản
(ii) Các đầu moi khác trong nội dung xuất bản
(iii) Phan doan
(iv) Thông tin thu được thông qua lỗ hồng máy chủ và
cau hình sai
Trang 102.2.3 Kiếm tra quản lý cầu hình ứng dung
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ác2.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 tinh xác thực trong ứng dụng
trên trang HTTP
Trang 11Gui dt 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ử dung Burp Suit hay một số công cụ khác dé tancông từ dié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 12Trự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 diém yéu trong việc xúc lập lại va 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
Kỹ thuật đảo ngược Cookie
Thao tác sửa đổi Cookie2.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 ma
một cookie được thiết lập bởi ứng dụng và kiểm tra cácthuộc tính của cookie có thé bị ton thương sau:
Thuộc tính secure
Trang 13Thuộc tính HttpOnly
Thuộc tinh domain
Thuộc tinh path
Thuộc tinh expires
2.4.3 Kiểm tra lỗ héng an đị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 dung
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ó cookiemớ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à tai sử dung 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 14Tan 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 Bang cách duyệt ứng dụng, kẻ tan công timkiế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ộtnghệ 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ụngThu thập dữ liệu dé tạo các thử nghiệm logicThiế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 152.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 16 héng Stored Cross Site Scripting
Stored XSS có thé bi khai thác bởi các framework
khai thac trinh duyét nhu 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ườngkhông được thực hiện vì truy cập vào mã nguồn luôn được
testcase.
2.7.3 Kiểm thử OS Commanding
Trang 16Cung 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 SOL 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 saumộ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 dé 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 17Sử dụng công cụ WSDigger dé tự động hóa kiểm
tra an toàn WS.
2.9.3 Kiểm tra cau 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 dé bắt đầu tan 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 phan 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 183.2 Ap dung quy trinh 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:
Ư Opera aa
[404 Not Found
€ > 8 O& @ Web | radarexpress.eu/ robots.txt *| | Ra + Search with Goog |
Not Found
The requested URL /robots.txt was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle
the request.
Fingerprint ứng dung web với httprecon:
Server: Apache Version: 2.2.3
Trang 19| Hosts | Services | Nmap Output | Ports /Hosts Topology Host Details Scans |
os Host nmap “PN ~§T -sV -p0-65535 91.215.216.65 v Details
Not shown: 65533 filtered ports
PORT STATE SERVICE VERSION
21/tcp open ftp PureFTPd 80/tcp open http Apache httpd 443/tcp open http Apache httpd
Service detection performed Please report any incorrect results at http://nmap.org/submit/ Nmap done: 1 IP address (1 host up) scanned in
| » | 123.49 seconds
Hình 3.3: Xác định các cong và dich vụ với nmap
Domain - reports and all about ips, networks and dns - Opera
We are actively investigating your given hostname - please give us 10 to 30 seconds to look for more results.
You might send your query again by pressing reload on your browser!
Hinh 3.4: Xac dinh cac hostname trén cing IP cua site
Trang 20Phân tích thong báo lỗi:
Ư Opera || [| http:[liadarexpress.euj X + v
« > 8® ig) iy i//radarex fess, eu View oduct, phy iH id = 245 | [3] Y Search with Google |
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
4 version for the right syntax to use near AND pc_nght >= AND pe level <= AND pc level > 0
ORDER BYpc lef at line 7
y SELECT pc id, pc_name_en as pc_name FROM tbl_prod_cat WHERE pc _left <= AND pc tight
>= ANDpc level <= AND pc level > 0 ORDER BY pe left
fee R
3.2.2 Kiểm tra quản lý cau hình trong ứng dụng Web
Giao diện quan trị được truy cập qua URL: http://radarexpress.eu/admin/
Lập cấu trúc ứng dung site:
File Preferences filirror Log Window Help
Hình 3.7: Cấu trúc site với công cụ Httptrack
Trang 213.2.3 Kiểm tra tính xác thực trong ứng dung 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:
-Powered-By: PHP/5.2.17 pires: Thu, 19 Nov 1881 08:52:00 GMT
\Cache-Control: no-store, no-cache, must-ravalidate, post-check=0, pre-check=0
|Pragma: no-cache Content-Type: text/html -Cache: MISS from localhost
ioe e-Lookup: MISS from localhost3128
ja: 1.0 localhost (squid/3.1.19)
Hình 3.9: Kiểm thử với username va mật khẩu hợp lệ
WebScarab - conversation 134 “hi
Previ Next |134 -GET httpviwww.google-analytics.com:30/gajs 304 Not Modified
TTP/1.0 304 Not Modified
Date: Mon, 18 Nov 2013 03:19:33 GMT
ontent-Type: textjavascript pires: Mon, 18 Nov 2013 15:19:33 GMT
ast-Modified: Tue, 29 Oct 2013 19:33:51 GMT
Hình 3.10: Kiểm thử với username hợp lệ va mật khẩu sai
Trang 22WebScarab - conversation 59 “ai
| Previous Next | 58 - GET hffp:fwww.gooqgle-analytics.com:80/qajs 304 Not Modified
=,::::::::,,.,,ÉÉẺDPẺỆDÉDÉẺD0ÉẺÉDÉDÉỜẺDUÉDÉẺÉ0ÉẺÉẺUDUÉU0É0ÉẺÉẺ,Ẻ,,ẺẺÉ,Ẻ:ééÉÉẺ rẻ
ja: 1.0 localhost (squid/3.1.19)
onnection: keep-alive
-ManualEdit possibly modified
Hình 3.11: Kiểm thử với một username không tồn tại
Tan công từ dién tài khoản người dùng:
| Bil intruder attack 1 7 maa)
Attack Save Columns
{ Resuits | Tarvet | Positions | Payioads | Options
Fitter: Showing all items bả
Request 4 | Payloadi | Payload2 Status | Error | Timeout | Length | Welcome | |
Trang 23Hì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ỉ emailtrong 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 243.2.6 Kiểm tra tính hợp lệ của dữ liệu
` Online shop, Radar detectors, GPS, Xenon - Radar Express - Opera
uy Opera “3 Online shop, Radar dete * + =
« > X œ=Í[Í@ ittp: | /radarexpress.eu/cataloc Elements: 5/5 J(E- Search with Goor Ì
Trang 25© Online shop, Radar detectors, GPS, Xenon - Radar Express - Opera
UF opera [ Online shop, Radar dete » cl cS
« >> pa Web | radarexpress.eu/cataloque.php
HOME | CATALOGUE | DELIVERY | NEWS | CONTACT US T (1) | LOGIN
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, SQLInjection 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 26KET LUẬN
Việc nghiên cứu tìm hiểu về quy trình kiểm tra bảomật ứng dụng Web sẽ đóng góp một phần vào việc đánh
giá va bao dam an toàn thông tin cho Website, dap ứng
nhu cau cap thiét vé an ninh bao mat hién nay.
Két quả thu được của luận văn:
Giup 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 bao mật trong ứng dụng Web.
Xây dựng chương trình đánh giá mức độ bảo mật
Website.