iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
Security

建構安全軟體開發系列 第 2

建構安全軟體開發 EP 02

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

本篇是 建構安全軟體開發 系列文的 EP02。


當然,要在本系列文的一開始,仍是要來做一些幾項常被談及的資安觀點及個人的闡述,以避免後續在閱讀文章時有認知上的誤差產生。

  • C.I.A. Triad : 資安三角
  • A.A.A. : 3 A. 原則

C.I.A. Triad : 資安三角

C.I.A
Confidentiality - Integrity - Availability

C - Confidentiality (機密性)

在所確保存取的資訊是經核可授權的狀態下,有機敏性相關的資訊傳遞和儲存時,都必須經過加密的處理。

EX:
若發生其機敏性相關的資料若 "不慎" 外洩,由於資料已經經過加密處理而無法識別,透過取得授權或是認證設備才能還原其資料。

I - Integrity (完整性)

確保修改資訊時是經授權的,所使用的資訊在傳送或儲存過程中,必需確保並能證明內容並未遭到竄改或偽造。

EX:

  • 在下載網際網路上的檔案時,是否有透過官方提供之雜湊值,驗證該檔案是官方正式提供的,以避免所下載的檔案遭到偽冒。
  • 在開發使用第三方套件(如: npm、nuget...等)時,是否有真的確認其正確性(如: 憑證簽署、發行單位...等)後,才進行運用到所開發的程式中。

A - Availability (可用性)

確保資訊能在經正確的授權情況下,隨時能夠傳輸、儲存、處理,且保持所使用的系統不能中斷其服務。

EX:
若遭受惡意程式、勒索軟體、分散式阻斷服務...等手法攻擊時,盡可能 的去維持系統服務的正常運作。

因此 Availability (可用性) 的觀點可再延伸 3 R. 的議題討論。

3 R. : Reliability - Resiliency - Recoverability

  • Reliability(可靠度): 確認服務的功能是否都能如期如時的正常運作。
  • Resiliency(堅韌度): 在遭遇問題的當下,如何盡可能地維持運作下去。
  • Recoverability(復原度): 當問題發生後,要如何快速的恢復正常運作。

A.A.A. : 3A. 原則

A.A.A.
Authentication - Authorization - Accounting

Authentication (驗證)

身份的鑑別,透過 Something You Know?, Have?, or Are? 來達成 SFA(單一因子驗證)、2FA(雙重因子驗證)、MFA(多重因子驗證)。

Ex:
是否能透過密碼、密語,晶片卡、自然人憑證,指紋、虹膜...等方式,去進行交叉驗證的身份鑑別。

在當前人人手上都有智慧型手機的時代,就比較簡單透過已認證過的手機取得身份驗證,比如說使用行動網銀 App,除了透過原本就有的且各家銀行常見的 "帳號、密碼、使用者代碼" 驗證外,也可以透過手機的指紋辨識(Android 的 Fingerprint)或人臉辨識(iOS 的 FaceId),作為登入行動網銀的驗證方式。

  • 其中 "帳號、密碼、使用者代碼" 可說是 Something You Know 的代表。
  • 已認證過的手機則可說是 Something You Have 的代表。
  • 指紋辨識或人臉辨識則可說是 Something You Are 的代表。

而若登入之後,在控管比較嚴格的行動網銀 App 當中,若要執行金融交易的時候,通常會當下交易的進行中,再要求另一個層面的 "驗證" 選項,達到 MFA (多重因子驗證) 的處理。

Authorization (授權)

控制該身份應有的存取權以及其授予權限之方式 (What/How you can do?),以避免不必要的逾權問題。

Ex:

  • DAC(自主存取控制模式)
  • MAC(強制存取控制模式)
  • RBAC(以角色為基礎的存取控制模式)
  • ABAC(以屬性為基礎的存取控制模式)
    ...等。

Accounting (稽核)

存留應有的活動紀錄並能歸責肇因。(Accountability and Accounting/Auditing)

Ex:
透過 log(日誌) , timestamp(時戳)...等紀錄,完成 5 種 W(When, Where, How, Who, Why)的資訊的保存,並能從其推論究因歸責後,對系統或服務進行修正與改善,以避免再次發生該問題。

C.I.A. Triad vs. 3A. 原則

  • C.I.A. Triad 是要討論其目標性。
  • 3A. 原則是要討論其手段性。

不斷的持續透過目標性與手段性來達成 資訊安全



上一篇
建構安全軟體開發 EP 01
下一篇
建構安全軟體開發 EP 03
系列文
建構安全軟體開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言