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)
更多细节看文档