《开源软件开发导论》——开源软件供应链安全风险分析用户手册

文档版本变更:

版本日期修改记录
v0.0.12022/12/11确定用户手册框架
v1.0.02022/12/13完成撰写

一、系统概述

本系统通过爬取npm包管理器中的软件包信息,分析javascript供应链的各个环节中可能存在的安全风险,并实现了分析结果的可视化。本系统还为用户提供了检索功能,用来查找具体某个包可能存在的安全风险。

在本系统中我们主要考虑以下六点可能存在的风险:

  • 过期的维护者域。如果维护者的域已过期,并且在其帐户上没有设置2FA身份验证,则攻击者可以劫持一个组件。
  • 安装脚本。攻击者可以使用安装脚本,通过软件包安装步骤来运行执行恶意行为的命令。
  • 未维护的包。攻击者可以针对那些更有可能因为缺乏维护而偷偷侵入恶意软件的软件包。
  • 第三方包的代码仓库。代码仓库与npm中的代码版本不一致,或者代码仓库长时间没有提交。
  • 名称相似的恶意软件。
  • 宽松的开源许可证。

二、功能说明

风险检索

在网站上方的搜索框中输入包名或维护者名,可以查看某个包或某个维护者可能存在的安全风险,用户通过这些风险信息可以自行判断是否将这个包添加为自己项目的依赖或使用某个维护者开发的包。
在这里插入图片描述

风险信息可视化

我们根据目前已经爬取的数据进行分析,将分析结果通过柱状图、饼图等形式展示出来,从而对整个javascript生态的供应链风险进行直观地了解。
在这里插入图片描述

包依赖关系

我们选取了部分包构建了一张依赖关系网络,用来展示npm的包之间复杂的依赖关系。
在这里插入图片描述

三、部署与使用

本系统分为数据层、服务层、应用层三层结构,相关代码均在github开源。

数据层

数据层主要包括分布式爬虫框架scrapy和mysql数据库,用来从npm爬取包信息并经过数据清理后写入数据库。部署scrapy服务需要在根目录下执行:

scrapy crawl ossd

服务层

服务层基于轻量级后端框架flask搭建,用于从服务器中查询数据并返回给前端,部署flask框架需要执行:

python wsgi.py

应用层

应用层基于渐进式javascript框架vue搭建,使用echarts作为图表插件,yarn作为包管理器,运行和打包vue程序分别需要执行:

yarn dev
yarn build
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值