[PHP-dev 697] Re: 国際化版PHP 4.2.3 のwordwrap()についてですが。。。

Yasuo Ohgaki php-dev@php.gr.jp
Tue, 18 Feb 2003 06:17:01 +0900


大垣です。

Masayoshi Tsuchida wrote:
> 土田です。
> 
> ということは、
> wordwarpを使うケースが少ない。

あまり使っていない、という事は関係ありません。
使っているか使っていないか、という事が問題になります。
そして、使っている場合、その使い方だとexploitableか、という事が
もっとも重要な問題になります。

> 何らかの方法で外部からコードを埋め込まれて、攻撃なりするにしても
> 難しいってことですか。
> 
> うーん。

サーバーをクラッシュさせたり、誤作動させる事が簡単にできる場合も
あると思います。
オーバーフローさせるサンプルスクリプトは行末文字に大きな文字列を
入れる物だったので、行末文字だけが原因でオーバーフローが発生する
とすると、普通の使い方ではオーバーフローは発生しに事になります。
どちらにしても、私はwordwrapを使っていないので詳しく見ていませ
ん。詳しい動作はソースを参照してください。

ところで、オーバーフロー=コードの不正実行が可能、ではありません。
(これはスタックオーバーフローの場合も同様です)
heap領域のオーバーフローでコードを実行する場合、関数ポインタが
ヒープにありそのアドレスが十分に予測可能かつ変更可能かつメモリに
攻撃コードを埋め込む余地がある、といった感じで条件がstackオーバー
フローに較べて難しいので実際に攻撃に利用するのは難しいですが、
他のセキュリティーホールと組み合わせて攻撃するとか、色々方法があ
るので直しておく方が良い事には変わりありません。

# 数は少ないですが、実際にheapオーバーフローを利用したリモート
# コード実行の実例もあります。
# stack領域のオーバーフローの場合、プログラムの構造を知らなくても
# コードを実行する攻撃ができるくらい簡単な場合もあります。やりかた
# はそこら中に載っているので、組み合わせるとアセンブラとか全く知ら
# ない人でも攻撃できたりします...
# stackオーバーフローはGCC 3.2のスタック保護機能(-fstack-protector)
# を使うとか、libsafeを使って保護するという方法もあります。

--
Yasuo Ohgaki