HOME | LastUpdate: 2004-10-31
Vim で sudo.vim という少し便利なプラグインを見つけたのでメモしておきます。ファイルの編集の際に、一般ユーザで Vim を起動し、途中から root 権限でファイルを開く必要がある場合や、ファイルを編集後、保存の際に root 権限が必要という場合に便利です。
sudo.vim をプラグインディレクトリに置くと、以下のように、sudo:ファイル名
というコマンドが使用できます。
$ vim sudo:/etc/fstab
:e sudo:/etc/fstab
%
" は編集中のファイルパス)
:w sudo:%
PHP の拡張モジュールである、CURL を使用すると、php.ini の open_basedir
で設定したセキュリティ制限を回避されてしまうという問題が報告されていました。この問題は、CURL モジュールに含まれる curl_init()
などの関数は、open_basedir
の制限が効かず、ローカルにある任意のファイルの読み込みが可能であるということです。
以下のように、file://
を curl_init()
の引数に与えることで、ローカルにある任意のファイル内容を表示させることが可能です。
$ch = curl_init( "file:///etc/group" ); echo curl_exec( $ch );
十分に入力チェックを行い、curl_init()
の引数に不正な値が入らないようにすることで問題の回避は可能です。また、CURL モジュールを無効にすることでもこの問題は回避可能です。
Mozilla 1.7 / Mozilla Firefox 0.9 から 0.9.3 / Mozilla Thunderbird 0.6 から 0.8 のバージョンに、安全でない一時ファイルを作成してしまう問題が報告されています。
PuTTY 0.55 以前のバージョンに buffer overflow が引き起こされる問題が報告されています。OpenSSH 情報によると、PuTTY のコードを使用している FileZilla や WinSCP などでも影響を受けるそうです。
Squid 2.5.STABLE7 で修正された SNMP モジュールに問題があり、DoS 攻撃を引き起こすことができる問題についての Security Advisory が出ていました。
Web サーバ。Apache 1.3.32 は正式にはリリースされなかったことになっているようです([Apache-Users 4733])。Apache 1.3.32 で修正されたバグ、セキュリティ問題を含め、CAN-2004-0940 の mod_include で buffer overflow が起きる問題も修正されています。
Apache に SSL 機能を提供するモジュール。Apache 1.3.33 に対応しました。
オープンソースのオフィス環境。バグ修正が行われています。
SSL や TLS の実装ライブラリ、ツール群。バグ修正が行われています。
Windows / Unix 環境で動作するターミナルエミュレータ。深刻なセキュリティ問題の修正が行われています。PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチも PuTTY 0.56 ベースに更新されています。
GTK+ を使用するメールクライアント、ニュースリーダ。1.0 のベータ版。年内に 1.0 を公開する予定だそうです。
X Window System 上で動作する多言語対応のターミナルエミュレータ。
Linux で動作するセキュリティ報告ツール。
モジュールとして動作する、オープンソースの Web アプリケーションに対する侵入検知、防止エンジン。バグ修正が行われています。
PHP のセキュリティを強化する Patch 集。PHP 4.3.9 に適用可能です。
セキュリティスキャナ。2.2.0 から ssh 経由で外部にあるホストのセキュリティチェックが可能になったようです。
少し長くなりすぎたような気がしますが、PHP と Web アプリケーションのセキュリティについてのメモに、以下の項目を追加しました。
PHP と Web アプリケーションのセキュリティについてのメモのセッション関連の処理で注意すべきクロスサイトスクリプティング問題やクロスサイトスクリプティング対策に strip_tags() を使用するときの注意でもまとめたのですが、いくつかの PHP 関連の書籍や Web ページを検索しても、クロスサイトスクリプティングを引き起こす問題があることを知らずに session_id()
や SID
を使用していることが多いように感じられましたので、こちらにもメモしておきます。
まず、Cookie が無効になっていた場合でも、セッションを継続させるために、session_id()
や定数の SID
の値を使用しているページは多いと思いますが、session_id()
と SID
はクロスサイトスクリプティングを防止するために htmlspecialchars()
でエスケープしてください。
PHP マニュアルの セッション処理関数(session) の例 5 でも以下のように書かれていることでも分かるように、session_id()
や定数の SID
はタグが入ることがあります。
... 続けるには、<A HREF="nextpage.php?<?php echo strip_tags (SID)?>">ここをクリック</A>して下さい。XSS に関係する攻撃を防止するために SID を出力する際に、strip_tags()を使用します。
ただし、上のように strip_tags()
を使用した場合は、クロスサイトスクリプティング対策にはなりません。理由は、クロスサイトスクリプティング対策に strip_tags() を使用するときの注意にまとめていますので、そちらを参照してください。
以下の条件が揃うと session_id()
や SID
にタグが入ることがあります。
session_id()
や SID
を正しくエスケープしていない例えば、ブラウザのユーザに以下のような URI のリンクをクリックさせたり、直接アドレスバーに入力させた場合、クロスサイトスクリプティングを行うことが可能です。
http://www.example.com/index.php?PHPSESSID="><script>alert()</script>
この問題への対処方法としては以下が 2 つが考えられます。
session_id()
や SID
に対して、htmlspecialchars()
で
エスケープを行う。
タグ内の文字列を strip_tags()
で除去することはクロスサイトスクリプティング対策になりませんので注意してください。
session_id()
や SID
を使用せず、
php.ini
の session.use_trans_sid
を "1"
に
設定し、自動的にセッション ID を処理させるようにする
ただし、PHP 4.3.1 以下ではここと同じ問題によるクロスサイトスクリプティングの問題がありますので、PHP 4.3.1 以前では session.use_trans_sid
を有効にしないでください。
セキュリティ修正プログラムを適用した場合に発生する可能性のある不具合情報が公開されています。
その他、いくつかセキュリティ関連で報告がありました。
タブ表示が可能なブラウザの多くに、2種類の問題が報告されています。
http://secunia.com/multiple_browsers_dialog_box_spoofing_test/ にデモがあります。
http://secunia.com/multiple_browsers_form_field_focus_test/ にデモがあります。
どちらの問題も Javascript を無効にすることで対処できるようです。
また、「Sleipnir」「Firefox」などのタブ切り換え型Webブラウザーに存在する脆弱性によると、日本でよく使用されている Internet Explorer のエンジンを利用したタブブラウザでも影響を受けるものがあることが報告されています。
この問題に関しては、多くの情報がでています。以下のページも参考にしてください。
PostgreSQL 7.2.5 以前、7.3.7 以前、7.4.5 以前のバージョンに、安全でない一時ファイルを作成してしまうというセキュリティ問題が報告されています。
この問題は、"make_oidjoins_check" スクリプトが安全でない一時ファイルを作成するという問題で、スクリプトの実行権限で任意のファイルを作成、上書きされる可能性があるそうです。
この問題が修正された PostgreSQL 7.2.6, 7.3.8, 7.4.6 が公開されました。これらのバージョンでは、潜在的にデータが損失する可能性のあるバグも修正されていますので、バージョンアップした方が安全です。
Apache 1.3.x に含まれるモジュールに、2 つのセキュリティ問題が報告されています。
mod_proxy のセキュリティ問題については、Apache 1.3.32 で修正されましたが、mod_include の方は Apache 1.3.32 でも修正されていませんので、注意してください。
Apache 1.3.22 で修正されています。
Apache 1.3.33 で修正される予定です。
<知っておくべき脆弱性の基礎知識>(2004.10.4〜10.5)の PDF 資料が公開されています。
Windows XP SP2 の導入とファイアウォールの設定方法などについて。
Web サーバ。バグ修正と CAN-2004-0492 の mod_proxy で buffer overflow が起きる問題が修正されています。
Apache に SSL 機能を提供するモジュール。Apache 1.3.32 に対応しました。
ネットワーク分析ツール。
オープンソースのデータベース管理システム。セキュリティ問題と、潜在的にデータ損失を引き起こす可能性のあるバグが修正されています。
Windows の修正プログラムが公開されています。今回は緊急性の高いものが多いようです。
PHP と Web アプリケーションのセキュリティについてのメモに、PHP でセッション変数、Cookie を使用する際のセキュリティ対策についての章と、問題のあるディレクトリ・トラバーサル対策 を追加しました。「PHP でセッション変数、Cookie を使用する際のセキュリティ対策について」は、まだ項目を追加する予定です。
最近は Mozilla Firefox Preview Release を使用しているのですが、デフォルト状態では、テキストボックスの編集中に BS キーと同じように、前の1文字を削除するつもりで Ctrl-h を押すと履歴ウインドウが開いてしまいます。テキストボックスとテキストエリアでは、Ctrl-h を押すとカーソルの前の1文字を削除する方法がありましたので、メモしておきます。
Mozilla Firefox をインストールしたディレクトリにある、res/builtin/platformHTMLBindings.xml を編集します。platformHTMLBindings.xml はどのプラットフォームでも同じ場所にあるようです。
編集する前に Mozila Firefox は終了させておいてください。以下のように、<binding id="inputFields">
と <binding id="textAreas">
の中に、<handler...
の行を追加します。
<binding id="inputFields"> ... <handler event="keypress" key="h" modifiers="accel" command="cmd_deleteCharBackward"/> ... </binding>
<binding id="textAreas"> ... <handler event="keypress" key="h" modifiers="accel" command="cmd_deleteCharBackward"/> ... </binding>
後は、Mozilla Firefox を再起動すると、テキストボックスとテキストエリアの入力中に Ctrl-h を押した場合、カーソルの1文字前の文字が削除されるようになります。
以下のページが参考になると思います。
緊急性の高いセキュリティ修正プログラムが公開されています。2004 年 10 月のセキュリティ情報などを読み、Windows Update を行うなど、必要な対処を行ってください。
その他、参考になるページです。
Squid の SNMP モジュールに問題があり、DoS 攻撃を引き起こすことができる問題が報告されたそうです。この問題が修正された Squid 2.5-STABLE7 が公開されています。
iDEFFENCE の Squid Web Proxy Cache Remote Denial of Service Vulnerability という情報によると、Squid の SNMP サポートを無効にしていた場合、この問題はありません。Squid の SNMP サポートが有効になっているかどうかは、以下のコマンドで調べられるそうです。以下のコマンドを実行して、何も表示されなかった場合は SNMP サポートは無効になっているそうです。
grep snmp_port /usr/local/squid/sbin/squid
また、SNMP サポートを使用しないのであれば、squid.conf に以下の設定を行うことで無効にできます。
snmp_port 0
他にも、ローカルインターフェースのみからの SNMP を有効にする設定として、squid.conf に以下の設定を行う方法が挙げられています。
snmp_incoming_address 127.0.0.1
Windows 版の Adobe Reader/Acrobat 6.01 と 6.02 に、Macromedia flash ファイルを経由して、ローカルファイルを読みとられてしまう可能性のある問題が報告されています。
この問題の回避方法として、Adobe Reader/Acrobat の Javascript を無効にする方法が挙げられています。
Apache 1.3.x で使用できる Apache モジュールの mod_ssl にセキュリティ制限が回避されてしまう問題が報告されています。
この問題を修正した mod_ssl 2.8.20-1.3.31 が公開されています。
ProFTPD 1.2.x にリモートから、ユーザ名が有効であるかどうかを確認することができるという問題が報告されています。
Proxy サーバ。Squid 2.5 STABLE7 の正式版。セキュリティ修正が行われています。
Java Servilet/JSP 環境。
オブジェクト指向のプログラミング言語。
Apache に SSL 機能を提供するモジュール。セキュリティ修正が行われています。
Windows マシンの HDD が故障しました。Windows にはあまり重要なデータは置いていませんでしたので、それほど問題ではなかったのですが、この時期は HDD が故障しやすいようです。
PHP と Web アプリケーションのセキュリティについてのメモを書いてみました。PHP でスクリプトを書く際に気を付けた方がよいセキュリティ問題についてまとめているつもりです。まだ、セッション、Cookie 関連についても今後、追加する予定ですが、現在、書いている部分までを公開しておきます。
PHP 4.3.8 以下と PHP 5.0.1 以下のバージョンで任意の場所にファイルがアップロードされてしまう可能性のある問題(Overwrite $_FILE array in rfc1867 - Mime multipart/form-data File Upload)についての情報が Security Focus で公開されていました。
PHP 4.3.9 と PHP 5.0.2 では修正されていますが、それ以下のバージョンで任意の場所にファイルをアップロードされてしまうという問題は、入力チェックなどを行うことで回避は可能です。ただ、メモリリークを起こしてしまう問題については、$_FILE
の配列を破壊する以外にも影響があるかもしれませんので、問題が修正されたバージョンにアップデートする方が安全です。
solution のページ(solution: PHP PHP_Variables Remote Memory Disclosure Vulnerability と、PHP Remote Arbitrary Location File Upload Vulnerability)には、PHP の全てのバージョンで 5.0.2 にアップデートするように書かれていますが、PHP 5.0.2 にアップデートすると動作しないスクリプトもありますので、気を付けた方が良いと思います。PHP 4.x を使用している場合は、PHP 4.3.9 にバージョンアップする方が問題が少ないと思います。
Apache 1.3.25 から Apache 1.3.31 に含まれる mod_proxy モジュールに buffer overflow が引き起こされる問題が見つかっています。これは、不正な Content-Length ヘッダを受けたときに引き起こされるそうです。この問題により、外部からの DoS 攻撃が可能とされており、いくつかの BSD 系の OS では、任意のコードを実行される可能性があるそうです。この問題は Apache 1.3.32 の開発版で修正されています。
Apache 2.0.35 から Apache 2.0.52 の mod_ssl モジュールで、"SSLCipherSuite" ディレクティブの設定が行われていた場合、セキュリティ制限を回避されてしまう問題が見つかっています。この問題は Apache 2.0.53 の開発版で修正されています。
The Fedora Legacy Project から RedHat Linux 7.3, 9 の修正パッケージが公開されています。
2004年10月、JPNIC・JPCERT/CC セキュリティセミナー2004 <知っておくべき脆弱性の基礎知識> の PDF 資料。
オープンソースのオフィス環境。日本語版はまだ公開されていないようです。
X Window System のウインドウマネージャ。
Proxy サーバ。Squid 2.5 STABLE7 のリリース候補 3版。
Mozilla ブラウザの日本語版。
BugTraq に PHP Memory Leak and Arbitrary File Location Upload Vulnerabilities の問題で詳しい情報が投稿(Php RFC1867 Upload Vuln. POC Released)されていました。PHP 4.3.9 と PHP 5.0.2 で修正された問題(Get/Post/Cookie に、"[" や "]"
を使用して、配列として扱う機能がありますが、"[" を閉じない場合、メモリリークを起こすという問題)を利用して、$_FILE に渡される配列を改ざんし、httpd に書込み権限のある、任意の場所にファイルをアップロードすることが可能であるという指摘のようです。
投稿にあった、デモ用のコードを手元の環境で試してみましたが、$_FILE の配列が破壊されてしまう問題は確認できたものの、うまくファイルのアップロードを行うことはできませんでした。
PHP 4.3.6 以前では、これと同じ問題で、もっと簡単に任意の場所にファイルをアップロードできてしまう問題が報告されていますし、この問題と同様に、move_uploaded_file()
を実行する前に、コピー先のファイル名に .. や /が含まれていれば削除したり、baseneme()
を使用するなどの対処を行っておけば、回避できる問題です。
例えば、投稿では、以下のようにファイルのアップロード処理を行っていますが、
$uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . $_FILES['user_file']['name']; if (is_uploaded_file($_FILES['user_file']['tmp_name']) && move_uploaded_file($_FILES['user_file']['tmp_name'], $uploadfile)) {
2行目の $uploadfile = $uploaddir . $_FILES['user_file']['name'];
の部分の $_FILE
から受け取ったファイル名の部分に basename()
を適用するだけで、この問題は回避できます。
$uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . basename( $_FILES['user_file']['name'] ); if (is_uploaded_file($_FILES['user_file']['tmp_name']) && move_uploaded_file($_FILES['user_file']['tmp_name'], $uploadfile)) {
Mozilla Firefox 1.0 Preview Release にユーザのダウンロードディレクトリのファイルを削除される可能性のある問題が報告されています。この問題を修正した Mozilla Firefox Preview Release 0.10.1 と Patch が公開されています。
Satisfy ディレクティブの取り扱いの問題により、アクセス制御を回避されてしまう可能性がある問題を修正した Apache 2.0.52 が公開されました。
Samba 3.0.5 までの 3.0.x 系および 2.2.11 までの 2.2.x すべてに公開ディレクトリ以外へのアクセスを許可してしまう問題が見つかっています。この問題を修正した Samba 2.2.12 が公開されました。また、Samba 3.0.5 以前のバージョンに対する Patch も公開されています。
他にも、日本 Samba ユーザ会のページにバージョンアップできない場合の回避方法が書かれています。
何らかの理由でアップグレードが難しい場合は、公開するユーザ・ホストを限定するか、または設定ファイル smb.conf 内で「
wide links = no
」と明示的に指定をするかして回避を行うのが推奨されます。
RedHat 7.3 と 9 に対する修正パッケージが公開されています。RedHat 7.2 と 8.0 に対するサポートは停止しています(Fedora Legacy Update Advisories)。
@IT から。
Mozilla 系のブラウザ。セキュリティ修正が行われています。
Proxy サーバ。Squid 2.5 STABLE7 のリリース候補2版。
オープンソースの Web サーバ。セキュリティ修正が行われています。
オープンソースのファイル転送ツール。
オブジェクト指向言語。
X Window System のウインドウマネージャ。
10月31日分を追加。
10月24日分を追加。2004.10.17 の Windows の修正プログラムにリンクを追加。
10月17日分を追加。
10月11日分を追加。誤字、脱字の修正、リンクの追加。
このページを作成。10月 3日分を追加。
LastUpdate: 2004-10-31 | HOME