社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

如何使用Talisman检测Git代码库中是否遗留有令牌凭证等敏感信息

FreeBuf • 2 年前 • 322 次点击  

 关于Talisman 

Talisman是一款功能强大的敏感数据检测工具,可以通过在目标代码库中设置钩子,来确保代码库中没有开发人员遗留的潜在凭证数据或敏感信息。

在该工具的帮助下,广大开发人员可以验证潜在的SSH密钥、授权令牌和私钥等。

 工具下载 

广大开发人员可以使用下列命令将该工具源码克隆至本地:

git clone https://github.com/thoughtworks/talisman.git

 工具安装 

Talisman支持macOS、Linux和Windows操作系统平台,并且能够以下列方式进行安装:

1、将Git钩子以全局Git钩子模版和CLI实用工具方式安装;

2、将Git钩子设置在单个Git库中使用;

以全局钩子模版安装

我们建议广大开发人员以Git钩子模版的形式安装和使用Talisman,因为这种方式不仅可以将Talisman安装在现有的Git代码库中,而且还可以安装在我们初始化或克隆的任何新代码库中。

首先,打开终端并运行下列命令,然后下载并安装代码库:

curl --silent  https://raw.githubusercontent.com/thoughtworks/talisman/master/global_install_scripts/install.bash > /tmp/install_talisman.bash && /bin/bash /tmp/install_talisman.bash

curl --silent  https://raw.githubusercontent.com/thoughtworks/talisman/master/global_install_scripts/install.bash > /tmp/install_talisman.bash && /bin/bash /tmp/install_talisman.bash pre-push

接下来,如果你没有在“$PATH”中设置“TALISMAN_HOME”的话,工具将提醒你进行配置。

最后,选择一个Talisman需要扫描的代码库,并设置一个Git钩子为符号连接。这里可以将“SEARCH_ROOT”环境变量设置为目标代码库的路径。

处理已有钩子

在全局范围内安装Talisman不会影响代码库中已有的钩子。如果工具的安装脚本找到了已有钩子,则会显示在控制台中。

安装在单个项目中

首先,使用下列命令下载Talisman的安装脚本:

curl https://thoughtworks.github.io/talisman/install.sh > ~/install-talisman.sh
chmod +x ~/install-talisman.sh

接下来,将钩子安装进单独的项目中:

cd my-git-project
~/install-talisman.sh

cd my-git-project
~/install-talisman.sh pre-commit

处理已有钩子

Talisman需要通过设置来跟现有的Git钩子链接,将下列代码添加进“.pre-commit-config.yaml”即可:

-   repo: https://github.com/thoughtworks/talisman
rev: '' # Update me!
hooks:
# either `commit` or `push` support
- id: talisman-commit
# - id: talisman-push

 工具使用 

工具安装完成之后,Talisman将会自动运行并检测代码库中潜在的敏感信息。一旦检测到敏感数据或潜在的安全数据泄露,Talisman便会立刻显示相关的详细信息:

以CLI工具使用

如果我们在命令行工具中执行Talisman,将会看到该工具所支持的全部选项参数:

-c, --checksum string          校验和计算,建议.talismanrc格式
-d, --debug 启用调试模式
-g, --githook string 以pre-push或pre-commit方式设置钩子
--ignoreHistory 以当前线程扫描所有文件
-i, --interactive 交互式更新Talisman
-p, --pattern string 扫描文件模式
-r, --reportdirectory string 存储扫描报告的路径
-s, --scan 扫描Git提交历史
-w, --scanWithHtml 生成HTML报告
-v, --version 显示Talisman当前版本

 生成HTML报告 

下列命令可以生成HTML格式报告:

talisman --scanWithHtml

上述命令将在目标代码库中创建一个名为“talisman_html_report”的目录。此时,我们需要在该代码库中启动一个HTTP服务器,以访问报告内容:

python -m SimpleHTTPServer  (eg: 8000)

接下来,打开浏览器并输入下列地址,即可获取HTML版本的扫描报告:

http://localhost:8000

 工具使用截图 

欢迎界面

概述界面

详细报告

错误报告

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

https://github.com/thoughtworks/talisman

参考资料

https://git-scm.com/docs/git-init#_template_directory

https://github.com/thoughtworks/talisman#handling-existing-hooks

https://pre-commit.com/

https://github.com/typicode/husky/blob/master/DOCS.md



精彩推荐









Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131317
 
322 次点击