大家好,本人是個菜鳥分析師,不論是技術學識都仍待加強,去年在被一群好心人士趕鴨子上架騙來參加iT邦幫忙鐵人賽,很感謝各位評審的抬愛,有幸得到優選,今年再度來參賽,希望這次也能藉由30天的時間跟大家一起學習一起成長。
這次要介紹的主題是漏洞 (Vulnerability)以及有關漏洞的相關介紹,首先讓我們先定義一下,漏洞是什麼意思呢?
首先,各位要先知道一件事,那就是「漏洞」這個詞並沒有一個放諸四海一致的標準定義,看看以下幾個不同單位對於漏洞這個詞的描述吧。
美國國家標準暨技術研究院 (National Institute of Standards and Technology, NIST)在NISTIR 8138草案中提到:
漏洞是一個存在於產品或是裝置的運算邏輯弱點,且可能被導致威脅的分子利用。
A Vulnerability is any weakness in the computational logic found in products or devices that could be exploited by a threat source.
美國電腦緊急應變小組 (United States Computer Emergency Readiness Team, US-CERT):
通報軟體漏洞定義為一個可以讓攻擊者違反明定或潛在安全政策的缺陷,藉此達到一些影響或是結果。更明確的說,漏洞可以讓入侵者藉由在系統上正常操作,進而獲得更高訪問權限或進行干擾。不安全的設定、設計選擇或不斷變化的環境條件都可能導致漏洞產生。
Report software vulnerabilities defined as defects that allow an attacker to violate an explicit (or implicit) security policy to achieve some impact (or consequence). In particular, defects that allow intruders to gain increased levels of access or interfere with the normal operation of systems are vulnerabilities. Insecure configurations, design choices, and changing environmental conditions can also cause vulnerabilities.
國際電腦稽核協會 (Information Systems Audit and Control Association, ISACA):
一個由設計、實作、操作或內部控制導致的弱點,可能導致系統被暴露在攻擊事件中。
A weakness in the design, implementation, operation or internal control of a process that could expose the system to adverse threats from threat events.
開放網路軟體安全計畫 (Open Web Application Security Project, OWASP):
漏洞是一個應用程式中的洞或弱點,可能是一個設計缺陷或是一個實作上的錯誤,且允許攻擊者能夠對於應用程式的利害關係人造成傷害,利害關係人包含應用程式所有者、應用程式使用者,及其他所有仰賴此應用程式的實體。
A vulnerability is a hole or a weakness in the application, which can be a design flaw or an implementation bug, that allows an attacker to cause harm to the stakeholders of an application. Stakeholders include the application owner, application users, and other entities that rely on the application.
微軟安全回應中心 (Microsoft Security Response Center, MSRC):
一個安全漏洞是一個產品中的弱點,允許攻擊者傷害產品的完整性、可用性或機密性。
A security vulnerability is a weakness in a product that could allow an attacker to compromise the integrity, availability, or confidentiality of that product.
通用漏洞揭露計畫 (Common Vulnerabilities and Exposures, CVE®):
一般來說,漏洞之定義為一存在於軟硬體元件運算邏輯(例如程式碼)中的弱點,當弱點被利用時,會導致資料的機密性、完整性或可用性產生負面影響。
In general, a vulnerability is defined as a weakness in the computational logic (e.g., code) found in software and hardware components that, when exploited, results in a negative impact to confidentiality, integrity, OR availability.
台灣電腦網路危機處理暨協調中心 (Taiwan Computer Emergency Response Team / Coordination Center, TWCERT/CC):
漏洞 (Vulnerability)之定義為發生於軟體、韌體及微程式中的 Bug,且若此
Bug 遭利用,會導致資料的機密性、完整性或可用性產生負面影響。因此,若為
硬體零件設計不良導致產品外殼損毀等,則不可稱之為漏洞。
以上列舉7個單位,就有7種對漏洞這個名詞的描述,其中像是OWASP和MSRC其實也都在說明內指出,漏洞的定義是很模糊的,需要細分為不同面相來描述,才能較完整的表達這個詞的定義,而對CVE來說,甚至要通過8個判斷標準才能被認定是一個漏洞。為了避免讀者被我搞得頭昏眼花,這次由於會偏向以CVE漏洞來做介紹,所以會以CVE的定義為主,不過在需要的時候還是會用到其他組織的定義。
接下來的30天會陸續介紹現在坊間有哪些處理漏洞的組織、描述漏洞的資訊、 漏洞種類、知名漏洞介紹及POC及發現漏洞了怎麼處理等,就請大家拭目以待吧,有任何問題也都歡迎提出討論喔!
參考資料:
[1] https://csrc.nist.gov/publications/detail/nistir/8138/draft
[2] https://www.us-cert.gov/report
[3] https://www.isaca.org/Pages/Glossary.aspx?tid=1975&char=V
[4] https://www.owasp.org/index.php/Category:Vulnerability
[5] https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)
[6] https://cve.mitre.org/cve/cna/rules.html
[7] https://twcert.org.tw/subpages/ServeThePublic/public_document_details.aspx?id=65
發現漏洞了怎麼正確處理很重要,期待!
一些粗淺經驗分享,如果有看到疏漏處請不吝指教~
很多地方我也是新手,互相學習指教~