iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
1
Security

麻瓜不敗!白魔法藍天煉金術系列 第 28

[Day 28] 技能解封最終對決-誓死捍衛世界之石的秘密(Code security)

  • 分享至 

  • xImage
  •  

前言回顧

技能解封最終對決- 戰坑下的肉搏防衛(Azure Container Security)
https://ithelp.ithome.com.tw/upload/images/20190908/20025481zr6afutGYz.jpg

已領取技能符石

https://ithelp.ithome.com.tw/upload/images/20191003/20025481OuStLvjQlE.png

解封技能樹(Start)

https://ithelp.ithome.com.tw/upload/images/20191003/20025481HK7mDvy93q.png

適合的勇者?

曾經遭逢資安事件打擊者。

資安事件觀望者。

資安探索者。

IT過路人。

資安潛水幫。

資安擺渡人。*

https://ithelp.ithome.com.tw/upload/images/20190907/20025481886Opddny2.jpg

學完可以帶走甚麼?

種下資安的芽在自己心中讓資安意識更強大。

自己的資安生涯規劃師。

帶走心中的這棵樹,把樹傳出去。

你也可以是小小資安擺渡人。

單挑資安認證更有信心。

https://ithelp.ithome.com.tw/upload/images/20190907/20025481k086P7e0kc.jpg

泰瑞爾 vs 巴爾

https://ithelp.ithome.com.tw/upload/images/20190930/20025481qYGExkOefN.png

世界之石身世之謎

正邪兩大勢力從過去就一直不斷的夾雜在人類世界的保衛戰,而世界之石為何如此珍貴視為重要產物,原來在過去在創世神艾弩在對抗七頭龍時犧牲的自我後整個身體間唯一保存下來的器官,也就是靈魂之窗藍眼睛,這裡面紀錄的大大小小所有的戰役外,最重要的就是能夠打通貫穿人類世界的秘文,如果不法者一旦奪取就很可能會危害整個世界的平衡而籠罩於暗黑之中,故藍眼這樣的夢幻又致命的神器在保存過程間都有被注入招喚密令,時空戳記與心靈識別多項元素坎在藍眼中讓這原本看似得到者就可以為所欲為增添不少麻煩,回到人類聽得懂的代名詞"代碼安全"小弟先簡述一下此安全概念究竟為何?

常常傳統的資安的觀念上都是疊層架屋總覺得只要鋪上厚厚的安全設備的防禦就能萬無一失,殊不知那厚厚的防禦大部份都只是佔整個風險事件中的其中一環,雖然抵禦外敵用厚重的城牆並非沒有道理,假設目標只有一個就是就是保護城牆內的寶藏好了,但做這些防禦的驅動可是活生生的人啊!假使少數人的起心動念(內賊)所謂作業流程安全開始出了問題,而被竊取或是嘗試破壞這寶藏的外箱就是最後的一道關卡,如果需要耗費極大的力氣都還無法破解外箱又或是好不容易敲開外相才發現其實裡面的黃金白銀早就被調包只留下了難懂的線索,回歸現實請問這還玩得下去嗎?回歸人性天下無滴水不漏的安全但讓竊取者需要花上非常多的代價,而放棄打道回府或是留下太多蛛絲馬跡而被抓。

每年歷歷在目的重大資安事件頻傳,從少數像是信用卡號碼資料被外流盜刷,到現今隨意都是數以百萬計的個資暴露流出而大大增加的安全漏洞的風險威脅。程式碼本身能做到讓用戶上手好用已經是個標配,但還要在框上兼顧安全性這可不是一個簡單任務。從架構師到工程師再到稽核師最後管理者每個角度都需要模擬想像每個環節可能出錯的可能面向。雖然無法預測每個攻擊者會打算從哪開始又發覺了什麼?但我們的目標只有一個,就是竭盡所能降低被攻擊的各個可能面向、修正漏洞與任何潛在弱點可能發生的問題。

安全程式碼的心法技巧

  • 更為嚴謹的登入驗證機制作法
  • 儲存可適化需求即可,文鄒鄒到底什麼意思?其實講白了舉個例像是技術支援預設的郵件假設只需要指定的信箱一組就一組而不要為了怕日後可能用到就在副本加入非必要的,可能讓日後的有心人士留下想像或操縱的空間。
  • 提高密碼字串混合字元符號的複雜度
  • 臨時性新增的需求功能介面是否會成為原本都安全框架好的唯一漏洞
  • 增加延遲時間在程式碼中,像是遇到暴力破解都上百萬千萬次的迴圈重複猜密碼就需要錯誤登入多次而讓系統驗證做延遲兩倍至數倍的時間才允許登入
  • 重視資料加密性,加解密程序的確讓開發者覺得很繁瑣,一旦資料處理上越繁瑣也一樣代表著提高攻擊者的難度。
  • 資料傳輸隔離性,簡單說就是把最機敏的資料放到最裡層並增加身份驗證的機制不只是隱匿性還增加驗證難度。
  • 選擇一開始好的程式語言及其相關程式庫,這是一開始程式語言的系統性問題,就是慎選。
  • 限制授權,不要給非相關專案成員也能預先存取的權力。
  • 程式碼安全分析服務
  • 雙向信任,為了能確認雙方真實性而非只是單向。
  • 時常跟上時事了解資安威脅最為借鏡適時防範。
  • 資安人文素質的提升。

軟體安全檢測?
測試模式而言其實都有所謂黑箱或白箱常見的通俗說法。

  • 白箱測試(White-Box Testing)是以測試的深度為主,可分為資料流程及控制流程兩種層面,資料流程主要是測試資料在程式執行過程中經過的一連串流程;而控制流程面則是測試程式在執行過程中每個階段任務上的流程。在應用上可以針對單元測試、整合測試和系統的軟體測試流程,測試在整合過程中每個單元間的路徑或主系統與其分支下子系統的測試任務。不過對於原本就沒有在使用的規範部份就可能是無法檢測。
  • 黑箱測試(Black-Box Testing)則無需要對軟體內部結構深層了解反而是直接針對軟體程式反映出的功能層面來進行驗證。可適合大部份軟體測試如單元測試、整合測試及系統測試
    故程式碼安全性檢測上,黑箱就是所謂動態安全檢測,也就是指應用程式在執行過程中的狀態透過黑箱手法模擬駭客攻擊行為來驗證系統是否有漏洞。而白箱就是靜態程式安全檢測,直接掃描程式結構與撰寫語法本身。
    https://ithelp.ithome.com.tw/upload/images/20191005/20025481i41bD6Sjs8.jpg

反惡意程式碼掃描工具建議
前置作業:以 Azure 為例則需要 DevOps 組織許可行為.
BinSkim 為可移植性輕量掃描服務,主要可針對驗證編譯器、連結器設定及二進位檔案的其他安全性相關特性。
BinSkim Binary Analyzer
微軟安全性風險偵測(MSRD)
安全性風險偵測(MSRD)
Roslyn 分析器
Roslyn based Analyzers
TSLint 靜態分析工具

上屆鐵人主題

如果有興趣對您有幫助也請多多支持,歡迎給小弟建議或互相交流!

Google Cloud 勇者的試煉

玩轉 Azure 於指尖隨心所欲


上一篇
[Day 27] 技能解封最終對決- 戰坑下的肉搏防衛(Azure Container Security)
下一篇
[Day 29] 暗黑外傳番外篇 (Windows Virtual Desktop on Azure)
系列文
麻瓜不敗!白魔法藍天煉金術30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言