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