關於軟體安全

2021-04-18 01:02:23 字數 2954 閱讀 8502

dan norris 是 celeritas technologies 的高階顧問,他了解如何保護多層應用程式的安全。

dan norris,celeritas technologies norris指出,這些攻擊經常導致公司的敏感資料被發布到網際網路上。「曾有些惡名昭著的攻擊成為重大新聞,而現在公司不只是僅僅安裝防火牆和病毒掃瞄程式。保護應用程式層的安全已變得更加重要。」

最近,一家製造公司聘請 celeritas 來設計安全的、面向客戶的門戶。考慮到客戶是美國聯邦**,安全性是頭等大事。

安全性對比可使用性

現在保護應用程式經常意味著在可用性與保護級別之間進行選擇-安排的保護級別越高就意味著使用者必須通過更多的限制環節,從而減少了應用程式的可用性。

norris解釋說:「這始終是一種平衡藝術。對於真正的安全設定,我們通常安裝應用程式,然後將安全性固定在應用程式停止執行的點,然後再略微回退一些。這樣可能要花費很多時間和成本,因此您必須幫助客戶確定他們實際上需要什麼級別的安全性。」確定該需求必須平衡考慮攻擊闖入的代價與終端使用者的可訪問性。norris補充說:「對於我們的客戶而言,被破壞的代價非常高,但他們也希望應用程式易於使用。」

norris解釋說客戶希望使用已經部署的公共金鑰基礎架構(pki)證書來認證oracle應用伺服器以及新的門戶應用程式中。這樣,使用者可以繼續在新的應用程式中使用他們原有的證書檔案,同時保持一次性登入(sso)操作。

norris說:「最重要的因素是每個使用者具有包括兩個要素的認證。使用者必須提供他們的pki證書檔案,然後還必須輸入口令。」

這種兩個要素的方法使事務對使用者保持簡單,而由於攻擊者很可能不能同時獲得兩樣資訊,該方法仍可提供強大的前門安全性。攻擊者可能會擷取pki證書,但不會得到口令,反之亦然,攻擊者可能截獲口令,但卻缺少所需的pki證書。這就像有鎖卻沒有鑰匙,或者有鑰匙卻沒有鎖。

norris承認:「利用一次性登入來部署pki登入是很繁重的工作。但在這種情況下,這些工作是值得的,因為終端使用者可以在良好的保護下方便地進行一次性登入。」

最初的步驟經常是些小事情

一旦確定了認證系統,並且將作業系統和應用程式服務減少到最小程度,就可以開始圍繞應用程式本身構建安全性了。norris建議從明顯的地方開始。

他解釋說:「我的第一步始終是伺服器和網路元件的物理安全性。它們是否鎖定並且安全?是否有人能夠接觸伺服器並接出一根網路電纜?備份磁帶是否放在安全的地方而不會被偷走?這些問題看似明顯,但我們確實多次看到硬體上執行的安全**並沒有物理保護,特別是在較小的公司裡。您無法確定誰從物理上接觸了系統的某些部件。」

下一步,norris確保登入、審計和使用者帳號全部屬於安全方法。他解釋說:「對於需要登入、進行更改以及管理配置的系統管理員來說,我們只允許在unix系統中的加密終端會話。我們不允許任何人以組所有者的帳號直接登入到伺服器,而是強制每個人以其自己正常的使用者帳號登入,然後使用審計實用程式來檢視誰在什麼時間登入。如果這些帳號中的某個帳號有漏洞,我們會有審計線索來了解攻擊者如何製造漏洞以及通過誰的帳號進入系統。」

此外,norris在每個節點安裝了入侵檢測軟體(ids),對於伺服器訪問機制中的任何異常操作,該軟體都會發出警告。他還安裝了許多日誌檢視實用程式,確保使用任何易於檢索的高亮顯示關鍵資料來監視正常的unix系統日誌。

norris隨後處理有關掩蓋實際系統資訊的問題。「作為安全性設計師,我希望確保攻擊者盡可能少地了解我們的環境。如果他們了解我們正在執行某個版本的apache,就不難去找到該特定版本的漏洞並利用它們。」

