• Đả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 toà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.
Ngoà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ự đoá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 toán mã hóa cùng với khóa để mã hóa sao cho dữ liệu không dễ dự đoán và bị vét cạn.
Chương 12: Tổng kết các biện pháp phòng chống
Ngoà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 yê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…