--read-only
就要發(fā)揮作用了。--read-only
會讓Docker不允許任何在容器的file-system內(nèi)進(jìn)行寫入操作。它可以避免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
由于我們的文件系統(tǒng)現(xiàn)在是只讀狀態(tài),因此攻擊者無法修改index.html 。
這個方法能完全阻止攻擊嗎?
肯定是不可以的。在我們能夠修復(fù)RCE漏洞之前,攻擊者依然可以在host上運(yùn)行代碼,偷取我們的權(quán)限,在數(shù)據(jù)庫中盜取數(shù)據(jù)。
但是盡管如此,我們畢竟通過組合最小化鏡像和一些非??岬腄ocker安全功能提升了黑客的攻擊難度,讓系統(tǒng)變得更安全了一些。
總結(jié)
我們的應(yīng)用程序的安全性永遠(yuǎn)不會是完美的,但是具有不可變的基礎(chǔ)架構(gòu)有助于事件響應(yīng),允許快速恢復(fù),并使攻擊者的成本加大。
如果通過使用強(qiáng)大的沙箱和調(diào)整一些旋鈕,你可以使你的應(yīng)用程序更安全,你為什么不?
原文鏈接:Increasing Attacker Cost Using Immutable Infrastructure (翻譯:高洪濤)
===========================================
譯者介紹
高洪濤,當(dāng)當(dāng)網(wǎng)架構(gòu)師,開源數(shù)據(jù)庫分庫分表中間件Sharding-JDBC作者。目前從事Docker,Mesos相關(guān)工作