最近,AC公司组织其安全部门对即将上线的一款云交流与协作平台,在其模拟的环境中进行了全方位的渗透测试。在测试发现的结果中,大部分指向的是其Web应用程序有关的安全漏洞,需要项目组的程序员和DBA们进行整改。但是与此同时,也暴露出了一些与平台部署与环境有关的自身脆弱性问题。套用OWASP Top 10理论的分析,这些可以归咎为“A5 – 安全配置的缺失”。虽然从报告结果的严重程度来看,不是那么的outstanding,但是这让一直着眼于软件程序方面的项目组领导终于顿悟到了那些有别于security coding之类的木桶短板。
的确,安全配置是来不得任何freestyle的,我们要有严谨的操作流程和打持久战的心理准备。那么怎样才能做好全面的安全加固准备呢?其实还是有一定套路可循的。基本的思路包括:
· 识别本系统所涉及到的安全配置项。
· 着手按照一定顺序,如网络系统的层次结构,予以实施。
· 初始化建立安全配置的管理。
· 保持并动态维护各种安全配置。
安全配置项:全面私人定制
一般而言,我们可以从“操作系统->Web服务器->应用服务器->数据库服务器->管理后台->软件运行环境”,来逐步深入展开。下面是一些最基本、最普遍的配置项示例,我希望能给小伙伴们带来火箭一级助推的效果。同时希望大家能自行补齐属于本企业的“多级助推”,成功high上天。
操作系统-Windows Server:
· 帐号伪装之真假三人组:先重命名管理员帐户的名称,并设置为强密码,然后禁用之。对你没看错,费这么大劲儿还是要禁用之,因为此货的风险太高了。是不是想起了小时候看的电影《铁面人》路易十四啊?就是这个套路。
· 然后呢?创建自己的“太阳王”:新的管理员帐户名称,是那种自己能识别,别人不太能猜透的名称,并创建强密码。随后,并将其加入到Administrators组中。
· 这还不够,我们还要创建一个“马甲”管理员,名字还叫做administrator。但是呢,将其放置到guest组里去。
· 按照“先禁用三个月、再删除”的策略将系统自带的以Guest为首的一干无用帐号打入冷宫。
· 接着是“约法三章”:通过本地安全策略来加固密码强度、留存期、帐号锁定策略,不显示最后登录的用户名、限制软件的安装,并添加审核策略。
· 仅限Administrators组具有“本地”、“远程关机”权限以及“文件或其它对象的所有权权限”,禁用“允许系统在未登录前关机”,将“本地登录”和“从网络访问”分配给指定的帐号。
· 关闭系统的默认共享,尽量不要使用共享文件夹,非要启用的,要制定访问帐号。
· 做好文件权限的保护,在重要文件夹属性的安全标签里删除掉父项继承,以及一般用户组的可修改权限。
· 通过配置日志,使系统能够“审核登录事件”、“策略更改”、“对象访问”、“特权使用”、“系统事件”、“帐户管理” 以及“ 进程追踪”。当然也要注意配置日志文件的大小和归档。
· 通过对注册表的键值设置,将TCP连接请求数阈值(TcpMaxPortsExhausted)设为5、TCP 半连接数阈值(TcpMaxHalfOpen)设为500、以及重传的TCP 半连接数阈值TcpMaxHalfOpenRetried设为400,从而实现对SYN攻击保护。
· 禁用网卡属性里的TCP/IP上的NetBIOS,以及系统上的服务。
· 关闭默认无用的服务,包括Computer Browser、IP Helper、Print Spooler、RemoteDebugging、Remote Registry、TCP/IP NetBIOS Helper 、WindowsRemote Management、WinHTTP Web Proxy Auto-Discovery Service、Windows Error Reporting Service等。
· 不允许远程访问注册表、对SAM帐号的匿名枚举,而启用对通信进行数字签名、基于128位加密的NTLM SSP的最小会话安全。
· 通过自动订阅或定期手动的方式,及时给系统打上补丁。
· 当然也要安装好主机级的防病毒软件,并运用工具定期扫描。这一步就像我们小时候经常假想自己拥有的一种特异功能:把耳朵天线打开一样。