Cobra介绍

Cobra是一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显著的安全问题和漏洞。

由于开发人员的技术水平和安全意识各不相同,导致可能开发出一些存在安全漏洞的代码。 攻击者可以通过渗透测试来找到这些漏洞,从而导致应用被攻击、服务器被入侵、数据被下载、业务受到影响等等问题。 “源代码安全审计”是指通过审计发现源代码中的安全隐患和漏洞,而Cobra可将这个流程自动化。

Cobra为什么能从源代码中扫描到漏洞?

对于一些特征较为明显的可以使用正则规则来直接进行匹配出,比如硬编码密码、错误的配置等。 对于OWASP Top 10的漏洞,Cobra通过预先梳理能造成危害的函数,并定位代码中所有出现该危害函数的地方,继而基于Lex(Lexical Analyzer Generator, 词法分析生成器)和Yacc(Yet Another Compiler-Compiler, 编译器代码生成器)将对应源代码解析为AST(Abstract Syntax Tree, 抽象语法树),分析危害函数的入参是否可控来判断是否存在漏洞(目前仅接入了PHP-AST,其它语言AST接入中)。

Cobra控制台

Cobra源代码安全审计

Cobra特点

Multi-language Supported(支持多种开发语言)支持PHP、Java等开发语言,并支持数十种类型文件。

Multi-Vulnerabilities Supported(支持多种漏洞类型)首批开放数万条不安全的依赖检查规则和数十条代码安全扫描规则,后续将持续开放更多扫描规则。

GUI/CLI/API Mode(命令行模式和API模式)提供本地Web Server服务,可使用GUI可视化操作,也可支持本地API接口,方便和其它系统(发布系统、CI等)对接扩展。

开发源代码(基于开放的MIT License,可更改源码)

支持开发语言多(支持十多种开发语言和文件类型)

支持漏洞类型多(支持数十种漏洞类型)

支持各种场景集成(提供API也可以命令行使用)

专业支持,持续维护(由白帽子、开发工程师和安全工程师一起持续维护更新,并在多家企业内部使用)

Cobra安装

系统支持

系统支持情况mac OS支持

Linux支持

Windows暂不支持

Python版本

Cobra可运行在Python 2.6 - 3.6+之间。

特殊依赖

以下系统需要单独安装依赖。

macOS系统依赖

brew install grep findutils flex phantomjs

1

2

brewinstallgrepfindutilsflexphantomjs

Ubuntu系统依赖

apt-get install flex bison phantomjs

1

2

apt-getinstallflexbisonphantomjs

CentOS系统依赖

yum install flex bison phantomjs

1

2

yuminstallflexbisonphantomjs

Cobra安装方法

git clone https://github.com/WhaleShark-Team/cobra.git && cd cobra

pip install -r requirements.txt

python cobra.py --help

1

2

3

gitclonehttps://github.com/WhaleShark-Team/cobra.git && cd cobra

pipinstall-rrequirements.txt

pythoncobra.py--help

Cobra支持以下开发语言和文件类型

语言用来标记扫描规则对应需要扫描的后缀。 Cobra支持以下开发语言和文件类型,支持程度取决于对应开发语言或文件类型的规则数量。

语言主语言后缀PHP是.php/.php3/.php4/.php5

Java是.java

Python是.py

JSP否.jsp

C否.h/.c

Ruby否.rb

Perl否.pl

Lua否.lua

Go否.go

Swift否.swift

C++否.c/.cpp

C#否.cs

Header否.h

Objective-C否.m

Scale否.sbt/.scale

Ceylon否.ceylon

Kotlin否.kt

SHELL否.sh

BAT否.bat

JavaScript否.js

HTML否.html/.htm/.pthml

CSS否.css/.less/.scss/.styl

Image否.jpg/.png/.bmp/.gif/.ico/.cur

Font否.eot/.otf/.svg/.ttf/.woff

Conf否.properties/.conf/.ini/.cfg/.yml/.xml/.iml/.sfp/.manifest

CMake否.cmake/.cmake.in

SQL否.sql

Compression否.zip/.tar/.tar.gz/.rar

Executable否.exe

LOG否.log

Text否.txt/.text/.md/.rst/.csv

Office否.doc/.docx/.wps/.rtf/.xls/.ppt

Media否.mp3/.mp4/.swf/.flv

Certificate否.p12/.crt/.key/.pfx/.csr

Source否.psd/.ai/.axure/.xmind/.plan

Thumb否.db/.DS_Store

GIT否.pack/.idx/.sample

Cobra能发现哪些漏洞?

Description(EN)Description(CN)Misconfiguration错误的配置

Server-Side Forge服务端伪造

Hard-coded Password硬编码密码

Cross-Site Script跨站脚本

Cross-Site Request Forge跨站请求伪造

SQL InjectionSQL注入

Xpath InjectionXpath注入

LDAP InjectionLDAP注入

XML External Entity InjectionXML实体注入

Local/Remote File Inclusion文件包含漏洞

Code Injection代码注入

Command Injection命令注入

Information Exposure信息泄露

Predictable Pseudorandom Generator可预测的伪随机数生成器

