GithubHelp home page GithubHelp logo

murphysecurity / murphysec Goto Github PK

View Code? Open in Web Editor NEW
1.6K 24.0 165.0 4.37 MB

An open source tool focused on software supply chain security. 墨菲安全专注于软件供应链安全,具备专业的软件成分分析(SCA)、漏洞检测、专业漏洞库。

License: Apache License 2.0

Go 99.64% TypeScript 0.36%
security scanner dependency vulnerability-detection software-supply-chain sca software-composition-analysis codescan

murphysec's People

Contributors

645775992 avatar awei2020 avatar claire887 avatar cn-you avatar dependabot[bot] avatar fredgan avatar iseki-working avatar iseki0 avatar k8scat avatar mystery00 avatar tango2018cc avatar testwill avatar xxddpac avatar zhangtianci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

murphysec's Issues

[Feature] 增加 maven 项目识别的准确性

Search before asking

  • I had searched in the issues and found no similar issues.

Description

在存在 JDK 而不存在 maven 的环境中(或者maven环境存在问题时),如果项目中存在 mvnw(Linux上使用)、mvnw.cmd(Windows 上使用)、.mvn/wrapper/maven-wrapper.jar、.mvn/wrapper/maven-wrapper.properties 等文件时,可以执行 mvnw dependency:tree(Windows 命令)、./mvnw dependency:tree(Linux 命令)提高识别的准确性

Use case

No response

Related issues

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

针对C/C++检测不准确

1、在使用cli命令murphysec scan的时候,有可选参数--deep--deep参数的解释是上传源代码。请问加上deep参数之后,在远程做了什么,是否使用了某些针对代码混淆的算法?

2、对于C/C++项目,现在可以通过文件级检测的方式分析项目中包含的源码。对于不包含依赖源码C/C++项目的怎么解析呢?请问是通过正则表达式解析Makefile、CMake,还是使用CMake、Makefile的解析文本的代码?还是其他的什么方法?

3、下图是针对C语言的测试,目录下有curl-7.82.0以及nginx-1.18.0的源码。分别使用如下命令运行,加不加--deep参数似乎都没有正确分析依赖。

image

image

4、在文件inspector/file_hash_scan.godirScan函数中,得到目录下所有文件的路径,写入channel。请问在哈希的时候附带项目的目录结构时候有利于检测结果的准确性?

test :bomb: `Bug`:

What Happened?

xx

How to Reproduce?

xx

Anything else

xx

Murphysec Version

v1.11.0

log4j-core-2.14.0.jar,fastjson-1.2.80.jar检测没测出maven标注的异常,这是bug还是我哪里操作不对?

1、文件
log4j-core-2.14.0.jar,fastjson-1.2.80.jar,
附上链接:
https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.14.0/log4j-core-2.14.0.jar
https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.80/fastjson-1.2.80.jar

上述2个都是类似,murphysecurity cli没检测出maven官网标注的漏洞。

2、以log4j-core-2.14.0.jar为例,maven和murphysecurity对比截图
image

image

image

3、我用dependency check能检出,确认下这是否属于正常,如果正常的话,请告诉我哪里操作有误导致?
如果不正常的话,是否确认是bug?

idea 插件提示建议

image

一个提示小建议,常规思维会认为 “安全风险分数” 是 100 分为满分;

前面加个安全会容易误导人,建议改为风险分数,这样分越高就知道风险数值越大;

安全检测结果的提示不准确

依赖配置如下,已经排除了protobuf-java,但是检测的结果还是提示有这个版本的jar包的漏洞

io.nats
java-nats-streaming
2.2.3


com.google.protobuf
protobuf-java


检测结果如下:
image

goland 2022.1.3 安全模式下安装插件报错, 错误如下. 虽然报错但是插件可以正常使用

cn.hutool.cron.CronException: Scheduler already started!
at cn.hutool.cron.Scheduler.checkStarted(Scheduler.java:485)
at cn.hutool.cron.Scheduler.start(Scheduler.java:409)
at cn.hutool.cron.CronUtil.restart(CronUtil.java:196)
at com.murphysec.services.MessageChannelService.Listener(MessageChannelService.java:61)
at com.murphysec.services.InitStartActive.runActivity(InitStartActive.java:35)
at com.intellij.ide.startup.impl.StartupManagerImpl.runStartupActivity(StartupManagerImpl.kt:311)
at com.intellij.ide.startup.impl.StartupManagerImpl.runActivityAndMeasureDuration(StartupManagerImpl.kt:290)
at com.intellij.ide.startup.impl.StartupManagerImpl.access$runActivityAndMeasureDuration(StartupManagerImpl.kt:62)
at com.intellij.ide.startup.impl.StartupManagerImpl$Companion$addActivityEpListener$1$extensionAdded$1$1.run(StartupManagerImpl.kt:74)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176)
at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:365)
at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:343)
at com.intellij.ide.startup.impl.StartupManagerImpl$Companion$addActivityEpListener$1$extensionAdded$1.run(StartupManagerImpl.kt:73)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:829)

