スマホアプリもセキュリティが無視できない時代になってきました。
セキュリティ上の脆弱性は瑕疵(きず・欠点)になるという判決
が出ている現在、訴訟に対応する社内の動きや利用者への補填など、セキュリティ脆弱性の影響は多方面に及びます。また、EUの一般データ保護規則(GDPR)が2018年5月に施行されるようになり、個人情報保護の問題は国内だけの問題ではなくなってきています。アプリにEUの国のアカウントが登録され、それが漏洩した場合、GDPRに基づく重い制裁も覚悟しなければなりません。
その現状を踏まえつつ、流行りつつあるハイブリッドアプリ開発でのセキュリティ面の実装を考える「Hybrid App meets Security!
今すぐ実践!ハイブリッドアプリ開発とセキュアプログラミング」と名打ったセミナーが2017年10月17日に東京・御茶ノ水で、19日に兵庫・神戸で行われました。その東京開催の様子をレポートします。
セキュリティ関連の被害は社内外に及ぶ
最初の登壇は株式会社 神戸デジタル・ラボ 三木 剛氏。『事故事例から学ぶ セキュアなシステム開発と運用「シフトレフト」』 と題してお話しされました。
三木氏は攻撃事例や被害事例、経営層の無理解を避けるための現場の動き、責任の所在を明らかにすることなどを説明。
訴訟などのリスクに加え、
「事故が起きると現場担当者が退職するケースが多いのです。シンドイ思いをしたのに会社は認めてくれないんです」。
とセキュリティ事故の一面を語りました。人材流出は重大なトラブルです。
近ごろでは、あらかじめ脆弱性対応作業の必要性を役員に相談した上で予算上などの理由で作業しない指示が出て、その後脆弱性の事故が発生したときには役員が責任を取ったという例もあったそうです。アプリ開発ビジネスにおけるセキュリティ脆弱性の対処が重みを増していることを説明しました。
Monacaとそのセキュリティ対策
講演の2番目は、アシアル株式会社 田中 正裕が「クロスプラットフォーム開発を可能にするMonacaとそのセキュリティ対策」というタイトルで行いました。
Monacaは、約20万人の利用実績があるクロスプラットフォームなアプリ開発基盤です。Apache Cordovaから拡張したものになっています。
Monacaで開発したiOS/Androidアプリは、モバイルが持つ脆弱性の影響をモロに受けます。そこで、2016年に起こったモバイルのセキュリティ絡みの課題トップテンから重要な情報を抜き出して解説しました。
大切なWebViewとOSのバージョン
Monacaアプリは、システムコンポーネントであるWebViewの上でアプリケーションが動きます。OSのバージョンアップをユーザーがどんどん行ってくれるiOSと違い、Androidはメーカーによっても対応がバラバラ。旧機種のサポートが弱いなどの状況から、古いバージョンのWebViewが多く使われているのが実情です。
「Androidはバージョン5以降からWebViewがOSに依存しなくなり、Google Playからバージョンアップされるようになるため、安心度が増します」。
田中はこう話し、また、Cordovaのバージョンが古いと開発したアプリをGoogle Playで公開ができないことから、現実的にどこまで古いAndroidに対応するかを検討する必要性を示唆しました。
攻撃者のメリットは? 開発におけるセキュリティのツボ
3番目の講演は「ハイブリッドアプリ開発で押さえておきたいセキュリティの『ツボ』」というタイトルでソニーデジタルネットワークアプリケーションズ株式会社 佐藤 克志氏によって行われました。
ソニーグループにはプレイステーションネットワークのような侵入者が興味を持ちそうなサービスがあるため、グループ全体でセキュリティ対策に力を入れているのだそうです。
そして、セキュアな開発を行う過程で、Androidアプリを対象とした脆弱性検査ツールのSecure Coding Checkerをリリース。
これはAndroidアプリのセキュア設計・セキュアコーディングガイドに準拠したチェッカーになっており、APKファイルをアップロードするだけで脆弱性やセキュリティリスクを数分で分析するというものです。
攻撃者は投資対効果を意識する
多くの攻撃者は難攻不落なシステムの攻略を目指すというよりは、既知の脆弱性を修正していないシステムに攻撃を仕掛けます。
「Windowsシステム向けに2017年5月に大規模なサイバー攻撃が行われたワーム型ランサムウェアのWannaCryというものがありますが、この脆弱性と修正パッチをマイクロソフトが発表したのは同年3月でした。2ヶ月もの期間があったのに対策されていないサーバーが結構あったのです」と背景を解説しました。
Monaca向け簡易検査版も開発中
Androidアプリに関しても「インストール数の多いアプリほど攻撃対象になりやすいです」(佐藤氏)ということで、Cordova製のAndroidアプリが増加していることから
Secure Coding CheckerのCordova対応を行い、Monacaとの連携を進めているところだそうです。
こちらは続報があり次第、別途モナカプレスでお伝えします。
開発者の声と現実的な作業の効率化は?
最後の講演は株式会社 神戸デジタル・ラボ 柏原 健氏。「ハイブリットアプリのセキュア開発をやってみた」というタイトルで行われました。
一般的な開発のプロセスを
「要件定義、設計、開発、テスト、運用」
としたときに、脆弱性試験をどこのフェーズで取り入れたら良いのでしょうか。
必要性が頭でわかっても、実際に対応する組織的な難しさを包み隠さず話した柏原氏は
「特定条件下の業務用アプリなどの場合には、お客様の了解を取った上で厳密に行わないケースもあります」
と現場感に溢れた説明もしてくれました。
開発段階のチェックで効率化
しかしながら大切な情報を取り扱うアプリでは、セキュリティチェックは欠かせません。開発時から何度でもチェック可能で、簡単に使えるという理由から、同社ではSecure Coding Checkerの導入を行いました。
開発段階で定期的にチェックができれば手戻りも少なくなるだろうとの判断がされたとのことです。
シフトレフトで早期からセキュリティを考慮
システム開発に
「要件定義、設計、開発、テスト、運用」
というフェーズがあった場合に、より左側のフェーズでセキュリティを考慮することを「シフトレフト」と呼びます。最近ではこの考え方が重要だと柏原氏は語りました。
さらに、不要な個人情報を取り扱わないよう顧客を説得し、システムに必要なデータのみ受け渡すよう徹底したという実例も紹介。
教科書的な開発スタイルの違いだけでなく、現実的な対応を取ることの重要さは、現場ならではの声であるといえるでしょう。
環境面・開発面・運用面などさまざまな角度から
セミナーのテーマからは環境面・開発面からどのように改善していくかという講演内容になるかと思いきや、取り扱うデータ自体の調整をするなどの現場に即した提案まで出てきた、実践的なイベントとなりました。