一、在代碼編寫時就要進行漏洞測試。
創(chuàng)新互聯(lián)建站是專業(yè)的諸暨網(wǎng)站建設(shè)公司,諸暨接單;提供做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行諸暨網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
二、對Web服務(wù)器進行持續(xù)的監(jiān)控。
三、設(shè)置蜜罐,將攻擊者引向錯誤的方向。
四、專人對Web服務(wù)器的安全性進行測試。
在Web服務(wù)器的攻防戰(zhàn)上,這一個原則也適用。筆者建議,如果企業(yè)對于Web服務(wù)的安全比較高,如網(wǎng)站服務(wù)器上有電子商務(wù)交易平臺,此時最好設(shè)置一個專業(yè)的團隊。他們充當攻擊者的角色,對服務(wù)器進行安全性的測試。這個專業(yè)團隊主要執(zhí)行如下幾個任務(wù)?!?/p>
一是測試Web管理團隊對攻擊行為的反應(yīng)速度。如可以采用一些現(xiàn)在比較流行的攻擊手段,對自己的Web服務(wù)器發(fā)動攻擊。當然這個時間是隨機的。預先Web管理團隊并不知道?,F(xiàn)在要評估的是,Web管理團隊在多少時間之內(nèi)能夠發(fā)現(xiàn)這種攻擊的行為。這也是考驗管理團隊全天候跟蹤的能力。一般來說,這個時間越短越好。應(yīng)該將這個時間控制在可控的范圍之內(nèi)。即使攻擊最后沒有成功,Web管理團隊也應(yīng)該及早的發(fā)現(xiàn)攻擊的行為。畢竟有沒有發(fā)現(xiàn)、與最終有沒有取得成功,是兩個不同的概念。
二是要測試服務(wù)器的漏洞是否有補上。畢竟大部分的攻擊行為,都是針對服務(wù)器現(xiàn)有的漏洞所產(chǎn)生的。現(xiàn)在這個專業(yè)團隊要做的就是,這些已發(fā)現(xiàn)的漏洞是否都已經(jīng)打上了安全補丁或者采取了對應(yīng)的安全措施。有時候我們都沒有發(fā)現(xiàn)的漏洞是無能為力,但是對于這些已經(jīng)存在的漏洞不能夠放過。否則的話,也太便宜那些攻擊者了。
不但企業(yè)的門戶網(wǎng)站被篡改、資料被竊取,而且還成為了病毒與木馬的傳播者。有些Web管理員采取了一些措施,雖然可以保證門戶網(wǎng)站的主頁不被篡改,但是卻很難避免自己的網(wǎng)站被當作肉雞,來傳播病毒、惡意插件、木馬等等。筆者認為,這很大一部分原因是管理員在Web安全防護上太被動。他們只是被動的防御。為了徹底提高Web服務(wù)器的安全,筆者認為,Web安全要主動出擊。具體的來說,需要做到如下幾點。 一、在代碼編寫時就要進行漏洞測試 現(xiàn)在的企業(yè)網(wǎng)站做的越來越復雜、功能越來越強。不過這些都不是憑空而來的,是通過代碼堆積起來的。如果這個代碼只供企業(yè)內(nèi)部使用,那么不會帶來多大的安全隱患。但是如果放在互聯(lián)網(wǎng)上使用的話,則這些為實現(xiàn)特定功能的代碼就有可能成為攻擊者的目標。筆者舉一個簡單的例子。在網(wǎng)頁中可以嵌入SQL代碼。而攻擊者就可以利用這些SQL代碼來發(fā)動攻擊,來獲取管理員的密碼等等破壞性的動作。有時候訪問某些網(wǎng)站還需要有某些特定的控件。用戶在安裝這些控件時,其實就有可能在安裝一個木馬(這可能訪問者與被訪問者都沒有意識到)。 為此在為網(wǎng)站某個特定功能編寫代碼時,就要主動出擊。從編碼的設(shè)計到編寫、到測試,都需要認識到是否存在著安全的漏洞。筆者在日常過程中,在這方面對于員工提出了很高的要求。各個員工必須對自己所開發(fā)的功能負責。至少現(xiàn)在已知的病毒、木馬不能夠在你所開發(fā)的插件中有機可乘。通過這層層把關(guān),就可以提高代碼編寫的安全性。 二、對Web服務(wù)器進行持續(xù)的監(jiān)控 冰凍三尺、非一日之寒。這就好像人生病一樣,都有一個過程。病毒、木馬等等在攻擊Web服務(wù)器時,也需要一個過程?;蛘哒f,在攻擊取得成功之前,他們會有一些試探性的動作。如對于一個采取了一定安全措施的Web服務(wù)器,從攻擊開始到取得成果,至少要有半天的時間。如果Web管理員對服務(wù)器進行了全天候的監(jiān)控。在發(fā)現(xiàn)有異常行為時,及早的采取措施,將病毒與木馬阻擋在門戶之外。這種主動出擊的方式,就可以大大的提高Web服務(wù)器的安全性。 筆者現(xiàn)在維護的Web服務(wù)器有好幾十個?,F(xiàn)在專門有一個小組,來全天候的監(jiān)控服務(wù)器的訪問。平均每分鐘都可以監(jiān)測到一些試探性的攻擊行為。其中99%以上的攻擊行為,由于服務(wù)器已經(jīng)采取了對應(yīng)的安全措施,都無功而返。不過每天仍然會遇到一些攻擊行為。這些攻擊行為可能是針對新的漏洞,或者采取了新的攻擊方式。在服務(wù)器上原先沒有采取對應(yīng)的安全措施。如果沒有及時的發(fā)現(xiàn)這種行為,那么他們就很有可能最終實現(xiàn)他們的非法目的。相反,現(xiàn)在及早的發(fā)現(xiàn)了他們的攻擊手段,那么我們就可以在他們采取進一步行動之前,就在服務(wù)器上關(guān)掉這扇門,補上這個漏洞。 筆者在這里也建議,企業(yè)用戶在選擇互聯(lián)網(wǎng)Web服務(wù)器提供商的時候,除了考慮性能等因素之外,還要評估服務(wù)提供商能否提供全天候的監(jiān)控機制。在Web安全上主動出擊,及時發(fā)現(xiàn)攻擊者的攻擊行為。在他們采取進一步攻擊措施之前,就他們消除在萌芽狀態(tài)。 三、設(shè)置蜜罐,將攻擊者引向錯誤的方向 在軍隊中,有時候會給軍人一些偽裝,讓敵人分不清真?zhèn)?。其實在跟病毒、木馬打交道時,本身就是一場無硝煙的戰(zhàn)爭。為此對于Web服務(wù)器采取一些偽裝,也能夠?qū)⒐粽咭蝈e誤的方向。等到供給者發(fā)現(xiàn)自己的目標錯誤時,管理員已經(jīng)鎖定了攻擊者,從而可以及早的采取相應(yīng)的措施。筆者有時候?qū)⑦@種主動出擊的行為叫做蜜罐效應(yīng)。簡單的說,就是設(shè)置兩個服務(wù)器。其中一個是真正的服務(wù)器,另外一個是蜜罐?,F(xiàn)在需要做的是,如何將真正的服務(wù)器偽裝起來,而將蜜罐推向公眾。讓攻擊者認為蜜罐服務(wù)器才是真正的服務(wù)器。要做到這一點的話,可能需要從如下幾個方面出發(fā)。 一是有真有假,難以區(qū)分。如果要瞞過攻擊者的眼睛,那么蜜罐服務(wù)器就不能夠做的太假。筆者在做蜜罐服務(wù)器的時候,80%以上的內(nèi)容都是跟真的服務(wù)器相同的。只有一些比較機密的信息沒有防治在蜜罐服務(wù)器上。而且蜜罐服務(wù)器所采取的安全措施跟真的服務(wù)器事完全相同的。這不但可以提高蜜罐服務(wù)器的真實性,而且也可以用來評估真實服務(wù)器的安全性。一舉兩得。 二是需要有意無意的將攻擊者引向蜜罐服務(wù)器。攻擊者在判斷一個Web服務(wù)器是否值得攻擊時,會進行評估。如評估這個網(wǎng)站的流量是否比較高。如果網(wǎng)站的流量不高,那么即使被攻破了,也沒有多大的實用價值。攻擊者如果沒有有利可圖的話,不會花這么大的精力在這個網(wǎng)站服務(wù)器上面。如果要將攻擊者引向這個蜜罐服務(wù)器的話,那么就需要提高這個蜜罐服務(wù)器的訪問量。其實要做到這一點也非常的容易?,F(xiàn)在有很多用來交互流量的團隊。只要花一點比較小的投資就可以做到這一點。 三是可以故意開一些后門讓攻擊者來鉆。作為Web服務(wù)器的管理者,不僅關(guān)心自己的服務(wù)器是否安全,還要知道自己的服務(wù)器有沒有被人家盯上?;蛘哒f,有沒有被攻擊的價值。此時管理者就需要知道,自己的服務(wù)器一天被攻擊了多少次。如果攻擊的頻率比較高,管理者就高興、又憂慮。高興的是自己的服務(wù)器價值還蠻大的,被這么多人惦記著。憂慮的是自己的服務(wù)器成為了眾人攻擊的目標。就應(yīng)該抽取更多的力量來關(guān)注服務(wù)器的安全。 四、專人對Web服務(wù)器的安全性進行測試 俗話說,靠人不如靠自己。在Web服務(wù)器的攻防戰(zhàn)上,這一個原則也適用。筆者建議,如果企業(yè)對于Web服務(wù)的安全比較高,如網(wǎng)站服務(wù)器上有電子商務(wù)交易平臺,此時最好設(shè)置一個專業(yè)的團隊。他們充當攻擊者的角色,對服務(wù)器進行安全性的測試。這個專業(yè)團隊主要執(zhí)行如下幾個任務(wù)。 一是測試Web管理團隊對攻擊行為的反應(yīng)速度。如可以采用一些現(xiàn)在比較流行的攻擊手段,對自己的Web服務(wù)器發(fā)動攻擊。當然這個時間是隨機的。預先Web管理團隊并不知道?,F(xiàn)在要評估的是,Web管理團隊在多少時間之內(nèi)能夠發(fā)現(xiàn)這種攻擊的行為。這也是考驗管理團隊全天候跟蹤的能力。一般來說,這個時間越短越好。應(yīng)該將這個時間控制在可控的范圍之內(nèi)。即使攻擊最后沒有成功,Web管理團隊也應(yīng)該及早的發(fā)現(xiàn)攻擊的行為。畢竟有沒有發(fā)現(xiàn)、與最終有沒有取得成功,是兩個不同的概念。 二是要測試服務(wù)器的漏洞是否有補上。畢竟大部分的攻擊行為,都是針對服務(wù)器現(xiàn)有的漏洞所產(chǎn)生的?,F(xiàn)在這個專業(yè)團隊要做的就是,這些已發(fā)現(xiàn)的漏洞是否都已經(jīng)打上了安全補丁或者采取了對應(yīng)的安全措施。有時候我們都沒有發(fā)現(xiàn)的漏洞是無能為力,但是對于這些已經(jīng)存在的漏洞不能夠放過。否則的話,也太便宜那些攻擊者了。
1.禁用ROOT權(quán)限登錄。(重要)
2.安全組收縮不使用的端口,建議除443/80以及ssh登錄等必要端口外全部關(guān)閉。
3.防火墻收縮不使用的端口,建議除443/80以及ssh登錄端口外全部關(guān)閉。
4.更改ssh默認端口22
5.除登錄USER,禁止其他用戶su到root進程,并且ssh開啟秘鑰及密碼雙層驗證登錄。(重要)
6.限制除登錄USER外的其他用戶登錄。
7.安裝DenyHosts,防止ddos攻擊。
8.禁止系統(tǒng)響應(yīng)任何從外部/內(nèi)部來的ping請求。
9.保持每天自動檢測更新。
10.禁止除root之外的用戶進程安裝軟件及服務(wù),如有需要則root安裝,chown給到用戶。
11.定時給服務(wù)器做快照。
12.更改下列文件權(quán)限:
13.限制普通用戶使用特殊命令,比如wget,curl等命令更改使用權(quán)限,一般的挖礦程序主要使用這幾種命令操作。
1.nginx進程運行在最小權(quán)限的子用戶中,禁止使用root用戶啟動nginx。(重要)
2.配置nginx.conf,防范常見漏洞:
1.禁止root權(quán)限啟動apache服務(wù)!禁止root權(quán)限啟動apache服務(wù)!禁止root權(quán)限啟動apache服務(wù)!重要的事情說三遍!因為這個問題被搞了兩次。
2.改掉默認端口。
3.清空webapps下除自己服務(wù)外的其他文件,刪除用戶管理文件,防止給木馬留下后門。
4.限制apache啟動進程su到root進程以及ssh登錄,限制啟動進程訪問除/home/xx自身目錄外的其他文件。
5.限制apache啟動進程操作刪除以及編輯文件,一般a+x即可。
1.關(guān)閉外網(wǎng)連接,與java/php服務(wù)使用內(nèi)網(wǎng)連接。
2.在滿足java/php服務(wù)的基礎(chǔ)上,新建最小權(quán)限USER給到服務(wù)使用,禁止USER權(quán)限訪問其他項目的庫。
3.root密碼不要與普通USER相同。
4.建議使用云庫,云庫具備實時備份,動態(tài)擴容,數(shù)據(jù)回退等功能,減少操作風險。
1.關(guān)閉外網(wǎng)連接,只允許內(nèi)網(wǎng)交互,基本這個做了之后就已經(jīng)穩(wěn)了。
2.禁止root權(quán)限啟動,運行在普通用戶進程里。
3.更改默認端口。
4.添加登錄密碼。
以上是自己做的防范手段,不成熟見解,有一些方案待驗證,不定時更新,歡迎大佬補充!