Webアプリセキュリティ教育に関する取組み
と
OWASP dependncy checkを使ってみて
2015/01/15
@オワスプナイト 15th
株式会社ラック
倉持 浩明
about.me
倉持 浩明
株式会社ラック
執行役員 システムサービス本部 副本部長
兼 サービス企画部長
兼 産業システム統括部長
Project Management Professional
会社紹介
商 号 株式会社ラック
本社 東京都千代田区平河町 2-16-1 平河町森タワー
設 立 2007年10月1日
資本金 10億円
売上高 連結 330億円 (2014年3月期)
上場市場 ジャスダック市場(3857)
従業員数 連結 1,524名 (2014年4月1日現在)
事業内容
セキュリティソリューションサービス
システムインテグレーションサービス
情報システム関連商品の販売およびサービス
本日お話ししたい事
1. Webアプリセキュリティ教育に関する取組み
2. OWASP dependency checkを使ってみて
紺屋の白袴ではダメ
Webアプリセキュリティ教育に関する取組み
1. 半日の入門コースを定期開催
– 基本的に座学中心
– 脆弱性のメカニズムと対策について、原理・原則を学ぶ
– 受講者は、「PM」「SE」等の技術職以外に、Web企画職の方も
2. 社内ハードニングイベントを開催
– 現実的に起こりうるシナリオを体験する
– 開発・運用・インシデント対応で必要なスキルを学ぶ
理論
実践
アジェンダ(例)
• Webアプリケーションインシデントとビジネスインパクト事例
• セキュアなWebアプリケーション開発ー 概 論 ー
• Webアプリケーションのセッション管理
• セッション管理の不備をついた攻撃と対策
– セッションハイジャック
– セッションフィクセーション(セッション固定)
– クロスサイト・リクエスト・フォージェリ
• 入出力の不備を突いた攻撃と対策
– クロスサイトスクリプティング
– SQLインジェクション
– OSコマンドインジェクション
– ディレクトリトラバーサル
– 改行コードインジェクション
• HTTPSの利用に関する注意事項
• 認証に関するお話
• クリックジャッキング対策
• HALF-DAY BOOT CAMP:半日の集中セッション
• 脆弱性のメカニズムと対策の「原理・原則」を学ぶ
• 座学+小テスト+グループディスカッション
受講者数の推移
累計受講者数:1,422名(2014年12月)
2014年2月以降はコンスタントに開催
Developer Security Training
インストラクター:Jim Manico
Jimのトレーニングを受講したことが、
(講師を)継続する励みになっています!
WASForum Hardening10 Evolutions
In Okinawaの模様
社内ミニ「はーどにんぐ」イベントの模様(2014/12)
• WASForum Hardening 10 E in Okinawaの
コンテンツをカスタマイズして利用
• 「コンテスト」ではなく「トレーニング」とし、
• 参加者の心理的ハードルを下げ、たくさんの方に
受講してもらう
ハードニングを研修に取り入れよう!
• 個々の脆弱性に関する知識だけでは実践で通用しない
• スキルエリアの専門化;「アプリケーション開発者」
「インフラエンジニア」「ネットワークエンジニア」
「セキュリティエンジニア」・・・
• 実務で必要なのは総合力
• 「攻撃者の立場になって考えてみる」良い機会
• (社外イベントは)自身のスキルレベルと、今後のスキ
ルアップに必要なことを把握することができる良い機会
OWASP Dependency Check
https://www.owasp.org/index.php/OWASP_Dependency_Check
背景:OWASP Top10/2013
The OWASP Top-10 2013 / Dave Wichers
https://speakerdeck.com/owaspjapan/the-owasp-top-10-2013-number-appsecapac2014
背景:OWASP Top10/2013
• 2013年から新たに加わったのが第9位の
「既知の脆弱性を持つコンポーネントの使用」
• 脆弱性が残るフレームワークやライブラリなどの
コンポーネントをそのまま使用しているサービス
は非常に多い。
Strutsの脆弱性(2014)
ITPro 西本逸郎のIT社会サバイバル術ーいまだ攻撃は継続中、脆弱性といかに付き合うべきか(下)
http://itpro.nikkeibp.co.jp/article/COLUMN/20140608/562402/
Third-Party Dependencies
• Application typically use 30 or more libraries.
• 88 percent of code today’s application comes from
libraries and frameworks.
• 26 percent had known vulnerabilities.
• Most vulnerabilities are undiscovered.
Jeff Williams & Arshan Dabirsiaghi
The Unfortunate Reality of Insecure Libraries
Aspect Security (March 2012)
The OWASP Top-10 2013 / Dave Wichers
https://speakerdeck.com/owaspjapan/the-owasp-top-10-2013-number-appsecapac2014
ライブラリ管理の現状?
EXCELやWikiによる管理
情報収集
開発環境 検証環境 本番環境
環境によるバージョン差異
ライブラリ管理の課題
• 利用しているライブラリ、バージョンを管理する
• ライブラリの脆弱性情報を収集する
• 定期的なパッチマネジメントを計画し、実行する
• パッチを適用したら、テストをしてからリリースする
• 環境によるバージョン差異
解決策:自動化
The OWASP Top-10 2013 / Dave Wichers
https://speakerdeck.com/owaspjapan/the-owasp-top-10-2013-number-appsecapac2014
管理できないなら、
自動化しちゃえば良いじゃない
OWASP Dependency Check
https://www.owasp.org/index.php/OWASP_Dependency_Check
• Simple answer to the A9 problem
• Identifies libraries and reports on
known/published vulnerabilities
• Currently limited to Java & .NET
libraries
インターフェイス
• Command Line Tool
• Maven Plugin
• Ant Task
• Jenkins Plugin
dependency-check.sh --app "My App Name" --scan "/java/application/lib"
動作メカニズム(概要)
1. 対象となるJARファイルをスキャンし、「ライブラリ名」
「開発ベンダー」「バージョン」情報を収集。
– これらの情報は、Manifestファイル、pom.xml(Maven)、パッ
ケージ名から収集する。
– ファイルハッシュで比較している訳ではない
2. NVD CVEデータベースを参照し、対象ライブラリ(バー
ジョン)に脆弱性があるかどうかをレポート。
レポートのサンプル
Dependencies Scanned: 39
Vulnerable Dependencies: 7
調査結果
対象システム ライブラリ数 脆弱 比率
A 29 2 7%
B 39 7 18%
C 48 7 15%
D 98 14 14%
E 31 5 16%
F 28 5 18%
G 55 5 9%
H 31 6 19%
I 22 2 9%
J 64 5 8%
K 39 7 18%
平均 44 6 13%
調査結果
OWASP dependency checkを使ったライブラリ調査結果
(11のJavaシステムに対する調査結果)
• 1システムあたり平均44のライブラリが利用されており、
• そのうち13%のライブラリには既知の脆弱性がある
ライブラリ管理の課題
• 利用しているライブラリ、バージョンを管理する
• ライブラリの脆弱性情報を収集する
• 定期的なパッチマネジメントを計画し、実行する
• パッチを適用したら、テストをしてからリリースする
• 環境によるバージョン差異
dependency checkがカバー
残る課題(セキュリティ対策以前?)
No Silver Bullet!
あたりまえのことを、あたりまえに・・・。
• バージョン管理
• テスト自動化
• ドキュメント
• 教育
• ・・・
• “Quality is Planned in – not Inspected in”

オワスプナイト20150115 dependency check