個人的なメモと備忘録 2003年 11月

HOME | LastUpdate: 2003-12-07

目次


2003.11.30(Sun)

今年もあと、一ヶ月ですね・・・。

>>PHP で並列処理

PHP で複数の Web サイトの更新チェックをするようなスクリプトを個人的に作っているのですが、その時のメモです。サーバからデータを取得する時に、PHP にはスレッドがありませんので、一つずつ取得していると、かなりの時間が掛かることになります。そこで、スレッドの代替になりそうなスクリプトを 2種類ほど考えてみました。PHP 4.3.0 以降でしか動作しません。また、Linux でしか確認していません。もっと良い方法がありましたら、教えてください。

まず、一つ目は、pcntl_fork() を使う方法です。この関数は、PHP のコンパイル時に、--enable-pcntl を付けてコンパイルしないと使用できません。詳しくは、プロセス制御関数についての説明を読んでください。pcntl_fork() を使って並列処理を行う方法を考えてみました。

例えば、$array に URI の配列が入っているとして、相手サーバからデータを取得する処理としては、以下のようにすれば並列でデータの取得が行えます。

// 同時に起動する子プロセスの最大数
$max_process = 6;

foreach ( $array as $uri ) {
    $pid = pcntl_fork();
    if ( $pid == -1 ) {
        die( "could not fork.\n" );
    }
    else if ( $pid ) {
        // 親プロセス
        $pids[ $pid ] = TRUE;
        if ( count( $pids ) >= $max_process ) {
            unset( $pids[ pcntl_waitpid( -1, $status, WUNTRACED ) ] );
        }
    }
    else {
        // $uri を使用して子プロセスで行う処理

        // 120 秒後に強制終了
        pcntl_alarm( 120 );
        // データ取得
        $data = file_get_contents( $uri );
        // ... 取得したデータの処理 ...
        exit;
    }
}
// 全ての処理が終了するまで待機
while ( count( $pids ) > 0 ) {
    unset( $pids[ pcntl_waitpid( -1, $status, WUNTRACED ) ] );
}

相手サーバに接続できなかったり、応答が無い場合は、子プロセスが終了しませんので、一定時間が経過したら強制終了を行うように pcntl_alarm() を使用しています。強制終了した時に、エラーを取得したい場合は、pcntl_signal() で信号を受け取る関数を登録しておくと良いと思います。

その他、気になったことなどのメモです。

二つ目は popen() を使用する方法です。外部でコマンドを実行することで並列処理を行います。非ブロッキングモードにすることで並列に近い形で処理できます。

// 同時に起動する子プロセスの数
$max_process = 6;

foreach ( $array as $uri ) {
    // 外部コマンドを実行
    $fp = popen( "php -r 'echo file_get_contents( $uri );'", "r" );
    // 非ブロッキングモードに変更
    stream_set_blocking( $fp, FALSE );
    // ストリームポインタを配列に格納
    $fps[] = $fp;
    while ( count( $fps ) > $max_process ) {
        read( $fps );
    }
}
while ( count( $fps ) > 0 ) {
    read( $fps );
}

function read( &$fps )
{
    // ストリームポインタの配列からデータを取得
    foreach ( $fps as $i => $fp ) {
        echo fread( $fp, 4096 );
        if ( feof( $fp ) ) {
            pclose( $fp );
            unset( $fps[ $i ] );
        }
    }
    usleep( 100000 );
}

(2003.12.07 修正)

無駄な処理をしていたので、少しソースを修正しました。

気になったことなどをメモしておきます。

>>セキュリティ関係

*Internet Explorer

Bugtraq に Internet Explorer に関する多くのセキュリティ問題が報告されています。

いずれも、対処方法として、インターネットゾーンでのアクティブスクリプトを無効に設定するという方法が挙げられています。

Internet Explorerの新セキュリティホールは「極めて危険」(ZDNet) によると、このセキュリティ問題に対処できるのは 1月以降になるだろうということが書かれていますので、それまでは、Internet Explorer のアクティブスクリプトを無効に設定しておいた方が安全です。

SecuniaInternet Explorer System Compromise Vulnerabilities も参照してください。

*GnuPG

