受损虚拟机¶
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
其他最终用户影响¶
目前未知
性能影响¶
目前未知
其他部署者影响¶
目前未知
开发者影响¶
目前未知
测试¶
待定
文档影响¶
待定