Java代碼攻擊 java代碼攻擊源碼

如何防止java編程語(yǔ)言序列化網(wǎng)絡(luò)攻擊?

java編程一直以來(lái)都是互聯(lián)網(wǎng)軟件開(kāi)發(fā)市場(chǎng)上的主流開(kāi)發(fā)語(yǔ)言,同樣的這也就導(dǎo)致了只要發(fā)生漏洞的話,所有用java編程開(kāi)發(fā)的軟件都會(huì)出現(xiàn)問(wèn)題,下面南邵java培訓(xùn)就一起來(lái)了解一下,java編程語(yǔ)言中的序列化問(wèn)題應(yīng)該如何解決。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到寶山網(wǎng)站設(shè)計(jì)與寶山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋寶山地區(qū)。

什么是序列化?

自從1997年發(fā)布JDK1.1以來(lái),序列化已經(jīng)存在于Java平臺(tái)中。

它用于在套接字之間共享對(duì)象表示,或者將對(duì)象及其狀態(tài)保存起來(lái)以供將來(lái)使用(反序列化)。

在JDK10及更低版本中,序列化作為java.base包和java.io.Serializable方法的一部分存在于所有的系統(tǒng)中。

序列化的挑戰(zhàn)和局限

序列化的局限主要表現(xiàn)在以下兩個(gè)方面:

出現(xiàn)了新的對(duì)象傳輸策略,例如JSON、XML、ApacheAvro、ProtocolBuffers等。

1997年的序列化策略無(wú)法預(yù)見(jiàn)現(xiàn)代互聯(lián)網(wǎng)服務(wù)的構(gòu)建和攻擊方式。

進(jìn)行序列化漏洞攻擊的基本前提是找到對(duì)反序列化的數(shù)據(jù)執(zhí)行特權(quán)操作的類,然后傳給它們惡意的代碼。

序列化在哪里?如何知道我的應(yīng)用程序是否用到了序列化?

要移除序列化,需要從java.io包開(kāi)始,這個(gè)包是java.base模塊的一部分。常見(jiàn)的使用場(chǎng)景是:

實(shí)現(xiàn)Serializable接口和(可選)serialversionuid長(zhǎng)整型字段。

使用ObjectInputStream或ObjectOutputStream。

使用嚴(yán)重依賴序列化的庫(kù),例如:Xstream、Kryo、BlazeDS和大多數(shù)應(yīng)用程序服務(wù)器。

使用這些方法的開(kāi)發(fā)人員應(yīng)考慮使用其他存儲(chǔ)和讀回?cái)?shù)據(jù)的替代方法。EishaySmith發(fā)布了幾個(gè)不同序列化庫(kù)的性能指標(biāo)。在評(píng)估性能時(shí),需要在基準(zhǔn)度量指標(biāo)中包含安全方面的考慮。默認(rèn)的Java序列化“更快”一些,但漏洞也會(huì)以同樣的速度找上門(mén)來(lái)。

我們?cè)撊绾谓档托蛄谢毕莸挠绊?

項(xiàng)目Amber包含了一個(gè)關(guān)于將序列化API隔離出來(lái)的討論。我們的想法是將序列化從java.base移動(dòng)到單獨(dú)的模塊,這樣應(yīng)用程序就可以完全移除它。在確定JDK11功能集時(shí)并沒(méi)有針對(duì)該提議得出任何結(jié)果,但可能會(huì)在未來(lái)的Java版本中繼續(xù)進(jìn)行討論。

通過(guò)運(yùn)行時(shí)保護(hù)來(lái)減少序列化暴露

一個(gè)可以監(jiān)控風(fēng)險(xiǎn)并自動(dòng)化可重復(fù)安全專業(yè)知識(shí)的系統(tǒng)對(duì)于很多企業(yè)來(lái)說(shuō)都是很有用的。Java應(yīng)用程序可以將JVMTI工具嵌入到安全監(jiān)控系統(tǒng)中,通過(guò)插樁的方式將傳感器植入到應(yīng)用程序中。

其他有用的安全技術(shù)

