ThalesGroup/security-risk-assessment-tool
GitHub: ThalesGroup/security-risk-assessment-tool
一款基于 Electron 构建的桌面应用,按照 ISO 27005 标准帮助技术团队对工程项目进行结构化的安全风险评估与风险管理。
Stars: 37 | Forks: 19
[](https://securityscorecards.dev/viewer/?uri=github.com/ThalesGroup/security-risk-assessment-tool)
# 安全风险评估工具
ISRA 或安全风险评估工具项目是一个基于 Electron 的应用程序,供泰雷兹数字身份与安全业务部(Thales DIS)内部使用,用于评估工程项目的安全风险。
它允许定义主要资产(称为业务资产)、相关的支持资产、威胁代理、漏洞,并计算相关风险和潜在的风险处理选项。此过程完全符合 ISO 27005 风险管理标准。
## 用法
对工程项目进行安全风险评估包含几个步骤,下面进行了简要总结(有关更多信息,请参阅 ISO 27005):
1. 确定并定义风险评估的范围,包括假设和信任边界。
2. 根据所需的质量安全子特性(有关产品安全特性的定义,请参阅 ISO 25010),识别业务(也称为主资产)(从业务角度来看具有价值和重要性的内容)。这里对丢失这些安全特性的后果进行了评级,针对每个安全质量子特性。这相当于 ISO 27005 中的资产识别和后果识别活动。业务资产示例:支付服务、用户个人信息、知识产权或算法。
3. 识别支持资产,即实际业务资产将要流经或被管理的地方。这通常在技术层面上存在,这些资产可能具有可被威胁代理利用的漏洞。支持资产示例:易失性存储器、存储位置、数据处理设备、加密密钥、网络、操作系统、软件应用程序。支持资产的选择取决于所需的粒度级别。这些支持资产应在工具中与业务资产相链接。例如,如果存储了某个业务资产,则应将其链接到一个存储位置。这相当于 ISO 27005 中的资产识别活动。
4. 在 risk 标签页中识别威胁和威胁场景。这包括识别威胁代理、可能受到攻击的内容以及可能性场景。每个威胁都应在 risk 标签页中定义为单独的风险。这是 ISO 27005 中的威胁识别活动。
5. 识别可能针对每个威胁场景被利用的漏洞。这在 vulnerabilities 标签页中完成,并应将其链接到支持资产。每个漏洞的评分应为 0 到 10。这是 ISO 27005 中的漏洞识别活动。
6. 在 risks 标签页中,为每个威胁创建一条漏洞攻击路径。这将创建事件场景。完成攻击路径时可以使用 AND 和 OR 组合。这是 ISO 27005 中的事件可能性评估和风险级别确定。一旦此步骤完成,每个事件场景的风险级别应当是可用的。
7. 确定风险的接受级别。对于每个评估的风险,确定风险是否可接受。这相当于 ISO 27005 中的风险评估活动。
8. 对于需要处理的风险,确定将如何处理它们:
* 缓解或修改:在 risks 标签页中针对每个处理决策提出要实施的安全控制,以及安全控制的预期收益(以风险等级的百分比表示)。
* 保留:按原样接受风险。
* 避免:通过停止活动、功能、项目或更改架构来避免风险。
* 分担:与客户或其他第三方分担或转移风险。
在某些情况下,可能会在实际定义风险之前发现漏洞,例如通过安全测试,那么上述步骤可能会进行相应的修改。
## 如何运行
只需下载适用于您平台的 zip 文件,解压缩并执行 `sratool` 或 `SRATool`,具体取决于您的平台。它具有足够的通用性,可供任何组织使用,但其中某些项目可能更多地与 Thales DIS 相关,在这种情况下,应相应地调整 `json-schema.js` 以满足您组织的需求。
漏洞 URL 支持的 URI scheme 如下:ftp、http、https、mailto、tel 和 urn
# 开发信息
# 前置条件
要安装和使用该工具,需要以下前置条件:
1. [Node.js](https://nodejs.org/en/)(Electron 必需,使用 node v20 或 v22 LTS 支持版本,其他版本未经测试或可能无法工作)
2. 如果在代理后面,请确保根据需要设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量。
3. 如果在代理后面,请确保根据需要设置了环境变量“ELECTRON_GET_USE_PROXY=true”和 GLOBAL_AGENT_HTTP_PROXY。
# 配置默认值
对于希望根据其特定需求配置该工具的开发者,可以按照如下所示和描述来配置应用程序的默认值:
## 用法
```
const config = {
appVersion: '1.2.0',
classification: '',
organizations: ''
};
```
## 示例
## 开发者安装
1. 克隆仓库
```
git clone git@github.com:ThalesGroup/security-risk-assessment-tool.git
cd security-risk-assessment-tool
```
2. 为 app 和 lib 文件夹安装依赖并运行应用程序
```
app & lib:
npm install
npm update
app:
npm start
```
## 测试
执行 lib 中 test 文件夹内的所有测试文件
```
npm run test
```
## API 文档
为 lib 生成 API 文档
```
npm run jsdoc
```
## 打包和分发
用于分发的打包使用 `electron-builder`。
### 前置条件
您需要事先按照开发者安装步骤准备好您的开发环境。您还需要确保 `app` 下的 `dist` 目录不存在。
然后,您需要在 `app` 目录中运行以下命令:
```
npm install electron-builder
```
要为 Linux、MacOS 和 Windows 创建包,您必须在 Apple Mac 机器上创建包,否则只会创建主机平台的目标包。
### 打包
要为主机平台创建包,您可以从 `app` 目录运行:
```
npm run dist
```
要从 `app` 目录进行全平台打包,请运行:
```
npm run dist-all
```
要从 `app` 目录打包特定平台,请运行:
```
npm run dist-linux
npm run dist-mac
npm run dist-windows
```
输出的文件应该会放在 `dist` 目录中。
## 文档
lib 的文档可在 [lib/doc/index.html](lib/doc/index.html) 获取。
## 联系方式
* Carl Eric Codere 和 Sebastien Petit 目前在 Thales DIS 负责监督该项目
## 贡献
如果您有兴趣为 ISRA 软件风险评估工具项目做出贡献,请先阅读[贡献指南](/CONTRIBUTING.md)。
## 许可证
根据法律部门要求选择的许可证必须在仓库根目录的明确 [LICENSE](https://github.com/ThalesGroup/template-project/blob/master/LICENSE) 文件中定义
您也可以在此 README 部分链接该文件。
覆盖项目的默认安全分类
``` const config = { appVersion: '1.2.0', classification: 'COMPANY CONFIDENTIAL {PROJECT}' }; ```覆盖项目的默认组织选项
``` const config = { appVersion: '1.2.0', organizations: ['Governance division','IT division', 'FinTech division'] }; ```标签:Electron, ISO27005, MITM代理, 合规, 安全管理, 数据可视化, 桌面应用, 自定义脚本