ウェブサイト構築における 発注と受入れの勘所 ·...

24
ウェブサイト構築における 発注と受入れの勘所 2014515独立行政法人情報処理推進機構 技術本部 セキュリティセンター 主任研究員 渡辺貴仁 Copyright © 2014 独立行政法人情報処理推進機構 1 セキュアな構築 はじめの一歩

Transcript of ウェブサイト構築における 発注と受入れの勘所 ·...

Page 1: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブサイト構築における 発注と受入れの勘所

2014年5月15日

独立行政法人情報処理推進機構 技術本部 セキュリティセンター

主任研究員 渡辺貴仁

Copyright © 2014 独立行政法人情報処理推進機構 1

~ セキュアな構築 はじめの一歩 ~

Page 2: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

近年のセキュリティインシデント

インターネットにおける事件が多様化 ウェブサイトにおけるセキュリティ事件も多発

Copyright © 2014 独立行政法人情報処理推進機構 2

時期 報道内容 2013/3 環境省の二酸化炭素排出計算サイト改ざん 情報流出恐れ(朝日新聞)

2013/4 ドコモ、米の顧客情報流出か 在米邦人ら対象のサービス(朝日新聞)

2013/5 ヤフーに不正アクセス ID2200万人分、流出の恐れ(朝日新聞)

2013/5 大分空港HP、ウイルス感染させるよう改ざん(読売新聞)

2013/5 三越サイトで不正アクセス 8300人分の情報流出も(産経新聞)

2013/5 阪急阪神百貨店、通販サイトで会員情報流出か(読売新聞)

2013/6 ニッセン通販サイトに不正ログイン 個人情報漏洩の恐れ(読売新聞)

2013/6 札幌市の観光HP、不正アクセス受け閉鎖(読売新聞)

2013/7 企業の監視強化迫られる 任天堂不正アクセス、手口巧妙に(日経新聞)

2013/8 「ロリポップ!」でWordPressを利用しているサイトが改ざん被害 約4,800件が対象(朝日新聞)

