iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 5
0
Security

看完眼眶濕濕的App開發者慘烈對抗險惡資安環境血與淚的控訴!系列 第 5

Day 05. 暈頭轉向資安檢測項目表,看完了還是有沒有懂

關連性最複雜的就是技術要求跟資安檢測項目表

為了清楚的條列,要把所有目查核表表列整理出來,以便進行後續說明
光打檢測項目表就累了,想到還要整理,心就更累了 (喂!這東西不是打在這邊的吧)

資安檢測項目表

「★」表示檢測項目;「-」表示參考項目

也就是說「★」一定會在檢測報告內,「-」 建議符合提供參考,但不納入檢查報告內

要求面向 要求事項 技術要求 L1 L2 L3
4.1.1.行動應用程式發布安全 4.1.1.1.行動應用程式發布 4.1.1.1.1.行動應用程式應於可信任來源之行動應用程式商店發布
4.1.1.1.2.行動應用程式應於發布時說明欲存取之安全敏感性資料、行動裝置資源及宣告之權限用途
4.1.1.2.行動應用程式更新 4.1.1.2.1.行動應用程式應於可信任來源之行動應用程式商店發布更新
4.1.1.2.2.行動應用程式應提供更新機制
4.1.1.2.3.行動應用程式應於安全性更新時主動公告
4.1.1.3.行動應用程式安全性問題回報 4.1.1.3.1.行動應用程式開發者應提供回報安全性問題之管道
4.1.1.3.2.行動應用程式開發者應於適當之期間內回覆問題並改善
4.1.2.安全敏感性資料保護 4.1.2.1.安全敏感性資料蒐集 4.1.2.1.1.行動應用程式應於蒐集安全敏感性資料前,取得使用者同意
4.1.2.1.2.行動應用程式應提供使用者拒絕蒐集安全敏感性資料之權利
4.1.2.2.安全敏感性資料利用 4.1.2.2.1.行動應用程式應於使用安全敏感性資料前,取得使用者同意
4.1.2.2.2.行動應用程式應提供使用者拒絕使用安全敏感性資料之權利
4.1.2.2.3.行動應用程式如採用通行碼認證,應主動提醒使用者設定較複雜之通行碼
4.1.2.2.4.行動應用程式應提醒使用者定期更改通行碼
4.1.2.3.安全敏感性資料儲存 4.1.2.3.1.行動應用程式應於儲存安全敏感性資料前,取得使用者同意
4.1.2.3.2.行動應用程式應提供使用者拒絕儲存安全敏感性資料之權利
4.1.2.3.3.行動應用程式儲存之安全敏感性資料,應僅用於其使用聲明之用途
4.1.2.3.4.行動應用程式應避免在關閉及登出後將安全敏感性資料儲存於冗餘檔案或日誌檔案中
4.1.2.3.5.行動應用程式應避免將安全敏感性資料儲存於冗餘檔案或日誌檔案中
4.1.2.3.6.安全敏感性資料應採用適當且有效之金鑰長度與加密演算法,進行加密處理再儲存
4.1.2.3.7.安全敏感性資料應儲存於受作業系統保護之區域,以防止其他應用程式未經授權之存取
4.1.2.3.8.安全敏感性資料應避免出現於行動應用程式之程式碼
4.1.2.3.9.行動應用程式於非使用者主動進行的畫面擷取時應主動警示使用者
4.1.2.4.安全敏感性資料傳輸 4.1.2.4.1.行動應用程式透過網路傳輸安全敏感性資料,應使用適當且有效之金鑰長度與加密演算法進行安全加密。
4.1.2.5.安全敏感性資料分享 4.1.2.5.1.行動裝置內之不同行動應用程式間,應於分享安全敏感性資料前,取得使用者同意
4.1.2.5.2.行動應用程式應提供使用者拒絕分享安全敏感性資料之權利
4.1.2.5.3.行動應用程式分享安全敏感性資料時,應避免未授權之行動應用程式存取
4.1.2.6.安全敏感性資料刪除 4.1.2.6.1.行動應用程式如涉及儲存使用者安全敏感性資料,應提供使用者刪除之功能
4.1.3.交易資源控管安全 4.1.3.1.交易資源使用 4.1.3.1.1.行動應用程式應於使用交易資源時主動通知使用者
4.1.3.1.2.行動應用程式應提供使用者拒絕使用交易資源之權利
4.1.3.2.交易資源控管 4.1.3.2.1.行動應用程式應於使用交易資源時進行使用者身分鑑別
4.1.3.2.2.行動應用程式應記錄使用之交易資源與時間
4.1.4.行動應用程式使用者身分鑑別、授權與連線管理安全 4.1.4.1.使用者身分鑑別與授權 4.1.4.1.1.行動應用程式應有適當之身分鑑別機制,確認使用者身分
4.1.4.1.2.行動應用程式應依使用者身分授權
4.1.4.2.連線管理機制 4.1.4.2.1.行動應用程式應避免使用具有規則性之交談識別碼
4.1.4.2.2.行動應用程式應確認伺服器憑證之有效性
4.1.4.2.3.行動應用程式應確認伺服器憑證為可信任之憑證機構所簽發
4.1.5.行動應用程式碼安全 4.1.5.1.防範惡意程式碼與避免資訊安全漏洞 4.1.5.1.1.行動應用程式應避免含有惡意程式碼
4.1.5.1.2.行動應用程式應避免資訊安全漏洞
4.1.5.2.行動應用程式完整性 4.1.5.2.1.行動應用程式應使用適當且有效之完整性驗證機制,以確保其完整性。
4.1.5.3.函式庫引用安全 4.1.5.3.1.行動應用程式於引用之函式庫有更新時,應備妥對應之更新版本,更新方式請參酌4.1.1.行動應用程式發布安全
4.1.5.4.使用者輸入驗證 4.1.5.4.1.行動應用程式應針對使用者於輸入階段之字串,進行安全檢查
4.1.5.4.2.行動應用程式應提供相關注入攻擊防護機制
4.2.2.伺服器端安全檢測 4.2.2.1.Webview安全檢測 4.2.2.1.1.行動應用程式應使用Webview與遠端伺服器進行網頁資源交換
4.2.2.1.2.行動應用程式於Webview呈現功能時,所連線之網域應為安全網域

