Day 1
甚麼是資訊安全
資訊安全統一簡稱「資安」,而資安具有三個核心要素「機密性(Confidentiality)」、「完整性(Integrity)」、「可用性(Availability)」。然而,這三要素互相牽制,高度機密性就會降低可用性與完整性,而如何在三項核心要素中取得平衡是一大挑戰。
- 機密性 Confidentiality:訊息不為其他未授權者獲得,用以維護用戶資訊的保密性。例如:「機密資料」、「公司開發的技術」、「個人資訊、信用卡資料、醫療紀錄」
- 完整性 Integrity:在傳輸、儲存資訊或資料的過程中,資料不會被未經授權的篡改、刪除
- 可用性 Availability:讓系統處於工作狀態,服務不因任何因素發生中斷、停止
除了上述的三大核心要素外,通常還會有三個要素「不可否認性(Non-Repudiation)」、「身分驗證、鑑別性(Authentication)」、「存取控制(Access-Control)」。
- 不可否認性 Non-Repudiation:確保無法否認於系統上完成的操作,例如:數位簽章讓寄件人無法否認訊息是從當事人發出的
- 身分驗證 Authentication:確保使用者登入時,身分有合理妥當的檢驗
- 存取控制 Access-Control:確保操作者有適當的權限且擁有適當的授權
除了上述的這些要素外,還有許多需要執行的資安與相關任務需要被執行,例如:「資料備份」、「異地備援」等等。
資安沒做好會發生甚麼事
資訊安全若是沒有做好,就可能會被駭客入侵,輕則被相關單位通報;重則系統癱瘓、控制權被奪、資料遺失、資料毀損、勒索、甚至是以該伺服器擁有者的身分進行其他攻擊。
上市櫃公司必需要設立資安部門
金管會為了強化公司資訊安全管理機制,要求上市櫃公司設立資安單位,配置資訊安全專責人力。資安威脅日益嚴峻,金融業、保險、證券業者被駭的案例屢見不顯,因此要求更高度的資安機制,避免客戶機密資料遭到竊取。
Ref: https://ctee.com.tw/news/finance/664465.html
資安沒做好的案例
來看看幾個資安漏洞引發的災難
- 統一超商 於 2022 年 08 月 03 日, 7-11 的統一超商被駭客入侵,並在螢幕上覆蓋「戰爭販子裴洛西滾出台灣」的字樣。
- 台鐵螢幕遭駭客入侵 於 2022 年 08 月 03 日, 台鐵系統被駭客入侵,並在螢幕上顯示非台鐵內部所指定的資訊。
- 上海公安局資料庫被入侵中國居民資料、疫情資料外洩 2022 年 6 月 30 日,在某論壇中有用戶表示上海公安資料庫洩漏,資料庫中有十億中國居民訊息和數十億病歷紀錄,包括姓名、地址、出生地、身分證、手機號碼、犯罪紀錄與詳情,更是在網路上進行販售、轉手。 Ref: https://ezone.ulifestyle.com.hk/article/3292329/上海公安數據庫疑被入侵 10 億人資料售 157 萬港元
OWASP
OWASP(Open Web Application Security Project) 是非營利組織,主旨在促進軟體安全。OWASP 透過「社群領導與開源的軟體專案」、「上百個資安篇章」、「上萬個會員」、「領導級的教育訓練會議」成為開發者增進 Web 安全的資訊來源。每年都會統計相關資料資安案例,並將其進行排序,由此可以看到何種議題是較常發生、被關注。如 2021 年的排序為下表所示:
- A01:2021-Broken Access Control
- A02:2021-Cryptographic Failures
- A03:2021-Injection
- A04:2021-Insecure Design
- A05:2021-Security Misconfiguration
- A06:2021-Vulnerable and Outdated Components
- A07:2021-Identification and Authentication Failures
- A08:2021-Software and Data Integrity Failures
- A09:2021-Security Logging and Monitoring Failures
- A10:2021-Server-Side Request Forgery
駭客類型
白帽駭客
將知識用於可接受或合法的目的,入侵系統評估安全、缺陷,提出可改善的建議。或與公司或組織合作來提高資訊安全,或以個人工作者的身份尋找系統漏洞來賺取獎金。
黑帽駭客
行動的出發點是惡意的,利用自己的資安技術從事各種非法活動,有時甚至是犯罪活動,包括但不僅限於
- 竊取資料、網路身份或金錢
- 入侵系統經常是因為有挑戰性或只是好玩
- 散佈不同類型的惡意軟體
- 對個人、公司甚至國家進行間諜活動,以竊取機密資料
- 破解軟體數位版權保護以非法使用
- 追蹤他人的網路活動
除了試圖直接入侵系統之外,黑帽駭客可能採取社交工程的手法來實現他們的目標。在這種情況下,只要按下惡意連結或下載來路不明的軟體,設備就可能受到感染。黑帽駭客是最需要留意的一種駭客類型。
藍帽駭客
藍帽駭客,也可以被視為白帽駭客,會與軟體公司合作,在軟體發佈之前,尋找軟體的安全漏洞,測試軟體來找出弱點所在,然後交由開發人員修復。與白帽駭客的區別在於,軟體公司將安全性測試委託給外部公司中的藍帽駭客執行。
灰帽駭客
灰帽駭客的行為介於黑帽駭客和白帽駭客之間,技術能力往往超越黑帽駭客與白帽駭客。通常是為了引起人們對系統漏洞的注意而進行駭客攻擊,而不是為了系統的安全性。灰帽駭客通常是不道德和非法的行為,但不參與犯罪活動,而黑帽駭客則專門從事犯罪活動。
例如:灰帽駭客可能會主動找到您的系統漏洞,如果您願意付錢的話,他們可以幫您修復漏洞,或者他們找到您的系統漏洞之後,根本不會通知您。
激進駭客/紅帽駭客
激進駭客(紅帽駭客)進行攻擊來表達政治、意識型態、社會或宗教訊息,目的不是金錢或個人利益,而是因為各種原因揭露機密資訊。可能成為大規模活動的一部分,而這通常是一個持續的過程,而不是一次性的事件。例如:維基解密(WikiLeaks)、匿名者行動(Anonymous)。
腳本小子
腳本小子是指那些專門利用他人開發的腳本進行攻擊的網路滋事者,活躍於社群中,但通常不懂攻擊手法的原理,也無法自行撰寫腳本。
Day 2
常見的 Web 安全漏洞
在 2021 OWASP TOP 10 WEB APPLICATION SECURITY RISKS 列出的資安風險
- Injection
- Broken Authentication
- Sensitive Data Exposure
- XML External Entities (XXE)
- Broken Access Control
- Security Misconfiguration
- Cross-Site Scripting (XSS)
- Insecure Deserialization
- Using Components With Known Vulnerabilities
- Insufficient Logging & Monitoring
其中有幾個資安漏洞是每年都會出現在榜上的,例如:「Injection」、「XSS」等等。
SQL Injection
在一般的 SQL statement 中,插入惡意的 SQL 語句,使原邏輯發生改變,造成預期外的結果。造成駭客以他人的帳號進行登入,盜取該使用者資料,或任意行使該使用者之權限。
小練習
為了更了解此漏洞的「原理」、「成因」、「防禦方法」,自建有漏洞的伺服器,攻打自己的伺服器並修復!建立具有 SQL Injection 漏洞的伺服器,其中伺服器要能夠接受「利用 SQL Injection 繞過使用者登入密碼」、「Union 攻擊」、「Blind SQL 注入」、「檢查資料庫,取得 DBs 名稱、Tables 名稱、Schemas、Columns 名稱」攻擊。
XSS
XSS (Cross-Site Scripting) 在 OWASP 網頁安全漏洞中屬排名前十,XSS 主要是在 Input 的然為中輸入 HTML tags 或 JavaScript 腳本。XSS 中還根據類型進行細分「反射型」、「儲存型」、「DOM」。可能會導致資料的外洩、他人電腦遭駭客入侵,以及許多的災難。
小練習
為了更了解此漏洞的「原理」、「成因」、「防禦方法」,建立具有 XSS 漏洞的伺服器,攻打自己的伺服器後進行修復!建立具有 XSS 漏洞的伺服器,其中伺服器要能夠接受「反射型」、「儲存型」、「DOM型」的攻擊,其中的儲存型 XSS 建議以留言板的型式處理。
CSP
CSP 全寫為 Content Security Policy,內容安全策略,是一個額外的安全層,用於檢測並削弱特定類型的攻擊,包括跨站腳本和數據注入等攻擊,避免「資料盜取」、「網站內容汙染」、「散發惡意軟體」。
小練習
為了更了解此漏洞的「原理」、「成因」、「防禦方法」,利用上個 XSS 漏洞的伺服器,設定 CSP,禁止不該出現在網頁中的內容!繼承 XSS 所建立的伺服器,引入各個網址的資料,例如:「Youtube 影片」、「利用 iframe 引入其他網站」、「引入其他網站的圖片」,設定該伺服器的 CSP,禁止非允許的內容載入,並根據 CSP 提供的設定網頁內容來源、使用的 Protocol(https:)。
零時差攻擊
零時差攻擊,英文為 Zero-Day Attack,利用尚未修復,但已發布的漏洞進行攻擊。在修復前的時間就是開發商與駭客的競賽,前者修補漏洞,後者開發攻擊腳本、手法。而若是企業在開發商發布補丁後未及時更新、修補漏洞,就是將自己的伺服器或服務暴露在危險之中,甚至是任何人都能使用已知腳本攻擊企業的伺服器。
小練習
為了更了解此漏洞的「原理」、「成因」、「防禦方法」,利用較早期版本的套件或系統建立具有已知漏洞的伺服器,攻打自己的伺服器後進行修復!尋找該版本套件中已知漏洞的腳本,嘗試使用該腳本進行攻擊、入侵,並查找套件的版本更新內容,升級套件版本以解決這個漏洞。
瀏覽器安全政策
為了增加資訊安全的能力,各個瀏覽器也都多加了許多的限制,例如:禁止跨網域、跨來源的接收資料。然而,開發者在開發網站時,偶爾會使用非相同來源的資料,而這樣的安全政策將妨礙開發者進行開發,爾後又開發出了協議「CORS」來協助制訂相關的條款,以開放不同來源的資料。
CORS
跨域讀操作一般是不被允许的,而這種情况是我们開發過程中最關心、最常見的情況,因此必須解决。可以使用 CORS 來允許跨域訪問。CORS 是 HTTP 的一部分,它允許伺服器指定那些主機可以從這個伺服器加載資料。
小練習
為了更了解 CORS,需要建立前後端分離的應用,前端推薦使用 Angular 或 React 進行開發;後端推薦使用 Express.js 開發。開發完成後若未設定 CORS,Angular、React 是無法成功讀取從 Express.js 回傳的 Response,至此開始設定 CORS,並設定好 origin 避免後端遭受其他未經允許的前端服務訪問。
Day 3
弱點掃描工具
弱點掃描工具可以協助開發者觀察應用程式是否有弱點,檢測的項目包含但不僅限於「探測主機狀態」、「網路阜號狀態」、「作業系統類型」、「系統應用程式類型」、「弱點檢測」等等,根據報告修復弱點,確保應用程式的安全性。弱點掃描軟體有許多種類,但未經伺服器持有者的允許,請勿隨意嘗試以免觸法
免費版
- Nikto
- Wikto
- Jsky
- Skipfish
- Scrawlr
商業版
- Acunetix
- IBM AppScan
- HP WebInspect
- N-Stalker
- Nessus
- OpenVAS
嘗試使用免費版的弱點掃描工具掃描自行搭建的設備,但需要特別注意,未經允許請勿掃描任何他人的設備、網站。
CVE 網站
CVE,全寫為 Common Vulnerabilities and Exposures,為「公開揭露的電腦安全漏洞清單」,而每個安全漏東都有各自的安全漏洞編號 CVE ID。CVE 有助專業人士互相協調工作,決定各漏洞的優先處理順序,最後解決這些漏洞能夠讓系統、軟硬體更加安全。
TVN 漏洞公告 網站
TVN,全寫為 Taiwan Vulnerability Note,為台灣電腦網路危機處理暨協調中心(Taiwan Computer Emergency Response Team / Coordination Center)中的一份資料,中心亦提供企業資安事件諮詢、協調、協助服務,推動資安情資分享、舉辦資安宣傳活動。
除了 Web 的漏洞外,還有系統漏洞
一個系統與伺服器,除了 Programmer 本身資安意識不足所導致的資安漏洞外,還有許多引發資安問題的層面,例如:「OS 漏洞」、「平台引擎漏洞」、「套件漏洞」。
- OS 漏洞 基於使用的作業系統本身的漏洞
- CVE-2021-30860,駭客利用 Forcedentry 漏洞把 Pegasus 植入蘋果手機中,在蘋果圖像渲染函式庫 CoreGraphics,利用整數溢位漏洞。當處理惡意 PDF 時,允許駭客執行任意程式
- CVE-2021-40444,Windows 系統中攻擊者可以傳送 Office 文件,開啟後會連上含惡意 ActiveX 控制項網站,下載惡意程式讓駭客可執行任意程式碼、接管整台電腦
- 平台引擎漏洞 Server-Side Template Injection 中有一經典案例,Python-jinja2 作為模板引擎時會有注入的風險。例如: jinja2 中設定 name 為參數(string),
{{ name }}
會渲染該變數的內容,當 name 輸入 7+7,那麼輸出將為 14;當 name 是為更複雜的資料、指令時,將會導致更嚴重的後果 - 套件漏洞 像是 Log4j2 核彈級資安漏洞 — CVE-2021-44228。Log4j 通常是用來記錄 Web Request 的,但是當此紀錄中具有特定格式的文字就會觸發系統執行指令。但稱之為核彈級漏洞主要是因為
- Log4j 套件使用人數極多
- 觸發容易
- 能造成極大的影響
如何做好資安防範
- 關注資安議題
- 關注系統與套件的補丁
- 定期檢測系統弱點
- 設定資安專責 或 資安公司合作尋找系統漏洞
- 提升系統管理人資安能力
- 強化網路安全管理
- 加強系統取存控制
相關的工作與內容
💡 此工作內容僅供參考,並不適用於任一公司職位的內容、規範
- 資安工程師
- 日常資安檢測
- 資安事件處理反映
- 設備監控、維護
- Log 檢核
- 資安分析師
- 公私聯防、情資交換、技術研究
- 案例分析、事件鑑識
- 技術支援
- 運作 CSIRT 、PSIRT 群組
- 制定資訊安全事故通報與回應 SOP
- 資安長
- 資安規範制定、修訂、執行成效檢核
- 資安法令遵循、風險評估、執行情況彙整呈報
- 協助組織運作、相關單位協調溝通
- 資安於專案中的規劃、導入、執行、風險評估
- 支援海內外資安相關事務,包含規範修訂、資安於專案內的規劃、導入、結果檢核