sdl一点感悟

admin 2022年2月18日08:51:00评论35 views字数 1274阅读4分14秒阅读模式

SDL里,规则是核心,其他都是开发。

重点是静态代码扫描,数据流算法才是核心,那么为啥用字节码呢?字节码携带的信息显然超过ast,而且方便构建basic blocks。

还有cfg不等于调用栈,好多小学生都会搞混,建议多读书。

还有就是基本的数据流会实现过程间(内),到达定值等功能,这是因为代码在运行的时候会遇到这些场景的分析。一个工具厉害不厉害主要看

1.是用字节码还是ast

2.实现了哪些transfer functions

Iast的各种依靠于asm javasist。这些工具给你构造出调用栈,调用栈可能是用的原生的StackTraceElement,然后用asm javasist hook函数,StackTrace这个更像Cfg,这就是我说的缺陷,不能检测出来一些特殊情况,因为是函数调用。具体没实践过,不过我觉得是这样的,包括我和同学沟通的结果来看。

关于漏报,其实我想说数据流分析大部分都是may analysis的,规则的优化可以更精确,因为你的source sink已经是may analysis了。

越权这个其实如果可以用iast调用栈来hook用户中心的鉴权函数来实现越权检测。而且会准,如果要更准,其实可以构建业务逻辑流,这个和实现dataflow有异曲同工之妙。

实现类似dataflow很难,可以考虑几个关键函数的跟踪,可以用datalog那样的的东西,也不需要实现复杂的数据流,而实现基础的流图就可以了。不过前提是大家同一认证。不过对于那些非统一认证的,这个方法很难实现。所以!基础设施和数据治理是多么重要的!cms,规范!没有这个就和空中楼阁一样!

现在的甲方安全也是近10来年发展起来的,很多东西都是这样建设的,建设到后面发现不行就要推倒,去建设基础,这个是基本常识…前面踩过坑的人要告诉后人有啥更好的解决方案。

还有bp制度,bp是安插在开发里的帮助开发一起解决安全问题的角色,承担开发安全。

bp级别不用太高,一般的p7足够了。推东西的时候让开发领导来参与,而且要充分尊重开发领导的需求!充分尊重!开发很忙的,他的活都没干完,还要处理你复杂的安全流程。

所以,把安全工具赋能给开发很重要,就把自己当做一个公司里的乙方,甲方是开发,他们想怎么更好落实安全的要求,更便捷,更简单方便,这个是核心。

安全还和公司类型有关,一般企业不注重用户隐私,泄露了也不影响公司左转,有些银行证券,那对安全要求就非常高,也非常配合安全,安全地位也高,很多安全理念可以实施。

安全的最高目标是消灭漏洞,就是让开发不要写出漏洞,所以编码一定要有规范,框架要实现安全需求,例如安全的orm,安全且自动的对象绑定等,ide编码的时候提示fastjson版本过低,不改不给打包。

不过这样也有坏处,安全左移了,开发不写漏洞了,越权漏洞在后面的iast里被干掉了,常规漏洞就没了。

你消灭了漏洞,那么接下来,领导就要开始消灭你了。安全部门就可以缩减编制大量裁员。

那……还怎么搞政治斗争?怎么刷预算!

安全还是右移吧,混口饭吃不容易。

本文始发于微信公众号(xsser的博客):sdl一点感悟

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月18日08:51:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   sdl一点感悟https://cn-sec.com/archives/481817.html

发表评论

匿名网友 填写信息