電腦保安嘅大綱

**[[電腦保安]]**（）係資訊保安領域嘅一個分支。佢哋研究點樣保護電腦軟件、系統同埋網絡，防止惡意人士偷走或者破壞數據，同時亦要防止呢啲嘢提供嘅服務受到干擾。

以下呢篇大綱，旨在將電腦保安嗰啲重要基本概念列晒出嚟。

## 基本定位

有關**電腦保安**要點界定，二〇二二年嘅不列顛百科全書係噉樣描述 **cybersecurity** 一詞嘅：

電腦本質上就係能夠大量噉儲起同快速處理數據嘅系統，好多時都收埋咗好多重要資訊－例如係個人嘅儲蓄戶口嘅密碼，或者企業內部有關研發緊嗰件產品嘅詳情嘅資料呀噉。有好多人都有誘因想傷害或者偷呢啲資訊，例如黑客可能會想偷人嘅儲蓄戶口密碼，又或者有啲企業可能會想破壞競爭對手嘅研發數據，令自己喺競爭當中得到優勢。電腦保安呢個領域嘅目標，正正就係想深究點樣保護電腦系統，確保啲系統入面嘅資訊，淨係得有授權嘅人先至可以睇或者郁。

## 電腦網絡

*電腦網絡：指緊由多部電腦或者裝置互相連埋一齊形成嘅系統，透過有線或者無線嘅方式交換數據同資源；網絡入便嘅電腦可以互相傳送資訊、分享快勞，甚至一齊連接去互聯網。有關呢種系統可以點樣用抽象化嘅模型描述，可以睇睇網絡理論方面嘅內容。
*互聯網（）：全球最大規模嘅電腦網絡，由好多子網絡組成；互聯網唔單止將世界各地嘅電腦連埋一齊，仲有標準化嘅傳輸協議，令到唔同國家同地區嘅電腦可以互通，提供傳送數據、電郵、網上遊戲等嘅功能。
*萬維網（WWW）：互聯網會用到嘅一套資訊系統軟件，俾人通過互聯網嚟傳送文件或者第啲資源，當中每一件資源都有會掕住個 URL（例如 `https://example.com/` 噉）嚟識別佢。
*喺一個網絡入便，每部電腦都要有返個號碼，用嚟識別佢：
**IP 位址：數字標籤一種，每部連接住互聯網嘅裝置都會分配到一個 IP 位址，噉其他電腦就可以例如用某部電腦個 IP 位址，話俾個系統知想傳送電郵俾佢；喺 IPv4 之中，每個 IP 位址都由四個八位元嘅冧把組成，好似下圖噉，有 232 咁多個可能位址；不過喺廿一世紀初，隨住全世界嘅電腦數量係噉增長， IPv4 嘅 IP 位址開始唔夠用，而 IPv6 就應運而生。
*:
**MAC 位址：硬件層面嘅識別碼，工廠生產電腦嗰陣已經分配咗俾部電腦，MAC 位址會有 12 個十六進制嘅冧把，分六組，每組兩個，例如 `a4 : c3 : f0 : 85 : ac : 2d` 噉。
**地址解析協定（ARP）：一系列嘅技術，容許唔同裝置喺個網絡之中俾其他裝置識別佢。
**DHCP：一套傳輸協議，專門用嚟自動化噉分配 IP 位址俾唔同嘅裝置；某裝置首次連接到某個網絡嗰陣，若果佢仲未有分配到個 IP 位址，佢會傳一個 `discover` 嘅請求，睇吓網絡有冇 DHCP 伺服器，有嘅話個伺服器就會回覆，傳送 `offer` 提供一個未有人用嘅 IP 位址，問裝置想唔想要呢個位址。
*Ping：一種網絡工具，用嚟測試裝置同裝置間嘅通訊情況；裝置會向目標 IP 位址發送一嚿細小嘅數據做測試，再等對方回應；如果有回覆，就代表兩部機之間連咗線，而且部機仲會可以量度埋延遲，即係訊號來回要幾耐，嚟評估連線係咪順利。
*區域網絡（LAN）：係覆蓋一個特定區域嘅電腦網絡，當中**特定區域**可以係某寫字樓或者樓層呀噉。相對於廣域網絡。
*子網路（）：講緊將 IP 網絡根據某啲規則切開做若干橛；呢種做法家用嘅網絡好少可會用，但係較大嘅網絡就成日會用到，譬如係某間公司內部嘅網絡噉，噉係因為呢啲網絡會有大量互相連接嘅裝置。
*網絡拓撲：係指電腦網絡入面，唔同節點之間嘅實際連接方式同結構，當中每個節點係一件裝置（電腦、伺服器、路由器）等，簡單講網絡拓撲即係個網絡嘅「形狀」；網絡拓撲可以分好多種，而且拓撲嘅款會影響資訊傳遞嘅效率。下圖係唔同拓樸嘅網絡圖解—
*:
*OSI 模型：一套標準化嘅網絡通訊架構，由國際標準化組織（ISO）喺一九八零年代提出。呢個模型將電腦網絡通訊劃分為七層，每一層都各司其職，由底層嘅硬件傳輸，到上層嘅應用服務，逐層提供功能，並透過清晰定義嘅介面協調合作。
*數據封包（）：電腦網絡入便數據傳送嘅基本單位；假想依家要傳送數據，個網絡通常唔會一次過成大嚿噉送，而係將嚿數據斬開做好多截，每截謂之一個封包；每個封包除咗有實際要傳送嘅數據，仲包括控制同位址資訊，例如係來源嘅 IP、目的地嘅 IP、核對和資訊等等。傳輸控制協議（TCP）同用家數據報協議（UDP）都係重要嘅協議，圍繞封包嘅處理，規範數據要點樣由一部電腦傳到另一部電腦嗰度。
**傳輸控制協議（TCP）：特色係可靠；用呢套協議傳數據嗰陣，會確保每個封包都正確送達；若果有封包喺途中唔見咗 TCP 會自動要求對方再傳過；同時封包到達後會按住正確次序重組返成完整數據。由於要做咁多檢查同確認，TCP 速度會慢啲；TCP 常見於電郵同檔案嘅傳輸，因為呢啲場合往往要求高度準確。
**用家數據報協議（UDP）：特色在於快；用呢套協議傳數據嗰陣，唔洗逐個封包檢查佢有冇到，亦唔洗理封包嘅次序，只係要求有咁快得咁快將封包送出；呢種方式快，但好多時數據會失真；UDP 常見於網上遊戲同串流媒體等嘅應用，因為呢啲應用要求快速傳送，而且就算數據輕微失真（想像串流緊嘅影片畫面其中一忽冇咗）都唔會造成太大影響。
*通訊埠（）同埠轉發：通訊埠係電腦用嚟分辨唔同網絡服務（傳電郵、傳快勞等）嘅編號，每當一部電腦要使用某個網絡嗰陣，佢會提供 IP 位址，掕埋個通訊埠冧把，前者講明佢要同邊部機通訊，後者講明佢想用咩服務。喺 cmd.exe 之中，用家可以用 netstat 呢個指令，叫電腦顯示出自己依家連接緊邊啲服務，顯示形式正正就係 IP 位址加埋埠冧把；埠轉發呢種功能，就係將外面嚟嘅網絡連線自動轉去內部網絡嘅指定電腦。





