Sendmail脆弱性の攻撃コード

Sendmailにセキュリティホール

OSVDBに1983年に登録されたとされる”SendmailのUnspecified Overflow“のエントリ他3つが更新されていたので、またSendmailにセキュリティホールかな?と思っていたら色々なディストリビューションからアドバイザリが出始めました。sendmailのホームページにもアドバイザリが記載されています。

任意コマンド実行など危険性が高いセキュリティホールなのでsendmailを使っている方は直ぐにアップグレードが必要です。

# Sendmail 8.13.6 is available (2006-03-22); it contains a fix for a security problem discovered by Mark Dowd of ISS X-Force. Sendmail urges all users of sendmail 8 to upgrade to sendmail 8.13.6.
If you cannot upgrade to 8.13.6, then you can apply a patch to 8.13.5, or a patch for 8.12.11. Note: these patches do not apply cleanly to older versions; moreover, they may not even work properly due to other changes that have been made in the latest versions. Hence we strongly suggest all users of sendmail 8 to upgrade to sendmail 8.13.6.
For those not running the open source version, check with your vendor for a patch. If you use the commercial version from Sendmail, Inc. then please see their advisory.

出展: http://www.sendmail.org/

Sendmail.comのアドバイザリ:
http://www.sendmail.com/company/advisory/index.shtml

ちなみに私はqmail派です。qmailはアップグレードの必要が無いのでその意味では楽です。

全ての国内電話番号が10桁に

Webシステムの開発に限った事ではありませんが、入力チェックが少し簡単になります。来年から全ての国内の電話番号が10桁になるようです。最後の9桁地域は箱根だそうです。9桁から10桁になるのは来年の2月25日から。

9桁から10桁への移行は1961年からの開始したそうですが半世紀近い時間がかかっていますね。

Google Finance

Googleが金融情報サービスを開始したようです。

ちなみにMSFTの場合
http://finance.google.com/finance?q=MSFT&btnG=Search
な感じで表示されます。

ちょっと変わった所では取締役の名前の上にマウスカーソルを置くと写真や説明などが参照できます。グラフの部分にマウスカーソルを持っていくとJavaScriptFlashが使われている事が分かります。FF1.5では時々グラフの更新に問題があるようです。

グラフはAJAXで作っていると思い込んでいたので、最初はここまでAJAXでやるか!と思いましたが流石にAJAXであそこまでやるのは難しかったようですね。

書籍のサンプルプログラムをダウンロードできるようにしました

重い腰を上げて「Webアプリセキュリティ対策入門」と「はじめてのPHP言語プログラミング入門」のサンプルプログラムをWikiからダウンロード出来るようにしました。特に「はじめてのPHP言語プログラミング入門」は出版からかなりの時間が経過してしまいました。申し訳ございません。

Wikiのページへのリンク

はじめてのPHP言語プログラミング入門

Webアプリセキュリティ対策入門

文脈認識

文脈認識技術とは、顔認識技術を強化したようなものだという。Riyaのソフトウェアは人物の顔を調べるほか、その人物がきているシャツなど、他の手がかりも利用して似たものを見つけ出す。さらに、このソフトウェアは画像の中にあるテキストも探すため、たとえば「フロリダへようこそ」という看板の横に立つ人物の写真は、「フロリダ」というキーワードで見つけ出せるという。

不勉強なもので知りませんでした。

http://www.riya.com/

がそのサイトだそうですが今アクセスしてみるとバグ(?)で使えませんでした… そういう事もありますよね。バグ(?)のおかげでResinがサーバであることが判りました。

しかしこの技術とサイト、爆発的な人気を呼ぶ可能性がありますね。

Wikiを復旧

