网站安全-安全策略小结

来源:互联网 发布:淘宝网显示手机版 编辑:程序博客网 时间:2024/05/21 22:34

网站安全,对于网站相关开发人员来说是个老生常谈的问题,网站开发的历史,在国内大约有二十年了,所以各方面的资料都比较丰富。以下内容有部分从网络整理而来,部分是自己的体会。
主要参考《白帽子讲web安全》


一、整体模型

先来看一个基本模型,适用于大部分网站
基本模型

网站的组成,基本上可以划分为三部分,server端、机房switch/router、用户clients,网上大部分给出的网络安全建议,都主要针对server端,比较少提及switch/router这两部分。个人认为,一个网站的安全策略,应该覆盖这三部分,每部分都有明确的规则,才可以打造一个相对比较安全的网站。毕竟,网站的安全有木桶效应,一个部分被hack,这个网站就是一个不安全的网站。

如果要量化,我觉得网站安全的工作量,在这三部分对应的分配权重应该是6:2:2


二、server端:

主要的安全工作都应该在server端进行管控

对于开发团队:

开发者必须要有基本的网站安全开发常识,比如0day、sql-injection、XSS、CSRF、恶意上传(脚本语言的网站尤其要注意)等,这些资料网上有很多,可以自行搜索。安全相关的文档可以考虑标准化,以便传阅和逐渐完善。网络安全是一个体系建设,配备了基础的安全手段之后,就是慢慢去完善。
一下列表一些最基本的应对方法:

  1. 对于用户的敏感信息需要加密保存(salt-hash),如密码、手机、银行卡信息等,以防被拖库之后拿去撞库,或者被公司内部人员不当利用。这个操作属于风险管理,可以合理止损。
  2. 对于用户输入,必须先过滤后使用(参考),如果实在有富文本需求,在前端要做保护措施(例如使用vuejs等前段框架后期渲染,避免从服务端直接渲染出页面),防止被投放持久化XSS攻击。cookie端要启动httponly功能,就可以避免被js访问到。
  3. 表单管理,表单尽量添加token,既可以防止重复提交,也可以防止CSRF攻击参考
  4. 对于系统管理员等一些重要角色用户,尽可能绑定IP登录或IP白名单登录,这样可以避免漏洞被第三方捕捉到之后实施的恶意操作
  5. 该混淆代码的还是要混淆的,该签名还是要签名的
  6. https https https,重要的事情说三遍

对于测试团队:

渗透测试要到位,大小版本上线前必须过渗透测试。如果条件允许的话,可以与第三方的安全团队合作,采用定制化的安全方案(小团队一般只能靠自己,而且如果业务规模不大的话很少会被盯上,业务规模上来了就可以实施更完善的安全方案了呢)

对于运维团队:

  1. 对主机信息的管理:各个主机以及主机上的软件,账号密码信息要做好记录,妥善保管,弱类型密码一律不允许使用,避免用一套账号密码
  2. 主机日常健康检查:脚本类型的文件(如php)定期校验,日志定期检查看是否有异常,防止内容被篡改。顺便提一下,避免使用ftp这种不带加密的方式上传文件到server,改用scp或者自行开发的运营工具来上传,避免被监听。
  3. 主机OS日常更新,关注乌云、阿里云社区的一些消息更新,尽可能保证系统0day少

对于团队leader:

  1. code view要到位,尤其是不能确定组员的相关安全常识和处理足够到位,就得多花些时间去审代码(如果有专门的安全相关的工程师就更好了,专人专责的效果更有保证)
  2. 网站安全知识宣贯

对于产品经理

  1. 在需求调研阶段和确认阶段,需要有一点安全意识。举个例子,16年etc卡的小额免密支付功能,属于功能漏洞。二代身份证没有挂失功能,这也是功能漏洞。ofo小黄车没有GPS,这个也是功能漏洞。0day也有部分是功能漏洞。
  2. 做好容灾方案,就算线上出问题了,也可以迅速恢复业务,尽可能减少损失。

三、机房switch/router:

如果是自建机房,建议由经验丰富的运维人员来管理维护。

  1. 不该对外暴露的ip/port(比如最近(201705)高校里面出现的比特币敲诈病毒,能够快速传播是因为校园网里面没有关闭445端口,所以在校园网里面传播非常迅速)就应该对外屏蔽。
  2. 某些主机如果只是内部人员访问的,就应该增设ip访问权限(VPN网络的管理也要加强)。可以避免被nmap等工具扫描
  3. 对于阿里云这类云主机,可以很方便地设置switch/router/安全规则,尽量重视。

四、用户client:

  1. 对于一些涉及支付交易的网站,给出明确的提示如(不可以在公共场所的电脑登录,并妥善保管密码)。或强制用户使用强密码登录
  2. 加强终端控制。由于部分终端可能是以APP的形式存在,那么业务开发的时候也要考虑到终端版本,强制用户升级或者推热修复补丁,强烈建议留push通道,不要只留pull通道,这样可以大大提高推新版本的覆盖率,便于实施安全手段。

0 0