ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

セキュリティ教育と安全なWebサイト開発方法論 〜効果的なセキュリティ教育実施と安全なWebサイト開発の方法を探る〜

http://www.mbsd.jp/event/detail125-desc.html
に行ってきたので、簡単なメモ

楽天のインターネットセキュリティの取り組み

  • 楽天におけるインターネットセキュリティの考え方
    • 楽天のシステムは原子力発電所並みの運用体制と安全性を求められている(by 三木谷氏)
    • 事業継続のため万全な対策を
      • 予算内だけの対策というわけにはいかない
        • 被害時のインパクトが大きい(2週間止まると250億の機会損失)から
      • 予算の何パーセントで出来るかという考え方
        • 開発全体予算の2%程度で実現
        • ハイスキルのセキュリティエンジニアが対策を最適化
        • グループシナジー効果でよいものを安く出来ている
        • 横展開で一定品質を保っている
  • 取り組み
    • 組織
      • 開発部門にISMSとは別のセキュリティ専門部署が存在
          • インターネットサービスに特化
        • セキュリティ専門部署(セキュリティ専門家が10人ほど)が外(IPA,JPCERT等)と連携
        • セキュリティ専門部署の配下に各部署から兼務で選出したチーム(40人ほどの開発者)がいる
        • 専門部署が収集した情報等を各部署に展開
        • 各部署で起こったインシデントを専門部署に展開
      • 日本シーサート協議会、Firstにも加盟
    • 開発プロセス
      • セキュリティ教育を実施した後、要件定義→セキュリティレビュー→開発→QA→監査
      • PDCAサイクルを回している
      • セキュリティ教育を徹底している
        • 開発エンジニア全員に教育している
      • 案件によって、設計段階でレビューする
      • 前工程(要件定義、設計)で仕様上の問題をつぶしている
      • 外部委託する際にはセキュリティ要件を必ず入れている
        • さすがにどんなものかは教えてくれない
      • QAを現場でツールを使って行っている
      • 最後にツールで漏れるものについては専門家がチェックしている
    • 運用
      • 脆弱性情報を収集し、関係者に配信している
      • リスクが高いものについては、対応依頼も行っている
      • 不正アクセス監視
      • SOCを運用している
      • 運用改善、仕様改善を行っている
      • フォレンジックも念のために実施
        • 何かあったときにトレースできるようにしている
    • 楽天の特徴
    • 専門家が対策(開発標準?)を効率化している
    • 特別なことをやっているわけではない
      • 当たり前のことを当たり前に高いレベルでやっている
  • プロアクティブ・セキュリティSDL
    • 監査した結果、問題があればプロセス(手順、作業(実装?)、要件)改善を行っている
    • 前工程で対策のメリット
      • 問題発生率が下がり、リリーススケジュールがぶれない
      • ガイドライン、チェックリストが育つ
      • ソフトウェア資産価値が向上する
      • 場当たり的な対策でなく、生産性向上にもよい影響が出る
    • SDLの考え
      • 自社開発のため、セキュリティ教育の効果は高い
      • 前工程で対策しても、安全確認は手を抜けない
        • QA,監査は重要と考えている
      • 本質的にアプローチしていくことが重要
        • WAFは使わない
          • コードを直す方が安い
          • 障害ポイントが増える
      • プロセス改善を繰り返すことで、セキュアなプロダクト開発を成長させる
  • セキュリティ教育がSDLの基本
    • 一般の技術書を参考にすると脆弱性が発生→企業責任において、セキュリティ教育を実施
    • 実効性重視で正しいセキュリティ知識を学ぶ
    • 楽天では開発関係者全員に対しセキュリティの試験がある。毎年見直しテストもある
      • 合格することが前提
      • 優秀なものには受講対象から、教育側に回っている
        • テストの監修作業
        • 勉強会講師
        • 他のメンバーの育成と自己スキルの向上
    • 品質の変遷
      • 教育する前は5割以上がインパクトの大きい問題だった
      • 浸透する前は3割
      • 浸透した後は1割
        • 問題なかったものが3割になった

