HTTP Response Splitting Attack: PHPの場合

ここの日記にも書いたHTTP Response Splitting Attackの対策がPHPでも取られるようです。

header(“bad-header: This is bad header\r\n but having CR/LF in a haeder is allowed by the standard in some case.”);

上記のヘッダが送られた際に\r\nを自動削除可能な設定が追加されます。ただし、\r\nがヘッダ中に現れる事は標準で認められいいますが、パッチを適用したPHPの場合は拒否&警告エラー(php.ini設定のデフォルト値になる)が発生します。もちろん「不正なユーザ入力対策は万全」というサイト向けではそのままCR/LFを送ることも可能です。次のPHPリリース時には取り込まれていると思いますが、仕様が変わっているかも知れないのでChangeLogなどで確認する必要があります。

未対策のアプリがあるサーバはエラーハンドラ(必ず作ってますよね。PHPプログラマの方!)で処理するだけです。普通にエラー処理しているPHPアプリケーションならPHP本体にパッチを当てるだけで完了です。

Facebook Comments

すごいペンギン

kazさんの日記で見つけたのですがEmperorPenguinEmpire 〜ペンギンのフリーWEB素材サイト〜はすごいですね。

同じ日の日記にtDialyもb2evolutionと同じように集中型ブラックリストを構築する動きがあると書いてありますね。メールのみ無くてオーブンプロキシを対象にしたブラックリストが必要になって来ていると思います。tDialyでrbldnsを使ったIPブラックリストが出来たら早速利用させていただきます。

# rbldnsならb2evolutionをカスタマイズして取り込むのも簡単!

Facebook Comments

SANS Top 20

SANS Top 20が10/8日に発表されていますね。UNIXはBINDが1位になっています。インストールしたままアップグレードしない、古いパッケージをそのまま使う管理者も多いと言うことなのでしょう。

ちなみに私は出来るかぎりdjbdnsを使ってます。このリンク先にDan J. Bernstein氏が随分前から指摘していたDNS キャッシュを DNS サーバから分離することの重要性を知らないユーザも多いと言うこともあるでしょう。こちらも随分前になりますがCERTもこの件に関してアドバイザリを出しています。

しかし、今でもDNSキャッシュとDNSサーバに同じIPアドレスを指定させているISPがあります。CERTアドバイザリのURL等を添付して改善を依頼するメールを送った所、「検討します」という内容のメールが来ました。しかし、それから早くも半年近くも経ちます。DNSキャッシュの汚染によるサイトの乗っ取りなどの被害が発生した場合、このISPは損害賠償を請求されても仕方が無いですね。

世界中にはこの様なISPが沢山あるのかも!?

Facebook Comments

RFID報道の大間違いを正す

ITMediaに総論:RFID報道の大間違いを正すと言う記事が掲載されています。RFIDについて時々日記に書いていましたがこの記事は必読と思います。

RFIDとは全く異なりますがBluetooth話題になっているころには色々ありましたね。Bluetooth対応洗濯機・レンジ・冷蔵庫は2年以上前のニュースです。今頃Bluetoothが溢れているハズだったのですが、先日買った東芝の最新型の洗濯乾燥機にはBluetoothは付いてませんでした。

Facebook Comments

Mozillaプロファイルの引っ越し

メインのLinuxで使っているMozillaがメールを自動的にダウンロードしなかったり、ブラウザが設定している検索サイトで検索出来なかったり、瀕死の状態になっていました。しかも随分長い間… こういった場合、壊れたプロファイルが原因である事がほとんどであることは知っていたのですが…

やっと重い腰を上げて新しいプロファイルに移行することにしました。

方針

  • メールとニュースの設定およびダウンロード済みメッセージは保持
  • 残りは全て再設定

まず新しいプロファイルをプロファイルマネージャ([ツール]-[プロファイルの切替え])で作成します。

古いプロファイルと新しいプロファイルに位置を確認します。

~/.mozilla/<ProfineName>/<salt>/

Mail メールメッセージ(ディレクトリ)
News ニュースメッセージ(ディレクトリ)
prefs.js メールアカウント等の情報(ファイル)
abook.mab メールアドレスDB(ファイル)
数字.s パスワードファイル

prefs.jsからメールとニュース設定項目を新しいプロファイルにコピー。重複するエントリは削除。

以下の文字列で始まる行がコピー対象の行

user_pref(“mail
user_pref(“news

古いプロファイルディレクトリのMail, Newsをコピー。


cp -a Mail News ../yohgaki/some-salt/

以上で引っ越し完了。
後は面倒なパスワードの再設定を行えば移行完了です。パスワードの再設定が面倒な場合、

“数字.s”形式のファイルをコピーします。


93824234.s

を新しいプロファイルディレクトリに作成された同様の形式ファイルに上書きするとパスワードも移行できます。

# もしかしてプロファイル移行ツールとかあるのかも?知っているかたコメントお願いします。

Facebook Comments

tDiaryローカル・キャッシュ・システム

著作権法は引用を正式に認めているので、引用の程度を越えなければ法律上は問題無いはずです。音楽に関しても同様だったと思います。(何小節まで同じメロディーでもOK、と言うような感じだったと思います)

引用は法律上問題無く行えるといっても、ハイパーリンク先のページが無くなると後でページを読んでも意味が通じない事がしばしばあるのでtDiaryローカル・キャッシュ・システムは便利そうですね。

Facebook Comments

Home -> Professional


Windows XP HomeとWindows Server 2003
でHome Editionでは少なくとも共有に問題がある、と書きました。この日記を書いた時点ではHome->Professionalのアップグレード版は無かったようですが、苦情が多かったせい(?)かHome->Professionalのアップグレード版が10/22から発売になるようです。価格は通常のアップグレード版の約半分の約1万円。泣く泣く通常のXP Professionalのアップグレード版を買った人も多いのではないかと思います。

Homeを付けて販売しているノートPCはかなり多いのでビジネス用ノートPCの選択肢が増えますね。このアップグレード版は期間が限定されていないと良いのですが… (調べてません。コメント歓迎)

Facebook Comments

HTTP Response Splitting Attack

HTTP Reponse Splitting AttackはOWASPの新しい脅威のカテゴリになるそうですね。

簡単言うと言語やブラウザ等のHTTP Reuqestヘッダによって別のページに振り分ける(リダイレクト)させるWebサイトのヘッダに問題があると脆弱性が発生し攻撃が可能になります。

可能になる攻撃にはクッキーの漏洩からキャッシュシステムが組み込まれたWebサイトでは意図しないページの表示(複数のユーザ向けへのページの改竄)まで、と色々な影響があります。対処方法は正しいヘッダを返す。つまりCR,LFを含んだ入力をリダイレクトに使わない。

詳しくは
http://lists.virus.org/webappsec-0403/msg00004.html
http://www.sanctuminc.com/pdf/whitepaper_httpresponse.pdf

PDFは非常に丁寧にHTTP Response Splitting Attackを解説しています。

Facebook Comments

Javaの特許侵害が確定!?

次のURLに記載されているニュースで争われていたKodakが持つオブジェクト技術の特許が認められたそうです。

http://www.itmedia.co.jp/news/0202/14/e_kodak.html

まだ本当に裁判が確定してはいないようでSunが逆転するチャンスはあるようですが、このままでは次のURLの特許が認められる様です。

http://www.freepatentsonline.com/5206951.html
http://www.freepatentsonline.com/5421012.html
http://www.freepatentsonline.com/5226161.html

Kodakは一時金で10億6000万ドルの特許料を請求するそうです。オブジェクト技術の基本に関わる特許らしいので.NET等にも影響が出そうです。

FATファイルシステム特許といい、ソフトウェア特許には特許として認めて良いのか疑問である特許が多すぎます。(幸いFAT特許は無効になる、なった?、と思いますが) 調べもせずコメントするのは不適切ですが、このKodakの特許は本当に特許に値する発明なのでしょうか? ソフトウェアの特許は明確なアルゴリズムのみに限定した方が良いと思うのですが…

1000億円以上の一時金+特許ライセンスを支払ってJavaを無料で提供できるか考えると不可能に思えます。少なくともSDKは有償になるかも知れません。JBossなどにも影響するかも知れませんね。(特許のクレームを読んでいないので妄想です。念のため)まだこの裁判にSunが勝つ可能性があるそうです。是非Sunに勝訴してもらいたい。

Facebook Comments

b2evolutionの日本語化

備忘録として。

このブログソフト(b2evolution)のメッセージ日本語化は非常に良くできているのですが、プログラムの方は改善の余地があるようです。少なくとも私の環境では以下の様な問題に気がつきました。

  • 使用する文字エンコーディングをもう少し柔軟に設定可能にする
  • メールで使用される文字エンコーディングがおかしい(何故かUTF-8として送信され、実体はISO-2022-JP)
  • 文字数は数えても仕方ない(スキンから削除するだけ。削除済み)
  • 少なくともRSS1.0の記事の発行時間を調整可能にする(現状GMT。JSTも指定できるようになっていて欲しい)

メール送信の問題くらいは直さないといちいちメールが来る度にエンコーディングを指定しないとならないので面倒ですね。簡単に直りそうなので早めに直したい所です。

dc:dateの部分は仕様的(RSS1.0およびW3C Date and Formats)には正しいのですがGMT時間であることを示す”Z”を処理できないRSS処理系があるようです。(困っているのはmixi.jpの日記RSS)

2004-10-03T23:58:18Z

の様にb2evolutionは正しく送っていてもJSTを前提に処理してしまうサイトがあるのでこちらで対処する方が早いと言うだけです。本来は仕様にしたがっていないサイトを修正してもらうべきですが…

[追加]
もう少し詳しく書くとRDF Site Summary 1.0 Modules: Dublin Coreのdc:dateは

* <dc:date> ( #PCDATA ) [W3CDTF]

となっておりW3CDTFで次のように定義されています。

The formats are as follows. Exactly the components shown here must be present, with exactly this punctuation. Note that the “T” appears literally in the string, to indicate the beginning of the time element, as specified in ISO 8601.

Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
Complete date plus hours, minutes, seconds and a decimal fraction of a
second
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

where:

YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
TZD = time zone designator (Z or +hh:mm or -hh:mm)

Facebook Comments

錯覚

たまたま見つけたすごい画像です。静止画ですが錯覚を利用して画像が動いている様に見えます。

http://www.ritsumei.ac.jp/~akitaoka/index-e.html

乗り物酔に弱い方等は気分が悪くなるかも知れないので注意してください。

Facebook Comments

「まるごとPHP」

最初のセクションの部分に「まるごとPHP」著者の一人である月宮さんがツッコミを入れられてますね。ちょっと辛口のコメントです。初心者向けに記述するのは難しいですね。私も気を付けないと… (私も「まるごとPHP」にセキュリティー関係でほんの少しだけ書いています)

月宮さんの日記のコメントにも書きましたが、PHPでは明示的にリソース(DB接続・ファイル)や変数を開放する必要がほとんどありません。Webプログラムでは明示的に開放しない方が良いくらいです。例えば、DBの永続的接続を使っていない場合、システム負荷を上げるだけで役立つ事はほとんどありません。永続的な接続を利用している場合、データベース接続を切断する関数を呼ぶと役立つ事は一切無く無駄なCPUリソースを消費するだけです。

Facebook Comments

日本におけるb2evolutionの利用状況

日本ではあまりユーザがいないのではと思っていたb2evolutionですが、b2evolutionをキーワードにググってみる

b2evolution の検索結果のうち 日本語のページ 約 601 件中 1 – 97 件目 (1.10 秒)

という結果に。ま、私はある程度マイナー好きな傾向があるのでよしとしておきます。しらぬまにメジャーになったものも多いですが、LinuxとかPHPとか 🙂

良く使うソフトウェアが知らぬ間にマイナーからメジャーになる、と法則性が当たるとすればPostgreSQL, Momongaがメジャーになっていき、b2evolutionも広く使われる事でしょう。(違う?

Facebook Comments

カスタマイズ

本当はb2evolutionをカスタマイズしている暇はないのですが、ほんの少しだけカスタマイズしてみました。

このページはb2evolutionのcustomスキンをそのまま使っているのですがXHTML文書としてバリデートできませんでした。理由は簡単、ISO-8859-xな文字がテンプレートの作者名に含まれていたからです。

日本語では単語数を数えても意味が無い(というか日本語の単語数を数えられるようになっていない)ので単語数を削除しました。

どちらも

skin/custom/_main.php

を編集して該当行を削除して今の状態になっています。

Facebook Comments

b2evolutionのspam排除機能

b2evolutionにはSPAM排除と言う機能があり、これでSPAMを防ぐ機能があります。管理ページの「spam排除」タブに「中央ブラックリストに迷惑行為の更新情報を請求する!」をクリックするとSPAMを行っているサイトのリストとコメントSPAM用(?)のキーワードが増えるようです。便利便利。

Facebook Comments

リファラスパム

wikiへのアクセスなんだか週末にしては妙に多い、と思ったらリファラスパムが送られて来ているようです。怪しげなサイトがリファラとして残っていました。世の中スパムばかりになって来て嫌になりますよね…

wikiはリファラを表示していないので宣伝やグーグルの検索結果ランクアップには役立たないのですが、送って来る所をみると無差別にスパム送信を業者が始めたようです。

referer spamでググってみると知人もSPAMの影響を受けていますね。そして最近、スパムが急増しているように思えます。リファラを記録し表示するWebアプリは多くあるので対策が面倒です。SPAMメールと同じ用にブラックリスト使えればよいのですが、と思ったところで既にあるかもと思ってググってみても直ぐに見つりませんでした。リファラ、コメント、トラックバックスパム対応のblack list知っている方教えて下さい。

Facebook Comments

久しぶりにorkut

招待メール送って、と知人に頼まれたので、久しぶりにorkutを見てみたらかなり重いですね。タイムアウトの連続… mixiも遅い時があるらしい(?)ですが私が見ている時間で遅いことは無かったですね。運が良いだけかな?

Facebook Comments

Windows XP HomeとWindows Server 2003

Windows XP Professionalしか使っていなかったので気がつきませんでしたが、Windows XP HomeでWindowsServer 2003のファイル/プリンタ共有を利用するには問題があるようです。

Winodws XP Homeはドメインに参加できないため、共有を利用するにはワークグループモデルのセキュリティーで共有リソースにアクセスする事になります。ワークグループモデルのセキュリティーとはユーザ名とパスワードが一致する場合、共有等へのリソースを許可するモデルです。ユーザ名とパスワードが一致しない場合は共有へアクセスするためのユーザ名とパスワードを入力するようにダイアログが表示されます。色々な問題はありますが小規模なネットワークではワークグループモデルで十分な場合も多いです。

Windows Server 2003とWindows XP Homeでもワークグループモデルでの共有アクセスは可能なのですが、困ったことに気まぐれ(?)にアクセスを許可する場合と許可しない場合があります。Windows XP Home(Professionalも?)は一旦共有リソースを利用するためにユーザ名とパスワードを入力するとそのユーザ名とパスワードを記憶するらしく、再起動後ユーザ名とパスワードの入力が必要なユーザでWindows XP Homeにログオンしてもユーザ名とパスワードを入力しないでリソースにアクセスできました。

勝手にユーザ名とパスワードを記憶してまう動作にも問題があるのですが、もっと困ったのはユーザ名とパスワードを全く聞かずにアクセスが拒否されてしまうことです。どういった条件で発生するのは判っていません。何日間が放っておくとまたアクセスができるようになったりするようです。一番最初にアクセスするときはほぼ確実に正しく動作するようです。しかし、リソースをアクセス用にユーザ情報が記録されている場合、保存されたユーザ情報が正しく利用されていないようです。せめて拒否して全くアクセスさせないのではなく、ユーザ名とパスワードを再入力できるようになっているべきです。

ネットワーク接続のプロパティーの詳細タブが表示されたり、されなかったりする不具合と同じような感じですね。この問題はSP2になってずいぶんましなったようですが…

とにかくWindows XP Home(Professionalも?)のワークグループモデルを利用した共有リソースへのアクセスに以下の問題があります。

パスワードを保存するかユーザに確認できない
保存したパスワード情報が削除できない
保存したパスワード情報が一致しない場合(?)、アクセス拒否ではなくパスワードを再入力できない

小規模な会社にはXP HomeのノートPCがあったりします。ドメイン(アクティブディレクトリ)を使わずにWindows XP Homeから共有リソースへはまともにアクセスできないのでので本当に困ります。もしかしてワークグループモデルはサポート対象から除外されているのでしょうか?

Facebook Comments