*防火牆（）：一種基本嘅網絡安全裝置，一埲防火牆會監察住佢所管嘅網絡，並且決定邊啲數據可以進入邊啲可以離開，而電腦保安工作者可以調較防火牆，從而控制有啲咩數據可以出入自己嘅網絡；做呢類決定嗰陣，成日會留意數據流由邊度嚟同埋去緊邊（係咪連住一啲可疑嘅 IP 位址？）、數據流用緊咩埠同埋用緊咩通訊協議... 等等。
*虛擬私人網路（）：一種透過公用網絡，例如係互聯網，嚟建立加密連線嘅技術；VPN 令使用者得以好似身處喺另一個地方噉上網，從而唔俾人知自己喺邊；某啲國家地區，例如中國大陸，係禁止使用 VPN 嘅。
*域名系統（）：互聯網上嘅各種資源，會由域名系統同佢哋改好晒名；吓吓記 IP 位址好難記，但係好似 `jyutwai.com`（粵維.com）噉嘅網站名就易記好多。域名可以由右至左噉理解，而最左邊嘅係子域名，例如
*:`wikipedia.org` 下有 `'''en.'''wikipedia.org`
**當中 `en.` 嗰橛係指英文維基百科，取自 **En**glish 一詞。噉嘅子域名，用咗嚟標記唔同語言版本嘅維基百科。域名喺長度以至用得邊啲符號等方面都有限制。
*DNS 紀錄：域名系統入便，用嚟儲存網絡資源資料嘅一組資料紀錄；每個 DNS 紀錄都會包含某個網域同埋相應嘅技術資料，譬如係其伺服器嘅 IP 位址、電郵伺服器位置同埋其他網絡設定。喺現實應用上，域名會由一啲特定嘅伺服器記住，惡意黑客時會干擾呢啲伺服器，篡改 DNS 紀錄（DNS 欺騙），例如引導用家去錯誤嘅網站，同時個網站又設計到以假亂真，呃到用家入密碼。