→再監査費用が2割減(多分余分な修正コストも)

    • 導入効果
      • 監査後に対策、脆弱性を教える手間が無くなった
      • 修正スピードが上がった
      • 要件を認識しているので考慮漏れが無くなった
      • 修正工数も、再監査費用も2割ほど減
    • 自社開発の場合、教育が有効
    • 外部委託の場合、RFP検収が重要
  • まとめ?
    • リスクを見つけることは経営者には難しい
      • 専門家が検討し、経営者に説明する必要がある

Webサイトセキュリティの最新事情 2009

よく覚えてないwというか会社に置いてきた資料にメモってたw

ディスカッション

  • 開発プロセスにセキュリティを組み込むには?
    • 楽天のケース
      • 最初はセキュリティチェックを行った
        • 脆弱性の指摘は現場と経営層に報告した
          • 現場だけではやりづらい
        • すぐ出来たからチェックから始めた
      • その後、教育
        • コンテンツ作成が大変だった
        • 根本的な対策を説明したものがなかった
    • 他者の場合
      • 教育を行っているのはまだまだ
      • 脆弱性をみつけル所から始めることが多い
  • SDLを組み立てる
    • プロセス一つごとにチェックするのがよい
      • 設計のポイント
        • リスクを洗い出してレビューするのがよい
        • 要件定義から考えた方がよいと実感する
      • 監査
        • 外部専門業者に委託
          • スキルの高い所を選んでいる
      • 内部監査
        • チェックリスト
        • ツールを使っている
          • ツールで一定レベルの脆弱性は見つけられるが、限界がある
    • 開発者はどうすればよいか?
      • セキュリティRFPをしっかり作る
      • 検収でチェックする
  • セキュリティ教育について
    • 資料はどうか?
      • きちんとまとまった資料がない
      • IPAのセキュアプログラミング講座などが参考になる。しかし、トピック的な所が多くて、難しい
        • 情報が多すぎて分かりづらい
  • 何処まで勉強すればいいのか?
    • 試験で視覚化する
      • 自分でテストし、直す方が効率がよいので、継続的にスキル向上する方がよい
      • 現場は、IPAの資料を理解していればいいのではないか?
      • 楽天では自分でテストして直すことを要求している
    • 効果的な教育方法は?
      • 自分で作ったものに脆弱性があったら意識が変わった
      • 試験を通らないといけないという意識が重要かも
        • 部署内で試験を通らなかった人がわかる
        • チーム内の他の人に迷惑をかけないようにしようとする意識が働く
      • 正しく理解できていることが重要
      • 分かった気になることが問題
  • 質問
    • 外注したアプリが安全かどうか確認方法がない
      • 最近安い検査サービスもある
      • 開発者のスキルレベルを把握することで信頼する
      • RFPの中にしっかり入れる
    • 最低限やらなければならないことは?
      • 企業によって何処を重点的にするかを決めておく必要がある
      • IPA等で出ている脆弱性は全てつぶしている
      • その他のものは費用対効果
    • セキュリティ意識を高めるには?
      • 経営者を含めて、セキュリティ意識が必要
      • トップダウンでやった
      • 事故があったときに被害がどの程度あると言うことを説明している
      • セキュリティはソフトの品質の一部→利益につながる

感想

SDLを導入するのに抵抗がなかったことというのが大きいと思う(あ、メモってないw)。経営者だけでなく開発者一人一人にセキュリティ対策が必要という意識が最初からあったのは普通の企業じゃ無理だろうな。開発者にめんどくさい、難しいと思われたら、どんなすばらしい開発規約を作っても、守られないだろうし。
他の会社じゃこうはうまくいかないだろう。多くの開発者にはやはり、セキュリティ対策は難しい、めんどくさいという感じだろうし・・・
後は、「根本的な対策」という言葉が何度も出てきたなぁ。いろいろ脆弱性はあるけど、根本的なことは同じだからねぇ。
しかし、セキュリティに苦手意識がある人をどうすりゃいいかが、今後の問題だろうなぁ。