在進(jìn)行維護(hù)時(shí),可以不需要手動(dòng)列出一長(zhǎng)串東西,而是使用像OWASPDependency-Check這樣的系統(tǒng),它可以識(shí)別出已知安全漏洞的依賴關(guān)系,并提示進(jìn)行升級(jí)。也可以考慮通過(guò)像DependABot這樣的系統(tǒng)進(jìn)行庫(kù)的自動(dòng)更新。

雖然用意很好,但默認(rèn)的Oracle序列化過(guò)濾器存在與SecurityManager和相關(guān)沙箱漏洞相同的設(shè)計(jì)缺陷。因?yàn)樾枰煜巧珯?quán)限并要求提前了解不可知的事物,限制了這個(gè)功能的大規(guī)模采用:系統(tǒng)管理員不知道代碼的內(nèi)容,所以無(wú)法列出類文件,而開(kāi)發(fā)人員不了解環(huán)境,甚至DevOps團(tuán)隊(duì)通常也不知道系統(tǒng)其他部分(如應(yīng)用程序服務(wù)器)的需求。

有人知道怎么用java代碼防止CC攻擊嗎

般cc攻擊都是針對(duì)網(wǎng)站的域名進(jìn)行攻擊,比如網(wǎng)站域名是“xxx”,那么攻擊者就在攻擊工具中設(shè)定攻擊對(duì)象為該域名然后實(shí)施攻擊。

對(duì)于這樣的攻擊措施是在ⅡS上取消這個(gè)域名的綁定,讓CC攻擊失去目標(biāo)。具體操作步驟是:打開(kāi)“ⅡS管理器”定位到具體站點(diǎn)右鍵“屬性”打開(kāi)該站點(diǎn)的屬性面板,點(diǎn)擊IP地址右側(cè)的“高級(jí)”按鈕,選擇該域名項(xiàng)進(jìn)行編輯,將“主機(jī)頭值”刪除或者改為其它的值(域名)。

實(shí)例模擬測(cè)試,取消域名綁定后Web服務(wù)器的CPU馬上恢復(fù)正常狀態(tài),通過(guò)IP進(jìn)行訪問(wèn)連接一切正常。但是不足之處也很明顯,取消或者更改域名對(duì)于別人的訪問(wèn)帶來(lái)了不便,另外,對(duì)于針對(duì)IP的CC攻擊它是無(wú)效的,就算更換域名攻擊者發(fā)現(xiàn)之后,他也會(huì)對(duì)新域名實(shí)施攻擊。

域名欺騙解析

如果發(fā)現(xiàn)針對(duì)域名的CC攻擊,可以把被攻擊的域名解析到127.0.0.1這個(gè)地址上。知道127.0.0.1是本地回環(huán)IP是用來(lái)進(jìn)行網(wǎng)絡(luò)測(cè)試的,如果把被攻擊的域名解析到這個(gè)IP上,就可以實(shí)現(xiàn)攻擊者自己攻擊自己的目的,這樣他再多的肉雞或者代理也會(huì)宕機(jī),讓其自作自受。另外,當(dāng)Web服務(wù)器遭受CC攻擊時(shí)把被攻擊的域名解析到國(guó)家有權(quán)威的政府網(wǎng)站或者是網(wǎng)警的網(wǎng)站,讓其網(wǎng)警來(lái)收拾他們。現(xiàn)在一般的Web站點(diǎn)都是利用類似“新網(wǎng)”這樣的服務(wù)商提供的動(dòng)態(tài)域名解析服務(wù),大家可以登錄進(jìn)去之后進(jìn)行設(shè)置。

更改Web端口

一般情況下Web服務(wù)器通過(guò)80端口對(duì)外提供服務(wù),因此攻擊者實(shí)施攻擊就以默認(rèn)的80端口進(jìn)行攻擊,所以,我們可以修改Web端口達(dá)到防CC攻擊的目的。運(yùn)行ⅡS管理器,定位到相應(yīng)站點(diǎn),打開(kāi)站點(diǎn)“屬性”面板,在“網(wǎng)站標(biāo)識(shí)”下有個(gè)TCP端口默認(rèn)為80,我們修改為其他的端口就可以了。

