Whispers是一款功能强大的静态代码分析工具,该工具可以帮助广大研究人员解析各种常见的数据格式,并搜索硬编码凭证和危险函数。Whispers支持在命令行终端中运行,或者也可以将其集成到CI/CD管道中。

从网站建设到定制行业解决方案,为提供网站制作、网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联公司将不断加快创新步伐,提供优质的建站服务。
Whispers本质上来说是一款结构化的问版本解析工具,而不是一个代码分析工具。
下面列出的是当前版本Whispers支持的数据格式:
Python3文件会以AST进行解析,因为这是原生语言支持。
该工具可以将下列语言文件解析为文本,并检测常见的变量声明和赋值模式:
通过PyPI安装:
- pip3 install whispers
 
GitHub安装:
- git clone https://github.com/Skyscanner/whispers
 - cd whispers
 - make install
 
命令行接口:
- whispers --help
 - whispers --info
 - whispers source/code/fileOrDir
 - whispers --config config.yml source/code/fileOrDir
 - whispers --output /tmp/secrets.yml source/code/fileOrDir
 - whispers --rules aws-id,aws-secret source/code/fileOrDir
 - whispers --severity BLOCKER,CRITICAL source/code/fileOrDir
 - whispers --exitcode 7 source/code/fileOrDir
 
Python:
- from whispers.cli import parse_args
 - from whispers.core import run
 - src = "tests/fixtures"
 - configfile = "whispers/config.yml"
 - args = parse_args(["-c", configfile, src])
 - for secret in run(args):
 - print(secret)
 
Whispers工具支持多种配置选项,我们可以根据需要来配置是否在结果中互殴文件路径、密钥或其他值等。config.yml的参考格式如下:
- include:
 - files:
 - - "**/*.yml"
 - exclude:
 - files:
 - - "**/test/**/*"
 - - "**/tests/**/*"
 - keys:
 - - ^foo
 - values:
 - - bar$
 - rules:
 - starks:
 - message: Whispers from the North
 - severity: CRITICAL
 - value:
 - regex: (Aria|Ned) Stark
 - ignorecase: True
 
最快的配置方法就是将config.yml文件拷贝至一个新的文件中,然后直接将其以参数形式传递给Whispers:
- whispers --config config.yml --rules starks src/file/or/dir
 
我们可以通过下列方式,在whispers/rules文件中添加和编辑自己的自定义规则:
- rule-id: # unique rule name
 - description: Values formatted like AWS Session Token
 - message: AWS Session Token # report will show this message
 - severity: BLOCKER # one of BLOCKER, CRITICAL, MAJOR, MINOR, INFO
 - key: # specify key format
 - regex: (aws.?session.?token)?
 - ignorecase: True # case-insensitive matching
 - value: # specify value format
 - regex: ^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\+\/]{270,450}$
 - ignorecase: False # case-sensitive matching
 - minlen: 270 # value is at least this long
 - isBase64: True # value is base64-encoded
 - isAscii: False # value is binary data when decoded
 - isUri: False # value is not formatted like a URI
 - similar: 0.35 # maximum allowed similarity between key and value
 - # (1.0 being exactly the same)
 
Whispers中所有的解析功能都是通过插件实现的,每一个插件都会使用pairs()方法实现一个类,并返回匹配规则的键值对:
- class PluginName:
 - def pairs(self, file):
 - yield "key", "value"
 
Whispers:【GitHub传送门】
                分享题目:如何使用Whispers识别静态结构化文本中的硬编码敏感信息
                
                链接URL:http://www.csdahua.cn/qtweb/news42/224542.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网