スラッシュドット・ジャパンに、GnuPG 1.0.2 以降の ElGamal 鍵署名で秘密鍵が漏洩 という記事が投稿されていました。GnuPG 1.0.2 以降で鍵の生成時に、ElGamal 鍵を選択し、その鍵を使用して署名した場合に秘密鍵を取得されてしまうという問題のようです。デフォルトで生成される鍵では、ElGamal 鍵で暗号化のみが可能で、署名機能は無効になっているため、この問題はないそうです。詳しくは、GnuPG's ElGamal signing keys compromisedを参考してください。すぐに ElGamal の署名鍵を破棄することが勧められています。また、鍵を破棄する方法なども載っています。

*Mozilla における既知の脆弱性

Known Vulnerabilities in Mozilla と日本語訳のMozilla における既知の脆弱性が公開されています。

Mozilla 1.2 から 1.4 での問題一覧が載っています。ほとんどは JavaScript と Cookie 関連の問題です。最新の Mozilla 1.5/1.6 Alpha などでは修正されているそうです。代替策も載っていますので、参考にすると良いと思います。

*Gentoo Linux
*FreeBSD

BIND の Security Advisory が出ています。

*その他
  • JPCERT/CC REPORT 2003-11-27

    XFree86 のフォントライブラリのバッファオーバーフロー問題、Sun Solaris の PGX32 フレームバッファ関連ライブラリの問題、HP-UX の dtmailpr のバッファオーバーフロー問題などについてのレポートです。

  • GNU screen buffer overflow

    GNU screen 4.0.1 と 3.9.15 以下のバージョンで、バッファオーバーフローにより、ローカルユーザに権限上昇を許してしまう問題があるそうです。問題を修正するための Patch も投稿されています。

>>気になったニュース、ツールなど

▲ 目次へ戻る


2003.11.24(Mon)

急に寒くなりました。Linux 関連で多くの修正パッケージが公開されています。確認しておくと良いと思います。

>>セキュリティ関係

*Apache

The Apache HTTP Server Project の、Important Bug Workaround for 2.0.48 and 1.3.29 によると、Apache 2.0.48 と Apache 1.3.29 において、mod_usertrack を使用していて、CookieName をデフォルトのままの(httpd.conf などの設定ファイルで CookieName ディレクティブがない)場合、バグが発生するそうです。

この問題は、Apache 2.0.49 と Apache 1.3.30 で修正されることになっていますが、現在のバージョンでは以下のような行を追加することで問題を回避できるそうです。

CookieName Apache

CookieNameApache である必要はありません。

この問題の詳細は、Bug 24483 mod_usertrack dumps core...on apache 2.0.48 にあります。

*Windows

@ITWindows HotFix Briefings 緊急セキュリティ情報 攻撃者の任意のプログラム実行を許容してしまう3個の緊急セキュリティ・ホール(MS03-048/MS03-049/MS03-051)という記事があり、以下の 3つの修正プログラムについて解説しています。

また、Windows HotFix Briefings Windows HotFix Briefings Biweekly(11月21日版)では、以下の不具合についてのレポートがあります。気になる問題があれば確認しておくと良いと思います。

  • MS03-043の修正プログラム適用で、Windows NT 4.0のネットワーク関連機能が機能不全を起こす
  • MS03-045の修正プログラムを適用すると、テキスト・ボックスに入力した文字が重複して表示される
  • MS03-050をExcel 97に適用すると郵便番号変換ウィザードが機能しなくなる
  • 「Windows XP SP1 USB 1.1 および 2.0 修正プログラム」の適用で、システムがハングアップする
  • MS03-048を適用するとInternet Explorerの画面スクロールが正しく行われなくなる
  • Windows 2000 SP4にIE 6.0 SP1を適用するとMS02-050の脆弱性が再発する問題を解決する修正プログラムの提供開始
  • Office 97/2000とOffice 2003でのデータ非互換問題
  • Internet Explorerで圧縮されたHTTPデータを受け取った場合にHTMLページが一部しか表示されない
  • IEEE 802.1x認証方式を使用した無線LAN接続に長い遅延時間が発生するなど複数の不具合が発生する
*Opera

Opera(Opera 日本語サイト) のバージョン 7.22 以前の全てに、「特定のMIMEタイプを持つデータがユーザーに無許可でダウンロード・実行される問題」ががあるそうです。この問題は次期バージョンで修正される予定とされています。それまでは、以下のように対処することが勧められています。

Opera 7.23(英語版)が公開されたされたようです。変更点は、Changelog for Opera 7.23 for Windows を参照してください。また、Opera 7.23 for Linux も公開されています。

「設定」画面内の「ファイルタイプ」にあるMIMEタイプから、「application/x-opera-configuration-*」及び、「application/x-opera-skin」の動作を「Operaで開く」から「ダウンロードダイアログを表示する」に変更する