ⅡS屏蔽IP

我們通過(guò)命令或在查看日志發(fā)現(xiàn)了CC攻擊的源IP,就可以在ⅡS中設(shè)置屏蔽該IP對(duì)Web站點(diǎn)的訪問(wèn),從而達(dá)到防范ⅡS攻擊的目的。在相應(yīng)站點(diǎn)的“屬性”面板中,點(diǎn)擊“目錄安全性”選項(xiàng)卡,點(diǎn)擊“IP地址和域名現(xiàn)在”下的“編輯”按鈕打開(kāi)設(shè)置對(duì)話框。在此窗口中我們可以設(shè)置“授權(quán)訪問(wèn)”也就是“白名單”,也可以設(shè)置“拒絕訪問(wèn)”即“黑名單”。比如我們可以將攻擊者的IP添加到“拒絕訪問(wèn)”列表中,就屏蔽了該IP對(duì)于Web的訪問(wèn)。

IPSec封鎖

IPSec是優(yōu)秀的系統(tǒng)防火墻,在排除其他還有別的類型的DDOS攻擊時(shí),針對(duì)CC攻擊可以用設(shè)置IP策略來(lái)對(duì)付攻擊。以219.128.*.43這個(gè)IP為例子,筆者實(shí)際操作對(duì)該IP的訪問(wèn)封鎖。

第一步:“開(kāi)始→管理工具”,打開(kāi)“本地安全設(shè)置”,右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“創(chuàng)建IP安全策略”,然后點(diǎn)擊“下一步”,輸入策略“名稱”和“描述”。然后默認(rèn)一路“下一步”創(chuàng)建了一個(gè)名為“封CC攻擊”的IPSec策略。

第二步:右鍵點(diǎn)擊“IP安全策略,在本地機(jī)器”選擇“管理IP篩選器表和篩選器操作”,在打開(kāi)的窗口中點(diǎn)“添加”,在“IP 篩選器列表”窗口添人同第一步的名稱和描述信息。取消“使用添加向?qū)А钡墓催x,然后點(diǎn)擊“添加”。在“IP 篩選器 屬性”窗口的“地址”選項(xiàng)下設(shè)置“源地址”為“192.168.1.6”,目標(biāo)地址為“我的IP地址”,取消對(duì)“鏡像”的勾選;點(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)建成功一個(gè)名為“封CC攻擊”的策略,然后右鍵點(diǎn)擊該策略選擇“指派”。這樣就實(shí)現(xiàn)了對(duì)該IP的封鎖。

防火墻

除了利用上述方法外,還可以通過(guò)第三方的防火墻進(jìn)行防范,打開(kāi)防護(hù)墻防火墻可以了,筆者以天鷹ddos防火墻為例進(jìn)行演示。安裝好天鷹ddos防火墻即可開(kāi)啟防護(hù),傻瓜式配置界面,默認(rèn)參數(shù)即可防護(hù)網(wǎng)站,誤封較少,智能識(shí)別蜘蛛。

防CC攻擊

使用加速樂(lè)云防火墻,若遇到CC攻擊時(shí),將自動(dòng)啟動(dòng),可以在2分鐘內(nèi)快速確定攻擊IP,并封鎖IP,完全攔截CC攻擊。

為什么說(shuō)JAVA語(yǔ)言編寫(xiě)的程序不容易被惡意代碼攻擊?

因?yàn)閖ava是編譯成java字節(jié)碼在jvm虛擬機(jī)上運(yùn)行的,與本地系統(tǒng)連接不像C/C++那樣緊密,虛擬機(jī)會(huì)檢測(cè)代碼的安全性,再加上java語(yǔ)言本身嚴(yán)格的安全控制,所以說(shuō)JAVA語(yǔ)言編寫(xiě)的程序不容易被惡意代碼攻擊

網(wǎng)頁(yè)名稱:Java代碼攻擊 java代碼攻擊源碼
URL地址:http://muchs.cn/article30/ddihoso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、手機(jī)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、定制開(kāi)發(fā)、ChatGPT、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名