All Articles

EP33 - 怎麼確保產品安全性?

Podcast連結


本集內容大綱

評估軟體與系統安全性需要考慮什麼

  • 軟體本身的安全性

    • 軟體本身有沒有漏洞?
    • 是否支援夠安全的加密方式?
    • 是否經歷過完善的測試與挑戰?
    • 是否有定期檢測與修補漏洞?
    • 企業/開發者是否執得被信任?
  • 軟體的設定與使用

    • 是否使用正確且適宜的設定?
    • 有沒有啟用資安相關保護功能?
    • 有沒有更改預設的帳號密碼?
    • 有沒有定期更新系統?

弱點、威脅、資產、風險

  • 弱點 Vulnerability:系統或是軟體上可能讓攻擊者入侵的管道
  • 威脅 Threat:會想要攻擊你的系統的那些人,如駭客、競爭對手等
  • 資產 Asset:系統內部重要並可能會成為目標的東西,如金錢、智慧財產等
  • 風險 Risk:結合了弱點、資產和威脅,指的是會攻擊你且讓你有所損失資產的可能性

ep33 threat asset vuln

程式碼審查 Code Review

通常指透過人工的方式檢查程式碼中是否有問題或錯誤

常見做法會是一個人寫完一段程式碼後,在正式發布前由幾位同事透過肉眼檢查程式碼中是否有潛在問題或是漏洞,確定沒有問題以後才會進到下一個步驟

面對自己寫的程式碼難以發現其中盲點,思考模式也比較受到侷限,工程師之間互相檢驗彼此的程式可以讓程式出現問題的機會大幅降低

  • 優點:有效提高整體程式碼品質,工程師也能互相學習,並進而讓程式碼更統一
  • 缺點:花費較多時間,程式碼中的錯誤不一定都會被發現

靜態分析 Static Analysis

從內部角度去檢視和分析程式

在程式碼沒有被執行的狀態下,透過自動化的工具掃描和檢查程式碼中是否存在常見或基本的錯誤

  • 優點:自動化、有效率的找出基本與常見錯誤
  • 缺點:無法找到比較系統性或深入複雜的問題

動態分析 Dynamic Analysis

從外部角度去分析程式可能有的問題

透過實際執行和使用程式來進行不同分析和測試,檢驗程式能否正確的和系統整合

模擬使用者在使用軟體時會遇到的bug與攻擊者在使用時可能可以找到的漏洞,透過實際執行的方式了解程式在運行上的問題

模糊測試 Fuzzing: 透過工具半自動的生成一些可能會把程式弄壞的資料,並把這些資料輸入進去我們要測試的程式中,看程式能不能夠正確的處理和應對這些資訊

威脅模型分析 Threat Modeling

站在這些威脅的角度思考有哪些方式可以攻擊和入侵我們的系統

  • 評估有哪些可能的弱點或是漏洞?
  • 這些方法被實踐的可能性和難易度有多高?
  • 攻擊者成功攻擊的話又會對我們有哪些影響?

透過搜集和分析這些資訊,可以知道怎麼樣強化系統的安全性,也可以適當地去安排這些強化的優先順序,從影響和威脅比較大的項目開始著手,減少我們有的威脅

弱點評估 Vulnerability Assessment

找出系統中所有可能的弱點,包含了電腦、伺服器、各種網路裝置、軟體和服務等等的所有東西。

透過弱點評估工具來掃描系統上的所有裝置,並檢查有沒有一些已知常見的漏洞,或是遺漏了重要的更新,如果有的話就會將這些資訊搜集起來並統計成報告之類的資訊,讓我們了解系統的弱點狀況。

市面上有許多弱點評估的軟體,我們透過這些軟體隨時取得最新的弱點評估資訊

滲透測試 Penetration Testing / Pentest

侵入式的檢測方式,使用駭客會使用的攻擊手法,試著去攻擊自己的系統,看看系統會不會被成功入侵。

目前還沒有辦法透過軟體或工具來自動化完成,需要專業的白帽駭客來親自執行,通常費用也會不便宜,因此常見的做法會是請第三方組織每過半年一年來進行一次。

弱點評估 vs. 滲透測試

弱點評估的檢查比較廣,能涵蓋的範圍比較大

滲透測試比起弱點評估,除了能發現弱點以外,還能分析和測試駭客會怎麼樣利用這些弱點來攻擊我們,在成功入侵以後,也能知道駭客可以取得哪些資訊和對我們造成哪些傷害。

紅隊 Red Team

公司內專職進行滲透測試的團隊

有些比較大的公司或是在資安上比較成熟的公司,會透過紅隊來持續檢視公司產品的安全性

軟體跟系統會持續的改變和更新,因此要確保公司的系統和軟體一直都處在夠安全的狀況下的話,與其一直花錢請外面的人,不如就直接雇用一群人來每天持續的測試和滲透。

紅隊也會因為長時間的在同一個系統和軟體上進行研究,因此會比較了解公司的產品和系統,在研究上通常可以找到一些比較深入的漏洞或問題。

藍隊 Blue Team

相對於紅隊這個比較攻擊取向的團隊,公司內部比較偏向防禦的團隊就會被稱為藍隊,他們負責的項目主要會是事件響應,也就是有疑似資安事件發生時要負責調查和應對。

漏洞獎勵 Bug Bounty

很多公司為了能夠吸引到世界各地的資安研究員來幫助他們找到系統的問題和漏洞,會設立漏洞獎勵計劃,來透過獎金的方式獎勵回報漏洞的資安研究員。

複習:EP29 漏洞回報獎勵機制

EP32 數位身分證關於獎金獵人的疑慮