Mac OS X: スワップファイルからパスワードが漏れる? 17
ストーリー by Acanthopanax
mlock 部門より
mlock 部門より
BugTraqに投稿されたメールによると、Mac OS Xには、スワップファイル中にパスワードが平文で保存されることがあるという。たとえば、
sudo strings -8 /var/vm/swapfile0 |grep -A 4 -i longname
とすることで、スワップファイル中にパスワードが表示される(ことがある)。キーチェーンのパスワードの一部をgrepしてみると、これも表示される(ことがある)という。MacSlashでもストーリーになっているが、システムの状態に依存するようで、再現されたという報告もあれば、されなかったという報告もある。
この問題を悪用するためには、何らかの方法でroot権限を奪取するか、あるいは物理的にアクセスする必要があるが、そのような状態になれば他にもいろいろな手段が使えるので深刻な脆弱性ではないのではないかというコメントもある。しかし一方では、盗難されたりしたときに、キーチェーンに保存しているパスワードがすべて漏れるリスクを考慮すれば深刻な問題だというコメントもある。いずれにせよ、Appleには報告済みとのことで、近日中のセキュリティアップデートが待たれる。
なお、似たような話題がjapan.linux.comの記事で取り上げられている。
再現できた…。 (スコア:3, 参考になる)
Linuxでも同じようにやってみましたが、パスワードでgrepしてやると表示されますが、今回みたいに簡単には出てきませんでした。たぶんやり方はあるんでしょうけど。
同じく再現できた…。 (スコア:3, すばらしい洞察)
Re:同じく再現できた…。 (スコア:1, 参考になる)
# BIOSの設定をちゃんとして、勝手に変更されないようにパスワードをかけておけば済むので、たいした問題ではないと思いますが。
ちなみに、手元のLinuxで漁ってみると、パスワードそのものでは4件ヒットし、そのうち2箇所には目印になりそうな文字列がありました。目印が無くても、適当な短さで無意味な並びの文字列1語からなる行を探せば、割と簡単にいけちゃう様な気もします。
# この目印になる文字列ってのが、パスワードの持ち主まで分かるとっても素敵な文字列なんですけれど、ここで示しちゃ不味いですかね? ちゃんと動かせて無いだけなのかな?
Re:同じく再現できた…。 (スコア:1)
えっと、正直言って記憶があいまいなんですが、SWAPファイルってどの時点で消去されるんでしたっけ?
Shutdownの時? Bootの時?
前者なら、Reboot時には空っぽ。
後者なら、おっしゃるように敢えてswapを消さないようなboot disk(ってのをどうやって作るかを知らないのですが)を使われるとまずいですね。
#でも、マシンにディスク突っこんでrebootかけられる、つう状況は…。
>ちなみに、手元のLinuxで漁ってみると、パスワードそのものでは4件ヒットし
お、Linuxでも再現するんですか。
んじゃ、セクションローカルじゃなくて、あらためて記事にしても良いんじゃないかな?
Re:同じく再現できた…。 (スコア:1)
SWAPとして使うように初期化しなきゃいいのでは?
Linuxって基本的にswaponとか明示的に指定しなきゃSWAPは使わないですよね?
x86の話なんで違ったら申し訳ないですが。
ちなみに、Win2k/XPはセキュリティポリシー内に、
「シャットダウン:仮想メモリのページファイルをクリアする」
ってオプションがあります。
しかし、本当に目新しい話じゃないよね・・・
Linuxの"core"に気をつけろと同様のお話。 [ipa.go.jp]
Re:同じく再現できた…。 (スコア:0)
> んじゃ、セクションローカルじゃなくて、あらためて記事にしても良いんじゃないかな?
物理的に、とか言い出すときりがないのでやめたほうがいいと思います。
Re:同じく再現できた…。 (スコア:0)
bootやshutdonwの時にハードディスクをガリガリ言わせてswapを消してる光景と云うのが思い浮かばない(手元では1GBからのパーティションをswapに充てているので、あればそれと気付いていると思います。)のですが、積極的に消されるのではなくて上書きされるまでだかそのまま残っているのではないでしょうか。
knoppixでswapパーティションを覗いても、ハードディスクにある本物のシステムのものと思われる内容がパスワードも含めて残されていることがわかります。新しく書き込んだと思われる内容もありまし
Re:再現できた…。 (スコア:0)
再現できない (スコア:1)
その意味では、shortname と longname を同じにすると安全なのかも?
Re:再現できない (スコア:2, 参考になる)
Acanthopanax さんの日記の追記にあるとおり [srad.jp]実際の username におきかえるんじゃなくて `longname' という文字列で grep してみましたか?
前後にあらわれるパターンを特定できるのがまずいんじゃないかと。
セクションはここでいいの? (スコア:2, すばらしい洞察)
swap encryption (スコア:2)
今頃突然ヒステリックに騒ぎ出すのはどないやねん。
「私な、今まで騙されとってん。rootになればメモリ丸見えやってん」
「気づけ〜〜〜!」
OpenBSDがswap encryptionを実装した時は
そんなものはやりすぎだとさんざんに言われたものです。
自前のコードは精査できていも
insecureなサードパーティプログラムの存在は防げないから
せめてディスク上に書き出す時だけは安全にしようという考え。
Mac OS Xはどうやって対処するのでしょうか。
Re:swap encryption (スコア:1)
いや、信じてますけど。
Re:swap encryption (スコア:0)
>「気づけ~~~!」
一瞬「あずまんが大王」のネタかと思った。
おしえてえろいひと (スコア:1)
ことなんでしょうか。
じゃないとしたら、他のOSでもいくらでもありそうなことに思えるんですが。
swapファイルを一般ユーザが好きに覗けるとかなら、結構怖いことだと
思うけど、これは単にメモリの中を覗いたのと同じじゃないんですか?
Re:おしえてえろいひと (スコア:0)
こういう問題を防ぐために、Passwordの様なセンシティブな情報は、使った後に速攻memsetはセキュリティ関係のプログラマには常識だと思っていたんですが、タレコミ中のリンク記事を読む限りでは、そうでもなかったんですねぇ・・・。
Re:おしえてえろいひと (スコア:3, 参考になる)
ぉ、IDじゃないと投稿できない・・・