« express実践入門ついての社内勉強会を開いてみた | メイン | AWS Lambdaを使ってEC2料金を節約する »

2015年11月 6日 (金)

Webアプリケーションセキュリティについての社内勉強会を開いてみた(解答編)

今年も残り2ヶ月ですがこれから本気出します。エンジニアの小川(mitsuruog)です。
9/3にWebアプリケーションセキュリティというテーマで社内勉強会を開きましたが、解答編の記事を書いてませんでしたね。
すみません。

前回の記事はこちらです。
フレクトのクラウドblog(New): Webアプリケーションセキュリティについての社内勉強会を開いてみた

早速ですが、課題にどんな脆弱性が含まれていたのか?発表します。

回答編

架空のSNSサービスの設計に潜む脆弱性を探すというテーマでした。今回の脆弱性がある設計箇所を分類すると次のようになります。

  • システム全体設計に潜む脆弱性
  • 認証設計に潜む脆弱性
  • WebAPI設計に潜む脆弱性


システム全体設計に潜む脆弱性

システムの構成、サイト設計などSNSサービス全体に関わる設計に潜む問題です。

Img_20150908_002202

  • 通信経路がHTTP。
    • 新規Webサービスであれば、HTTPS前提にするべきです。
  • 管理者ページURLが推測しやすい。
    • 管理者ページが「/admin」となっていて非常に推測しやすいです。
    • 最近では、WordPressやWebアプリケーションジェネレータ(Yeoman)など、便利なツールが増えてきましたが、デフォルト設定を利用する場合も同様の注意が必要です。


認証設計に潜む脆弱性

システムのセキュリティの要、認証設計に潜む問題です。

Img_20150908_002221

Img_20150908_002232

  • HTTP...orz
    • 以下略
  • パスワード忘れ機能の設計ミス
    • 「ユーザーID」と「秘密の質問」を入力するとパスワードが変更できてしまう仕様です。最近であれば、登録済みのメールアドレスにメールを送信するなど、ワンクッション入れたいところです。
    • また、秘密の質問が「好きな色は?」となっており、万人が好きそうな色が予測できます。好きな色を固定して「リバースブルートフォースアタック」が成立しやすいです。
  • Cookieの設計について
  • セキュアな情報をクライアント側で保管している
    • 認証後の情報をlocalstorageにて保存しています。中に「管理者フラグ」が含まれていることもあり、容易に管理者へ昇格できます。


WebAPI設計に潜む脆弱性

WebAPIの設計も細かな注意点があります。

Img_20150908_002306

Img_20150908_002316

  • ユーザーIDの採番ルール
    • もし連番で発番した場合、容易に他人のユーザーIDが推測できると思われます。
  • リクエストパラメータの設計ミス
    • リクエストパラメータに「管理者フラグ」「ユーザーID」が含まれており、容易になりすましが可能でした。
    • メッセージ取得APIのレスポンスで投稿者のユーザーIDが取得できる仕様であるため、他人になりすまして投稿が容易に可能でした。


まとめ

もう、ダメダメですね。。。
設計のミスで重大なセキュリティ事故が発生した場合、システム開発会社の責任が問われることが多くなってきました。
そのため、特に認証周りの設計する際は次のようなことも留意するようにしています。

  • 独自認証設計をしない。OAuth2.0など標準的なものを利用する。
  • 秘密の質問自体をユーザーに選択させる。(秘密の質問の設計が甘いと設計責任が問われ兼ねない。)

実際に受けたメンバーからは「簡単すぎる」との意見が多かったのが反省点ではありますが、セキュリティについて再復習できたいい機会だったのではないかと考えています。

このような活動を地道に続けていく事で、少しずつ強いエンジニア組織にしていきたいですね。

ではではー

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上での
Webアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、セールスフォースパートナーです。
また、heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。

2022年5月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
ブログ powered by TypePad