有关Whispers
Whispers是一款功能齐全的静态数据编码分析工具,该工具可以协助众多科学研究工作人员分析各种各样常用的数据信息格式,并检索硬编码凭据和风险函数公式。Whispers支持在命令终端设备中运作,或是还可以将其集成化到CI/CD管路中。
检验作用
- 登陆密码
- API令牌
- AWS密匙
- 公钥
- 凭据hach
- 身份验证动态口令
- 风险函数公式
- 比较敏感文件
支持的格式
Whispers实质上而言是一款结构型的问版本分析工具,而不是一个编码分析工具。
下边列举的是现阶段版本Whispers支持的数据信息格式:
- YAML
- JSON
- XML
- .npmrc
- .pypirc
- .htpasswd
- .properties
- pip.conf
- conf / ini
- Dockerfile
- Dockercfg
- Shell scripts
- Python3
Python3文件会以AST开展分析,由于这也是原生态语言表达支持。
申明和取值格式
该工具可以将以下语言表达文件分析为文字,并检验常用的自变量申明和取值方式:
独特格式支持
- AWS凭据文件
- JDBC联接字符串数组
- Jenkins配备文件
- SpringFramework配置文件
- Java特性文件
- Dockercfg申请注册验证文件
- GitHub动态口令
工具安裝
根据PyPI安裝:
pip3installwhispers
GitHub安装:
gitclonehttps://github.com/Skyscanner/whisperscdwhispersmakeinstall
工具应用
命令插口:
whispers--helpwhispers--infowhisperssource/code/fileOrDirwhispers--configconfig.ymlsource/code/fileOrDirwhispers--output/tmp/secrets.ymlsource/code/fileOrDirwhispers--rulesaws-id,aws-secretsource/code/fileOrDirwhispers--severityBLOCKER,CRITICALsource/code/fileOrDirwhispers--exitcode7source/code/fileOrDir
Python:
fromwhispers.cliimportparse_argsfromwhispers.coreimportrunsrc="tests/fixtures"configfile="whispers/config.yml"args=parse_args(["-c",configfile,src])forsecretinrun(args):print(secret)
工具配备
Whispers工具支持多种多样配备选择项,我们可以依据须要来配备是不是在結果中斗殴文件途径、密匙或其它值等。config.yml的参照格式如下所示:
include:files:-"**/*.yml"exclude:files:-"**/test/**/*"-"**/tests/**/*"keys:-^foovalues:-bar$rules:starks:message:WhispersfromtheNorthseverity:CRITICALvalue:regex:(Aria|Ned)Starkignorecase:True
更快的配备方式是将config.yml文件复制至一个新的文件中,随后立即将其以主要参数方式传送给Whispers:
whispers--configconfig.yml--rulesstarkssrc/file/or/dir
自定标准
我们可以根据以下方法,在whispers/rules文件中加上和编写自身的自定标准:
rule-id:#uniquerulenamedescription:ValuesformattedlikeAWSSessionTokenmessage:AWSSessionToken#reportwillshowthismessageseverity:BLOCKER#oneofBLOCKER,CRITICAL,MAJOR,MINOR,INFOkey:#specifykeyformatregex:(aws.?session.?token)?ignorecase:True#case-insensitivematchingvalue:#specifyvalueformatregex:^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\ \/]{270,450}$ignorecase:False#case-sensitivematchingminlen:270#valueisatleastthislongisBase64:True#valueisbase64-encodedisAscii:False#valueisbinarydatawhendecodedisUri:False#valueisnotformattedlikeaURIsimilar:0.35#maximumallowedsimilaritybetweenkeyandvalue#(1.0beingexactlythesame)
插件
Whispers中任何的分析作用是根据插件完成的,每一个插件都会应用pairs()方式完成一个类,并返回匹配标准的键值对:
classPluginName:defpairs(self,file):yield"key","value"
新项目详细地址
Whispers:【GitHub传送器】