介绍:IRify#
多语言通用代码审计产品:IRify 正式发布。
本产品以代码查询规则 SyntaxFlow 和多语言通用中间表示 YakSSA 为核心,支持代码审计、规则管理、代码扫描、漏洞风险信息处理等功能。已支持 Yaklang \ Java \ PHP \ Golang 。
欢迎访问产品主页: https://ssa.to/ 或 https://www.yaklang.com/irify 下载使用。
编译项目#
SyntaxFlow代码审计与代码扫描前都需要先进行项目编译。
手动编译#
项目管理
点击左上角项目管理
可见图中红色方框圈起的选项
编译项目的选项如下:必选项为项目路径

其他额外参数等都非必填。
直接点击首页开始审计或代码扫描,也可进行快捷编译:
代码审计


代码扫描
点击代码扫描,也可以快捷编译项目

已编译项目列表#
在项目管理页面中,可以看到已编译项目列表,将会显示已编译项目的名称、路径、编译时间和相关操作。可以进行该项目的打开、扫描以及项目删除等操作

代码扫描#
开始扫描#
首页和左上角均可进入代码扫描页面

导入新项目或选择已有项目后,再勾选左边规则,即可开始代码扫描。

扫描信息#
扫描过程中,可以看到已选规则、风险统计、扫描进度等信息。
风险与漏洞列表中可以进行删除、在代码审计中打开、误报上传等操作。

扫描结果可以从左上角进入数据库查看

代码审计#
打开已编译项目#
打开已编译的项目,将会跳转至代码审计页面。
可以检查文件内容,但这些已经编译的项目文件内容是只读的。

输入代码审计规则#
在左侧侧边栏中可以看到代码审计选项, 点开以后可以发现编写审计规则的窗口:

结果信息#
每一次查询都会得到一个变量列表,如同上文所示,在SyntaxFlow规则中定名的变量都会在结果中列出。
点开变量名将会展示该变量内保存的所有结果,点击查看其中的某一项结果,YakRunner将会展开以下结构,编辑器将会跳转到该结果对应的源码位置:

审计结果:分析路径
在右侧上半部分审计结果将会展示获得该结果的所有分析路径。
默认展开路径信息。

- 可以继续点击获得每一个路径节点对应的源码信息。

- 点击右侧信息也可以直接在编辑器跳转。
- 点击右上角为关闭详细信息或对路径进行折叠。
审计结果:分析图
右侧下半部分将会展示分析过程的图:
紫色节点代表当前结果,其他的普通节点代表分析过程中的节点。
![流程图 @@@@ 图片展示了Syntax Flow审计过程。从下至上依次有t14342、RedisLockController等多个元素,箭头指示流程走向,并有step[2583]等步骤标识,还有如“操作成功”等文本信息,体现了审计过程中的相关操作与数据交互。](/media/articles/5c3af83d7380d5f7.webp)
普通节点可以点击并且显示节点信息,点击文件路径可以在编辑器跳转:
![流程图 @@@@ 图片展示了“Syntax Flow 审计过程”的流程图。图中包含多个节点,如“#104489.ok”“value”等,节点间有箭头连接表示流程走向,还标注了如“step[4281]:getReturns”等步骤信息,下方节点信息显示了相关代码路径及“Undefined=R.ok”等内容。](/media/articles/f46e55fc0c85f2e8.webp)
规则管理#
IRify具有独立的规则管理页面,能够查看本地数据库中已经存在的规则,且支持组名与关键词搜索,右上角可进行规则的增删、导入导出等操作:
