今天我们将一起学习一个非常实用的技巧,快速识别云原生环境。
对于攻击者而言,随着云原生应用普及,当攻击者获得一个shell权限时,那么这个shell可能处于虚拟主机里,也有可能在一个Docker环境里,或者在K8s集群环境的一个pod里面。
在这种情况下,快速准确地识别当前环境对于攻击者来说非常关键,可以帮助助他们采取恰当的攻击策略。比如当shell权限在虚拟主机环境中,攻击者通常会寻求横向移动以扩大战果,当shell权限在Docker环境中,攻击者可能会考虑容器逃逸和内网横向渗透。当shell权限在k8s集群环境中,攻击者可能会尝试接管集群,以获取对容器和集群资源的完全控制。
我们收集整理了一些常用的检测方式,可以快速识别当前所处的环境是在虚拟主机、Docker或是K8s集群环境中。
第一种方式,查看主机名和进程,通过查看主机名和进程可以做个简单的判断。
第二种方式,通过利用cgroup信息的差异,可以用来判断当前的所处环境。
第三种方式,检查根目录下.dockerenv文件,判断当前环境是否为容器环境。
第四种方式,通过检查挂载信息,推测当前所处的环境。
第五种方式,查看硬盘信息,容器环境是没有硬盘信息的。
第六种方式,获取当前环境的文件系统和挂载点信息,用来判断是否为容器环境。
第七种方式:通过了解环境变量包含的信息,可用来作为判断的依据。
我们介绍了7种不同的检测方式,可以帮助大家快速识别云原生环境。
另外,对于防守者而言,通过了解攻击者在云原生环境中可能采取的这些信息探测行为,可以建立有效的告警机制,以便及早发现潜在的攻击行为。