受损虚拟机

https://blueprints.launchpad.net/congress/+spec/compromised-vm

安全策略用例

问题描述

IDS 服务检测到来自内部虚拟机的不良流量,该虚拟机试图向租户边界内外的主机发送数据包。检测到此情况后,需要采取一些响应措施,例如将违规虚拟机从其余网络中隔离。此策略将促进在 IDS 服务报告受到损害时调用其中一种响应措施。

提议的变更

IDS 需要监控进出虚拟机的流量。IDS 将维护已知恶意目的地的黑名单。IDS 需要维护这些模式。在 IDS 监控流量模式和黑名单时,它需要通过 Congress IDS 插件通知 Congress 事件。通过 Congress Neutron 插件,需要更新 Neutron API 以阻止 IP。Congress-client 和 Horizon 向操作员发出更改警报。

备选方案

(sarob) 不使用 IDS 维护的黑名单,而是使用公共黑名单的实时检查。

(thinrichs) 如果每次检测到 IDS 识别的虚拟机时都标记错误会更简单吗? error(vm) :- ids:ip_blacklist(ip), neutron:port(vm, ip)

(thinrichs) 我们应该尝试弄清楚响应部分将如何工作。在 beta 版本中实现此目的的方法是编写另一个策略,该策略规定在特定条件下应采取哪些操作。想象一下上面的策略,但不是 error(vm),我们编写类似 neutron:block_ip(secgrp, ip) :- ids:ip_blacklist(ip), neutron:port(vm, ip), neutron:security_group(vm, secgrp) 的内容。我确定那里并非所有细节都正确。但理想情况下,规则的头部应该是 Neutron API 调用。在最坏的情况下,它可能只是我们编写的脚本的名称。

策略

error(vm) :-

nova:virtual_machine(vm), ids:ip_packet(src_ip, dst_ip), neutron:port(vm, src_ip), //找出拥有 VM IP 的端口 ids:ip_blacklist(dst_ip).

策略动作

  • 监控:报告/记录事件,包括虚拟机的 IP 地址、外部

    IP 等。

  • 响应:调用 nova API 将虚拟机添加到 IDS 安全组,限制

    访问以进行更改。调用 neutron 阻止所有到/从虚拟机的 IP 地址的流量。其他选择是在 nova IDS 调度过滤器上重新启动虚拟机(在限制流量混乱的同时保持访问虚拟机的能力)和/或无路由网络或删除虚拟机的网络接口。

数据源

  • IDS(入侵检测服务虚拟机):违规虚拟机的 IP 地址

  • neutron:网络详细信息、IP 详细信息

  • nova:虚拟机详细信息;实例 ID、接口状态、实例状态、安全

数据模型影响

REST API 影响

需要解释

安全影响

  • DoS

通知影响

  • IDS API

  • congress-client

  • horizon

其他最终用户影响

目前未知

性能影响

目前未知

其他部署者影响

目前未知

开发者影响

目前未知

实现

负责人

目前未知

工作项

  • Congress IDS 插件

  • 受损虚拟机策略

  • Congress 客户端通知

  • Horizon 通知

依赖项

Neutron 确实需要提供端口允许/拒绝原语。今天它会阻止所有内容,我们只能刺穿允许出去的孔洞——这使得实施策略变得复杂

(thinrichs) 需要更多地了解这些限制。

(sarob)

测试

待定

文档影响

待定