从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点[通俗易懂]

从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点[通俗易懂]代码隐私信息泄露的危害性不容忽视

Git是一个开源的分布式软件版本控制系统,用于敏捷高效地处理任何或小或大的系统开发项目。Git
存储库看上去就是一个文件夹,不过,在这个文件夹中不仅仅保存了所有应用系统的当前版本,也同时保存了所有的历史记录。Git存储库的开放性和便利性使其经常面临人为错误的影响,企业每天在公共Git存储库上泄露数以千计的重要代码信息,包括数据库密码、邮箱账号、管理URL等隐私信息等,造成了巨大损失。随着人们对这个问题的认识不断加深,一些新的安全工具和技术也不断涌现,以在整个软件开发生命周期(SDLC)中提供针对性的安全保护。

什么是Git秘密扫描(secret scanning)?

代码隐私信息泄露的危害性不容忽视。无论是错误放置的密钥,或是意外泄露的数据库密码都可能会转化为即时危机,带来沉重的经济损失。Git秘密扫描是从攻击者的角度出发,提前对需要上传至Git存储库的代码数据进行扫描或周期性的扫描,防止敏感信息泄露,并及时删除暴露的信息。Git秘密扫描有两种模式,每种模式都涵盖“持续集成”(Continuous
Integration,简称CI)/“持续交付”(Continuous Delivery,简称CD)管道的不同阶段。

• 第一种模式侧重于预防

第一种模式试图从一开始就防止秘密泄露,这种Git秘密扫描模式通过集成到CI/CD管道中并实时监控开发人员的操作,拦截包含秘密的意外代码提交,阻止其公开暴露。

• 第二种模式侧重于及时检测

第二种模式则尝试检测可能已经暴露的秘密。恶意行为者一直在使用Git扫描技术,试图从公共和配置错误的Git存储库中提取秘密,并将其用于恶意活动中。如果没有像恶意攻击者所用的这般强大的扫描工具,企业可能根本不知道自己的秘密已被泄露。此外,还需要注意的是,秘密检测是一个不断发展的过程,必须定期更新。

Top 9秘密扫描解决方案

没人愿意沦为Git秘密泄露的受害者,以下列举了9款Git秘密扫描解决方案,帮助企业在软件开发生命周期(SDLC)的早期引入安全性,目标是让参与SDLC的每个人来开发更安全的应用程序。

