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