ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cobra代码审计

2022-01-29 18:34:18  阅读:219  来源: 互联网

标签:审计 bin cobra python 代码 py Cobra usr


目录

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,还得写本地防火墙规则或者直接禁用防火墙)

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

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

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

欢迎加入QQ群一起讨论Linux、开源等技术

标签:审计,bin,cobra,python,代码,py,Cobra,usr
来源: https://www.cnblogs.com/smlile-you-me/p/15855571.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有