Slide 1

Slide 1 text

⽬指せ︕モバイルのセキュリティ品質向上への道 〜モバイル専⾨のPSIRTを組織した話〜 サイボウズ株式会社 開発本部 PSIRT ⼩⻄達也 #devboost

Slide 2

Slide 2 text

⾃⼰紹介 ▌名前: ⼩⻄達也(こにし・たつや) ▌所属: n サイボウズ株式会社 開発本部 Cy-PSIRT ▌業務内容: n kintoneの脆弱性診断 n サイボウズ脆弱性報奨⾦制度の運営業務 n フロントエンド開発チームのセキュリティ担当など ▌最近は、モバイルアプリのセキュリティ強化に向けて活動中

Slide 3

Slide 3 text

⽬次 ▌PSIRTとセキュリティ ▌PSIRTとモバイルアプリを取り巻く状況 ▌解決のための取り組み n 知識と技術を増やす n モバイルアプリに特化した専⾨チームの⽴ち上げ n アプリの脆弱性診断体制の構築 ▌取り組みの結果 ▌まとめ

Slide 4

Slide 4 text

PSIRTとセキュリティ

Slide 5

Slide 5 text

開発とセキュリティ ▌開発においてセキュリティがより重視される時代となった。 ▌⾃社開発のソフトウェアのセキュリティ⾯での品質の確認や向上を ⽬指すことは重要となってきている。 ▌製品のセキュリティに対応するチームとしてサイボウズにはPSIRTがいる。

Slide 6

Slide 6 text

PSIRTについて ▌PSIRT = Product Security Incident Response Team ▌製品のセキュリティ品質向上やインシデント対応・⽀援などを⾏うチーム ▌主な業務内容 n 脆弱性診断・評価・報告・公開 n サイボウズ脆弱性報奨⾦制度 n 開発チームとの製品セキュリティに関する連携 ▌詳しくは、Cybozu Inside Out 「Cy-PSIRTの紹介」 をご覧ください。

Slide 7

Slide 7 text

PSIRTとモバイルアプリを取り巻く状況

Slide 8

Slide 8 text

PSIRTとモバイルアプリの状況と要因 ▌状況: n モバイルアプリに関して診断を⼗分に内製化できていなかった ▌要因: n モバイルアプリの診断に関する知⾒が⼗分になかったこと n モバイルアプリに特化した体制がなかったこと

Slide 9

Slide 9 text

解決のための取り組み ▌知識と技術を増やす ▌モバイルアプリに特化した専⾨チームの⽴ち上げ ▌モバイルアプリの脆弱性診断体制の構築

Slide 10

Slide 10 text

知識と技術を増やす

Slide 11

Slide 11 text

モバイルの基礎知識を増やす ▌AndroidとiOSの基礎技術の理解 n AndroidとiOSの特性やセキュリティ機能 n モバイルに関する基礎技術 ▌学習に利⽤したドキュメント n Android Developer Document n https://developer.android.com/guide n Apple Developer Documentation n https://developer.apple.com/documentation

Slide 12

Slide 12 text

モバイルアプリの脆弱性や診断観点の知識を増やす ▌著名なモバイルアプリのセキュリティドキュメントを参考に知⾒の収集 n OWASP MASVS n モバイルアプリの診断観点 n https://github.com/OWASP/owasp-masvs/ n OWASP MASTG n モバイルの脆弱性や具体的なテスト⽅法 n https://github.com/OWASP/owasp-mastg/ n Androidアプリのセキュア設計・セキュアコーディングガイド n JSSECが作成したAndroidアプリのセキュアな実装⽅法 n https://www.jssec.org/dl/android_securecoding_20220829/index.html

Slide 13

Slide 13 text

モバイルアプリの脆弱性で利⽤される攻撃パターン アプリの機能や通信への攻撃 シンク先 ① ② アプリや端末への攻撃 解析 ③ ④ 悪意あるアプリからの攻撃 ⑤

Slide 14

Slide 14 text

モバイルの脆弱性のマップ 機密情報の漏洩 ストレージ・DB・内部ファイルからの漏洩 ログやエラーの漏洩 キャッシュ・メモリからの漏洩 機微情報のハードコード デバックコードからの漏洩 第三者への機密情報の送信による漏洩 バックアップからの漏洩 画⾯UI上からの漏洩 IPCを通じた漏洩 クリップボードからの漏洩 機密情報の不適切な管理 マニフェストファイルの不要な設定 アクセス制御の不備 パーミッションの設定不備 インテントの不適切な設定 コンポーネントの公開不備 プロバイダの不適切な設定 アプリの設定不備 XSS(WebView) SQL injection ディレクトリトラバーサル アプリクラッシュ サーバAPIの不備 インテントの⼊⼒検証不備 XML injection メモリ破壊 ⼊⼒検証不備 URLスキームの設定不備 タップジャッキング オーバーレイ攻撃 偽装系 脆弱な暗号 サーバ証明書の検証不備 リバースエンジニアリング対策の不備 認証・セッション周りの不備 その他設定不備

