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

HOME | LastUpdate: 2003-01-26

目次


2003.01.26(Sun)

まとめようと思っている情報が大量にあるのですが、なかなか時間が取れないのと、日頃の疲れもあるため、なかなかまとめきれません・・・。

>>特許権

最近、スラッシュドット・ジャパンに、Burn Frame? フレームに特許を主張する企業や、知的財産権がOSを襲うなど、特許に関する話題が出ていました。あまり特許に関しては詳しくないのですが、思ったことなどを書いてみます。

フレームの特許に関しては、似たような問題として、ブリティッシュ・テレコムがハイパーリンクの特許権を主張(HotWired Japan)ということで、訴訟が起こされましたが、その時は、ハイパーリンク特許訴訟、あっけない幕切れということで、却下されています。フレームはハイパーリンクほどではないですが、十分、一般的な技術になっていますし、訴訟を起こしたとしても、ハイパーリンクと同じような結論になるような気がします。それにしても、フレームを使用していただけでライセンス料を請求された企業も大変です。

また、OS の特許に関しては、ソースコードに含まれる知的財産権侵害を調査するということのようで、かなり複雑のような気がします。全ての特許を避けて、あれだけ多機能の OS を作るのは、非常に難しいと思いますので、調査で問題が見つかる可能性が高そうです。というよりは、既に問題を見つけたから調査すると公表したのではないかと思っていますが、どうなのでしょうか?今後の調査の経過が気になるところです。

>>FreeBSD 5.0 RELEASE

FreeBSD がメジャーバージョンアップして、FreeBSD 5.0 RELEASE のアナウンスがありました( アナウンス日本語訳 )。

FreeBSD のリリースノート や、FreeBSD 5.0-RELEASE 初期利用者のための手引きがありますので、参考にしてください。

手引きによると、何も考えずに FreeBSD 4.x で安定して稼動しているシステムを 5.0 にバージョンアップするのはおすすめしませんと書かれていますので、気をつけた方が良さそうです。

>>PHP

*マルチバイト正規表現のオプション

PHP-users メーリングリストからですが、[PHP-users 12718] Re: mb_regex_set_options()の引数って?の投稿で、マルチバイト正規表現のオプションについての解説があります。PHP マニュアルにはオプションについてはあまり詳しく書かれていませんので、知らないオプションがありました。知っておくと、役に立つかもしれません。

例示のサンプルに訂正([PHP-users 12720] Re: mb_regex_set_options()の引数って?)がありましたので、注意してください。

*Null Byte Attack

これも PHP-users メーリングリストからですが、[PHP-users 12736] null byte attack にあるとおり、preg_* や、fopen などの関数を使用している場合、Null Byte Attack という方法で、製作側が意図しない動作を起こすことができるという報告がありました。

対処方法としてファイル名のチェックには preg_* の代わりに ereg を使う、または、入力チェックを厳しくするなどの方法がありますので、PHP ソースに不安のある人は確認をお勧めします。

>>セキュリティ関係

*ワーム

日本時間の 2003年 1月25日の午後から、Microsoft SQL サーバが使用している Port 1434 UDP を狙ったワームが一時、帯域を占有していたようです。いろいろなメーリングリスト、ニュース、新聞などで話題になっていました。このワームは、SQL Server 2000 解決サービスのバッファのオーバーランにより、コードが実行される (Q323875) (MS02-039)として、既に修正プログラムが公開されているもので、修正プログラムを適用していない場合、感染します。以下のページで詳細情報やまとめが出ています。参考にしてください。

SnortSQL Server のワームを検出するルール も出ています。

*CVS

ソースコードの共有によく使われているツールの CVS ( Concurrent Versions System ) 1.11.4 以前のバージョンに、リモートから任意のコマンドが実行できるという問題があったようです。CVS サーバを外部からの接続を許可していて、CVS サーバが root 権限で動作している場合は、root 権限が取られてしまう可能性があるらしいです。

対処方法は、ソースからインストールしている場合は、1.11.5 以上にバージョンアップしてください。各ベンダーが用意しているパッケージを使用している場合は、修正パッケージをインストールしてください。詳細は、以下を参考にしてください。

また、セキュリティホール memo に、この問題の詳しいまとめ があります。また、この問題が 2000.07.28 に指摘されていたという情報がありました。

