TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP HCM ĐỒ ÁN KẾT THÚC MÔN PHÂN TÍCH LỖ HỔNG VÀ KIỂM THỬ Đề tài: Client Side Testing Khoa: Công nghệ thông tin Giảng viên hướng dẫn : Trần Đắc Tốt Thực hiện : Nhóm 3 TP HCM 2023 TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP HCM [ Họ và tên MSSV Công việc Phân công công việc, giám sác, hỗ trợ nội dung cho các Ngô Thế Kiệt (Nhóm trưởng) 2033210577 thành viên, làm word 1 -> 3 mục lục sắp xếp, nội dung , ppoint, demo. Nội dung phần 4.5, Phạm Đăng Khoa 2033216456 thuyết trình lỗ hỗng, ppoint. Nội dung phần 4.14, Nguyễn Viết Thịnh 2033216564 thuyết trình lỗ hỗng clickjacking, ppoint. Nội dung phần 5 -> 6, thuyết trình các chiến dịch giảm Nguyễn Hoài Tiến 2033216575 thiểu thiệc hại và các lỗ hỗng, ppoint 1 | Trang 2 | Trang LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường đại hoc Công Thương Tp.HCM đã đưa môn phân tích lỗ hỗng và kiểm thử vào trương trình giảng dạy.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn thầy Trần Đắc Tốt đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập vừa qua. Trong thời gian tham gia lớp học phân tích lỗ hỗng và kiểm thử của thầy, chúng em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này. Bộ môn phân tích lỗ hỗng và kiểm thử là môn học thú vị, vô cùng bổ ích và có tính thực tế cao.
Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ. Mặc dù em đã cố gắng hết sức nhưng chắc chắn bài tiểu luận khó có thể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong thầy xem xét và góp ý để bài tiểu luận của em được hoàn thiện hơn. 3 | Trang Mục lục Mục lục .1 Overview of Web Application Security .2 Common Client Side Vulnerabilities .3 Testing Tools and Environment.
10 Image Tool OWASP ZAP .1 DOM Based Cross-Site Scripting (XSS) .1 Testing for Self DOM Based XSS:. 14 Hình 2: HTML Injection .4 Client-side URL Redirect. 15 Hình 3: Client-side URL Redirect .6 Client-side Resource Manipulation .7 Cross-Origin Resource Sharing (CORS) .8 Cross-Site Flashing. 26 Hình 7: Browser Storage .13 Cross Site Script Inclusion (XSSI).
29 Hình 8: Reverse Tabnabbing. 29 Bảng 1: Thống kê các cuộc tấn công .1 Exploiting Vulnerabilities in Real World Web Applications( Docker Desktop). 34 Chủng bị môi trường kiểm thử ( Docker Desktop ). 34 Thực hiện kiểm thử .2 Impact and Consequences of Successful Attacks .1 Best Practices for Securing Client Side Code .1 Xác thực và làm sạch dữ liệu đầu vào của người dùng: .2 Sử dụng HTTPS để truyền thông tin một cách an toàn: .3 Giảm thiểu việc sử dụng mã và thư viện bên thứ ba: .4 Triển khai mã lộn xộn (Code Obfuscation): .5 Tuân thủ Nguyên tắc Phạm vi ít nhất (Principle of Least Privilege): .2 Implementing Content Security Policies (CSP).
42 Ví dụ thực tế về Triển khai CSP .3 Web Application Firewall (WAF) Usage .1 Web Application Firewall (WAF) là gì? .2 WAF bảo vệ chống những cuộc tấn công gì? .1 Background Với sự phức tạp ngày càng tăng của các ứng dụng web và sự phổ biến của các công nghệ phía máy khách như JavaScript, HTML và CSS, đảm bảo an ninh cho các thành phần phía máy khách đã trở thành một khía cạnh quan trọng của tổng thể bảo mật ứng dụng web. Kiểm thử phía máy khách là một thực hành cơ bản nhằm xác định và giảm thiểu các lỗ hổng có thể bị khai thác bởi kẻ tấn công để xâm nhập vào an ninh và tính toàn vẹn của các ứng dụng web. Phía máy khách của một ứng dụng web là mã và quy trình chạy trong trình duyệt web của người dùng. Điều này bao gồm các chức năng như xác thực biểu mẫu, hiển thị giao diện người dùng và tải nội dung động.
Tuy nhiên, các tính năng giống nhau đó cũng có thể mang đến rủi ro an ninh nếu không được quản lý đúng cách. Các lỗ hổng phổ biến phía máy khách bao gồm Cross Site Scripting (XSS), Clickjacking, thao tác DOM không an toàn và lưu trữ dữ liệu không an toàn.2 Objective Mục tiêu chính của nghiên cứu này là tiến hành khám phá sâu hơn về các kỹ thuật, công cụ và phương pháp kiểm thử phía máy khách. Qua đó, chúng tôi nhằm nâng cao sự hiểu biết về những điểm yếu an ninh trong mã phía máy khách và phát triển các biện pháp hiệu quả để phát hiện và khắc phục các lỗ hổng này. Nghiên cứu sẽ tập trung vào nhiều khía cạnh của kiểm thử phía máy khách, bao gồm xác định các lỗ hổng phổ biến, đánh giá tác động của chúng và đề xuất các thực hành tốt nhằm bảo vệ ứng dụng web.
Ngoài ra, chúng tôi sẽ điều tra hiệu quả của các phương pháp kiểm thử khác nhau trong việc phát hiện và khắc phục các vấn đề an ninh phía máy khách.3 Scope Nghiên cứu này sẽ tập trung vào việc kiểm thử và đánh giá an ninh phía máy khách trong các ứng dụng web. Nó bao gồm nhiều công nghệ phía máy khách, bao gồm nhưng không giới hạn bởi JavaScript, HTML, CSS và các cơ chế lưu trữ phía máy khách. Phạm vi sẽ bao gồm cả các ứng dụng web trang duy nhất (SPAs) và ứng dụng trang đa nền tảng truyền thống. Nghiên cứu sẽ liên quan đến việc sử dụng các công cụ kiểm thử bảo mật khác nhau, bao gồm cả các công cụ thương mại và mã nguồn mở, để phân tích và đánh giá tình trạng an ninh của các ứng dụng web mẫu.
Quá 6 | Trang trình kiểm thử sẽ bao gồm phân tích động và tĩnh của mã phía máy khách, cũng như kiểm tra thủ công để xác định các lỗ hổng tiềm ẩn mà các công cụ tự động có thể bỏ sót. Lưu ý rằng mặc dù nghiên cứu này nhằm cung cấp những cái nhìn toàn diện về kiểm thử phía máy khách, nó có thể không đáp ứng tất cả các tình huống hoặc mối đe dọa mới nổi. Vì vậy, bất kỳ đề xuất và kết luận nào từ nghiên cứu này cũng nên được sử dụng cùng với chiến lược bảo mật tổng thể, bao gồm việc cập nhật thường xuyên, thực hành mã an toàn và các đánh giá bảo mật liên tục. Kết thúc, nghiên cứu này nhằm đóng góp cho kiến thức và thực hành liên quan đến kiểm thử phía máy khách, giúp nhà phát triển, chuyên gia bảo mật và tổ chức xây dựng ứng dụng web mạnh mẽ và bảo mật trước những mối đe dọa mạng phát triển liên tục.
Literature Review Bảo mật ứng dụng web là một khía cạnh quan trọng trong lĩnh vực bảo mật mạng, đặc biệt khi dựa vào ngày càng phụ thuộc vào các công nghệ dựa trên web trong nhiều lĩnh vực. Một ứng dụng web là bất kỳ phần mềm nào được truy cập thông qua trình duyệt web hoặc thiết bị hỗ trợ web và tương tác với người dùng qua giao diện người dùng. Vì ứng dụng web xử lý dữ liệu nhạy cảm và thực hiện nhiều hoạt động, chúng trở thành mục tiêu chính cho các cuộc tấn công mạng. Mục tiêu chính của bảo mật ứng dụng web là bảo vệ ứng dụng và người dùng khỏi các mối đe dọa, lỗ hổng và cuộc tấn công tiềm năng.
Các biện pháp bảo mật được triển khai nhằm ngăn chặn truy cập trái phép, xâm nhập dữ liệu và chiếm quyền điều khiển các chức năng của ứng dụng. Một ứng dụng web an toàn đảm bảo tính bảo mật, toàn vẹn và khả dụng của dữ liệu người dùng, cũng như tính chức năng tổng thể của ứng dụng.1 Overview of Web Application Security Trước khi tìm hiểu về kiểm tra phía máy khách, điều quan trọng là hiểu về một số mối đe dọa bảo mật thông thường của ứng dụng web có thể ảnh hưởng cả đến phía máy chủ và phía máy khách. Những mối đe dọa này bao gồm: • Tấn công Cross Site Scripting (XSS): Kẻ tấn công chèn mã kịch bản độc hại vào trang web để đánh cắp thông tin nhạy cảm hoặc thực hiện hành động độc hại thay mặt người dùng. 7 | Trang • Tấn công SQL Injection (SQLi): Bằng cách chèn mã SQL độc hại vào đầu vào của người dùng, kẻ tấn công có thể kiểm soát cơ sở dữ liệu và có thể truy cập trái phép vào dữ liệu nhạy cảm.
• Tấn công Cross Site Request Forgery (CSRF): Kẻ tấn công lừa người dùng thực hiện các hành động không ý thức trên ứng dụng web, khai thác phiên được xác thực của họ. • Thiếu cấu hình bảo mật: Các máy chủ, framework hoặc ứng dụng được cấu hình không đúng cách có thể tiết lộ thông tin nhạy cảm, tạo cửa hậu và tạo điểm vào cho kẻ tấn công. • Lỗ hổng Insecure Direct Object References (IDOR): Kẻ tấn công có thể truy cập vào các tài nguyên bị hạn chế hoặc thực hiện các hành động trái phép bằng cách thay đổi các tham chiếu đối tượng trong ứng dụng. • Tấn công Server Side Request Forgery (SSRF): Kẻ tấn công có thể khiến máy chủ của ứng dụng thực hiện các yêu cầu đến các máy chủ khác, dẫn đến rò rỉ dữ liệu hoặc tiết lộ các hệ thống nội bộ.2 Common Client Side Vulnerabilities Các lỗ hổng phía máy khách mục tiêu cụ thể vào mã chạy trên trình duyệt hoặc thiết bị của người dùng.
Các lỗ hổng này có thể được khai thác để thay đổi trải nghiệm của người dùng, đánh cắp thông tin nhạy cảm hoặc thực hiện các hoạt động độc hại khác. Một số lỗ hổng phổ biến trên phía máy khách bao gồm: • Tấn công DOM Based Cross Site Scripting (DOM XSS): Các mã kịch bản độc hại thay đổi DOM của một trang web, dẫn đến thực thi mã trong trình duyệt của người dùng. • Thực thi Mã JavaScript: Những lỗ hổng trong các mã kịch bản phía máy khách có thể cho phép kẻ tấn công thực thi mã JavaScript tùy ý, dẫn đến việc thực hiện các hành động trái phép. • Tiêm Mã HTML: Kẻ tấn công chèn và thực thi mã HTML không được ủy quyền vào một trang web, tiềm ẩn nguy cơ chiếm quyền điều khiển trải nghiệm duyệt web của người dùng hoặc đánh cắp dữ liệu nhạy cảm.
• Chuyển Hướng URL Phía Máy Khách: Các mã độc hại chuyển hướng người dùng đến các trang web độc hại, dẫn đến các cuộc tấn công lừa đảo hoặc khác.