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