人為的メモリエラーでJava/.NET仮想マシンを攻撃 72
ストーリー by Oliver
発想次第で穴はいくらでも 部門より
発想次第で穴はいくらでも 部門より
Anonymous Coward曰く、 "ZDNNの記事 (原文)によるとプリンストン大学のコンピュータサイエンス学科の院生が、コンピュータメモリの既知の特性とランプ(熱エネルギー)と運を利用してJava/.NET仮想マシンのセキュリティホールを攻撃する方法を公開したようです。5月13日あった、米国電気電子技術者協会(IEEE)の「セキュリティとプライバシーに関する」のシンポジウムでこれに関する論文を発表したようです。その内容は、本人のwebページでも公開しています。
メモリにエネルギーを照射すると「ビット反転」が起きる現象を利用して
攻撃をおこなうようです。この脆弱性を発見したGovindavajhala氏は、ランプ
でコンピュータ内のチップを加熱し、1つあるいは複数のメモリビットで反転起ることを確認しているようです。具体的な攻撃例として、システムのメモリがいっぱいになるまで同じ型へのリファレンスを大量に追加してゆき、この攻撃(エネルギー照射のビット反転)をおこなうことによりロード時にしか型チェックをしないサンドボックスが破壊されたり、コンピュータの主要なプログラムがクラッシュしたりするようです 。
コンピュータへの物理的なアクセス(直接エネルギーを照射)が必要になるため、PCやサーバに搭載されているVMにとってはほどんど脅威とならないが、
Javaベースのスマートカードのデータを盗むことが可能ということです。"
パチンコ台って・・・ (スコア:3, 興味深い)
内蔵プログラムを書いてるとかいうプログラマの話が載っていて、
・パチンコ台のプログラムは、客が使う電子ライターのカチカチに
よって暴走しないように書かなければならなかった
とかいうのを読んだのを思い出しました。
どういうプログラムなのかわからないですが、JAVAのVMにパチンコ
台から派生したノウハウが取り入れられたら・・・
歴史的クラック手法 (スコア:1)
電子ライターによる誤動作発生って, インベーダーゲームが流行っていたころから存在するんで, おおよそ四半世紀の歴史を持つクラック手法です. かなりの数の/.-J読者よりも年は重ねているんじゃないかな.
これとカツアゲ, コピー品が加われば当時のインベーダー・ハウス(とてもロケーションなんて言葉は使えない)の雰囲気が分かろうってもので.
Re:パチンコ台って・・・ (スコア:1, 参考になる)
普通はCPUの外部にあるデバイスは信用しません。
外部バスがアンテナになりますからね。
CPU内蔵のRAMはそれなりに信用できます。
RAM以外のデバイスも以前の状態を過信せず、 定期的に初期化しなおします。
この手の対策(?)は組込み機器なら割と普通だと思いますが。
パチンコ台の設置環境が劣悪なのはその通りです。
信じられないくらい頻繁にノイズが飛び込んできます。
Re:パチンコ台って・・・ (スコア:1, 参考になる)
>普通はCPUの外部にあるデバイスは信用しません。
>外部バスがアンテナになりますからね。
>CPU内蔵のRAMはそれなりに信用できます。
ビデオゲームオデッセイの、
エポック社カセットビジョン開発担当者 堀江正幸氏インタビューで、
同じ記述が有りましたね。
http://www.ne.jp/asahi/cvs/odyssey/creators/horie/7p.html [www.ne.jp]
カセットビジョンは、CPU方式のゲームマシンだけど、
メモリもCPUもビデオ回路も何もかも1チップに丸ごと組み込んだNEC製の特殊チップを使っていたんですよね。
当時の民生用LSIのバス周りの技術レベルでは、
CPUのパッケージの外部にバスを引っ張ってメモリチップを繋ぐ方が難しかったみたいですねぇ。
でも、今は逆に、全部の機能を1チプにインテグレートする方が最新っぽい感じですね。
前提条件の変化による常識の転倒は面白い。
Re:パチンコ台って・・・ (スコア:1)
そぅいえば、少し前に、
パチンコ業界の開発者の書き込みが2ちゃんねるのベンチャー板に有ったので、
それに関連してピコピコ辛口コメンツを書き込んだなぁ。
えーと、あったあった。↓ここの部分。
引用元のP6スレのC3プロセッサのノイズ発生機の書き込みも、他人のフリしてわたすぃが書いたやつだ。
■えっ。パチンコ業界って。■
http://money.2ch.net/test/read.cgi/venture/1041349138/106 [2ch.net]
>>84
> もともとパチンコのソフトを書いていたが、まともなソフト業界に馴染むのに8年かかったよ。
> パチンコ業界は馬鹿ばっかりだから、業界内ではソフト組めるやつは偉そうにしているが、
> パチンコのソフトは法律によって技術革新が規制されているから、
> 他の業界から見たらまるでオモチャだよ。
パコチン業界も、これくらいが↓普通になって欲しいね。
http://pc.2ch.net/test/read.cgi/i4004/1035671033/170- [2ch.net]
>正規乱数でなく、一応乱数ですのでお間違いなく。
パチンコやパチスロの台に使われる「組み込みCPU」にも、
こういう機能↓が必要だよなぁ。絶対(笑
ハッキリ言って、今現在のパチンコ台なんて、ROMを解析するような
「特定の情報が得られるグループ」が有利になれる可能性を内包させておいて、
それによって間接的に、
一般的なパチンコ/パチスロ愛好者層に「ひょっとしたら大儲けできるかも」的な、
期待感や幻想のタネ(シード)を与え続けて(供給し続けて)引きつけ、維持する為に、
あえてわざと単純な乱数系列を使って、バカな警察の管理をスリ抜けてるようなモノだ。
「合法的な不正」は最強だからね(笑
VIAのNehemiahコア C3プロセッサ
http://pcweb.mycom.co.jp/benchmarklab/2003/05/page1.html [mycom.co.jp]
>「PadLock」とよばれる乱数発生機能が追加されており、
>暗号などを扱うアプリケーションなどで効果を発揮することができるという。
>PadLockはCPU内部に発生する電子ノイズを監視することで、
>演算による乱数よりも高度で複雑な乱数を発生する機能である。
>この機能を用いてデータの暗号化を行うことで、セキュリティの強化に有効利用できる。
えれくとりっくさんだー (スコア:3, 荒らし)
Re:えれくとりっくさんだー (スコア:1, おもしろおかしい)
Re:えれくとりっくさんだー (スコア:1)
ってすげぇ(笑)
現場で可能?それともお持ち帰り? (スコア:2, おもしろおかしい)
物理的にアクセスできないマシンでも、提案されているプログラムを走らせて、宇宙線がメモリのビットを反転させるのを待てばいいのですか。α線、β線、X線、高エネルギープロトン、ニュートロン、赤外線などなどと書いてありますが、50Wの電球で良いとはこれまたお手軽な。現場に侵入して、筐体を開けて、50Wを照射して、あとは待つだけ。
どうせ筐体を開けるなら、ハードディスク盗んでった方が、早くありませんか。
Re:現場で可能?それともお持ち帰り? (スコア:0)
とされているのが IC カードです。
安全なんだから住基カードに使っても大丈夫とか言われてます。
でも実際には、いろいろな攻撃方法が見つかっています。
演算時間の長さから鍵を推定するとか、
消費電力の
Re:現場で可能?それともお持ち帰り? (スコア:1, おもしろおかしい)
なんつーか (スコア:1, おもしろおかしい)
クラッキング= (スコア:1)
Re:クラッキング= (スコア:0)
日本では (スコア:0)
そう考えてみると恐ろしいセキュリティーホールです。電車で携帯をいじっていたら、いつのまにかクラックされるているとか...
# 電車の中で携帯電話をいじるのはよくないと思うのでAC
Re:日本では (スコア:2, 参考になる)
光がメモリ素子に届くようなデバイス(スマートカード)にのみ適用可能な攻撃法なんですよ、これ。
Re:携帯電話でも (スコア:1)
携帯でも、車内に放置してある場合など、高温環境では発生する可能性があります。
# ハック用のjavaプログラムを実行状態にして炬燵に入れて放置すれば…
notice : I ignore an anonymous contribution.
メモリーへのエネルギー照射には (スコア:0, オフトピック)
これなら遠隔地からでもサーバーを攻撃できます。
Re:メモリーへのエネルギー照射には (スコア:1)
#でも、RIだからそうそう持ち歩けない・・・。
#あと、パッケージの遮蔽能力を超えないとねぇ。
---- redbrick
Re:メモリーへのエネルギー照射には (スコア:2, 参考になる)
α線が問題になるのはパッケージのプラスチックに線源が含まれる場合のみです。(α線って、透過力低いし..)
・これは16kビットDRAMの頃に問題になりました。
>#あと、パッケージの遮蔽能力を
今のパッケージなら相当強力なα線源でないと無理では?
γ線とか、この記事にあるような熱暴走の方が楽だと思われます。
# 50W電球でPCのメモリを暖めている絵がありましたが、
# 日本なら「こたつ」でしょうか?
notice : I ignore an anonymous contribution.
Re:メモリーへのエネルギー照射には (スコア:1)
>場合のみです。(α線って、透過力低いし..)
・・・って、パッケージのプラスティックに含まれるアルファ線源って
どんな放射性元素でしょう?
#C14? ・・・もしかして、ハンダに含まれる鉛が線源なのでは?
アルファ線というと、わたしは鉛中に微量に含有されるウランなどの
放射性元素を思い浮かべるのですけど、廃棄時に環境負荷の高い鉛化合物を
含んだICパッケージ用のプラスティックってのは、寡聞にして聞いたことが
ないんですが・・・。
#鉛含有ハンダは、それこそ山となるほど使われてましたがねぇ。
#でも、パッケージ内部はハンダづけなんてほとんどしてないはずですし。
#chipから信号を引き出すワイヤは大抵金か銀で、chip側パッドは
#配線素材のアルミかAL-SI合金だし、傷などの防護用カバー材を載せてある
#とはいえ、chipに直接ハンダを載せるための技術は、ごく最近開発された
#もので、FCタイプがほとんどだし・・・。
そもそも、有機系の鉛化合物はほとんど有毒だと思うのだけど、過去には
樹脂硬化剤などとしてICパッケージ用の封止樹脂に鉛化合物が使われたことが
あるんでしょうか?
#検索しきれなかったんで、詳しく知ってたら教えていただけると、
#ありがたいです。
>>#あと、パッケージの遮蔽能力を
> 今のパッケージなら相当強力なα線源でないと無理では?
はい、その通りです。
なので、「遮蔽能力を超えないと」って書きました。
ちなみに、今のパッケージ、ってーとFC系も含まれるんですかね?
FC系だとハンダとchipの距離が極端に短くなるんで、逆に以前のパッケージより
遮蔽能力が落ちている、という見方もありますよ。
chip上にすぐハンダがあるので、獅子身中の虫みたいな状況ですな。
#まぁ、そのために鉛フリーハンダとか、いろいろ対策が取られている
#はずですけどね。
---- redbrick
Re:メモリーへのエネルギー照射には (スコア:1)
答えにはなっていませんが、レジンモールドの材質が問題になっていたという記憶はあります。何しろ1978年ころの話なので大分薄れていますし、そのころの資料はWebで読めるかどうかは不明です。
とりあえずぐぐってみたら、次のような記事にその痕跡があるようです。
[1] [alphacounting.com]
[2] [avocetsystems.com]
特に当時大手だったモステックのMK4116が欧州を中心に大いにトラブって、日立とかNECがシェアを伸ばすきっかけになったらしいです。
部品単位での対策は完了してます。 (スコア:1)
ウラン,トリウム,ポロニウムなど。
原油由来の不純物です。
なお、部品単位での対策はかなり昔の時点で完了してます。
(材料の段階で対策されているため部品レベルでは考える必要がありません。製品の最終テストで念のためチェックする程度?)
鉛含有ハンダは対策済み [mmc.co.jp]です。
また、パッケージ材料に関してもこういうのが [fujitsu.com]98年にでている位です。
# 材料屋の常識になっているため話題にあがらないだけです。
notice : I ignore an anonymous contribution.
Re:部品単位での対策は完了してます。 (スコア:1)
>ウラン,トリウム,ポロニウムなど。
>原油由来の不純物です。
なるほど、鉱物油として採掘される原油中の不純物なのですね。
納得しました。情報、どうもありがとうございます。
>鉛含有ハンダは対策済み [mmc.co.jp]です。
残念ながら、これ、コスト面が不利なので結構辛いのです。
量産品では難しいので、特殊品とかから対応が始まってます。
あと、鉛フリーは廃棄時の環境汚染が少なくなる、という理由で
推進されてはいますが、セットの製造メーカーが購入する部品としては
コストが高く、他の部品とのリフロー条件が変わったりする場合が
あるので、競争力が低く、なかなか普及できません。
>また、パッケージ材料に関してもこういうのが98年にでている位です。
おそらく書き間違いだと思うのですが・・・、これ、パッケージ側ではなく
LSI製造工程の話ですよね?
パッケージでは難燃化剤にリンは使用することもありますが、吸湿して
他の素材を侵食するリン酸は使用しないと思います。
#LSI製造工程でリンはSi基板側への添加不純物として、またPN結合を
#形成するためにSi基板に後で打ち込む不純物の一つとして
#使用されています。
># 材料屋の常識になっているため話題にあがらないだけです。
なるほど・・・・、参考になります。
#さすがにわたしは材料にそこまで深くかかわってないので、
#知りませんでした。
---- redbrick
Re:部品単位での対策は完了してます。 (スコア:1)
すみません、書き方がまずかったです。
98年の時点でパッケージ材料の対策が「常識」扱いされてい事の例でした。
# 部品の製造段階で相当神経質に原料対策をしていることがわかると思います。
# >#さすがにわたしは材料に
# 元ネタ:10年くらい前のNHKの特集番組のインタビュー
# あと、トリウム入夜光塗料を探してて引っかかった論文の記述
>あるので、競争力が低く、なかなか普及でき
適所適材。
鉄製の下水管は、いすれ錆びて水漏れすると言って金や白金でパイプをつくる人っていないですよね?
すこし前までコネクタとかDIPスイッチとか電池とかは最後に手作業で付けていた筈。(理由は色々ですが)
低α線材料を使用する必要のある箇所だけ後付けすれば済む話だと思います。
# スマートカードの場合、低α線半田付する箇所って無いような気がしますけど。
# もしかして鉛フリー半田の普及の事を言ってたりします?
notice : I ignore an anonymous contribution.
Re:部品単位での対策は完了してます。 (スコア:1)
> 適所適材。
適所であると早く判断できる人が非常に少ないのが、今の現実です。
#取引額が大きいですから、早期に値引きが出来た方が契約を取りやすく、
#製品を作るメーカーも早期に製品を出荷しないと客が引きつけられない、
#という状況で、信頼性まで考慮して提案できるヒトはなかなかいないです。
>鉄製の下水管は、いすれ錆びて水漏れすると言って金や白金でパイプを
>つくる人っていないですよね?
これ、例えが悪いですよ。
下水管などはバイパス可能だし、地面を掘り返して組み直せるものですから。
#コストはかかりますが、その修理や交換のために、家屋や道路を
#完全に破壊しなければならないものではないでしょう。
今の半導体製品ってのは、完全に内部回路もパッケージも数十年の単位で
機能を保ち、ソフトウェア側でのミス以外でエラーになることがない
ように望まれて、そういう基準で作成しているものですから。
水道管みたいに壊れたら置き換えればいい、なんて基準でいいものなら、
当然そんなにコストは考えませんけど、そんなのは一例も見たことないし、
RAMみたいに記録媒体だったり、CPUみたいにPCなどの製品に使われる部品だと
壊れた時に置き換えられるとは限らないので、もっと桁違いの信頼性を
要求されます。
>すこし前までコネクタとかDIPスイッチとか電池とかは最後に手作業で
>付けていた筈。(理由は色々ですが)
今は無理でしょう。
手作業にする時間、コストをわざわざかけるなんて、無意味ですよ。
全部同じ素材にして、少々素材が高くても、一括でリフローできる
ようにした方が、最終的には安いです。
#考えてみてください。携帯電話の基板をいちいち手でハンダ付けしますか?
#何十万と生産されていくゲーム機はどうです?
>低α線材料を使用する必要のある箇所だけ後付けすれば済む話だと思います。
コスト面と納期との相談ですね。
ちなみに、いろんな方がご指摘の通り、パッケージ内でもない限り、
アルファ線はパッケージで遮蔽できるほど透過力が低いので、
低アルファ線ハンダなんて実装基板側では、ほぼ不要ですよ。
多分、必要なのはFC系のchip上に乗せるハンダボールがほとんどでしょう。
そして、そういう部分に使われるものは、コストメリットが出にくいので、
総じて他のものよりかなり高い売価です。
また、必要なところだけ後付け、と言う話ですが、全部同じ条件、
素材であれば一回で住むハンダ付け作業を、わざわざそこだけ、
大量生産品でいちいち別に作業しますか?
#そもそも半導体製品ってのは、chipレベルですら、ほとんどが
#大量生産品で、しかも信頼性を要求されると言う、今までの工業製品とは
#かなり矛盾したものだって事を念頭に置かないと、理解して
#いただくのは難しいかもしれませんが・・・。
---- redbrick
Re:メモリーへのエネルギー照射には (スコア:1)
# α線だと到達距離、透過力ともに足りないと思いますが。
# 紙一枚で遮蔽できますし。
Re:メモリーへのエネルギー照射には (スコア:0)
無理です。 (スコア:0)
化ける可能性はあります。
しかし、メモリー上でデータが化ける事を前提にプログラムを
書くことはできません。
データが化けたかどうかをチェックするプログラムコードだって
化ける可能性があります。
メモリーのみならずレジスターレベルまでH/W的に多重化して頂く
しかありませんな。
Re:無理です。 (スコア:2, 参考になる)
チェックします。また、code部分のエラーについては watchdogや
状態遷移チェックとかで検出するようにしています。
現行の hardwareでもそのあたりの support機能がついているもの
は多いので、さほど心配しなくてもいいと思います。
また、Javaに限らず外部環境に弱い hardware一般で起きる事象だと
思うので、開発される方々には留意してほしいところですね。
# consumer deviceとかって、ユーザーさんが無理な使い方して
# 温度上限とか電源環境とかでこけることもよくあるので、そう
# いうエラー対応とか既に必要なんですよね。実際のとこ。
1チップ 組み込みCPUのエラーチェック方法 (スコア:1, 興味深い)
ただいま使用中のSH7055Fは、設定するまでWDTが動きません...
WDTの初期化コードが狂ったとなるとどうなってしまうのか予測
不可能なので、外部にもWDTを持たせています。こちらは、回路
構成で監視時間が決まるので、暴走しつづけることは無いだろうと
願っています。
ところでこの手の1チップCPUの場合、内蔵RAM・周辺機器レジスタ・
CPUコアのレジスタの信頼性は等しいと考えるべきなんでしょうか?
RAMチェック/ROMチェックは簡単に書けるけど、周辺機器レジスタの
チェックはルーチンが膨大になりそうだし、ポートの設定次第で
書き込み専用/読み込み専用になる領域もあるし、ユーザーコードでは
書き込み不可能な領域もあるし、疑い出したらきりが無い。
みなさん、どのあたりで折り合いをつけているのでしょうか?
Re:1チップ 組み込みCPUのエラーチェック方法 (スコア:1)
の幅とか Trのサイズや logic構造とかのせいだと思います。同じ
dieにのってる場合でも構成によって違うようです。
というのも、耐久テストでエラーがでる場所は偏ってることが多い
からの推測ですが。(一番弱い部分からまず落ちるため)
周辺device込みの対応については、外部に単純な(=丈夫で安い)
監視deviceをつけて、automataの statusも監視させるようにし
ています。(状態遷移の監視)
折り合いのつけ方って、基本は予算とのご相談になりますね。
予測するエラー内容と損害量、それと対応コストの比較で。
予算があれば冗長系入れたり、なければ実装部分の工夫で余裕
あげたり・・・。「完全な対応はない」ですから。
# watchdog起動失敗問題などは、system readyの信号をnegative側
# に圧力かけておけば不具合出れば non-readyにおちてくれますね
Re:無理です。 (スコア:1)
多重化はちょっと大げさかなと。実際自分が困っちゃったら
いの一番に怒鳴り込んだりしそうですが。
(といっても、あまりに重要なためメモリが化けたら地球が破滅、
なんてコンピュータなどあっちゃ困りますが。)
冗長なビットをちょっと付加すればエラー訂正できること
ですし。
いくら暖めたって、1バイトあたり2ビット以上化ける
なんてことはほとんどないでしょうから。
(512メガバイトのメモリを積んだPCを1ヶ月使い続けると
1ビットぐらい化ける、という程度の確率だそうで。
DRAMでこの程度ならその他のメモリならもっと低いんじゃ
ないでしょうか。
ソース失念にて失礼。必要なら誰か探してください・・・)
# ・・・最近のPCにはメモリがいっぱい載ってるけど、エラー
# 訂正の仕組みもなしにあんなにたくさんのメモリを使って
# データ化けで困っている人はいないのでしょうか。
# サーバ用以外にエラー訂正コード付きメモリってあまり
# 聞かないし。
# メモリが化ける前にソフトのバグで落ちちゃうんです
# かね・・・
Re:無理です。 (スコア:1)
あれを利用すれば良いんじゃないだろうか。
(´д`;)
Re:無理です。 (スコア:0)
Re:無理です。 (スコア:0)
64bitでECC(1bit訂正2bit検出)をやるには8bit余計に必要で、これって8bitごとにパリティをとるのと同じbit数ですよね。ということでパリティ対応メモリは72bit幅で、ECC対応メモリと兼用だったりすることもあるようですよ。
需要と供給の関係からか、72bit幅メモリは64bit幅にくらべて大幅に高いようではありますが。
Re:無理です。 (スコア:1)
ん? なんか違うような
この手の攻撃って (スコア:0)
そーいうもんではないのん?
Re:この手の攻撃って (スコア:0)
昔からある攻撃方法の一つで、スラドで取り上げるレベルのものではないと思う。
ICカードでも安心できないのに、磁気カードのクレジットカ
Re:この手の攻撃って (スコア:1)
そっちの方が心配です。
普段使う以上そういうことは一切気にしないで使えることが大前提です。
使うたびにわざわざそんなことを気にしなきゃならないような物なら実用に耐えられない欠陥品と言うべきでは?
ってことで んなことをわざわざ店の人に聞こうとした時点で店の人がなんと答えようと現金を使うべきだと思うですよ
Re:この手の攻撃って (スコア:0)
本家の当該ストーリー [slashdot.org]。一週間前だが。
Re:この手の攻撃って (スコア:0)
ていうかもしかしてこれが、「釣り」ってやつ?
うーんと、 (スコア:0)
Re:うーんと、 (スコア:0)
My commentary on the slashdot memory error attack discussions. [princeton.edu]
Re:いつも思うけど (スコア:1)
高電圧やスパークノイズ、放射線を当てる、などで動作異常時の反応を
利用してデバイス内のデータを盗む、解析するってのは、かなり有名な
攻撃技法だと思っていたんだが…。(総称して故障攻撃とか言いますよね)
みんつ
それは多分 (スコア:0)
#院生全体から見たらほんの一つまみ…
Re:いつも思うけど (スコア:0)
#子供のころ、同じような遊びしてなかったか?
Re:( ´,_ゝ`) (スコア:0)
Re:( ´,_ゝ`) (スコア:0)
Re:結論 (スコア:1)
現金(通貨)も、その通貨を発行している政府の安定度や信用度によって、
比較的簡単に、暴落したり制度崩壊したりするので、
フォールトトレラント性をさらに進化させて、物々交換だ!
って、退化しとるがな(笑
物々交換は、人類の歴史の初期に始まった・・・、
わけではなく、猿とか犬とか動物でも行なうよねぇ。
あと、もっと単純な魚とかエビとかイソギンチャクとか微生物も、
分子と原子で構成された物質(エサとか排泄物とか)を物々交換する「共生関係」ってのがあるし・・・
まあ、物凄く大きく考えれば、食物連鎖自体が、物々交換だよな。
文化であるミームの交換も、
脳へデータを送るセンサーである目や耳や鼻や皮膚などの感覚器を刺激するために、
一方の生物個体が体表面で反射した光子(粒子)を目の中の細胞が受け取って細胞が電子へ変換してデータバスへ流したり、
一方の生物個体が何らかの手段を駆使して空気中の気体分子の振動や粗密を作りだし伝播させ、その気体分子が耳の鼓膜に届いて押したり引いたりして、聴覚細胞が電子へ変換してデータバスへ流すし、
触覚はもっと単純に、物質と物質が接近して、分子/原子レベルでそれ以上近づけなくなって押し合って、神経細胞がグニャっとなって電子を発生。実にダイレクト。
まあ、全てが物々交換だ。(またもや試験に出る強引論法だス