Tóm tắt
Việc sử dụng ứng dụng Web tăng lên đáng kể đòi hỏi tính sẵn sàng và hiệu suất cực cao của ứng dụng. Trong thời kỳ hiện đại, ứng dụng web được sử dụng phổ biến trong khối doanh nghiệp để thực hiện các nhiệm vụ quan trọng cũng như được sử dụng trên toàn cầu cho các mục đích xã hội.
Nó đã trở thành một thách thức lớn đối với các quản trị viên máy chủ web và quản trị viên Máy chủ ứng dụng để đảm bảo các biện pháp bảo mật và loại bỏ các lỗ hổng để cung cấp tính khả dụng cao và hiệu suất trơn tru.
Khái niệm
Web Applications
Ứng dụng Web là ứng dụng đang chạy trên máy chủ ứng dụng từ xa và có sẵn cho người dùng qua internet. Các ứng dụng web này có thể có sẵn trên các nền tảng khác nhau như Trình duyệt hoặc Phần mềm để giải trí cho khách hàng.
Việc sử dụng ứng dụng Web đã tăng lên đáng kinh ngạc trong vài năm qua, về cơ bản nó phụ thuộc vào mối quan hệ Máy khách-Máy chủ. Các ứng dụng web cung cấp một giao diện cho người dùng sử dụng các dịch vụ web. Các trang web có thể được tạo trên máy chủ hoặc chứa tập lệnh được thực thi động trên trình duyệt người dùng.
Server Administrator
Quản trị viên máy chủ là người quản lý an toàn, bảo mật, hoạt động và hiệu suất máy chủ web, chịu trách nhiệm ước tính các biện pháp và triển khai các mô hình bảo mật, tìm kiếm và loại bỏ các lỗ hổng.
Application Administrator
Quản trị viên ứng dụng chịu trách nhiệm quản lý và cấu hình cần thiết, đảm bảo tính khả dụng và hiệu suất cao của ứng dụng Web.
Client
Khách hàng là người dùng cuối tương tác với máy chủ web hoặc máy chủ ứng dụng để sử dụng các dịch vụ được cung cấp. Điều này yêu cầu duy trì một dịch vụ có tính khả dụng cao từ máy chủ. Trong khi khách hàng truy cập tài nguyên, họ đang sử dụng các trình duyệt web khác nhau, điều này có thể gây rủi ro về mặt bảo mật.
Ứng dụng Web hoạt động
Ứng dụng Web hoạt động theo hai bước là Front-end và Back-end. Yêu cầu được xử lý bởi front-end nơi người dùng đang tương tác với các trang web. Các dịch vụ được thông báo tới người dùng từ máy chủ thông qua nút và các điều khiển khác của trang web. Tất cả quá trình xử lý được kiểm soát và xử lý ở back-end.
Các ngôn ngữ phía máy chủ bao gồm:
- Ruby on Rails
- PHP
- C#
- Java
- Python
- JavaScript
Các ngôn ngữ phía máy khách bao gồm:
- CSS
- JavaScript
- HTML
Ứng dụng web về cơ bản hoạt động trên các lớp sau:
- Lớp trình bày: hiển thị và trình chiếu thông tin cho người dùng cuối.
- Lớp logic: biến đổi, truy vấn, chỉnh sửa, thao tác thông tin đến và đi từ các biểu mẫu.
- Lớp dữ liệu: lưu giữ dữ liệu và thông tin cho toàn bộ ứng dụng.
Web 2.0
Web 2.0 là thế hệ của world wide web cung cấp sự tương tác với người dùng linh hoạt và năng động. Nó cung cấp tính dễ sử dụng, khả năng tương tác giữa các sản phẩm, hệ thống và thiết bị khác. Web 2.0 cho phép người dùng tương tác và cộng tác với các nền tảng xã hội. Thế hệ trước, tức là web 1.0, người dùng bị giới hạn ở việc xem thụ động nội dung tĩnh.
Web 2.0 cung cấp hầu hết tất cả người dùng quyền tự do đóng góp như nhau, trải nghiệm người dùng phong phú, sự tham gia của người dùng, nội dung động, siêu dữ liệu, tiêu chuẩn Web và khả năng mở rộng.
Các mối đe dọa ứng dụng Web
- Cookie Poisoning
- Insecure Storage
- Information Leakage
- Directory Traversal
- Parameter/Form Tampering
- DOS Attack
- Buffer Overflow
- Log tampering
- SQL Injection
- Cross-Site (XSS)
- Cross-Site Request Forgery
- Security Misconfiguration
- Broken Session Management
- DMZ attack
- Session Hijacking
- Network Access Attacks
Đầu vào chưa được kiểm chứng
Đầu vào chưa xác thực đề cập đến việc xử lý đầu vào non-validated từ máy khách đến ứng dụng web hoặc máy chủ backend. Đây là một lỗ hổng có thể bị lợi dụng để thực hiện các cuộc tấn công XSS, tràn bộ đệm và injection.
Giả mạo tham số/biểu mẫu
Giả mạo tham số đề cập đến cuộc tấn công trong đó các tham số được thao túng trong khi máy khách và máy chủ đang giao tiếp với nhau. Các thông số như URL hoặc các trường biểu mẫu bị sửa đổi.
Bằng cách này, người dùng có thể được chuyển hướng đến một trang web khác giống hệt trang web hợp pháp hoặc sửa đổi trường, chẳng hạn như cookie, biểu mẫu, Tiêu đề HTTP.
Injection Flaws
Các cuộc tấn công tiêm kích hoạt động với sự hỗ trợ của các lỗ hổng ứng dụng web nếu một ứng dụng web dễ bị tấn công cho phép thực thi đầu vào không đáng tin cậy. Chèn mã độc hại, chèn tệp hoặc chèn SQL độc hại sẽ dẫn đến việc khai thác.
- SQL Injection
- Command Injection
- LDAP Injection
SQL Injection
SQL Injection về cơ bản là chèn các truy vấn SQL độc hại làm gián đoạn các quy trình, thao tác cơ sở dữ liệu, thực hiện lệnh và truy vấn bằng injection dẫn đến rò rỉ hoặc mất dữ liệu. Các lỗ hổng này có thể được phát hiện bằng cách sử dụng trình quét lỗ hổng ứng dụng.
SQL injection thường được thực thi bằng cách sử dụng thanh địa chỉ. Kẻ tấn công bỏ qua lỗ hổng bảo mật của ứng dụng và trích xuất thông tin có giá trị từ cơ sở dữ liệu của nó bằng SQL injection.
Command Injection
Chèn lệnh có thể được thực hiện bằng bất kỳ phương pháp nào sau đây:
- Shell Injection
- File Injection
- HTML Embedding
LDAP Injection
LDAP injection là một kỹ thuật tận dụng lỗ hổng đầu vào không được xác thực. Kẻ tấn công có thể truy cập cơ sở dữ liệu bằng cách sử dụng bộ lọc LDAP để tìm kiếm thông tin.
Denial-of-Service
Kẻ tấn công có thể thực hiện một cuộc tấn công DoS theo những cách sau:
- User Registration DoS: Kẻ tấn công tự động hóa quy trình để tiếp tục đăng ký bằng các tài khoản giả mạo.
- Login DoS: Kẻ tấn công cố gắng gửi yêu cầu đăng nhập liên tục.
- User Enumeration: Kẻ tấn công cố gắng thử các kết hợp mật khẩu tên người dùng khác nhau từ tệp từ điển
- Account Lockout: Kẻ tấn công cố gắng khóa tài khoản hợp pháp bằng cách thử mật khẩu không hợp lệ.