先日、PHPをPHP 5.0.6相当からPHP 5.1.3相当にバージョンアップしたところ一部に動作不良があったのでデバッグしていたコードの消し忘れがありました。コンテンツに”AAAAAAA”と表示して終了している状態になっていました。デバッグ途中で時間が来たのでデバッグコードが残ったものrsyncしたようです。(汗

現在は直っていますが、PHP 5.0.6からPHP 5.1.3相当へのバージョンアップでは思いもよらない部分で問題が発生したりしました。

if (expr) expr;

と{}でブロックにしていないと文法的には正しくてもT_ELSEが無いとエラーになったりしていました。エラーが発生する場合と発生しない場合があります。全てのブロック無しif文でエラーが発生する訳ではありません。

コーディングスタイルを

if (expr) {
expr;
}

としているので気が付きませんでした。

date関数のオプションの取り扱いが微妙に違うか、壊れているかで日付判定もおかしくなっていたのですがこちらは詳しく調べていません。(AAAAAAと表示されていた件がデバッグ用のコードdie(‘AAAAAAAAAA’)でした)

追記:
テストも兼ねてohgaki.netのPHPは5.1.3相当にしています。もし、Wiki、Blogでおかしな動作(空白ページなど)を見つけたら教えてください。

OWASPガイドの日本語訳

Webシステムを開発している方は必読のSWASP Guideの日本語訳がリリースされているようです。実は1.1は私も読んでいません。さっき日本語版の目次を見たらページ数が随分すくななりすっきりしたような感じでしたが、必用な項目は含まれているように思えました。ダウンロードしたので時間があるときに読むことにします。

Zend Framework 0.1.2リリース

3/8にZend Framework 0.1.2リリースされています。

解凍すると10MBくらいになります。ドキュメント、テストコードなども含まれているのでフレームワーク本体は2MBくらいのようです。さっと見た程度ですがよく出来ていそうな感じです。PHP5以上が必要です。多分PHP5.1でないと動作しないように思えます。(確かめていません)

http://devzone.zend.com/

はZend Frameworkで作られているそうです。

RFIDタグによる攻撃

RFIDを使ってSQLインジェクションという話題があるようですが、ID3やEXIFなどのタグ情報を使った攻撃は既知の問題です。バッファオーバーフローを使ったウィルス感染の危険性も指摘されていますが、バッファオーバーフローも既知ですね。セキュリティ上の問題に気が付くか(気を付ける?)は簡単な基礎知識を持っているか持っていないかによって違いが出る例です。

普通に作れば直接SQLインジェクションは確実に防いていると思いますが、セカンドオーダSQLインジェクション(間接SQLインジェクション)を防ぐにはプログラマが意識して入力確認を確実に行わないと問題が発生します。

Flash Playerはバージョンアップ不可?

私の環境だけなのかも知れませんが、WindowsXP+FirefoxにFlash Player 8のバージョンアップがインストールできません。自己解凍EXEをダウンロードしたのですが解凍したあとインストーラが起動せずに終了しているようです。ウィザード画面も開かず勝手にインストールが終了した(?)ようです。Firefoxを再起動すると8.0.22->8.0.24にバージョンアップされていました。(勝手にインストールしたのではなくてENTERキーが押せたのかな??そのうち別のXPでも試して見ますが勝手にインストールするのも良くないですし、再インストールしたらインストール済みであることを表示してほしいです。)

Critical vulnerabilities have been identified in Flash Player that could allow an attacker who successfully exploits these vulnerabilities to take control of the affected system.

http://www.macromedia.com/devnet/security/security_zone/apsb06-03.html

とあるように、コンピュータを乗っ取られる可能性があります。Flash Player 8.0.22以前のユーザはバージョンアップの必要があります。

それにしてもこのような情報は判りやすい所に書くべきと思いますが、Macromediaのセキュリティ情報は分かりづらいところにあります。分かりづらいというより普通のユーザは絶対に見ない(?)Developerのページからさらに2クリック必用なところにセキュリティ情報が記載されています。普通のユーザはサイトを見ていても更新の必要があることさえ気が付かないと思うのですが… Adobeに買収されたので改善を期待したいところですが、Adobeのセキュリティ情報の公開方法も親切とは言いがたいので期待できないかも知れませんね…

今年も風邪

ここ数年毎年、インフルエンザや風邪で大変な目にあっていたので今年はインフルエンザの予防接種を2回受けいました。風邪とインフルエンザのシーズンももうすぐ終わりで今年はOKと思っていたらひどい風邪をもらいました。朝起きてどうも熱っぽいな、普通の風邪かなと思って気にせず仕事をしていたのですが昼ごろになって耐えられなくなり体温を測るとその時点でもう39.6度… 予防接種を受けているのにインフルエンザかなと思ったら検査の結果インフルエンザは陰性、白血球の数が正常値の2倍以上あったので細菌性の風邪と診断されました。点滴を2日連続でしてもらってやっと今日から復活です…

Webアプリセキュリティ対策入門

追記:CSRFの件、以下に記載しています。

http://blog.ohgaki.net/index.php/yohgaki/2006/04/02/a_ma_sa_sa_a_ia_ca_sa_rhtmleosa_ia_a_iea

よろしければどうぞ。

—-

新しい書籍で紹介した本がもうアマゾンで予約できるようになったようです。早い…

Webアプリケーションのセキュリティ対策の入門書を執筆させていただきました。
タイトルは「Webアプリセキュリティ対策入門」です。

手っ取り早くセキュリティ対策を済ませてしまいたい方には向いていません。「プログラミングはできるんだけどWebアプリには自信がない」と思われている方には適していると思います。Webプログラミングをこれから始める方にも是非読んで頂きたいです。Webアプリのセキュリティ対策を十分知っている方は立ち読みしてください。(笑

サンプルプログラムはPHPですがPHP専用ではなく、対策など内容はより一般的に利用できるように心がけました。「具体的な対策が少ない」とコメントを頂くかもしれませんが、私はセキュリティ対策で最も重要なことを1つだけあげるとすれば「姿勢」と答えます。どのような「姿勢」で設計・実装するのか理解していただければ、具体的な対策(コード)が少なくてもセキュアなWebアプリケーションを構築できると考えています。本書では小手先のテクニックや知識に頼らなくても安全なアプリケーション構築ができるように執筆しました。

基礎編、概念編、実践編の3部構成になっており、基礎編ではセキュリティ対策の基礎、概念編ではWebアプリケーションの代表的なリスク、実践編ではPHPコードを交えてより具体的な対策を解説しています。

Web開発に関わる方の一助になれば幸いです。

Web Applicatin Security

参考:Wikiのこの書籍のページ。以下目次の一部

第1 部基礎編―――セキュリティ対策の基礎知識
CHAPTER:1  セキュリティ対策とは?
1-1 セキュリティ対策の基礎知識
1-2 セキュリティ対策の現状
1-3 セキュリティ確保―――何をどのような脅威から守るのか?
1-4 2 つのセキュリティ対策のモデル
1-5 フェイルセーフ(Failsafe)
1-6 多重のセキュリティ
1-7 攻撃可能な箇所の削減
1-8 脆弱性とセキュリティホール
CHAPTER:2  Web サイトセキュリティの基礎知識
2-1 Web サイトで100% 安全なサービスを提供できるか?
2-2 間違った認識の例―――SSL/TLS の安全性、クッキーの弊害、
ソフトウェアキーボード、暗号表
2-3 安全性と利便性
2-4 Web サイトは最も危険なサービスの一つ
第2 部概念編―――脆弱性対策の基礎知識
CHAPTER:3  Web システムの脆弱性
3-1 プログラムの不具合のよる脆弱性
3-2 アプリケーション設計の不具合による脆弱性
3-3 システム管理の不具合による脆弱性
3-4 システム環境の不具合による脆弱性
CHAPTER:4  固有の名称を持つWeb サイトの攻撃手法
4-1 クロスサイトスクリプティング(Cross Site Scripting XSS)
4-2 SQL インジェクション(SQL Injection)
4-3 HTTP レスポンススプリッティング(HTTP Response Splitting)
4-4 クロスサイトリクエストフォージェリ(Site Request Forgery CSRF)
4-5 バッファオーバーフロー(Buffer Overflow)
4-6 LDAP インジェクション(LDAP Injection)
4-7 XML インジェクション(XML Injection)
4-8 XPath インジェクション(XPath Injection)
4-9 パラメータ改ざん(Parameter Manipulation)
4-10 隠しフィールドの改ざん(Hidden Field Manipulation)
4-11 クッキーの改ざん(Cookie Manipulation)
4-12 クロスサイトトレーシング(Cross Site Tracing XST)
4-13 ディレクトリ遷移(Directory Traversal)
4-14 パスの漏洩(Path Disclosure)
4-15 ヌルバイト(Null Byte / Null Character)
4-16 強制ブラウズ(Forceful Browsing)
4-17 セッションハイジャック(Session Hijack)
4-18 コマンドインジェクション
(Command Injection / Command Insertion)
4-19 プログラムの実行(Code Execution)
4-20 サービス不能(Denial of Service DoS)
4-21 その他の攻撃手法
CHAPTER:5  Web サイトの脆弱性
5-1 入力の確認不足
5-2 フィルタ処理の不備
5-3 ファイルの不正参照
5-4 アクセスコントロールの不備
5-5 セッション管理の不備
5-6 エラー処理の不備
5-7 設定管理の不備

URIのデコード回数を検知?!

オライリーのONLampにURIのデコード回数を検知する仕組みを紹介したA Canary Trap for URI Escapingですが、セキュリティ的には良いプラクティスとは言えませんね…

このような仕組を取り入れるより、アプリケーションを正しく作り、正しくエンコード・デコードされるようにするべきです。このような事が一般的になれば、IPSによる保護がさらに難しくなります。

コメントを書いておこうか、と思ったら先にもう書いている人がいますね。