*nslookup：喺命令行介面之中，可以用呢句嘢嚟叫電腦搵出 DNS 紀錄中嘅資訊。
*負載平衡：負載平衡器負責將入緊嚟嘅網絡流量，分配俾唔同伺服器，達致高效率；佢哋係硬件又得，軟件都得。
*內容傳遞網路（CDN）：容許人將快勞 host 喺世界唔同地方嘅伺服器，而且用家要求某個快勞嗰陣，個 CDN 會將佢個要求傳去離用家最近嗰個伺服器度。

### HTTP

HTTP，又叫超文件傳輸協定，係互聯網上最核心嘅通訊協定之一，用嚟管理瀏覽器同伺服器之間點樣交換數據。當用家喺瀏覽器輸入網址或者撳連結嗰時，瀏覽器就會向伺服器發出 HTTP **請求**（`request`）而伺服器跟住再回應提供相關嘅資料，例如網頁內容、圖片、狀態碼等等。
*URL，又叫劃一資源定位符：互聯網上用嚟指示某份資源「喺邊」嘅標準格式；簡單講，URL 就好似網上世界嘅門牌號碼，瀏覽器靠住佢先搵到用家想睇嘅網頁、圖片等；一段 URL 通常由幾個部分組成，例如用咗咩協定—好似係 HTTPS —同埋伺服器主機名—好似係 jyutjyu.com —等嘅資訊。網頁瀏覽器其中一個最重要嘅功能，就係根據用家入嘅 URL，自動向伺服器發出請求，講出想要咩資料同埋用邊種協定，順利嘅話伺服器跟住就會提供所需嘅資料。
*狀態碼：HTTP 伺服器對用家提出嘅請求作出回應嗰陣會俾嘅三位數代碼，反映請求成功、請求重新導向、請求處理嗰時出咗錯、或者伺服器嗰邊出咗錯... 等嘅資訊，呢啲大類下仲有各種嘅子類型。
*頭欄位：提出請求嗰陣可以提供嘅數據，伺服器回應嗰時都可以提供頭欄位，呢啲頭欄位會提供一啲重要嘅資訊，例如係提出請求嗰方用緊邊種瀏覽器同埋邊個版本，而有咗呢樣資訊，先至可以提供恰當嘅格式，正確噉顯示資源俾用家睇。
*HTTPS：HTTP 嘅安全版本，用咗加密技術，令到傳嘅資訊更加保密。
*HTTP cookie，或者叫**曲奇**：一嚿嚿細嘅數據，用家瀏覽網站嗰陣由網站嘅伺服器創造，用家嘅瀏覽器會儲起呢啲數據，儲存喺用家嘅電腦之中；曲奇用途係攞嚟記住一啲使用該網站必要嘅資訊，可以係簽到用嘅密碼。各主要瀏覽器都有內置功能，俾用家睇佢儲起咗邊啲曲奇，以及係啲曲奇嘅內容。

### 網頁概念

網站係一系列相關嘅網頁集合埋一齊，呢啲網頁有共同嘅域名。網頁係一份份嘅電子文件，用嚟展示文本、圖像或者多媒體內容等嘅數據。
*HTML：屬於標記語言，製作網站嘅人會用呢種語言嚟編寫網頁，而呢啲語言會話俾瀏覽器知，網頁要點樣顯示。好似以下噉：
*:
```html4strict
<!DOCTYPE html>
<html>
  <head>
    <title>呢行字係呔圖</title>
  </head>
  <body>
    <div>
        <p>哈佬世界！</p>
    </div>
  </body>
</html>
```

*JavaScript：程式語言一種，可以用嚟喺網頁加入各種同用家互動嘅元素。冇咗呢啲元素，網頁就難以（例如）顯示易用嘅介面，叫用家入密碼。因此 JavaScript 等嘅工具對用家體驗嚟講至關重要。
*網頁伺服器：一系列軟硬件，儲住網站嘅資源，運作嗰陣會聽住客戶作出嘅要求，並且運用 HTTP 嚟將網頁嘅內容送俾客戶；常見嘅伺服器軟件有 Apache 同埋 Nginx 等。

