精华内容
下载资源
问答
  • 近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。MOMO 安全团队认为,绝大部分 Web 安全漏洞源于编码,更应止于编码。...
    fc98893f05cdba781e89dab08e9ecc82.png

    喜欢就关注我们吧

    近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。

    MOMO 安全团队认为,绝大部分 Web 安全漏洞源于编码,更应止于编码。因此,MOMO 安全组针对公司内部广泛使用 Intellij IDEA 开发工具自主研发静态代码安全审计插件(MOMO Code Sec Inspector),以此辅助研发团队在编码过程中发现潜在的安全风险,并为其提供漏洞一键修复能力。

    软件效果演示

    演示一:XXE 漏洞发现与一键修复

    e68f71355ce9524d49d31cb9a6cb0312.gif5e96f8a329678c10ee8c885db185c4f3.gif

    演示二:Mybatis XML Mapper SQL 注入漏洞发现与一键修复

    6d186bfc70d14ec03a3f0b5e76f7a2ef.gif

    ▼ 往期精彩回顾 基于飞桨Res-Unet网络实现肝脏肿瘤分割任务WordPress 已过时?创始人与新架构拥护者开战教完Python,微软又推出JS免费在线教程LibreOffice:爸爸你太慢了搜狗开源srpc,C++通用RPC框架

    374fc49a18b75214d238b69427c0eb2c.gif

    adf5063e60dd46330ad5dc1155f6c718.png觉得不错,请点个在看
    展开全文
  • MOMO CODE SEC INSPECTOR一、插件介绍本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口...

    MOMO CODE SEC INSPECTOR

    一、插件介绍

    本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。

    本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃文件,检查速度快,占用资源少。

    插件提供的规则名称均以"Momo"开头。

    二、插件规则

    36de26cbb4d7b977e259840925223c2f.png

    三、项目结构

    src├── main│   ├── java│   │   └── com│   │       └── immomo│   │           └── momosec│   │               ├── aspect│   │               ├── entity│   │               ├── fix│   │               ├── lang│   │               │   ├── java│   │               │   │   ├── rule│   │               │   │   │   └── momosecurity│   │               │   │   │       └── {InspectionName}.java│   │               │   │   └── utils│   │               │   └── xml│   │               │       └── rule│   │               │           └── momosecurity│   │               │               └── {InspectionName}.java│   │               └── utils│   └── resources│       ├── META-INF│       │   ├── description.html│       │   ├── pluginIcon.svg│       │   └── plugin.xml│       └── inspectionDescriptions│           └── {InspectionName}.html└── test    ├── java    │   └── com    │       └── immomo    │           └── momosec    │               └── lang    │                   ├── java    │                   │   ├── fix    │                   │   └── rule    │                   │       └── momosecurity    │                   │           └── {InspectionName}Test.java    │                   └── xml    │                       └── rule    │                           └── momosecurity    │                               └── {InspectionName}Test.java    ├── resources    └── testData        └── lang            ├── java            │   └── rule            │       └── momosecurity            │           └── {InspectionName}            │               └──...            └── xml                └── rule                    └── momosecurity                        └── {InspectionName}                            └──...

    四、版本支持

    Intellij IDEA ( Community / Ultimate )  >= 2017.3

    展开全文
  • 代码安全审计工具

    2019-10-08 11:27:24
    免费版本 0×01 PHP代码审计 1、RIPS ...0×02 Java代码审计 findbugs 代码安全:findsecuritybugs FindSecurityBugs是Java静态分析工具FindBugs的插件 http://findbugs.sourceforge.net/downlo...

    免费版本

    0×01 PHP代码审计

    1、RIPS

    https://sourceforge.net/projects/rips-scanner/

    0×02 Java代码审计

    findbugs 代码安全:findsecuritybugs FindSecurityBugs是Java静态分析工具FindBugs的插件

    http://findbugs.sourceforge.net/downloads.html https://www.jianshu.com/p/c43940c4e025

    https://find-sec-bugs.github.io/

    https://wiki.jenkins.io/display/JENKINS/FindBugs Plugin

    0×03 其他语言代码审计

    1 .net https://security-code-scan.github.io/

    2.C++:

    代码质量:cppcheck

    代码安全: flawfinder https://sourceforge.net/projects/flawfinder/

    http://www.doc88.com/p-669125880049.html

    https://sourceforge.net/p/flawfinder/feature-requests/4/ xml格式支持

    3.JS:

    代码质量:eslint

    代码安全:https://github.com/ajinabraham/NodeJsScan

    https://blog.csdn.net/yalishandalee/article/details/61916454

    https://github.com/nodesecurity/eslint-plugin-security#rules

    4.Go:

    代码质量:golint、go tool vet

    代码安全:gas https://github.com/GoASTScanner/gas

    5.Python:

    代码质量:pylint

    代码安全:bandit,py-find-injection,pyt https://wiki.openstack.org/wiki/Security/Projects/Bandit

    https://github.com/openstack/bandit

    https://github.com/uber/py-find-injection

    https://github.com/bit4woo/python_sec https://github.com/python-security/pyt

    6.多种语言的安全代码检查工具:sonar https://docs.sonarqube.org/display/SONAR

    https://www.sonarsource.com/products/codeanalyzers/sonarjava/rules.html#Vulnerability_Detection

    https://github.com/SonarSource/sonarqub

    7.ruby https://github.com/thesp0nge/dawnscanner

    https://github.com/presidentbeef/brakeman

    多种语言

    https://github.com/WhaleShark-Team/cobra

    正则查找漏洞工具:https://grepbugs.com/

    商业化

    0x01 商业代码审计工具

    静态分析的工具RISP,VCG,Fortify SCA。

    动态工具有360的sky wolf。

    转载于:https://www.cnblogs.com/17bdw/p/11359726.html

    展开全文
  • 近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台。现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能。对自己或身边...

    近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台。现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能。对自己或身边开发人员,对java语言更熟悉,为了后期维护打算采用java写一个这样的平台。另外白盒代码安全扫描也有Fortify等收费软件,或依赖PMD做代码分析,不过比如新增了什么安全问题,需要自定义或扩展就比较麻烦。

    比如一个简单的:现在用struts2存在漏洞,现在需要升级到2.3.28版本,于是我写一个插件,判断pom.xml里如果有配置struts2,只要版本不是2.8.2就认为存在漏洞。平台提供下载制定SVN或GIT或其他服务器的代码,然后执行该插件即可扫描哪些项目有问题了。

    该项目最近几天和同事一起做了一个初步版本,想法还有不完善的地方,作为后期参考,主要目的是先搭建一个能用的架子出来。

    首先提供插件,那就需要有一个独立的jar项目作为插件依赖的接口项目,它需要定义插件的接口和交互的对象,接口需要至少2个方法:验证该插件是否可扫描,执行插件逻辑扫描,比如白盒扫描插件接口定义如下:

    public interface IWhiteboxService {

    /**

    * 验证该文件是否符合规则需求

    *

    * @param inputFile

    * 被扫描的文件信息

    * @return 验证结果

    */

    ValidateResult validate(InputFile inputFile);

    /**

    * 如果validate验证通过,则开始扫描

    *

    * @param inputFile

    * 被扫描的文件信息

    * @return 扫描结果

    */

    List scan(InputFile inputFile);

    }

    然后需要有一个统一的服务,用于调用插件执行代码扫描。通过网站或定时任务只需要调用该服务即可。后面可以做扫描任务只扫描哪些插件,比如扫描所有插件代码:

    public void scan(Whitetask task) {

    //todo:循环插件扫描。或后期根据任务和插件关闭表扫描

    if (null == task || StringUtil.isNull(task.getCodepath())) {

    //todo:记录日志,任务表有问题

    return;

    }

    /*

    * 1、读取whiteplugin表所有插件并缓存插件对应的代码,不用每次反射

    * 2、循环task.getCodepath()路径下所有文件,默认java文件,根据getFileext()的文件类型和getExcluderule()排除的文件而定

    * 根据循环后的文件存储到LIST集合里,循环时排除文件是为了减少LIST的内容

    * 3、根据循环LIST结果再循环所有文件,调用插件的代码进行扫描

    * 4、扫描结果插入whitescanresult表

    * 5、循环完毕后,修改whitetask表的当前任务扫描完毕

    */

    List allPlugins = whitepluginService.getAll();

    if (null == allPlugins || allPlugins.size() < 1) {

    //todo:记录日志,没有可用的插件

    return;

    }

    List allPluginDatas = null;

    if (null != allPlugins) {

    allPluginDatas = WhitePluginGenerator.generate(allPlugins);

    }

    if (null == allPluginDatas || allPluginDatas.size() < 1) {

    //todo:记录日志,有插件,转换失败

    return;

    }

    List fileDatas = FileGenerator.generate(task.getCodepath(), task.getFileext(), task.getExcluderule());

    doScan(fileDatas, allPluginDatas, task);

    }

    真正扫描的doScan方法:

    public void doScan(List fileDatas, List allPluginDatas, Whitetask task) {

    if (null == fileDatas || null == allPluginDatas || fileDatas.size() < 1 || allPluginDatas.size() < 1) {

    return;

    }

    for (int i = 0; i < fileDatas.size(); i++) {

    //循环每个文件调用每个插件

    FileData tempFileData = fileDatas.get(i);

    for (int j = 0; j < allPluginDatas.size(); j++) {

    //循环每个插件

    IWhiteboxService whiteboxService = allPluginDatas.get(j).getWhiteboxService();

    InputFile inputFile = new InputFile();

    inputFile.setContents(tempFileData.getContent());

    inputFile.setFileExt(FileUtil.getEXT(tempFileData.getFileName()));

    inputFile.setFileName(tempFileData.getFileName());

    //todo:这里传递的是绝对路径,不是包路径

    inputFile.setPackagePath(tempFileData.getPath());

    List inputFileContents = getFileContents(tempFileData.getContent());

    inputFile.setFileContents(inputFileContents);

    ValidateResult validateResult = whiteboxService.validate(inputFile);

    if (null != validateResult && validateResult.isIssuccess()) {

    List scanResults = whiteboxService.scan(inputFile);

    if (null != scanResults && scanResults.size() > 0) {

    //插入数据库

    for (int z = 0; z < scanResults.size(); z++) {

    Whitescanresult whitescanresult = getScanResult(inputFile, scanResults.get(z), allPluginDatas.get(j), task);

    whiteScanResultService.save(whitescanresult);

    }

    }

    }

    }

    }

    }

    根据插件扫描完成后,把结果插入扫描结果表。核心的表结构包括任务表、插件表、扫描结果表,相关主要表字段如下:

    DROP TABLE IF EXISTS `vulfeel`.`whiteplugin`;

    CREATE TABLE `vulfeel`.`whiteplugin` (

    `ID` int(11) NOT NULL AUTO_INCREMENT,

    `name` varchar(200) DEFAULT '' COMMENT '插件名称',

    `type` tinyint(4) DEFAULT NULL COMMENT '后期扩展分类',

    `importlevel` tinyint(4) DEFAULT NULL COMMENT '插件重要性,1轻微,2一般,3重要',

    `classpath` varchar(2000) DEFAULT NULL COMMENT '插件包路径,比如com.xx.vulfeel.plugin.a',

    `filename` varchar(200) DEFAULT NULL COMMENT 'class名称或jar名称,如果插件是jar包则是jar包名称,比如a.jar;否则是class名称,比如a.class',

    `functions` varchar(2000) DEFAULT NULL COMMENT '插件功能描述',

    `version` varchar(200) DEFAULT NULL COMMENT '插件版本',

    `refurl` varchar(1000) DEFAULT NULL COMMENT '插件原理参考URL等内容',

    `userid` int(11) DEFAULT NULL COMMENT '插件提供者用户ID',

    `createtime` datetime DEFAULT NULL,

    `remark` varchar(2000) DEFAULT NULL COMMENT '插件其他备注',

    PRIMARY KEY (`ID`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='白盒扫描插件表';

    DROP TABLE IF EXISTS `vulfeel`.`whitescanresult`;

    CREATE TABLE `vulfeel`.`whitescanresult` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `taskid` int(11) DEFAULT NULL COMMENT '关联任务表ID',

    `pluginid` int(11) DEFAULT NULL COMMENT '关联问题插件ID',

    `impactlevel` tinyint(4) DEFAULT NULL COMMENT '影响程度,1轻微,2一般,3重要,主要和插件表的importlevel关联',

    `classpath` varchar(2000) DEFAULT NULL COMMENT '插件包路径,比如com.xx.vulfeel.plugin.a',

    `filename` varchar(200) DEFAULT NULL COMMENT 'class名称或jar名称,如果插件是jar包则是jar包名称,比如a.jar;否则是class名称,比如a.class',

    `startline` int(11) DEFAULT NULL COMMENT '问题开始代码行',

    `stopline` int(11) DEFAULT NULL COMMENT '问题结束代码行',

    `createtime` datetime DEFAULT NULL,

    `remark` varchar(2000) DEFAULT NULL COMMENT '其他备注',

    PRIMARY KEY (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='白盒扫描结果表';

    DROP TABLE IF EXISTS `vulfeel`.`whitetask`;

    CREATE TABLE `vulfeel`.`whitetask` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `name` varchar(200) DEFAULT NULL COMMENT '任务名称',

    `codepath` varchar(1000) DEFAULT NULL COMMENT '代码路径,不依赖SVN还是GIT等,只需要传入代码地址即可',

    `fileext` varchar(200) DEFAULT NULL COMMENT '扫描的文件格式,默认java文件,逗号分隔,比如:java,js',

    `excluderule` varchar(1000) DEFAULT NULL COMMENT '不扫描的路径规则,::两个冒号分割正则,比如:.*test::js$::css$',

    `status` tinyint(4) DEFAULT NULL COMMENT '任务状态,1初始任务,2正在执行,3任务正常结束,4任务异常结束',

    `userid` int(11) DEFAULT NULL COMMENT '关联创建任务的用户ID',

    `createtime` datetime DEFAULT NULL,

    `lastmodifytime` datetime DEFAULT NULL,

    `remark` varchar(2000) DEFAULT NULL COMMENT '其他备注',

    PRIMARY KEY (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='白盒扫描任务';

    建立任务后,只需要点击执行扫描,即可根据插件扫描出结果,查看结果:

    fa1bbd07a9afce23f4a3cd571d51f3e4.png

    08116074f67985e471d9bc1699922b06.png

    比如一个简单的扫描sql注入的插件扫描结果如上,插件代码如下:

    public class SqlInjectPlugin implements IWhiteboxService {

    @Override

    public ValidateResult validate(InputFile inputFile) {

    // TODO Auto-generated method stub

    ValidateResult result = new ValidateResult();

    result.setIssuccess(false);

    if (null == inputFile || null == inputFile.getFileContents()) {

    return result;

    }

    if (inputFile.getPackagePath().contains("dao")) {

    result.setIssuccess(true);

    }

    return result;

    }

    @Override

    public List scan(InputFile inputFile) {

    // TODO Auto-generated method stub

    List result = new ArrayList();

    ScanResult scanResult = new ScanResult();

    if (null == inputFile || null == inputFile.getFileContents()) {

    return result;

    }

    Pattern pattern = Pattern.compile("(\"[^\"]+\"|\\w+)\\s*(\\+|\\+=)\\s*\\w+");

    if (inputFile.getPackagePath().contains("dao")) {

    //只扫描包路径有dao的文件

    //循环inputFile的每一行,如果有拼接sql就说明存在注入

    for (int i = 0; i < inputFile.getFileContents().size(); i++) {

    InputFileContent inputFileContent = inputFile.getFileContents().get(i);

    Matcher matcher = pattern.matcher(inputFileContent.getContent());

    if (matcher.find()) {

    scanResult.setStartline(inputFileContent.getLine());

    scanResult.setStopline(inputFileContent.getLine());

    scanResult.setRemark("存在sql拼接!");

    result.add(scanResult);

    }

    }

    }

    return result;

    }

    }

    现在项目主要是搭建一个架子,web黑盒扫描的架子也类试,白盒扫描现在是静态代码扫描,没有用PMD等对代码生成语法树分析等,还非常简单。后面有时间再完善和扩展。

    如需要转载请注明来自:http://lawson.cnblogs.com/

    展开全文
  • 近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台。现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能。对自己或身边...
  • 这边给大家介绍一款可在本地使用的代码安全扫描插件,方便在开发阶段自动化安全检查,降低漏洞修复时间和减少漏洞出现的概率。 插件简介 插件介绍:Find-Sec-Bugs是一款本地 bug 扫描插件 “FindBugs-IDEA” 的 ...
  • 2. 插件简介 3. 插件安装扫描配置介绍  3.1 IntelliJ IDEA 配置介绍 3.1.1 插件安装 3.1.2 添加漏洞规则库 3.1.3 扫描配置 3.1.4 开始源码扫描 3.1.5 扫描结果  3.2 Eclipse 配置介绍 3.2.1 插件安装 ...
  • 近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。 MOMO 安全团队认为,绝大部分 Web 安全漏洞源于编码,更应止于编码...
  • 近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。MOMO 安全团队认为...
  • 近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。MOMO 安全团队认为,...
  • 近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。MOMO 安全团队认为...
  • 程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 2.8 分钟。来自:网络近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspec...
  • 这是一款结合白盒跟黑盒的半自动化代码安全审计系统。 该版本只支持PHP,近期会加上ASPX、ASP、JSP的代码审计功能,并且实现4套规则的配置,另外还会加上自定义审计的扩展名,方便灵活审计不同脚本代码。 由于...
  • wordpress系统本身代码,很少出现sql注入漏洞,反倒是第三方的插件出现太多太多的漏洞,我们发现,仅仅2019年9月份就出现8个插件漏洞,因为第三方开发的插件,技术都参差不齐,对安全方面也不是太懂导致写代码过程中...
  • 第一部分 审计流程用户请求的处理流程获取请求全局过滤模块文件C函数内容M函数内容V显示通读原文函数集文件配置文件安全过滤文件Index文件网站目录结构主目录模块目录插件目录上传目录模块目录数据目录配置目录配置...
  • 第一部分 审计流程用户请求的处理流程获取请求全局过滤模块文件C函数内容M函数内容V显示通读原文函数集文件配置文件安全过滤文件Index文件网站目录结构主目录模块目录插件目录上传目录模块目录数据目录配置目录配置...
  • 说明:此配置只适合maven部署java代码1、在Jenkins上安装插件2、登录sonarqube在配置-->安全-->输入token名点击Generate创建一个token复制生成的token3、在Jenkins的系统管理的配置-->系统设置,配置...
  • 很少出现sql注入漏洞,反倒是第三方的插件出现太多太多的漏洞,我们SINE安全发现,仅仅2019年9月份就出现8个插件漏洞,因为第三方开发的插件,技术都参差不齐,对安全方面也不是太懂导致写代码过程中没有对sql注入,...
  • 1.下载ladp插件 2.ldap登陆配置: sonar.jdbc.username=sonar sonar.jdbc.password=sonar #score.jdbc.driverClassName=com.mysql.jdbc.Driver sonar.jdbc.url=jdbc:mysql://localhost:3306/so...
  • Web安全审计工具 - W3af

    2012-04-02 15:30:00
    该项目的目标是要建立一个框架,以寻找和开发Web应用安全漏洞,很容易使用和扩展。w3af的核心代码和插 件完全由python编写。项目已有超过130个插件,这些插件可以检测SQL注入、跨站脚本、本地和远程文件包含等漏洞。...
  • 点击关注公众号,Java干货及时送达本插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。本插件利用IDEA原生Inspection机制...
  • 插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。本插件利用IDEA原生Inspection机制检查项目,自动检查当前活跃窗口的活跃...
  • 尽管与JavaScript解释器方法相比,我们要处理更多的细节,但它仍然可以作为白名单而不是黑名单来运作,这使其实现代码更加紧凑,因此也更便于审计。作为另一个加分项,它还是由受人尊敬的Web社区成员所创建的。但是...
  • 浏览器插件

    2019-05-13 20:19:34
    代码安全审计;测试SQL注入,XSS调试和网站安全性; foxyProxy:服务器代理 DVWA:绕过防火墙都可以; WebDevelop查看cookie值:可以自动生成html界面,告诉你cookie值;禁用js modify headers...
  • Hackbar是一款基于浏览器的简单的安全审计或者说是渗透测试工具,能够帮助您测试sql注入,XSS漏洞和站点安全性,帮助开发人员对其代码进行安全审计。 本篇博客介绍的是基于Chrome浏览器的hackbar插件的安装与注册,...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

代码安全审计插件