SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Boost 2023 セッションレポート(AD)

サイボウズで脆弱性診断を内製化、モバイルアプリ専門のPSIRTを構築した方法とは?

【Session6】目指せ!モバイルのセキュリティ品質向上への道~モバイル専門のPSIRTを組織した話~

  • X ポスト
  • このエントリーをはてなブックマークに追加

 どの企業も社内のセキュリティ対策に取り組んでいるものの、自社が提供しているモバイルアプリのセキュリティ対策となると、まだ手つかずが多いのではないだろうか。いま顧客との接点でモバイルは欠かせない。サイボウズにおけるモバイルアプリのセキュリティ強化の取り組みについて、同社の小西達也氏が語る。

  • X ポスト
  • このエントリーをはてなブックマークに追加

モバイルアプリの脆弱性診断を社内でするための3つのポイント

 サイバー攻撃の脅威が増すなか、アプリケーションのセキュリティ品質向上を目指すことも重要な課題だ。サイボウズでは製品にフォーカスを当てて、セキュリティ品質向上やインシデント対応やその支援を行うチーム「PSIRT(Product Security Incident Response Team)」がある。主に脆弱性に関して取り組み、開発チームとの連携も多い。

 これまで同社ではモバイルアプリの脆弱性診断を外部の専門会社を通じて実施していたため、十分に内製化できていないことが課題となっていた。内製化できなかった背景にはモバイルアプリの診断に関する知見が十分になく「そもそも何を確認すればいいか分からない」や、診断を実施する体制がなかったことが挙げられる。

 そこでサイボウズ PSIRTでは、モバイルアプリの脆弱性診断の課題解決に向けて「モバイルの基礎知識を増やす」「モバイルアプリに特化した専門チームを立ち上げる」「モバイルアプリの脆弱性診断体制を構築する」の3つに取り組むことにした。

モバイルの基礎知識を増やす

 まずは基礎知識を固める。AndroidとiOS、それぞれのOSがどのような仕組みで動いているのか、使用されている技術にはどのようなものがあるのか、バージョンの違いなども含めてセキュリティ機能を中心に基本的な理解を深めた。

 小西氏は「基礎的なモバイル技術の理解を深め、脆弱性の仕組みや原因を理解するための土台作りをしていきました」と話す。なお理解を深めるための資料にはAndroid Developer DocumentやApple Developer Documentationなど各OSの開発者向けオフィシャルドキュメント類を参照した。

 脆弱性に関しても主要なドキュメントで学習した。代表的なものとしてソフトウェアのセキュリティ技術の情報共有や普及啓発を目的としたコミュニティOWASP(Open Worldwide Application Security Project)が公開している「OWASP MASVS」がある。こちらはモバイルアプリの診断観点がまとめられている。同じくOWASPの「OWASP MASTG」は、モバイルの脆弱性や具体的なテスト方法が記されている。またJSSEC(一般社団法人日本スマートフォンセキュリティ協会)の「Androidアプリのセキュア設計・セキュアコーディングガイド」にはセキュアな実装方法について記されており、小西氏は「インテントの学習に役立ちました」と話す。

 各種ドキュメントを読みこなした結果、小西氏はモバイルアプリへの攻撃パターンは主に次の3つ、アプリの機能や通信への攻撃、アプリや端末への攻撃、悪意あるアプリからの攻撃に分けることができると理解した。

 アプリの機能や通信に攻撃とは、アプリに実装されている機能、例えば入力値検証不備を狙うXSS(クロスサイトスクリプティング)、あるいはアプリとシンク先の通信を盗聴することで機密情報を取得したり、改ざんしたりするものなどが該当する。

 アプリ端末への攻撃とは、攻撃者が端末にダウンロードされたアプリを解析することで、(ハードコードされた)シークレットや機密データを不当に入手すること。あるいは端末に直接アクセスすることで機密情報を取得すること、広義にはショルダーハックのように背後から画面を盗み見ることも含む。

 悪意あるアプリからの攻撃とは、同一端末内にある別のアプリや実行ファイルからアプリの設定や実装の不備を用いて情報を抜き取ったり、なりすましを行ったりするものとなる。

モバイルアプリの脆弱性が利用される攻撃パターン
モバイルアプリの脆弱性が利用される攻撃パターン

 また小西氏はモバイルアプリの脆弱性を大まかに分類して示した。1点目は機密情報の漏えいで、ログ、ストレージ、内部ファイル、画面(盗み見)などから機密情報が盗まれるもの。2点目はアプリの設定不備で、本来アクセスが想定されていない画面や機能がアプリのマニフェストファイルなどの設定不備により、操作可能となってしまったことなどが該当する。3点目は入力検証不備で、外部からの入力を正しく処理しないものとなり、XSSやSQLインジェクションが含まれる。4点目は偽装系で、悪意あるアプリが正規のアプリになりすまして、ユーザーに何らかの操作を誘導するなど。他にもサーバー証明書の検証不備、脆弱な暗号など何らかの設定不備がある。

モバイルの脆弱性のマップ
モバイルの脆弱性のマップ

 一通り、基礎知識を理解すると、次に小西氏は手を動かしながら学ぶことにした。そこで利用したのがモバイル版のやられアプリ。意図的に脆弱性を含ませておいた学習用アプリを指す。いろいろとあるなかから、基本的な脆弱性が実装されたAndroidアプリ「InsecureBankv2」を選び、脆弱性の仕組みや診断テクニックを体得していった。

 最終的には最新の知見も収集するようになった。具体的には、公開されているCVE(共通脆弱性識別子:Common Vulnerabilities and Exposures)やバグバウンティングレポートなどだ。なおCVEはアメリカ国立標準技術研究所が管理しているNVDから過去3年分、JPCERT/CCとIPA(情報処理推進機構)が共同で運営しているJVNから過去6年分を収集した。

 小西氏は収集した情報を分析した結果として「最近の報告を見ると、サーバー証明書の検証不備、アクセス制御の不備、機密情報の漏えいが多くありました。またインテントのパラメーターを経由してアプリでXSSなどの攻撃につなげるものや、ディレクトリトラバーサル攻撃を利用してアプリが端末に保存している機密情報を取得するなど、モバイルの特性に合わせた攻撃もありました」と話す。

次のページ
モバイルアプリに特化した専門チームを立ち上げる

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Boost 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:サイボウズ株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18058 2023/08/03 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング