ハイブリットアプリのセキュア開発をやってみた
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 1
自己紹介
株式会社 神戸デジタル・ラボ
ソリューション本部 副本部⾧ 兼
スマートビジネスセクション 部⾧
柏原 健(かしはら けん)
・業務系システム開発の責任者
・アパレル系が得意
・スマホアプリの開発をするならハイブリットと社内で普及中
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 2
いわゆる、システム開発会社
セキュリティなどもやってる
このあたりで
ハイブリットアプリの開発も実施
どんな会社
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 3
今回の内容
弊社では、セキュア開発をすすめています。
もちろん、ハイブリットアプリに対しても
セキュリティを考慮する必要があり、各種
取組を実施していってます。
今回は、その取組内容をご紹介いたします。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 4
一般的な開発プロセス
05030201 04
要件定義 設計 開発 テスト 運用
セキュリティを担保しろといわれたら?
出荷基準としてセキュリティを担保する。
KDLでも、全ての納品システムの出荷基準として
脆弱性診断を実施しています!
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 5
ぶっちゃけ 大変じゃないの?
「ハイブリットアプリ開発メンバーより」
・診断してたら、アップルの審査に間に合わないじゃん!
・開発コストより診断コストの方が高いんじゃないの?
(弊社では、マニュアル診断を基本としています。)
・ハイブリッドなんだから診断しなくて大丈夫ですよw!
・脆弱性の指摘が山ほどでました、、、
・診断チームと日程調整が合いません。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 6
ぶっちゃけ 大変じゃないの?
必要性は理解できても、やっぱり大変。
コスト 手戻り
ようするに
今までの開発行程よりやること増えることで
新たな問題も発生する
スケジュール
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 7
じゃぁどうする?
スマホアプリの脆弱性診断はやらない!
じつは、あり!?
業務システムなど特定の条件下では、
脆弱性診断をしない場合も結構あります。
KDLでもお客様と書面で合意をとり、診断をしない場合もあります。
出荷基準としての脆弱性診断をするのは大変!
脆弱性診断も必要
やっぱり基本は、
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 8
じゃぁどうする?
自分たち(開発者)でやれば良くない?!
開発段階から自分たちでチェックできれば・・・
スケジュール・コストも調整しやすいのでは
ということで
出荷基準としての脆弱性診断をするのは大変!
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 9
Secure Coding Checker を使ってみる!
APKファイルをアップするだけ
開発時から何度でもチェック可
超~簡単
Webベースでセキュリティチェックしてくれる
修正方法が確認しやすい
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 10
Secure Coding Checker を使ってみる!
赤いアイコンがいっぱい・・・
(ドキッとして、げんなり)
早速チェックすると・・・
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 11
ハイブリットアプリの構成をおさらい
HTML
コンテンツ
OS API
ネイティブコード
コルドバとか
ネイティブ部分
HTMLやJavaScriptを使う、
業務ロジック部分
検査ではわかりにくい部分も結構大事
このあたりで結構違反がでる
このあたりは注意がでる注意でも実際ここが大事
業務ロジック部分に
脆弱性が埋もれてる
可能性あり
!
違反が出てても
問題ないところもある
!
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 12
よく提案するハイブリットアプリ構成
会員管理
セッション管理
コンテンツ管理
HTML
コンテンツ
ネイティブコード
商品管理
決済管理店舗管理
まわりのシステムとの連携部分も重要
(通信の暗号化、認証方法、個人情報の扱い)
各システムとのデータ連携
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 13
Secure Coding Checker を使ってみる!
・開発PFやチェックツールを使えばセキュアになるわけではない
100%
・ハイブリッドアプリの特性を理解すること
・アプリの要件によって、HTMLとJavaScript部分が重要
・まわりのシステムにお願いすることもある
わかったこと
・お客様にお願い(合意)することも大事
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 14
セキュア開発って?
05030201 04
要件定義 設計 開発 テスト 運用
開発やテスト段階でのセキュリティ考慮が大事
設計や要件定義段階でのセキュリティ考慮が重要
だけでなく
SHIFT LEFT
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 15
セキュア開発って?
05030201 04
要件定義 設計 開発 テスト 運用
OWASPアプリケーションセキュリティ検証標準(3.0.1)
に基づいてセキュリティ要件を策定し、設計に反映
要件定義~設計
・セキュアなフレームワークを利用してWEBアプリケーションを開発
・コーディングチェッカーを導入し、コーディング時に脆弱性を排除
開発
全納品物に対して『OWASP TOP 10』
を基準とした脆弱性診断を実施
テスト
脆弱性対策、バージョン管理、防御、監視、
事故対応で、「セキュリティ運用」をサポート
運用
各開発プロセスに対してセキュリティを考慮しています。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 16
Monacaを利用した開発事例
アパレルブランドアプリ
(パシオス)
アパレルブランド情報アプリ
ブランドやアイテムの最新情報や
クーポンの通知が可能。
チラシの情報表示も可能
あまりセキュリティ要件としては
厳しくなくコンテンツを表示するのみ
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 17
Monacaを利用した開発事例
アパレルブランドアプリ
(Arpege story)
〇〇 〇〇
アパレルブランド情報アプリ
ブランドやアイテムの最新情報や
クーポンの通知が可能。
また、ログインすることでポイント
も管理することができる会員証アプ
リとして利用可能。
ログインすることで氏名・ポイントを
アプリ側に連携し表示。
APIで認証をしてトークを発行したり、
SSLで通信をしたり連携通信まわりで
セキュリティを考慮。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 18
Monacaを利用した開発事例
アパレルブランドアプリ
(1er Arrondissement)
〇〇 〇〇
アパレルブランド情報アプリ
ブランドやアイテムの最新情報や
クーポンの通知が可能。
また、ログインすることでポイント
も管理することができる会員証アプ
リとして利用可能。
ログインすることで氏名・ポイントを
アプリ側に連携し表示。
APIで認証をしてトークを発行したり、
SSLで通信をしたり連携通信まわりで
セキュリティを考慮。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 19
Monacaを利用した開発事例
アパレルブランドアプリ
(feerique)
アパレルブランド情報アプリ
ブランドやアイテムの最新情報や
クーポンの通知が可能。
また、ログインすることでポイント
も管理することができる会員証アプ
リとして利用可能。
ログインすることで氏名・ポイントを
アプリ側に連携し表示。
APIで認証をしてトークを発行したり、
SSLで通信をしたり連携通信まわりで
セキュリティを考慮。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 20
Monacaを利用した開発事例
パティシエ向け情報アプリ
(日仏商事)
パティシエとパン職人向けの情報配信
アプリ
アンケート結果がリアルに共有される
ことで最新のトレンドをキャッチ可能。
会員管理もしたいという要望だったが
目的的にはアンケートの集計で傾向を
みたいというものだったので、ニック
ネームや性別といった属性にとどめる
ことで、セキュリティリスクを低減
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 21
Monacaを利用した開発事例
業務
アプリ
アパレル展示会アプリ
〇〇〇(〇〇〇)様 〇〇〇(〇〇〇)様
アパレル展示会場での受注アプリ
NFCリストバンドで展示会場の
端末(iPad)にログインをする事で
スムーズな受注が可能。
アプリやネットワークもイントラ内
の仕組みのためインフラまわりで
セキュリティを考慮
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved 22
Monacaを利用した開発事例
スーツ専門店会員アプリ
スーツ専門店会員アプリ
会員情報やポイント情報の連携あり。
スーツの仕上がり情報をプッシュ通
知することで会員とのコミュニケー
ションができる。
精度の高い会員情報をとる必要があり
会員登録ルートの整理を実施。
ユーザーがアプリから登録するのでは
なく、スタッフが店舗システムから登
録した情報をアプリに表示。
通信はVPNで実施。
Copyright Ⓒ Kobe Digital Labo , Inc. All rights Reserved
MonacaやSCCなどを利用しながら
セキュア開発を進めていきましょう!