*Windows

CERT/CC Advisory CA-2003-03 Buffer Overflow in Windows Locator Service によると、Windows NT 4.0, Windows 2000, Windows XP の Locator Service にバッファオーバーフローの問題があったようです。Microsoft では、MS03-001 に関する情報として、修正プログラムを公開しています。

*RedHat Linux 修正パッケージ

修正パッケージが出ています。CVS のセキュリティ修正が入ったバージョンが公開されたのと同時に修正パッケージも出ています。

>>気になったニュースなど

▲ 目次へ戻る


2003.01.19(Sun)

スラッシュドット・ジャパンで知ったのですが、OpenOffice の日本プロジェクトである ja.oprnoffice.org が正式稼動したそうです。最近では、日本語版の開発も進んでおり、日本語の扱いがかなり改善されてきているようです。Windows に限らず、Linux や FreeBSD、Solaris など、多くの OS で同じオフィスアプリケーションが使用できるのは、非常に素晴らしいことだと思います。

>>PHP

*コマンドライン版 PHP ( バージョン 4.2.2 ) と exit 関数

PHP 4.2.2 の問題なのですが、コマンドライン版 PHP と qmail を使っているときに、exit 関数で詰まってしまったので、メモしておきます。この問題は PHP 4.2.3 以降では修正されているようです。

qmail から .qmail のパイプを使い、コマンドライン版 PHP に渡して処理を行うスクリプトを作成していたのですが、一度メールを送っただけで、何度も同じ処理が行われる用になってしまいました。qmail-qstat を実行したところ、スクリプトによる処理が行われても、キューに入ったメールが減らないという状況になってしまいました。

PHP のスクリプトでは、exit でスクリプトを終了させていたのですが、調べたところ、PHP の exit 関数が、バグにより、終了時に 255 を返していたため、qmail が受け取る終了コード が 255 になってしまい、qmail がソフトエラーとしてみなしていたため、処理後、再送を行うようになっていたようです。終了コードについては、qmail-command (日本語訳) を参照してください。

対処方法としては、PHP-users メーリングリストの [PHP-users 7668] exitの仕様変更の影響 を参考にして、exitreturn に書き換えることにしました。PHP 4.2.1 から PHP 4.2.2 の問題のようです。

問題の確認方法としては、コマンドライン版 PHP で以下のように実行してみると分かるようです( bash を使用している場合 )。

$ php -r "exit(0);"
$ echo $?

表示された値が 255 の場合は問題がありますので、qmail などのスクリプトの終了コードを使用するデーモンを使用している場合は PHP 4.3.0 以降を使用した方が良いと思います。

>>セキュリティ関係

*DHCP

ISC DHCPD の バージョン 3.0 から 3.0.1rc10 に複数のセキュリティホールが見つかったそうです。ISC DHCPD 3.0p2 および 3.0.1rc11 では修正されています。リモートからの攻撃が可能ということですので、早い目に対策をした方が良さそうです。

対策として、NSUPDATE の無効化、DHCP サーバの外部からのアクセスを遮断する( 67/tcp, 67/udp, 68/tcp, 68/udp ) という対策も紹介されています。

詳しくは、以下の情報を参照してください。

*Internet Explorer

スラッシュドット・ジャパンに、IEのXSSバグで任意サイトのCookieが漏洩という記事が出ており、以下の2つの問題が指摘されています。

  • Internet Explorer の JScript のメソッド「showModalDialog()」の3番目の引数にスタイルシートと 同じ記述ができ、任意の Web サイトを開いた状態でスクリプトを実行することが可能なため、Cookie を盗むことができる。
  • Internet Explorer のウィンドウで直接フラッシュのファイルを開く際の問題で、フラッシュなどのファイルを直接開くとき、 それを貼り付けた HTML を内部的に生成しているため、この HTML の生成過程に、クロスサイトスクリプティングを引き起こし Cookie を盗むことができる。

Interenet Explorer のみの問題のようですが、以上のように具体的な攻撃方法が書かれていますし、開発時に考慮しなければならない事項が増えたような気がします。ユーザがスクリプトを無効にしてくれれば問題はないのですが、全てのユーザにというのは無理な話ですので、開発者とか、サイト管理者としては、何とか攻撃を受けないように対処はしたいところですが・・・。

これらの問題に対しては、Cookie に重要性の高い情報を含めない、セッション Cookie を使用する際には、セッションだけでなく、その他の偽装しにくい情報も含めた形で認証を行うなどの対策を行って、被害を受けにくいようにするしかないのかもしれません。

*MP3 内に含まれるウイルス

いろいろなところで話題になっているようですが、ウイルスが含まれたファイルを mpg123 という MP3 プレーヤで再生すると不正なコードを実行できるという問題があったようです。TREND MICRO 社の情報 (TROJ_JBELLZ.A) を見ると、mpg123 pre0.59 を使っている際に影響を受けるようです。また、以下のように書いてあり、Linux で動作するコードはすでに出回っているようです。

このトロイの木馬はLinux用の音楽再生ソフト「mpg123 Version pre0.59」のセキュリティホールを利用してMP3音楽データファイルの中から不正コードが実行される仕組みを実現した初めての不正プログラムです。この不正プログラムはC言語で記述されており、「Suse Linux 8.0」、「Slackware Linux 8.0」などLinuxシステム上で動作します。RedHatなど他のディストリビューターのLinux上でも動作するよう修正することも可能と思われます。

セキュリティホール memo には、mpg123 のパッチの情報がありました。

また、音楽業界がP2P感染のワーム作成?(ZDNet)といううわさもあったらしいのですが、冗談だったらしいです。

>>気になったニュースなど

▲ 目次へ戻る


2003.01.13(Mon)

過去ログの整理を少し進めました。2001年分の過去ログは全て削除しました。役に立つかもしれないと思った、lftp と Linux でキーマップを変更する方法については、PC-Unix 関係覚え書きに加えておきました。

吉野家牛丼注文プロトコルという、【2ちゃん発】RFC作成計画で議論?されている文書が HTML 化されていました。非常によくできていて面白いです。HTTP の仕様なども知っているとさらに楽しめると思います。また、ジョーク RFC という、ジョーク RFC の日本語訳をあつめたサイトもありますので、興味のある人は読んでみて下さい。

>>PHP

*PHP 4.3.0 の php.ini

PHP 4.3.0 をインストールしてから、CLI 版で日本語処理で少し詰まってしまいましたので、メモしておきます。

CLI 版 PHP で、mb_encode_mimeheadermb_decode_mimeheader を使用した時に、望み通りの結果にならなかったので、調べたところ、php.ini を見直すことで解決しました。

手順としては、PHP 4.3.0 のソースディレクトリから php.ini-recommand を、/usr/local/lib/php.ini にコピーし、以下のように、日本語関係の設定を変更しました。

default_charset = "EUC-JP"
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
[mbregex]
mbregex.encoding = EUC-JP

もし、PHP 4.3.0 で mbstring 関係の問題があった場合は、php.ini を見直してみるといいかもしれません。

*empty 関数

2ch の PHP 関係の話題を見ていて、empty 関数と isset 関数の使い方を見つけたのでメモしておきます。試してみたところ、以下の3つの式は等価のようです。empty 関数を ! を付けずに呼び出したときに変数が初期化されていないと、エラーが表示されますが、! を付けて empty 関数を呼び出すと、変数が初期化されていない場合でもエラーを出さずに正しい値を返してくれるようです。

if ( isset( $a ) && $a != 0 && $a != '' && $a != NULL )
if ( isset( $a ) && $a )
if ( ! empty( $a ) )

>>Mozilla

スラッシュドット・ジャパンに、Mozillaのレンダリングを高速にという記事が出ていました。この通り、試したところ、RedHat Linux 7.3 Mozilla 1.0.1 でも快適に表示されるようになりました。Mozilla 以外の Netscape 7 などでもこの設定は有効のようですので、ADSL などの高速回線を使っている人は設定を変更してみるといいかもしれません。Linux などの Unix 系 OS であれば、~/.mozilla/default/*.slt/prefs.js に以下の行を追加するだけです。250 はミリ秒。この値は任意の値に変更してください。デフォルトは、1200 になっているそうです。

user_pref("nglayout.initialpaint.delay", 250);

>>セキュリティ関係

*IPA セキュリティセンター

IPA セキュリティセンター に、ウイルス・不正アクセス届出状況(12月分及び2002年分)が出ています。まとめると、以下のようなところでしょうか。

  • 2002年はウイルスの被害がかなり多かった。W32/Klez は史上最悪の届け出件数。 2002年ウイルス発見届出状況を参照。
  • 不正アクセスの届け出も急激に増加している。
  • Windows ユーザに対する Internet Explorer のバージョンアップの呼びかけ
  • Windows 98/Me, Windows NT4.0/2000 ユーザに対する、 昨年 11月に発見された MDAC の問題に対するバージョンアップの呼びかけ
*Exploit-Coding ML

Exploit-Coding ML の話題に、SCRIPTタグ内でセミコロンを許した場合のフィルタリングについてという投稿があり、興味深く見ていたのですが、結論として、セミコロンを許さなくても Javascript の起動が可能であるということが証明されていました。

<SCRIPT> タグの中にユーザが入力した値を入れることをしてはならないという結論になりそうです。詰め XSS の結果、表彰のメール も投稿されていました。

*RedHat Linux 修正パッケージ

RedHat Linux から修正パッケージが公開されています。

*FreeBSD

FreeBSD のセキュリティ勧告で、ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:44.filedesc が出ています。日本語訳も出ました。FreeBSD 4.3 Release 以降で問題となるようで、OS をクラッシュさせること可能性があるということです。以下の Patch が出ていますので、PGP 署名を確認してからパッチを適用してください。

>>気になったニュースなど

▲ 目次へ戻る


2003.01.05(Sun)

このページの再構成中です。過去ログにしていた昔の日記は、あまり大した情報もないので、一部の情報を PC-Unix 関係覚え書き に移して削除しました。もう少し整理を続ける予定です。

>>セキュリティ関係

*RedHat Linux 修正パッケージ

RedHat Linux から pine の修正パッケージが公開されています。

▲ 目次へ戻る


2003.01.02(Thu)

相変わらず、DocBook と XML、XSLT の勉強をしながらページの再構成中です・・・。

PHP 4.3.0 もリリースされたようなので、PHP のインストールメモ をついでに少し修正しました。

>>Vim

KaoriYa さんのところで、日本語を扱うのに便利な設定やスクリプトが追加されたバージョンの Vim 6.1.267 が公開されています。

また、 2ちゃんねる閲覧 Vim プラグイン「Chalice for Vim」も バージョン 1.7 が公開されていますので、興味のある人は訪れてみるといいかもしれません。

▲ 目次へ戻る


2003.01.01(Wed)

早いもので、もう年が開けてしまいました。一応、この休みを利用して、全体的にページを修正している途中です。

何か不備があるかもしれませんので、問題があるようでしたら、メールを送ってもらえると幸いです。

年末から元旦にかけて、あまり情報はないと思ったのですが、意外とあるようです・・・。今年も、週一回のペースで更新していくことが目標ということにしておきます。

>>セキュリティ関係

*PHP

TechStyleTechStyle ニュースレターで知ったのですが、PHP の wordwrap 関数に、バッファオーバーフローの問題があったそうです。ユーザからの入力を wordwrap 関数で処理していると影響を受けるそうです。

BugTraq投稿されたメール : Buffer overflow in PHP "wordwrap" function によると、影響を受けるのは、PHP 4.1.2 より上のバージョンから、4.3.0 より前のバージョンで、PHP 4.3.0 では修正されているようです。

ただ、SecurityFocus の、PHP wordwrap() Heap Corruption Vulnerabilityにある情報では、PHP 4.1.2 も問題のあるバージョンに含まれていますので、PHP 4.1.2 でも wordwrap 関数を使用している場合は安心しない方がいいかもしれません。

PHP Bugs の、Bug #20927 Crash inside libpq (PQexec) with PHP > 4.1.2 (Actually, culprit is wordwrap) に詳細な情報が載っています。

日本語などのマルチバイト文字列を扱っている場合、wordwrap 関数はあまり使えない( マルチバイトで wordwrap と同じことを実現する場合はマルチバイト関数を使うのが普通だと思います ) ので、個人的には、緊急性はあまり大きくないとは思います。シングルバイト圏の人はよく使う関数なのかもしれませんが。

>>気になったニュースなど

▲ 目次へ戻る


更新履歴

2003.01.01

このページを作成

▲ 目次へ戻る

LastUpdate: 2003-01-26 | HOME