Python 实现简单信息安全风险评估模型(资产价值 + 风险值计算)
·
一、背景
在信息安全评估中,通常需要对资产进行量化分析,例如:
-
资产价值
-
安全事件损失
-
发生可能性
-
最终风险值
这里用 Python 实现一个简单的计算模型,通过输入各项指标,自动输出最终风险值。
二、计算逻辑
涉及四个核心计算:
1. 资产价值(BiAjv)
由以下因素决定:
-
保密性(C)
-
完整性(I)
-
可用性(A)
-
业务承载性
-
业务重要性
2. 损失值(F)
F = √(资产价值 × 影响程度)
3. 可能性(L)
L = √(威胁 × 脆弱性)
4. 风险值(R)
R = √(L × F)
三、运行效果
=== 资产价值 BiAjv 计算 ===
请输入保密性赋值 (yd-5): 3
请输入完整性赋值 (yd-5): 4
请输入可用性赋值 (yd-5): 5
请输入资产对业务承载性赋值 (yd-5): 4
请输入业务重要性赋值 (yd-5): 5
资产综合价值 BiAjv = 7
=== 安全事件造成的损失计算 ===
请输入影响程度 Di (yd-5): 4
安全事件造成的损失 F = 5
=== 安全事件发生的可能性计算 ===
请输入威胁赋值 T (yd-5): 3
请输入脆弱性被利用难易程度 Av (yd-5): 2
安全事件发生的可能性 L = 2
=== 最终风险值计算 ===
系统组件和单元资产风险值 R = 3
四、完整代码
# -*- coding: utf-8 -*-
import math
def calculate_biajv(vaj1, vaj2, vaj3, biajca, biv):
cia_average = (vaj1 + vaj2 + vaj3) / 3
step2 = biajca * cia_average
step3 = math.sqrt(step2)
step4 = step3 * biv
return round(math.sqrt(step4))
def calculate_loss(vc, di):
return round(math.sqrt(vc * di))
def calculate_possibility(t, av):
return round(math.sqrt(t * av))
def calculate_risk_value(L, F):
return round(math.sqrt(L * F))
if __name__ == "__main__":
print("=== 资产价值 BiAjv 计算 ===")
vaj1 = float(input("请输入保密性赋值 (yd-5): "))
vaj2 = float(input("请输入完整性赋值 (yd-5): "))
vaj3 = float(input("请输入可用性赋值 (yd-5): "))
biajca = float(input("请输入资产对业务承载性赋值 (yd-5): "))
biv = float(input("请输入业务重要性赋值 (yd-5): "))
vc = calculate_biajv(vaj1, vaj2, vaj3, biajca, biv)
print(f"资产综合价值 BiAjv = {vc}")
print("\n=== 安全事件造成的损失计算 ===")
di = float(input("请输入影响程度 Di (yd-5): "))
loss = calculate_loss(vc, di)
print(f"安全事件造成的损失 F = {loss}")
print("\n=== 安全事件发生的可能性计算 ===")
t = float(input("请输入威胁赋值 T (yd-5): "))
av = float(input("请输入脆弱性被利用难易程度 Av (yd-5): "))
possibility = calculate_possibility(t, av)
print(f"安全事件发生的可能性 L = {possibility}")
print("\n=== 最终风险值计算 ===")
risk = calculate_risk_value(possibility, loss)
print(f"\n系统组件和单元资产风险值 R = {risk}")
更多推荐

所有评论(0)