Unvalidated Redirect未经验证的任意链接跳转

HTTP Response SplittingHTTP响应拆分

Session FixationSESSION固定

unSerialize反序列化漏洞

Deprecated Function废弃的函数

Logic Bug逻辑错误

Variables Override变量覆盖漏洞

Weak Function不安全的函数

Weak Encryption不安全的加密

WebShellWebShell

Android VulnerabilitiesAndroid漏洞

iOS VulnerabilitiesiOS漏洞

Insecure Components引用了存在漏洞的三方组件(Maven/Pods/PIP/NPM)

更多细节看文档

cobra结合java_Cobra – 开源的多语言源代码安全审计工具相关推荐

  1. 语言 班费管理系统源代码_固定资产管理系统开源的各种语言翻译

    固定资产管理系统开源指的是将固定资产管理系统源代码进行开发,进而得到可以免费使用的固定资产管理系统,即是开源的固定资产管理系统.固定资产管理系统简单来说就是利用现代信息技术智能化管理企业资产的管理系统 ...

  2. 64位开源处理器Rocket的源代码简单介绍

    最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件的功能有了一些大致的了解,Mark一下. Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成 ...

  3. 随机森林c语言编程,一种基于随机森林的C语言源代码静态评分方法与流程

    本发明涉及评分领域及机器学习领域,它特别涉及一种基于随机森林的c语言源代码静态评分的构建方法. 背景技术: c语言源代码静态评分是指对根据一定的题目描述做出解答的c语言源代码进行评分.目前,主要流行的 ...

  4. MATLAB里面的filter和filtfilt的C语言源代码

    MATLAB里面的filter和filtfilt的C语言源代码 嗯,算法非常简单,就是网上搜不到C代码实现.filter是个很万能的数字滤波器函数,只要有滤波器的差分方程系数,IIR呀FIR呀都能通过 ...

  5. 计算星期c语言编码,[转载]计算任何一天是星期几的C语言源代码.

    [转载]计算任何一天是星期几的C语言源代码. #include int main() { int day,mn,yr,i,days=0,s,k; int mont[13]={0,31,28,31,30 ...

  6. c语言手游常用代码,c语言源代码【操作流程】

    很多小伙伴都遇到过c语言源代码的困惑吧,一些朋友看过网上零散的c语言源代码的处理方法,并没有完完全全明白c语言源代码是如何解决的,今天小编准备了简单的解决办法,只需要按照1:编写C源代码for_lea ...

  7. ras的c语言源代码文档,µMore(µITRON操作系统)--功能概况

    µMore™ (µITRON操作系统) 概览 μMore是一种专门为下一代移动设备设计的实时操作系统,与μITRON4.0标准应用概要兼容.μMore具有轻松节电功能,并附带了爱可信的AVE-TCP网 ...

  8. 中国象棋源码c语言,中国象棋C语言源代码.doc

    中国象棋C语言源代码 *chess.c*/ #include "dos.h" #include "stdio.h" /**/ #define RED 7 #de ...

  9. 二元函数求最小值 c语言,遗传算法C语言源代码(一元函数和二元函数)

    <遗传算法C语言源代码(一元函数和二元函数)>由会员分享,可在线阅读,更多相关<遗传算法C语言源代码(一元函数和二元函数)(15页珍藏版)>请在人人文库网上搜索. 1.C语言遗 ...

最新文章

  1. windows睡眠(休眠)唤醒助手_一劳永逸解决WIN10所有睡眠问题
  2. 用matlab绘制一个时钟
  3. [转]python yield
  4. 分析递归函数的时间复杂度
  5. 关于TCHAR和string对象的c.str()一些注意事项
  6. 为什么要始终启用编译器警告?
  7. 做软件也是要有点追求的
  8. HttpUtils发送delete方法
  9. 自然资源部标准地图底图转矢量Shapefile并配准
  10. iphone开发每日一练【2011-10-04】
  11. 中国银联在线支付接口开发——前台支付
  12. 【价值积累】属于我的创业感悟
  13. idm 2019 中文版下载
  14. 洛谷 P1490 买蛋糕 解题报告
  15. 互联网业务实战(一)--今日头条文章发布实现
  16. 【面试准备】MySQL索引篇
  17. Python SyntaxError: Missing parentheses in call to 'print'
  18. influxDB自定义查询时区
  19. PDCCH-based WUS signal
  20. 平克四部曲之《白板》

热门文章

  1. Spring Cloud Gateway 结合 OAuth2 提供 UAA 服务,来袭。
  2. linux系统定时备份mysql备份数据库
  3. 20、Gateway 过滤器
  4. 准Z源光伏并网系统MATLAB仿真模型,采用了三次谐波注入法SPWM调制
  5. 前端基础 至 form表单提交方式
  6. 软件测试——自动化测试框架有哪些?
  7. c语言定义不定长数组初始化_C语言数组初始化的三种方式
  8. 杨元原博士国密课堂 · 第二期 | 商用密码应用安全性评估:Part2. 商用密码算法
  9. 设计师常用的几个资源网站,你都知道几个呢?
  10. 【Python】json数据解析