+ Hạ tầng mạng (Network)
- Thiết lập tường lửa vòng ngoài, theo dõi thông tin đi qua bộ định tuyến, sử dụng các thiết bị lọc dữ liệu giữa ứng dụng web với mạng bên ngoài
- Các thiết bị định tuyến, tường lửa được cấu hình để cho phép chỉ các luồng thông tin mong muốn được đi vào (inbound) ứng dụng web (ví dụ chỉ cho phép giao thức HTTP và/hoặc SSL đi vào máy chủ ứng dụng web)
- Các thiết bị định tuyến, tường lửa được cấu hình cho phép chỉ các luồng thông tin mong muốn được đi ra (outbound) từ ứng dụng web (chẳng hạn hủy các gói TCP SYN để ngăn chặn máy chủ khởi tạo các kết nối ra ngoài)
- Thiết lập các thông số đo theo dõi liên quan đến tấn công từ chối dịch vụ trên tường lửa/cổng giao tiếp (ví dụ dùng lệnh ratelimit trong các thiết bị của Cisco)
- Các thiết bị cân bằng tải cần được cấu hình để không lộ các thông tin về mạng bên trong
- Có thể sử dụng các hệ thống phát hiện xâm nhập (Network Intrusion Detection System-NIDS) để phát hiện các tấn công TCP/IP phổ biến, cần theo dõi nhật ký vận hành thường xuyên
- Thực hiện định kỳ quét các lỗ hổng để đảm bảo không tồn tại các lỗ
hổng tầng mạng hay hệ thống
+ Máy chủ web (Web Server)
- Cài các bản vá lỗi mới nhất
- Máy chủ cần được cấu hình không để lộ các thông tin về phần mềm máy chủ web được sử dụng (ví dụ dòng banner, các thẻ HTML)
- Cấm tất cả các dịch vụ mạng không cần thiết trên các máy chủ
- Áp dụng các chính sách, cấu hìh bảo mật theo khuyến cáo của nhà sản xuất nếu có
- Cấm, gỡ bỏ các tài khoản người dùng/nhóm không cần thiết (ví dụ
guest)
- Bật các chế độ ghi nhật ký (audit) của hệ điều hành và máy chủ web
(định dạng W3C)
- Cấm các module mở rộng không cần thiết trên máy chủ web (ví dụ
các IIS ISAPI DLLs, các module trong Apache) - Gỡ bỏ tất cả các website ví dụ đi kèm với máy chủ
- Cấu hình sử dụng cơ chế xác thực/truy cập phù hợp cho các thư mục
ứng dụng web
- Sử dụng SSL để bảo vệ các trao đổi thông tin quan trọng có thể bị
nghe trộm
- Nên cài đặt thư mục gốc của web trên ổ đĩa riêng, với quyền tối thiểu cần thiết
- Nên sử dụng tài khoản quyền tối thiểu đủ để thực thi tiến trình web - Thiết lập kiểm soát truy cập (Appropriate Access Control List) phù
hợp cho các thư mục của ứng dụng web
- Cấm tính năng WebDAV khi không cần khai thác
- Cấm tính năng Web Publisher của phần mềm Netscape/iPlanet
- Sử dụng các công cụ của Microsoft với IIS: IISLockdown tool, UrlScan
- Sử dụng các công cụ quét lỗ hổng web site để phát hiện và bịt các lỗ
- Với phần mềm Microsoft, sử dụng công cụ Microsoft Baseline
Security Analyzer để phân tích bảo mật của máy chủ
+ Máy chủ CSDL (Database Server)
- Phần mềm quản trị CSDL được thiết lập vận hành với tài khoản quyền cần thiết tối thiểu
- Cập nhật các bản vá mới nhất
- Gỡ bỏ các tài khoản ví dụ của hệ quản trị CSDL
- Thiết lập lọc gói tin IP phù hợp để hạn chế luồng dữ liệu giữa máy chủ
web và máy chủ CSDL
- Sử dụng cơ chế xác thực phù hợp giữa máy chủ web và máy chủ
CSDL (ví dụ với máy chủ Microsoft, sử dụng chế độ Integrated Authentication)
- Thay đổi mật khẩu mặc định cho tài khoản (ví dụ tài khoản sa của Microsoft SQL Server)
- Hạn chế quyền truy cập của tài khoản sử dụng truy cập CSDL - Gỡ bỏ các thủ tục trong CSDL nếu không dùng đến
- Không đưa mật khẩu tài khoản truy cập CSDL trong mã nguồn trang web
+ Ứng dụng (Application)
- Môi trường phát triển/kiểm thử cần tách khỏi môi trường vận hành - Thiết lập kiểm soát truy cập (ACL) phù hợp cho các file, thư mục - Thực hiện kiểm tra dữ liệu nhập vào trên máy chủ
- Rà soát mã nguồn, các đoạn script tránh các rủi ro bảo mật, lộ dữ liệu
- Loại bỏ các file tạm
- Quản lý phiên làm việc phù hợp (ví dụ không lưu các giá trị tường minh trong cookies, thiết lập session ID ngẫu nhiên, mã hóa giá trị
quan trọng,..)
- Các vai trò người sử dụng được thiết lập với quyền cần thiết tối thiểu - Sử dụng mã hóa đủ mạnh (ví dụ không dùng XOR)
- Các file gắn kèm lưu trong thư mục riêng với thiết lập ACL phù hợp - Với Microsoft IIS servers, các file gằn kèm nên đổi tên với phần mở
rộng .asp
- Tránh sử dụng các API rủi ro cao (ví dụ hàm RevertToSelf của IIS) - Cần đánh giá khía cạnh bảo mật của mã nguồn một cách nghiêm túc - Thực hiện kiểm thử với dữ liệu nhập chứa mã độc
+ Phía máy trạm (Client)
- Sử dụng các phiên bản mới nhất của trình duyệt - Cấm các điều khiển ActiveX
- Cấm các đoạn mã Active
- Cấm các thẻ “Meta refresh”, “IFRAME” của giao thức HTTP - Kiểm soát chặt Cookie
- Kiểm soát các ứng dụng thư điện tử mặc định trong trình duyệt