日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何使用Whispers識(shí)別靜態(tài)結(jié)構(gòu)化文本中的硬編碼敏感信息

關(guān)于Whispers

Whispers是一款功能強(qiáng)大的靜態(tài)代碼分析工具,該工具可以幫助廣大研究人員解析各種常見(jiàn)的數(shù)據(jù)格式,并搜索硬編碼憑證和危險(xiǎn)函數(shù)。Whispers支持在命令行終端中運(yùn)行,或者也可以將其集成到CI/CD管道中。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

檢測(cè)功能

  • 密碼
  • API令牌
  • AWS密鑰
  • 私鑰
  • 憑證哈希
  • 身份認(rèn)證令牌
  • 危險(xiǎn)函數(shù)
  • 敏感文件

支持的格式

Whispers本質(zhì)上來(lái)說(shuō)是一款結(jié)構(gòu)化的問(wèn)版本解析工具,而不是一個(gè)代碼分析工具。

下面列出的是當(dāng)前版本W(wǎng)hispers支持的數(shù)據(jù)格式:

  • YAML
  • JSON
  • XML
  • .npmrc
  • .pypirc
  • .htpasswd
  • .properties
  • pip.conf
  • conf / ini
  • Dockerfile
  • Dockercfg
  • Shell scripts
  • Python3

Python3文件會(huì)以AST進(jìn)行解析,因?yàn)檫@是原生語(yǔ)言支持。

聲明和賦值格式

該工具可以將下列語(yǔ)言文件解析為文本,并檢測(cè)常見(jiàn)的變量聲明和賦值模式:

  • JavaScript
  • Java
  • Go
  • PHP

特殊格式支持

  • AWS憑證文件
  • JDBC連接字符串
  • Jenkins配置文件
  • SpringFramework配置文件
  • Java屬性文件
  • Dockercfg注冊(cè)認(rèn)證文件
  • GitHub令牌

工具安裝

通過(guò)PyPI安裝:

 
 
 
  1. pip3 install whispers 

GitHub安裝:

 
 
 
  1. git clone https://github.com/Skyscanner/whispers  
  2. cd whispers  
  3. make install 

工具使用

命令行接口:

 
 
 
  1. whispers --help 
  2.  
  3. whispers --info 
  4.  
  5. whispers source/code/fileOrDir 
  6.  
  7. whispers --config config.yml source/code/fileOrDir 
  8.  
  9. whispers --output /tmp/secrets.yml source/code/fileOrDir 
  10.  
  11. whispers --rules aws-id,aws-secret source/code/fileOrDir 
  12.  
  13. whispers --severity BLOCKER,CRITICAL source/code/fileOrDir 
  14.  
  15. whispers --exitcode 7 source/code/fileOrDir 

Python:

 
 
 
  1. from whispers.cli import parse_args 
  2.  
  3. from whispers.core import run 
  4.  
  5.   
  6.  
  7. src = "tests/fixtures" 
  8.  
  9. configfile = "whispers/config.yml" 
  10.  
  11. args = parse_args(["-c", configfile, src]) 
  12.  
  13. for secret in run(args): 
  14.  
  15.   print(secret) 

工具配置

Whispers工具支持多種配置選項(xiàng),我們可以根據(jù)需要來(lái)配置是否在結(jié)果中互毆文件路徑、密鑰或其他值等。config.yml的參考格式如下:

 
 
 
  1. include: 
  2.  
  3.   files: 
  4.  
  5.     - "**/*.yml" 
  6.  
  7.   
  8.  
  9. exclude: 
  10.  
  11.   files: 
  12.  
  13.     - "**/test/**/*" 
  14.  
  15.     - "**/tests/**/*" 
  16.  
  17.   keys: 
  18.  
  19.     - ^foo 
  20.  
  21.   values: 
  22.  
  23.     - bar$ 
  24.  
  25.   
  26.  
  27. rules: 
  28.  
  29.   starks: 
  30.  
  31.     message: Whispers from the North 
  32.  
  33.     severity: CRITICAL 
  34.  
  35.     value: 
  36.  
  37.       regex: (Aria|Ned) Stark 
  38.  
  39.       ignorecase: True 

最快的配置方法就是將config.yml文件拷貝至一個(gè)新的文件中,然后直接將其以參數(shù)形式傳遞給Whispers:

 
 
 
  1. whispers --config config.yml --rules starks src/file/or/dir 

自定義規(guī)則

我們可以通過(guò)下列方式,在whispers/rules文件中添加和編輯自己的自定義規(guī)則:

 
 
 
  1. rule-id:  # unique rule name 
  2.  
  3.   description: Values formatted like AWS Session Token 
  4.  
  5.   message: AWS Session Token  # report will show this message 
  6.  
  7.   severity: BLOCKER           # one of BLOCKER, CRITICAL, MAJOR, MINOR, INFO 
  8.  
  9.   
  10.  
  11.   key:        # specify key format 
  12.  
  13.     regex: (aws.?session.?token)? 
  14.  
  15.     ignorecase: True   # case-insensitive matching 
  16.  
  17.   
  18.  
  19.   value:      # specify value format 
  20.  
  21.     regex: ^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\+\/]{270,450}$ 
  22.  
  23.     ignorecase: False  # case-sensitive matching 
  24.  
  25.     minlen: 270        # value is at least this long 
  26.  
  27.     isBase64: True     # value is base64-encoded 
  28.  
  29.     isAscii: False     # value is binary data when decoded 
  30.  
  31.     isUri: False       # value is not formatted like a URI 
  32.  
  33.   
  34.  
  35.   similar: 0.35        # maximum allowed similarity between key and value 
  36.  
  37.                        # (1.0 being exactly the same) 

插件

Whispers中所有的解析功能都是通過(guò)插件實(shí)現(xiàn)的,每一個(gè)插件都會(huì)使用pairs()方法實(shí)現(xiàn)一個(gè)類,并返回匹配規(guī)則的鍵值對(duì):

 
 
 
  1. class PluginName: 
  2.  
  3.     def pairs(self, file): 
  4.  
  5.         yield "key", "value" 

項(xiàng)目地址

Whispers:【GitHub傳送門(mén)】


當(dāng)前標(biāo)題:如何使用Whispers識(shí)別靜態(tài)結(jié)構(gòu)化文本中的硬編碼敏感信息
標(biāo)題路徑:http://www.dlmjj.cn/article/ccojhci.html