白帽子(1)-web世界观

基本概念

  • 安全问题本质是信任问题
设计安全方案的基础都是建立在信任关系上的,我们必须相信一些东西,必须有一些基本的假设,安全方案才能建立。
  • 安全是一个持续的过程
安全是一个持续的过程,攻击方式在变,防御方式也在变

安全要素

  • CIA
名称 英文名 说明
机密性 confidential 要求保密的数据内容不能被泄露
完整性 integrity 数据不能被篡改,是完整的
可用性 availability 保护资源可以得到,DOS
  • 扩充的一些要素:可审计性不可抵赖性

安全评估

  1. 资产登记划分
    网络安全的核心问题时数据安全,因此,我们主要对数据的等级进行划分,当然对于服务器等固有资产主要从管理,物理安全角度去考虑.
    当我们对数据安全划分后,然后就想划分信任域和信任边界。如网络逻辑:Data Store --> web_app --> internet

  2. 威胁分析

    1. 威胁(Threat:可能造成危害的来源
    2. 了解stride模型
威胁 定义 对应安全属性
spoofing 伪装 冒充他人身份 认证
Tampering 篡改 修改数据或代码 完整性
Repudiation 否认做过的事情 不可抵赖
Information Disclosure 信息泄露 机密信息泄露 机密性
Denial of Service 拒绝服务 DOS 可用性
Elevation of Privilege 提升权限 未授权访问 授权
  1. 风险分析

    1. 风险:可能造成的损失,公式
    Risk = Probability * Damage Potential (可能性 * 损失严重程度)
    
    1. Dread模型
等级
Damage Protential 损失严重程度 提权,非法文件上传 泄露敏感信息 泄露其他数据
Reproducibility 可重复 随意再次攻击 重复,有时限 很难重复
Exploitability 可利用度 好利用 高级黑客才能 利用环境太难
Affected User 所有用户,默认用户,关键用户 部分用户,非默认用例 匿名用户
Discoverability 暴露性 很显眼 需要深入挖掘 发现极为困难
  1. 设计安全方案
    • 能有效解决问题
    • 用户体验好
    • 高性能
    • 低耦合
    • 易于扩展和升级

白帽子兵法

  1. Secure By Default
    黑白名单原则
    尽可能用白名单,但白名单的度必须得到控制,比如匹配字符串用了“*”,就比较危险
    最小权限原则
    减少暴露面

  2. 纵深防御原则
    考虑全面,在不同层面,不同方面实施安全方案,避免出现疏漏,方案之间关联形成整体
    原因:没有什么防御方案是万能,比如一个入侵案例中,攻击者可能经历多个攻击环节(获取权限,上传文件,提权,渗透内网等),
    如果我们攻击环节都有相关的安全措施,入侵难度就会增加
    在正确的地方做正确的事
    安全方案实施地点要有效,比如xxs只有在html显示时才能生效,过滤特殊字符串是一种常用手法,但过滤要考虑实际输出,不能任何情况都去过滤,改变用户的输入意图。也就是说,简单在系统获取输入时时就对变量过滤特殊字符,很容易误杀。最好是再拼装html时,系统获取html上下文语意后,决定需要过滤的字符串,来避免误杀情况

  3. 数据与代码分离原则
    这个是解决注入问题的基本思路。不同的注入手法,有不同的解决方式

  4. 不可预测原则

    1. 缓冲区溢出场景,我们通过ASLR技术,让程序每次启动,进程的栈基值都不相同。
    2. 序号管理将数字升序排序改为字符串随机
    3. CSRF中的token

猜你喜欢

转载自blog.csdn.net/CPriLuke/article/details/106882879