詳しい内容については、::Operash:: の、[Opera 7] 外部から任意のローカルファイルが作成される脆弱性 (03-11-21)を参照してください。また、このページにおいて、以下のように指摘されています。Opera を使用している場合は上の対処しておいた方が安全です。

尚、この脆弱性はバッファオーバーフローなどとは違い、高度なスキルを持たない攻撃者でも脆弱性の利用が可能なため、非常に高い危険性を持った脆弱性であると言えるでしょう。

*Gentoo Linux

Gentoo Linux を使い始めましたので、Security Advisories のリンクとパッケージ名のメモをしておきます。Gentoo Linux のサイトには Security Advisories の情報を見つけられませんでしたので、リンク先は Bugtraq にしています。

*その他

>>気になったニュース、ツールなど

▲ 目次へ戻る


2003.11.16(Sun)

Windows の修正プログラムが公開されています。非常に危険なセキュリティ修正も含まれていますので、修正プログラムを適用するなど、対処を行わないと危険です。

>>セキュリティ関係

*Windows

非常に緊急性の高いセキュリティ修正プログラムが公開されています。MS03-49 は特に危険とされていますので、修正プログラムを適用するか、必要な回避策を行うようにしておいた方が良いと思います。

  • Internet Explorer 用の累積的なセキュリティ更新 (824145) (MS03-048)

    Internet Explorer の以前に公開された問題の全てと、新たに確認された 5つの問題を修正するそうです。

    対象は、Windows 98, NT 4.0, 2000, XP, Server 2003 など、ほぼ全ての Windows OS で、Ineternet Explorer 5.01 SP2, SP3, SP4 / Internet Explorer 5.5 SP2 / Internet Explorer 6 GOLD, 6 SP1 などとなっています。

    • クロスドメインセキュリティモデルに関する 3つの問題の修正。ユーザがこの問題を悪用した Web サイトを表示すると、 マイコンピュータゾーンでスクリプトが実行されてしまう可能性があるそうです。
    • XML オブジェクトにゾーン情報が渡される問題についての修正。ユーザがこの問題を悪用した Web サイトを表示すると、 攻撃者にコンピュータ上のローカルファイルを読み取られてしまう可能性があるそうです。
    • ダイナミック HTML イベント中のドラッグアンドドロップに関する問題の修正。この問題が悪用されると、ユーザがリンクを クリックした時に、ダウンロードを承認するよう要求するダイアログが表示されることが無いままにユーザのコンピュータ上に ファイルが保存される可能性があるそうです。

    この修正プログラムをインストールした場合、Internet Explorer のスクロールバーに不具合が出るという問題が報告されていますので、気をつけてください。また、IEの累積パッチが公開、IEを利用していなくても影響を受ける(INTERNET Watch)という情報もあります。

  • Workstation サービスのバッファ オーバーランにより、コードが実行される (828749) (MS03-049)

    Workstation サービスにセキュリティ上の問題があり、この問題が悪用された場合、攻撃者がリモートから任意のコードを実行できる可能性があるそうです。

    対象は、Windows 2000 と Windows XP で、深刻度は「緊急」になっています。

    この問題に対する対処として、UDP の 138、139、445 番ポートと、TCP の 138、139、445 番ポートをファイアウォールで閉じる、または、Workstation サービスを無効にするなどの方法が書かれていますが、ファイルや印刷の共有などが使用できなくなるなど、大きな影響があります。

    また、この問題を悪用したウイルスやワームなどの出現も予想されていますので、早急に修正プログラムの適用を行うか、回避の対処を行った方が良いと思います。既に、JPCERT/CC から、この問題に関連して、TCP 139番ポートへのスキャンの増加に関する注意喚起が行われています。

  • Microsoft Word および Microsoft Excel の脆弱性により、任意のコードが実行される (831527) (MS03-050)

    Microsoft Excel と Word に悪質なコードを実行される可能性のある問題が発見されたそうです。この問題は、マクロのセキュリティモデルを無視してしまうため、文書を開いただけで、任意のコードが実行される可能性があるそうです。

    対象は、Microsoft Excel 97, 2000, 2002 / Word 97, 98(日本語版), 2000, 2002 / Microsoft Works Suite 2001, 2002, 2003, 2004(各英語版) となっています。深刻度は「重要」です。

    Microsoft Office Word 2003 と Office Excel 2003 ではこの問題は無いそうです。

  • Microsoft FrontPage Server Extensions のバッファ オーバーランにより、コードが実行される (813360) (MS03-051)

    Microsoft FrontPage Server Extensions に FrontPage Server Extensions のリモートデバッグ機能のバッファオーバーランとSmartHTML インタープリタに存在するサービス拒否という 2つのセキュリティ上の問題があり、攻撃者が任意のコードを実行してしまう可能性があるそうです。

    対象は Microsoft FrontPage 2000 Server Extentions(Windows 2000, Windows XP に同梱のもの)、FrontPage Server Extensions 2002(Office XP に同梱)、Microsoft SharePoint Team Services 2002 となっています。深刻度は「緊急」で、 FrontPage 2000 Server Extentions(Windows XP に同梱のもの)は「警告」になっています。

