Java 対応携帯電話機の Java ウイルスの
危険性に関する調査・検討報告書
平成 14 年 3 月
情報処理振興事業協会
セキュリティセンター
目次
1 はじめに...1 2 背景と目的...2 3 Java 対応携帯電話機での感染実験 ...3 3.1 ezplus アプリ作成方法 ...4 3.1.1 コンパイル...4 3.1.2 プリベリファイ...4 3.1.3 アーカイブ...4 3.1.4 JAD ファイルの作成 ...4 3.1.5 KJX ファイルの作成...4 3.1.6 HDML ファイルの作成...5 3.1.7 実験手順...5 3.2 実験結果...8 3.2.1 Homer...8 3.2.2 Hijacker...10 3.2.3 Attacker...11 3.2.4 StrangeBrew ...12 3.2.5 Bean Hive...13 3.3 機能の検討...14 3.3.1 ezplus アプリの実行環境 ...14 3.3.2 J2ME CLDC / KVM の機能...15 3.3.3 MIDP の機能 ...16 3.3.4 KDDI-P の機能 ...16 3.3.5 ファイルの生成...16 3.3.6 外部プログラムの実行...16 3.3.7 ファイルの改ざん...17 3.3.8 ウイルスの感染...17 3.3.9 J-PHONE の Java アプリの場合 ...17 3.4 対策手法...18 4 まとめ...191 はじめに
本報告書は、Java 実行環境を搭載する携帯電話機において、現在インターネット上で存在 が確認されている不正 Java アプリケーション(以下、Java ウイルスと呼ぶ)の動作実験を行 い、携帯電話機におけるJava ウイルスの危険性を検証し、その結果を報告するものである。 実験対象とするJava ウイルスは以下の 5 種類である。 • Homer • Hijacker • Attacker • StrangeBrew • Bean HiveJava 対応携帯電話機としては下記の 2 種類を予定していたが、J-PHONE は現時点で Java アプリケーションの開発環境を公開していないため、実験はau 端末でのみ行い、J-PHONE 端末は公開されている情報を元に考察するにとどめる。
• au 端末: 日立製作所社製 cdmaOne C451H、RAM 約 400KB1
• J-PHONE 端末: SHARP 社製 J-SH07、RAM 約 650KB
2 背景と目的
近年、携帯端末機器の普及が急激に拡大しているが、その多くにJava 実行環境が提供され、 Java アプリケーションが実行可能となってきている。これらの Java 対応端末機器上で共通 に動作するJava ウイルスが出現した場合は、爆発的に感染被害が拡大することが予想される ため、適切な対策を構築することが必要不可欠である。
Microsoft Windows 98 / Me 等や UNIX では、インターネット上で公開されている不正 Java プログラムが動作し被害を受ける可能性があることが確認されているが、Java アプリ ケーションを実行可能な携帯電話機でもその被害が懸念される。それらを用いた場合の不正 Java プログラムの動作は明らかにされておらず、どのような影響が出るかも不明である。 本調査は、Java 実行環境を搭載する携帯電話機における不正 Java プログラムの動作内容 を調査し、その動作確認やその被害が及ぶ範囲を明らかにするものであり、その結果を、そ れら携帯電話機に関連したウイルス対策を構築するための基礎資料とすることを目的として いる。
3 Java 対応携帯電話機での感染実験
実験に用いたJava 対応携帯電話機は日立製作所社製の cdmaOne C451H である。この携 帯電話はezplus(EZweb 対応の Java 実行環境)を搭載しており、Java2 Micro Edition(J2ME) のCLDC(Connected Limited Device Configuration) / MIDP(Mobile Information Device Profile)および KDDI-P(KDDI Profile)2をサポートしている。以下、本携帯電話機を ezplus
端末と呼ぶ。
実験を行うJava ウイルスは Homer、Hijacker、Attacker、StrangeBrew、Bean Hive の 5 種類とする。ただし、ソースファイルの状態で公開されていた Homer.java、Hijacker.java、 Attacker.java、Bean Hive の 4 つは、デスクトップ PC 用の JDK 1.3 で、J2ME CLDC / MIDP と KDDI-P を利用してコンパイルした。StrangeBrew は class ファイルをそのまま ezplus 用 Java アプリケーション(以下これを ezplus アプリと呼ぶ)に変換した。これらのファイル をWeb サーバ上に置き、ezplus 端末にダウンロードすることにした。
以上により、ezplus 端末上で上記ウイルスの動作実験を行う。
3.1 ezplus アプリ作成方法
3.1.1 コンパイル
Java ソースファイルを Java2 Platform Standard Edition (J2SE)の Java コンパイラ "javac.exe"で、midpapi.zip と kddip.jar を用いてコンパイルする。
midpapi.zip は Java2 Micro Edition Wireless Toolkit に含まれるクラスライブラリのアー カイブファイルである。また、kddip.jar は KDDI-P のクラスライブラリのアーカイブファイ ルであり、KDDI の KJX 作成ツールの一部として公開されているものである。
3.1.2 プリベリファイ
アプリケーションを構成するすべての class ファイルについて、Java2 Micro Edition Wireless Toolkit に含まれるプリベリファイア"preverify.exe"を使ってその安全性をチェック し、ベリファイ済みclass ファイルを出力する。
3.1.3 アーカイブ
上記プリベリファイ済みclass ファイルを含む、ezplus アプリが利用するすべてのファイ ルを"jar.exe"を用いて 1 つの JAR ファイルにまとめる。
3.1.4 JAD ファイルの作成
JAD ファイル(拡張子は*.jad)を作成する。JAD とは Java Application Descriptor の略で あり、Java アプリケーションの内容、振る舞いなどを記述したものである。JAD ファイル の書式を以下に示す。
3.1.5 KJX ファイルの作成
このJAD ファイルを、KDDI が公開している KJX 作成ツールに含まれる"KJXArchive.jar" を用いてJAR ファイルと連結させ、KJX ファイルを作成する。さらに、KJX ファイルの末 尾に2 バイトの CRC を付加する。この KJX ファイルが Web サーバからダウンロード可能 なezplus アプリとなる。 MIDlet-Name: アプリケーション名 MIDlet-Vendor: アプリケーションの提供者名 MIDlet-Version: アプリケーションのバージョン MIDlet-Jar-Size: JAR ファイルのサイズ(バイト) MIDlet-Jar-URL: JAR ファイルのファイル名 MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0 MIDlet-1: タイトル, アイコン, 起動クラス名
3.1.6 HDML ファイルの作成
最後に、ezplus アプリをダウンロードするための HDML ファイルを作成する。HDML と はHandheld Device Markup Language の略であり、携帯端末用に開発された記述言語であ る。HDML ファイルでは、<action>タグで ezplus 端末のダウンロード用 URL にダウンロー ドCGI の URL と KJX ファイルの情報を指定してダウンロードができるようにする。HDML ファイルの書式を次に示す。
なお、この例では複数のezplus アプリのリストから 1 つを選択できるよう、ダウンロード CGI 名以降を<ce>タグに分けて記述している。
ここでのダウンロードCGI とは EZweb の開発ツールとして KDDI が公開しているもので あり、Web サーバと携帯電話機との間で情報を正しく送受信するための Perl スクリプトであ る。このダウンロード CGI と、EZweb 関連ファイルを Web サーバに認識させるための ".htaccess"ファイルをあらかじめ Web サーバ上に設置しておく必要がある。
こうして作成した ezplus アプリ(*.kjx)とそれにアクセスするための HDML ファイル (*.hdml)を Web サーバにアップロードする。
3.1.7 実験手順
1. Java ウイルスを ezplus アプリに変換し、Web サーバ上に置く。
2. ezplus 端末で上記ページにアクセスし(図 1)、ezplus アプリをダウンロードする(図 2)。 3. ezplus 端末でウイルス ezplus アプリを実行(図 3)し、その挙動を確認する。
図1: テストサイトのメニュー
<hdml version="3.0" markable="true"> <choice key="url" title="ezplus"> <action type="accept" task="gosub"
dest="device:data/dnld?url=$url" label="OK">
<ce value="ダウンロード CGI の URL&name=KJX ファイル名&size=KJX ファイルサイズ&disposition=devkdjx&title=タイトル">ezplus アプリ名 </choice>
なお、図2、図 3は通常の ezplus アプリの例である。ダウンロードした ezplus アプリはデ ータフォルダに格納されるため、その場で実行(再生)することも、後でデータフォルダ(図 4) から実行することも可能である。
図2: ezplus アプリのダウンロード
3.2 実験結果
ここでは、各Java ウイルスの本来の働きの概要と、Java 対応携帯電話機(ezplus 端末)上 での実験の結果を述べる。
3.2.1 Homer
Homer は、ユーザのホームディレクトリ上に".homer.sh"というファイルを作成し、実行可 能な属性を設定し、シェルプログラム"/bin/sh"でそれを実行させようとする。 実験のためにHomer.java から ezplus アプリを作成しようとすると、コンパイルの時点で エラーが発生し class ファイルを生成できなかった(図 5)。これは、このウイルスが ezplus アプリ用の開発環境のCLDC / MIDP および ezplus アプリ用ライブラリ KDDI-P 1.0 でサポ ートされているクラスファイル以外を使用しているためである。図5: Homer のコンパイルエラー
発生したコンパイルエラーはすべて「シンボルを解釈処理できません。」というものであり、 そのシンボルとは、FileOutputStream クラスが 2 個、String クラスの getBytes メソッドが 1 個、Process クラスが 2 個、Runtime クラスの exec メソッドが 2 個、合計 7 個であった。 なお、getBytes メソッドは MIDP にも含まれているが、Homer が利用している引数 4 個の getBytes メソッドはサポートされていない。
次に、これをJava 2 Platform Standard Edition (J2SE)の該当するクラスファイル群を用 いて強制的にコンパイルしたところ、class ファイルが生成され、プリベリファイも成功した。
しかし、ezplus アプリでは、最初に起動されるクラスは javax.microedition.midlet.MIDlet クラスから派生させることになっており、また、MIDlet クラスの startApp メソッドを再定 義しなければならない。このため、J2SE 環境でコンパイルした通常の Java アプリケーショ ンは、そのままでは実行できない。 Homer を実行しようとすると、Java の起動画面(図 6)が表示された後すぐに、エラーなど の表示もなく終了3し、元の画面に戻ってしまった。 図6: Homer の起動画面 また、通常のezplus アプリケーションを作成する場合と同様に、MIDlet クラスを継承し、 startApp メソッドの中に Homer の処理部分を定義し直したものも作成し実験した。その結 果、やはり実行できずすぐに終了した。 以上の通り、Homer ウイルスは ezplus アプリの正規の作成手順ではコンパイルできず、 J2SE のクラスライブラリを用いて強制的に KJX ファイルを作成しても、CLDC / MIDP お よびKDDI-P 1.0 の API でない FileOutputStream クラスとProcess クラスを使用しており、 また Runtime クラスおよび String クラスはあっても exec メソッドおよび引数を 4 個持つ getBytes メソッドは実装されていないため、ezplus 端末上で Homer が動作することはあり 得ない。これはMIDlet を継承したとしても同様である。したがって、実験結果が示す通り、
Homer ウイルスの被害はない。
なお、元来Homer は UNIX 環境向けのウイルスであるため、ezplus 端末上で動作しない ことは当然ではあるが、上述の通り、Homer を改造して同様の行為を行わせようとしても無 駄であるということが確認できたわけである。
3 特にエラー表示などはなかったが、おそらく ezplus 端末が実行直前に行うベリファイで
3.2.2 Hijacker
Hijacker は不正な Java コンパイラメインクラス"$J_Home/classes/sun/tools/javac/Main. class"を生成し、コンパイラの動作をハイジャックする。
実験のためにHijacker.java をコンパイルすると、Homer と同様のエラーが表示され、class ファイルは出力されなかった。発生したエラーはすべて「シンボルを解釈処理できません。」 というものであり、そのシンボルとは、File クラスが 4 個、FileOutputStream クラスが 1 個、合計5 個であった。 これをJ2SE のクラス群を用いて強制的にコンパイルし、プリベリファイを行ったところ、 下記のエラーが発生した。これはFileOutputStream クラスが存在しないためで当然のこと ではあるが、同じクラスを用いているHomer のプリベリファイでこれが発生しなかった理由 は不明である。 なお、プリベリファイを、J2SE のクラスファイル群を用いて強制的に行うことはできるが、 Homer と同様、ezplus 端末で実行してもすぐに終了してしまった。また、MIDlet を継承さ せた"Hijacker1.kjx"を作成し ezplus 端末にダウンロードしてみたが、やはり起動画面(図 7) のあとすぐに終了してしまった。
Hijacker は、ezplus アプリケーションの正規の作成手順では KJX ファイルを作成するこ とはできず、J2SE のクラスライブラリを用いて強制的に KJX ファイルを作成しても、CLDC / MIDP および KDDI-P 1.0 の API でない File クラスと FileOutputStream クラスを使用し ているため、ezplus 端末上で Hijacker が動作することはあり得ない。したがって、実験結果 が示す通り、ezplus アプリ携帯では Hijacker の被害はない。
図7: Hijacker の起動画面
Error preverifying class Hijacker
VERIFIER ERROR Hijacker.main([Ljava/lang/String;]V: Cannot find class java/io/FileOutputStream
3.2.3 Attacker
Attacker は、ファイル"Beginner.class"を改ざんし、その機能を変更する Java プログラム であるが、ここでは ezplus アプリ用に、対象ファイル名を"Beginner.kjx"に変更して実験を 行った。
実験のためにAttacker.java をコンパイルすると、Homer と同様のエラーが表示され、class ファイルは出力されなかった。発生したエラーはすべて「シンボルを解釈処理できません。」 というものであり、そのシンボルとはFile クラスが 2 個、RandomAccessFile クラスが 2 個、 合計4 個であった。 これをJ2SE のクラス群を用いて強制的にコンパイルし、プリベリファイを行ったところ、 下記のエラーが発生した。これはRandomAccessFile クラスが存在しないためである。 なお、J2SE のクラスファイル群を用いて強制的にプリベリファイを行うことはできるが、 Homer と同様、ezplus 端末で実行すると起動画面(図 8)のあとすぐに終了してしまった。ま た、MIDlet を継承させたものも同様の結果となった。 図8: Attacker の起動画面 Attacker は、ezplus アプリケーションの正規の作成手順では KJX ファイルを作成するこ とはできず、J2SE のクラスライブラリを用いて強制的に KJX ファイルを作成しても、CLDC / MIDP および KDDI-P 1.0 の API でない File クラスと RandomAccessFile クラスを使用し ているため、ezplus 端末上で Attacker が動作することはあり得ない。したがって、実験結 果が示す通り、ezplus アプリ携帯では Attacker ウイルスの被害はない。
ちなみに、Beginner も FileInputStream クラスを利用しているためコンパイルできない。 ezplus 端末ではファイル操作全般が使用不可能なのである。
Error preverifying class Attacker
VERIFIER ERROR Attacker.main([Ljava/lang/String;]V: Cannot find class java/io/RandomAccessFile
3.2.4 StrangeBrew
StrangeBrew は他の class ファイルに感染する Java ウイルスである。
これはコンパイルされた状態(今回の検体は"Virus.class")で出回っているため、class ファ イルをそのままプリベリファイし、KJX ファイルに変換して実験したが、やはり ezplus 端 末上では起動画面(図 9)の直後に終了し、実行できなかった。
StrangeBrew を逆コンパイルしてその機能を確認したところ、これは感染動作に File クラ スとRandomAccessFile クラスを使用していることがわかった。MIDP および KDDI-P 1.0 ではファイルを操作するクラスを実装していないので、Attacker らと同様、ファイル操作を
行うStrangeBrew ウイルスによる被害はない。
3.2.5 Bean Hive
Bean Hive は複数の Java プログラムで構成されており、StrangeBrew と同様の手法を用 いて感染対象ファイルに不正なクラスローダを追加書き込みするウイルスである。
実験のためにBean Hive ウイルスを構成するすべてのクラスをコンパイルすると、Homer と同様のエラーが表示され、class ファイルは出力されなかった。発生したエラーはすべて「シ ンボルを解釈処理できません。」というものであり、そのシンボルとは、File クラスが 5 個、 RandomAccessFile クラスが 8 個、合計 13 個であった。 これをJ2SE で強制的にコンパイルし、プリベリファイして ezplus 端末上で起動しようと しても(図 10)、やはりすぐに終了してしまった。また、MIDlet を継承させたものも同様の結 果となった。
Bean Hive は ezplus アプリケーションの正規の作成手順では KJX ファイルを作成するこ とはできず、J2SE のクラスライブラリを用いて強制的に KJX ファイルを作成しても、CLDC / MIDP および KDDI-P 1.0 の API でない File クラスや RandomAccessFile クラスを使用し ているため、ezplus 端末上で Bean Hive が動作することはあり得ない。これは MIDlet を継 承させても同様である。したがって、Attacker らと同様、ファイル操作を行う Bean Hive
ウイルスによる被害はない。
3.3 機能の検討
ここでは、以上の実験結果をまとめ、ezplus 端末上での Java ウイルスの動作に関する考 察を行う。
3.3.1 ezplus アプリの実行環境
ezplus は au / KDDI が提供している携帯電話向けの Java を使ったサービスであり、
• プログラムの最大サイズは50 キロバイトまで • ezplus 通信による端末間通信が可能 • アドレス帳、位置情報などの個人情報をアプリケーションから利用可能 といった特徴を持つ。 ezplus アプリケーションの実行環境を図 11に示す。 図11: ezplus アプリの実行環境(KDDI ホームページから引用)
KVM (K Virtual Machine)は、携帯電話などの小型機器向けの Java 仮想マシンであり、 CPU やメモリなどの制約を考慮して設計されている。
CLDC (Connected Limited Device Configuration)は、小型ネットワーク機器向け Java 仮 想マシン用の必要最小限のクラスライブラリを持っている。
MIDP (Mobile Information Device Profile)は携帯電話機向けクラスライブラリで、CLDC 上で動作する。
KDDI Profile (KDDI-P)は KDDI 独自のサービスを Java で利用する為のクラスライブラ リである。
そして、ezplus アプリ(KJX ファイル)はこれらの上で動作する Java アプリケーションで ある。
3.3.2 J2ME CLDC / KVM の機能
ezplus 端末は制限のある J2ME CLDC に準拠しており、これは Palm OS や NTT の i モー ド端末のJava と同じである。
J2ME CLDC は、メモリ等に制約のある小型機器のために設計された Java プラットフォ ームであり、その仮想マシンKVM には Java の一部の機能しか実装されていない。サポート されていない機能のうち、主なものを以下に示す。
• Java Native Interface (JNI)
これはOS ネイティブなプログラム(関数)を呼び出すための機能であるが、これがサ ポートされていないということは、ezplus アプリが携帯電話機内の OS に直接アクセ スすることができず、そのような不正プログラムは実現不可能であることを意味する。 • ユーザ定義のクラスローダ これはクラスを読み込む方法を独自に作成できる機能であるが、これがサポートさ れていないということは、Bean Hive のようにクラスを外部のネットワークから優先 的に読み込むような不正クラスローダを含むezplus アプリは実現不可能であることを 意味する。 また、CLDC のライブラリには java.io パッケージのうち下記のクラスしか含まれていない。 java.io.InputStream java.io.OutputStream java.io.ByteArrayInputStream java.io.ByteArrayOutputStream java.io.DataInputStream java.io.DataOutputStream java.io.Reader java.io.Writer java.io.InputStreamReader java.io.OutputStreamWriter java.io.PrintStream
すなわち、ファイルを操作するFile, FileOutputStream, RandomAccessFile などのクラス が存在しないため、ファイルを改ざんしたり感染したりする不正プログラムは動作できない ことになる。 また、javax.microedition.io パッケージも利用可能だが、これはネットワークコネクショ ンの機能を持つ javax.microedition.io.Connector が使えるのみであり、やはりファイル操作は不可能である。 他にも、java.lang.Runtime クラスは存在するが、外部プログラムを実行する exec メソッ ド、すなわち、外部プログラムの実行関数がサポートされておらず、この機能も動作しない
ことが保証される。
3.3.3 MIDP の機能
MIDP のコアパッケージは CLDC のものと同じであり、java.io パッケージや java.lang パ ッケージの安全性は変わらない。MIDP はさらに下記の 3 つのパッケージが利用可能となっ ている。 1) javax.microedtion.lcdui ユーザインタフェースを実現するためのクラスを提供するパッケージであり、特 に危険と思われるクラスは持っていない。 2) javax.microediton.midlet MIDP を用いたアプリケーション(MIDlet)を作成する際に継承しなくてはならな いクラスを持つのみのパッケージである。 3) javax.microedition.rms 永続的に保存可能なデータをデータストレージに記憶させ、それを読み込む機能 を実現するクラスを提供するパッケージである。データストレージに記憶されたデ ータは、同じMIDlet スイート(複数の MIDlet をまとめたもの)内の MIDlet 間であ れば共有できるが、他のMIDlet のデータストレージをアクセスすることはできない。 また、ezplus アプリ自身が格納されるのはデータフォルダであり、仮にデータス トレージに自分自身をコピーするプログラムを作成したとしてもそのコピーが実行 されることはないので、これは感染したことにはならない。 以上の通り、MIDP を利用してもファイルの改ざんや感染などの不正な行為は実現できな いことになる。
3.3.4 KDDI-P の機能
KDDI-P は、ezplus 端末の機能を Java で利用できるよう、CLDC を拡張するクラスライ ブラリである。入出力操作に関係するクラス群はcom.kddi.io パッケージに含まれているが、 ファイル書き込み操作が可能なクラスはなく、データフォルダのエントリを参照するための DataFolderConnection インタフェースがあるのみである。 したがって、KDDI-P を利用してもファイルの改ざんや感染などの不正な行為は実現でき ないことになる。
3.3.5 ファイルの生成
上述の通り、Homer や Hijacker のような FileOutputStream クラスを利用する不正プロ グラムは、その機能がライブラリに存在しないため、起動直後に終了する。
このように、ezplus 端末の Java は不正な ezplus アプリの作成や既存の ezplus アプリの
破壊はできない。
3.3.6 外部プログラムの実行
Homer は Java 仮想マシンの Runtime オブジェクトの exec メソッドで外部プログラムを 実行しようとするが、ezplus 端末に搭載されている J2ME CLDC / KVM は exec メソッドを
サポートしておらず、外部プログラムを実行することはできない。
3.3.7 ファイルの改ざん
上述の通り、Attacker のような File オブジェクトを利用するプログラムも実行不可能であ る。
3.3.8 ウイルスの感染
同様に、StrangeBrew のような RandomAccessFile クラスを使う Java ウイルスも実行不 可能である。
以上のように、J2ME CLDC / KVM は機能に制約のある携帯端末機器に合わせて構築され た Java 実行環境であるため、その Java 仮想マシンのセキュリティは非常に高く、ezplus
端末ではJava ウイルスの心配は全くないと言える。
3.3.9 J-PHONE の Java アプリの場合
J-PHONE の Java 対応携帯電話機も ezplus 端末と同じ J2ME CLDC を採用しており、仕 様上は問題ない。開発環境が公開されていないため、実機でウイルスの動作確認することは できなかったが、おそらくezplus 端末と同じ結果が得られると推測できる。
3.4 対策手法
ezplus 端末では、メモリ等に制約のある小型機器のために設計された J2ME CLDC / KVM が搭載されているが、これにはJava の一部の機能しか実装されておらず、特にファイル操作 機能や外部プログラム実行機能がサポートされていないため、ウイルス等の不正プログラム はezplus 端末に悪影響を与えることができない。
ezplus 端末の J2ME CLDC / KVM が仕様通りに実装されていれば、既存の Java ウイルス に対しても、これから出現する不正な Java プログラムに対しても、ezplus 端末のユーザは 何の対策も必要ではない。
4 まとめ
携帯端末が急速に普及しつつあり、また、それらの端末にJava 実行環境が搭載されるよう になり、UNIX や Windows 98 / Me 等で問題となっている Java ウイルスに携帯端末ユーザ が遭遇する場合も増えてくると考えられる。
本報告書では、Java 実行環境を搭載している ezplus アプリ対応携帯電話機における不正 Java プログラム(Homer、Hijacker、Attacker、StrangeBrew、Bean Hive)の動作を下記の 実験によって確認した。
• 不正Java プログラムを ezplus アプリに変換する
• 通常の手続きで変換できない場合はJ2SE を用いて強制的に変換する
• ezplus アプリを Web サーバ上に置き、ezplus 携帯端末で受信し、実行する
• 不正Java プログラムのメインクラスを MIDlet クラスに変更して ezplus アプリを作 成し、同様に実行する その結果、 1) 単純にまたは強制的に変換した ezplus アプリは起動直後に終了し、感染等の不正な動 作は起きない 2) MIDlet クラスを利用した ezplus アプリも起動直後に終了し、感染等の不正な動作は起 きない ということがわかった。 これは、ezplus 端末が採用している J2ME CLDC がファイル操作を行うクラスやメソッド をサポートしておらず、高いセキュリティを実現しているためである。したがって、現状で は不正な ezplus アプリによって ezplus 端末自体に危険が及ぶことは一切なく、何の対策も 必要ない。なお、J-PHONE の Java 対応携帯電話機も同じ J2ME CLDC を採用しており、 おそらく同じ結果が得られると推測できる。
ただし、ezplus 端末も J-PHONE の Java 対応端末も、携帯電話機メーカー各社が独自に Java の仕様を拡張することが考えられる。実際、KDDI は KDDI-P で携帯電話機のアドレス 帳等のメモリへのアクセス手段を提供している。これらにセキュリティホールが存在するか どうかは今回の調査項目には含まれていないため確認していないが、今後不正アクセスの危 険性に関する調査が必要となるだろう。