java編程一直以來都是互聯(lián)網(wǎng)軟件開發(fā)市場上的主流開發(fā)語言,同樣的這也就導(dǎo)致了只要發(fā)生漏洞的話,所有用java編程開發(fā)的軟件都會出現(xiàn)問題,下面南邵java培訓(xùn)就一起來了解一下,java編程語言中的序列化問題應(yīng)該如何解決。
站在用戶的角度思考問題,與客戶深入溝通,找到寶山網(wǎng)站設(shè)計(jì)與寶山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋寶山地區(qū)。
什么是序列化?
自從1997年發(fā)布JDK1.1以來,序列化已經(jīng)存在于Java平臺中。
它用于在套接字之間共享對象表示,或者將對象及其狀態(tài)保存起來以供將來使用(反序列化)。
在JDK10及更低版本中,序列化作為java.base包和java.io.Serializable方法的一部分存在于所有的系統(tǒng)中。
序列化的挑戰(zhàn)和局限
序列化的局限主要表現(xiàn)在以下兩個方面:
出現(xiàn)了新的對象傳輸策略,例如JSON、XML、ApacheAvro、ProtocolBuffers等。
1997年的序列化策略無法預(yù)見現(xiàn)代互聯(lián)網(wǎng)服務(wù)的構(gòu)建和攻擊方式。
進(jìn)行序列化漏洞攻擊的基本前提是找到對反序列化的數(shù)據(jù)執(zhí)行特權(quán)操作的類,然后傳給它們惡意的代碼。
序列化在哪里?如何知道我的應(yīng)用程序是否用到了序列化?
要移除序列化,需要從java.io包開始,這個包是java.base模塊的一部分。常見的使用場景是:
實(shí)現(xiàn)Serializable接口和(可選)serialversionuid長整型字段。
使用ObjectInputStream或ObjectOutputStream。
使用嚴(yán)重依賴序列化的庫,例如:Xstream、Kryo、BlazeDS和大多數(shù)應(yīng)用程序服務(wù)器。
使用這些方法的開發(fā)人員應(yīng)考慮使用其他存儲和讀回?cái)?shù)據(jù)的替代方法。EishaySmith發(fā)布了幾個不同序列化庫的性能指標(biāo)。在評估性能時,需要在基準(zhǔn)度量指標(biāo)中包含安全方面的考慮。默認(rèn)的Java序列化“更快”一些,但漏洞也會以同樣的速度找上門來。
我們該如何降低序列化缺陷的影響?
項(xiàng)目Amber包含了一個關(guān)于將序列化API隔離出來的討論。我們的想法是將序列化從java.base移動到單獨(dú)的模塊,這樣應(yīng)用程序就可以完全移除它。在確定JDK11功能集時并沒有針對該提議得出任何結(jié)果,但可能會在未來的Java版本中繼續(xù)進(jìn)行討論。
通過運(yùn)行時保護(hù)來減少序列化暴露
一個可以監(jiān)控風(fēng)險(xiǎn)并自動化可重復(fù)安全專業(yè)知識的系統(tǒng)對于很多企業(yè)來說都是很有用的。Java應(yīng)用程序可以將JVMTI工具嵌入到安全監(jiān)控系統(tǒng)中,通過插樁的方式將傳感器植入到應(yīng)用程序中。
其他有用的安全技術(shù)
在進(jìn)行維護(hù)時,可以不需要手動列出一長串東西,而是使用像OWASPDependency-Check這樣的系統(tǒng),它可以識別出已知安全漏洞的依賴關(guān)系,并提示進(jìn)行升級。也可以考慮通過像DependABot這樣的系統(tǒng)進(jìn)行庫的自動更新。
雖然用意很好,但默認(rèn)的Oracle序列化過濾器存在與SecurityManager和相關(guān)沙箱漏洞相同的設(shè)計(jì)缺陷。因?yàn)樾枰煜巧珯?quán)限并要求提前了解不可知的事物,限制了這個功能的大規(guī)模采用:系統(tǒng)管理員不知道代碼的內(nèi)容,所以無法列出類文件,而開發(fā)人員不了解環(huán)境,甚至DevOps團(tuán)隊(duì)通常也不知道系統(tǒng)其他部分(如應(yīng)用程序服務(wù)器)的需求。
般cc攻擊都是針對網(wǎng)站的域名進(jìn)行攻擊,比如網(wǎng)站域名是“xxx”,那么攻擊者就在攻擊工具中設(shè)定攻擊對象為該域名然后實(shí)施攻擊。
對于這樣的攻擊措施是在ⅡS上取消這個域名的綁定,讓CC攻擊失去目標(biāo)。具體操作步驟是:打開“ⅡS管理器”定位到具體站點(diǎn)右鍵“屬性”打開該站點(diǎn)的屬性面板,點(diǎn)擊IP地址右側(cè)的“高級”按鈕,選擇該域名項(xiàng)進(jìn)行編輯,將“主機(jī)頭值”刪除或者改為其它的值(域名)。
實(shí)例模擬測試,取消域名綁定后Web服務(wù)器的CPU馬上恢復(fù)正常狀態(tài),通過IP進(jìn)行訪問連接一切正常。但是不足之處也很明顯,取消或者更改域名對于別人的訪問帶來了不便,另外,對于針對IP的CC攻擊它是無效的,就算更換域名攻擊者發(fā)現(xiàn)之后,他也會對新域名實(shí)施攻擊。
域名欺騙解析
如果發(fā)現(xiàn)針對域名的CC攻擊,可以把被攻擊的域名解析到127.0.0.1這個地址上。知道127.0.0.1是本地回環(huán)IP是用來進(jìn)行網(wǎng)絡(luò)測試的,如果把被攻擊的域名解析到這個IP上,就可以實(shí)現(xiàn)攻擊者自己攻擊自己的目的,這樣他再多的肉雞或者代理也會宕機(jī),讓其自作自受。另外,當(dāng)Web服務(wù)器遭受CC攻擊時把被攻擊的域名解析到國家有權(quán)威的政府網(wǎng)站或者是網(wǎng)警的網(wǎng)站,讓其網(wǎng)警來收拾他們。現(xiàn)在一般的Web站點(diǎn)都是利用類似“新網(wǎng)”這樣的服務(wù)商提供的動態(tài)域名解析服務(wù),大家可以登錄進(jìn)去之后進(jìn)行設(shè)置。
更改Web端口
一般情況下Web服務(wù)器通過80端口對外提供服務(wù),因此攻擊者實(shí)施攻擊就以默認(rèn)的80端口進(jìn)行攻擊,所以,我們可以修改Web端口達(dá)到防CC攻擊的目的。運(yùn)行ⅡS管理器,定位到相應(yīng)站點(diǎn),打開站點(diǎn)“屬性”面板,在“網(wǎng)站標(biāo)識”下有個TCP端口默認(rèn)為80,我們修改為其他的端口就可以了。
ⅡS屏蔽IP
我們通過命令或在查看日志發(fā)現(xiàn)了CC攻擊的源IP,就可以在ⅡS中設(shè)置屏蔽該IP對Web站點(diǎn)的訪問,從而達(dá)到防范ⅡS攻擊的目的。在相應(yīng)站點(diǎn)的“屬性”面板中,點(diǎn)擊“目錄安全性”選項(xiàng)卡,點(diǎn)擊“IP地址和域名現(xiàn)在”下的“編輯”按鈕打開設(shè)置對話框。在此窗口中我們可以設(shè)置“授權(quán)訪問”也就是“白名單”,也可以設(shè)置“拒絕訪問”即“黑名單”。比如我們可以將攻擊者的IP添加到“拒絕訪問”列表中,就屏蔽了該IP對于Web的訪問。
IPSec封鎖
IPSec是優(yōu)秀的系統(tǒng)防火墻,在排除其他還有別的類型的DDOS攻擊時,針對CC攻擊可以用設(shè)置IP策略來對付攻擊。以219.128.*.43這個IP為例子,筆者實(shí)際操作對該IP的訪問封鎖。
第一步:“開始→管理工具”,打開“本地安全設(shè)置”,右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“創(chuàng)建IP安全策略”,然后點(diǎn)擊“下一步”,輸入策略“名稱”和“描述”。然后默認(rèn)一路“下一步”創(chuàng)建了一個名為“封CC攻擊”的IPSec策略。
第二步:右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“管理IP篩選器表和篩選器操作”,在打開的窗口中點(diǎn)“添加”,在“IP 篩選器列表”窗口添人同第一步的名稱和描述信息。取消“使用添加向?qū)А钡墓催x,然后點(diǎn)擊“添加”。在“IP 篩選器 屬性”窗口的“地址”選項(xiàng)下設(shè)置“源地址”為“192.168.1.6”,目標(biāo)地址為“我的IP地址”,取消對“鏡像”的勾選;點(diǎn)擊“協(xié)議”選項(xiàng)卡,設(shè)置“協(xié)議類型”為“TCP”,設(shè)置“協(xié)議端口”為“從任意端口”到“此端口80”最后確定退出。
第三步:在“新規(guī)則 屬性”窗口中點(diǎn)選剛才創(chuàng)建的“封CC攻擊”規(guī)則,點(diǎn)擊“篩選器操作”選項(xiàng)卡下的“添加”,點(diǎn)選“安全措施”下的“阻止”,在“常規(guī)”選項(xiàng)卡下為該篩選器命名為“阻止CC攻擊”然后確定退出。
第四步:點(diǎn)選剛才創(chuàng)建的“阻止CC攻擊”篩選器,一路“確定”退出IP策略編輯器,可以看到在組策略窗口的中創(chuàng)建成功一個名為“封CC攻擊”的策略,然后右鍵點(diǎn)擊該策略選擇“指派”。這樣就實(shí)現(xiàn)了對該IP的封鎖。
防火墻
除了利用上述方法外,還可以通過第三方的防火墻進(jìn)行防范,打開防護(hù)墻防火墻可以了,筆者以天鷹ddos防火墻為例進(jìn)行演示。安裝好天鷹ddos防火墻即可開啟防護(hù),傻瓜式配置界面,默認(rèn)參數(shù)即可防護(hù)網(wǎng)站,誤封較少,智能識別蜘蛛。
防CC攻擊
使用加速樂云防火墻,若遇到CC攻擊時,將自動啟動,可以在2分鐘內(nèi)快速確定攻擊IP,并封鎖IP,完全攔截CC攻擊。
因?yàn)閖ava是編譯成java字節(jié)碼在jvm虛擬機(jī)上運(yùn)行的,與本地系統(tǒng)連接不像C/C++那樣緊密,虛擬機(jī)會檢測代碼的安全性,再加上java語言本身嚴(yán)格的安全控制,所以說JAVA語言編寫的程序不容易被惡意代碼攻擊
網(wǎng)頁名稱:Java代碼攻擊 java代碼攻擊源碼
URL地址:http://www.chinadenli.net/article30/ddihoso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、定制開發(fā)、ChatGPT、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)