《白帽子讲Web安全 》 随手记(五)

    第十六章 互联网业务安全
        1产品需要什么样的安全
            安全是产品的一个特性

            在设计之初就应该考虑是否存在安全隐患。

            在这些开发者眼里,优先顺序是

            功能实现、执行性能、可用性、按计划上线、可维护、安全

            google搜索结果的安全,领先对手,检测挂马网站、钓鱼网站、欺诈网站。

            反垃圾邮件领域,各家互联网公司各有妙招。垃圾邮件多少,也能判断出各个互联网公司在安全实力上的高低。

            一个成熟的产品几乎必然会存在安全性方面的竞争。

            安全做好了,产品最终才能真正成熟。

            优秀的安全产品,至少还必须具备两个条件:
            一、良好的用户体验
            二、优秀的性能

            最基本的做法是使用用户名和密码认证
            双因素认证可能会减低用户体验。
            U盾,令牌的制作成本比较高
            客户端证书需要解决不同的浏览器操作系统兼容问题,
            证书过期更新也不是容易的事情。

            密码复杂度这个问题,其本质其实可以分解为:
            1.如何对抗暴力破解
            2.如何防止密码中包含个人信息

            检测到暴力破解行为后,向特定客户端返回一个验证码,也可以有效地缓解暴力破解攻击。

            防止密码中包含个人信息,可以先对用户进行信息收集,发现弱口令后告警用户。

            产品最好能够潜移默化地培养用户的安全习惯,将用户往更安全的行为上引导。

        2业务逻辑安全
            如果网站有多套系统,要注意修改密码时要同步,考虑充分体系间的影响。

            网站页面展示的是nickname而非用户的ID,防止针对ID的攻击。

            验证码可以有效防止暴力破解,但是不要在用户第一次登陆时就使用验证码。

            暴力破解需要高效率,检测到行为特征后锁定该IP,而不是账号,这样仅仅是把坏人关在门外。

            进行敏感操作时要再次认证用户的身份,堤防黑客盗用身份操作。

            认证用户可以使用安全问题、安全邮箱、手机验证码。

            比较好的方法是,是使用用户在网站上留下的私有信息,比如曾经使用过的密码,已经删除的留言等。
            这些个人足迹信息被称为用户基因

        3账户是如何被盗的
            网站登录过程中无HTTPS,密码在网络中被嗅探。

            用户电脑中了木马,被键盘记录软件获取

            用户被钓鱼网站迷惑,骗取密码

            某登录入口没有防护,被暴力破解。

            取回密码存在逻辑漏洞。

            网站存在XSS 等客户端脚本漏洞,导致账户间接被盗

            网站存在SQL漏洞,导致黑客入侵导致用户账户信息泄露。

            按照DREAD模型,发现安全工作的优先级为,登录时的安全、网站实现上的安全、用户使用环境的安全。

            暴力攻击因为门槛低,将长期一直存在。

        4互联网的垃圾
            垃圾注册几乎成为一切业务安全的源头

            认定一个账号是垃圾账号的依据是,该账号目的不是网站所提供的直接服务。

            如果仔细分析垃圾注册的行为特征,可以大致分为:内容特征、行为特征、客户端本身的特征。
            基于内容的规则:以自然语言分析、关键字匹配等为代表。
            基于行为的规则:以业务逻辑规则为代表。
            基于客户端识别的规则:以人机识别为代表,比如验证码,让客户端去解析JS语句。

            三条规则并用效果会好些,最终建立一个比较完善的风险控制系统。
            检测到恶意用户后,打个时间差,防止规则见光死。

        5关于网络钓鱼
            控制钓鱼网站的传播途径,就能对钓鱼网站起到有效打击。

            钓鱼网站的防御需要浏览器,反病毒厂商,银行,政府参与建立统一联盟。

            直接打击钓鱼网站

            监控到钓鱼网站后,通知DNS运营商、IDC运营商关停。

            对用户的教育是必不可少的一环,告警用户很必要,但是过多的警告会使用户丧失警觉性。

            模糊测试是 故意向应用程序引入不良格式或随机数据诱发程序故障。

        6用户私隐保护


    第十七章 安全开发流程(SDL)
        1SDL简介
            SDL适用于软件开发商,他们以贩卖软件为主要业务,
            SAMM更适用于自主开发软件的使用者。

        2敏捷SDL

        3SDL实战经验
            1.充分沟通,排出足够的时间。
            2.立项通知安全部门,避免遗漏。
            3.树立安全部门的权威,必须由安全部门审核完成才能发布。
            4.将技术方案写入工作手册中
            5.安全部门给工程师培训安全方案
            6.记录所有bug,激励bug少的部门。

        4需求分析与设计阶段

        5开发阶段
            最佳实践是制定出开发者的开发规范,并将安全技术方案写进开发规范中,让开发者牢记。

            将按方案写入开发规范中,就真正地让安全方案落了地。

            回溯函数的调用如果遇到问题就换一个思路。
            代码自动化审核工具的另一个思路是,找到所有可能的用户输入入口,然后跟踪变量的传递情况,
            看变量最后是否会走到危险函数处。这种思路比回溯函数调用过程要容易实现,但会存在较多的误报。

            甲方公司完全可以定制代码审核工具。核心思路是,并非直接检查代码是否安全,而是检查开发者是否遵循了开发规范。

        6测试阶段
            可以基于开源的免费扫描器开发公司内部审核工具,比如w3af,skipfish
    
    第十八章 安全运营
        1把安全运营起来
            无论是例行检查发现漏洞,还是0day被公布,都要完成这几件事情。
            1. 建立漏洞跟踪机制,根据优先级无遗漏地修补
            2. 建立漏洞分析机制,协同程序员一起修补
            3. 定期统计漏洞,并校验漏洞修复情况。

            对存在过的漏洞归档,可以从全局的角度看到系统安全的状况。
            
        2漏洞修补流程

        3安全监控

        4入侵检测

        5紧急响应流程
            紧急响应一个漏洞主要的工作是在第一时间弄清楚问题产生的原因,并协调相关部门进行处理。
            注意两件事。
            一是需要保护安全事件现场,不着急评估损失,先弄清楚入侵者的行为有哪些。
            比较合理的做法是先将被入侵的机器下线,在线下进行分析。
            二是以最快的速度处理完问题。

            紧急流程建立后可以适当地进行一两次演习,以保证流程的有效性。

        6小结

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值