当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

Dependency Combobulator

检测和防止依赖混淆的开源框架
授权协议 Apache-2.0
开发语言 Python
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 不详
投 递 者 范振海
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Dependency Combobulator 是一个开源的、模块化的、可扩展的框架,用于检测和防止依赖混淆的泄漏和潜在的攻击。这有利于采用整体方法来确保安全的应用程序发布,可以针对不同的来源(如 GitHub 包、JFrog Artifactory)和不同的包管理方案(如 ndm、maven)进行评估。

目标受众

该框架可供安全审计员、渗透测试员使用,甚至可以自动融入企业的应用安全程序和发布周期。

主要特点

  • 可插入 —— 在 SDLC 中插入提交级别、构建、发布步骤。
  • 可扩展 —— 轻松添加您自己的包管理方案或选择的代码源
  • 通用启发式引擎 —— 抽象包数据模型提供的启发式方法
  • 支持广泛的技术
  • 灵活 —— 可以根据工具包提供的洞察或判决来确定决策

安装

Dependency Combobulator 只需git clone或从 https://github.com/apiiro/combobulator 下载包

参数 (--help)

  -h, --help            show this help message and exit
  -t {npm,NuGet,maven}, --type {npm,NuGet,maven}
                        Package Manager Type, i.e: npm, NuGet, maven
  -l LIST_FROM_FILE, --load_list LIST_FROM_FILE
                        Load list of dependencies from a file
  -d FROM_SRC, --directory FROM_SRC
                        Extract dependencies from local source repository
  -p--package SINGLE    Name a single package.
  -c CSV, --csv CSV     Export packages properties onto CSV file
  -gh GITHUB_TOKEN, --github GITHUB_TOKEN
                        GitHub Access Token (Overrides .env file setting)
  -a {compare,comp,heuristics,heur}, --analysis {compare,comp,heuristics,heur}
                        Required analysis level - compare (comp), heuristics
                        (heur) (default: compare)

Apiiro <Heart> Community

支持的包类型(-t、--t):npm、maven

支持的输出格式:

  • 屏幕标准输出(默认)
  • CSV 导出到指定文件
  •  com...biz.JobTaskService     -本机过滤原因Error creating bean with name 'fNaQutz': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: C

  • 记录一种可以方便查看 dependency 的方法,经常遇到各种引用冲突导致的编译不通过的错误。 直接在Teminal 里面输入 gradlew app:dependencies  回车之后等一会儿就可以查看了 +--- com.google.android.wearable:wearable:2.3.0 +--- com.google.android.gms:play-services-cast

  •  sudo dpkg --purge gamin dpkg: dependency problems prevent removal of gamin:  libgamin0 depends on gamin. dpkg: error processing gamin (--purge):  dependency problems - not removing Errors were encoun

  • 引入 npm 官网对 dependency 与 devDependencies 的官方解释: “dependency”:These packages are required by your application in production.(这些软件包是生产中的应用程序需要的) “devDependencies”: These packages are only needed for deve

  • Each computer platform has its peculiarities, and kernel designers are free to exploit all the peculiarities to achieve better performance in the target object file. 每个计算机平台都有其特性,内核设计者可以自由地利用所有特性来在目标目

  • 一:dependencyManagement 和dependency 的区别 dependencyManagement 我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这

  • Spring Bean 循环依赖问题 包括构造函数依赖和属性依赖。 属性依赖 属性依赖demo @Component public class CallBack { @Autowired private PushClient pushClient; public void callBack() { System.out.println("CallBack

 相关资料
  • 我已经阅读了几篇关于proguard混淆的stackoverflow帖子 如何在使用ProGuard时保留/排除特定的包路径? 如何让Proguard忽略外部库? 如何在使用proguard进行混淆时从injar中排除特定的jar? 但我没有找到答案来排除一个特定的目录,以防止混淆。

  • 我尝试使用。 当我在没有的情况下运行应用程序时,应用程序运行成功。当我用运行我的应用程序时,我的应用程序崩溃。 我认为问题是:将我的类的属性重命名为简短的。 保留my one(静态)类的方法和属性的正确方法是什么?

  • 问题内容: 我有一个下面给出文件的项目。当我发出命令时,我希望Maven生成一个JAR,其中包含 所有的依赖和 我的代码的混淆版本。 它不起作用-我的代码未在“ jar-with-dependencies”文件中进行混淆。 当我运行时,结果文件包含我的应用程序的混淆代码,但没有依赖关系。 为了使JAR文件具有所有依赖关系和混淆代码,我该怎么办? 更新1(17.01.2016 19:54 MSK):

  • 我有一个项目,下面给出了文件。当我发出命令时,我希望Maven生成一个JAR,其中包含 所有依赖项和 我的代码的模糊版本。 为了拥有一个包含所有依赖项和模糊代码的JAR文件,我可以做些什么呢? 更新1(17.01.2016 19:54 MSK):更改了ProGuard配置,如下所示,但仍然生成一个带有未混淆类文件的JAR。 更新2(17.01.2016 20:29 MSK):失败。最后的消息可以在

  • 我使用的是——保留类和——保留类成员,但这些似乎只保留类中的方法名称和字段,我想告诉Proproaurd不要碰特定方法内部的任何东西,即使是“for”循环或“if”语句,甚至变量名称!,我想看到一个方法在反编译后看起来与原始版本完全相同,就像您在调试模式下反编译程序时一样!,但只有一种方法而不是所有其他方法。 有没有办法使用proGuard做到这一点? 谢谢:)

  • 问题内容: 我的班有子班。 我将从解析中获得对象的价值: 我尝试使用。 当我运行我的应用程序而没有运行成功时。当我的应用崩溃时运行我的应用时。 我认为问题是:将班级的属性重命名为short 。 我尝试保持方法和属性的名称不变,但是将其重命名: 保留第一个(静态)类的方法和属性的名称的正确方法是什么? 问题答案: 感谢Waqas! 我为我的情况找到了解决方案: 另外,我不在课堂上使用,上述配置无需序

  • 问题内容: 我正在尝试使用AngularUI路由器进行一些身份验证。看起来正是我所需要的。但是,仅当我拦截时可用。但是当我这样做时,它是空的,而我希望它是当前状态。 到目前为止,这是我的代码: 关于我在做什么错的任何指示? 问题答案: 我建议走更多的路。我们应该使用适当提供的事件。这是一个有效的例子 让我们观察一下简单的 (但不是幼稚的) 解决方案,它可以在以后扩展到任何程度。 首先,让我们定义用

  • 我在理解密钥库和信任库的概念方面有问题。 哪个应用程序保留keystore,哪个应用程序保留truststore? 我在网上找不到任何好的资源。如果有人能清楚地描述truststore和KeyStore之间的区别,我会非常感激吗?