摘要:如今,多樣化的攻擊手段層出不窮,傳統(tǒng)安全解決方案越來(lái)越難以應(yīng)對(duì)網(wǎng)絡(luò)安全攻擊。自適應(yīng)安全平臺(tái)集成了預(yù)測(cè)預(yù)防檢測(cè)和響應(yīng)的能力,為您提供精準(zhǔn)持續(xù)可視化的安全防護(hù)。
近一年來(lái),Docker 已經(jīng)逐漸成為 container 界的事實(shí)標(biāo)準(zhǔn),成為技術(shù)人員不可或缺的技能之一,就像 Docker 宣稱(chēng)的那樣,「Build,Ship,and Run Any App,Anywhere」,容器極大簡(jiǎn)化了環(huán)境部署的步驟,并且很好的保證了環(huán)境的一致性。
Docker 的輕量級(jí)給云市場(chǎng)也注入了活力,國(guó)內(nèi)已經(jīng)有廠商發(fā)布了基于 Docker 的公有云服務(wù),例如:靈雀云,DaoCloud。
作為國(guó)內(nèi)早期 Docker 的愛(ài)好者,筆者對(duì) Docker 走向公有云的領(lǐng)域還是有些疑問(wèn)的,熟悉 Docker 的人都知道,Docker 底層是共享內(nèi)核的,沒(méi)有物理隔離內(nèi)核,會(huì)造成很大的安全問(wèn)題,不知道國(guó)內(nèi)的廠商是如何規(guī)避這個(gè)問(wèn)題,做了哪些安全防護(hù);但是國(guó)內(nèi)有一支隊(duì)伍,推出了自己的輕量級(jí)的虛擬化服務(wù) Hyper,一種類(lèi)似 Docker 的方式,但是解決的 Docker 共享內(nèi)核的問(wèn)題,并且在2015的東京舉辦的 OpenStack 大會(huì)上,帶去了自己的 Hypernetes ,一個(gè)真正多租戶(hù)的 Kubernetes Distro,有興趣的朋友可以進(jìn)一步了解。
筆者覺(jué)得 Docker 共享內(nèi)核級(jí)別的安全,用到的人畢竟是少數(shù),作為應(yīng)用開(kāi)發(fā)者,我們更關(guān)心的是跑在 Docker 中的應(yīng)用是否安全,是否受到 XSS 攻擊,SQL 注入攻擊之類(lèi),OneAPM 公司的 OneRASP 就解決了這個(gè)安全問(wèn)題,它無(wú)需改動(dòng)任何代碼,通過(guò) java instrument,實(shí)現(xiàn)應(yīng)用受到攻擊的檢測(cè)和防護(hù)功能。
使用 OneRASP 產(chǎn)品之前,要先弄清楚什么叫 RASP?很多人只聽(tīng)過(guò) WAF 防護(hù)的概念,對(duì)這個(gè)了解并不多。
關(guān)于 RASP,Gartner 定義為"Runtime application self-protection (RASP) is a security technology that is built or linked into an application or application runtime environment, and is capable of controlling application execution and detecting and preventing real-time attacks",實(shí)時(shí)的應(yīng)用安全防護(hù),它在應(yīng)用程序里實(shí)時(shí)對(duì)安全威脅進(jìn)行監(jiān)控,告警和攔截。
"Web Application Firewall",Web應(yīng)用防火墻,它放置在Web應(yīng)用程序外層,攔截所有它認(rèn)為可疑的輸入而并不分析這些輸入是如何被應(yīng)用程序處理的,它依賴(lài)于網(wǎng)絡(luò)流量分析,處理不同協(xié)議的方式也不同。
在知道 RASP 這個(gè)概念前,WAF 在安全領(lǐng)域被廣泛推廣,是對(duì)應(yīng)用很好的防護(hù)措施。但 RASP 會(huì)精確分析用戶(hù)輸入在應(yīng)用程序里的行為,根據(jù)分析結(jié)果區(qū)分合法行為還是攻擊行為,然后對(duì)攻擊行為進(jìn)行攔截。 RASP 不依賴(lài)于網(wǎng)絡(luò)流量分析,因此避免了字符解碼,復(fù)雜的正則表達(dá)式匹配以及基于簽名的威脅鑒別等麻煩。
如果想使用 OneRASP ,首先需要在 OneRASP 官網(wǎng)注冊(cè)了自己的賬號(hào),然后登錄。
單擊管理按鈕,選擇添加探針,對(duì)探針進(jìn)行命名,可以把探針直接下載下來(lái):
探針目前只能通過(guò)瀏覽器下載,未來(lái)還將會(huì)提供命令行的安裝工具,點(diǎn)開(kāi)探針配置,發(fā)現(xiàn)探針有監(jiān)聽(tīng)和保護(hù)兩種狀態(tài),僅僅為了測(cè)試,然后選擇監(jiān)聽(tīng)狀態(tài):
下面進(jìn)行探針的安裝,在探針設(shè)置和下載頁(yè)未有明確的探針安裝的鏈接地址,退回到首頁(yè)找到幫助,進(jìn)入文檔頁(yè)才找到,這里是安裝文檔。
看了下文檔,并未提供官方的 Docker 鏡像,看來(lái)只能自己打鏡像了,目前 OneRASP 官方文檔使用 tomcat 作為Web 容器,筆者使用 Docker 官方提供的 tomcat 鏡像作為 base image,Dockerfile 如下:
FROM tomcat:7-jre8 MAINTAINER demoENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH WORKDIR $CATALINA_HOME ADD OneRASP ./OneRASP RUN sed -i "234 a CATALINA_OPTS="-javaagent:/usr/local/tomcat/OneRASP/lib/RaspAgent.jar $CATALINA_OPTS"" $CATALINA_HOME/bin/catalina.sh CMD ["catalina.sh", "run"]
下面我們開(kāi)始build鏡像
docker build -t="docker.test.com/onerasp/demo" .
啟動(dòng)鏡像:
docker run -p 9999:8080 -d --name rasptest docker.test.com/onerasp/demo
查看進(jìn)程,確認(rèn)帶有探針的tomcat啟動(dòng)成功
docker top rasptest
日志
/usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -javaagent:/usr/local/tomcat/OneRASP/lib/RaspAgent.jar -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
啟動(dòng)成功。
如果要驗(yàn)證 RASP 是否可以防御攻擊,我們還要準(zhǔn)備一個(gè)待攻擊的應(yīng)用,相應(yīng)的攻擊腳本,最后驗(yàn)證我們的攻擊是否有效。
待攻擊應(yīng)用以 webgoat 為例,如果有人不了解可以看看Github上 webgoat的介紹。
在 docker hub 可以搜到 webgoat 的鏡像,實(shí)驗(yàn)也以 pandrew/webgoat 的 Dockerfile 基礎(chǔ)鏡像,稍作修改。
筆者的目錄結(jié)構(gòu):
修改后的Dockerfile如下:
FROM java:8u40-b22-jre RUN curl -fL https://github.com/WebGoat/WebGoat-Legacy/releases/download/v6.0.1/WebGoat-6.0.1-war-exec.jar -o /webgoat.jar RUN mkdir -p /webgoat_agent/OneRASP ADD OneRASP /webgoat_agent/OneRASP EXPOSE 8080 CMD ["java", "-jar","-javaagent:/webgoat_agent/OneRASP/lib/RaspAgent.jar", "/webgoat.jar"]
在當(dāng)前目錄下構(gòu)建webgoat鏡像:
sudo docker build -t="webgoat_agent_test" .
啟動(dòng)鏡像:
sudo docker run -d --name webgoat -p 8080:8080 webgoat_agent_test
啟動(dòng)后,要確認(rèn)兩點(diǎn):第一,觀察控制臺(tái),確認(rèn)探針連接是否正常;第二,確認(rèn)應(yīng)用是否正常啟動(dòng)。
探針連接確認(rèn):
應(yīng)用啟動(dòng)確認(rèn):
現(xiàn)在所有準(zhǔn)備工作就緒,可以按照webgoat的教程,攻擊webgoat,來(lái)測(cè)試探針是否生效。
測(cè)試以 Injection Flaws 中的 XPATH Injection 為例,按照教程輸入攻擊腳本:
攻擊成功后,會(huì)有提示,如上圖。
在 OneRASP 平臺(tái)查看攻擊的防護(hù)日志:
點(diǎn)開(kāi) XPath 查看攻擊詳情,確認(rèn)此攻擊和之前攻擊腳本是否一致:
由此可見(jiàn),OneRASP 確實(shí)檢測(cè)到了我們之前發(fā)起的那次 XPath Injection 攻擊,在之后筆者又嘗試了幾種常見(jiàn)的攻擊類(lèi)型,例如 SQL Injection、CSRF、XSS 等,OneRASP 都監(jiān)聽(tīng)到了攻擊請(qǐng)求,并且定位到攻擊的相關(guān)位置,試驗(yàn)到此結(jié)束。
對(duì)于容器內(nèi)的應(yīng)用,OneRASP也能起到一定的防護(hù)效果,目前安裝較為繁瑣。本次試驗(yàn)以 webgoat 作為測(cè)試應(yīng)用的原因是 webgoat 易于攻擊,如果放到自家的應(yīng)用還需要具體的測(cè)試,而且筆者覺(jué)得試驗(yàn)測(cè)試的攻擊集比較有限,但是對(duì)于一個(gè)無(wú)任何安全防護(hù)的裸奔的應(yīng)用,肯定能起到一定的效果。
本文系 OneASP 前端工程師陳亮原創(chuàng)文章。如今,多樣化的攻擊手段層出不窮,傳統(tǒng)安全解決方案越來(lái)越難以應(yīng)對(duì)網(wǎng)絡(luò)安全攻擊。OneASP 自適應(yīng)安全平臺(tái)集成了預(yù)測(cè)、預(yù)防、檢測(cè)和響應(yīng)的能力,為您提供精準(zhǔn)、持續(xù)、可視化的安全防護(hù)。想閱讀更多技術(shù)文章,請(qǐng)?jiān)L問(wèn) OneAPM 官方技術(shù)博客
本文轉(zhuǎn)自 OneAPM 官方博客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26513.html
摘要:為容器設(shè)計(jì)的商業(yè)安全套件,功能包括安全審計(jì)容器鏡像驗(yàn)證運(yùn)行時(shí)保護(hù)自動(dòng)策略學(xué)習(xí)或入侵預(yù)防。基于一種稱(chēng)為的新內(nèi)核技術(shù),允許根據(jù)容器身份定義并執(zhí)行網(wǎng)絡(luò)層和層安全策略。自動(dòng)發(fā)現(xiàn)應(yīng)用程序容器和服務(wù)的行為,以及與其他類(lèi)似方式檢測(cè)安全升級(jí)和其他威脅。 數(shù)人云:隨著越來(lái)越多的企業(yè)將生產(chǎn)工作負(fù)載遷移到容器當(dāng)中,關(guān)于Docker的安全性,成了普遍關(guān)注的問(wèn)題。 這是一個(gè)簡(jiǎn)單卻又沒(méi)有答案的問(wèn)題,不要試圖用二進(jìn)...
摘要:軟件供應(yīng)鏈幾乎跟實(shí)際產(chǎn)品的供應(yīng)鏈?zhǔn)窍嗤摹4_保軟件供應(yīng)鏈也十分相似。確保該掃描不止一次地發(fā)生,并在爆出新漏洞時(shí),及時(shí)通知使用鏡像的系統(tǒng)管理員或應(yīng)用程序開(kāi)發(fā)者。結(jié)論在軟件生命周期的每個(gè)環(huán)節(jié),平臺(tái)都允許企業(yè)將安全納入其中。 在Docker內(nèi)部,我們花了很多時(shí)間討論一個(gè)話(huà)題:如何將運(yùn)行時(shí)安全和隔離作為容器架構(gòu)的一部分?然而這只是軟件流水線(xiàn)的一部分。 我們需要的不是一次性的標(biāo)簽或設(shè)置,而是需要...
摘要:本篇博客主要介紹了自動(dòng)化工具這個(gè)概念,在微服務(wù)集群當(dāng)中的作用,算拋磚引玉,歡迎大家提出自己的見(jiàn)解。而在微服務(wù)中,單個(gè)服務(wù)重新部署的代價(jià)明顯要小的多。 本篇博客主要介紹了自動(dòng)化工具這個(gè)概念,在微服務(wù)集群當(dāng)中的作用,算拋磚引玉,歡迎大家提出自己的見(jiàn)解。 寫(xiě)在前面 在了解自動(dòng)化工具的概念之前,我們先了解一下微服務(wù)和集群的概念。 什么是微服務(wù) 這個(gè)概念其實(shí)有些廣泛,而我的知識(shí)廣度也有限,我會(huì)盡...
摘要:運(yùn)維,哎,多么沉重的話(huà)題,初創(chuàng)公司的運(yùn)維,哎,還能愉快的聊天嗎初創(chuàng)公司的運(yùn)維,如今其實(shí)兼技術(shù)支持系統(tǒng)管理員網(wǎng)管網(wǎng)絡(luò)工程師研發(fā)工程師架構(gòu)師,干著這些看似不相干甚至矛盾的工作。 運(yùn)維,哎,多么沉重的話(huà)題,初創(chuàng)公司的運(yùn)維,哎,還能愉快的聊天嗎? showImg(https://segmentfault.com/img/remote/1460000004893272); 初創(chuàng)公司的運(yùn)維,如今其...
摘要:將一個(gè)輕量級(jí)的容器虛擬化平臺(tái)和一組標(biāo)準(zhǔn)工作流程工具進(jìn)行集成,來(lái)幫助你方便地管理和部署應(yīng)用。主要包括哪些組件主要包括兩個(gè)組件開(kāi)源的容器虛擬化平臺(tái)用于分享和管理容器的軟件即服務(wù)平臺(tái)。 【編者的話(huà)】本文來(lái)自 Docker 的官方文檔,詳細(xì)介紹了 Docker 的體系結(jié)構(gòu)、重要概念、內(nèi)部工作機(jī)理等內(nèi)容,推薦不了解 Docker 內(nèi)部原理的同學(xué)閱讀。 什么是 Docker? Docker 是...
閱讀 3813·2023-04-26 02:07
閱讀 3686·2021-10-27 14:14
閱讀 2874·2021-10-14 09:49
閱讀 1637·2019-08-30 15:43
閱讀 2630·2019-08-29 18:33
閱讀 2382·2019-08-29 17:01
閱讀 925·2019-08-29 15:11
閱讀 602·2019-08-29 11:06