また、証明書確認の問題により、ID が偽装される (329115) (MS02-050) の件で、Windows 2000 Service Pack 4 の環境に Internet Explorer 6 Service Pack 1 をインストールているユーザは、この問題が残っており、問題対処のための修正プログラムが公開されています。該当する環境を使用している場合は、アップデートしておくと良いと思います。

以下のように、多くのサイトで今回の問題についての注意喚起や解説が掲載されています。できれば読んでおくことをお勧めします。

*Opera

Web ブラウザの Opera 7.22 が出ています。また、Opera 7.22 日本語版も公開されています。BugTraq に以下のようないくつかのセキュリティ問題が報告され、これらの問題は Opera 7.22 で修正されているそうです。ただし、::Operash::ペンギンもオペラを嘆くという情報によると、まだ問題が残っていることが指摘されています。この問題に対する対策も書かれていますので、参考にすると良いと思います。

*その他

その他、いくつか気になった記事などです。

  • JPCERT/CC REPORT 2003-11-12

    Sun JRE のアプレットの扱いに対する問題、Oracle9i Application Server の Portal コンポーネントの問題、S/MIME プロトコル、X.400 プロトコルの実装に関する問題、OpenSSL の ASN.1 処理の問題、Apache の問題に関する追加情報などについての解説などがあります。

  • [SNS Advisory No.69] Eudora "Reply-To-All" Buffer Overflow Vulnerability

    メーラの Eudora で、From: に長大な文字列が入力されている際に、このメールに対して「全員に返信」を選択した場合に Buffer Overflow が発生する問題について。Eudora 5.1-Jr3 for Windows 日本語版と Eudora Version 6.0 for Windows 英語版以降で修正されているそうです。

  • [SNS Advisory No.70] tsworks "Expand the Attachment" Buffer Overflow Vulnerability

    メーラの tsworks で、長大な添付ファイル名のファイルを受け取り、「添付ファイルの展開」を選択した場合に Buffer Overflow が発生するの問題について。tsworks V3.1 で修正されているそうです。

>>気になったニュース、ツールなど

▲ 目次へ戻る


2003.11.10(Mon)

Fedora Project から、Fedora Core 1 が公開されたみたいです。Fedora Project は、RedHat が RedHat Linux の商用以外の製品のサポートを打ち切る予定になったため、今後の開発を引き継いだプロジェクトです。RedHat Linux 9 は 2004年4月30日までのサポートですが、RedHat Linux 7.1 から 8.0 については、2003年12月31日にサポートが終了する予定になっています。RedHat ベースの OS を使い続けたい場合は、Fedora Core に移行するように検討した方が良いかもしれません。

個人的に使用している Linux は Gentoo Linux に移行してしまいましたので、多分、Fedora Core を追いかけることはないと思います。

>>PHP 4.3.4

PHP 4.3.4 が公開されました。新機能や、修正点などの詳細は、PHP 4.3.4 Release Announcement と、PHP 4 ChangeLog を参照してください。PHP 4.3.4 Release Announcement 日本語訳 と、PHP 4 ChangeLog の日本語訳 も公開されています。

PHP 4.3.4 RC3 から、少しバグ修正が行われていますが、それほど大きな変更はないようです。PHP 4.3.3 以下からバージョンアップする場合で、マルチバイト関数を有効にしている場合は、configure オプションの変更と、マルチバイト処理モジュールの追加が行われていますので、気をつけてください。詳しくは、先週の PHP 4.3.4 RC3 の紹介を参照してください。

あと、Icky Sticky Leaky PHPloat に、PHP 4 と PHP 5 の両方で、同じスクリプトを動作させるための Tips が紹介されています。定数の PHP_VERSION を使用して、処理を分けるという単純な方法ですが、PHP 4 で書かれたスクリプトを PHP 5 で動作させる必要がある場合は、覚えておくと役に立つかもしれません。

