Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

SQL Injection trong an ninh mạng: Cơ chế, Nguy hiểm & Phòng chống

SQL Injection (SQLi) là gì?

Tấn công mạng chèn mã SQL độc hại vào truy vấn database để truy cập, sửa đổi, xóa dữ liệu nhạy cảm. Ví dụ: tấn công Sony Pictures.

Cơ chế hoạt động

Ứng dụng web dùng SQL database (IBM Db2, Oracle, MySQL, SQL Server...). Kẻ tấn công chèn câu lệnh SQL độc hại vào input (form, URL, cookie) → database thực thi → vượt qua kiểm soát truy vấn bình thường.

Tại sao SQL Injection nguy hiểm?

  • Truy cập dữ liệu không được phép (thông tin khách hàng, thẻ tín dụng, mật khẩu)
  • Xóa, sửa đổi, đánh cắp dữ liệu
  • Deface website (thay đổi giao diện)
  • Lấy quyền admin hệ thống
  • Xâm nhập mạng nội bộ (pivot attack)
  • Top 10 OWASP - rủi ro nghiêm trọng nhất ứng dụng web

3 loại SQL Injection chính

  1. In-band SQLi (Classic): Kết quả trả về qua cùng kênh (error-based, union-based)
  2. Inferential SQLi (Blind): Không thấy kết quả trực tiếp, suy luận qua boolean/time-based
  3. Out-of-band SQLi: Dùng kênh riêng (DNS, HTTP) để lấy dữ liệu

Nguyên nhân lỗ hổng SQL Injection

Input người dùng không được validate/escape → nối trực tiếp vào câu query SQL → attacker chèn mã độc.

Ví dụ SQL Injection

  • Truy xuất dữ liệu ẩn: `' OR '1'='1` → bypass login
  • Subvert logic: `--` comment bỏ qua kiểm tra password
  • UNION attack: Kết hợp kết quả từ nhiều bảng

Phòng chống SQL Injection

  1. Parameterized Queries / Prepared Statements (Quan trọng nhất)
  2. Stored Procedures (với validation input)
  3. Input Validation & Sanitization (Whitelist)
  4. ORM (Object-Relational Mapping) an toàn
  5. Least Privilege: DB user quyền tối thiểu
  6. WAF (Web Application Firewall) rules
  7. Error handling: Không hiển thị lỗi SQL chi tiết cho user
  8. Cập nhật, vá lỗ hổng thường xuyên

SQL Injection còn đe dọa 2024 không?

Vẫn là mối đe dọa lớn. Tripwire: "SQLi vẫn tràn lan miễn còn web app lỗi, database có dữ liệu có giá trị". Hệ thống cũ, unpatched nhất bị tác động.