1. gitLeaks

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IxhGfUqm-1690944131126)(https://image.3001.net/images/20220406/1649207713_624ce9a1ca19892ea8a5b.png!small)]

gitLeaks是在MIT许可下发布的开源静态分析命令行工具,主要用于检测本地和GitHub存储库(私有和公共)中的硬编码秘密,如密码、API密钥和令牌。

gitLeaks利用正则表达式(Regular expressions)和熵字符串编码(entropy string
coding),根据自定义规则检测秘密,并以JSON、SARIF或CSV格式导出报告。

优点
:gitLeaks是一个开源项目,由50多位贡献者积极开发所得,可免费使用。值得一提的是,gitLeaks还包含大多数开源项目中没有的集成、审计和克隆功能。

缺点 :由于缺乏用户界面且只有有限的集成选项,gitLeaks比较适合安全专业人士、研究人员或专业开发项目。

2. SpectralOps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kwfbc9ww-1690944131128)(https://image.3001.net/images/20220406/1649207726_624ce9ae231bb32f4a2a5.png!small)]

Spectral是较全面的秘密扫描解决方案,涵盖从集成到构建过程的各个方面。无论是静态构建、预提交到Git还是CI集成,Spectral都能提供简单的集成选项。

有趣的是Spectral能够扫描Git存储库,不仅可以扫描代码中的配置问题和秘密,还可以扫描代码库中的日志、二进制文件和其他容易忽略的潜在泄漏源。

优点
:Spectral使用直观的用户界面,使其更易于访问并适合企业管理。Spectral秘密扫描技术所运用的AI和机器学习算法,可确保随着系统处理数据量的不断增加,检测率也能不断提高,并不断降低误报率。

缺点 :Spectral不太适合小型项目或单个开发人员,它专为在大型代码库上进行协作的开发团队而设计。

3. Git-Secrets

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3IAy1fsU-1690944131132)(https://image.3001.net/images/20220406/1649207740_624ce9bce454ee06f01f7.png!small)]

Git-
secrets是一种开发安全工具,可防止用户在Git存储库中包含机密和其他敏感信息。它会扫描提交代码和说明,当与用户预先配置的禁止表达式模式匹配,就会阻止提交。

优点 :Git-Secrets可以集成到CI/CD管道中以实时监控提交信息。

缺点 :Git-secrets使用相当简单的检测算法,主要为“正则表达式”(regular
expression),这通常会导致许多误报。而且,该项目不再定期维护,可能不适合在专业开发环境中使用。

4. Whispers

Whispers是一种开源静态代码分析工具,旨在搜索硬编码凭据和危险函数。它可以作为命令行工具运行或集成到CI/CD管道中。该工具旨在解析结构化文本,例如YAML、JSON、XML、npmrc、.pypirc、.htpasswd、.properties、pip.conf、conf/ini、Dockerfile、Shell脚本和Python3以及声明指定的Javascript、Java、GO、PHP格式。

优点
:Whispers开箱即用,支持多种秘密检测格式,包括密码、AWS密钥、API令牌、敏感文件、危险函数等。此外,Whispers还包括一个插件系统,可用于将其扫描功能进一步扩展到新的文件格式。

缺点
:Whispers旨在配合其他秘密扫描解决方案,不对实际代码执行深度扫描,其扫描规则也只是基于正则表达式、Base64和Ascii检测的有限组合。

5. GitHub秘密扫描(Secret scanning)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sehmBXmh-1690944131135)(https://image.3001.net/images/20220406/1649207813_624cea05abc46edbba385.png!small)]

当使用GitHub作为企业的公共存储库时,GitHub会提供自己的集成秘密扫描解决方案,以检测流行的API密钥和令牌结构。如果想要扫描私有存储库,企业需要获得高级安全许可证。用户可以通过提供“正则表达式”公式来扩展检测算法,以检测自定义秘密字符串结构。

优点
:使用GitHub可以更轻松地进行可视化扫描、配置和集成。该服务包含对许多网络流行服务广泛API密钥和令牌字符串结构的支持,为任何安全评估提供坚实的基础。

缺点
:目前,针对私有存储库的秘密扫描正处于测试阶段。整个服务的关注点非常狭窄,主要针对已知的字符串结构,例如API密钥和令牌,而忽略其他秘密,例如数据库密码、电子邮件地址、管理URL等。

6. Gittyleaks

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZryDYHK-1690944131137)(https://image.3001.net/images/20220406/1649207827_624cea13452de384d1fd3.png!small)]

Gittyleaks是一个简单的Git秘密扫描命令行工具,能够扫描和克隆存储库。它试图发现不应包含在代码或配置文件中的用户名、密码和电子邮件。

优点 :Gittyleaks是一款简单的工具,可用于快速扫描存储库以查找明显的秘密。它比较简洁,不需要其他解决方案那样进行更复杂的配置。

缺点
:鉴于其简单性和固定规则,Gittyleaks最适合作为介绍性工具,以帮助用户了解代码中的秘密。但是,它缺乏商业开发团队所需的强大功能和灵活性。

7. Scan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7zbF4C2-1690944131141)(https://image.3001.net/images/20220406/1649207838_624cea1e2c34f51c87cb8.png!small)]

Scan是一个全面的开源安全审计工具。它可以与Azure、BitBucket、GitHub、GitLab、Jenkins、TeamCity等流行存储库和管道集成。此外,Scan还支持广泛的流行框架和语言,能够集成到CI/CD管道中以提供实时保护,并提供广泛的报告功能。

优点 :由于其良好的开源性质,Scan可能是企业可以免费获得的最强大、最灵活的DevSecOps工具之一。

缺点 :虽然Scan确实强大且灵活,但其并不友好的用户界面和复杂设置,使得只有少数安全专家才能真正使用Scan并从中受益。

8. Git-all-secrets

Git-all-secrets是一个开源的秘密扫描器集成项目。该工具目前依赖于两个开源秘密扫描项目,即truffleHog和repo-
supervisor——这两个项目使用“正则表达式”和高熵(high entropy)算法进行秘密检测。Git-all-
secrets汇总了两个扫描器的组合结果,以呈现更全面的视图。

优点 :Git-all-secrets引入了一个有趣的概念,它试图通过不依赖单一算法的方式来增强秘密扫描结果。

缺点 :虽然使用了一种新颖的方法,但Git-all-
secrets底层扫描仍然依赖于基本算法,并且目前已经没有人再积极维护该项目了。该工具提供了更多的概念验证(proof-of-
concept,PoC),将来可能会被其他项目利用。

9. Detect-secrets

Detect-
secrets是一个积极维护的开源项目,专为企业客户设计。它的创建初衷是防止新的秘密进入代码库,检测预防措施是否存在缺陷,并提供一份秘密清单以在安全存储中进行维护。Detect-
secrets的工作原理是定期比较“正则表达式”语句,以识别可能已提交的新秘密。

优点 :Detect-
secrets的扫描方法避免了扫描整个git历史文件,以及每次都需要扫描整个存储库的繁复任务。而且,它的插件支持也非常好,目前有18个不同的插件可用,涵盖AWS密钥、熵字符串、Base64编码、Azure密钥等等。

缺点 :如果秘密被分成多行或不包含足够的熵,则Detect-secrets可能无法实时检测到它们。

小结

很明显,积极扫描Git存储库和开发人员提交文件以防止机密泄露,应该成为每个公司软件开发管道的强制性部分。每天,都会上演恶意行为者窃取个人身份信息和私人知识产权的戏码。而这些通常是由于缺乏代码安全实践或仅仅由于人为错误造成。企业用户可以通过使用直接集成到CI/CD管道中的秘密扫描技术,对与这些项目相关的Git存储库进行主动秘密扫描来缓解其中的许多问题。

性部分。每天,都会上演恶意行为者窃取个人身份信息和私人知识产权的戏码。而这些通常是由于缺乏代码安全实践或仅仅由于人为错误造成。企业用户可以通过使用直接集成到CI/CD管道中的秘密扫描技术,对与这些项目相关的Git存储库进行主动秘密扫描来缓解其中的许多问题。

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点[通俗易懂]

从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点[通俗易懂]

今天的文章从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88913.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注