Các máy chủ Web (Webserver) luôn là những vùng đất màu mỡ cho các hacker tìm kiếm các thông tin giá trị hay gây rối vì một mục đích nào đó. Hiểm hoạ có thể là bất cứ cái gì từ kiểu tấn công từ chối dịch vụ, quảng cáo các website có nội dung không lành mạnh, xoá, thay đổi nội dung các file hay phần mềm chứa mã nguy hiểm. Bài viết dưới đây được trình bày như những lời khuyên cho việc đảm bảo an toàn cho các máy chủ Web:
Về Patches và Updates:
- Microsoft Baseline Security Analyzer phải được chạy thường xuyên để kiểm tra hệ thống và kiểm tra các bản cập nhật
- Các bản vá lỗi phải được cập nhật cho Windows, IIS và .NET Framework.
- Đăng ký nhận tin với Microsoft Security Notification Service tại : http://www.microsoft.com/technet/sec…tin/notify.asp
Các Tool cho IIS
- IISLockdown phải được setup và chạy trên server
- URLScan phải được setup, tinh chỉnh và chạy trên server
Về các ứng dụng
- Phải disable các ứng dụng không cần thiết
- Các ứng dụng phải được chạy với account có quyền tối thiểu
- Các ứng dụng như FTP, SMTP, và NNTP phải disable nếu không sử dụng
- Phải tắt Telnet
- ASP .NET Service State phải được disable và không dùng bởi bất kì ứng dụng khác. Vào Start > Run > gõ services.msc, tìm service ASP .NET Service State để kiểm tra chắc chắn service này được disable.
Về Protocols
- WebDAV phải được tắt nếu không sử dụng hoặc phải được sucure nếu cần. Thông tin về WebDAV, các bạn có thể xem thêm tại Microsoft Knowledge Base article 323470, “How To: Create a Secure WebDAV Publishing Directory“
- TCP/IP phải được config kỹ.
- NetBIOS and SMB phải được disabled (đóng các ports 137, 138, 139, và 445).
Về Accounts
- Những account không sử dụng đến phải được xóa bỏ
- Phải tắt (disable) account Guest.
- Account Administrator phải được đổi sang tên khác, và phải đặt password phức tạp
- Account IUSR_MACHINE phải được tắt nếu không dùng đến
- Nếu các ứng dụng cần quyền anonymous access, các bạn phải create account anonymous này với quyền thấp nhất có thể
- Những account anonymous không được phép có quyền write vào thư mục web và không được truy cập vào những ứng dụng bằng command line
- Các account chạy ứng dụng ASP.NET phải được thiết lập với quyền thấp nhất. (Chỉ áp dụng khi bạn không dùng account ASPNET – account mặc định chạy ứng dụng ASP.NET với quyền mặc định thấp nhất)
- Phải có chính sách về account và password phức tạp thiết lập trên sever.
- Phải remove group Everyone trên policy “Access this computer from the network”
- Các account quản trị phải được đảm bảo tính bảo mật, không chia sẽ thông tin các account này.
- Null sessions (anonymous logons) phải được tắt
- Group Administrator không tồn tại quá 2 accounts.
- Remote logon phải được đảm bảo secure cho account Administrators.
Về Files và cấu trúc thư mục
- Tất cả các partition phải được setup NTFS
- Thư mục Web phải được đặt ở partition khác với partition chứa files hệ thống
- Log files phải được đặt ở thư mục hoặc partition khác với 2 partition chứa Web và Files hệ thống
- Group Everyone phải được thiết lập để không có quyền truy cập vào thư mục chứa files hệ thống như \Windows hay \Windows\System32 … đồng thời cũng không có quyền truy cập vào Thư mục hay partition chứa Web
- Account Tnternet Guest phải được thiết lập tuyệt đối không có quyền write vào thư mục chứa Web
- Remote IIS Administration phải được xóa hay disable (\Windows\System32\Inetsrv\IISAdmin).
- Resource Kit Tools, Utilities, và các SDKs phải được xóa bỏ hay disable
- Các Sample của IIS phải được xóa (\Windows\Help\IISHelp, \Inetpub\IISSamples).
Shares
- Những shares không cần thiết phải được removeAll unnecessary shares are removed (including default administration shares).
- Group Everyone không được thiết lập để có thể truy cập vào các shares
- Các Administrative shares (như C$ D$ E$ … và Admin$) phải được xóa nếu không cần thiết (Chỉ có Microsoft Management Server (SMS) và Microsoft Operations Manager (MOM) sử dụng các Shares trên).
Ports
- Cấm truy xuất internet cho Web Server (đóng các outbound port 80, 8080 … hoặc có thể remove Internet Explorer)
- Intranet traffic phải được mã hóa (ví dụ mã hóa với SSL)
Registry
- Remote registry phải tắt.
- SAM phải được bảo vệ (HKLM\System\CurrentControlSet\Control\LSA\NoLMHash).
Các chính sách sau chỉ áp dụng cho StandAlone Server
Logging
- Login failed phải được server ghi nhận.
- IIS log files phải được thay đổi đường dẫn và phải được bảo vệ.
- Dung lượng log files phải được thiết lập thích hợp.
- Log files phải được kiểm tra thường xuyên.
- Các truy cập vào Metabase.bin phải được ghi nhận.
- IIS log phải được configured dạng W3C.
Sites and Virtual Directories
- Web sites phải được đặt ở partition khác với partition chứa system (non-system partition.)
- “Parent paths” phải được disable.
- Các virtual directories nguy hiểm như IISSamples, IISAdmin, IISHelp, và các Scripts virtual directories phải được remove
- MSADC virtual directory (RDS) phải được remove hoặc được bảo vệ
- Các Virtual directories cho phép truy cập anonymous access phải disable quyền Write và Excute
- Chỉ set quyền write cho những folders yêu cầu có authentication (dùng SSL nếu cần thiết)
- FrontPage Server Extensions (FPSE) phải được remove nếu không dùng đến.
Script Mappings
- Nên chuyển (mapping) các Extensions không dùng đến sang 404.dll (ví dụ như .idq, .htw, .ida, .shtml, .shtm, .stm, idc, .htr, .printer).
- Những extension không cần thiết của ASP.NET nên mapped đến “HttpForbiddenHandler” ở Machine.config.
ISAPI Filters
- Những ISAPI filters không cần thiết hay không dùng đến phải được removed
IIS Metabase
- Truy cập vào Metabase phải được ghi nhận và phải được giới hạn bằng cách dùng NTFS permissions (%systemroot%\system32\inetsrv\metabase.bin).
- IIS banner information phải được giới hạn sử dụng
Other Check Points
- IISLockdown và URLScan tool phải được setup và chạy trên server
- Remote administration phải được bảo vệ và mã hóa (SSL). Nên thiết lập low session time-outs và account lockouts.
Hạn chế DOS và Những điều không nên thực hiện ở Web Server
- Phải setup Web Server như một server riêng biệt
- Nơi đặt server phải được bảo vệ nghiêm ngặt (physically protect)
- Thiết lập các anonymous accounts khác nhau cho từng application khác nhau
- Không nên install IIS server trên một domain controller
- Không nên kết nối internet cho IIS server khi chưa thiết lập kỹ các chính sách security
- Không cho phép Group Anyone truy cập Locally. Logon Locally chỉ nên có 1 group duy nhất là Administrators