安全漏洞產生原因有哪些?
軟件或產品漏洞是由于軟件在需求、設計、開發、部署或維護階段,由于開發或使用者有意或無意產生的缺陷所造成的。信息系統漏洞產生的原因主要是由于構成系統的元素,例如,硬件、軟件、協議等在具體實現或安全策略上存在的缺陷。事實上,由于人類思維能力、計算機計算能力的局限性等根本因素,導致漏洞的產生是不可避免的。
技術原因
隨著信息化技術和應用的不斷發展,人們對軟件信息技術的依賴越來越強,對信息產品和系統的功能和性能的要求也越來越高,在此驅動下,軟件系統的規模不斷膨脹。同時,由于軟件編程技術、可視化技術、系統集成技術的不斷發展,更進一步的促使軟件系統內部結構和邏輯日益復雜。軟件系統規模的迅速膨脹及內部結構的復雜化,導致軟件系統復雜性的提高,目前學術界普遍認為,軟件系統代碼的復雜性是導致軟件系統質量難于控制、安全性降低和漏洞產生的重要原因。
開源軟件的出現和快速發展給軟件開發帶來了便利,軟件開發廠商為了節約開發成本和縮短開發時間,常常鼓勵程序開發者使用開源軟件中的某些功能或系統模塊(以下簡稱公用模塊)。公用模塊使用了很多業界主流或較新的技術,對軟件產業的發展帶來了極大的便利,但是公用模塊也存在一些安全問題。在開源社區中,對源代碼中安全補丁的修復及管理往往不能準確和及時地進行,甚至出現沒有人修復的情況。此外,即使公用模塊的開發者及時發布了安全補丁,使用公用模塊的開發商如果沒有及時關注補丁信息,也可能導致自己軟件中的漏洞不能被及時修復。某些惡意的攻擊者,可以通過分析公用模塊的源代碼發現或利用公用模塊中的漏洞,甚至直接開發帶有惡意代碼甚至后門的公用模塊放置在互聯網上。
經濟原因
軟件系統的安全性不是顯性價值,廠商要實現安全性就要額外付出巨大的代價。此時,軟件系統的安全質量產生了信息非對稱現象,即產品的賣方對產品質量比買方有更多的信息。在這種情況下,經濟學上著名的“檸檬市場”效應會出現,即在信息不對稱的情況下,往往好的商品被淘汰,而劣等品會逐漸占領市場并取代好的商品,導致市場中都是劣等品。在這種市場之下,廠商更加重視軟件系統的功能、性能、易用性,而不愿意在安全質量上做大的投入。在某些情況下,甚至為了提高軟件效率而犧牲了安全性,使得軟件系統安全問題越來越嚴重。這種現象可以進一步歸結為經濟學上的外在性(externality),像環境污染一樣,軟件系統漏洞的代價要全社會來承受,而廠商拿走了所有的收益。
應用環境原因
以Internet為代表的網絡逐漸融入人類社會生活的方方面面,伴隨著Internet技術與信息技術的不斷融合與發展,導致軟件系統的運行環境發生了改變,從傳統的封閉、靜態和可控狀態變為開放、動態和難控狀態。因此,復雜的網絡環境導致軟件系統的攻防信息不對稱性進一步增強,攻易守難的矛盾進一步凸顯。與非網絡或同構網絡環境下的漏洞相比,復雜異構網絡環境會產生更多的漏洞類型和數量,而且漏洞的危害和影響也更加嚴重。
安全缺陷
安全缺陷是指軟件、硬件或協議在開發維護和運行使用階段產生的安全錯誤實例。安全缺陷是信息系統或產品自身“與生俱來”的特征,是其固有的成分。無論是復雜的軟件系統還是簡單的應用程序,都可能存在著安全缺陷。這些安全缺陷,有的容易表現出來,有的卻難以發現;有的對軟件產品的使用有輕微影響,有的可在一定的條件下,形成漏洞并會造成財產乃至生命等巨大損失。
軟件系統在不同的開發階段會產生不同的安全缺陷。安全缺陷存在于軟件系統生命周期的各個階段。在問題定義階段,系統分析員對問題性質、問題規模和方案的考慮不周全會引入安全缺陷,這種安全缺陷在開發前不易察覺,只有到了測試階段甚至投入使用后才能顯現出來。在定義需求階段,需求定義的不完善是導致安全缺陷的最主要原因。在系統設計階段,錯誤的設計方案是安全缺陷的直接原因。在編碼實現階段,安全缺陷可能是錯誤地理解了算法導致了代碼錯誤,也可能是無意的代碼編寫上的一個錯誤等。在測試階段,測試人員可能對安全缺陷出現條件判斷錯誤,修改了一個錯誤,卻引入了更多安全缺陷。在維護階段,修改了有缺陷的代碼,卻又導致了先前正確的模塊出現錯誤等。在使用階段,用戶的使用錯誤或配置錯誤也可以觸發系統中的安全缺陷,影響系統安全。
根據漏洞和安全缺陷的定義可知,一個漏洞是由一個或多個安全缺陷造成的。因此,安全缺陷與漏洞的對應關系存在兩種情況,一種是一個缺陷對應于一個漏洞,即缺陷與漏洞一一對應。另一種情況是,多個缺陷對應于一個漏洞,即缺陷與漏洞之間是多對一的關系。
最后是安全缺陷的利用技術和手段。攻擊者對安全缺陷的利用過程與其個人的能力水平密切相關,同一個缺陷可能有不同的利用方法,產生不同的破壞效果,而且一個成功的利用過程往往需要組合多種缺陷、方法和手段。
回答所涉及的環境:聯想天逸510S、Windows 10。
軟件或產品漏洞是由于軟件在需求、設計、開發、部署或維護階段,由于開發或使用者有意或無意產生的缺陷所造成的。信息系統漏洞產生的原因主要是由于構成系統的元素,例如,硬件、軟件、協議等在具體實現或安全策略上存在的缺陷。事實上,由于人類思維能力、計算機計算能力的局限性等根本因素,導致漏洞的產生是不可避免的。
技術原因
隨著信息化技術和應用的不斷發展,人們對軟件信息技術的依賴越來越強,對信息產品和系統的功能和性能的要求也越來越高,在此驅動下,軟件系統的規模不斷膨脹。同時,由于軟件編程技術、可視化技術、系統集成技術的不斷發展,更進一步的促使軟件系統內部結構和邏輯日益復雜。軟件系統規模的迅速膨脹及內部結構的復雜化,導致軟件系統復雜性的提高,目前學術界普遍認為,軟件系統代碼的復雜性是導致軟件系統質量難于控制、安全性降低和漏洞產生的重要原因。
開源軟件的出現和快速發展給軟件開發帶來了便利,軟件開發廠商為了節約開發成本和縮短開發時間,常常鼓勵程序開發者使用開源軟件中的某些功能或系統模塊(以下簡稱公用模塊)。公用模塊使用了很多業界主流或較新的技術,對軟件產業的發展帶來了極大的便利,但是公用模塊也存在一些安全問題。在開源社區中,對源代碼中安全補丁的修復及管理往往不能準確和及時地進行,甚至出現沒有人修復的情況。此外,即使公用模塊的開發者及時發布了安全補丁,使用公用模塊的開發商如果沒有及時關注補丁信息,也可能導致自己軟件中的漏洞不能被及時修復。某些惡意的攻擊者,可以通過分析公用模塊的源代碼發現或利用公用模塊中的漏洞,甚至直接開發帶有惡意代碼甚至后門的公用模塊放置在互聯網上。
經濟原因
軟件系統的安全性不是顯性價值,廠商要實現安全性就要額外付出巨大的代價。此時,軟件系統的安全質量產生了信息非對稱現象,即產品的賣方對產品質量比買方有更多的信息。在這種情況下,經濟學上著名的“檸檬市場”效應會出現,即在信息不對稱的情況下,往往好的商品被淘汰,而劣等品會逐漸占領市場并取代好的商品,導致市場中都是劣等品。在這種市場之下,廠商更加重視軟件系統的功能、性能、易用性,而不愿意在安全質量上做大的投入。在某些情況下,甚至為了提高軟件效率而犧牲了安全性,使得軟件系統安全問題越來越嚴重。這種現象可以進一步歸結為經濟學上的外在性(externality),像環境污染一樣,軟件系統漏洞的代價要全社會來承受,而廠商拿走了所有的收益。
應用環境原因
以Internet為代表的網絡逐漸融入人類社會生活的方方面面,伴隨著Internet技術與信息技術的不斷融合與發展,導致軟件系統的運行環境發生了改變,從傳統的封閉、靜態和可控狀態變為開放、動態和難控狀態。因此,復雜的網絡環境導致軟件系統的攻防信息不對稱性進一步增強,攻易守難的矛盾進一步凸顯。與非網絡或同構網絡環境下的漏洞相比,復雜異構網絡環境會產生更多的漏洞類型和數量,而且漏洞的危害和影響也更加嚴重。
安全缺陷
安全缺陷是指軟件、硬件或協議在開發維護和運行使用階段產生的安全錯誤實例。安全缺陷是信息系統或產品自身“與生俱來”的特征,是其固有的成分。無論是復雜的軟件系統還是簡單的應用程序,都可能存在著安全缺陷。這些安全缺陷,有的容易表現出來,有的卻難以發現;有的對軟件產品的使用有輕微影響,有的可在一定的條件下,形成漏洞并會造成財產乃至生命等巨大損失。
軟件系統在不同的開發階段會產生不同的安全缺陷。安全缺陷存在于軟件系統生命周期的各個階段。在問題定義階段,系統分析員對問題性質、問題規模和方案的考慮不周全會引入安全缺陷,這種安全缺陷在開發前不易察覺,只有到了測試階段甚至投入使用后才能顯現出來。在定義需求階段,需求定義的不完善是導致安全缺陷的最主要原因。在系統設計階段,錯誤的設計方案是安全缺陷的直接原因。在編碼實現階段,安全缺陷可能是錯誤地理解了算法導致了代碼錯誤,也可能是無意的代碼編寫上的一個錯誤等。在測試階段,測試人員可能對安全缺陷出現條件判斷錯誤,修改了一個錯誤,卻引入了更多安全缺陷。在維護階段,修改了有缺陷的代碼,卻又導致了先前正確的模塊出現錯誤等。在使用階段,用戶的使用錯誤或配置錯誤也可以觸發系統中的安全缺陷,影響系統安全。
根據漏洞和安全缺陷的定義可知,一個漏洞是由一個或多個安全缺陷造成的。因此,安全缺陷與漏洞的對應關系存在兩種情況,一種是一個缺陷對應于一個漏洞,即缺陷與漏洞一一對應。另一種情況是,多個缺陷對應于一個漏洞,即缺陷與漏洞之間是多對一的關系。
最后是安全缺陷的利用技術和手段。攻擊者對安全缺陷的利用過程與其個人的能力水平密切相關,同一個缺陷可能有不同的利用方法,產生不同的破壞效果,而且一個成功的利用過程往往需要組合多種缺陷、方法和手段。
回答所涉及的環境:聯想天逸510S、Windows 10。