簡介
許多安全漏洞是程式錯誤導致的,此時可叫做程式安全錯誤(Security bug),但並不是所有的安全隱患都是程式安全錯誤導致的。
常見漏洞
零日攻擊
在計算機領域中, 零日漏洞或 零時差漏洞(英語:Zero-day exploit、 zero-day、0-day)通常是指還沒有補丁的安全漏洞,而 零日攻擊或 零時差攻擊(英語:Zero-day attack)則是指利用這種漏洞進行的攻擊。提供該漏洞細節或者利用程式的人通常是該漏洞的發現者。零日漏洞的利用程式對網路安全具有巨大威脅,因此零日漏洞不但是黑客的最愛,掌握多少零日漏洞也成為評價黑客技術水平的一個重要參數。
零日漏洞及其利用代碼不僅對犯罪黑客而言,具有極高的利用價值,一些國家間諜和網軍部隊,例如美國國家安全局和美國網戰司令部也非常重視這些信息。
SQL注入攻擊
SQL注入攻擊(英語:SQL injection),簡稱 SQL攻擊或 注入攻擊,是發生於應用程式之資料庫層的安全漏洞。簡而言之,是在輸入的字元串之中注入SQL指令,在設計不良的程式當中忽略了檢查,那么這些注入進去的指令就會被資料庫伺服器誤認為是正常的SQL指令而運行,因此遭到破壞或是入侵。
在應用程式中若有下列狀況,則可能應用程式正暴露在SQL Injection的高風險情況下:
在應用程式中使用字元串聯結方式組合SQL指令。
在應用程式連結資料庫時使用許可權過大的賬戶(例如很多開發人員都喜歡用最高許可權的系統管理員賬戶(如常見的root,sa等)連線資料庫)。
在資料庫中開放了不必要但權力過大的功能(例如在Microsoft SQL Server資料庫中的xp_cmdshell延伸預存程式或是OLE Automation預存程式等)
太過於信任用戶所輸入的數據,未限制輸入的字元數,以及未對用戶輸入的數據做潛在指令的檢查。
1.在應用程式中使用字元串聯結方式組合SQL指令。
2.在應用程式連結資料庫時使用許可權過大的賬戶(例如很多開發人員都喜歡用最高許可權的系統管理員賬戶(如常見的root,sa等)連線資料庫)。
3.在資料庫中開放了不必要但權力過大的功能(例如在Microsoft SQL Server資料庫中的xp_cmdshell延伸預存程式或是OLE Automation預存程式等)
4.太過於信任用戶所輸入的數據,未限制輸入的字元數,以及未對用戶輸入的數據做潛在指令的檢查。
緩衝區溢出
緩衝區溢出(buffer overflow),是針對程式設計缺陷,向程式輸入緩衝區寫入使之溢出的內容(通常是超過緩衝區能保存的最大數據量的數據),從而破壞程式運行、趁著中斷之際並獲取程式乃至系統的控制權。
緩衝區溢出原指當某個數據超過了處理程式限制的範圍時,程式出現的異常操作。造成此現象的原因有:
•存在缺陷的程式設計。
•尤其是C語言,不像其他一些高級語言會自動進行數組或者指針的邊界檢查,增加溢出風險。
•C語言中的C標準庫還具有一些非常危險的操作函式,使用不當也為溢出創造條件。
因黑客在Unix的核心發現通過緩衝區溢出可以獲得系統的最高等級許可權,而成為攻擊手段之一。也有人發現相同的問題也會出現在Windows作業系統上,以致其成為黑客最為常用的攻擊手段,蠕蟲病毒利用作業系統高危漏洞進行的破壞與大規模傳播均是利用此技術。比較知名的蠕蟲病毒衝擊波蠕蟲,就基於Windows作業系統的緩衝區溢出漏洞。
跨站腳本
跨站腳本(英語:Cross-site scripting,通常簡稱為:XSS)是一種網站應用程式的安全漏洞攻擊,是代碼注入的一種。它允許惡意用戶將代碼注入到網頁上,其他用戶在觀看網頁時就會受到影響。這類攻擊通常包含了HTML以及用戶端腳本語言。
XSS攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使用戶載入並執行攻擊者惡意製造的網頁程式。這些惡意網頁程式通常是JavaScript,但實際上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻擊成功後,攻擊者可能得到更高的許可權(如執行一些操作)、私密網頁內容、會話和cookie等各種內容。
ARP欺騙
ARP欺騙(英語: ARP spoofing),又稱 ARP毒化( ARP poisoning,網路上多譯為 ARP病毒)或 ARP攻擊,是針對乙太網地址解析協定(ARP)的一種攻擊技術。此種攻擊可讓攻擊者獲取區域網路上的數據包甚至可篡改數據包,且可讓網路上特定電腦或所有電腦無法正常連線。最早探討ARP欺騙的文章是由Yuri Volobuev所寫的《ARP與ICMP轉向遊戲》( ARP and ICMP redirection games)。