安全运维
工作也好几年了,在这摸爬滚打中,遇到了服务器被黑,网站被人DDOS攻击,数据库被篡改等等。服务器也不是你说不让人上就不让人上的,所以IT安全这个话题还是比较沉重的,涉及的东西很多,只有你了解得更多,你才会知道你所了解的安全其实是那么少。
1、网络安全
我们很多的公司和环境并未使用第三方审计系统,未能根据记录数据进行分形,并生成审计报表。其实审计系统是很重要的,可以进行操作溯源,这可比你一张嘴说的话有用多了。我所在的公司其实是买了一台日志审计系统,但是然并卵,在运维方面,我搭建了ELK,用于对服务器的操作溯源以及监控系统日志和安全日志,这个已经完全达到我想要的效果,另外的系统相关的日志,开发人员自己也有ELK系统,他们是用来监控app里面的行为操作,也是用于审计的。
其实网络安全范围很广,还有比如说你可以将设备惊醒ARP绑定,那就可以避免arp攻击等,也可以购买入侵检测设备、入侵防御设备,防火墙等,网络设备定期修改密码,网络设备配置鉴别失败登录处理功能,配置操作超时等功能,尽量使用https协议加密传输。
除上述以外,应定期自检(漏洞扫描、弱口令扫描、基线配置信息等),对主机的端口、弱口令、安全漏洞进行扫描和发现,对已知业务应用漏洞进行扫描和发现,对已知木马进行扫描和发现,对扫描结果进行分析和提交,促进业务安全性管理和安全问题的解决
2、主机安全
在现在大多数的公司中,操作系统未安装主机入侵检测系统,未能检测到对重要服务器进行入侵的行为,能够记录攻击者的源IP、攻击类型、攻击目标、攻击时间等,未能够在发生严重入侵事件时提供报警。很多人说,这个需要购买硬件WAF或者入侵防御设备,这个的确是个不小的花销,一般的公司估计也买不起,像我们,也买不起。但是并不是说我们毫无办法。我们可以在操作系统安装实时检测与查杀恶意代码的软件产品,对恶意代码实时检测与查杀,如OSSEC和 HIDS等,这些产品都是免费开源的。
主机安全还包括系统配置安全、验证安全等等。就比如操作系统提供身份鉴别措施、配置鉴别失败处理功能(也就是登录尝试失败次数,这个可以有效防止恶意破解)、加强口令复杂度要求,在原基础上还应不含有常用字符组合、数字组合、键盘顺序等可预测密码组合、重要服务器用使用资源强制访问控制策略(如用户、进程、文件内核级保护)、应限制默认账户的访问权限,修改这些账户的默认口令,条件允许下,应重命名默认账户;
3、应用安全
a)、建议应用系统采用了两种或两种以上的组合机制进行用户身份鉴别;
b)、建议应用系统对账号口令复杂度进行限制,口令长度限制为8-20位;要求口令为数字、字母字符至少两种组合,限制口令周期不大于半年;
c)、建议应用系统启用登录失败处理功能,限制次数不大于5次,并且对登录失败用户进行帐号处理;
d)、建议应用系统应启用用户身份鉴别信息复杂度要求和登录失败处理功能;
e)、建议应用系统对重要信息资源设置敏感标记,系统不支持设置敏感标记的,应采用专用安全设备生成敏感标记,用以支持强制访问控制机制;
f)、建议应用系统开启安全审计功能,安全审计范围覆盖到每个用户以及其相关操作;
g)、建议应用系统开启安全审计功能,且审计功能不能中断和安全记录非管理员无法删除、修改或覆盖;
h)、建议限制应用系统一段时间的并发会话连接数;
i)、建议应用系统限制一个访问账号或一个请求进程的最大限额;
j)、建议应用系统提供服务优先级设定功能,根据安全策略设定访问帐户或请求进程的优先级,根据优先级分配系统资源配置;
4、数据安全及备份恢复
a)、建议提供异地数据备份功能,利用通信网络将关键数据定时批量传送到备用场地;
b)、建议提供主要网络设备、通信线路和数据处理系统的硬件冗余,保证系统的高可用性;
c)、数据的开发、测试环境如果要导入生产数据,则需要指定数据脱敏流程,将敏感的个人信息,如银行卡、手机号等信息做脱敏;
d)、数据的访问要有严格的流程,非运维人员如要访问数据,在走完权限申请流程后,可以给予他读取的权限,但是不能给他将数据备份至本地的权限,该操作可以通过windows堡垒机进行权限限制,通过管理员将该人员的剪贴板禁用即可;
e)、数据库一年要升级一次,即使你的数据库是放在内网的,但是你不能保证你们开发人员的代码不会被入侵,只要代码被入侵,或者被植入后门,就可以通过你的程序扫描到数据库。数据库的漏洞可不止一两个,基本上一年下来,一个稳定版本的数据库可以有30个左右的高危漏洞,50个左右的中危漏洞,这些个漏洞,你靠打补丁的方式根本不是解决办法,最好的方式还是升级到数据库最新版本前一个稳定版;
5、web业务安全
a)、应设置合理的会话超时阀值,在合理范围内尽可能减小会话超时阀值,可以降低会话被劫持和重复攻击的风险,超过会话超时阀值后立刻销毁会话,清除会话的信息;
b)、应限制会话并发连接数,限制同一用户的会话并发连接数,避免恶意用户创建多个并发的会话来消耗系统资源,影响业务可用性;
c)、应确保敏感信息通信信道的安全,建议在客户端与web服务器之间使用SSL。并正确配置SSL,建议使用SSL3.0/TLS1.0以上版本,对称加密密钥长度不少于128位,非对称加密密钥长度不少于1024位,单向散列值位数不小于128位;
d)、日志记录范围应覆盖到每个用户的关键操作、重要行为、业务资源使用情况等重要事件。如普通用户异常登录、发布恶意代码、异常修改账号信息等行为,以及管理员在业务功能及账号控制方面的关键操作;
e)、Web程序上线前或升级后应进行代码审计,形成报告,并对审计出的问题进行代码升级完善;
f)、应禁止明文传输用户密码,建议采用SSL加密隧道确保用户密码的传输安全;
g)、应对关键业务操作,例如修改用户认证鉴权信息(如密码、密码取回问题及答案、绑定手机号码等),需要经过二次鉴权,以避免因用户身份被冒用,给用户造成损失;
h)、应避免认证错误提示泄露信息,在认证失败时,应向用户提供通用的错误提示信息,不应区分是账号错误还是密码错误,避免这些错误提示信息被攻击者利用;
i)、应支持密码策略设置,从业务系统层面支持强制的密码策略,包括密码长度、复杂度、更换周期等,特别是业务系统的管理员密码;
j)、应支持账号锁定功能,系统应限制连续登录失败次数,在客户端多次尝试失败后,服务器端需要对用户账号进行短时锁定,且锁定策略支持配置解锁时长;
k)、应采取会话保护措施防止软件与服务器之间的会话不可被篡改、伪造、重放等;