改一个变量名

在文件module/maven/maven.go的27行, 如果有maven环境,返回true,有maven环境才扫描依赖。skipMvnScan变量名似乎起反了。

:bomb: `Bug`: 使用IDEA最新版插件时,遇到了【插件认证不成功】的报错提示Bug

发生了什么

使用IDEA最新版插件时,遇到了【插件认证不成功】的报错提示Bug

环境

标准Win10
IDEA版本: IntelliJ 2021.2.2 Ultimate Edition
插件版本: 插件市场最新版(2023年5月14日-IDEA内置官方市场)

Bug复现过程

1、从MarketPlace,下载【MurphySec】
2、然后,点击下方工具栏图标,并跟随引导,进入【插件设置】页面。
3、个人用户,点击【快速认证】。
4、此时网页弹出,新注册一个邮箱账号。注册成功后,点击网页【认证】按钮。
5、此时,返回到IDEA,发现【服务认证】下面的输入框,已经被自动填充了 若干星号字符。并且,插件弹出【认证成功】提示。
6、现在,点击下方工具栏窗口,【扫描】按钮。进行了一会儿之后,中止并提示【访问令牌已失效】。

后续排错过程

1、手动重新,在插件中,走【快速认证】了若干次,均未解决。
2、参照,插件的【解答文档】页面,没有相关内容。
3、检查,是否我自己的【代理】或【网络】问题,简单更改环境调试了一下,未果。
4、走Google和Baidu搜索,均未找到【访问令牌已失效】相关的回答帖子。
5、走GitHub的Issue,并未明显看到,类似的报错的历史Issue。

修复方式

1、后来,我尝试登录 MurphySec 官网,进入控制台。探索了一会儿。
2、发现了以下页面,都包含 【访问令牌Token】:设置页面IDE集成的控制台说明页面
3、出于尝试心理,我手动将【访问令牌Token】,复制粘贴进了【插件设置】的【星号密码框】。
4、此时,再进行扫描,耐心等一会儿之后,发现扫描结果正常出来了。系统是86分。

关于用户体验的小建议

  • 如果“不小心”把插件从Sidebar移除了,就没办法再弄出来了,重新安装也不行(或许是我没找到正确的方法?可以在帮助文档中加一下找回的方法),没了菜单栏就不好看状态了
  • 建议在控件合适的地方加上控制台超链接( https://www.murphysec.com/control/project ),方便快速进入控制台

image

image

疑似log4j的bug

image
第一次提示升级到2.13第二次才会升级到2.17,可能是bug,理论上应该一次性升级到2.17
image

[Feature] 接口查询扫描结果solutions字段为空

Search before asking

  • I had searched in the issues and found no similar issues.

Description

在测试时发现控制台可以显示对应组件的缺陷修复方案
image
但是本地调用接口该修复方案字段为空
image

如果存储扫描结果,该字段的作用还是比较重要的

Use case

No response

Related issues

No response

Are you willing to submit PR?

  • #76

感觉没什么用

检测了好几个项目,得到的结论都是很安全,没有漏洞

[Feature] Add language support?

Search before asking

  • I had searched in the issues and found no similar issues.

Description

Will you add language support?

Use case

No response

Related issues

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

:bomb: `Bug`: 使用 3.0.1 时,输出到文件中的内容与控制台不同,比如文件中的内容比控制台少最后一段

What Happened?

使用 3.0.1 时,输出到文件中的内容与控制台不同,比如文件中的内容比控制台少最后一段

NVIDIA_Share_eR88mWkdrs-

How to Reproduce?

扫描命令:murphysec-windows-amd64.exe scan "E:\IdeaProjects\xuxiaowei-cloud" --log-level info --write-log-to murphysec.log
项目:http://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud

Anything else

No response

Murphysec Version / Ide Plugin Version

3.0.1

扫描的非真实依赖版本

项目使用dependencyManagement统一管理版本号,但扫描的时候仍然会将其他依赖包的其它版本扫描出来,最典型的就是fastjson扫描出来6个版本,但实际使用的版本1.2.83

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.