To be completed!
此篇為個人學習筆記
課程:Assets, Threats, and Vulnerabilities-Google @ Coursera
主題
了解安全控制措施的重要性,並培養威脅行為者的思維模式,以防護組織資產免受各類威脅、風險與漏洞的侵害。
# 資產安全介紹
# 資產簡介
- 風險(Risk):可能影響資產機密性、完整性或可用性的因素。
- 威脅(Threat):可能對資產造成負面影響的事件或情況。
- 弱點(Vulnerability):可被威脅利用的系統弱點。
資安風險
常用以下公式表示:風險 = 發生機率 × 衝擊程度
舉例:通勤途中爆胎會增加遲到風險,影響可能嚴重如丟掉工作。企業處理資安風險亦採相似思維。
風險評估有助於:
- 預防高成本事件
- 發現系統與流程的改善空間
- 辨識可接受的風險
- 聚焦關鍵資產的保護
資安人員應專注於降低風險發生的機率,針對促成問題的因素進行控管。
風險因素
資訊安全中的兩大風險因素為:
- 威脅
- 弱點
資產風險主要取決於威脅是否能利用弱點。
例:開車上班遲到的風險中,釘子刺破輪胎是威脅,因為輪胎對尖銳物體有弱點。資安規劃中,可透過選擇乾淨道路來降低風險發生的機率。
威脅類別
威脅是指可能對資產造成損害的情境或事件,分為:
- 蓄意威脅:如駭客攻擊設定錯誤的應用程式以存取資料。
- 非蓄意威脅:如員工無意中讓陌生人進入受限區域。
弱點類別
弱點為可被威脅利用的漏洞,分為:
- 技術性弱點:如錯誤設定的軟體使未授權者存取資料。
- 人為性弱點:如員工遺失門禁卡等疏失行為。
資產管理
- 追蹤資產及其風險的流程,核心在於:只有掌握資產,才能保護資產。
- 關鍵步驟包含識別、追蹤與分類資產。
資產分類與保護
為保護資產並維持營運穩定,企業須先充分掌握其資產。
常見資產類型包括:
- 數位資產:客戶資料、財務記錄
- 資訊系統:網路、軟體等處理資料的系統
- 實體資產:建築、設備、物資
- 無形資產:品牌聲譽、智慧財產權
所有資產都應被分類與盤點。資產分類是依據其敏感性與重要性進行標示,通常需確認:
- 擁有什麼
- 位於何處
- 誰是擁有者
- 對組織有多重要
這有助於組織釐清每項資產的價值與保護需求。
常見的資產分類
資產分類有助於風險管理、資源配置、成本控制與法規遵循。
常見的分類架構:
- 限制級(Restricted):極度敏感,僅限知情者存取
- 機密級(Confidential):洩漏可能造成重大損害
- 內部專用(Internal-only):限員工與合作夥伴使用
- 公開級(Public):公開無風險
分類依資產特性而定,其中資產擁有者常是最難判定的項目。
有效的資產管理從建立資產清單 (asset inventory) 開始,接著依資產的重要性與風險敏感度進行分類。
資料狀態(Data State)
資料可分為三種狀態,各需不同防護措施:
- 靜態資料(At Rest):儲存中的資料,例如硬碟或資料庫。→ 措施:加密、存取控制、備份。
- 傳輸中資料(In Transit):資料在網路中傳送。→ 措施:TLS、VPN、安全協定。
- 使用中資料(In Use):正在處理的資料,例如記憶體中的資料。→ 措施:記憶體保護、流程隔離、零信任控管。
# 數位和實體資產
企業近年將數據遷移雲端,讓企業快速擴展與調整,並降低成本。但也增加了資訊安全的複雜度,增加資產風險。
雲端服務主要類別:
- 軟體即服務(SaaS): 透過瀏覽器存取前端應用,後端由服務商管理。例:Gmail、Slack、Zoom。
- 平台即服務(PaaS): 線上開發工具,供開發者建立與部署應用。服務商維護後端硬體與軟體。例:Google App Engine、Heroku、VMware Cloud Foundry。
- 基礎設施即服務(IaaS): 遠端存取後端資源如伺服器、儲存與網路,按需付費,具成本效益。
主要供應商包括 Google Cloud Platform 和 Microsoft Azure。
雲端安全
傳統 IT 基礎架構由內部團隊保護,雲端環境中責任劃分不明確。
共責模型(Shared Responsibility Model)說明責任分配:
- 客戶負責身分存取管理、資源設定與資料處理
- 服務商負責伺服器等共用硬體安全
雲端安全挑戰
雲端服務商致力防止漏洞與保護敏感資訊,但因資料雲端存取,產生多項挑戰:
- 錯誤設定為最大風險,客戶常用預設配置無法符合安全需求,易導致漏洞。
- 存取監控因客戶與服務層級不同而複雜。
- 法規遵循(HIPAA、PCI DSS、GDPR)具挑戰性。
# 風險和資產安全
組織面臨大量風險,難以從零開始制定完整資安計畫,因此安全框架成為實用工具。NIST 資安框架(CSF) 的優勢在於其高度彈性,可適用於任何產業。
NIST 於 2014 年發布 CSF,初為保護美國關鍵基礎設施所設計。作為中立的科學機構,NIST 後續擴大框架應用範圍,使其同時適用於公私部門,特別是資源有限的小型企業。
CSF 由三大組件構成:核心(Core)、等級(Tiers)、設定檔(Profiles)。
核心
六大功能協助組織達成資安目標:
- Identify(識別)
- Protect(保護)
- Detect(偵測)
- Respond(回應)
- Recover(復原)
- Govern(治理)※2024 年新增,用以強調治理與決策的重要性。
等級
評估資安成熟度,分為 Tier 1 至 Tier 4。
數字越高,代表控制措施越完整與成熟。
設定檔
由產業專家制定的模板,依據組織風險量身打造,用來建立資安基準或與業界標準比對。
CSF 的實施
法規遵循是必須遵守的,用以衡量組織保護資產的效果。
NIST CSF 是自願性框架,協助組織達成資安法規的合規要求。
實施挑戰
- 對已有資安計畫的企業:不易判斷 CSF 的補強作用。
- 對初期規劃者:缺乏起始方向。
實施建議
- 建立現況設定檔,明確列出業務需求
- 執行風險評估,找出已符合的項目
- 分析並排序資安缺口與風險
- 擬定具體行動計畫以達成目標
# 保護組織資產
# 資訊保護
最小權限原則(PoLP, Principle of Least Privilege)
- 資安控制原則,指使用者僅獲授完成任務所需的最少權限。
- 支撐 CIA 三要素,可有效降低風險。
- 常見應用包括帳號權限控管,並應定期進行稽核。
- 實施前應先明確定義使用者角色與權限。
- 將特定資源綁定特定使用者並限制操作範圍,有效降低攻擊風險。
- 與「職責分離」原則相關,用於防止單一人員掌控關鍵業務流程。
實施最小權限原則(PoLP)可:
- 限制對敏感資訊的存取
- 減少資料誤刪、竄改或遺失
- 強化系統監控與管理
存取權限與授權的判定
實施最小權限原則前,應先釐清兩點:
- 誰是使用者?
- 他們需要多少資源存取權限?
使用者可包含人員、設備與應用程式,每位使用者應有獨立帳號,由目錄服務統一管理。
常見帳號類型
- 訪客帳號:外部人員使用(如客戶、合作夥伴)
- 使用者帳號:依員工職務分配權限
- 服務帳號:供軟體或服務使用
- 特權帳號:具管理或高階操作權限
應為各類帳號設定權限基準,並隨任務變化即時調整。
例如,客服應只在服務時能存取客戶資料。
密碼強度是落實最小權限的重要一環,弱密碼仍可能導致資安風險。
帳號權限稽核
建立帳號與分配權限只是起點,定期稽核才是維護系統安全的關鍵。
常見稽核類型
- 使用紀錄稽核:檢查帳號使用情況
- 檢查帳號使用哪些資源、進行哪些操作
- 發現可移除的閒置權限
- 權限稽核:確認權限是否過高或不當
- 防止權限蔓延(Privilege Creep)
- 確保權限符合職務需求
- 帳號變更稽核:追蹤新增、刪除或權限調整
- 稽核帳號新增、刪除、密碼變更等記錄
- 偵測未授權異動與可疑行為
多數目錄服務可設定異常行為通知功能
資料生命週期(Data Lifecycle)
- 資料在靜態、傳輸中或使用中皆可能遭受威脅,應限制存取與授權來保障其安全。
- 資安團隊會依據資料生命週期制定政策與技術措施,以維護 CIA(機密性、完整性、可用性)。
生命週期五階段:
- 收集(Collect):資料被產生或取得
- 儲存(Store):儲存在系統或雲端
- 使用(Use):被讀取、分析、處理
- 封存(Archive):長期保存,符合法規或業務需求
- 銷毀(Destroy):資料不再需要時安全刪除
每階段皆需保證資料可存取且可復原,以防突發事件。
資料治理(Data Governance)
企業每日處理大量資料,需以結構化流程來確保資訊的私密性與安全性。
資料治理是定義如何管理資料的政策與流程,涵蓋:
- 保密性
- 正確性
- 可用性
- 安全性(涵蓋整個資料生命週期)
主要角色分工
- 資料擁有者(Data Owner):決定誰能存取與操作資料
- 資料保管者(Data Custodian):負責資料的儲存、傳輸與處理安全
- 資料管理員(Data Steward):執行與維護資料治理政策
大多數企業會制定資料治理政策,明定如何管理與保護資訊,包括:
- 明確的保護流程
- 存取權限限制
- 安全責任分配
法律保障的個人資訊
資料反映個人隱私,應由資料擁有者決定是否分享。資安人員應尊重其隱私決定。
由於資料量龐大,監管機構制定法律要求保護特定類型的資料:
- PII:可識別個人身份的資訊(如姓名、電話)
- PHI:健康資訊(美國由 HIPAA,歐盟由 GDPR 規範)
- SPII:需嚴格保護的敏感性個資(如帳號、密碼)
資安與隱私的關係
個人有權控制自己的資料,組織則有責任保護這些資料不被濫用或外洩。
資安人員將參與以下工作:
- 維護資料隱私
- 遵循相關法規
- 降低資訊風險
資訊安全與資訊隱私的差異
- 資訊隱私:指的是防止未經授權存取與散布個人資料。-> 讓個人掌控自己的資訊,以及資訊如何被分享。
- 資訊安全 (InfoSec): 則是指保護資料在所有狀態(靜態、傳輸中、使用中)下,避免被未授權使用者取得。-> 確保資訊免受潛在威脅。
實際案例說明
一間零售公司可能會蒐集顧客的年齡、性別和所在地等個人資訊以進行行銷。這些隱私資訊的用途必須在蒐集前向顧客說明,且應提供顧客選擇拒絕分享資料的權利(opt-out, 選擇排除)。
當公司取得蒐集同意後,會實施資安控管來保護這些私密資料不被未授權存取、使用或洩露,同時也尊重選擇拒絕分享資料者的隱私。
資料蒐集越多,風險越大。隱私是資安中的關鍵因素。
著名的資料隱私法規
隱私法規保護使用者資料不被未經同意地收集、使用或分享,並規範應採取的資安措施。以下是三項資安人員必須熟悉的核心法規:
GDPR (一般資料保護規則):歐盟法規,強調個資控制權與使用者同意。
- 賦予使用者對個人資料的完全控制權。涵蓋的個資包括姓名、地址、電話、財務與醫療資訊等。
- 適用對象不限於歐盟境內企業,任何處理歐盟公民或居民資料的組織皆需遵守,即使該組織位於其他國家。
PCI DSS:適用於處理信用卡資訊的企業,確保交易安全。
由金融機構制定,旨在保護信用卡與金融卡交易,防止資料外洩與詐騙。
HIPAA:美國法規,保護病患健康資訊不被濫用。
- 禁止在未經知情與同意下洩露醫療資料。
這些法規為隱私與資訊安全提供了法定依據。
資安評估與稽核
資安合規仰賴稽核與評估的持續性執行。
- 稽核:審查資安控制措施與政策,通常每年一次,由內部或外部執行。
- 評估:檢測資安防護成效,頻率較高,約每 3-6 個月,由內部執行。
# 加密方法
對稱式與非對稱式加密
- 加密(Encryption):將資料從可讀格式轉換為編碼格式的程序。
- 公開金鑰基礎設施(PKI, Public key infrastructure):一種加密架構,用於保護線上資訊交換。
- 加密演算法(Cipher):用於加密資料的演算法。
加密類型:
- 對稱式加密(Symmetric Encryption):採用單一密鑰(secret key)進行資料加解密,通訊雙方須共用此密鑰。
- 非對稱式加密(Asymmetric Encryption):使用一對公開金鑰(public key)與私密金鑰(private key)進行資料加解密。公開金鑰用於加密,私密金鑰用於解密,僅提供給授權使用者。
金鑰長度的重要性
- 加密演算法可能遭受暴力破解攻擊,因此較長金鑰具備更強的安全性。
- 較短金鑰運算較快,卻較容易被破解。在通訊效能與資訊安全之間取得平衡是一項重要考量。
經認可的加密演算法
許多網路應用同時採用對稱式與非對稱式加密,以兼顧使用體驗與資訊安全。
常見的對稱式加密演算法:
- 3DES (Triple DES, 三重資料加密演算法)
- 基於早期的 DES 演算法,屬於區塊加密。
- 使用三組 56 位元金鑰,總有效金鑰長度為 168 位元。
- 雖已逐漸被淘汰,但為相容舊系統仍有部分應用。
- AES(Advanced Encryption Standard)
- 現今最安全的對稱式加密演算法之一。
- 支援 128、192、256 位元金鑰,可抵抗暴力破解攻擊。
- 128 位元金鑰破解時間以現代電腦計算需數十億年。廣泛應用於政府、金融與企業級的資安場景中。
常見的非對稱式加密演算法:
- RSA(Rivest–Shamir–Adleman)
- 由 MIT 三位研究人員開發,是最早的非對稱加密演算法之一。
- 產生公私金鑰對,常見金鑰長度為 1,024、2,048 或 4,096 位元。
- 用於保護高度敏感的資料,如加密通訊與數位簽章。
- DSA(Digital Signature Algorithm, 數位簽章演算法)
- 由 NIST 於 1990 年代推出的非對稱加密標準。
- 支援 2,048 位元金鑰,常用於數位簽章與身分驗證。
- 通常與 RSA 搭配,用於 PKI 中。
金鑰產生(Generating Keys)
組織在實作加密保護時,須使用工具生成公私金鑰。OpenSSL 是常見的開源命令列工具,可用來產生金鑰與驗證數位憑證,廣泛應用於 PKI。
OpenSSL 並非唯一工具,市面上亦有其他可支援常見加密演算法的金鑰產生器。
Heartbleed 漏洞
- 2014 年 OpenSSL 爆出 Heartbleed 安全漏洞,會洩漏記憶體中的敏感資料。
- 多數企業現已採用更新後的安全版本,凸顯持續更新軟體以維持資安的重要性。
混淆不等於安全(Obscurity is not security)
根據 Kerckhoff’s 原則,加密系統應在演算法細節公開的前提下,仍能維持安全。
例如,AES 的實作公開透明,但仍無法被破解。
自行開發的加密演算法若依賴保密原理維持安全性,一旦公開常會迅速被破解。
加密系統不應依賴機制的隱密性來維持安全。
企業常同時使用對稱式與非對稱式加密:
- 非對稱加密:用於登入時保護帳密等小型關鍵資料。
- 對稱加密:登入後用於整體工作階段,提高效能。
使用加密技術已成法規要求,包括:
- FIPS 140-3:聯邦資訊處理標準
- GDPR:一般資料保護規則
公開金鑰認證 (Public key certificate),又稱數位憑證(digital certificate): 驗證公鑰持有人身份的文件。
實驗 1
使用平台: Qwiklab
實驗目的
- 列出目錄內容
- 閱讀檔案內容
- 使用 Linux 指令將古典加密還原為明文
- 解密檔案並還原至原始狀態
實驗步驟
1. ls , cat README.txt 確認裡面的說明。
2. cd caesar , ls -al , cat .leftShift3 , 最後解碼: cat .leftShift3 | tr "d-za-cD-ZA-C" "a-zA-Z" , cd ~
補充tr 指令可用於依字元映射表,將輸入字串中的字元轉換為對應的字元。
第一個參數為輸入字元集,第二個參數為對應的輸出字元集。
例如: tr "abcd" "pqrs" 會將輸入字串中的 a 轉為 p 、 c 轉為 r 。
在本例中: tr "d-za-cD-ZA-C" "a-zA-Z"
可將經過 ROT3(Caesar cipher 偏移 3 位)的大小寫字母還原為原始字母,達成解密目的。
3. 解密文件: openssl aes-256-cbc -pbkdf2 -a -d -in Q1.encrypted -out Q1.recovered -k ettubrute , ls , cat Q1.recovered
無需記憶此指令,以下為參數說明:openssl 指令使用 AES-256-CBC 對稱加密演算法進行解密作業:
-d:執行解密-in:指定輸入加密檔案-out:指定解密後輸出檔案-k:指定解密密碼(此處為ettubrute)-a:處理 Base64 編碼格式的輸入 / 輸出-pbkdf2:啟用 PBKDF2 金鑰衍生函數以提升密鑰安全性
雜湊函數
廣泛應用於身份驗證與不可否認性 (non-repudiation),確保資訊真實性無法被否認。
雜湊函數是一種不可逆的演算法,可將輸入資料轉換為唯一的雜湊值,用以驗證資料完整性。
起源
電腦科學早期即被使用,最初用於提升資料檢索效率。其設計目的為將任意大小的資料轉換為固定長度的摘要(digest),藉由雜湊表(hash table)這類資料結構,提升資料查找與參照的效能與安全性。
其中一個最早的雜湊函數為 MD5(Message Digest 5),由 MIT 的 Ronald Rivest 教授於 1990 年代初期開發,主要用於驗證透過網路傳輸的檔案是否與原始檔案一致。
MD5 將輸入資料轉換為一個 128 位元的雜湊值(通常顯示為 32 字元十六進位字串)。即使只變更原始資料中的一個字元,也會產生完全不同的雜湊值。
理論上,雜湊值越長,其安全性越高。然而不久後資安界即發現:128 位元摘要存在嚴重漏洞,導致 MD5 不再適用於安全性要求高的應用。
雜湊碰撞(Hash Collisions)
MD5 的一項缺陷,其實是所有雜湊函數的共通特性:雜湊演算法會將任意長度的輸入對映為固定長度的輸出。然而輸入組合無限,但輸出值有限,這導致了雜湊碰撞的可能性 —— 不同的輸入產生相同的雜湊值。
MD5 的雜湊值長度固定為 32 字元(128 位元),因此碰撞風險較高。由於雜湊值常用於身份驗證,碰撞就像是複製身份,攻擊者可藉此進行碰撞攻擊,偽造合法資料進行冒充。
次世代雜湊技術
為降低雜湊碰撞風險,業界逐步採用輸出位元數更長的演算法,MD5 的侷限促成了 SHA 系列(Secure Hash Algorithms) 的發展。
這些演算法皆由 NIST 核可,名稱後的數字代表其雜湊值長度 (bit)。除 SHA-1(160 位元)外,其餘皆具抗碰撞性,但仍可能遭受其他攻擊手法威脅。
SHA 演算法家族包括以下五種:
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
安全的密碼儲存
密碼通常與使用者名稱對應存放於資料庫。伺服器接收認證請求後,比對使用者名稱與密碼,驗證成功後授權存取。
此系統在未遭駭客入侵資料庫前是安全的。明文密碼若被盜,攻擊者可直接利用。雜湊技術增加安全層,因雜湊不可逆,資料庫被盜也無法還原密碼。
彩虹表
彩虹表為預計算的雜湊與明文對應表,類似弱密碼字典。攻擊者可用來比對資料庫雜湊值,破解密碼。
加鹽 (Salt) 技術
鹽值為隨機字串,加入資料雜湊前,使雜湊值更獨特,提高抵抗彩虹表攻擊能力。
實驗 2
實驗目的
- 列出主目錄內容
- 比較兩檔案明文
- 計算兩檔案 sha256sum
- 比對雜湊值差異
實驗步驟
ls,cat file1.txt,cat file2.txt,sha256sum file1.txt,sha256sum file2.txt,發現看起來一樣的檔案其實是不同的。sha256sum file1.txt >> file1hash,sha256sum file2.txt >> file2hash,cat file1hash,cat file2hash, 比較不同處:cmp file1hash file2hash(顯示兩個文件之間的第一個不同處)。
# 身份驗證,授權和會計
SSO 與 MFA 的興起
企業透過認證系統保護資料,使用者名稱與密碼為主要憑證。資訊安全著重於使用者的存取與授權管理。
存取控制的作用
- 有效維護資料的機密性、完整性與可用性。
- 快速提供用戶所需資訊。
三大存取控制功能 (AAA 架構)
- 身份驗證(Authentication)
- 授權(Authorization)
- 計費與問責(Accounting)
身份驗證(Authentication)的三個認證因子
- 知識型:使用者知道的資訊,如密碼或安全問題的答案。
- 持有型:使用者擁有的物件,如一次性密碼(OTP)。
- 特徵型:使用者的生物特徵,如指紋或臉部辨識。
SSO 與 MFA 是整合這些因子的主流技術。
SSO (單一登入,Single sign-on)
於 1990 年代中期出現,原為解決「密碼疲勞」問題。使用者常重複使用密碼,構成安全風險。
SSO 整合多個登入為一次性驗證。企業採用的原因包括:
- 減少需記憶的帳密,提升使用者體驗
- 精簡服務管理流程,降低成本
- 減少登入點,提升整體安全性
運作方式
SSO 透過加密的存取權杖,自動化建立使用者與服務供應者間的信任關係,由可信的第三方(身份提供者)驗證身份。
常使用兩種協定:
- LDAP (輕量型目錄存取協定):用於內部 (on-premises) 資訊傳輸。
- SAML (安全斷言標記語言):用於雲端等外部資訊傳輸。
兩者常搭配使用。SSO 可透過單一權杖連接多個應用系統。
SSO 的限制
僅靠帳密無法完全保護敏感資訊。SSO 雖便利,但若密碼遭竊,可能波及多個服務。此風險已有對應解法: MFA。
MFA (多重要素驗證,Multi-factor authentication)
要求使用者透過兩種以上方式驗證身份,例如提款機操作:插卡與輸入密碼為兩種認證方式。
強化認證機制
MFA 建立於 SSO 基礎上,要求提供 2FA 或 3FA,常見認證因子為:
- 使用者知道的資訊:帳號與密碼
- 使用者擁有的物品:如 OTP
- 使用者的特徵:如指紋或臉部辨識
MFA 在雲端環境中特別有效,可降低偽造與暴力破解風險,強化遠端存取安全。
SSO 與 MFA 結合使用可以在提供便捷存取的同時確保更高的安全性。
OAuth (Basic auth): 使用 API 令牌來驗證用戶。API 令牌是一個數位憑據,在平台和服務提供商之間共享以驗證用戶身份。如在別的網站用 Google 登入。
Basic auth (基本驗證):是一種簡單的 HTTP 使用者身份驗證方法,允許 user-agent(如網頁瀏覽器)透過 HTTP 請求的 Authorization 標頭欄位提供使用者名稱和密碼。
Session (工作階段) 與相關概念
- Session:同一使用者發起的一連串 HTTP 認證請求與伺服器回應
- Session Cookie:網站用於驗證工作階段與控制其存續時間的權杖
- Session ID:識別使用者與其裝置的唯一權杖
- Session Hijacking:攻擊者竊取 Session ID 並冒用使用者存取系統
身分與存取管理(IAM)
重點在於建立有效防禦環境,需落實兩項原則:
- 最小權限:僅授予完成任務所需的最低權限
- 職責分離:避免單一人員擁有可被濫用的過高授權
許多企業採用 AAA 架構(認證、授權、記帳)實作這些原則。
Identity and access management (IAM)
IAM 是一套流程與技術,用於管理組織內的數位身分,協助因應監管壓力與資安威脅。
這些架構由多項資安控制組成,目標是確保:
- 正確的使用者 (可為人員、裝置或軟體)
- 在正確時間
- 基於正當理由
- 存取正確資源
用戶服務開通(User Provisioning)
建立與管理使用者數位身分的流程,使系統能驗證其資訊並授予適當權限。分析師也負責在使用者不再需存取時移除其權限,防止未授權存取。
例如,新聘講師將獲配帳號,僅可存取講師專用資源。資安分析師常參與帳號與權限布建。
授權控管
使用者通過認證後,系統需確保其僅能存取對應資源。常見三種授權控制模型:
- MAC:系統集中控管權限,使用者無法變更
- DAC:資源擁有者自行設定誰可存取
- RBAC:依使用者角色授權,易管理且符合理想的權限分配原則
強制存取控制(MAC)
最嚴格的授權控制模型,依「知悉需求 (need-to-know)」原則手動授權。
- 權限由中央單位或系統管理員控管
- 使用者無法自行調整權限
- 常用於軍事、執法、政府等機構
- 又稱非自主存取控制,因權限不由資料擁有者決定
自主存取控制(DAC)
由資料擁有者自行決定存取權限與層級,彈性高但風險相對增加。
- 權限可由擁有者授與他人
- 常見例子:Google Drive 共享設定(編輯、檢視、留言)
- 適用於一般企業與個人資源管理
角色式存取控制(RBAC)
依使用者的角色授權資源存取權限,有助於標準化與簡化權限管理。
- 權限與角色綁定,非個人手動設定
- 範例:行銷人員可查看用戶分析,但無法管理網路
- 支援最小權限原則,便於維運與風險控管
IAM 與 AAA 架構皆用於:
- 驗證身份(Authentication)
- 控制存取權限(Authorization)
- 追蹤活動紀錄(Accounting)
典型 IAM 或 AAA 系統包含:
- 使用者目錄
- 目錄管理工具
- 授權系統
- 稽核系統
部分企業自建系統以符合內部需求,但成本高。多數組織選用第三方解決方案快速建構資安防護。
資安不僅是工具堆疊,更需正確配置與整合,才能建立安全環境。
# 系統脆弱性
# 系統中的缺陷
漏洞管理包含四步驟:
- 識別漏洞
- 評估潛在攻擊
- 準備防禦措施
- 持續評估防禦效能
零日漏洞(Zero-day vulnerability):尚無修補的新型弱點,例:新型間諜軟體感染熱門網站。
CI/CD 漏洞
CI/CD 自動化開發至部署流程,提升敏捷性與效率。為現代軟體開發關鍵,但若未妥善管理,可能成為攻擊面。
- CI(持續整合):頻繁整合程式碼並觸發自動建置與測試,及早發現問題。
- CD(持續交付):測試通過的程式碼隨時可部署至預備環境,仍保留人工審核機制。
- CD(持續部署):所有驗證通過的變更自動部署至正式環境,達到極致自動化。
持續交付與部署可將安全檢查內建於流程中,強化整體資安。常見機制包括:
- DAST (動態應用程式安全測試):在預備環境中進行動態弱點掃描。
- 資安合規檢查:驗證是否符合企業安全政策。
- 基礎架構安全驗證:確保部署環境設定安全。
僅允許通過驗證的版本部署至正式環境,有效降低風險。
CI/CD 流程中的常見漏洞:
- 不安全的相依套件:第三方元件可能含已知漏洞(CVE, 常見漏洞與披露)。
建議:定期掃描與更新相依性,使用安全版本。 - 設定錯誤的權限控管:弱存取控制易導致未授權修改。
建議:實施 RBAC,限制關鍵元件的存取權限。 - 缺乏自動化資安測試:漏洞可能在產品上線後才被發現。
建議:整合 SAST、DAST 等自動資安測試。 - 機密資訊外洩:API 金鑰與密碼若硬編碼易造成洩露。
建議:使用 Secrets Manager 管理機密資訊。 - 建置環境未強化:CI/CD 基礎設施若無防護,將成攻擊目標。
建議:使用安全容器或虛擬機,強化執行環境防護。
建立安全 CI/CD 流程應採取以下關鍵實務:
- 導入 DevSecOps:資安自開發初期即融入流程,將檢查嵌入整個 CI/CD。
- 強化存取控制:實施最小權限原則、MFA 與 RBAC 保護關鍵資源。
- 自動化資安測試:整合 SAST (靜態應用程式安全測試)、SCA (軟體成分分析)、DAST,主動發現漏洞。
- 依賴元件更新:使用工具(如 Dependabot、Snyk)定期掃描與修補 CVE。
- 機密資料集中管理:使用 Vault 或 Secrets Manager 管理敏感資訊,避免硬編碼與外洩。
快速、可靠地釋出功能與安全更新,確保軟體效率與安全兼備,主動防護組織與用戶。
縱深防禦 (Defense in Depth)
一種將多種安全措施分層部署的策略,旨在強化系統的安全性。就像一座城堡,縱深防禦並非只靠一道高牆就能抵禦所有攻擊,而是透過多道防線、多種武器,讓入侵者難以攻破。
核心原則:如果一種安全控制失敗,其他安全控制就會到位,以防止或儘量減少損害。
五層設計如下:
- 周邊層(Perimeter Layer)
- 包含使用者名稱與密碼等技術,這是一個身份驗證層,過濾外部存取。
- 只允許值得信賴的合作夥伴進入下一層防禦。
- 網路層(Network Layer)
- 與授權緊密結合,主要由網路防火牆等技術提供防護。
- 端點層(Endpoint Layer)
- 包括可以存取網路的設備,如筆記型電腦、桌上型電腦或伺服器。
- 常見的保護技術是防毒軟體,用於保護這些設備。
- 應用層(Application Layer)
- 涉及所有與技術互動的介面,安全措施設計為應用程式的一部分。如: MFA
- 資料層(Data Layer)
- 負責保護最關鍵的數據,如 PII。
- 資產分類是一項重要的安全控制,用來保護資料層的資產。
OWASP Top 10
OWASP 與 CVE 共同構成現代資安知識的核心資源。
CVE® list:
全球資安社群共享已知弱點與攻擊手法的重要資源。
CVE 在進入清單前,會經過 CNA(CVE 編號機構)的嚴格審查,確保漏洞符合四個標準:
- 漏洞獨立,不需要修復其他問題即可修復。
- 具有潛在安全風險。
- 提交附有支持證據。
- 影響單一程式碼庫。
OWASP(Open Worldwide Application Security Project®):
- 一個全球性的非營利組織,推動軟體安全標準與知識分享。
- 提供應用程式安全相關資源、工具與最佳實務的重要參考平台。
OWASP Top 10
- 針對網頁應用常見高風險漏洞的清單,自 2003 年起定期發布。
- 主要用於新建或客製化應用的安全參考,大型企業廣泛採用以強化開發階段的防護。
- 排名依據漏洞發現頻率與風險等級,數年更新一次。
- 稽核單位亦常參考 OWASP Top 10 進行合規性檢核。
常見漏洞類型(摘自 OWASP Top 10)
- 存取控制失效(Broken Access Control)
- 權限設定不當,可能導致未授權的資訊查閱、修改或刪除。
- 影響範圍可擴及其他系統,造成橫向入侵風險。
- 加密機制失效(Cryptographic Failures)
- 未加密敏感資訊(如 PII)或使用弱加密(如 MD5)會增加資料外洩風險。
- 可能違反法規(如 GDPR)並導致重罰。
- 程式碼注入(Injection)
- 未過濾輸入導致惡意指令執行,常見於登入表單(如 SQL Injection)。
- 不安全設計(Insecure Design)
- 開發階段未納入資安設計,缺乏安全控制與風險評估。
- 安全性錯誤設定(Security Misconfiguration)
- 使用預設設定、未關閉多餘服務、設定防火牆錯誤,成為攻擊切入點。
- 易受攻擊或過時元件(Vulnerable and Outdated Components)
- 使用含 CVE 弱點的開源套件或未更新模組。
- 身份識別與驗證失敗(Identification and Authentication Failures)
- 使用者身分識別或授權機制失效,導致未授權存取。
- 例:家用 Wi-Fi 路由器登入介面驗證設計薄弱。
- 軟體與資料完整性失敗(Software and Data Integrity Failures)
- 更新與修補機制未驗證完整性,可能引發供應鏈攻擊。
- 案例:SolarWinds 2020 年事件為供應鏈攻擊典型範例。
- 安全記錄與監控機制失效(Security Logging and Monitoring Failures)
- 系統缺乏足夠日誌紀錄、異常偵測與即時警示。
- 導致攻擊後難以調查與延遲應變,增加損害範圍。
- 伺服器端請求偽造(Server-Side Request Forgery, SSRF)
- 攻擊者利用伺服器對外請求功能,偽造請求存取內部資源。
- 常見於未驗證用戶輸入的 URL 抓取或預覽功能。
開放式情報(OSINT)
- OSINT(Open Source Intelligence)為從公開來源收集、分析資訊以產出可行性情資的技術。
- 應用於資安活動如:弱點辨識、威脅偵測、外洩資料追蹤等。
- 補充 CVE 資料與掃描工具不足之處,有助於預警潛在風險並調整防禦策略。
資訊 vs 情報
- 資訊(Information):原始數據或事實,尚未經分析。
- 情報(Intelligence):經過資訊整合、分析與詮釋後,所產生的可行性洞察,用於支援資安決策。
情報 = 資訊 + 分析 + 解釋 + 整合- 例子:作業系統更新是一則資訊;該更新是否涉及新攻擊手法的評估則屬於情報。
OSINT 實際應用:
- 發現新型網路攻擊行動
- 偵測機密資料是否外洩
- 評估現行資安措施的有效性
- 發掘尚未公開或零時差(Zero-Day)漏洞
常用 OSINT 工具介紹
| 工具名稱 | 功能簡述 |
|---|---|
| VirusTotal | 分析可疑檔案、URL、IP 是否含有惡意內容 |
| MITRE ATT&CK® | 攻擊者行為與技術資料庫,協助防禦與演練規劃 |
| OSINT Framework | 彙整各類 OSINT 工具與資源的入口網站 |
| Have I Been Pwned | 查詢帳號是否出現在公開資料外洩事件中 |
成功的情報蒐集=合適工具 + 資安知識 + 分析與判斷能力
# 識別系統漏洞
漏洞掃描的方法
漏洞掃描器是什麼?
- 自動化工具,用來比對系統元件與已知漏洞資料庫(如 CVE)。
- 發現設定錯誤、程式缺陷、未修補風險。
掃描對象:五大攻擊面
- 周邊層:驗證身份的系統
- 網路層:防火牆
- 端點層:電腦、伺服器、IoT 裝置
- 應用層:網站、APP、API
- 資料層:資料存儲、傳輸、處理階段
漏洞掃描器通常為 非侵入式 工具,目的在於識別系統潛在弱點,而不會主動攻擊或破壞系統。
常見掃描方式:
外部掃描(External Scan)
- 模擬:來自網路外部的攻擊者
- 掃描對象:網站、防火牆、公開服務與埠口
- 目標:識別周邊層暴露的漏洞與錯誤設定
內部掃描(Internal Scan)
- 模擬:已進入內部網路的威脅者
- 掃描對象:內部應用、資料庫、終端設備
- 目標:發現內部系統的潛在弱點,如輸入處理漏洞、權限錯誤
驗證式掃描(Authenticated)
- 使用合法帳號登入系統執行掃描(可用一般用戶或管理員權限)
- 發現內部權限錯誤、設定缺陷、系統弱點等問題
- 模擬內部人員或遭入侵帳號的行為
非驗證式掃描(Unauthenticated)
- 無需登入,模擬匿名或外部攻擊者
- 檢查公開資源是否有未授權存取的漏洞
- 常見用途:測試開放共享、錯誤設定的資源存取控制
限定式掃描(Limited Scan)
- 掃描特定設備(如防火牆、伺服器)
- 用於針對性檢查與重點資產盤點
全面式掃描(Comprehensive Scan)
- 掃描所有網路連線設備(終端、OS、DB 等)
- 用於整體風險評估、法規遵循或重大變更後分析
進行限定式或全面式漏洞掃描前,先做 Discovery Scan
→ 確認設備、開放埠口,提高掃描完整性。
更新的重要性
對使用者而言,更新可提升效能與功能;而對資安人員而言,更新是修補漏洞、降低風險的手段。更新通常在漏洞評估 (vulnerability assessment) 後實施,為組織的漏洞修補流程關鍵一環。
修補程式 (patch update) 針對已知安全漏洞提供修正,理想情況下,修補能在駭客發現漏洞前推出,但亦可能因零時差攻擊而緊急開發。
常見的更新策略
手動更新(Manual Updates)
- 個人或小型企業,需自行尋找、下載與安裝更新
- 企業環境中,通常透過「組態管理工具」(Configuration Management Tools)進行集中式部署。
自動更新(Automatic Updates)
- 由系統或應用程式自動尋找、下載並安裝更新。
- 實務建議:美國資安暨基礎設施安全局(CISA)建議在可行的情況下採用自動更新策略。
- 缺點:若廠商未充分測試修補程式,可能導致系統不穩或使用體驗不佳。
定期更新與漏洞修補能有效預防資安事件,如 2017 年 WannaCry 攻擊即可透過先前已發布的修補程式避免。
滲透測試 (Penetration testing, pen test)
- 經授權的模擬攻擊,使用惡意攻擊者相同手法,檢測系統弱點並評估實際風險。
- 屬於道德駭客(Ethical Hacking)範疇。
- 例:金融組織須定期執行滲透測試,檢測是否存在可讓攻擊者竊取客戶資訊或非法轉帳的弱點,以確保合規。
攻擊由具備程式設計與網路架構專業的滲透測試人員執行。組織可能採用不同的滲透測試方法:
- 紅隊測試(Red Team):模擬攻擊以發掘系統、網路或應用程式的弱點。
- 藍隊測試(Blue Team):專注防禦與事件應變,驗證現有資安防護效能。
- 紫隊測試(Purple Team):紅藍隊合作,整合攻防演練以強化組織安全態勢。
常見滲透測試分三種:
- 開放式測試(白箱):測試者擁有內部系統架構、資料流與網路圖等完全資訊。
- 封閉式測試(黑箱):測試者無內部系統存取權,模擬惡意駭客,最貼近真實攻擊。
- 部分知識測試(灰箱):測試者擁有限制性內部資訊與存取權。
以下技能有助成為滲透測試人員:
- 網路與應用安全
- Linux 等作業系統經驗
- 漏洞分析與威脅建模
- 偵測與回應工具
- Python、BASH 等程式語言
- 溝通能力
漏洞懸賞計畫
- 組織提供賞金給自由滲透測試人員報告漏洞。
- HackerOne 是道德駭客社群,提供活躍漏洞懸賞計畫。
練習: Analyze a vulnerable system for a small business
模板: Google docs
解答: Google docs
# 網絡攻擊者的心態
以攻擊者思維看待資安
漏洞評估是內部審查資安系統的關鍵步驟。進一步可從攻擊者視角分析評估結果,主動識別並防範風險。
攻擊模擬分為:
- 主動式(紅隊):模擬攻擊者,利用漏洞進行入侵。強調計畫與策略,常用釣魚手法測試資安意識。
- 被動式(藍隊):模擬防禦者,回應攻擊事件。聚焦於資產資訊蒐集,輔以漏洞掃描工具的結果進行風險評估與修復建議。
風險掃描流程示範:
- 識別:發現伺服器執行過時作業系統。
- 漏洞分析:調查作業系統相關漏洞。
- 風險評估:評分漏洞嚴重性與潛在影響。
- 修復行動:依據分析結果提出解決方案。
多數資安控制是針對風險的反應性措施,因攻擊者不斷尋找突破點。應用攻擊者思維需掌握資安趨勢與新技術。透過 NIST 的國家漏洞資料庫(NVD)等資源,隨時更新常見漏洞資訊。
威脅行為者類型
資安人員需具備預判攻擊的能力,攻擊面包括網路、伺服器、裝置與員工,是威脅行為者常利用的弱點。核心在於限制存取權限。
威脅行為者 (threat actor) 是指對資安構成風險的個人或團體,包含組織內外、有意或無意造成資產風險者。包含:
- 競爭對手:可能從機密外洩中獲利的企業。
- 國家行為者:政府情資機構。
- 犯罪組織:從非法行為中牟利的團體。
- 內部威脅:曾有授權存取權限者,可能無意洩密或蓄意危害。
- 影子 IT:未經授權使用工具的人,如用個人信箱處理公務。
駭客的類型,根據意圖,可分為:
- 未授權駭客(惡意駭客):以非法手段入侵系統牟利或破壞,包含使用他人程式碼的低技術駭客(Script Kiddies)。
- 授權駭客(道德駭客):協助企業提升資安的專業人員,包含內部測試人員與參與漏洞懸賞的外部駭客。
- 半授權駭客:雖違反道德但無明確惡意,如駭客行動主義者(Hacktivists),透過入侵行動引發社會關注或推動政治目標。
進階持續性威脅(APT)
指威脅行為者長期維持對系統的未授權存取,常與國家或國家支持的駭客組織有關,目標多為情報監控與操控政府、國防、金融與電信系統。
APT 攻擊具高度隱蔽性,常先滲透私部門企業,再藉此進入更高價值目標。
存取途徑(Access Points)
威脅行為者會透過多種攻擊向量入侵系統,常見類型包括:
- 直接存取:實體接觸設備。
- 可移除媒體:如 USB 裝置。
- 社交媒體:用於溝通或傳播惡意連結。
- 電子郵件:釣魚或惡意附件。
- 無線網路:利用內部 Wi-Fi 進行入侵。
- 雲端服務:第三方平台若配置不當可能遭濫用。
- 供應鏈:第三方廠商成為入侵跳板。
攻擊向量(Attack Vector)是攻擊者用來滲透攻擊面安全防禦的路徑。
應用攻擊者思維的步驟:
- 確認目標
- 判斷目標存取方式
- 評估可利用的攻擊向量
- 找出攻擊工具與方法
防範暴力破解攻擊
使用者名稱與密碼是常見的資安控管,易遭竊取或猜測。攻擊者透過多種試錯法攻擊:
- 簡單暴力破解:隨機猜測使用者名稱與密碼組合。
- 字典攻擊:用常見憑證清單嘗試登入。
- 反向暴力破解:用單一憑證嘗試多系統。
- 憑證填充攻擊 (Credential Stuffing):利用先前外洩的憑證嘗試其他系統登入,包含通過傳遞雜湊 (Pass the Hash)。
加密資料亦可能被窮舉密鑰搜尋破解。
攻擊者常用自動化工具進行暴力破解,常見工具:
- Aircrack-ng
- Hashcat
- John the Ripper
- Ophcrack
- THC Hydra
資安人員也會用這些工具測試系統弱點,如用 Aircrack-ng 檢測 Wi-Fi 漏洞。
防範措施:
- 雜湊與加鹽:將密碼轉換成唯一且複雜的雜湊值,增強破解難度。
- MFA
- CAPTCHA:完全自動化公眾圖靈測試,用以區分人機,常見有扭曲文字與圖像配對兩種,保護敏感資訊網站。
- 密碼政策: NIST 800-63B 提供制定指引。
補充:常見名詞差異
The misconfigured firewall = vulnerability
Hacker using it = threat
How the hacker gets in = attack vector (e.g. open ports)
The tool or method used to break in = exploit (漏洞利用)
# 資產安全威脅
# 社交工程
社交工程手法
透過操縱人性(如信任、好奇、慷慨)來騙取資訊或系統存取權的攻擊手法。操縱人性往往比入侵系統更容易。
風險高,因無需技術即可能造成嚴重後果。如:2020 Twitter 攻擊事件。
攻擊流程
- 準備階段:蒐集目標資訊,設計攻擊策略。
- 建立信任:冒充可信對象與目標互動。
- 說服操作:利用心理弱點誘導目標洩密或執行危險行為。
- 中斷聯繫:取得資訊後迅速斷線,以掩蓋行蹤並轉移目標。
常見手法:
- 誘餌攻擊:放置帶毒 USB 吸引人插入。
- 網路釣魚:透過假郵件騙取資料或散播惡意程式。
- 交換利益 (Quid pro quo):以假優惠換取帳戶資訊。
- 尾隨入侵:未授權人員跟隨他人進入受限區域。
- 水坑攻擊:入侵目標族群常訪網站並植入惡意程式。
教育使用者辨識攻擊徵兆,是降低風險的關鍵,應聚焦:
- 警覺可疑訊息與陌生對象:檢查寄件者、拼字錯誤等。
- 慎用社群媒體:避免洩漏可被利用的資訊。
- 克制好奇心:不輕易點擊連結或附件。
建議部署防火牆、MFA、封鎖清單、郵件過濾等多層技術防線。
網路釣魚手法(Phishing)
大量釣魚(Mass Phishing): 攻擊者將相同惡意內容群發給大量目標,以提高受害機率。如仿冒官方格式群發郵件。
演變
- 隨電子商務與線上支付普及,釣魚攻擊更加多樣。
- 駭客不僅竊取帳密,也透過釣魚植入惡意程式。
- 常見釣魚類型:
- Email Phishing:冒用可信寄件人發送惡意郵件。
- Smishing:透過 SMS 或聊天平台傳送詐騙訊息。
- Vishing:使用語音通話進行社交工程。
- Spear (魚叉式) Phishing:針對特定個人量身打造攻擊內容。
- Whaling:專門攻擊高階主管的釣魚手法。
- 2003 年起出現大量仿冒 eBay、PayPal 的釣魚網站及郵件攻擊。
近期趨勢
- 自 2010 年代起,駭客逐漸從大量群發郵件轉向針對性釣魚(Targeted Phishing)。
- 精準釣魚手法會根據目標量身打造內容,提高攻擊成功率。
Angler Phishing(釣客式釣魚)
- 攻擊者假冒企業客服帳號,主動聯繫在社群媒體上抱怨的用戶。
- 仿冒帳號回覆客訴,藉機竊取個資或帳號資訊。
- 此手法廣泛利用社交媒體平台的即時互動與使用者信任。
Phishing Kit 工具包內容
- 惡意附件(如假 PDF、惡意程式)
- 仿冒資料表單
- 欺騙性連結(指向釣魚網站)
- 網路釣魚手法(特別是 Email Phishing)仍然有效且常見。
- 無法完全用技術手段防止釣魚攻擊。
# 惡意軟體
惡意軟體簡介
惡意軟體(Malware)是用來破壞或控制系統與網路的程式。自早期個人電腦出現以來,已演化出多種形式。
病毒(Virus)
- 需使用者執行才能啟動與傳播。
- 常見於網路釣魚郵件的惡意連結或附件中。
- 目的為干擾操作、破壞資料與軟體。
蠕蟲(Worm)
- 可自我複製與自動傳播。
- 常利用網路裝置或共享資源進行擴散。
- 不需使用者互動即可感染其他系統。
案例:Blaster 蠕蟲
- 攻擊 Windows XP / 2000,導致系統不斷重啟。
- 雖不破壞資料,但具高擴散性。
在 2000 年代中期非常盛行,但近年已不如以往常見。
木馬程式(Trojan)
- 偽裝成正常檔案或應用程式。
- 常透過下載或網路釣魚進行傳播。
- 功能包括監控、存取控制、資料竊取與橫向滲透。
廣告軟體(Adware)
- 合法 adware:開發者透過廣告收入維持營運,屬正常商業用途。
- 惡意 adware(潛在不受歡迎應用程式,PUA):
- 與合法軟體綁定安裝。
- 導致裝置變慢、強制顯示廣告或安裝額外惡意軟體。
- 攻擊者可透過廣告牟利,即便使用者拒絕顯示。
間諜軟體 (Spyware)
- 未經同意蒐集並販售資訊,屬於 PUA。
- 常隱藏於捆綁軟體中,成為開源軟體生態系的挑戰,因開發者常忽略其濫用風險。
恐嚇軟體 (Scareware)
- 屬 PUA,透過偽造合法警告恐嚇使用者,自行感染設備。
- 常見傳播途徑為電子郵件與彈跳視窗,散布虛假風險警告。
無檔案惡意軟體 (Fileless malware)
- 利用現有合法程式感染,駐留記憶體不觸及硬碟,潛伏於作業系統或受信任應用。
- 偵測需記憶體分析,須具作業系統經驗。
Rootkit
- 提供遠端管理後門,方便安裝其他惡意軟體或進行攻擊。
- 由 Dropper 與 Loader 組成:
- Dropper 投放惡意碼,常偽裝合法檔案以誘使使用者開啟。一旦執行,惡意程式碼即會執行並隱藏於系統。
- Loader 下載並安裝惡意程式碼,常用於建立僵屍網路。
殭屍網路 (Botnet)
- 由一群被惡意程式(如病毒、蠕蟲、木馬)感染的裝置組成
- 這些裝置由殭屍牧人(bot herder)遠端控制。
- 攻擊者透過檔案分享、電子郵件或社群應用協定散布惡意程式,持續擴大感染規模。當使用者不慎開啟惡意檔案,裝置將回傳資訊給殭屍牧人,後者可遠端下達命令。
勒索軟體 (Ransomware)
- 會加密組織資料並要求贖金以恢復存取權限。
- 典型案例為 WannaCry 攻擊,受害者需支付加密貨幣贖金才能解鎖系統。
加密劫持 (cryptojacking)
- 加密貨幣挖礦是通過電腦運行挖礦軟體來處理大量的加密代碼,以找到新的加密貨幣。
- 加密劫持是一種較新的惡意軟體,用來非法開採加密貨幣。
- 犯罪者通常針對易受攻擊的伺服器來傳播挖礦軟體,伺服器和其通訊的設備也會被感染。
- 感染的明顯徵兆包括:系統速度減慢、CPU 使用率增加、系統崩潰、電池耗盡,以及電費異常高。
- IDS 是監視系統活動並偵測異常的應用程式。
- 使用瀏覽器擴展、廣告攔截器、停用 JavaScript 等方式來阻止惡意軟體。
# 基於 Web 的漏洞利用
注入攻擊
- 將惡意程式碼插入應用程式中,表面上正常運行,但惡意程式碼在背景執行。
- 防範措施:驗證用戶輸入,確保數據的正確性。
跨網站指令碼 (Cross-site scripting, XSS)
- 通常利用 HTML 和 JavaScript 來存取網站上的敏感資料。
- 可竊取 session cookie、地理位置等敏感資料。
三種類型
- 反射型 XSS 攻擊
- 攻擊者將惡意腳本傳送至伺服器,並在伺服器回應時啟動。
- 通常發生在搜尋欄或其他與使用者互動的部分。
- 儲存型 XSS 攻擊
- 攻擊者直接將惡意腳本注入伺服器,並在使用者造訪網站時啟動。
- 使用者無法預先知曉網站是否受感染,具有高度的破壞性。
- 基於 DOM 的 XSS 攻擊
- 惡意腳本在網頁中存在,並在瀏覽器加載時執行。
- 無需將攻擊傳送到伺服器,駭客可利用 URL 中的參數進行攻擊。
SQL 注入攻擊 (SQL Injection)
一種常見的攻擊向量,由於開發者常忽略防禦措施,SQL 注入長期名列 OWASP® Top 10 風險項目。
SQL 查詢與注入風險
- SQL 常用於查詢(retrieving)、新增(inserting)、更新(updating)或刪除(deleting)資料表中的資訊。
- 當應用程式允許使用者輸入並觸發查詢時 (例如登入表單、搜尋欄或留言框等),若未妥善過濾輸入,就可能遭受 SQL 注入攻擊。
- 攻擊者可藉此操控資料庫、竊取機密,甚至接管應用程式。
攻擊類型
- 同通道 (In-band) 注入
- 最常見的注入手法,透過同一通道執行注入與接收結果。
- 攻擊者可在搜尋框輸入惡意查詢語句,使資料庫執行該指令並回傳敏感資訊(如使用者密碼)。
- 異通道 (Out-of-band) 注入
- 使用不同通訊通道發動攻擊與接收回應。
- 透過查詢語句將目標網站與攻擊者所控制的資料庫建立連線,竊取敏感資料。
- 攻擊者可繞過伺服器防護。此類攻擊較少見,需特定功能開啟。
- 推論型 (Inferential) 注入
- 無法直接回傳結果,攻擊者透過錯誤訊息等間接行為推測資料庫結構,進而擴大攻擊。
防護技術
開發時若未妥善處理使用者輸入,將可能導致 SQL 注入攻擊。關鍵在於處理與隔離使用者輸入,避免應用程式執行非預期的指令碼。預防方式包括:
- 預備語句 (Prepared Statements):在查詢執行前預先編譯 SQL 語句,將語法與輸入分離,是防範 SQL 注入攻擊的有效方法。
- 輸入清理 (Input Sanitization):移除潛在的惡意字元。
- 輸入驗證:確保輸入格式與預期相符。
# 威脅建模
威脅建模 (Threat modeling)
資安團隊用來預測 (anticipate) 攻擊的流程,透過從資安角度審視組織資產。結合漏洞管理、威脅分析與事件應變,常用於開發階段以設計具防禦力的軟體架構。
應用程式已成為企業營運核心,特別是 Web 與行動應用程式處理大量用戶資料,使其安全性成為降低風險的關鍵。例如 Log4Shell(CVE-2021-44228)漏洞,若未修補,將允許攻擊者遠端執行任意程式碼,對全球系統造成廣泛衝擊。
DevSecOps 團隊 (即開發、資安與營運三合一的團隊) 通常會依循以下步驟進行威脅建模:
- 定義範疇
- 識別威脅
- 描述環境
- 分析威脅
- 緩解風險
- 評估結果
完整建模應在開發前、中、後進行,但因涉及廣泛,常搭配既有框架以提升效率。建議將威脅建模整合進軟體開發生命週期(SDLC)。
常見建模框架:
- STRIDE
由微軟開發,用於識別六類攻擊向量:偽造身份、資料竄改、否認行為、資訊洩露、阻斷服務、與權限提升。 - PASTA (攻擊模擬與威脅分析流程)
由 OWASP 成員開發、以風險為導向的建模流程。透過七個階段整合如漏洞評估等資安成果物,找出可驗證的實際威脅,並建立風險模型,適用於應用程式與其運行環境。以下是 7 階段:- 業務與安全目標:確認應用目的與法規要求(如 PCI-DSS)。
- 技術範疇界定:盤點 API 等技術與攻擊面。
- 解構應用系統:分析元件通訊與控制措施(如 SQL 預備語句)。
- 威脅分析:識別如 SQL 注入、Session 劫持等潛在威脅。
- 漏洞分析:將設計與實作中的缺陷與威脅連結。
- 攻擊建模:用攻擊樹驗證威脅可行性,參考 MITRE/CVE。
- 風險評估與緩解:導入技術與管理控制,處理殘餘風險。
- Trike
以安全為導向的開源建模工具,專注於權限與使用案例分析。 - VAST
整合於 ThreatModeler® 平台的視覺化自動建模框架,能加速威脅建模流程。
參與威脅建模
通常由資深人員主導,應用系統常高度複雜,需跨團隊合作。
只要從問對問題開始,例如:我們在建構什麼?哪些風險可能發生?目前的防護措施是什麼?我們如何防範?是否處理完善?透過持續練習,應用資料流程圖(Data Flow Diagrams, DFDs)與攻擊樹(Attack Trees)等工具,人人都能成為有效的威脅建模參與者。
攻擊樹是一種用來將威脅對應到資產的圖形化分析工具。其中攻擊向量代表攻擊者可能利用來突破防禦機制的路徑,亦即攻擊樹中的基本構成要素。
資安風險初步評估建議 (練習範例)
- 可優先評估 API,因為第三方整合常伴隨權限控管與資料外洩風險。
- 其次是 SQL 查詢邏輯,若未實施預備語句,易遭 SQL 注入。
- 加密技術(AES/RSA)與 SHA-256 雜湊 應檢查金鑰管理與是否使用加鹽機制,以防加密 / 雜湊失效。