### 網絡硬件
*路由器（）：一種電腦網絡硬件，主要功能係連接唔同嘅網絡（例如互聯網同某人屋企嘅網絡），會喺網絡入便轉送封包俾唔同電腦；路由器會管理封包可以經由網絡中嘅邊個通訊埠傳或者擋，會留意入緊嚟嘅封包嚟自咩 IP 地址，從而決定係咪俾佢過。
*交換器：負責喺一個特定嘅區域網絡之中連接唔同嘅機，例如連接住網絡內嘅電腦、伺服器同埋打印機呀噉。

## 作業系統

專業做電腦保安嘅人，必定要認識各種嘅作業系統。
*命令行介面：主流作業系統，例如 Linux、macOS 以至 Windows 等，嘅其中一個基礎；屬於用家介面一種，俾玩家齋靠打字同電腦溝通，透過呢種介面，用家可以做基本嘅檔案目錄操作同埋摷下某快勞之中有冇指定嘅字串；佢仲有功能，俾保安專家執行複雜嘅腳本、檢查系統日誌、實時監控網絡活動等等。

## 漏洞類型

*後門（backdoor，）：指一啲能夠直接 skip 咗部電腦系統正常保安機制嘅攻擊途徑。舉個簡單例子，軟件工程師製作軟件嗰陣，好多時都會將隻軟件設定成用家要入密碼或者用第啲方法做鑑別，確定咗佢身份，先至准佢哋用隻軟件；同時軟件工程師好多時又會特登設計一啲另類嘅方法，畀用家唔使做呢啲鑑別就用到隻軟件－用意可能係想（例如）確保技術人員能夠喺用家唔記得咗自己密碼嗰時照行隻軟件，從而幫用家 reset 密碼。不過事實表明，黑客等嘅惡意人物成日會利用噉嘅後門嚟偷取資訊。

## 攻擊類型
### 網絡攻擊

*阻斷服務攻擊（Dos）：指攻擊者嘗試搞到攻擊目標（好多時係一部伺服器）冇辦法通過互聯網向啲用家提供服務；例如攻擊者用某啲方法突然間係噉勁要求部目標伺服器做嘢，搞到部伺服器唔夠系統資源服務正常嘅用家。分散式阻斷服務攻擊（DDos）係 Dos 嘅一種，指個攻擊者利用俾佢攻陷咗嘅一柞電腦嚟做「用家」，控制呢柞電腦一齊勁要求個目標伺服器做嘢（好似下圖嘅抽象圖解噉）。

### 惡意程式

惡意程式：有惡意嘅軟件，即係指隻軟件設計出嚟用意係想對電腦、伺服器、用家或者電腦網絡造成傷害。
*病毒：一種常見嘅惡意程式，一旦一隻電腦病毒開始行，佢就會郁手篡改第啲電腦程式，對呢啲程式（host）做代碼注入（指加插一啲本來唔屬於嗰個程式嘅碼），從而自我複製，好多時仲會控制 host 所屬嘅電腦，要呢啲電腦幫手散佈隻病毒（例如教部電腦將隻病毒附喺電郵度再傳去俾第啲電腦）。
*廣告軟件：泛指一啲用嚟勁喺用家部機度顯示廣告嘅軟件；呢啲軟件可以透過好多途徑進入用家嘅電腦，例如係「匿喺」一啲正常嘅程式裏面，一齊俾用家下載落部機度；一旦一隻廣告軟件裝咗落部機度，就會開始用各種方法向用家顯示廣告，例如係上上吓網無啦啦彈個廣告出嚟，或者係擅自改咗用家網頁瀏覽器嘅頭版噉；比較有攻擊性嘅廣告軟件甚至會（例如）靜靜雞查用家「上邊啲網站」嘅資訊，再將呢啲資訊傳返去開發隻軟件嘅人度，用嚟做「已知呢位用家對呢啲呢啲嘢有興趣，要彈啲咩廣告俾呢位用家睇？」噉嘅決策。

*鍵盤側錄（keylogging）：係指一部電腦（通常暗中）記住喺某段時間內用家撳咗鍵盤邊啲掣，可以係一嚿硬件；鍵盤側錄程式一般都唔犯法，成日俾 IT 工作者攞嚟查返啲用家做過啲乜，不過亦都有啲人會用鍵盤側錄嚟做「偷密碼」等嘅犯法嘢。

