Oct - 19th

楽天

Posted at 12:16 pm | Filed Under Security, Uncategorized

楽天の社内から「業務に無関係」とみなされたサイトへのアクセスは変なリファラが残る

コンプライアンスって素敵ですね。

Read More>

Aug - 11th

MOPBのexploitコードが削除される

Posted at 12:28 pm | Filed Under PHP, Security

MOPBで知られるStefan Esser氏によると、ドイツで今日から布告(っていうのか?とにかく有効になったのが今日)された法律により、MOPBで勧告の内容を証明するexploitコードが全て削除されることになった。

Read More>

Aug - 6th

WordPress更新

Posted at 12:29 am | Filed Under Security, WordPress

WordPress2.2.2が出ている。セキュリティ関連の更新もあるのでホスティングしている全ての環境をアップグレードしておいた。

Read More>

Jul - 31st

Drupalに脆弱性

Posted at 1:46 am | Filed Under PHP, Security

php|architectの記事によると、Drupal 5.2より前のバージョンにXSSとCSRF脆弱性が見つかっている。5.2に更新することで修正される。

アドバイザリその1
アドバイザリその2

Read More>

Jul - 19th

CSRF対策あれこれ

Posted at 11:38 am | Filed Under PHP, Security

php|architectの記事で紹介されているCSRF Redirectorだが、MOPBHardened PHPプロジェクトでおなじみStefan Esser氏より不備が指摘されている

クリスのサンプルには二つの大きな危険性がある:

  • 悪意のある人が他のサイトへの攻撃の踏み台として利用するかもしれない
  • 全てのURLがウェブページというわけではない。プラグインをロードしたり、情報を表示したり、JavaScriptを実行したりすることが出来る

というわけで、夢のソリューションというわけにもいかないようだ。

#ところで、Stefan Esser氏といえばhttpOnlyの作者でもある。

Read More>

Jun - 12th

PHPMailerの脆弱性

Posted at 12:07 pm | Filed Under PHP, Security, WordPress

PHPMailerにリモートから任意のコードを実行出来る脆弱性が見つかっています。popen関数に渡される引数が適切に処理されていないので、入力値に問題があってもそのままコマンドがforkされて実行されてしまいます。WordPressにもwp-includes/class-phpmailer.phpとして組み込まれているので対策が必要です。

とりあえずpopenの前にescapeshellcmdでエスケープ処理を入れて、sendmailコマンドを分割して攻撃するような手口を回避することは出来ます。

//wp-includes/class-phpmailer.phpの396行目に一行追加します:

$sednmail = escapeshellcmd($sendmail); //追加
if(!@$mail = popen($sendmail, "w"))
{
    $this->SetError($this->Lang("execute") . $this->Sendmail);
    return false;
}

アドホックな処理なので、本来は入力値をチェックする必要があるのですが、プラグインを含めるとどこで使われているのか不明なので、とりあえずこれで対策しました。

Read More>

Jun - 7th

PHP-5.2.3で修正されていないセッションの脆弱性

Posted at 4:30 pm | Filed Under PHP, Security

まだまだ続くMOPBによれば、PHP-5.2.3には未修整のセッションの不具合があり、場合によっては攻撃を受ける可能性がある。大垣靖男氏がMOPBの翻訳作業を停止されているのもあり、原著者の許可を得てここに情報を載せておく。原文はHTMLのコメントに残した。

原文はこちら

注:以下の文章を閲覧したことにより発生するいかなる事態にも翻訳者は責任を負うものではありません。以下の翻訳について原著者は無料での公開を許可しただけであり、内容については一切関知していません。


PMOPB-46-2007:PHP ext/session Session Cookie Parameter Injection Vulnerability

■概要

PHPのext/sessionはセッションIDをsession cookieに挿入する前にURLエンコードしない。そのため、セミコロンのような特殊な意味のある文字がcookieの値からさらにはsession cookieまでにも挿入する目的で利用されてしまう。

PHP-5.2.3ではこの脆弱性は修正されていない。PHPの開発者たちは我々が送ったこの問題を修正方法を出し抜こうとしたせいだ。

