• Đảm bảo dữ liệu được cung cấp từ người dùng là hợp lệ:
Tất cả những dữ liệu được đưa vào ứng dụng phải đảm bảo được kiểm tra kĩ, loại bỏ hoặc từ chối những kí tự đặc biệt như < > ‘ /…
Tuy nhiên, không nên dùng ngơn ngữ trình khách (như JavaScript, VBScript…) để kiểm tra dữ liệu nhập hợp lệ vì hacker vẫn có thể lợi dụng để tấn công như trong kĩ thuật mã hoá URL hay vượt đường dẫn…Cách tốt nhất vẫn là kiểm tra ngay trên ứng dụng.
Nếu không thể từ chối cũng như lọai bỏ những kí tự, ứng dụng cần kiểm tra dữ liệu xuất để đảm bảo rằng dữ liệu xuất đến trình duyệt là an tồn.
Ví
d ụ 12.II-1:
Với SQL Injection, ứng dụng cần xuất một trang báo lỗi do chính ứng dụng qui định để phòng tránh trường hợp hacker lợi dụng nội dung báo lỗi cú pháp SQL để lấy thơng tin.
Ngồi ra, ứng dụng cần kết hợp với HTTP Header, đặc biệt là thành phần Referer để đảm bảo trang yêu cầu không xuất phát từ máy hacker như trong kĩ thuật Buffer Overflow, thao tác trên biến ẩn form,…
Chương 12: Tổng kết các biện pháp phòng chống
Nhiều ứng dụng hiện nay quản lí một phiên làm việc của người dùng bằng sessionID nhưng sự yếu kém trong cách quản lí một phiên làm việc khiến cho hacker có thể dễ dàng kiểm soát được một phiên làm việc của người dùng như trong kĩ thuật “quản lí phiên làm việc”. Vì thế, đối với một phiên làm việc, ứng dụng cần hủy ngay sau khi trình duyệt đóng kết nối.
• Mã hóa dữ liệu quan trọng:
Những thơng tin quan trong như tên/mật khẩu, credit card,… cần được mã hóa để tránh hacker có thể lấy được nội dung và sử dụng chúng như trong kĩ thuật XSS, SQL Injection...Ngoài ra, trong quá trình truyền, kết hợp phương pháp SSL để tránh trường hợp mất mát thông tin trên đường truyền.
Hiện nay trong lĩnh vực mã hóa dữ liệu, có rất nhiều phương pháp mã hóa như mã hóa khóa bí mật, mã hóa khóa cơng khai,…nên tùy vào mức độ sử dụng cũng như tầm quan trọng mà ứng dụng có thể chọn một trong những phương pháp mã hóa để đảm bảo dữ liệu được bảo mật.
Tuy nhiên, hiện nay nhiều nhà ứng dụng lại mã hóa dữ liệu kết hợp với vài thơng tin như ngày giờ, địa chỉ IP…khiến cho hacker có thể dễ dàng dự đốn, hoặc nội dung dữ liệu mã hóa quá ngắn khiến cho hacker có thể sử dụng nhưng công cụ sẵn có để vét cạn những khả năng có thể xảy ra như trong kĩ thuật tấn cơng sessionID. Hoặc phương pháp mã hóa đã quá cũ khiến cho hacker có thể dễ dàng dùng những công cụ giải mã như “John and Ripper”.
Do đó, cần chọn thuật tốn mã hóa cùng với khóa để mã hóa sao cho dữ liệu khơng dễ dự đốn và bị vét cạn.
Chương 12: Tổng kết các biện pháp phịng chống
Ngồi ra, việc dùng SSL là cần thiết để tránh trường hợp dữ liệu bị đánh cắp trên đường truyền.
• Dùng phần mềm có sẵn:
Hiện nay trên thị trường xuất hiện những phần mểm như Appshield hoạt động như một proxy, nghĩa là trung gian giữa máy khách và máy chủ, mọi yêu cầu từ máy khách đều đi qua phần mềm này, nếu phát hiện trong yêu cầu có ẩn chứa khả năng tấn cơng lên hệ thống, nó sẽ từ chối u cầu, khơng gửi lên máy chủ nữa mà sẽ tự động hủy yêu cầu.
• Thiết lập quyền:
Với những ứng dụng, hệ thống chỉ nên cung cấp những quyền hạn nhất định sao cho ứng dụng đủ thực hiện các chức năng của mình. Khơng nên đưa quyền cao nhất, như root vì hacker có thể lợi dụng quyền root này để có thể thực thi những câu lệnh của hệ thống, như trong kĩ thuật tấn công SQL Injection, Buffer Overflow…