2013/10 セブン通販サイトに不正アクセス 15万人の情報流出か(朝日新聞

2014/1 「角川」サイト改ざん 閲覧でウイルス感染の恐れ(朝日新聞)

2014/3 西日本新聞のサイト改ざんされる 無関係なページに誘導(朝日新聞)

Page 3: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブサイトへの攻撃

ウェブサイトへの攻撃と被害 水飲み場攻撃:ウイルス感染サイト化 他攻撃への踏み台:フィッシングメール送信 情報漏えい:個人情報や機密情報

ウェブサイトの改ざん多数 JPCERT/CC が2013年に受け付けた、国内外で 発生したウェブサイトの改ざん件数は 7,409 件 1日平均:20件もの被害が発生していることになる JPCERT/CC インシデント報告対応レポート(2013年1月1日~ 2013年12月31日集計)

Copyright © 2014 独立行政法人情報処理推進機構 3

Page 4: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブサイトのどこが狙われ、どう考えるか

特定の部分だけに注目するのではなく、全体をみてバランスの良く、それぞれの部分に適した対策が必要

Copyright © 2014 独立行政法人情報処理推進機構 4

ウェブサイトは様々な 機器やソフトウェアで 構成されており、 攻撃者は一番弱く利用しやすい脆弱な箇所を攻撃する

Page 5: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

セキュアなウェブサイト構築基準

PCI DSS(Payment Card Industry Data Security Standard)

クレジット業界におけるグローバルセキュリティ国際基準 カード会員データを保護するために、基本設計概念・設計・手続き・管理・

運用などの基準を12の「要件」として規定している

Copyright © 2014 独立行政法人情報処理推進機構 5

PCI データセキュリティ基準 v3.0 – 概要

安全なネットワークとシステムの構築と維持

1. カード会員データを保護するために、ファイアウォールをインストールして維持する

2. システムパスワードおよびその他のセキュリティパラメータにベンダ提供のデフォルト値を使用しない

カード会員データの保護 3. 保存されるカード会員データを保護する

4. オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する

脆弱性管理プログラムの維持 5. マルウェアにしてすべてのシステムを保護し、ウィルス対策ソフトウェアを定期的に更新する

6. 安全性の高いシステムとアプリケーションを開発し、保守する

強力なアクセス制御手法の導入

7. カード会員データへのアクセスを、業務上必要な範囲内に制限する

8. システムコンポーネントへのアクセスを識別・認証する

9. カード会員データへの物理アクセスを制限する

ネットワークの定期的な監視およびテスト

10. ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する

11. セキュリティシステムおよびプロセスを定期的にテストする

情報セキュリティポリシーの維持 12. すべての担当者の情報セキュリティに対応するポリシーを維持する

Page 6: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブサイトのセキュリティ対策概要

ネットワークのセキュリティ対策 ファイアウォール利用により適切なフィルタリング ルータやスイッチによる区分け

ソフトウェアのセキュリティ対策 サーバのセキュリティ対策 不要なサービスの停止 不要なアカウントの削除 パスワード強化 ファイルやディレクトリへのアクセス制御 ログの収集

Copyright © 2014 独立行政法人情報処理推進機構 6

Page 7: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブサイトのソフトウェア構成とその対策

ソフトウェアのセキュリティ対策 脆弱性が解消された最新バージョンの利用

7

• ウェブアプリケーション – 独自開発するケース – 既製品を使用するケース

WordPress, EC-CUBE, …

• ミドルウェア、プログラム実行環境 – ウェブサーバ

Apache, IIS, nginx – アプリケーションサーバ・言語

Tomcat, PHP, Perl, ColdFusion, … – データベース

Oracle, PostgreSQL, MySQL, …

• OS(オペレーティングシステム) – Windows, Linux(CentOS, Ubuntu, …),

Mac OS, BSD, … Copyright © 2014 独立行政法人情報処理推進機構

ウェブサイトを構成する ソフトウェア

Page 8: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブアプリケーションの脆弱性

主な脆弱性の種類

Copyright © 2014 独立行政法人情報処理推進機構 8

1 SQLインジェクション 2 OSコマンド・インジェクション

3 パス名パラメータの未チェック/ディレクトリ・トラバーサル

4 セッション管理の不備

5 クロスサイト・スクリプティング 6 CSRF(クロスサイト・リクエスト・フォージェリ)

7 HTTPヘッダ・インジェクション

8 メールヘッダ・インジェクション

9 アクセス制御や認可制御の欠落

高い危険性 外部から直接データベースを不正操作 内部データの 漏えい・改ざん・破壊 に繋がる

見つかりやすい 利用者が誘導される事で ニセ情報が表示され、 情報漏えいに繋がる

Page 9: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブアプリケーションの対策

セキュリティ面から見た開発工程

Copyright © 2014 独立行政法人情報処理推進機構 9

受注者 発注者 発注者 要件 設計 ~ 開発 ~ テスト 受入れ ~ 公開準備

機能・非機能・システムテスト

セキュリティテスト

セキュアシステム設計

ウェブの健康診断

ウェブアプリの精密診断

サポートが続く最新のソフトウェア製品を導入

セキュア コーディング

セキュリティ要件

既製品を使用するケース

独自開発するケース

公開へ

【安全なウェブサイトの作り方】の利用 【ウェブ健康診断】の利用

ウェブアプリケーションの利用形態

Page 10: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「安全なウェブサイトの作り方」

脆弱性対策を盛込んだ設計を!

Copyright © 2014 独立行政法人情報処理推進機構 10

IPAに届出られた脆弱性関連情報をもとに、対策をまとめたガイド

脆弱性ごとに解説と「根本的解決」や 「保険的対策」を記載(9種類)

「ウェブサイトの安全性向上のための取り組み」を記載(7項目)

「失敗例」として解説と修正例に ついて記載(8種類)

ウェブセキュリティの実装状況の チェックリストつき

http://www.ipa.go.jp/security/vuln/websecurity.html

失敗例から学ぶ

Page 11: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「安全なウェブサイトの作り方」構成①

Copyright © 2014 独立行政法人情報処理推進機構 11

0.0 2.0 4.0 6.0 8.0 10.0

SQLインジェクション

OSコマンド・インジェクション

パス名パラメータの未チェック/ディ…

セッション管理の不備

クロスサイト・スクリプティング

CSRF(クロスサイト・リクエスト・フォー…

HTTPヘッダ・インジェクション

メールの第三者中継

アクセス制御や認可制御の欠落.

各脆弱性における深刻度(CVSS基本値)の例※ 個別の製品等によって深刻度は異なります

脆弱性とその解消 1章では、届出が多かった種類の脆弱性を中心に、深刻なものから順に記載 脆弱性が生じる仕組みを図解し、本質に迫る解決策を提示

Page 12: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「安全なウェブサイトの作り方」構成②

Copyright © 2014 独立行政法人情報処理推進機構 12

ウェブサイトの安全性向上 2章では、ウェブサイトの安全性向上のための

取り組みを記載 サーバ設定やDNS、フィッシング、WAFなど

幅広いテーマを採り上げ

先人に学ぶ 3章には失敗例を記載 プログラムコードを交えて

確実な修正までを紹介

Page 13: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

チェックリストで安全性を確認!

Copyright © 2014 独立行政法人情報処理推進機構 13

「安全なウェブサイトの作り方」構成③

網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる Excel 版も公開

設計指針として 設計段階からの考慮を要する点を一望

できるので、アプリケーション設計時の 指針として使用可能

発注要件として 発注者がウェブアプリケーション発注時

の要件として本チェックリストを使用すれば、セキュリティ上の注意点を明確化して契約できる

Page 14: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

外部にウェブアプリケーション制作を 委託発注する場合 ウェブアプリケーションの実装に関する要件

Copyright © 2014 独立行政法人情報処理推進機構 14

IPA の入札公告(RFP)例

Page 15: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

ウェブアプリケーションを診断してみる

「ウェブ健康診断仕様」とは ウェブアプリケーションにおける 基本的な脆弱性対策ができているかを確認する方法を解説した資料

実績 地方公共団体 1,200 団体の診断に活用(LASDEC)された実績あり

仕様検討 有識者10名による「検討委員会」で作成された仕様

徳丸 浩 氏 HASHコンサルティング株式会社 高木 浩光 氏 独立行政法人産業技術総合研究所 高倉 弘喜 氏 名古屋大学 など

Copyright © 2014 独立行政法人情報処理推進機構 15

Page 16: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「ウェブ健康診断仕様」 の診断内容

Copyright © 2014 独立行政法人情報処理推進機構 16

判定基準 1 SQL インジェクション

2 クロスサイト・スクリプティング

3 CSRF(クロスサイト・リクエスト・フォージェリ)

4 OS コマンド・インジェクション

5 ディレクトリ・リスティング

6 メールヘッダ・インジェクション

7 パス名パラメータの未チェック/ディレクトリ・トラバーサル

8 意図しないリダイレクト

9 HTTP ヘッダ・インジェクション

10 認証

11 セッション管理の不備

12 認可制御の不備、欠落

13 クローラへの耐性

診断項目

検出パターン

Page 17: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

診断例(SQLインジェクション)検出方法

Copyright © 2014 独立行政法人情報処理推進機構 17

【検出パターン1】

「‘」 (シングルクォート1つ)

○○ウェブサイト

' 検索

ウェブサイト内の入力項目に、検出パターンを入力して送信する。 (この例の場合、検索フォームに「'」と入力して検索ボタンを押す)

注意:許可無く診断しない

Page 18: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

Copyright © 2014 独立行政法人情報処理推進機構 18

【正常】 機能が正常に稼働していれば、正常と判定。

【脆弱性あり】 データベース関連のエラーが発生していれば、脆弱性ありと判定。

○○ウェブサイト ■ 「'」の検索結果は 3 件です ・xxxxxxxx ・xxxxxxxx xx xxxxxx ・xxxxxxxxxx xx xxxx xx

データベースエラーが発生しました!

診断例(SQLインジェクション)検出結果

Page 19: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「ウェブ健康診断仕様」 利用タイミング例

Copyright © 2014 独立行政法人情報処理推進機構 19

システムテスト 公開準備・公開テスト 受入れテスト 納品 検収 公開

【ウェブ健康診断の利用】 納品から検収までの

短期間で、可能な検査を実施

基本的な脆弱性対策に対する検査

このレベルで問題が発生するのでは、精密検査をするレベルではない

改めて見直しを要望するべき

【精密検査の実施】 セキュリティベンダー

等の専門家に精密検査を依頼し実施する

リスクと判断した脆弱性等の問題を取り除く

問題が解消した時点で公開

【受注側で十分な検査】 受注者は要件に則り

ウェブアプリケーションに関する十分なテストを行う必要がある

セキュリティベンダー等の専門家に実施を委ねるのも良策

Page 20: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「ウェブ健康診断仕様」 できること/できないこと

できること コストや時間をかけない診断 基本的な対策ができていない所を発見

できないこと 網羅的な、漏れのない診断

⇒ 例:入力項目ではないパラメータは、健康診断の対象外

脆弱性の存在箇所を特定 ⇒ ソースコードを確認する必要がある

ウェブサイト全体の安全性を評価 ⇒ 健康診断ではなく、別途精密検査で行う

脆弱性の修正 ⇒ 「安全なウェブサイトの作り方」を参考に

Copyright © 2014 独立行政法人情報処理推進機構 20

Page 21: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

「ウェブ健康診断仕様」 使用上の注意

1. 「ウェブ健康診断仕様」検査パターンを絞り込んだ診断であり、安全宣言には繋がりません。

2. できるだけ低いコストで診断が実施できるように、必要かつ最小限の診断項目、検査パターンを採用した診断です。

3. 健康診断の結果、脆弱性が検出された場合は、詳細な診断を行う、又は改修を検討してください。

4. 健康診断の結果、脆弱性が検出されなかった場合でも、検査パターンを絞り込んだ診断であることから、脆弱性が存在する可能性は残ります。

5. 健康診断の結果、脆弱性が検出された場合でも、実際には脆弱性ではない可能性があります。

6. 健康診断を行うことにより、診断対象のウェブサイトが停止したり、ウェブサイトに意図しないデータが登録される可能性があります。

7. ウェブサイトが停止する際は、診断対象のウェブサイトだけにとどまらず、インフラを共有している別のウェブサイトにも影響が及ぶ可能性があります。診断を行う際は必ず、サーバやデータセンター等、インフラ管理者の許可を事前に得てください。

Copyright © 2014 独立行政法人情報処理推進機構 21

Page 22: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

まとめ

ウェブアプリケーションには、SQLインジェクションや

クロスサイト・スクリプティングなどの脆弱性が作り込まれることがある

脆弱性を狙った攻撃をされるとデータの漏洩、改竄、破壊、その他被害に繋がる

「安全なウェブサイトの作り方」を発注時要件に 盛り込むことで、対策を実施できる

「ウェブ健康診断」によって、基本的な脆弱性対策ができていない部分を見つけられる 検収時、時間がない中でも健康診断ならできる でも公開前には、より精密な診断を

Copyright © 2014 独立行政法人情報処理推進機構 22

Page 23: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

IPAからのお願い

Copyright © 2014 独立行政法人情報処理推進機構 23

Windows XPのサポートが、2014年4月9日に終了しました。 まだ移行していない方は、不正アクセス等を回避するためサポートの継続する後継OS、または代替OSへの移行が望まれます。

サポート期間中

サポート期間終了後

IPA XP移行 検索

Page 24: ウェブサイト構築における 発注と受入れの勘所 · 「安全なウェブサイトの作り方」構成③ 網羅性 巻末にはチェックリストを記載 対策の網羅性確保のために使用できる

Copyright © 2014 独立行政法人情報処理推進機構 24

https://www3.jitec.ipa.go.jp/JitesCbt/