OWASP A4 Insecure Design(不安全的设计)

Insecure Design(不安全的设计)

这个是 OWASP 在今年新出的类别.

根据 OWASP 的说法,这一类着重于在设计与架构中的风险.来呼吁更多使用到威胁建模,安全设计模式与参考架构.

也就是说在程序设计的时候,避免无效的程序设置,暴露敏感数据.

其中著名的 CWE 中有

  1. CWE-209:产生的错误信息中包含敏感信息
  2. CWE-256:受保护的凭证不足
  3. CWE-502:信任边界冲突
  4. CWE-522:凭据保护不足

更多的 CWE 例子可以点击这里

我个人更倾向于是应用设计时的逻辑漏洞

以 CWE-209 为例

比方说 SQL 注入的错误回显

也就是说, SQL 查询报错的语句,返回显示界面

至于错误回显是怎么造成的,可以看我的博客文章里

SQL 注入之错误回显

再换个思路想

在一个登录界面,你尝试乱输入一个账号和密码

这个应用它只会返回

账户不存在

密码不正确

这就很可怕了

只要它没有爬虫限制

那么我就可以尝试爬下该应用整个所有账号

所以,现在绝大部分应用的登录,业务处理等会采取准确且模糊的说服(?

再说说 CWE-256

我们可以看一段代码

$user = $_GET['user'];
$pass = $_GET['pass'];
$checkpass = $_GET['checkpass'];
if$pass == $checkpass{
    SetUserPassword($user, $pass);
    //修改密码函数
}

我们可以看出这是个简单的修改密码的过程

但是这里可以触发水平越权的漏洞

因为这段函数只是校验了密码是否正确

并没有关注修改账户的一致性

也就是说,我可以直接修改 URL 值

来达到修改其他用户账户密码的目的

总的来说,不安全设计是一种广泛的类别,会呈现许多不同的弱点.

安全设计是什么?

根据 OWASP 的说法

安全设计是一种方法,不断评估威胁,并且保证代码能够通过稳健设计和测试,防止已知的攻击方法.安全设计需要安全的开发生命周期,某种形式的安全设计模式或者铺砌道路组件库或工具,以及威胁建模。

如何预防?

本人代码资历较浅,在这里只能采用 OWASP 的说法

  • 与 AppSec 专业人员建立并使用安全的开发生命周期,以帮助评估和设计与安全和隐私相关的控制

  • 建立和使用安全设计模式库或准备使用组件的铺好的道路

  • 将威胁建模用于关键身份验证、访问控制、业务逻辑和关键流

  • 编写单元和集成测试以验证所有关键流都能抵抗威胁模型

今天又是美好的一天呢 😉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值