差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
20210603 [2021/06/03 02:58] – 133.11.144.10 | 20210603 [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 20210603 ====== | ||
- | |||
- | ===== 想定される攻撃 ===== | ||
- | |||
- | ==== メールの第三者中継 ==== | ||
- | [[https:// | ||
- | |||
- | ショッピングサイト等のWebアプリケーションでは、ユーザから入力された商品申込みや問合せ等の内容を、メールで送信する機能をもつものがある。 | ||
- | このような場合、送信先のメールアドレスは固定されており、Webアプリケーションの管理者以外は変更できないようになっている。その実装によっては、外部の利用者が送信先メールアドレスを自由に指定できてしまう場合がある。この問題は「メールの第三者中継」と呼ばれ、迷惑メールやウイルス等を送信する際に身元を隠すために使用される。 | ||
- | |||
- | ==== Webサーバからのファイル流出 ==== | ||
- | [[https:// | ||
- | |||
- | Webサーバコンピュータ上の本来保護されるべき重要なファイルの内容を、インターネット越しに容易に読み出せる場合がある。 | ||
- | |||
- | このファイル流出の問題は、Webサーバのファイル公開機能によりファイルが漏れ出す「Webサーバからのファイル流出」と、Webアプリケーションプログラムのディレクトリトラバーサル脆弱性等によって起こる「プログラムからのファイル流出」のふたつに分けられる。ここでは前者について説明する。また、後者については、次の記事において説明する。 | ||
- | |||
- | Webサーバからのファイル流出は、さらに「データファイルの誤った公開」と「Webプログラムソースコードの流出」のふたつに分かれる。 | ||
- | |||
- | |||
- | === データファイルの誤った公開 === | ||
- | |||
- | データファイルの誤った公開は、個人情報を含む顧客リスト等の重要なデータファイルをWeb公開領域に誤って設置してしまう問題である。この問題が生じる要因として次が想定される。 | ||
- | |||
- | 要因 1 | ||
- | Webアプリケーションの設計時に問題があると意識せずに公開領域に重要なファイルを置く設計を行った。あるいは、Webプログラムの実装時にプログラマの裁量で重要なファイルの置き場所を決めたが、それがWeb公開領域であった | ||
- | | ||
- | 要因 2 | ||
- | 画像、文書、表計算ワークシート等、ファイルの形をしたコンテンツであって、特定のユーザのみに開示すべきものを、ファイルの形のままWeb公開領域に配置した | ||
- | |||
- | 要因 3 | ||
- | Webサーバコンピュータの運用時に、誤って重要なファイルのバックアップコピーをWeb公開領域に置いたままにした | ||
- | |||
- | ===================== | ||
- | |||
- | 対策 1 | ||
- | 重要なファイルはWebサーバ公開領域に置かない設計・実装・設定を行う。[要因 1] | ||
- | |||
- | 対策 2 | ||
- | 特定のユーザのみに開示すべきコンテンツは、それがファイルの形で存在したとしても、アクセス制御ロジックをもつプログラムを通じて提供するよう、設計・実装する。 [要因 2] | ||
- | |||
- | 対策 3 | ||
- | 一時的バックアップコピーの制限。本番運用しているWebサーバ上に重要なファイルの一時的バックアップコピーを作らないようにする。 [要因 3] | ||
- | |||
- | 対策 4 | ||
- | 初期設定ならびに運用時、あらかじめリストに掲載されているもの以外のファイルをWeb公開領域に置かないようにする。違反がないか、シェルスクリプト等を用いて定期的に検査することも、ひとつの方法である。 [要因 1, 要因 2, 要因 3] | ||
- | |||
- | === Webプログラムソースコードの流出 === | ||
- | JSP、Perl、PHP等、スクリプトの形で記述されるWebアプリケーションプログラムの場合、これらのソースコードが誤ってWebサーバコンピュータから流出することがある。その要因として次が想定される。 | ||
- | |||
- | 要因 4 | ||
- | include, require, use等の命令で取り込むためのインクルードファイル名に「.inc」「.pm」等、標準ではWebサーバ(ソフトウェア)やWebアプリケーションサーバがスクリプトとして認識しない拡張子をもたせている。これらのインクルードファイルはURLさえ見当がつけばインターネットから閲覧できるおそれがある | ||
- | |||
- | 要因 5 | ||
- | Webアプリケーションの修正を行った際ソースコードのバックアップ・ファイルが作られて、それがWebサーバコンピュータ上に放置されている。プログラマが意図的に旧バージョンの写しを作る場合と、テキストエディタが自動でバックアップファイルを作ってしまう場合の 2通りがあり得る | ||
- | これらの要因が生じないようにするには、次の対策を講じることになる。 | ||
- | ================= | ||
- | 対策 5 | ||
- | 標準的な拡張子の使用。インクルードファイルに与える拡張子には、スクリプトの標準的な拡張子(PHPであれば.php等)を用いる。非標準の拡張子(.inc、.pm等)を用いない [要因 4] | ||
- | | ||
- | 対策 6 | ||
- | 非標準拡張子の動作の定義。インクルードファイルに .inc のような標準では動作が定義されていない拡張子を与えるのであれば、WebサーバもしくはWebアプリケーションサーバにおいて、この拡張子をもつファイルの内容をブラウザに開示するのではなくスクリプトとして処理するよう定義する [要因 5] | ||
- | | ||
- | 対策 7 | ||
- | プログラム保守の制限。本番運用している WebサーバコンピュータにおいてWebアプリケーションプログラムの修正を行わないようにする。別のコンピュータで動作確認を済ませてから必要なもののみファイルの入れ替えを行う[要因 5] | ||
- | |||
- | |||
- | ===== OSコマンドインジェクション対策 ===== | ||
- | |||