關(guān)于保護(hù)您的網(wǎng)站(在我看來,最重要的事情),首先要知道的是,您這樣做并不是為了絕對(duì)保證免受惡意攻擊者的侵害。大型組織的網(wǎng)站經(jīng)常遭到DDOS攻擊或被敘利亞電子軍等黑客組織破壞。在最壞的情況下,他們的網(wǎng)站會(huì)使用戶的個(gè)人身份信息(PII)由于跨站點(diǎn)腳本而變得容易受到攻擊。
我要說的是,您為網(wǎng)站啟用的安全性與其說是一把傘,不如說是一把篩子。你可以轉(zhuǎn)移大型、明顯和笨拙的攻擊——這種攻擊占網(wǎng)絡(luò)攻擊的97%——但總會(huì)有人足夠聰明和狡猾來穿透你的防御。良好的網(wǎng)絡(luò)防御將始終包括防御何時(shí)(而不是如果)失敗的計(jì)劃。話雖如此,這里有一些最常見的針對(duì)網(wǎng)站的攻擊——跨站點(diǎn)腳本、信息泄露和DDOS攻擊——以及如何轉(zhuǎn)移它們。
1.跨站腳本(XSS)
跨站點(diǎn)腳本是一個(gè)危險(xiǎn)的問題。與故意破壞或DDOS攻擊不同,跨站點(diǎn)腳本攻擊會(huì)將您的網(wǎng)站變成惡意軟件載體,并可能危及用戶的個(gè)人信息。一個(gè)常見的例子是:假設(shè)您的網(wǎng)站上有一個(gè)聯(lián)系表。攻擊者不會(huì)輸入他們的姓名、電子郵件和消息,而是編寫一些神秘的代碼字符串,然后點(diǎn)擊“提交”按鈕。如果你不走運(yùn)或不小心,那段代碼就會(huì)入侵你網(wǎng)站的數(shù)據(jù)庫——它會(huì)成為你網(wǎng)站的一部分。
當(dāng)用戶訪問您的網(wǎng)站時(shí),他們的瀏覽器會(huì)將您的所有內(nèi)容與攻擊者的代碼一起呈現(xiàn)。這使得攻擊者可以做一些事情,比如記錄用戶的每一次擊鍵,從而最終捕獲他們的用戶名、密碼、SSN、信用卡號(hào)等。
您如何防御跨站點(diǎn)腳本?
關(guān)于防止跨站點(diǎn)腳本的主題已經(jīng)寫了很多,好消息是它不需要購買昂貴的安全解決方案。您的網(wǎng)站開發(fā)人員可以在構(gòu)建或修改您的網(wǎng)站時(shí)提供針對(duì)XSS的保護(hù)。從本質(zhì)上講,您需要將所有用戶輸入到您的網(wǎng)站視為“不受信任”。它可能是真正與您聯(lián)系的人,也可能是惡意代碼。因此,在將這些數(shù)據(jù)添加到數(shù)據(jù)庫之前,需要對(duì)這些數(shù)據(jù)進(jìn)行編碼或轉(zhuǎn)換為不會(huì)在瀏覽器中呈現(xiàn)的文本。
例如,用戶可能會(huì)在您的網(wǎng)站上發(fā)表評(píng)論,其中包含以下兩個(gè)字符之間的一些文本:<text>。不幸的是,“<”和“>”通常表示HTML中的<executable code goes here>——這可能是一個(gè)陷阱!通過編碼,“<”和“>”被轉(zhuǎn)換為“<”和“>”——這對(duì)你和你的HTML渲染器來說都是胡言亂語。如果您正在尋找更多信息,OWASP已經(jīng)整理了一份全面的備忘單來防止XSS。還有一些公司會(huì)付費(fèi)掃描您的網(wǎng)站以查找XSS漏洞——這些漏洞并不像未受保護(hù)的評(píng)論框那么明顯——并提出補(bǔ)救建議。
2.信息泄露
這是針對(duì)網(wǎng)站的攻擊的最常見原因之一,它甚至不是基于特定的軟件漏洞。當(dāng)你在PC端閱讀這篇文章時(shí),快速按下鍵盤上的F12。如果這不起作用,您可能需要右鍵單擊并點(diǎn)擊“查看源代碼”。如果您是開發(fā)人員,您可能已經(jīng)知道這是什么——它是給定網(wǎng)頁的HTML源代碼。您還知道,當(dāng)您開發(fā)頁面或Web應(yīng)用程序時(shí),您可能會(huì)在該代碼中留下注釋,例如指出存在錯(cuò)誤。
這就是信息泄漏的地方:在軟件開發(fā)周期的剩余物中。來自開發(fā)過程的剩余注釋可以揭示諸如服務(wù)器配置、軟件版本號(hào)、可利用的錯(cuò)誤等等之類的東西——所有這些都是攻擊者樂于利用的東西。當(dāng)然,解決方案非常簡(jiǎn)單:不要這樣做。
這在理論上是一個(gè)簡(jiǎn)單的答案,但在實(shí)踐中,軟件開發(fā)人員通常每周工作80小時(shí),以便將產(chǎn)品推出市場(chǎng)。會(huì)犯錯(cuò)誤。在一個(gè)將上市時(shí)間放在首位的環(huán)境中,安全性往往被擱置一旁。如果您的網(wǎng)頁由第三方開發(fā),最好讓滲透測(cè)試人員查看您完成的頁面,以找出這些和其他不安全因素。
3.分布式拒絕服務(wù)攻擊(DDOS)
我過去寫過很多關(guān)于DDOS攻擊的文章,而且它們是最糟糕的。他們的工作原則是,通過同時(shí)向網(wǎng)站發(fā)送大量非法網(wǎng)絡(luò)流量,很容易使網(wǎng)站崩潰。單個(gè)用戶可以通過發(fā)送垃圾郵件DNS流量來產(chǎn)生DDOS攻擊。其他時(shí)候,黑客使用一臺(tái)或多臺(tái)被遠(yuǎn)程控制的受感染計(jì)算機(jī)來完成相同的任務(wù)。DDOS攻擊可能是出于意識(shí)形態(tài)的原因——敘利亞電子軍和俄羅斯聯(lián)邦都與DDOS攻擊有關(guān)——但大多數(shù)攻擊者想要冷、硬的比特幣。
很多公司都付錢。畢竟,什么更容易放棄——10,000美元,還是幾天的收入?與上面提到的攻擊不同,僅靠合理的開發(fā)實(shí)踐可能無法保護(hù)您的網(wǎng)站免受DDOS攻擊。但是,您可以減輕這些攻擊。
第一步是使用其內(nèi)置軟件(通常是BIND)監(jiān)控您的DNS服務(wù)器。如果流量高于正常水平,那么您可能會(huì)遇到麻煩。如果您懷疑自己可能容易受到DDOS攻擊,下一步可能是調(diào)整服務(wù)器可以處理的查詢量。這需要資金,因此您配置服務(wù)器的程度應(yīng)采取成本效益分析的形式。最后,一個(gè)名為Anycast的工具允許用戶在多個(gè)位置使用相同的IP地址托管服務(wù)器。如果攻擊者在一個(gè)位置攻擊您的服務(wù)器,您可以使用此工具將流量路由到世界其他地區(qū)的服務(wù)器,從而允許大多數(shù)合法用戶查詢您的站點(diǎn)而不會(huì)遇到延遲問題。
4.WordPress攻擊
許多閱讀本文的人都會(huì)在WordPress平臺(tái)上擁有博客或網(wǎng)站。WordPress網(wǎng)站很容易受到上述相同類型的攻擊。例如,該公司最近發(fā)布了一個(gè)補(bǔ)丁來修復(fù)一個(gè)漏洞,該漏洞使其數(shù)百萬用戶容易受到跨站點(diǎn)腳本的攻擊。希望對(duì)你們中的大多數(shù)人來說,你不得不擔(dān)心的最大安全威脅將是偶爾的垃圾郵件評(píng)論。
許多基本的安全性都圍繞著使WordPress客戶端保持最新。該組織非常看好安全性,并不斷發(fā)布自動(dòng)更新以提高日常用戶的安全性。話雖如此,如果您使用不安全的自定義主題,更新核心WordPress軟件將無法保護(hù)您。假設(shè)您的主題是安全的,黑客可能會(huì)通過攻擊您用于控制和編輯網(wǎng)站的計(jì)算機(jī)來竊取您的登錄憑據(jù)。如果您運(yùn)行防火墻和防病毒軟件(針對(duì)家庭用戶)或企業(yè)級(jí)系統(tǒng)監(jiān)控,您將降低這種風(fēng)險(xiǎn)。
有些插件聲稱提供全套安全服務(wù),包括防火墻、入侵檢測(cè)和錯(cuò)誤記錄。關(guān)于這一點(diǎn),我會(huì)說我對(duì)所有安全工具的看法——僅僅在你的系統(tǒng)上安裝它不會(huì)讓你更安全。您需要使用它,了解它告訴您的信息,確定代表您網(wǎng)站上普通流量的基線,然后才能了解您是否受到攻擊。
5.VPN作為網(wǎng)站安全的一個(gè)組成部分
我們大多數(shù)人都認(rèn)為VPN是一種繞過區(qū)域鎖定視頻限制的方法,或者是一種在國(guó)外安全登錄公司內(nèi)部網(wǎng)的方法。如果您的網(wǎng)站提供諸如云托管軟件或數(shù)據(jù)之類的東西,那么擁有VPN也非常重要。
這種安全連接可防止惡意行為者在有人訪問您想要設(shè)置安全性的資源(信用卡號(hào)、健康記錄和其他PII)時(shí)監(jiān)聽。但是,如果您的網(wǎng)站上有VPN門戶,則需要采取一些重要步驟來確保門戶是安全的。Securethoughts.com提供了相當(dāng)全面的VPN服務(wù)列表,并附有評(píng)論。
6.TLS,不是SSL
由于名為POODLE(與Heartbleed非常相似)的漏洞利用,SSL VPN實(shí)際上已過時(shí)。如果您的VPN門戶仍然使用SSL,您的訪問者可能會(huì)將其視為危險(xiǎn)信號(hào)。SSL的安全替代品是傳輸層安全性(TLS)。這是您要使用的。重要的是要注意,為了熟悉起見,許多安全專家用舊的、錯(cuò)誤的SSL名稱來稱呼TLS——這可能會(huì)讓人感到困惑。您還需要確保您使用的是最新版本的TLS,因?yàn)樗峁┝藢?duì)原始版本的重大改進(jìn)。
7.當(dāng)所有其他方法都失敗時(shí)
正如我所解釋的,大多數(shù)針對(duì)網(wǎng)站的常見攻擊都可以通過使用不需要昂貴工具的做法來轉(zhuǎn)移。然而,黑帽子總是有可能戰(zhàn)勝你。好消息是,有效地應(yīng)對(duì)違規(guī)行為將降低您的總體成本,并阻止客戶離開您的業(yè)務(wù)。例如,為了應(yīng)對(duì)2014年的違規(guī)行為,Evernote全面詳細(xì)說明了所采取的措施,重置了所有客戶的密碼,并發(fā)出了及時(shí)而全面的通知。該公司因其透明度和高度謹(jǐn)慎而受到普遍稱贊。
我最好的建議是:明智地投資于安全性。使用合理的做法和訓(xùn)練有素的員工,同時(shí)盡量減少對(duì)工具的依賴。您可能無法每次都偏轉(zhuǎn)每一次攻擊,但是當(dāng)錘子最終落下時(shí),應(yīng)該沒有人可以說您沒有準(zhǔn)備好。