Trong những trƣờng hợp cần thiết, có thể sử dụng tƣờng lửa, hoặc proxy cho cơ sở dữ liệu để lọc các truy vấn độc hại, nhƣ mô hình GreenSQL proxy trên Hình 5.20. Cũng có thể sử dụng tƣờng lửa ứng dụng web để lọc các yêu cầu gửi đến ứng dụng web, trƣớc khi chúng đƣợc gửi đến cơ sở dữ liệu, nhƣ minh họa trên Hình 5.21.
5.4.1.2. Trojan trên cơ sở dữ liệu
a.Các dạng trojan trên cơ sở dữ liệu
Trojan là các phần mềm chứa mã độc, thƣờng giả danh những chƣơng trình có ích, nhằm lừa ngƣời dùng kích hoạt chúng. Trojan thƣờng đƣợc sử dụng để thực thi gián tiếp các tác vụ, mà tác giả của chúng không thể thực hiện trực tiếp do không có quyền truy nhập. Trojan thƣờng khai thác cơ chế điều khiển truy nhập tùy quyền (DAC) để thay đổi quyền truy nhập, cho phép tin tặc truy nhập các đối tƣợng mà chủ thể không hay biết.
Các trojan cơ sở dữ liệu thƣờng là các đoạn mã độc SQL đƣợc nhúng vào các thủ tục cơ sở dữ liệu, đƣợc chia thành 4 dạng:
1. Một tấn công thực hiện cả việc chèn mã và gọi thực hiện trojan;
2. Một tấn công sử dụng một ngƣời dùng hoặc tiến trình thực hiện việc chèn mã trojan và sau đó gọi thực hiện trojan nhằm trích xuất thông tin hoặc thực hiện một hành động nào đó trong cơ sở dữ liệu;
3. Một tấn công thực hiện việc chèn mã trojan và sau đó sử dụng một ngƣời dùng hoặc một tiến trình khác gọi thực hiện trojan;
4. Một tấn công sử dụng một ngƣời dùng hoặc tiến trình này thực hiện việc chèn mã
trojan và sau đó sử dụng một ngƣời dùng hoặc một tiến trình khác gọi thực hiện trojan.
Sau đây là 2 trƣờng hợp ví dụ về mã trojan đƣợc chèn vào thủ tục cơ sở dữ liệu và đƣợc gọi thực hiện. Trong trƣờng hợp thứ nhất, tin tặc sử dụng 1 ngƣời dùng hoặc 1 tiến trình nào đó để chèn mã SQL trojan vào thủ tục. Theo đó, một lập trình viên ít kinh nghiệm lấy 1 đoạn mã thủ tục trên mạng hoặc từ các nguồn không rõ ràng và đƣa vào cơ sở dữ liệu mà không hiểu rõ đoạn mã đó thực hiện những công việc gì. Khi thủ tục đƣợc gọi, trojan đƣợc kích hoạt.
Trong trƣờng hợp thứ hai, trojan đƣợc gọi thực hiện sử dụng 1 ngƣời dùng hoặc 1 tiến trình nào đó. Theo đó, một thủ tục cơ sở dữ liệu đƣợc cài đặt chạy định kỳ vào cuối tháng để tính lƣơng cho tất cả nhân viên trong công ty. Tin tặc nắm đƣợc điều này có thể tìm cách chèn mã trojan vào thủ tục này và nó sẽ đƣợc kích hoạt khi thủ tục đƣợc chạy.
b.Các biện pháp phòng chống
Để phòng chống trojan trên cơ sở dữ liệu hiệu quả cần kết hợp 2 biện pháp: (1) kiểm soát việc tạo và sửa các thủ tục và (2) giám sát việc thực hiện các thủ tục trên cơ sở dữ liệu. Trong kiểm soát việc tạo và sửa các thủ tục, nội dung đầu tiên là hạn chế, hoặc cấm ngƣời dùng thao tác dữ liệu tạo, hoặc sửa các thủ tục, hàm cơ sở dữ liệu trong môi trƣờng máy chủ sản xuất (production server). Cần đảm bảo rằng các thủ tục, hàm cần đƣợc tạo, sửa và kiểm thử kỹ trong môi trƣờng máy chủ phát triển (development server) và triển khai trên chủ sản xuất sử dụng ngƣời dùng quản trị. Ngoài ra, không sử dụng mã SQL từ