Slide 1

Slide 1 text

高セキュリティ要件を満たす ためのiOSアプリ開発 あんとにー @iOSDC2025 day1 MASVS v2.0.0対応から学ぶ実践知見 1

Slide 2

Slide 2 text

About Me 神原 良継(あんとにー ) 2023年サイバーエージェント新卒入社 タップルの iOSエンジニア #愛車のIoT化 2

Slide 3

Slide 3 text

Today’s Goals 皆様のiOSアプリがセキュリティ要件 を 満たしているかチェックが始められる! 🥳 3

Slide 4

Slide 4 text

Contents 【準備編】 ・なぜiOSアプリでセキュリティ対応? ・ MASVSとは? 【実践編】  ・ 実例を交えた対応の流れ 【まとめ】 4

Slide 5

Slide 5 text

【準備編】 なぜiOSアプリでセキュリティ対応 ? 5

Slide 6

Slide 6 text

【準備編】なぜ iOSアプリでセキュリティ対応 ? 通信やクラウドだけじゃない モバイルクライアント も攻撃対象 6

Slide 7

Slide 7 text

【準備編】リスク iPhoneの紛失・盗難 バックアップや保存データから漏洩 7

Slide 8

Slide 8 text

【準備編】リスク クリップボード経由 入力したパスワードが他アプリに 8

Slide 9

Slide 9 text

【準備編】リスク 改ざん アプリを書き換えて不正利用 9

Slide 10

Slide 10 text

【準備編】なぜ今? DX化 10

Slide 11

Slide 11 text

【準備編】 MASVSとは? 11

Slide 12

Slide 12 text

【準備編】 MASVSとは? OWASP MAS(Mobile Application Security) https://mas.owasp.org/ 12

Slide 13

Slide 13 text

【準備編】 MASVSとは? MASVS:セキュリティ要件の標準 MASTG:テスト方法のガイド MASWE:モバイルにおける弱点リスト MAS Checklist:検証チェックリスト 13

Slide 14

Slide 14 text

【準備編】 MASVSとは? MASVS- STORAGE MASVS- CRYPTO MASVS- AUTH MASVS- NETWORK MASVS- PLATFORM MASVS- Code Quality MASVS- RESILIENCE MASVS- Privacy https://mas.owasp.org/MASVS/ 14

Slide 15

Slide 15 text

【準備編】MAS Checklist https://mas.owasp.org/checklists/MASVS-STORAGE/#ios 15

Slide 16

Slide 16 text

【準備編】MAS Checklist 16 https://mas.owasp.org/checklists/MASVS-STORAGE/#ios

Slide 17

Slide 17 text

【準備編】MAS Checklist 17 https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0052/

Slide 18

Slide 18 text

【実践編】 18

Slide 19

Slide 19 text

【実践編】 脅威モデリング とギャップ分析 19

Slide 20

Slide 20 text

脅威モデリング とギャップ分析 脅威モデリング ・守るべき資産・機密情報 (sensitive data)を洗い出す ・想定される攻撃を洗い出す MAS Checklistとのギャップ分析 ・現状とチェックリストの差を確認 20

Slide 21

Slide 21 text

実践例 21

Slide 22

Slide 22 text

MASVS-STORAGE-1 https://mas.owasp.org/MASVS/controls/MASVS-STORAGE-1/ 22

Slide 23

Slide 23 text

MASVS-STORAGE-2 23 https://mas.owasp.org/MASVS/controls/MASVS-STORAGE-2/

Slide 24

Slide 24 text

MASTG-TEST-0052 https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0052/ 24

Slide 25

Slide 25 text

MASTG-TEST-0052 25 Overview ・アプリが保存する機密データを特定 ・ソースコード解析、アプリ機能実行、生成ファイルの確認 Static Analysis ・パスワード、秘密鍵、 PIIなどを保護なしに保存していないか ・UserDefaultsへの平文保存は NG ・Keychainや暗号化を推奨 https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0052/

Slide 26

Slide 26 text

26 悪い例

Slide 27

Slide 27 text

27 修正後

Slide 28

Slide 28 text

28 修正後(全文)

Slide 29

Slide 29 text

どこから機密データ? 定義: ・漏洩した場合ユーザやアプリに 損害を与える可能性のある情報 判断軸:  ・このデータが漏洩したら、、、   ・ユーザに被害が出るか?   ・サービスが不正利用されるか?   ・規制やコンプライアンス違反につながるか?    29

Slide 30

Slide 30 text

動的解析 30 https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0052/

Slide 31

Slide 31 text

31 理想 と 現実のギャップ

Slide 32

Slide 32 text

判断基準は? 32 リスク     コスト

Slide 33

Slide 33 text

まとめ ・クライアントでもセキュリティ対策が必要 ・MASVS: セキュリティ要件の標準 ・MAS Checklistを確認しながら対応 Takeaway 全てをできなくても 優先度をつけてリスクの高いところから対応 33

Slide 34

Slide 34 text

【番外編】 34

Slide 35

Slide 35 text

静的解析だけでも AIにやらせられない? 35 🤔

Slide 36

Slide 36 text

試したこと ・MASTGに記載されてる OverviewとStaticAnalysisを.mdに記載 ・mdを元に解析を依頼 (Claude Code & Cursor) 36

Slide 37

Slide 37 text

いい感じ👍 37

Slide 38

Slide 38 text

参考文献 OWASP Mobile Application Security:https://mas.owasp.org/ OWASP MASVS: https://mas.owasp.org/MASVS/ MASVS-STORAGE: http://mas.owasp.org/checklists/MASVS-STORAGE/#ios MASTG-TEST-0052: https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0052/ MASVS-STORAGE-1: https://mas.owasp.org/MASVS/controls/MASVS-STORAGE-1/ MASVS-STORAGE-2: https://mas.owasp.org/MASVS/controls/MASVS-STORAGE-2/ 38