我对保护或配置面向Web服务器的"实时"互联网一无所知,而这正是我被管理层指定做的事情.除了正在安装的操作系统(以及Windows更新)之外,我还没有做过任何事情.我已经阅读了微软和网络上的一些指南,但它们似乎都不是非常全面/最新.谷歌让我失望了.
我们将部署一个MVC ASP.NET站点.
当您准备在新的Windows服务器上部署应用程序时,您的个人检查是什么?
这就是我们所做的一切:
确保已启用Windows防火墙.它具有"默认关闭"策略,因此开箱即用规则设置相当安全.但如果您知道自己永远不需要它们,那么关闭其他规则永远不会受到伤害.我们在公共互联网接口上禁用除HTTP之外的几乎所有内容,但是我们喜欢Ping(谁不喜欢Ping?)所以我们手动启用它,如下所示:
netsh firewall set icmpsetting 8
禁用管理员帐户.设置完成后,请为您自己指定帐户管理员权限.禁用默认管理员帐户有助于减少某人攻击它的机会(无论多么轻微).(默认情况下,其他常见的默认帐户Guest已被禁用.)
避免在具有管理员权限的帐户运行的服务.如今,大多数声誉良好的软件都非常出色,但检查时从不会受到伤害.例如,在我们的原始服务器设置中,Cruise Control服务具有管理员权限.当我们在新服务器上重建时,我们使用了常规帐户.这是更多的工作(你曾经有权授予只需执行工作的权利,而不是一切),但很多更安全.
几年前我不得不锁定一个......
作为系统管理员,在项目早期就参与开发人员.Web应用程序的测试,部署,操作和维护是SDLC的一部分.
这些指南通常适用于任何DMZ主机,无论是OS linux还是Windows.
有一些书籍被IIS7管理和强化,但它归结为
决定您的防火墙架构和配置,并审查是否合适.记得保护您的服务器免受受感染主机的内部扫描.根据风险级别,考虑使用透明的应用层网关来清理流量并使Web服务器更易于监控.
1,您将系统视为堡垒主机.锁定操作系统,减少攻击面(服务,端口安装的应用程序,即没有交互式用户或混合工作负载,配置防火墙RPC只响应指定的管理DMZ或内部主机).考虑ssh,OOB和/或管理LAN访问和主机IDS验证器,如AIDE tripwire或osiris.如果Web服务器是敏感的,除了IIS/FW日志之外,请考虑使用argus来监视和记录流量模式.
基准系统配置,然后定期审核基线,最小化或控制变化以保持准确.自动化它.powershell是你的朋友.
美国NIST维护一个国家清单程序库.NIST,NSA和CIS有OS和网络服务器清单,值得研究,即使它们是早期版本.查看apache清单以及配置建议.查看addison wesley和OReilly apache安全书籍以掌握问题.
http://checklists.nist.gov/ncp.cfm?prod_category://checklists.nist.gov/ncp.cfm?prod_category http://www.nsa.gov/ia/guidance/security_configuration_guides/web_server_and_browser_guides.shtml www. cisecurity.org为订阅者提供清单和基准测试工具.目标是至少7或8.
从别人的错误中学习(如果你做的话,分享你自己的错误):清点面向公众的应用程序产品,并在NIST的NVD(vulerability数据库......)中监控它们(它们聚合CERT和OVAL)订阅并阅读microsoft.public.iinetserver .iis.security和微软安全警报.(NIST NVD已经看过CERT)迈克尔·霍华德是MS的代码安全大师,阅读他的博客(并确保你的开发者也阅读它),它位于:http://blogs.msdn.com/michael_howard/default.aspx
http://blogs.iis.net/是IIS团队的博客.作为旁注,如果你是一个Windows家伙,请务必阅读团队博客,了解您使用的MS产品组.
David Litchfield撰写了几本关于数据库和Web应用程序强化的书籍.他是一个倾听的人.读他的博客.
如果您的开发人员需要温和地介绍(或提醒)网络安全和系统管理员!我推荐Sverre Huseby的"无辜的代码"..自从一个cookoo的鸡蛋以来,没有像这样的安全书.它规定了有用的规则和原则,并从头开始解释.它是一个非常强大的易读读物
你有没有基线和审核了吗?(你做了一个改变,你做了一个新的基线).
请记住,IIS是一种元服务(FTP.SMTP和其下运行的其他服务).让您的生活更轻松,并在一个盒子上一次运行服务.备份IIS元数据库.如果您在同一个盒子上安装像tomcat或jboss这样的应用服务器,请确保它们也是安全的并锁定.安全的Web管理控制台到这些应用程序,包括IIS.如果你必须在盒子上有DB.这篇文章可以用类似的方式来利用
logging.an unwatched public facing server(是http,imap smtp)是一个专业的失败.检查你的日志将它们泵入RDMS并快速查找慢速和麻烦.几乎无一例外,您的威胁将被自动化并斩首.尽可能在防火墙级别停止它们.
经许可,使用P0f和nikto扫描并指纹你的盒子.用硒测试应用程序.确保IIS 和任何应用程序谨慎地以受控方式处理Web服务器错误.,设置3xx,4xx和5xx响应代码的错误文档.
现在你已经完成了所有这些,你已经覆盖了你的屁股,你可以看看应用程序/网站的漏洞.对开发人员要温和,大多数人只有在发生违规和声誉/信任损害后才会担心这一点.马已经狂奔,早已不复存在.现在解决这个问题 这个更便宜.和你的开发者谈谈威胁树.
考虑您对Dos和DDoS攻击的响应.在正面考虑好的交通/斜线和容量问题.与开发和市场营销部门合作,以响应活动/销售新服务来处理容量问题和服务器/带宽配置.询问他们是什么类型的活动响应他们是expec(或提醒).提前计划足够的准备时间以允许配置.与您的网络人员交朋友,以便在短时间内讨论带宽问题.由于配置错误或性能不足导致的不可用性也是一个问题..监控系统的性能,磁盘,ram http和db请求.知道正常和预期性能的指标..(请上帝,IIS有apachetop吗?;))计划适当的容量.
在这一切中,你可能会问自己:"我是不是太偏执了?" 错误的问题......这是"我是否足够偏执?" 记住并接受你将永远落后于安全曲线,并且这个列表似乎是详尽无遗的,它只是一个开始.所有这些都是谨慎和勤奋的,绝不应被视为过度.
被黑客攻击的网络服务器有点像你可以准备的野火(或者是丛林大火),除了蓝月亮事件之外,它几乎可以处理所有事情.计划如何监控和回应污损等
避免成为安全笨蛋或安全dalek /鸡.安静地工作,并与利益相关者和项目同事合作.安全是一个过程,而不是一个事件,并将它们保持在循环中,温和地教育人们是在安全性改进和接受你需要做的事情上获得增量回报的最佳方式.避免屈尊俯就,但要记住,如果你必须在沙滩上划一条线,挑选你的战斗,你只能做几次.
利润!