App 送測分類檢查

依照調查表決定評估APP使用到的功能及權限,檢測方會依照功能性確認應用程式類別。下圖為各類行動應用程式檢測的數量

截圖 2020-09-20 下午3.10.56

檢驗項目查核表

資安檢測項目表 用L3為例,整理出全部查核表共30項目

檢查面向 檢驗項目
4.1.1 行動應用程式發布安全 4.1.1.1.2 行動應用程式發布說明
4.1.1.3.1 行動應用程式問題回報
4.1.2 安全敏感性資料保護 4.1.2.1.1 行動應用程式安全敏感性資料蒐集聲明
4.1.2.1.2 行動應用程式提供使用者拒絕安全敏感性資料蒐集機制
4.1.2.3.1 行動應用程式安全敏感性資料儲存聲明
4.1.2.3.2 行動應用程式提供使用者拒絕安全敏感性資料儲存機制
4.1.2.3.5 行動應用程式安全敏感性資料儲存限制
4.1.2.3.6 行動應用程式安全敏感性資料儲存保護
4.1.2.3.7 行動應用程式安全敏感性資料儲存控管
4.1.2.3.8 行動應用程式安全敏感性資料硬碼(HardCode)
4.1.2.3.9 行動應用程式畫面擷取警示
4.1.2.4.1 行動應用程式安全敏感性資料傳輸
4.1.2.5.1 行動應用程式安全敏感性資料分享聲明
4.1.2.5.2 行動應用程式提供使用者拒絕安全敏感性資料分享機制
4.1.2.5.3 行動應用程式安全敏感性資料分享權限控管
4.1.3 交易資源控管安全 4.1.3.1.1 行動應用程式交易資源使用聲明
4.1.3.1.2 行動應用程式拒絕交易資源使用機制
4.1.3.2.1 行動應用程式交易資源使用者身分鑑別
4.1.3.2.2 行動應用程式交易資源紀錄
4.1.4 身分鑑別、授權與連線管理安全 4.1.4.1.1 行動應用程式使用者身分鑑別機制
4.1.4.1.2 行動應用程式使用者身分授權
4.1.4.2.1 行動應用程式交談識別碼規則性
4.1.4.2.2 行動應用程式伺服器憑證有效性
4.1.4.2.3 行動應用程式伺服器憑證簽發來源
4.1.5.行動應用程式碼安全 4.1.5.1.1 行動應用程式惡意程式碼
4.1.5.1.2 行動應用程式資訊安全漏洞
4.1.5.3.1 行動應用程式函式庫引用安全
4.1.5.4.1 行動應用程式使用者輸入檢查
4.1.5.4.2 行動應用程式注入攻擊防護機制
4.2.2 伺服器端安全檢測 4.2.2.1.2 行動應用程式之 Webview 安全檢測

小結

從最後整個表整理完,哪些是必須要查核的項目,一目了然

哪些可以列為參考項目,可以深入了解後在評估是否也做適當的處理

至此廢話整體介紹終於都講完了,開始進入大家感興趣的正題

進一步反思

前項 檢驗項目查核表 ,列入參考不需要檢查共有 14 項(應該算13項,因為 4.1.2.3.4 和 4.1.2.3.5 屬二選一狀況) ,但這14項就都不重要了嗎?! 當然不是這樣!

那為什麼都沒有列在檢查項目呢,個人認為是有些很難用主觀去進行查核

其中有一個很有意思的例子,而且我認為也是裡面最難的一個項目

4.1.5.2.1.行動應用程式應使用適當且有效之完整性驗證機制,以確保其完整性。

所需技術是採用程式碼混淆保護商業邏輯,以及使用雜湊值驗證整個 App ,確保完整性

But!光混淆這個領域就是很博大精深,又該做到什麼程度才算符合?

App簽名又該怎麼簽名,Apple 又會重新簽署App,又該怎麼做,沒有一定標準

因此像這類的項目是列為提供給送驗單位參考,保留主控讓送驗單位抉擇是否在加強防護

雖然大家都是以拿到證書就好 emoticon37.gif


上一篇
Day 04. 每次都找不到我要的文件,資安規範文件到底要怎麼看?
下一篇
Day 06. 資安檢測(I) 4.1.1.行動應用程式發布安全
系列文
看完眼眶濕濕的App開發者慘烈對抗險惡資安環境血與淚的控訴!31

尚未有邦友留言

立即登入留言