掌握安全框架:我的现代应用程序多层安全框架

掌握安全框架:我的现代应用程序多层安全框架

2026年5月18日

无国界医生

总结

Master Security Framework (MSF) 是一个全面的、多语言、多层的安全框架,旨在保护技术堆栈各个级别的现代应用程序。 MSF 采用 Python 和 TypeScript 实现,提供分布在 28 个模块中的 350 多个功能,涵盖从身份验证和加密到 Web 攻击检测、网络分析、云安全、人工智能保护、自适应蜜罐、主动防御和企业合规性的一切。本文对框架中实现的各个模块、功能、设计模式和安全机制进行了详细的技术分析。


1.简介

1.1。问题

现代应用程序面临着越来越复杂的威胁。单个系统可能同时受到多个层攻击的攻击:向语言模型中注入提示、利用 Web 漏洞(XSS、SQLi、SSRF)、端口扫描、DDoS 攻击、云配置错误、容器受损、软件供应链中易受攻击的依赖项以及违反法规合规性。

传统的安全方法(使用孤立的工具解决每个问题)会造成防御孤岛,从而在各层之间留下间隙。 MSF 旨在通过提供跨应用程序所有层运行的统一安全平台来解决此问题。

1.2。什么是主安全框架

MSF 是一个用两种语言实现的开源安全框架:Python 和 TypeScript。每个模块都以两种语言存在,具有相同的语义,允许多语言团队使用相同的安全功能集,而不管技术堆栈如何。

该框架围绕四个支柱构建:

  1. 预防:输入验证、清理、加密、配置强化
  2. 检测:分析攻击模式、统计异常、恶意软件签名、可疑行为
  3. 答案:自主警报、隔离、遏制、自我修复
  4. 合规性:自动验证LGPD、GDPR、HIPAA、PCI-DSS

1.3。项目指标

  • 通过了 243 个自动化测试(77 个 Python + 166 个 TypeScript)
  • 14 个 Python 模块,超过 180 个函数
  • 14 个 TypeScript 模块,具有 170 多个功能
  • OpenTelemetry遥测集成到所有功能中
  • 结构化日志记录(TypeScript 中的 pin,Python 中的 loguru)
  • 具有自动失效功能的内存缓存
  • 用于可配置安全规则的策略引擎
  • 用于模块之间异步通信的事件总线

2. 框架架构

2.1。基础设施层(核心)

MSF 基础由所有其他模块共享的六个基础设施组件组成:

全局配置:存储安全参数、阈值、允许/阻止列表和加密密钥的集中配置对象。可以从环境变量实时重新加载配置,而无需重新启动应用程序。

策略引擎:规则评估系统,允许您将安全策略定义为结构化语句。该引擎支持逻辑运算符、复合条件和强制操作(允许、拒绝、警告、记录)。

事件总线:异步发布/订阅系统,允许模块发布安全事件并允许其他模块订阅做出反应。事件总线包括事件历史记录和无法处理的事件的死信队列。

指标注册表:支持计数器(用于累积计数)、仪表(用于瞬时值)和直方图(用于分布)的指标系统。所有发现功能都会自动发布指标。

缓存管理器:具有可配置 TTL(生存时间)的 LRU(最近最少使用)缓存,用于存储昂贵的验证结果、IP 阻止列表、会话指纹和撤销令牌。

OpenTelemetry:与 OpenTelemetry 标准完全集成,为每个安全操作生成分布式跟踪范围。这允许颜色将安全事件与微服务架构中的请求跟踪相关联。

结构化记录器:使用 pin (TypeScript) 和 loguru (Python) 以 JSON 格式进行结构化日志记录,包括自动上下文,例如跟踪 ID、严重性、模块和安全元数据。

异常处理:安全异常的层次结构(“SecurityError”、“ValidationError”、“AuthenticationError”、“EncryptionError”)允许对安全错误进行精细处理。

2.2。保护层

关于基础设施,MSF 将其安全模块分为三个功能层:

输入层:Web、API、Auth——保护应用程序入口点 基础设施层:网络、云、文件——保护底层基础设施 智能层:人工智能、监控、防御、蜜罐——通过智能和适应进行保护


3.认证模块(Auth)

身份验证模块是框架中最广泛的,Python 中有 30 个函数,TypeScript 中有 7 个函数。它涵盖了整个身份验证生命周期:令牌生成和验证、会话管理、攻击检测和高级身份验证方法。

3.1。 JWT(JSON Web 令牌)

MSF 实现了一个完整的 JWT 系统,不仅仅是简单的生成和验证:

  • generate_jwt 创建带有主题、自定义声明、可配置过期时间和发行者的令牌。支持HS256、HS384、HS512、RS256、ES256算法。
  • validate_jwt 检查签名、过期、强制声明,并返回解码后的有效负载。 verify_exp 参数允许您禁用特定情况下的过期检查。
  • revoke_jwt 将令牌的 JTI (JWT ID) 添加到撤销黑名单中。这对于在令牌自然过期之前注销至关重要。
  • rotate_jwt 验证旧令牌并颁发具有相同身份的新令牌,允许静默令牌轮换而不中断用户会话。
  • validate_refresh_token 通过验证刷新令牌是否属于特定用户来验证刷新令牌,从而防止其他用户使用被盗的刷新令牌。

3.2。会话管理

MSF 会话系统包括针对会话劫持的保护:

  • secure_session 创建一个链接 user_id、IP、用户代理和设备指纹的会话。这使您可以检测会话上下文中的可疑更改。
  • validate_session 检查 session_id 是否属于用户以及当前 IP 是否与创建会话时注册的 IP 匹配。
  • detect_session_hijack 将当前 IP 和用户代理与历史会话数据进行比较。如果 IP 已移动到不同的子网或用户代理已发生重大更改,则该函数返回 true 表示可能被劫持。
  • detect_token_replay 保留已使用的令牌的记录。如果令牌出现多次,该函数会检测到重放攻击。

3.3。认证攻击检测

MSF 检测针对身份验证系统的三种主要类型的攻击:

  • detect_credential_stuffing 监控单个 IP 对多个用户帐户的登录尝试。如果某个 IP 在一段时间内尝试许多不同的用户名,则会被标记为撞库。
  • detect_bruteforce 监视单个帐户的登录尝试。如果在时间窗口内尝试次数超过阈值,则将其标记为暴力破解。
  • detect_impossível_travel 计算两个连续登录位置之间的距离,并将其与经过的时间进行比较。如果点之间行驶所需的速度超过合理的物理限制(例如 900 公里/小时),该功能会检测到不可能的行驶。
  • geo_velocity_check 将不可能的旅行检测扩展到多个位置,计算所有连续登录点之间的地理速度。

3.4。自适应和基于风险的身份验证

  • adaptive_auth 根据上下文的风险评分调整身份验证要求。从熟悉位置的熟悉设备登录可能只需要密码,而从不同国家/地区的新设备登录可能需要额外的 MFA。
  • behavioral_auth 使用行为生物识别技术(打字模式、鼠标移动、浏览节奏)根据注册的行为基线验证用户的身份。
  • risk_based_auth 从多个计算综合风险评分依据因素:位置、设备、时间、行为、IP 信誉,并返回具有置信度的身份验证决策。

