Chương I trình bày về các khái niệm tổng quan về ứng dung web, các phương pháp tan cong ung dung web pho biến từ trước đến nay. Phân tích một số nguyên nhân dan đến một cuộc tan công ứng dung web, trình bày một số phương pháp phát hiện tan công ứng dụng web hiện nay. Khái quát về vấn đề bảo mật ứng dụng web 1. Khái niệm ứng dụng web Ứng dụng web là một chương trình ứng dụng mà được lưu trữ trên một máy chủ từ xa và được gửi qua internet thông qua trình duyệt.
Các ứng dụng web có thé được thiết kế cho nhiều mục đích sử dụng khác nhau và có thê được sử dụng bởi bất kỳ ai, từ một tổ chức đến một cá nhân vì nhiều lý do. Các ứng dụng web thường được sử dụng có thể bao gồm webmail, máy tính trực tuyến hoặc cửa hàng thương mại điện tử. Một số ứng dụng web chỉ có thể được truy cập bằng một trình duyệt cụ thể, tuy nhiên, hầu hết đều có sẵn bat kẻ trình duyệt. Các ứng dụng web không cần tải xuống vì chúng được truy cập qua mạng.
Người dùng có thê truy cập ứng dụng Web thông qua trình duyệt web như Google Chrome, Mozilla Firefox hoặc Safari. Dé một ứng dung web hoạt động, nó cần có máy chủ web, máy chủ ứng dụng va cơ sở dữ liệu. Máy chủ web quản lý các yêu cầu đến từ máy khách, trong khi máy chủ ứng dụng hoàn thành tác vụ được yêu cầu. Một cơ sở dit liệu có thé được sử dụng để lưu trữ bất kỳ thông tin cần thiết nào.
Các ứng dụng web thường có chu kỳ phát triển ngắn và có thé được thực hiện với các nhóm phát triển nhỏ. Hầu hết các ứng dụng web được viết bằng JavaScript, HTMLS, CSS. Lập trình phía máy khách thường sử dụng các ngôn ngữ này, giúp xây dựng giao diện người dùng của ứng dụng. Lập trình phía máy chủ được thực hiện để tạo các tập lệnh mà một ứng dụng Web sẽ sử dụng.
Các ngôn ngữ như Python, Java và Ruby thường được sử dụng trong lập trình phía máy chủ. Diém yếu của ứng dụng web SeEN eg ae Web Application Server Side Hình 1.1 Các thành phân ứng dụng web Đề biết điểm yếu của môi trường web, chúng ta cũng nên biết các thành phần của ứng dụng web. Các ứng dụng web bao gồm ba phần chính như trong hình 1.1 ngôn ngữ lập trình được sử dụng dé thiết kế phía máy khách và thiết lập các truy van của cơ sở dữ liệu. Giao thức truyền siêu văn ban (http), được sử dụng dé liên kết phía máy khách với phía máy chủ.
Ngoài ra, quy trình nghiệp vụ là phần phân biệt của bất kỳ ứng dụng web nào [1]. Một mối de dọa chính khác trong bảo mật internet và các ứng dụng web ma người dùng duyệt qua công mặc định số 80bằng giao thức http và cổng 443 băng giao thức lớp bảo mật https. Kẻ tấn công bắt đầu sử dụng web như một khách hàng hoặc người dùng bình thường của trang web, sau đó các công này được sử dụng: dé tan công trang web và truy cập vào dữ liệu va tệp của khách hang. Quy mô cuộc tan công phụ thuộc vào tầm quan trọng của đữ liệu và hoạt động kinh doanh của các công ty sở hữu các trang web này.
Nhiéu nghiên cứu cho thay có nhiêu vân đê về quản lý hoặc lôi quan tri dan dén các môi đe dọa vê bảo mật như: 1. Các mối đe doa bảo mật không được hiển thị rõ ràng trong các trang web. Các van dé bao mật thường được giải quyết thông qua khôi phục ngắn hạn nên các vấn đề sẽ xuất hiện lại rất nhanh. Bỏ qua thực tế rằng thông tin trên các trang web là tốn kém tiền bạc, ngoài việc mat khả năng ước tính chi phí thông tin.
Họ không hiểu rang các mối de doa bảo mật thường xuyên đang làm giảm uy tín của tô chức. Chúng phụ thuộc vào công cụ bảo vệ san sàng như tường lửa hoặc hệ thống phát hiện xâm nhập mà không giám sát chúng thường xuyên. Mối quan hệ giữa van đề nghiệp vụ và an toàn thông tin không được hiểu toàn bộ từ những người kỹ thuật. Thông thường, các nhiệm vụ an toàn thông tin được yêu cầu từ những người không phải là chuyên gia bao mat mà không cho họ dao tạo bài ban và đủ thời gian để thực hiện nhiệm vụ và khắc phục các vấn đề có thể xảy ra.
Điều này chủ yếu xảy ra vì hầu hết các tổ chức cần các giải pháp nhanh chóng để khởi chạy lại trang web của họ một lần nữa hoặc dé sửa các lỗi ứng dụng của nó. Các loại tấn công ứng dụng web Cách thức thực hiện các cuộc tấn công được gọi là phương pháp luận tấn công. Thông thường, chúng ta có hai phương pháp luận tan công ứng dụng chính, đó là tan công tinh và tan công động. Kẻ tan công thường sử dụng các phương pháp tan công phố biến đã biết dé thực hiện cuộc tan công của mình trong phương pháp luận tan công tĩnh.
Trong khi, việc sử dụng các phương pháp tấn công phức tạp và khó mà khó có thể ngăn chặn hoặc thậm chí phát hiện được gọi là phương pháp luận tấn công động [2]. Phương pháp tấn công tĩnh Có rất nhiều phương pháp nổi tiếng được sử dụng trong phương pháp tan công tĩnh chắng hạn như các phương pháp sau: 1. Famous Methods: trong phương pháp tĩnh này, những kẻ tan công cố gắng thực hiện các phương pháp tan công nỗi tiếng đã được sử dụng dé tấn công một ứng dung web. Những kẻ tan công cé gắng lấy những phương pháp này từ những kẻ tấn công thành thạo hoặc từ các diễn đàn và công cụ tim kiếm.
Directory Enumeration: những kẻ tan công cố gắng theo phương pháp này dé lay ban đồ của ứng dụng web và cấu trúc của các thư mục web đề hiểu hệ thống phân cấp của ứng dụng web. Trong phương pháp này, kẻ tấn công cố gắng sử dụng một tệp và thư mục an phổ biến được sử dụng trong cau trúc web tương tự dé truy cập thông tin quan trọng cua trang web. Debugging the Web Application: Khám phá các cửa hậu và các lỗi mã được sử dụng dé lay thông tin hữu ích nhằm tan công các ứng dụng web. Hầu hết các nhà phát triển ứng dụng web đều dé lại lỗi mã và cửa hậu trong ứng dụng của họ.
Phương pháp tan công động Các phương thức động phức tạp hơn phương pháp tĩnh và chúng có thể thay đổi từ ứng dụng này sang ứng dụng khác. Chang hạn như các phương pháp sau: 1. Link Traversal: kẻ tan công theo doi URL của trang web nhất định dé biết một số liên kết và URL không còn hoặc tồn tại. Các liên kết này có thể vẫn tiếp cận một số thông tin có giá trị chưa được gỡ bỏ khỏi ứng dụng web.
Path truncation: nó khác với phương thức truyền liên kết vì nó chỉ quan tâm đến các thư mục của ứng dụng web và nội dung của các thư mục này. Hầu hết các trang lỗi của trang web đều dẫn đến việc kẻ tan công biết cau trúc của các thư mục trong ứng dụng web đó. Session hijacking: kẻ tan công năm bắt thông tin và các tham số về giá trị của phiên trong phương pháp này. Sử dụng phương pháp này, những kẻ tắn công có được quyên truy cập vào dữ liệu trái phép.
Hidden Web Tracks: trong phương pháp động này, những kẻ tan công kiểm tra mã nguồn của mã html của một số trang web nhất định dé biết một số đường dẫn an trong ứng dụng web hoặc các đường dẫn thư mục được chú thích cũ. Java Applet Reverses Engineer: một số kẻ tấn công dịch ngược mã Java Applet khi đăng nhập trang web khách hàng. Kỹ thuật dịch ngược này lay thông tin trái phép từ trang web cho phép kẻ tấn công truy cập trang web. Passing Parameters: hầu hết các ứng dụng Web đều cho phép khách hàng của mình gửi các tham số đến hệ thống của họ thông qua các biểu mẫu web.
Những kẻ tan công gửi các thông số không hợp lệ qua các biéu mẫu này dé sử dung sai ứng dụng web. Executing Scripts: kẻ tấn công buộc một máy chủ web nao đó thực thi một tập lệnh, tập lệnh này không được thực thi trong ứng dụng web của nó. Mục đích của việc thực thi các tập lệnh ngoại lai này là dé lay cap một số thông tin và cookie của người dùng. SQL injection: phương thức động quan trọng nhất là SQL Injection, nơi kẻ tấn công đưa vào máy chủ web các câu lệnh và lệnh SQL đề tấn công cơ sở dit liệu và lay thông tin hữu ích.
Các phương thức tấn công ứng dụng web phổ biễn 1. Tan công SQL injection SQL Injection (SQLi) là một kiểu tan công tiêm giúp nó có thé thực thi các câu lệnh SQL độc hại. Các câu lệnh này kiểm soát một máy chủ cơ sở dir liệu đăng sau một ứng dụng web. Những kẻ tan công có thé sử dụng lỗ hồng SQL Injection dé vượt qua các biện pháp bảo mật ứng dụng.
Họ có thể tiến hành xác thực và ủy quyền một trang web hoặc ứng dụng web và truy xuất nội dung của toàn bộ cơ sở dữ liệu SQL. Kẻ tấn công cũng có thé sử dụng SQL Injection để thêm, sửa đôi và xóa các bản ghi trong cơ sở dữ liệu. Lỗ hồng SQL Injection có thé ảnh hưởng đến bat kỳ trang web hoặc ứng dụng web nào sử dụng cơ sở dữ liệu SQL như MySQL, Oracle, SQL Server hoặc các trang web khác. Kẻ tấn công có thê sử dụng nó để truy cập trái phép vào dữ liệu nhạy cảm như: thông tin khách hàng, dữ liệu cá nhân, bí mật thương mại, sở hữu trí tuệ.
Các cuộc tấn công SQL Injection là một trong những lỗ hồng ứng dụng web lâu đời nhất, phô biến nhất và nguy hiểm nhất. Tổ chức OWASP liệt kê các tiêm trong tài liệu OWASP Top 10 của họ là mối đe dọa số một đối với bảo mật ứng dụng web [3]. 15 Malicious Request Modified Query a dh. = Data Exfllralion “= Query Output Hình 1.
Mô hình tan công sqli SQL Injection có thể được sử dụng theo nhiều cách đề gây ra các vấn đề nghiêm trọng. Bang cách sử dung SQL Injection, kẻ tan công có thê bỏ qua xác thực, truy cập, sửa đổi và xóa dữ liệu trong cơ sở dữ liệu. Trong một số trường hợp, SQL Injection thậm chí có thể được sử dụng dé thực thi các lệnh trên hệ điều hành, có khả năng cho phép kẻ tấn công leo thang thành các cuộc tan công gây hại hơn bên trong mạng nằm sau tường lửa.