Slide 15

Slide 15 text

脆弱性やツールへの理解を深める ▌脆弱性の検出⽅法を⼿を動かしながら理解を深めた。 ▌モバイル版のやられアプリを利⽤ n InsecureBankv2 n 基礎的なモバイルアプリの脆弱性が実装されたAndroidアプリ n https://github.com/dineshshetty/Android-InsecureBankv2 n 脆弱性の仕組みやツールを利⽤した診断テクニックを学習

Slide 16

Slide 16 text

最新の知⾒の収集と分析 ▌公開CVEやバグバウンティレポートを元に最新のモバイルの脆弱性 情報を収集 n モバイルに関する公開CVE情報 n NVDから約3年分(2023年の前半〜2019年) n JVNから約6年分(2023年の前半〜2017年) n HackerOneのレポート

Slide 17

Slide 17 text

CVE情報の収集例 参照元: National Vulnerability Database: https://nvd.nist.gov/ Japan Vulnerability Notes : https://jvn.jp/

Slide 18

Slide 18 text

収集・分析の結果 ▌最近では以下が多く報告されていた。 n サーバ証明書の検証不備 n アクセス制御の不備 n 機密情報の漏洩 ▌モバイルの特性に合わせた攻撃もあった。 n インテントを経由した攻撃 n ディレクトリトラバーサル攻撃によるアプリ内情報の取得

Slide 19

Slide 19 text

モバイルアプリに特化した専⾨チームの⽴ち上げ

Slide 20

Slide 20 text

モバイルアプリに特化した専⾨チームの⽴ち上げ ▌各モバイルアプリの現状についてPSIRTメンバーにヒアリングを実施 ▌チームの⽴ち上げ n やるべきタスクの洗い出し n 開発チームへのヒアリング n チームの体制やフローの整備 ▌モバイルアプリ専⾨の相談窓⼝の開設・周知

Slide 21

Slide 21 text

モバイルアプリの脆弱性診断体制の構築

Slide 22

Slide 22 text

社内診断の流れ 新機能 診断可否の判断 試験仕様書作成 試験仕様書 診断の実施 報告 開発チーム

Slide 23

Slide 23 text

社内診断の流れ 新機能 診断可否の判断 試験仕様書作成 試験仕様書 診断の実施 報告 開発チーム ①診断観点 ③診断対応フロー ②診断⽅法

Slide 24

Slide 24 text

診断観点の作成 1. OWASP MASVSの輪講 n 輪講メモを記載 2. 診断観点の分類分け 3. 診断観点チェックシートの作成 診断観点の分類分け

Slide 25

Slide 25 text

診断観点チェックシート

Slide 26

Slide 26 text

診断⽅法の作成

Slide 27

Slide 27 text

診断対応フローの作成 ▌チーム内での診断フローの作成 n 製品ごとの診断の進め⽅ n 脆弱性を検出した際の報告⽅法 ▌診断を⼀元管理するkintoneアプリの作成 n 診断状況の管理 n 検出した挙動の議論の場として利⽤

Slide 28

Slide 28 text

取り組みの結果

Slide 29

Slide 29 text

取り組みによる解決と変化 ▌取り組みにより問題が解決され、内製化をスタートできた。 ▌⽴ち上げ後、様々な変化があった。 n モバイルの診断を社内で常時可能になった。 n モバイルの挙動に対して専⾨的な観点から判断が可能になった。 n 開発チームからモバイルに関するセキュリティ的な実装や相談を受ける 機会が増えた。 ▌モバイル製品のセキュリティ⾯での品質向上に繋がった。

Slide 30

Slide 30 text

改善点と今後の展望 ▌改善点 n 診断項⽬の最適化対応 n iOSの診断⽅法の拡充 n チーム全体での知⾒や技術を増やす場の提供 ▌今後の展望 n 診断⽅法の追加やアップデート対応 n ソースコードによる診断の実施(iOSの診断強化) n 定期的な社内の勉強会実施や社外トレーニングへの参加

Slide 31

Slide 31 text

まとめ ▌モバイルに関する専⾨のチームを組織したことで、モバイルアプリに対する セキュリティ周りの対応を内製化することができた。 ▌専⾨的な知⾒を元に判断が可能になり、開発側から相談される機会が 増えた。 ▌結果的に、モバイルアプリのセキュリティ品質が向上した。