3.5。 TOTP 和备份代码

  • generate_totp 生成遵循 RFC 6238 的基于时间的一次性密码代码,具有可配置的数字和周期。
  • validate_totp 使用时钟漂移容限(drift 参数)验证 TOTP 令牌,补偿服务器和用户设备之间的不同步。
  • verify_backup_code 验证并使用备份/恢复代码,在使用后将其从有效列表中删除以防止重复使用。

3.6。 WebAuthn 和密钥

  • passkey_auth 通过检查身份验证器的加密签名、身份验证器数据和 JSON 客户端数据来验证 FIDO2/WebAuthn 身份验证。
  • webauthn_verify 执行完整的 WebAuthn 断言检查,包括根据注册的公钥验证来源、RP ID(依赖方 ID)和加密签名。
  • phishing_pressive_auth 检查身份验证方法是否能够抵抗网络钓鱼,需要 FIDO2 级别 2 或更高级别并经过验证的证明。

3.7。密码安全

  • password_entropy 计算密码的香农熵,以位为单位测量其信息复杂性。熵低于 40 位的密码被视为弱密码。
  • detect_weak_password 将熵分析与常见密码列表(rockyou、前 10000 个等)进行检查相结合。
  • password_breach_check 检查密码散列是否出现在已知违规的数据库中(我是否被破解或类似)。
  • secure_password_hash 使用加密盐和密钥拉伸(迭代)创建密码哈希,支持 PBKDF2、bcrypt、scrypt 和 Argon2 等算法。
  • verify_password_hash 使用恒定时间安全比较将密码与存储的哈希进行比较。

3.8。设备和浏览器指纹识别

  • device_fingerprint 根据用户代理、屏幕分辨率、时区、语言和平台等属性生成唯一的设备标识符。
  • browser_fingerprint 使用基于渲染特征的高级指纹识别技术:2D 画布哈希、WebGL 哈希、音频上下文哈希和已安装字体列表。
  • biometric_validation 将生物识别数据(指纹、面部识别、虹膜)与具有可配置相似性阈值的存储模板进行比较。

4. 密码学模块(Crypto)

加密模块实现了现代对称、非对称和后量子加密算法,重点关注身份验证和完整性。

4.1。认证加密

  • encrypt_data 使用关联数据的经过身份验证的加密 (AEAD),支持 AES-256-GCM 和 ChaCha20-Poly1305。关联数据 (AAD) 允许您以经过身份验证的方式将未加密的元数据链接到密文。
  • decrypt_data 执行经过身份验证的解密,在返回明文之前检查身份验证标签。如果标签不匹配,解密就会失败,从而防止 oracle 填充和密文操纵攻击。 -“加密文件”和“解密文件”将经过身份验证的加密扩展到磁盘上的文件,安全地管理随机数、盐和元数据。

4.2。混合密码学

  • hybrid_encrypt 将非对称加密(用于密钥交换)与对称加密(用于有效负载)相结合。对称密钥是随机生成的,用于加密有效负载,然后使用接收者的公钥进行加密。
  • hybrid_decrypt 反转该过程:用私钥解密对称密钥,然后解密有效负载。

4.3。后量子密码学

MSF 实施由 NIST 标准化的后量子算法:

  • pqc_encryptpqc_decrypt 使用 ML-KEM(以前称为 Kyber)进行量子计算机抵抗加密。
  • kyber_key_exchange 实现了用于后量子共享密钥建立的 Kyber 密钥交换协议。
  • dilithium_sign 使用 ML-DSA(以前称为 Dilithium)进行后量子数字签名。
  • sphincs_sign 使用 SPHINCS+(一种基于哈希函数的签名方案)作为无状态后量子替代方案。
  • falcon_sign 使用 Falcon,一种基于格的签名方案,具有紧凑的签名。

4.4。 HMAC 和签名验证

  • generate_hmac 生成一个 Hash-b使用 HMAC-SHA256、HMAC-SHA384、HMAC-SHA512 或 HMAC-SHA3-256 的消息身份验证代码。
  • verify_hmac 使用恒定时间比较将计算出的 HMAC 与预期的 HMAC 进行比较。
  • verify_signature 根据消息和公钥验证数字签名(Ed25519、ECDSA、RSA-PSS)。

4.5。加密实用程序

  • secure_random 使用 os.urandom() (Python) 或 crypto.getRandomValues() (TypeScript) 生成加密安全字节。
  • secure_memory_erase 用零覆盖包含敏感数据的内存区域,防止数据在使用后保留在内存中。
  • anti_timing_compare 在恒定时间内比较两个字节序列,无论第一个差异发生在哪里,都会迭代所有字节,从而防止定时攻击。

5. 网页模块

Web 模块在攻击检测方面最为广泛,Python 中有 30 个函数,TypeScript 中有 35 个函数。它涵盖了 OWASP Top 10 及其他类别中列出的所有 Web 漏洞类别。

5.1。跨站脚本 (XSS)

  • detect_xss 分析 XSS 模式的输入,包括:<script> 标记、事件处理程序(onloadonclickonerror)、javascript: URI、DOM XSS(innerHTMLdocument.write)和通过 SVG/MathML 的 XSS。该函数采用一组正则表达式模式,并根据匹配模式的数量计算置信度得分。 severity_threshold 允许您调整检测灵敏度。
  • sanitize_html 使用安全标签(<p><br><strong><em> 等)和安全属性(hrefsrcalttitle 等)的白名单从 HTML 中删除不允许的标签和属性。不允许的标签被完全删除,并且像“on*”这样的危险属性被过滤掉。
  • sanitize_svg 通过删除危险元素(例如 <script><foreignObject><animate> 和事件属性)来清理 SVG。
  • sanitize_markdown 通过删除嵌入的危险 HTML 同时保留原生 Markdown 格式来清理 Markdown。
  • sanitize_css 删除危险的 CSS 属性,如 expression()url(javascript:)behavior-moz-binding
  • sanitize_js 删除了危险的 JavaScript 模式,包括 eval()Function()、带有字符串的 setTimeout/setIntervaldocument.writedocument.cookie、不安全的 DOM 操作和代码执行方法。

5.2。 SQL 和 NoSQL 注入

  • detect_sqli 检测 SQL 注入模式,包括:基于 UNION(UNION SELECT)、盲目(AND 1=1OR '1'='1')、基于时间(SLEEP()WAITFOR DELAY)、基于错误和堆叠查询。该函数还检测规避技术,例如十六进制编码、注释(--/* */)和字符串连接。
  • detect_nósqli 检测 NoSQL 数据库(主要是 MongoDB)中的注入,识别输入中的危险运算符:$gt$gte$lt$lte$ne$in$nin$regex$where$exists