■影響するバージョン
影響するPHPのバージョンはPHP4.4.7以下、PHP5.2.3以下

■詳細情報
session_start()関数が呼ばれると、PHPのext/sessionはある条件下では新しいsession cookieを発行しようとする。この条件は例えば

- セッションIDがPATH_INFOに埋め込まれていた
- セッションIDが再作成された
- セッションIDがsession_id()関数でセットされた
- session_start()が二度以上呼ばれた

これら4つのケースの内、3つでセッションIDが完全にユーザ側から送信されたもののままになっている。セッションIDはcookieに何のエンコーディングもされずに保存されるので、session cookieのHTTPヘッダに任意のcookieの値の挿入が可能になる。この脆弱性は挿入された改行文字がPHPに導入されたHTTPレスポンス分割攻撃を防ぐ機能にキャッチされる点を除けば、2006年に我々が公開したext/sessionのHTTP応答分割攻撃の脆弱性と実質的に同じものだ。

PHP 5.2.3ではセッションIDがPATH_INFOに登録された場合にはsession cookieを送信しないという方法でこの古い問題を修正しようとしている。しかし、これでは複数のパスの内、1つだけしかクローズされない。

実証、exploit、再現の手順
この脆弱性は自明なので実証は不要だ。http://www.server.de/session.phpのようなURLがあればこのような任意のcookieのパラメータを挿入することが出来る。(以下の例はPHP4の全てのセッションモジュールとPHP5 < 5.2.3の”files”以外の全てのセッションモジュールで動作する)

http://www.server.de/session.php/PHPSESSID=ID;INJECTED=ATTRIBUTE;/
PHPコアのセッション管理に対して動作するこの例の他にも、session_id()関数を利用しているアプリケーションに大してもこの攻撃を仕掛けることが出来る。

<?php
$_GET_VARIABLE = “ID;INJECTED=ATTRIBUTE;”;
session_id($_GET_VARIABLE);
session_start();

?>

注意
この脆弱性は2007年5月17日にPHP開発者たちに公開されている。彼らにはセッションIDをcookieに入れる前にURLエンコードしなければならないとはっきりと伝えてある。

彼らは明らかな副作用があるこれとは別の修正方法を選んだが、この脆弱性は直っていない。攻撃手順の1つを塞いだだけだ。

この脆弱性は2006年に我々が公開した別の脆弱性と関連している。つまり、2006年にエンコーディング問題そのものではなくたった1つの攻撃手法が防がれただけだったので、脆弱性があるままになっていたということだ。PHP開発者たちが対処療法的なハックを繰り返すのではなく正しい修正をするということを学ばない限り、歴史は繰り返す。

そして、彼らはまたもや仕出かしている。「彼らの修正」は傍目にも明らかに混乱の内に忘れられ、この脆弱性についてはPHP 5.2.3のリリースアナウンスのどこにも触れられていない。


邦訳がなく未修整のMOPBがあれば他にも随時掲載していきます。

Read More>

May - 8th

PEARに脆弱性が

Posted at 4:29 pm | Filed Under PHP, Security

PHPの標準ライブラリ、PEARのインストーラに脆弱性が見つかっている。要約すると、攻撃用のパッケージをPEARのインストーラを使ってインストールすると、場合によってはシステム上の任意のファイルを書き換えられるというもの。普通はPEARはroot権限で実行するから、/etc/passwdとかを書き換えることができる。

詳細はこちらから

Read More>

Feb - 4th

JSONのセキュリティ

Posted at 2:41 pm | Filed Under Javascript, Security

http://www.zeroknock.metaeye.org/mlabs/expjson.html

このページを訳していたのだが、途中いくつか英語が変なので質問を送っている。まだ返答がもらえない。Javascriptの実装についてはセキュアなプログラミングのノウハウがまだまだ少ないので、この手の文書がもっと増えるといいのだが。

#追記:返事が届いた。とても感じのいいメールだった。名字と名前を間違えられるのはこちらのシグネチャが悪いせいだ。

Technorati Tags: ,

Read More>

« go back