用不可变的基础设施提高攻击者的攻击成本

简介: 本文讲的是用不可变的基础设施提高攻击者的攻击成本,Docker 容器的一个便捷之处在于它们是不可变的。Docker 附带一个写入时复制的文件系统,意味着基础镜像不能被修改,除非你显式地发布一个提交。
本文讲的是用不可变的基础设施提高攻击者的攻击成本,

Docker 容器的一个便捷之处在于它们是不可变的。Docker 附带一个写入时复制的文件系统,意味着基础镜像不能被修改,除非你显式地发布一个提交。

这么便利的原因之一是,你很容易检查出被修改的地方,如果试图调查一个安全事件,这可能会派上用场。

Demo 应用

以这个 demo 基础设施举例来说:

我们有一个 PHP 应用作为前端,用 MYSQL 服务器作为我们的后端数据库,你可以在家试试跑一下命令:

 docker run -d --name db -e MYSQL_ROOT_PASSWORD=insecurepwd mariadb
 docker run -d -p 80:80 --link db:db diogomonica/phphack

现在你的数据库和前端都已经启动起来了,你可以在浏览器看到类似这样的欢迎语:

不幸的是,像其他的 PHP 应用一样,这个应用有远程代码执行的漏洞:

if($links) {  
Links found  
... 
eval($_GET['shell']);  
?>

看起来某些人正在不应该使用eval的地方使用eval !任何攻击者都可能发现这个漏洞,并在远程机器上执行任意命令:

 curl -s http://localhost/\?shell\=system\("id"\)\; | grep "uid="
uid=33(www-data) gid=33(www-data) groups=33(www-data)  

攻击者对刚被攻破的主机的第一个动作是通过下载 PHP 的 Shell 和其他工具包让自己反客为主。有些攻击者甚至可能会改写你的网站:

从被 hack 恢复

回到不可变性,写入时复制的文件系统提供的一个很酷的特性就是可以看到发生的所有更改。通过使用docker diff命令,我们可以看到攻击者修改文件的详情:

 docker diff pensive_meitner
C /run  
C /run/apache2  
A /run/apache2/apache2.pid  
C /run/lock  
C /run/lock/apache2  
C /var  
C /var/www  
C /var/www/html  
C /var/www/html/index.html  
A /var/www/html/shell.php  

很有趣。攻击者似乎不仅修改了我们的index.html,还下载了一个 php-shell,简单地将其命名为shell.php。但我们的关注点应该是让网站重新上线。

我们可以通过docker commit命令存储这个镜像,供以后参考,并且由于容器是不可变的(:tada:),我们可以重新启动我们的容器,现在所有都恢复了:

 docker commit pensive_meitner
sha256:ebc3cb7c3a312696e3fd492d0c384fe18550ef99af5244f0fa6d692b09fd0af3  
 docker kill pensive_meitner
 docker run -d -p 80:80 --link db:db diogomonica/phphack

我们现在可以回到存储的镜像,看攻击者修改了什么:

 docker run -it ebc3cb7c3a312696e3fd492d0c384fe18550ef99af5244f0fa6d692b09fd0af3 sh
# cat index.html
HACKED BY SUPER ELITE GROUP OF HACKERS  
# cat shell.php

看起来我们被著名的 SUPER ELITE GROUP OF HACKERS 攻击了。¯_(ツ)_/¯

提高攻击者的成本

被攻击后可以看到容器里的改变很有意义,但是如果我们可以第一时间就避免被攻击呢?这就是--read--only发挥用处的地方了。

--read-only这个参数可以限制 Docker 不允许写入容器的文件系统。这就避免了任何对index.php的修改,更重要的是,它不允许攻击者下载 PHP shell 或者其他的攻击者想用的工具

让我们试下修改,看会发生什么:

 docker run -p 80:80 --link db:db -v /tmp/apache2:/var/run/apache2/ -v /tmp/apache:/var/lock/apache2/ --sig-proxy=false --read-only diogomonica/phphack
...
172.17.0.1 - - [04/Sep/2016:03:59:06 +0000] "GET / HTTP/1.1" 200 219518 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 OPR/39.0.2256.48"  
sh: 1: cannot create index.html: Read-only file system  

既然我们的文件系统现在是只读的了,似乎攻击者想要修改我们index.html文件的企图破灭了。:sunglasses:

这就刀枪不入了吗?

不,绝对不是。除非我们能修复这个 RCE 漏洞,否则攻击者仍然能在我们的主机上执行代码,窃取我们的凭证,泄漏我们数据库中的数据。

配合运行最小化镜像和一些很酷的 Docker 安全特性,你可以使攻击者继续骚扰并占用你的网络变得难。

结论

我们的应用程序的安全性从来就不完美,但通过不可变的基础设施协助完成事件响应,实现快速恢复,可以加大攻击者的难度。

如果用一个强大的沙盒并且调整几个旋钮就可以让你的应用更加安全,为什么不这样做呢?:whale:






原文发布时间为:2016年12月13日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。
目录
相关文章
|
1月前
|
机器学习/深度学习 监控 安全
网络安全产品之认识入侵防御系统
由于网络安全威胁的不断演变和增长。随着网络技术的不断发展和普及,网络攻击的种类和数量也在不断增加,给企业和个人带来了巨大的安全风险。传统的防火墙、入侵检测防护体系等安全产品在面对这些威胁时,存在一定的局限性和不足,无法满足当前网络安全的需求。入侵防御系统(IPS)作为一种主动防御的解决方案应运而生。它可以实时检测和防御网络流量中的恶意攻击和威胁,通过串接的方式部署在网络中,对入侵行为进行实时阻断,从而极大地降低了入侵的危害。
68 1
|
6月前
|
安全 搜索推荐 算法
减少软件故障、防范黑客攻击,软件质量安全问题不容忽视
软件质量的重要性毋庸置疑,而对于开发人员来说,软件质量更多反应的是代码的质量。虽然有报告显示代码质量安全的行业现状显示出持续改进的态势。2022年全年,奇安信代码安全实验室对2001个国内企业自主开发的软件项目源代码进行了安全缺陷检测,整体缺陷密度为10.11个/千行,高危缺陷密度为1.08个/千行。此外,报告还研究了安全漏洞的修复过程,并展望了安全应用的未来,认为应用安全情况有所好转,漏洞的影响范围整体也在下降。
|
4天前
|
SQL 安全 算法
网络防线的构筑者:洞悉网络安全漏洞与加固信息防护
【4月更文挑战第22天】在数字化浪潮下,网络安全和信息安全成为维护社会稳定、保障个人隐私的重要基石。本文将深入探讨网络安全中存在的漏洞问题,介绍现代加密技术,并强调提升全民安全意识的必要性。通过对这些关键知识点的分享,旨在为读者提供一个关于如何构建和维护一个安全网络环境的全面视角。
|
22天前
|
存储 SQL 安全
网络防御前线:洞悉网络安全漏洞与加固信息防线
【4月更文挑战第4天】在数字化时代,网络安全已成为维护信息完整性、保障用户隐私和确保商业连续性的关键。本文深入探讨网络安全的薄弱环节——安全漏洞,并展示如何通过加密技术和提升安全意识来强化信息系统的防护能力。我们将审视最新的漏洞趋势,分析加密技术的最新进展,并提出培养安全文化的策略,以期为读者提供全面的网络安全知识框架。
21 8
|
25天前
|
SQL 安全 网络安全
网络防线之盾:揭秘网络安全漏洞与防御技术
在数字化时代,网络安全成为守护信息完整性、保障用户隐私的关键。本文深入探讨了网络安全领域内常见的安全漏洞,分析了加密技术在数据保护中的作用,并强调了提升个人和企业安全意识的重要性。通过实例和案例分析,文章为读者提供了一道了解和应对网络威胁的窗口,同时指出了未来网络安全发展的趋势和挑战。
15 2
|
28天前
|
存储 SQL 安全
网络防线之钥:洞悉网络安全漏洞与加固信息防护
在数字化时代,数据成为了新石油,而网络安全则是保护这些宝贵资源不被非法开采的关键。本文将探讨网络安全中的漏洞问题、加密技术的应用以及提升个人和企业的安全意识。通过深入分析常见的安全威胁,我们揭示了网络攻击者的入侵手段,并提供了相应的防御策略。同时,文章还将讨论如何通过强化加密措施和提高整体的安全认知,来构建更为坚固的信息安全防线。
16 1
|
安全 网络安全 云计算
防范混合攻击 把网络作为安全第一道防线
随着各种类型的网络攻击变得愈加频繁和复杂,全球企业网络面临的威胁也随之攀升。对任何用户来说,其所需要的应用安全解决方案必须能够精确解除潜在的网络宕机以及应用滥用等威胁。日前笔者就相关问题采访了Radware DefensePro产品经理Ziv Ichilov先生。
1405 0
|
安全 网络安全 数据中心
企业遭到DDoS攻击可以通过哪些手段进行防御?
DDoS攻击是现在最常见的一种网络攻击方式,主要通过大规模流量攻击目标服务器,导致服务器性能耗尽而崩溃。随着5G时代的到来,DDoS攻击的数量和规模都越来越大。攻击成本越来越低导致更多的不法分子去使用DDOS攻击竞争对手或敲诈勒索。今天墨者安全就来分享一下面对DDOS攻击该如何防御?
2515 0
|
网络协议 安全 Linux
DDOS攻击 防御方案
https://blog.csdn.net/weixin_37202689/article/details/72843355 一、DDOS认识     分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
2117 0