5.3。服务器端请求伪造 (SSRF)

  • detect_ssrf 根据允许的域和阻止的 IP 列表检查 URL。该函数检测 SSRF 绕过技术,包括:重定向到本地主机、使用 DNS 重新绑定、带有编码的 URL(“%00”、“%0d%0a”)以及对云元数据端点(“169.254.169.254”、“metadata.google.internal”)的访问。

5.4。远程代码执行 (RCE) 和命令注入

  • detect_rce 识别远程代码执行模式,包括对 eval()exec()system()passthru()popen()、反引号和管道运算符的调用。
  • detect_command_injection 使用 shell 操作符检测操作系统命令注入:;|||&&、反引号、$() 和重定向 (>>>)。

5.5。文件包含和路径遍历

  • detect_lfi 通过识别路径遍历(../..\)、编码遍历(%2e%2e%2f)和危险协议(php://filterphp://inputdata://expect://)的序列来检测本地文件包含。
  • 当外部 URL 作为 include/require 参数传递时,“detect_rfi”会检测远程文件包含。
  • detect_path_traversal 检查路径是否在允许的 base_path 内解析,检测绝对和相对遍历。

5.6。模板注入

  • detect_template_injection 检测 Jinja2 的服务器端模板注入 (SSTI)({{ 7*7 }}{% for %})、EJS (<%= %>)、Handlebars ({{#each}})、Pug、Twig、Mustache 以及检测常见模板语法的通用模式。

5.7。反序列化和打开重定向

  • detect_deserialization_attack 通过检查允许的类和已知的小工具模式(Java 序列化、Python pickle、PHP 反序列化、YAML 反序列化)来识别不安全的反序列化。
  • detect_open_redirect 检查重定向 URL 是否指向白名单上的主机,防止重定向到恶意域。

5.8。 CSRF、CORS 和 CSP 保护

  • csrf_protectvalidate_csrf 使用安全比较检查请求 CSRF 令牌与会话令牌。
  • validate_cors 通过根据允许的列表检查来源、方法和标头来验证 CORS 请求。
  • generate_csp 从指令配置(script-src、style-src、img-src、connect-src、frame-ancestors 等)生成 Content-Security-Policy 标头。
  • validate_csp 根据定义的安全策略验证现有的 CSP 标头。
  • secure_headers 生成一套完整的安全标头:Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options、X-XSS-Protection、Referrer-Policy、Permissions-Policy 和 Content-Security-Policy。

5.9。安全 Cookie 和点击劫持

  • secure_cookie 生成带有 Secure、HttpOnly、SameSite(严格或宽松)、域范围、路径和 max-age 标志的 Set-Cookie 标头。
  • detect_clickjacking 检查 X-Frame-Options 标头和 CSP 框架祖先是否存在,以检测点击劫持漏洞。
  • validate_originvalidate_referer 根据预期域验证 Origin 和 Referer 标头。

5.10。网络钩子

  • webhook_signature 为 webhook 有效负载生成 HMAC 签名,包括用于防止重放的时间戳。
  • webhook_replay_protection 检查 webhook 签名和时间戳,拒绝配置的时间窗口之外的请求。

6. API 模块

API 模块可保护 API 端点免受各种攻击和滥用。

6.1。输入验证和清理

  • validate_json_schema 使用可选的严格模式根据 JSON 模式定义验证数据,该模式拒绝模式中未定义的额外字段。
  • validate_input 根据类型规则(字符串、数字、布尔值、数组、对象)、最小/最大大小、正则表达式模式、允许值的枚举和最大嵌套深度(默认值:5 层)验证 API 输入。
  • sanitize_json 通过删除不允许的类型并截断超过配置的最大长度(默认值:10,000 个字符)的字符串来清理 JSON 数据。

6.2。速率限制

  • api_rate_limit 使用滑动窗口算法实现速率限制,记录每个客户端和端点的请求时间戳。当窗口中的请求数量超过限制时,请求将被拒绝。
  • adaptive_rate_limit 根据客户端行为动态调整速率限制。拥有干净记录的客户会收到更慷慨的限制,而有可疑行为的客户会收到更严格的限制。

6.3。 API 滥用检测

  • detect_api_abuse 分析请求模式以检测:抓取(对许多资源的连续请求)、枚举(连续的 ID 尝试)、模糊测试(具有各种格式错误的有效负载的请求)和恶意自动化(具有常规模式的高频率)。
  • detect_shadow_api 通过将访问的端点与记录的 API 列表进行比较来识别正在接收流量的未记录的端点。

6.4。损坏的对象级授权 (BOLA/IDOR)

  • detect_bola 检查用户是否有权访问所请求的资源,将 resource_id 与将资源映射到其所有者的 ownership_map 进行比较。如果用户不是所有者并且没有委派权限,则该函数返回 true。

6.5。破坏的身份验证和批量分配

  • detect_broken_auth 检查身份验证令牌的存在性和有效性、端点所需的范围以及令牌与请求的用户之间的对应关系。
  • detect_mass_assignment 检查 API 输入是否包含不在模型中的字段 (model_fields) 或在只读字段列表 (readonly_fields) 中,防止攻击者修改受保护的字段,例如 is_adminrolebalance

6.6。 GraphQL 安全性

  • graphql_depth_limit 分析 GraphQL 查询的深度,拒绝超出配置限制的查询(默认:10 个级别)。这可以防止以下攻击可能导致拒绝服务的递归操作。
  • graphql_cost_analysis 根据每个字段的复杂性(可通过 complexity_map 配置)和嵌套级别计算 GraphQL 查询的计算成本。成本高于限制(默认值:1000)的查询将被拒绝。
  • graphql_abuse_detection 分析一个时间窗口中的多个查询,以检测查询泛滥、内省滥用(利用架构映射 API 的查询)和重复滥用模式。

6.7。 gRPC 和 WebSocket 安全

  • grpc_security_validation 通过检查元数据、强制标头和 TLS 信息(密码套件、协议、对等证书)来验证 gRPC 请求的安全性。
  • secure_websocket 通过源验证和允许的子协议配置安全 WebSocket 连接。
  • websocket_origin_validationwebsocket_flood_protection 防止恶意 WebSocket 连接和连接泛洪。

6.8。 API密钥管理

  • api_key_rotation 生成具有安全散列 (SHA3-256)、可识别前缀和可配置到期日期的新 API 密钥。
  • api_key_validation 根据已知密钥注册表验证 API 密钥,检查范围、过期时间和个人速率限制。

7. 人工智能(AI)模块

AI 模块是 MSF 最具创新性的模块之一,为使用大型语言模型 (LLM) 的应用程序提供全面的保护。

7.1。即时注入和越狱保护

  • detect_prompt_injection 分析注入模式的提示,例如“忽略以前的指令”、“忘记所有规则”、“系统:”、“您现在”、“忽略所有以前的”、“覆盖系统指令”、“绕过安全性”、“就好像您是”、“假装您是”、“从现在开始”、“开发人员模式:”以及尝试模拟系统指令的标记模式。该函数使用 20 多个正则表达式模式,并根据匹配数和提示长度计算置信度得分。
  • Detect_jailbreak 检测专门针对绕过 LLM 安全限制的越狱尝试,包括:DAN 模式、“立即执行任何操作”、“禁用安全”、“无限制模式”、“无任何限制”、“忽略您的安全准则”、“您不必遵循您的规则”、“不受限制的角色扮演”、“假设场景”、“在这个替代宇宙中”和“仅用于教育目的”模式用作理由绕过。

7.2。敏感数据保护

  • detect_sensitive_leak 扫描文本中的敏感数据,包括:SSN/CPF、信用卡号(带有 Luhn 校验和验证)、电子邮件、电话号码、API 密钥(AWS、GCP、GitHub、Stripe 标准)、密码、JWT 令牌、私钥(PEM 标头)和加密货币钱包地址。
  • detect_prompt_leak 通过使用文本相似性将用户提示的内容与系统提示进行比较来检测提取 LLM 系统提示的尝试。如果用户尝试重现或推断部分系统提示,该函数会对其进行标记。
  • detect_data_exfiltration 分析 LLM 输出中可能无意中包含在响应中的敏感数据。

7.3。消毒

  • sanitize_prompt 从用户提示中删除被阻止的模式并强制执行长度限制。
  • sanitize_llm_output 从 LLM 输出中删除脚本、事件处理程序和敏感数据,并在必要时应用截断。
  • ai_memory_sanitizer 根据保留策略清理 AI 内存条目,删除敏感数据和过期条目。

7.4。模型和代理滥用检测

  • detect_model_abuse 分析请求模式以检测模型滥用:过度重复(多次发送相同的提示)、高请求率(超过 30/分钟)和异常复杂性(非常深或长的查询)。滥用分数计算为模式匹配、重复率、比率和复杂性的加权组合。
  • detect_agent_abuse 通过检查执行的操作是否在定义的策略(允许的操作、调用限制、访问限制)范围内来监控 AI 代理的行为。

7.5。 LLM 防火墙和策略引擎

  • llm_firewall 根据一组 LLM 防火墙规则评估输入,并具有可配置的操作(阻止、警告、记录)。每个规则指定一个模式、一个条件和一个操作。
  • ai_policy_engine 评估LLM提示和输出都针对一组安全策略,包括:禁止生成恶意代码、禁止泄露个人信息、要求事实声明的来源以及特定于域的限制。

7.6。 RAG和幻觉

  • rag_source_validation 验证 RAG(检索增强生成)系统中使用的源的可信度,检查源域是否在可信列表中并应用验证规则,例如检查日期、作者和信誉。
  • hallucination_risk 通过分析以下因素来评估 LLM 输出中的幻觉风险:低置信度分数、未经验证的陈述、事实不一致以及表明不确定性的语言模式。

7.7。护栏和工具调用验证

  • ai_output_guard 对 LLM 输出应用护栏和编辑规则,删除禁止内容并编辑敏感数据。
  • tool_call_validation 通过检查工具是否在允许列表中以及参数是否符合预期模式来验证工具调用(函数调用)。
  • multi_agent_isolation 验证多个 AI 代理之间的隔离和通信策略,防止一个代理损害另一个代理。

7.8。监控

  • ai_token_monitor 根据定义的限制(每个请求、每分钟、每天、每成本)监控 LLM 代币的使用情况,在接近或超过限制时生成警报。
  • ai_behavior_monitor 监控 AI 行为是否偏离既定基线,检测响应模式的变化、错误增加或意外行为。

8. 网络模块

网络模块提供网络级威胁检测,涵盖从端口扫描到命令和控制通信的所有内容。

8.1。扫描检测

  • detect_port_scan 分析来自源 IP 的连接以检测端口扫描。该函数对访问的唯一端口进行计数,计算连接速率(每秒连接数),并分析 TCP 标志模式(SYN 洪水、SYN-RST 模式)。检测到的扫描类型包括:SYN 扫描、FIN 扫描、XMAS 扫描、NULL 扫描和 UDP 扫描。可配置的阈值允许您调整灵敏度(默认值:60 秒内 20 个单端口)。
  • detect_dns_tunneling 分析 DNS 查询以检测隧道,计算子域的香农熵(DNS 查询中编码的数据具有高熵),测量子域的平均大小,并计算特定域的查询频率。

8.2。流量异常检测

  • detect_traffic_anomaly 使用静态 z 分数将当前流量指标(每秒字节数、每秒数据包数、每秒连接数、协议分布)与历史基线进行比较。高于阈值(默认值:2.0 标准差)的偏差被标记为异常。
  • “Detect_ddos”通过根据基线分析每秒字节/数据包的峰值,并使用可配置的阈值和时间窗口来检测分布式拒绝服务攻击。

8.3。代理、VPN 和 Tor 检测

  • detect_proxy 检查指示代理的 HTTP 标头(X-Forwarded-For、Via、X-Real-IP、Forwarded)并分析代理连接的行为模式。
  • detect_vpn 根据已知 VPN 提供商 IP 的数据库检查源 IP。
  • detect_tor 通过与 Tor 网络的节点和退出节点列表进行比较来检查 IP 是否属于 Tor 网络。

8.4。 IP 和域验证

  • validate_ip 使用 CIDR 匹配根据允许的范围和块验证 IPv4 地址。支持 CIDR 表示法(例如“192.168.1.0/24”)和单独范围。
  • validate_domain 通过根据允许列表(例如,仅 .com.org.br)检查 TLD 并根据阻止列表检查完整域来验证域。

8.5。欺骗检测和 ARP 中毒

  • detect_spoofing 根据预期来源和网络拓扑分析数据包数据以检测 IP 欺骗,检查源 IP 是否与预期路由一致。
  • detect_arp_poisoning 将当前 ARP 表与预期的 IP 到 MAC 映射进行比较,检测 MAC 地址何时响应多个 IP 或映射何时意外更改。

8.6。 TLS 指纹识别

  • tls_fingerprint 根据握手生成 TLS 指纹(密码套件、扩展、椭圆曲线、点格式)并进行比较到已知指纹数据库来识别客户。
  • ja3_fingerprint 生成特定于 TLS 的 JA3 哈希 ClientHello,它是基于协商参数识别 TLS 客户端的行业标准。

8.7。信标和 C2 检测

  • beaconing_detection 通过分析连接之间间隔的规律性来检测信标行为(与命令和控制的定期通信)。具有非常规则的间隔(低抖动)和高间隔相关性的连接表明存在信标。
  • command_and_control_detection 根据已知的 C2 指标分析流量模式:与 DGA(域生成算法)域的通信、非标准端口上的流量、信标模式以及隧道协议(DNS、ICMP、HTTP)的使用。

8.8。横向移动和网络分析

-“横向移动检测”通过分析网络上主机之间的访问模式来检测横向移动:访问用户通常不访问的主机、对异常主机使用远程管理协议(RDP、SSH、WMI)以及以图形模式传播访问。 - network_entropy_analysis 分析网络数据包的熵以检测加密或加扰的流量(高熵表示随机或加密数据)。 - traffic_behavior_analysis 根据时间窗口中建立的基线分析流量行为,检测通信模式的变化。 - protocol_anomaly_detection 通过将协议数据与预期规范(必填字段、有效值、消息序列)进行比较来检测协议中的异常情况。


9. 云模块

云模块保护AWS、GCP和Azure上的云基础设施,涵盖容器、Kubernetes、存储、IAM、IaC和供应链。

9.1。集装箱安全

  • validate_dockerfile 根据安全最佳实践验证 Dockerfile:不要使用 latest 标签,不要以 root 身份运行,包含 HEALTHCHECK,不包含硬编码机密,使用最少的基础镜像(alpine、distroless),并且不要暴露不必要的端口。
  • detect_container_escape 通过检查以下内容来检测潜在的容器逃逸向量:特权模式、危险功能(SYS_ADMIN、SYS_PTRACE、NET_ADMIN)、敏感主机路径安装(//etc/proc/sys)、缺少 seccomp/AppArmor 配置文件以及主机命名空间共享。
  • runtime_container_protection 在运行时根据威胁规则分析容器事件并执行自动操作(阻止、警报、隔离、终止、记录)。
  • container_image_scan 扫描容器镜像层是否存在已知漏洞 (CVE) 并检查镜像签名(Cosign、Notary)。

9.2。 Kubernetes 安全

  • validate_k8s_rbac 根据最小权限原则验证 Kubernetes RBAC 配置:检测带有通配符 (*) 的 ClusterRoles、具有过多权限的 ServiceAccounts、授予机密访问权限的绑定以及允许在 Pod 中执行的角色。
  • validate_kubernetes_manifest 根据 pod 安全策略和网络策略验证 Kubernetes 清单:检测以 root 身份运行、没有资源限制、具有 hostNetwork/hostPID/hostIPC、没有 readOnlyRootFilesystem 且没有 securityContext 的 pod。
  • runtime_k8s_anomaly 检测 Kubernetes 运行时事件中的异常行为:在异常命名空间中创建 Pod、更改 RBAC、访问非标准机密以及通常不通信的 Pod 之间的通信。

9.3。存储和 IAM

  • detect_public_bucket 通过检查:带有 Primary: "*" 的存储桶策略、公共 ACL、禁用公共访问阻止以及公开存储桶的网站配置来检测可公开访问的云存储存储桶。
  • validate_s3_permissions 根据安全要求验证 S3 存储桶权限:检查是否没有公共写入权限、是否已启用加密、版本控制是否处于活动状态以及是否配置了日志记录。
  • validate_iam_policy 根据允许和拒绝的操作列表验证 IAM 策略,检测过度权限:使用通配符(s3:**)的操作、对所有服务资源的访问以及不存在限制条件。

9.4。基础设施即代码

  • validate_terraform 根据安全策略验证 Terraform 计划:检测禁用加密的资源、具有开放条目规则的安全组(0.0.0.0/0)、公共存储桶、无支持的数据库和没有识别标签的资源。
  • detect_cloud_misconfig 通过将当前配置与每个提供商(AWS、GCP、Azure)的安全基线进行比较来检测云基础设施配置错误。

9.5。秘密与供应链

  • validate_secrets_manager 验证机密管理器配置:启用自动轮换、使用 KMS 静态加密、限制性访问策略和启用访问日志记录。
  • supply_chain_validation 根据可信来源和漏洞数据库验证软件依赖关系,检测来自未经验证来源的软件包、具有已知 CVE 的版本以及具有限制性许可证的依赖关系。
  • sbom_generator 生成 SPDX 或 CycloneDX 格式的软件物料清单,列出所有组件的名称、版本、类型、许可证和哈希值。
  • dependency_audit 使用严重性过滤器审核漏洞数据库的依赖关系。
  • Detect_typósquatting 通过使用字符串相似性(Levenshtein、字符交换、连字符)将包名称与已知包进行比较来检测 Typósquatting 攻击。

9.6。分数和身份

  • cloud_security_score 根据 CIS 基准和按类别(IAM、存储、网络、日志记录、加密)的可配置权重计算总体云安全分数。
  • workload_identity_validation 验证工作负载身份配置(AWS 上的 IRSA、GKE 上的工作负载身份、Azure 上的托管身份)。
  • confidential_computing_validation 验证 TEE 的机密计算证明(Intel SGX/TDX、AMD SEV-SNP、AWS Nitro Enclaves、Azure CVM)。

10.监控模块

监控模块提供先进的检测、关联和事件响应功能。

10.1。防篡改日志记录

  • secure_log 使用哈希链创建具有加密完整性的安全日志条目:每个条目都包含前一个条目的哈希值,因此不可能在不使整个链失效的情况下更改过去的条目。
  • tamperproof_logs 通过验证每个哈希值是否正确指向前一个条目来检查日志链的完整性。

10.2。统计评分

  • anomaly_score 使用统计 z 分数计算异常分数:对于每个指标,计算当前值与历史平均值的标准差。单独的分数与可配置的权重相结合以产生综合分数。
  • threat_score 计算由安全和威胁情报事件组成的威胁分数,按严重性、目标的关键性和情报源的置信度进行加权。
  • risk_score 根据最近事件、当前上下文和历史记录(之前的风险平均值、事件数量、自上次事件以来的天数)计算特定用户的风险分数。

10.3。关联和警报

  • correlate_events 使用用户定义的关联规则将时间窗口内的安全事件关联起来。例如:“如果来自同一 IP 的登录失败事件有 3 个,随后发生成功事件,则尽可能进行暴力关联”。
  • realtime_alert 根据警报规则评估事件,并生成具有可配置通知(电子邮件、Slack、PagerDuty、webhook)的实时警报。
  • adaptive_alerting 实现具有警报疲劳预防功能的自适应警报:如果每小时的警报数量超过基线,系统会将类似的警报分组并降低通知频率。

10.4。攻击分析

-“攻击路径分析”根据安全事件和网络拓扑分析网络中的潜在攻击路径,识别攻击者可用于到达关键目标的操作序列。 - threat_graph 根据事件、实体(用户、主机、应用程序)和关系(访问、受损、通信)构建威胁知识图。 - attack_chain_mapping 将安全事件映射到 MITRE ATT&CK 框架(技术和战术)和网络杀伤链(侦察、武器化、投送、利用、安装、C2、目标行动)。

10.5。行为分析和UEBA

-“行为分析”根据既定基线分析用户行为:典型登录时间、常见位置、每小时事件量以及典型操作类型。 - ueba_analysis 执行用户和实体行为分析将用户行为与对等组(具有相似配置文件的用户组)进行比较,检测统计偏差。 - detect_account_takeover 根据行为指标检测帐户接管尝试:未知设备登录、异常位置、非典型时间、数据传输后更改密码以及对非标准资源的访问。

10.6。自主响应和取证

  • autonomous_response 根据威胁严重性和响应规则执行自主事件响应:阻止 IP、禁用帐户、隔离主机、撤销令牌以及升级到安全团队。
  • forensic_snapshot 使用证据保管链创建系统状态的取证快照,包括所有收集的工件的加密哈希。
  • incident_timeline 根据安全事件构建按时间顺序排列的事件时间线,按时间戳排序并按攻击阶段分组。
  • autonomous_triage 使用分类规则和丰富数据(威胁情报、用户上下文、误报历史记录)执行警报的自主分类。

11.主动防御模块(防御)

防御模块实现主动防御机制,保护框架和应用程序运行时本身。

11.1。防调试、防篡改

  • runtime_self_protection 在运行时启用自我保护机制:定期完整性检查、调试检测和持续监控进程状态。
  • anti_debugging_detection 通过检查以下内容来检测活动的调试尝试:ptrace 状态(如果正在跟踪进程)、环境中的调试器信号(环境变量、调试文件)和运行时异常(意外暂停表示断点)。
  • anti_tampering 通过将加密哈希值(SHA-256、SHA3-256)与预期值进行比较来检查二进制完整性。如果哈希值已更改,则二进制文件已被修改。
  • memory_integrity_check 通过将当前状态与预期状态进行比较并检查关键区域的签名来检查内存区域的完整性。
  • process_integrity_check 检查进程完整性,包括:加载的模块(检测未经授权的 DLL)、进程链国家(检测进程是否由意外的父进程启动)和进程权限。

11.2。二进制和启动验证

  • code_signing_validation 根据受信任的证书存储验证二进制文件的代码签名证书,并检查证书是否未被吊销。
  • binary_integrity_validation 通过计算每个部分的单独哈希值并与预期哈希值进行比较来验证每个部分(.text、.data、.rsrc、.reloc)的二进制文件的完整性。
  • secure_boot_validation 通过检查 TPM(可信平台模块)测量值和记录每个启动阶段的 PCR(平台配置寄存器)的值来验证安全启动链。
  • secure_update_validation 通过检查以下内容来验证更新包:包加密签名、内容完整性、版本(防止降级攻击)和分发渠道。

11.3。先进的检测技术

  • anti_hook_detection 通过检查以下内容来检测内存中的函数挂钩:IAT 挂钩(修改导入地址表)、内联挂钩(修改函数的第一条指令)和 SSDT 挂钩(修改内核中的系统服务描述符表)。
  • anti_injection_detection 通过检查以下内容来检测进程内存空间中的代码注入:没有签名加载的模块、从可疑路径加载的库以及已知注入技术的签名(进程空洞、DLL 注入、反射 DLL 加载)。
  • anti_rootkit_detection 通过分析:返回不一致结果的系统调用、未签名的内核模块和隐藏进程(出现在内核进程列表中但不在操作系统列表中的进程)来检测 Rootkit 指标。
  • anti_vm_detection 通过检查以下内容来检测虚拟环境中的执行情况:指示 VM 的硬件信息(BIOS 制造商、处理器型号、MAC 地址)、计时检查(在 VM 中执行速度较慢的指令)以及 VM 工件(特定于 VMware、VirtualBox、Hyper-V 的文件、服务、驱动程序)。
  • 反仿真检测通过检查以下内容来检测仿真环境:仿真器通常不实现的 API 的可用性、操作时间(仿真器速度较慢)以及环境检查(进程数、磁盘空间、RAM 内存)。

11.4。移动目标和自我修复

  • moving_target_runtime 通过轮换服务端点、随机化内存布局和改变响应时间来实现移动目标防御,从而使漏洞利用变得更加困难。
  • dynamic_attack_surface 根据威胁级别动态调整攻击面:低级别时,所有端点均可用;在中等级别,禁用非必要端点;在高级别,只有关键端点保持活动状态。
  • runtime_policy_engine 在运行时使用可配置的强制模式(审核、警告、强制)评估和应用安全策略。
  • self_healing_security 自动检测安全事件并从安全事件中恢复:如果服务受到损害,系统可以重新启动服务,恢复原始配置,并通知工作人员。
  • adaptive_threat_response 根据威胁特征和预定义的响应手册对威胁执行自适应响应。
  • “autonomous_containment”使用遏制规则和网络拓扑来包含自主活动的威胁:隔离受感染的主机、阻止 C2 通信并对网络进行分段以限制传播。

12.蜜罐模块

蜜罐模块实施欺骗技术来吸引、检测和分析攻击者。

12.1。虚假服务

  • fake_admin_panel 部署一个真实的假管理面板,其中包含登录路线、仪表板、用户管理和系统设置。所有交互都会被记录以供分析。
  • fake_database 创建一个具有真实模式(用户、订单、付款表)和示例记录的假数据库,这些数据库看起来合法,但完全是虚构的。
  • fake_api 部署一个带有真实端点(/api/users/api/orders/api/ payment)的假 REST API,这些端点返回令人信服但虚构的有效负载。
  • fake_filesystem 创建一个假文件系统,具有合理的目录结构(/etc/var/log/home/user/opt/app)和具有真实内容的文件。
  • fake_ssh_service 部署一个假的 SSH 服务,该服务接受连接、显示真实的横幅并记录所有身份验证尝试和执行的命令。
  • fake_rdp_service 部署假 RDP 服务来检测和跟踪远程桌面攻击。
  • fake_kubernetes_cluster 部署一个假的 Kubernetes 集群 API,通过响应对 Pod、服务、部署和机密的查询来吸引以容器为中心的攻击者。
  • fake_s3_bucket 创建一个假 S3 存储桶,其中包含真实的对象(文档、配置、备份)和看起来合法的访问策略。
  • fake_login_page 部署具有可定制品牌的令人信服的登录页面,以捕获凭证提交尝试。
  • fake_debug_panel 部署一个假的调试/开发面板,它似乎暴露了内部系统信息(环境变量、数据库设置、日志)。

12.2。蜜币和欺骗

  • fake_secrets 生成并管理假秘密(API 密钥、数据库令牌、SSH 凭证),当在授权上下文之外使用时会发出警报。
  • honeytoken_ Generation 生成不同类型(URL、API 密钥、凭证、文件)的可跟踪令牌,这些令牌在访问时会触发警报。
  • honeycredential_detection 根据已知的 honeytoken 数据库检查提交的凭据,检测攻击者何时使用虚假凭据。
  • deceptive_routes 记录看似合法 API 端点但在访问时触发警报的欺骗性路由。
  • decoy_endpoints 生成模仿真实服务端点的诱饵 API 端点列表。
  • deceptive_responses 根据请求和攻击者的个人资料生成上下文适当的欺骗性响应,使攻击者在收集信息时保持参与。

12.3。分析与适应

  • adaptive_honeypot 根据观察到的流量和威胁级别动态调整蜜罐配置:如果攻击者利用 Web 漏洞,蜜罐会增加 Web 服务的表面;如果它是扫描门,它会打开更多假门。
  • attacker_behavior_tracking 跟踪并分析蜜罐会话中的攻击者行为模式:执行的命令、访问的文件、尝试的凭据以及在每个服务上花费的时间。
  • adaptive_deception 根据攻击者概况(脚本小子、自动攻击者、APT)和有效性指标(攻击者停留的时间、执行的操作次数)动态调整欺骗策略。
  • moving_target_defense 在蜜罐环境中实现移动目标防御,轮换服务配置(端口、横幅、响应)以使环境指纹识别更加困难。

13.文件模块(文件)

文件模块可防御文件传播的威胁:恶意上传、带有宏的文档、带有 JavaScript 的 PDF、多语言文件、zip 炸弹和恶意软件。

13.1。上传验证

  • secure_upload 在多个层上安全地验证和处理文件上传:根据允许列表检查扩展名,通过魔术字节验证 MIME 类型,检查最大大小,并扫描内容是否存在恶意软件。
  • validate_extension 检查文件扩展名是否在允许的扩展名列表中。
  • validate_mime 使用魔术字节检测(第一个字节中的文件格式签名)验证文件的 MIME 类型,防止扩展名欺骗(例如,实际上是可执行文件的 .jpg 文件)。

13.2。文件中的威胁检测

  • detect_polyglot_file 检测文件是否包含多个文件格式签名,表明存在多语言文件攻击(同时以两种或多种格式有效的文件,例如同时也是有效 JavaScript 的 GIF)。
  • detect_zip_bomb 通过分析压缩率和声明的未压缩大小来检测 zip 炸弹。比率高于 100:1 或未压缩大小高于 1GB 会被标记为潜在的 zip 炸弹。
  • detect_office_macro 检测 Office 文档(Word .doc/.docx、Excel .xls/.xlsx、PowerPoint .ppt/.pptx)中的 VBA 宏,这些宏可以在打开文档时执行恶意代码。
  • detect_pdf_javascript 检测 PDF 文件中嵌入的 JavaScript,这些 JavaScript 可以执行恶意操作,例如下载恶意软件或网络钓鱼。
  • detect_executable_payload 检测嵌入在非可执行文件中的可执行有效负载(例如包含 Windows 可执行 PE 标头的 PDF)。
  • detect_embedded_script 检测文件中嵌入的脚本:PDF 中的 JavaScript、Office 文档中的 VBScript、文本文件中的 PowerShell 以及数据文件中的 Python 脚本。

13.3。恶意软件扫描

  • malware_scan 使用签名匹配(与已知恶意软件签名进行比较)和 YARA 规则(与复杂条件的高级模式匹配)扫描文件中是否存在恶意软件。
  • yara_scan 使用 YARA 规则扫描文件,并支持按类别(恶意软件、漏洞利用、可疑等)组织规则的命名空间支持。
  • heuristic_scan 执行启发式分析,以检测与已知签名不匹配但具有表明恶意软件特征(混淆、反调试、打包)的文件中的可疑行为。

13.4。高级分析

  • entropy_analysis 计算块文件数据的香农熵以检测加密或压缩。熵高于每字节 7.5 位的文件被认为是高度随机的(表示加密或打包)。 -“检测隐写术”使用多种技术检测图像文件中的隐写术:LSB(最低有效位)分析、附加数据检测、块熵分析和颜色直方图分析。
  • detect_obfuscation 使用多种技术检测文件中的混淆内容:base64 字符串检测、十六进制编码、字符串连接、特定部分的高熵以及混淆的控制流模式。

13.5。卫生检疫

  • sanitize_filename 通过删除危险字符(/\..:*?"<>|)和路径遍历序列来清理文件名。
  • quarantine_file 将恶意文件移动到具有元数据跟踪(隔离原因、时间戳、文件哈希、上传者)的隔离目录。
  • sandbox_execute 在沙盒环境中执行文件以进行行为分析、监控:系统调用、网络访问、文件修改和子进程的创建。
  • secure_tempfile 创建具有受限权限(仅由所有者读/写)和可选的关闭时自删除的安全临时文件。
  • immutable_storage_check 通过将当前哈希值与预期哈希值进行比较来检查不可变存储上文件的完整性。

14. 企业模块

企业模块检查数据保护和信息安全法规的遵守情况。

14.1。监管合规性

  • lgpd_check 验证是否遵守巴西《通用数据保护法》(LGPD,第 13,709/2018 号法律):持有人的同意、DPO(数据官)的任命、持有人的权利(访问、更正、删除、可移植性)、处理操作的注册、个人数据保护的影响报告以及向 ANPD 发出的事件通知。
  • gdpr_check 检查是否符合《通用数据保护条例》(GDPR,欧盟条例 2016/679):处理的法律依据、DPO 的任命、数据最小化、目的限制、准确性、存储限制、完整性和机密性、被遗忘权、数据可移植性以及 72 小时内的违规通知。
  • hipaa_check 验证是否符合美国健康保险流通与责任法案 (HIPAA):静态和传输中的 PHI(受保护的健康信息)加密、访问控制(唯一用户识别、紧急访问、自动注销)、审核控制(审核日志、完整性控制)和 PHI 数据完整性。
  • pci_check 检查是否符合支付卡行业数据安全标准 (PCI-DSS):传输中和静态卡数据加密、网络分段(卡环境分离)、访问控制(需要知道、唯一 ID、MFA)、网络和系统监控以及定期安全测试。

14.2。报告和仪表板

  • compliance_report 根据多项检查结果生成全面的合规报告,包括:执行摘要、已发现的差距、补救建议、合规时间表和按类别评分。
  • realtime_security_dashboard 生成实时安全仪表板,显示:安全指标(检测到的威胁、阻止、误报)、活动警报、历史趋势和总体风险评分。

14.3。审计与政策

  • audit_trail 根据安全事件、用户操作和数据更改生成不可变的审计跟踪,包括:谁做了什么、何时、从哪里进行以及影响是什么。
  • policy_as_code 评估并应用定义为代码的安全策略,允许安全策略的版本控制、审查和自动测试。

14.4。多租户和多区域

  • tenant_isolation 在多租户环境中检查并应用租户隔离:数据分离、网络隔离、跨租户访问控制以及防止租户之间的信息泄漏。
  • multi_region_security 评估多区域安全状况和数据驻留合规性:验证来自特定区域的数据是否保留在该区域中、区域之间的一致加密以及是否符合每个区域的当地法规。

15. 集成模块

集成模块为流行的框架和平台提供适配器。

15.1。 Python Web 框架

  • fastapi_security_dependency 通过 OAuth2、JWT 验证、速率限制和输入保护为 FastAPI 创建安全依赖关系。
  • django_security_middleware 使用 CSP、CSRF、安全标头和输入保护为 Django 创建安全中间件。
  • flask_security_extension 使用安全包装器、请求保护和输入验证为 Flask 创建安全扩展。
  • celery_security_monitor 通过参数验证、每个任务的速率限制和审核日志记录为 Celery 任务创建安全监视器。
  • sqlalchemy_query_protection 通过行级安全性、权限过滤和查询注入防护对 SQLAlchemy 查询应用保护。

15.2。 TypeScript Web 框架

  • expressSecurityMiddleware 为 Express.js 创建安全中间件,具有输入保护、速率限制、CORS、CSRF 和安全标头。
  • fastifySecurityMiddleware 为 Fastify 创建安全中间件,具有验证挂钩、速率限制和有效负载保护。
  • nestjsSecurityModule 为 Nest 创建安全模块带有身份验证守卫、验证拦截器和授权装饰器的 JS。
  • nextjsSecurityHeaders 配置 Next.js 的安全标头(CSP、HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy)。

15.3。边缘和运行时

  • cloudflareEdgeProtection 使用 WAF 规则、速率限制、机器人管理和自定义安全工作人员在 Cloudflare 上配置边缘保护。
  • denoSecurityPlugin 为 Deno 创建安全插件,具有权限控制(读、写、网络、环境、运行)和沙箱。
  • bunSecurityPlugin 为 Bun 创建安全插件,具有安全优化和对系统 API 的访问控制。
  • browserRuntimeProtection 通过 CSP、iframe 沙箱和 API 限制配置浏览器运行时保护。
  • serviceWorkerSecurity 通过限制范围、有限权限和源验证来配置 Service Workers 安全性。
  • wasmSecurityRuntime 为具有内存限制(初始、最大、共享)和系统调用限制的 WebAssembly 创建安全运行时。

15.4。管道和发动机

  • async_threat_pipeline 创建具有可配置处理器(验证、检测、评分、警报)和输出通道(日志、指标、Webhook)的异步威胁检测管道。
  • yara_realtime_engine 创建一个实时 YARA 扫描引擎,具有文件监视(目录监控)和连续规则匹配功能。
  • ai_threat_classifier 使用经过训练的模型和自动化决策的置信阈值创建 AI 威胁分类器。
  • secure_cli_runtime 创建一个安全的 CLI 运行时,具有输入清理、参数验证和执行超时功能。
  • python_runtime_guard 创建一个具有导入白名单(只能导入允许的模块)和沙箱(文件系统、网络和系统访问限制)的 Python 运行时防护。

16.遥测和可观测性

MSF 将可观察性集成到其所有操作中,遵循可观察性的三大支柱:日志、指标和跟踪。

16.1。结构化日志

所有模块都使用 JSON 格式的结构化日志记录。每个日志条目包括:

  • timestamp:ISO 8601 日期和时间
  • level:严重性(调试、信息、警告、错误、严重)
  • module:生成日志的模块的名称
  • traceId:用于关联的 OpenTelemetry 跟踪 ID
  • context:特定于操作的元数据(例如检测到的置信度严重性匹配

16.2。指标

Metrics Registry 支持三种类型的指标:

  • 计数器:仅递增的累积值。示例:“jwt_validations”、“xss_detections”、“sqli_detections”、“port_scan_detections”、“ddos_detections”、“malware_scans”。
  • 仪表:可以增加或减少的瞬时值。示例:active_sessionscache_hit_ratio
  • 直方图:值的分布。示例:“异常分数”、“威胁分数”、“检测延迟毫秒”。

每个指标可以包含附加维度的标签(标签),例如“模块”、“严重性”、“检测到”、“云提供商”。

16.3。分布式追踪

每个安全角色都会创建一个 OpenTelemetry 范围,其中包含:

  • 操作名称(例如:msf.web.detect_xss
  • 属性:输入参数、结果、持续时间
  • 事件:执行过程中的重要里程碑
  • 状态:正常或有描述错误

Span 导出到与 OpenTelemetry 兼容的后端(Jaeger、Zipkin、AWS X-Ray、Google Cloud Trace、Azure Application Insights)。

16.4。活动总线

事件总线允许模块之间的异步通信:

  • 发布:任何模块都可以发布具有类型、严重性、消息和元数据的事件。
  • 订阅:模块可以订阅特定类型的事件并在事件发布时执行操作。
  • 历史:事件总线维护最近 N 个事件的历史记录以供查阅。
  • 死信队列:无法处理的事件将移至死信队列以供以后重新处理。

17. 设计模式和工程原理

17.1。使用的模式

  • Singleton:用于基础设施组件(PolicyEngine、MetricsRegistry、EventBus、CacheManager)。
  • Factory:用于创建标准化结果对象(DetectionResult、ValidationResult、ScanResult)。
  • 策略:用于可互换的检测算法(XSS、SQLi 等的不同检测模式)。
  • 观察员:到事件总线,模块在其中监视其他模块发布的事件。
  • 责任链:用于验证管道,其中每个步骤都可以通过或拒绝输入。
  • 装饰器:向现有功能(日志记录、指标、跟踪)添加安全功能。

17.2。安全原则

  • 深度防御:多层保护,以便在其中一层发生故障时,其他层可以继续运行。
  • 最小权限:每个功能和模块都以最小的必要权限运行。
  • 失败安全:如果出现内部错误,函数将返回拒绝访问的结果(失败关闭)。
  • 安全比较:所有秘密比较都使用恒定时间比较来防止定时攻击。
  • 输入清理:所有输入都被视为不可靠并在处理之前进行清理。
  • 安全日志记录:记录所有安全操作以供审核​​和事件检测。

18. 结论

主安全框架代表了一种全面、统一的现代应用程序安全方法。 MSF 拥有分布在 28 个模块中的 350 多个功能,涵盖了应用程序当今面临的所有威胁:从传统的 Web 攻击(XSS、SQLi、SSRF)到新兴威胁(LLM 中的即时注入、供应链攻击、容器逃逸)。

Python 和 TypeScript 的双重实现允许多语言团队利用同一组安全功能,同时与 OpenTelemetry、结构化日志记录和事件总线的集成确保所有安全操作都是可观察和可审计的。

主动防御模块(反调试、防篡改、自我修复)和自适应蜜罐添加了超越反应性检测的主动保护层,而企业合规性模块则自动执行 LGPD、GDPR、HIPAA 和 PCI-DSS 扫描。

该框架是开源的,可通过策略引擎和事件总线进行扩展,并旨在随着威胁形势的发展而发展。每个功能都会自动测试(通过了 243 项测试),使用文档字符串和 JSDoc 进行记录,并使用遥测技术进行生产操作。


参考文献

  • OWASP 前 10 名:https://owasp.org/www-project-top-ten/
  • MITRE ATT&CK 框架:https://attack.mitre.org/
  • NIST 网络安全框架:https://www.nist.gov/cyberframework
  • NIST 后量子密码学:https://csrc.nist.gov/projects/post-quantum-cryptography
  • RFC 6238 - TOTP:https://datatracker.ietf.org/doc/html/rfc6238
  • RFC 7519 - JWT:https://datatracker.ietf.org/doc/html/rfc7519
  • CIS 基准:https://www.cisecurity.org/cis-benchmarks
  • LGPD(第 13,709/2018 号法律):https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
  • GDPR(欧盟法规 2016/679):https://eur-lex.europa.eu/eli/reg/2016/679/oj
  • HIPAA:https://www.hhs.gov/hipaa/index.html
  • PCI-DSS:https://www.pcisecuritystandards.org/