### 拉雜攻擊類型
*夾硬執行代碼（ACE）係指「揀定一部機，揀定一柞命令或者電腦碼，再夾硬要部機執行嗰柞命令或者碼」。有唔少軟件都會有漏洞，令到用家有可能揀一段特定嘅碼，再做 ACE 嘅過程，如果黑客用 ACE 嚟叫部電腦（例如）將部機嘅檔案目錄顯示嗮畀佢睇，等佢有得睇啲佢唔應該睇到嘅檔案；又或者個黑客叫部機行剷走某啲特定嘅數據（想像個黑客係幫佢間企業破壞競爭對手嘅研發數據），甚至將部機入面嘅某啲數據（例如用家嘅銀行密碼）顯示出嚟睇... 呀噉。

## 防守方法

*存取控制：泛指用某啲方法嚟限住「邊個有權用呢件呢件資源或者睇呢件呢件資訊」。
*防毒軟件：泛指用嚟幫電腦探測、防範同清除惡意程式嘅軟件；一開始嗰陣，防毒軟件淨係攞嚟防電腦病毒嘅，不過到咗廿一世紀初，防毒軟件曉應付嘅唔淨只係電腦病毒，仲會有功能幫用家防範勒索軟件、特洛伊木馬程序、濫發電子訊息同釣魚等嘅威脅。
*虛擬私人網路（VPN）：軟件一種，主要功能係將私人網絡「擴張」到去公用網絡（例如互聯網）度，等用家有得喺唔使俾個公用網絡睇到自己 IP 位址（好多時係透過加密嘅技術）嘅情況下同個網絡收發資訊－達致「保護用家個人資料」噉嘅效果；喺廿一世紀初，VPN 嘅使用幾有爭議性，例如唔少人都質疑 VPN 係咪信得過，會唔會乘機偷用家嘅個資。
### 密碼學

密碼學講到用加密手段嚟確保資訊得以安全噉傳遞開去。

*雜湊函數：函數一種；雜湊函數能夠攞任何長度嘅數據（input），再將段數據轉化成長度固定嘅位陣列（output；下圖嘅 `digest`），例如攞一大拃人嘅英文名（可以有幾多個字母都得），再將啲名冚唪唥轉換做兩個位嘅數－`John Smith` → `02`、`Lisa Smith` → `03`、`Sam Doe` → `02`... 呀噉。
*密碼雜湊函數（睇埋 checksum 嘅概念）：密碼學上成日用嘅一類演算法；密碼雜湊函數會將任何長度嘅數據（input）轉化成長度固定嘅位陣列（output；下圖嘅 `digest`），而且有以下嘅特徵：
**冇隨機性喺入面；
**要「由出嗰啲位陣列嗰度，計返串輸入數據出嚟」，係極之困難甚至冇可能嘅；
**是但搵兩串唔同嘅輸入數據，佢哋出嘅位陣列都會唔一樣；
**串輸入數據變咗少少，出嘅位陣列都會唔同嗮樣。
*:
*區塊鏈（blockchain）：一種分散式嘅數據庫；區塊鏈會用好多部彼此之間有網絡連住、但位置上可以相距好遠嘅電腦，喺區塊鏈當中，數據會斬開做一嚿嚿**區塊**（block），每嚿區塊都會儲若干嘅數據，儲滿就封（唔俾人再改）同埋連去打前嗰啲區塊度（用 <code>prev_hash</code>），而且每嚿區塊都掕住咗個時間標記（好似下圖噉）。
**區塊鏈最出名嘅用途係用嚟儲住加密電子貨幣啲交易紀錄：區塊鏈正路會將網絡入面唔同電腦嘅紀錄做較對，如果有其中一部機啲數據同其餘嗰啲機唔夾，噉就知道嗰部機啲數據有問題，而噉亦都表示，如果有黑客想偷錢（必然會涉及篡改紀錄）就實要改個網絡入面 51% 嘅電腦儲咗嘅數據－呢樣係一樣極之困難嘅工作，而且因為一條區塊鏈每嚿區塊都帶有有關打前啲區塊嘅資訊（用咗密碼雜湊函數），令到防守方更加容易留意到有人對啲紀錄做咗手腳。
**:
*安全外殼協定：一套密碼學傳輸協議，用嚟喺唔安全嘅網絡之中安全噉操作網絡服務。

## 睇埋
*電腦科學詞彙表
*互聯網嘅大綱

## 註釋

## 引咗

## 拎
*Cybersecurity，香港大學有電腦保安方面嘅課程。
*Tryhackme.com，電腦保安教學網站；佢個名意思係**試吓 hack 我吖**噉解。