怎么自定义安全检测规则

本贴最后更新于 2459 天前,其中的信息可能已经事过景迁

对于应用软件的分析常见的分类方式有以下两种:一种按照程序代码的文本形式分为二进制和源代码分析,这种分类法更多是从技术实现的角度出发;另一种按照是否运行程序代码,将程序分析方法分为动态和静态分析,这种分类方式更容易说清漏报和误报的发生根源.动态分析是通过真实或模拟环境执行程序发现漏洞(黑盒),而静态分析不执行程序,通过对源代码或二进制文件等进行漏洞检测(白盒)。由于程序漏洞大多使用隐蔽的数据或函数.所以动态检测的方式很难发现大部分的程序漏洞。通过静态分析源代码或二进制文件来发现程序的威胁效果是最好的。目前静态代码分析主要有以下几种方式:

  1. 缺陷模式匹配:这种方式的原理是建立一个缺陷模式库,将需要检测的源代码与缺陷模式库进行匹配,来发现代码中存在的安全问题。这种方式的优点是简单易实现,缺点则是误报率高,且需要缺陷模式库足够强大。

  2. 类型推断:这种检测方式是通过对代码中运算对象类型进行分析,保证每条语句都针对正确的类型进行执行。这种方式需要制定一套类型推理的规则。类型推断技术能够检测出代码中的类型错误,检测代码质量方面的一些问题,但对于安全问题的检测不够适用。

  3. 模型检查:这种检测方式将代码抽象成一个自动机系统,每条语句抽象为其中的一个状态,通过分析这个状态机,分析出代码中的问题。这种方式能够检验出程序并发等时序特性,对安全问题的检测也不够适用。

  4. 数据流分析:这种方式是从分析程序的语法出发,通过分析控制流图,得到程序中所有变量的定值信息,包括变量的值、赋值、 传递等信息。这种方式需要首先对程序进行完善的语法解析,工作难度较大,但实现后,能够有效的分析出安全问题的传播, 降低静态分析的误报率,因此对于安全分析意义较为重大。

    那么以上的类型如何落地呢?当前的我们的工作场景主要是通过 fuzzing、反复黑盒测试发现应用系统中发现的安全问题,为了提高效率,增大漏洞检测覆盖面,通过优化商业安全工具或者自研静态代码审计工具来提升 1、4 方面的技术效果进行提升,可以从技术上验证实现了对此类接口的二次开发,容许进行自定义规则。当前的首要工作需要逐步根据 casestudy 和基于经验的一些漏洞收集分析规则,作为后续工作的重要储备,最好有案例或者错误代码,团队审议如何编制加入这些自定义检测规则。

    暂时将规则大致为 CSRF,XSS,SQL 注入,命令执行,JSON 劫持,信息泄露,水平权限,服务器访问控制,源代码泄露,逻辑设计,权限控制,上传漏洞,Git 仓库潜在风险,安全配置不当,URL 重定向,CRLF 漏洞,ssrf,暴力破解、运行时暴露敏感信息明文,降低误报率。合入试运行的时候,采用命名为-TEST 开头的标志

  • 代码
    470 引用 • 591 回帖 • 9 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    229 引用 • 476 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 444 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 26 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 240 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    133 引用 • 796 回帖
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 465 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    268 引用 • 666 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1432 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 605 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 7 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 1 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 368 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26169 引用 • 108698 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 82 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖 • 5 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    134 引用 • 1127 回帖 • 110 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    300 引用 • 768 回帖
  • 996
    13 引用 • 200 回帖 • 4 关注