Hybrid appmeetssecurity kdl20171017-20

  • 1.
  • 2.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 1 自己紹介 株式会社 神戸デジタル・ラボ ソリューション本部 副本部⾧ 兼 スマートビジネスセクション 部⾧ 柏原 健(かしはら けん) ・業務系システム開発の責任者 ・アパレル系が得意 ・スマホアプリの開発をするならハイブリットと社内で普及中
  • 3.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 2 いわゆる、システム開発会社 セキュリティなどもやってる このあたりで ハイブリットアプリの開発も実施 どんな会社
  • 4.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 3 今回の内容 弊社では、セキュア開発をすすめています。 もちろん、ハイブリットアプリに対しても セキュリティを考慮する必要があり、各種 取組を実施していってます。 今回は、その取組内容をご紹介いたします。
  • 5.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 4 一般的な開発プロセス 05030201 04 要件定義 設計 開発 テスト 運用 セキュリティを担保しろといわれたら? 出荷基準としてセキュリティを担保する。 KDLでも、全ての納品システムの出荷基準として 脆弱性診断を実施しています!
  • 6.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 5 ぶっちゃけ 大変じゃないの? 「ハイブリットアプリ開発メンバーより」 ・診断してたら、アップルの審査に間に合わないじゃん! ・開発コストより診断コストの方が高いんじゃないの? (弊社では、マニュアル診断を基本としています。) ・ハイブリッドなんだから診断しなくて大丈夫ですよw! ・脆弱性の指摘が山ほどでました、、、 ・診断チームと日程調整が合いません。
  • 7.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 6 ぶっちゃけ 大変じゃないの? 必要性は理解できても、やっぱり大変。 コスト 手戻り ようするに 今までの開発行程よりやること増えることで 新たな問題も発生する スケジュール
  • 8.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 7 じゃぁどうする? スマホアプリの脆弱性診断はやらない! じつは、あり!? 業務システムなど特定の条件下では、 脆弱性診断をしない場合も結構あります。 KDLでもお客様と書面で合意をとり、診断をしない場合もあります。 出荷基準としての脆弱性診断をするのは大変! 脆弱性診断も必要 やっぱり基本は、
  • 9.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 8 じゃぁどうする? 自分たち(開発者)でやれば良くない?! 開発段階から自分たちでチェックできれば・・・ スケジュール・コストも調整しやすいのでは ということで 出荷基準としての脆弱性診断をするのは大変!
  • 10.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 9 Secure Coding Checker を使ってみる! APKファイルをアップするだけ 開発時から何度でもチェック可 超~簡単 Webベースでセキュリティチェックしてくれる 修正方法が確認しやすい
  • 11.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 10 Secure Coding Checker を使ってみる! 赤いアイコンがいっぱい・・・ (ドキッとして、げんなり) 早速チェックすると・・・
  • 12.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 11 ハイブリットアプリの構成をおさらい HTML コンテンツ OS API ネイティブコード コルドバとか ネイティブ部分 HTMLやJavaScriptを使う、 業務ロジック部分 検査ではわかりにくい部分も結構大事 このあたりで結構違反がでる このあたりは注意がでる注意でも実際ここが大事 業務ロジック部分に 脆弱性が埋もれてる 可能性あり ! 違反が出てても 問題ないところもある !
  • 13.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 12 よく提案するハイブリットアプリ構成 会員管理 セッション管理 コンテンツ管理 HTML コンテンツ ネイティブコード 商品管理 決済管理店舗管理 まわりのシステムとの連携部分も重要 (通信の暗号化、認証方法、個人情報の扱い) 各システムとのデータ連携
  • 14.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 13 Secure Coding Checker を使ってみる! ・開発PFやチェックツールを使えばセキュアになるわけではない 100% ・ハイブリッドアプリの特性を理解すること ・アプリの要件によって、HTMLとJavaScript部分が重要 ・まわりのシステムにお願いすることもある わかったこと ・お客様にお願い(合意)することも大事
  • 15.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 14 セキュア開発って? 05030201 04 要件定義 設計 開発 テスト 運用 開発やテスト段階でのセキュリティ考慮が大事 設計や要件定義段階でのセキュリティ考慮が重要 だけでなく SHIFT LEFT
  • 16.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 15 セキュア開発って? 05030201 04 要件定義 設計 開発 テスト 運用 OWASPアプリケーションセキュリティ検証標準(3.0.1) に基づいてセキュリティ要件を策定し、設計に反映 要件定義~設計 ・セキュアなフレームワークを利用してWEBアプリケーションを開発 ・コーディングチェッカーを導入し、コーディング時に脆弱性を排除 開発 全納品物に対して『OWASP TOP 10』 を基準とした脆弱性診断を実施 テスト 脆弱性対策、バージョン管理、防御、監視、 事故対応で、「セキュリティ運用」をサポート 運用 各開発プロセスに対してセキュリティを考慮しています。
  • 17.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 16 Monacaを利用した開発事例 アパレルブランドアプリ (パシオス) アパレルブランド情報アプリ ブランドやアイテムの最新情報や クーポンの通知が可能。 チラシの情報表示も可能 あまりセキュリティ要件としては 厳しくなくコンテンツを表示するのみ
  • 18.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 17 Monacaを利用した開発事例 アパレルブランドアプリ (Arpege story) 〇〇 〇〇 アパレルブランド情報アプリ ブランドやアイテムの最新情報や クーポンの通知が可能。 また、ログインすることでポイント も管理することができる会員証アプ リとして利用可能。 ログインすることで氏名・ポイントを アプリ側に連携し表示。 APIで認証をしてトークを発行したり、 SSLで通信をしたり連携通信まわりで セキュリティを考慮。
  • 19.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 18 Monacaを利用した開発事例 アパレルブランドアプリ (1er Arrondissement) 〇〇 〇〇 アパレルブランド情報アプリ ブランドやアイテムの最新情報や クーポンの通知が可能。 また、ログインすることでポイント も管理することができる会員証アプ リとして利用可能。 ログインすることで氏名・ポイントを アプリ側に連携し表示。 APIで認証をしてトークを発行したり、 SSLで通信をしたり連携通信まわりで セキュリティを考慮。
  • 20.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 19 Monacaを利用した開発事例 アパレルブランドアプリ (feerique) アパレルブランド情報アプリ ブランドやアイテムの最新情報や クーポンの通知が可能。 また、ログインすることでポイント も管理することができる会員証アプ リとして利用可能。 ログインすることで氏名・ポイントを アプリ側に連携し表示。 APIで認証をしてトークを発行したり、 SSLで通信をしたり連携通信まわりで セキュリティを考慮。
  • 21.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 20 Monacaを利用した開発事例 パティシエ向け情報アプリ (日仏商事) パティシエとパン職人向けの情報配信 アプリ アンケート結果がリアルに共有される ことで最新のトレンドをキャッチ可能。 会員管理もしたいという要望だったが 目的的にはアンケートの集計で傾向を みたいというものだったので、ニック ネームや性別といった属性にとどめる ことで、セキュリティリスクを低減
  • 22.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 21 Monacaを利用した開発事例 業務 アプリ アパレル展示会アプリ 〇〇〇(〇〇〇)様 〇〇〇(〇〇〇)様 アパレル展示会場での受注アプリ NFCリストバンドで展示会場の 端末(iPad)にログインをする事で スムーズな受注が可能。 アプリやネットワークもイントラ内 の仕組みのためインフラまわりで セキュリティを考慮
  • 23.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved 22 Monacaを利用した開発事例 スーツ専門店会員アプリ スーツ専門店会員アプリ 会員情報やポイント情報の連携あり。 スーツの仕上がり情報をプッシュ通 知することで会員とのコミュニケー ションができる。 精度の高い会員情報をとる必要があり 会員登録ルートの整理を実施。 ユーザーがアプリから登録するのでは なく、スタッフが店舗システムから登 録した情報をアプリに表示。 通信はVPNで実施。
  • 24.
    Copyright Ⓒ KobeDigital Labo , Inc. All rights Reserved MonacaやSCCなどを利用しながら セキュア開発を進めていきましょう!