儘管norris承認掩蓋系統資訊並不保證安全性,但他認為這樣使得對系統的攻擊更困難。norris說:「掩蓋資訊經常會使攻擊者感到沮喪,從而去尋找某些更易於攻擊的地方,停止在我們這裡浪費時間。」

norris警告說:「正是這些小事情可能很重要。您可能擁有世界上最好的應用程式設計,但如果您疏漏了小事,就是讓自己向攻擊敞開大門。」

保護網際網路層的安全

使用者接觸的第一層必須與它後面的任何一層同樣安全。對於norris的客戶,這意味著所有網際網路互動作用的單點登入。他解釋說:「使用者將看到的唯一東西是限制非常嚴格的前端防火牆的集群。」(參見下面的體系結構。)

防火牆集群允許通過的唯一通訊是https,而只有這些埠被提供給實際認證的客戶。他補充說:「這意味著如果某些人想攻擊我們,他們只能在非常小的範圍中進行。」

在防火牆後面是負載均衡器層。norris以這種方式配置負載均衡器,只允許傳遞特定的url請求,並且它們作為https協議的終點,將會終止硬體上的ssl連線。

norris還使用負載均衡器本身作為其系統掩蓋技術的一部分。他解釋說:「面對我們的負載均衡器,攻擊者很難弄清楚系統中有一台伺服器還是二十臺伺服器。這是另一種使壞人感到沮喪的方法。」

在負載均衡器層後面是實際的web伺服器。norris解釋說,「在我們的案例中,我們使用oracle應用伺服器的中間層伺服器。即使您到達這裡的唯一方法是通過好幾個安全層,我們仍會關閉任何不必要的服務,確保這些伺服器上只執行最少量的服務。如果某些人確實偶然找到了攻擊我們的方法,他們在進入系統後也找不到什麼。」

在維持效能的同時保護應用程式層的安全

在考慮安全性問題時,顧問們需要了解他們的客戶可以得到的不同選擇。良好的安全性從設計的第一天開始,並貫徹到良好的管理和系統監管中。

norris說:「要在安全性設計方面工作出色,您必須以沒有危險的方式轉移與安全性相關的風險。作為設計師,我們定期與客戶討論有關高可用性和可伸縮性的問題,並且必須以同樣方式解釋很多安全性問題--因為必須在設計和構建過程中做出決定。如果您試圖在專案即將結束時解決安全性問題,當最後期限迫近而一片混亂時,專案很可能滿是漏洞。在開始工作時要切記安全性問題,並幫助您的客戶了解他們的選擇。」

注:dan norris([email protected]) 是美國堪薩斯城的celeritas technologies,llc的一位高階顧問。在他6年多的顧問經歷中,他已幫助許多公司設計基礎架構,使其高度可用並更加安全。他曾擔任過很多職務,包括系統設計師、unix系統管理員、oracle資料庫管理員、應用伺服器管理員和安全性設計師。

軟體安全技術

在高度保證企業應用程式安全的過程中我們不免會考慮到如下的安全需求,然後我們針對這些安全需求提出各種安全技術 1 完整性驗證 integrity verification 也就是以防止我們需要的內容不被篡改,仍然不吃其真實性。2 機密性保持 confidentiality preservation 通...

軟體安全概述

一 軟體安全 1 軟體安全關注的是電腦程式或程式中資訊的完整性 機密性和可用性 2 軟體的安全缺陷 1 軟體自身的缺陷,設計者故意或過失 2 軟體漏洞是基本的形態,而惡意 是延伸的形體 3 軟體中的客觀存在 3 風險與安全事件 風險 軟體內在的漏洞暴露在外在的威脅時稱為風險 安全事件 軟體內在的缺陷...

軟體安全 fuzzing

fuzz本意是 羽毛 細小的毛髮 使模糊 變得模糊 後來用在軟體測試領域,中文一般指 模糊測試 英文叫 fuzzing fuzzing技術是一種基於黑盒 或灰盒 的測試技術,通過自動化生成並執行大量的隨機測試用例來發現產品或協議的未知漏洞。在軟體領域有乙個著名的bug 蘋果手機在鎖屏後,使用者需要等...