cobra代码审计

目录

Cobra介绍

参考

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为什么能从源代码中扫描到漏洞

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

Cobra安装

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

# 修改hosts
浏览器打开 https://ipaddress.com/website/github.com ,将解析到的github.com地址写到hosts中

# 安装依赖和常用工具
yum -y install flex bison phantomjs git
yum -y install epel-release
yum -y install python-pip


# 安装python3.7
1、安装依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel wget
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar xvf Python-3.7.3.tgz
cd Python-3.7*/
./configure --prefix=/usr/local/python3.7
make && make install
mv /usr/bin/python{,-202201291718}
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python
python -V
cd 

注意:
yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2即可。


# 克隆cobra项目
git clone --depth=1 https://github.com/WhaleShark-Team/cobra.git 
cd cobra
/usr/local/python3.7/bin/pip3 install --upgrade pip
/usr/local/python3.7/bin/pip3 install -r requirements.txt
python cobra.py --help
回显:
usage: cobra [-h] [-t <target>] [-f <format>] [-o <output>] [-r <rule_id>]
             [-d] [-sid SID] [-dels] [-rp] [-m] [-H <host>] [-P <port>]

    ,---.     |
    |    ,---.|---.,---.,---.
    |    |   ||   ||    ,---|
    `---``---``---``    `---^ v2.0.0-alpha.5

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

Cobra is a static code analysis system that automates the detecting vulnerabilities and security issue.
....
    ....
Usage:
  python cobra.py -t tests/vulnerabilities
  python cobra.py -t tests/vulnerabilities -r cvi-190001,cvi-190002
  python cobra.py -t tests/vulnerabilities -f json -o /tmp/report.json 
  python cobra.py -t https://github.com/ethicalhack3r/DVWA -f json -o feei@feei.cn 
  python cobra.py -t https://github.com/ethicalhack3r/DVWA -f json -o http://push.to.com/api 
  python cobra.py -H 127.0.0.1 -P 8888


# 启动cobra的web页面
python cobra.py -H 192.168.1.113 -P 80

如-H后面参数写127.0.0.1,则只能本机打开web页面,如本地没装图形界面,该web页面启用与否没差异
如要通过网络访问,-H后面参数需写可从网络中访问到的IP,还得写本地防火墙规则或者直接禁用防火墙)

cobra代码审计

如果要在web页面提交自己准备的web程序包来执行扫描,需要执行一下初始化配置,否则会提示upload错误。
在cobra.py文件所在目录,有个配置文件模板 config.template
[root@node3 cobra]# pwd
/root/cobra
[root@node3 cobra]# cp config.template  config

==============================================

也可通过下面git地址或通过具体目录位置进行扫描

cobra代码审计

欢迎加入QQ群一起讨论Linux、开源等技术
cobra代码审计

上一篇:Pytest运行多个py文件


下一篇:Django基础(二)Django配置信息——路由(三)路由的使用方式