freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

快速检查多个包管理系统中的依赖混淆漏洞
Alpha_h4ck 2021-03-21 17:08:51 304024

关于Confused

Confused是一款功能强大的依赖混淆漏洞检测工具,广大研究人员可以使用Confused跨多个包管理器检测其中存在的依赖混淆漏洞。Confused能够检测Python(pypi) requirements.txt、JavaScript (npm) package.json、PHP (composer) composer.json或MVN (maven) pom.xml等依赖配置文件中引用的私有包名称和命名空间,并帮助检测潜在的依赖混淆漏洞。

解释工具输出

Confused只会读取应用程序的依赖项定义文件,并检查公共包存储库中该文件中的每个依赖项条目。除此之外,它还会继续报告在公共存储库中找不到的所有包名—这种状态意味着包可能容易受到此类攻击,而此向量尚未被利用。

然而,这并不意味着应用程序没有受到攻击,或仍然是安全的。如果你发现你的应用程序正在使用私有包存储库,则应该确保你的私有包的命名空间已由受信任的一方(通常是你自己或你的公司)声明。

已知假阳性

一些包存储库生态系统(比如说npm)都会有一种名为“范围”的概念,也就是说其中的代码包可以是私有的也可以是公共的。简而言之,它意味着一个命名空间会有一个更高的级别-范围。这些作用域本质上不是公开可见的,这意味着Confused无法可靠地检测目标代码包是否已声明。如果应用程序使用作用域内的包名称,则应确保受信任方已在公共存储库中声明了作用域名称。

工具安装

广大研究人员可以选择访问该项目的【Releases页面】来下载预编译好的项目代码,然后解压并运行即可。

或者,你也可以在本地安装并配置好Go语言环境,然后使用Go编译器来进行安装(安装和更新命令相同):

go get -u github.com/visma-prodsec/confused

除此之外,广大研究人员也可以使用下列命令将该项目源码克隆至本地,然后使用Go命令进行代码编译和构建:

git clone https://github.com/visma-prodsec/confused

cd confused

go get

go build

工具使用

Usage:

 ./confused [-l LANGUAGENAME] depfilename.ext

 

Usage of ./confused:

  -l string

        代码包存储库系统,可选的值有:"pip", "npm", "composer", "mvn" (默认为"npm")

  -s string

        已知安全的命名空间,提供以逗号分隔的列表,支持通配符

  -v    Verbose模式输出

工具使用样例

Python(PyPI)

./confused -l pip requirements.txt

 

Issues found, the following packages are not available in public package repositories:

 [!] internal_package1

JavaScript(npm)

./confused -l npm package.json

 

Issues found, the following packages are not available in public package repositories:

 [!] internal_package1

 [!] @mycompany/internal_package1

 [!] @mycompany/internal_package2

 

# Example when @mycompany private scope has been registered in npm, using -s

./confused -l npm -s '@mycompany/*' package.json

 

Issues found, the following packages are not available in public package repositories:

 [!] internal_package1

Maven(mvn)

./confused -l mvn pom.xml

 

Issues found, the following packages are not available in public package repositories:

 [!] internal

 [!] internal/package1

 [!] internal/_package2

项目地址

Confused:【GitHub传送门

参考资料

https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610

https://azure.microsoft.com/en-gb/resources/3-ways-to-mitigate-risk-using-private-package-feeds/

https://github.com/visma-prodsec/confused/releases/latest

# 漏洞扫描 # 漏洞检测 # 代码安全 # 依赖混淆漏洞
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1020 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录