本章概述#

本書旨在教授 web 開發者必備的資安知識。在深入技術細節之前,作者先帶讀者站在攻擊者的角度,了解駭客是如何運作的,以及入門攻擊有多麼容易。

Software Exploits 與 Dark Web#

  • 駭客利用軟體中的安全漏洞來攻擊網站等系統
  • 在駭客社群中,展示如何利用安全漏洞的程式碼被稱為 exploit
  • White hat hackers(白帽駭客):以發現漏洞為樂,會在公開前通知軟體廠商與網站擁有者,通常能獲得漏洞獎金(bug bounty)
  • Black hat hackers(黑帽駭客):囤積 exploit 以最大化利用時間窗口,甚至在黑市上以加密貨幣出售 exploit code

Zero-Day Exploits#

  • Zero-day exploit 是指被公開不到一天、或根本尚未公開的漏洞利用程式
  • 即使軟體廠商釋出修補程式(patch),許多系統仍會長時間處於未修補狀態
  • 現今的 exploit 會迅速被武器化,並整合為駭客社群廣泛使用的命令列工具

Dark Web 黑市#

  • Dark web 上存在販售被盜信用卡資料、被入侵帳號、zero-day exploit 的黑市
  • 這些網站透過特殊的網路節點匿名化使用者的 IP 位址
  • 駭客工具不僅在 dark web 上可取得,許多甚至只需一次 Google 搜尋就能找到

Figure 1-1: Dark web 上的信用卡黑市交易網站

如何攻擊一個網站#

作者展示了入門駭客攻擊的簡單步驟:

  1. 下載 Kali Linux — 一個專為駭客設計的 Linux 發行版,預裝超過 600 種安全與駭客工具,由 Offensive Security 團隊維護,完全免費
  2. 安裝虛擬機器 — 使用 Oracle VirtualBox 等 virtual container 在現有系統上執行 Kali Linux,無需覆蓋原有作業系統
  3. 安裝 Kali Linux 到虛擬機器中
  4. 啟動 Metasploit — 最受歡迎的命令列漏洞掃描與測試工具

Figure 1-2: Metasploit 框架的 ASCII 藝術啟動畫面

  1. 執行 wmap 工具 — 對目標網站掃描 URL 列表,測試 web server 是否存在安全漏洞

Figure 1-3: 使用 wmap 掃描網站漏洞

  1. 選擇一個 exploit — 從 Metasploit 資料庫中挑選合適的 exploit 來利用漏洞

請務必只在自己擁有的網站上執行這些工具。未經授權對他人網站進行攻擊可能構成犯罪行為。

本章重點#

  • 駭客攻擊的門檻極低:Metasploit 和 Kali Linux 等工具無需任何特殊技能即可使用,幾分鐘內就能設定完成,卻能極有效地識別和利用漏洞
  • Web 開發者面臨的現實:我們建立的網站對任何有網路連線的人開放,駭客工具同樣對任何人開放
  • 本書的目標是讓開發者擁有與駭客同等的安全知識,在網站遭受攻擊時能夠充分防禦

理解攻擊者的思維與工具,是建立有效防禦的第一步。本書接下來將從網際網路協定的基礎構件開始,逐步建立完整的安全知識體系。