>>セキュリティ関係

*OpenSSL

OpenSSL 0.9.6l が公開されています。詳細は OpenSSL Security Advisory [4 November 2003] にありますが、OpenSSL 0.9.6k に Windows 環境でサービス拒否攻撃が可能であることが発見されたそうです。

現在のところ、Windows 環境のみでこの問題が確認されていますが、全てののプラットフォームでサービス拒否の影響を受けるわけではないそうです。とりあえず、OpenSSL 0.9.6l と OpenSSL 0.9.7c にはこの問題はないそうですので、OpenSSL を使用している場合は、OpenSSL 0.9.6l か、OpenSSL 0.9.7c に バージョンアップすることが推奨されています。

*Ethereal

Ehtereal 0.9.15 に、潜在的なセキュリティ問題が発見され、Ethereal 0.9.16 か公開されています。詳しくは、Security problems in Ethereal 0.9.15 にありますが、いくつかのプロトコル解析器において、バッファオーバーフローを起こしてしまったり、クラッシュしてしまうという問題があるそうです。Ethereal 0.9.16 で修正されています。

*Vine Linux

Apache の修正パッケージが出ています。

>>気になったニュース、ツールなど

▲ 目次へ戻る


2003.11.03(Mon)

Web サーバとして広く使用されている Apache でセキュリティ修正が行われたバージョンが公開されています。Apache 1.3 系と Apahce 2.0 系の両方ともバージョンアップしていますので、問題に該当する場合は、バージョンアップしておいた方が安全です。

>>PHP 4.3.4RC3, PHP 5 beta2

PHP 4.3.4 RC3 と PHP 5 beta2 が公開されました。PHP 4.3.4 RC3 は PHP-QAT のページで、PHP 5 beta2 は、PHP: Downloads のページからダウンロードできます。

>>FreeBSD 4.9 RELEASE

The FreeBSD Project から FreeBSD 4.9 RELEASE が公開されました。

FreeBSD 4.9-RELEASE Announcement(FreeBSD 4.9-RELEASE Announcement 日本語訳) によると、FreeBSD 4.x のメジャーリリースは 4.9 で最後になる予定だそうです。4.8 RELEASE からの変更点やセキュリティ修正などについては、FreeBSD 4.9-RELEASE Release Notes(日本語訳:FreeBSD 4.9-RELEASE リリースノート) などを参考にしてください。

>>セキュリティ関係

*Apache

Apache 1.3.29 と Apache 2.0.48 が公開されています。セキュリティホールやバグの修正が含まれていますので、問題に該当する機能を使用している場合はバージョンアップした方が安全です。

  • Apache 2.0.48

    Apache 2.0.x に存在する、2つのセキュリティ上の問題の修正が含まれています。一つは、mod_cgid の問題で、cgid デーモンと CGI スクリプトが通信する際に使用される AF_UNIX ソケットの取り扱いの問題があったそうです。これにより、CGI の出力が誤って他のクライアントに送られてしまうという問題が修正されています。

    もう一つは mod_alias と mod_rewrite で、9個より上の正規表現を使用した場合に起こる Buffer Overflow の問題の修正となっています。

    アナウンス( Apache HTTP Server 2.0.48 Released ) のページにその他の修正された問題などがありますので、参照してください。

  • Apache 1.3.29

    Apache 2 の 2つ目と同じ mod_alias と mod_rewrite のセキュリティ問題が修正されています。また、suExec や cgiwrap のような CGI wrapper を使用していた場合に、zombie プロセスが残ってしまうという問題も修正されています。

    アナウンス( Apache HTTP Server 1.3.29 Released ) のページにその他の修正された問題などがありますので、参照してください。

*その他

いくつか気になったセキュリティ関係の情報です。

>>気になったニュース、ツールなど

▲ 目次へ戻る


更新履歴

2003.12.07

FreeBSD の Security Advisory の日本語訳のリンクを追加。PHP で並列処理で、ソースを一部修正、追記。

2003.11.30

11月 30日分を追加。

2003.11.24

11月 16日分を追加。

2003.11.16

11月 16日分を追加。気になった部分の修正など。

2003.11.10

11月 10日分を追加。

2003.11.03

このページを作成。11月 3日分を追加。

▲ 目次へ戻る

LastUpdate: 2003-12-07 | HOME