CHƯƠNG 1. CÁC PHƯƠNG PHÁP TÂN CONG UNG DUNG WEB VA CÁCH PHÒNG CHÓNG.1 Tổng quan về ứng dụng web. Ứng dụng web ngày càng phổ biến trong và không thê thiếu cuộc sông hiện nay. Một số ứng dụng web phố biến nhất có thể kế đến như facebook.
Được ứng dụng vào nhiều lĩnh vực của cuộc sông như tải chính, ngân hàng, bất động sản, y tế, trường học, mua săm. Ứng dụng web là một phân cốt lõi của thời đại công nghệ 4. Về cơ bản, mô hình phố biến của một ứng dụng web có dạng như sau: mm H—=>»—= mm ee eee _ server Internet a Hình 1.1 Mo hinh client- server của một ung dung web Mô hình client- server là một trong những mô hình phố biến nhất tại thời điểm hiện tại. Không chỉ mang lại tính sẵn sàng cao, mô hình này cũng có khả năng mở rộng và phân phôi nội dung tuyệt vời, chỉ cân người dùng có kết nôi internet.
Giải thích về mô hình, server trong mô hình được hiểu như web server- máy chủ web. Máy chủ web là thành phân cốt lõi để website hoạt động, bao gôm các thành phân con như cơ sở dữ liệu, các đoạn mã, tập lệnh và một số thành phân khác. Máy chủ web sẽ có vai trò phân tích và xử lý yêu cầu của client, đồng thời phân phôi nội dung dén client thong qua cdc phuong thttc nhu HTTP (Hypertext Transfer Protocol) hoac phuong thitc truyén file như FTP (File Transfer Protocol). Nguyễn Ngọc Doan — B17DCAT039 | Đồ án tối nghiệp Đôi với client, máy khách trong mô hình web client-server,có thể nói là một ứng dụng hoặc trình duyệt web (như Chrome, Opera, FIrefox, Safari.) được sử dụng đề tương tác với các máy chủ Web theo yêu cầu của người dùng thông qua internet.
Về cơ bản, máy khách là một ứng dụng đề gửi và nhận dữ liệu từ máy chủ. Việc giao tiếp giữa Client và Server được thực hiện theo các thông điệp (Message) Đầu tiên, Client sẽ gửi một yêu cầu ( Request Message), mô tả công việc tới server. Khi nhận được yêu câu, server tiễn hành phân tích để xác định công việc cần phải thực thi. Sau đó, Server sẽ gửi nó cho client trong một thông điệp trả lời (Reply Message).
Dạng thức (format) và ý nghĩa của các thông điệp trao đôi giữa client và server được quy định rõ bởi giao thức (protocol) của ứng dụng. Tổng quan quá trình gửi - nhận dữ liệu có thể mô tả bằng lược đô như sau: Client Sever Request message Wait Reply execusion Quá trình bị nghẽn Reply ply message g Quả trình đang thực thi Hình 1.2 Tổng quan quá trình gửi nhận dữ liệu của web client và server Cao thức chủ yếu đề giao tiép giữa web client và web server có thê kê đến là giao thức HTTP/HTTPS. Thành phân của các giao thức này bao gồm có request và response. Mot vi du cua HTTP/HTTPS request nhu sau: authority: www.com :method: GET :path: / :scheme: https Nguyễn Ngọc Doan — B17DCAT039 i) Đồ án tốt nghiệp accept: text/html, application/xhtml+xml, application/xml;q=0.9,image/avif, imag e/webp, image/apng, */*;q=0.8,application/signed-exchange; v=b3 ; q=0.
9 accept-encoding: gzip, deflate, br accept-language: vi-VN, vi; q=9.5 cache-control: max-age=0 cookie: _ga=test user-agent: Mozilla/5.36 Trong request header có chứa day đủ thông tin về kết nói và thông tin cần truy vấn như : e URL can truy vân (tai vi du trén 1A www.com) e Method: phuong thitc ma request sir dung, c6é thé 1a GET, POST, DELETE, PUT. ¢ Cookie: théng tin dé định danh người dùng và các thông tin khác e User-agent: thông tin thiết bị và hệ điều hành, hoặc thông tin trình duyệt của web client e_ Ngoài ra còn một sô thông tin khác cho mỗi phương thức khác nhau Khi đó, HTTP response trả về sẽ có dạng như sau: HTTP/3 200 0K accept-ranges: bytes vary: Accept-Encoding content-encoding: gzip content-type: text/javascript; charset=UTF-8 content-security-policy-report-only: require-trusted-types-for ‘script’; report-uri https://csp.com/csp/gws-team Nguyễn Ngọc Doan — B17DCAT039 3 Đồ án tốt nghiệp cross-origin-resource-policy: cross-origin cross-origin-opener-policy: same-origin; report-to="gws-team" report-to: {"group": "gws- team", "max_age":2592000,"endpoints":[{"url":"https://csp.c om/csp/report-to/gws-team" } |} content-length: 266912 date: Thu, 23 Dec 2021 00:17:02 GMT expires: Fri, 23 Dec 2022 00:17:02 GMT last-modified: Wed, 15 Dec 2021 21:20:09 GMT x-content-type-options: nosniff server: sffe X-XSs-protection: @ age: 233224 cache-control: public, max-age=31536000 alt-svc: test Thông tin trên thể hiện phiên bản HTTP đang sử dụng (HTTP/3), kiêu mã trạng thái trả về (200: bình thường, 404: không tìm thấy trang, 500: lỗi server.) , và các thông tin cân thiết như header, body tương ứng với yêu câu cua http request. Giao thức HTTP này cũng nằm trong số các giao thức dễ bị tân công trong ứng dụng web. Vì vậy, nên sử dụng giao thức HTTPS thay thế nhăm đảm bảo tính bảo mật của thông tin truyền đi.2 Các phương pháp tấn công ứng dụng web 1.1 Top 10 OWASP 2021 [1] Open Web Application Security Project (OWASP) 1a mét cong déng gdm tập hợp những chuyên gia an ninh mạng, thường xuất bản những bài báo, báo cáo, hay những công cụ nhằm phục vụ mục đích bảo mật ứng dụng web.
Một trong những dự án của họ bao gồm Top 10 OWASP. Gần đây nhất là Top 10 OWASP 2021 (xuất bản tháng 10/2021) là bản cập nhật mới nhất về những lỗi bảo mật hàng đầu của ứng dụng web, được tông hợp từ nhiêu dữ liệu và hơn 40 đôi tác khác nhau. Nguyễn Ngọc Doan — B17DCAT039 | Đồ án tôt nghiệp A01- Broken access control (Lỗ hồng kiểm soát truy cập) M6 ta: Access control: e Authentication: xac thuc, kiém tra danh tinh người dùng e_ Authorization: phân quyên, kiểm tra quyền hạn của người dùng Broken access control: e_ Với tập dữ liệu lớn, 94% ứng dụng web trong tập dữ liệu này được kiêm tra thi có khoảng 3.81% mặc phải lỗ hồng này e_ Lỗ hồng kiểm soát truy cập: một người dùng có thể truy cập vào các tài nguyên không được phép, hoặc người dùng chưa định danh (login) được phép truy cập vào tài nguyên chỉ người dùng định danh mới có quyên e Mot so vi du cé thé kê đên như: e Aictng co thé c6 quyên truy cập đên các tài nguyên mà chi nguoi dung quan tri mới có quyên truy nhập e_ Sửa đôi URL, hoặc APL, bằng cách truy cập trực tiếp vào các URL chỉ dành cho người dùng quản trị, ví dụ như : https://insecure-website.com/admin e Cấu hình sai CORS e© Kiếm soát truy nhập dựa trên tham sô URL (ví dụ: example.com,view?admin=]) e Sử dụng số định danh duy nhất của người dùng để thực hiện cấp quyên truy nhập mà không có biện pháp xác thực ( ví dụ,/deleteaccount?Id=123) Mot s6 16 hong CVE được khai thác từ lỗ hông này có thé kế đến như CVE- 2018-16476, CVE-2019-11063 A02- Cryptographic failure (L6 hong ma hod) Ví dụ một số lỗ hông tiêu biểu có thé ké dén nhu Man in the middle, brute-force. © Đối với mọi thông tin khi truyền đi trên internet, cần được mã hoá đê đảm bảo tính toàn vẹn và bí mật, đặc biệt là với các thông tin nhạy cảm (như thông tin thẻ tín dụng, thông tin cá nhân, mật khâu.) Nguyễn Ngọc Doan — B17DCAT039 5 Đồ án tốt nghiệp e Điều này bao gồm các lỗi bảo mật khi dữ liệu đang được truyền đi hoặc được lưu trong database, chăng hạn như việc triển khai các thuật toán mật mã yếu, tao khóa kém hoặc lỏng léo, không có mã hoá hoặc mã hoá yếu, hoặc truyền dữ liệu dưới dạng plaintext, cụ thể như: e© Mật khâu/ thẻ tín dụng được lưu trong database dưới dang plaintext e_ Sử dụng kết nối HTTP đề nhận và truyền dữ liệu e_ Sử dụng thuật toán mã hoá kém hoặc đã lỗi thời, có thé dé dang bi bẻ khoá (MDS.) e© Sử dụng mã hoá mạnh nhưng khoá dê đoán, hoặc khoá được tái sử dụng e_ Thuật toán sinh ngẫu nhiên chưa đủ mạnh A03- Injection (L6 hong chén ma) Một trong những lỗ hồng nghiêm trọng nhất, thường thấy trong ứng dụng web.
Xảy ra do một số nguyên nhân chủ yếu như: e_ Dữ liệu người dùng nhập vào không được xác thực hay kiểm tra e_ Các câu lệnh truy vấn không an toàn, truy vấn trực tiếp từ những dữ liệu người dùng nhập mà không qua bộ lọc nào e_ Và nhiều các trường hợp khác e_ Ví dụ một số trường hợp như http://example.com/search?q=%E2%80%9D%20or%201=1%20-- e Các bộ lọc yếu, dữ liệu từ người dùng có thê dễ dàng vượt qua các bộ lọc này và thực hiện chèn mã để tắn công ứng dụng web. A04- Insecure design (Lỗ hổng khiếm khuyết thiết kế) Secure design: Vi du nhu kiém soat truy cập, phân tích flow người dùng, kiêm soát lỗi. Tương tự nhu software design (thiết kế phần mêm), ứng dụng web cũng cần có một thiết kế bảo mật. Nguyễn Ngọc Doan — B17DCAT039 6 Đồ án tốt nghiệp Các lỗi chủ yêu về thiết kế và kiên trúc ứng dụng web, tạo ra lễ hông bảo mật.
Đây là lỗi mới, mới được tìm ra. Lỗi này xảy ra khi ứng dụng web được thiết kê bởi người phát triển web không có ý tưởng/ khái niệm hoặc kiến thức nào về bảo mật hay an toàn hệ thống, các lỗi này có thể là: e©_ Lỗi tràn bộ đệm, thiếu các giới hạn/ bộ lọc cho các dữ liệu người dùng nhập ®© Sử dụng các API/ các hàm không an toàn: ví dụ hàm random không an toàn e_ Quyên ứng dụng cao hơn quyên thực tế để thực thi Cách thức phòng chồng: e Thiết lập một vòng đời phát triển (software lifecycle), đồng thời có đánh giá va thiết kế an toàn cho những vấn đề về bảo mật và quyền riêng tư e Viét cdc unit và functional test A05- Security Misconfiguration (L6 héng cau hinh bao mat) Các lỗi thường gặp của lỗi này: e Thiếu bảo mật thích hợp: bảo mật không được đảm bảo trong ngăn xếp ứng dụng, đồng thời có thể cấu hình không đúng hoặc câu hình yếu ( mật khẩu yêu, không cài đặt quyên truy cập.) cho các dịch vụ cloud.