II. An toàn dịch vụ Web
3. Triển khai giải pháp đảm bảo an toàn Web
Phòng chống Hacker không phải là nhiệm vụ của riêng những người lập trình web mà cần có sự kết hợp, hỗ trợ của người quản trị và chính bản thân người dùng. Thiếu sót một trong những yếu tố này đều có thể dẫn đến thông tin bị đánh cắp và thậm chí Hacker có thể điều khiển được cả hệ thống mạng. Vì thế để triển khai các giải pháp bảo vệ một hệ thống website khỏi sự tấn công của Hacker, chúng ta cần làm rõ vai trò của từng đối tượng.
a. Đối với nhà quản trị mạng
- Người quản trị cần xác định rõ những đối tượng nào là quan trọng nhất trong hệ thống cần bảo vệ; xác định rõ mức độ ưu tiên đối với những đối tượng đó. Ví dụ các đối tượng cần bảo vệ trên một hệ thống có thể là: các máy chủ dịch vụ, các router, các điểm truy cập hệ thống, các chương trình ứng dụng, hệ quản trị cơ sở dữ liệu, các dịch vụ cung cấp, …
- Cấu hình ứng dụng: thận trọng trong việc cấu hình trình chủ và một số ứng dụng. Trình chủ nên hay không cho phép thực thi các câu lện SSI. Ngoài ra phải thiết lập quyền cho ứng dụng chỉ chạy dưới một số quyền hạn nhất định như trong quản trị cơ sở dữ liệu (không nên chạy quyền admin) tránh trường hợp Hacker có thể lợi dụng chạy những câu lệnh điều khiển hệ thống.
- Xác định những nguy cơ đối với hệ thống: chính là xác định các lỗ hổng bảo mật của các dịch vụ, ứng dụng trên hệ thống đó. Việc xác định đúng đắn các nguy cơ
này giúp người quản trị có thể tránh được những cuộc tấn công mạng, hoặc có biện pháp bảo vệ đúng đắn bằng cách thường xuyên cập nhật tin tức trên các nhóm tin về bảo mật và từ nhà cung cấp phần mềm. Khi phát hiện lỗi, cần cập nhật những bản vá lỗi kịp thời để tránh Hacker lợi dụng tấn công.
- Nắm được hoạt động của các phần mềm sử dụng, ý nghĩa của các file cấu hình quan trọng (như etc/password), áp dụng các biện pháp bảo vệ cấu hình như sử dụng các phương pháp mã hoá hashing code (MD5)
- Sử dụng một vài công cụ có thể phát hiện ra các hoạt động không hợp lệ vào hệ thống như phân tích và kiểm tra logfile.
- Kiểm soát chặt chẽ các quyền của tài khoản trên hệ thống, không sử dụng quyền root (admin) trong các trường hợp không cần thiết. Đối với các tài khoản không sử dụng trên hệ thống cần đổi mật khẩu hoặc huỷ bỏ.
- Quản lý mật khẩu một cách chặt chẽ:
• Buộc người sử dụng thay đổi mật khẩu trong một thời gian nhất định.
• Trong trường hợp người sử dụng bị mất mật khẩu, để cấp lại mật khẩu mới cần có các thủ tục để xác thực người dùng.
• Cần giám sát và theo dõi chặt chẽ các chương trình đổi mật khẩu, vì đây thường là mục tiêu tấn công của Hacker.
b. Đối với nhà thiết kế ứng dụng Web
- Đảm bảo tất cả dữ liệu được cung cấp từ người dùng là hợp lệ.
- Chứng thực người dù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. Vì thế, đối với một phiên làm việc, ứng dụng cần huỷ ngay sau khi trình duyệt đóng kết nối.
- Mã hoá các dữ liệu quan trọng như tên, mật khẩu, credit card, … bằng các giải thuật thích hợp và sử dụng SSL để tránh trường hợp mất mát thông tin trên đường truyền.
- Dùng một số 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 huỷ bỏ.
- Thiết lập quyền: với nhiều ứ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ư Admin (root) vì Hacker có thể lợi dụng quyền này để thực thi những câu lệnh của hệ thống, như trong kỹ thuật SQL Injection, Buffer OverFlow, …
c. Đối với người sử dụng Web
- Theo dõi các cảnh báo về khả năng rủi ro có thể xảy ra, đặc biệt nên chú ý khi cho phép trình duyệt thực thi ngôn ngữ trình khách trên máy của mình, vì khả năng
- Sau khi sử dụng xong ứng dụng, cần thoát ra khỏi hệ thống theo quy trình (như sigh-out trong yahoo) để những nội dung quan trọng lưu trữ trong cookie bị huỷ, tránh khả năng Hacker tiếp tục dùng SessionID tồn tại đó để đăng nhập vào hệ thống một cách hợp lệ.
- Quản lý tài khoản: người sử dụng cần nhận thức được vai trò quan trọng trong việc bảo vệ tài khoản của mình. Các hoạt động quản lý tài khoản bao gồm: bảo vệ mật khẩu, thay đổi mật khẩu định kỳ, đăng ký thời điểm, … Sử dụng các phần mềm bảo vệ máy trạm.