JP4597973B2 - 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品 - Google Patents

移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品 Download PDF

Info

Publication number
JP4597973B2
JP4597973B2 JP2006509718A JP2006509718A JP4597973B2 JP 4597973 B2 JP4597973 B2 JP 4597973B2 JP 2006509718 A JP2006509718 A JP 2006509718A JP 2006509718 A JP2006509718 A JP 2006509718A JP 4597973 B2 JP4597973 B2 JP 4597973B2
Authority
JP
Japan
Prior art keywords
application program
program
data
scanning
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2006509718A
Other languages
English (en)
Other versions
JP2006526222A (ja
Inventor
コウツネツォフ,ヴィクター
リベンツィ,ダヴィデ
パク,マイケル,シー.
康孝 浦川
賢次 石井
将成 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2006526222A publication Critical patent/JP2006526222A/ja
Application granted granted Critical
Publication of JP4597973B2 publication Critical patent/JP4597973B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72445User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

発明の分野
本発明は、移動通信装置のセキュリティに関するものであり、より詳細には、マルウェアに対して移動通信装置をスキャンすることに関するものである。
発明の背景
過去10年間に、移動セルラー電話の数及び使用量が急速に増大した。より最近になって、移動電話及びパーソナルデジタルアシスタント(PDA)の機能を兼ね備えたワイヤレス装置が導入されている。この分野は、新規なセルラーテレコミュニケーション規格(即ち、GPRS、UMTS及びWAP)がワイヤレスインターフェイスを通じた高速データ転送を可能にするので、近い将来、著しい成長を遂げることが予想される。
このようなプラットホームは、今日のパーソナルコンピュータやワークステーションが受けるのとほぼ同様に、いわゆる「マルウェア」、例えば、ウイルス、トロイの木馬、及びワーム(以下、集合的に「ウイルス」と称される)、並びに他の不要且つ有害なコンテンツからの攻撃を受けることが予想される。既に、移動電話に対する多数のウイルスが確認されている。
ウイルスの攻撃を阻止するためには、デスクトップ環境で配備されているのとほぼ同様に、移動プラットホームにウイルス対策ソフトウェアを配備しなければならない。現在、多種のデスクトップウイルス対策アプリケーションを入手することが可能である。これらアプリケーションの大半は、疑わしいファイルに所定のウイルスシグネチャーが存在するか否かをサーチする基本的スキャニングエンジンに依存する。これらのシグネチャーはデータベースに保持されており、データベースは、直近に特定されたウイルスを反映するように常時更新されねばならない。
通常、ユーザは、インターネットを介して、受信したe−メールから、或いはCDROM又はフロッピーディスクから、交換データベースを頻繁にダウンロードする。また、ユーザは、新種のウイルスが検出されたときに必要となる新規なウイルス検出技術を利用するために、ソフトウェアエンジンを頻繁に更新することも求められる。
移動ワイヤレスプラットホームは、ソフトウェア開発者(ウイルス対策ソフトウェアの開発者を含む)に対して一連の問題を提起している。より詳細には、従来のコンテンツ/セキュリティスキャニングシステムは、スキャンされるべきアプリケーションと分離されている。従来技術の図1Aは、このようなフレームワーク10を示しており、当該フレームワーク10では、アプリケーション12及びスキャナ14が分離された状態でオペレーティングシステム16とインターフェイスしている。不都合なことに、この形式のフレームワーク10は、付加的なオーバーヘッド及びコードの冗長性を必要とする。
移動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのシステム、方法及びコンピュータプログラム製品が提供される。ワイヤレスネットワークを介して通信することのできる移動通信装置にインストールされるオペレーティングシステムが含まれる。更に、移動通信装置にインストールされ、且つタスクを実行するためにオペレーティングシステムを使用して実行されるアプリケーションプログラムが提供される。スキャニングサブシステムは、アプリケーションプログラムインターフェイスを介してアプリケーションプログラムと通信する状態を維持する。このようなスキャニングサブシステムは、アプリケーションプログラムによって実行されるタスクと共働して、セキュリティ又はコンテンツ分析機能にアクセスするようになっている。
一実施形態では、セキュリティ又はコンテンツ分析は、セキュリティ分析を含んでもよい。別の実施形態では、セキュリティ又はコンテンツ分析は、コンテンツ分析を含んでもよい。更に、セキュリティ又はコンテンツ分析は、オンデマンドのウイルススキャニング及び/又はオンアクセスのウイルススキャニングを含んでもよい。
別の実施形態では、アプリケーションプログラムは、メールアプリケーションプログラムを含んでいてもよく、タスクが電子メールの管理を含んでいてもよい。更に、アプリケーションプログラムは、ブラウザアプリケーションプログラムを含んでいてもよく、タスクがネットワークのブラウジングを含んでいてもよい。更に、アプリケーションプログラムは、電話帳アプリケーションプログラムを含んでいてもよく、タスクが複数の電話番号の管理を含んでいてもよい。また、オプションとして、アプリケーションプログラムは、メッセージアプリケーションプログラムを含んでいてもよく、タスクがメッセージの伝送を含んでいてもよい。なお、いかなる形式のアプリケーションプログラムが含まれてもよいことに注意されたい。例えば、Java(登録商標)アプリケーションプログラム等が含まれてもよい。
使用に際して、セキュリティ又はコンテンツ分析機能が、アプリケーションプログラムによって実行されるタスクに関連したアプリケーションデータに適用されてもよい。
任意であるが、スキャニングサブシステムは、再入可能ライブラリーを含んでいてもよい。このような実施形態では、スキャニングサブシステムは、実行時にアプリケーションプログラムにリンクされてもよい。別のオプションとして、スキャニングサブシステムは、アプリケーションプログラムインターフェイスを介してアプリケーションプログラムと通信するスキャニングプログラムを含んでもよい。
アプリケーションプログラムインターフェイスは、システム環境初期化、バージョン状態情報検索、スキャニングシステムの更新、スキャニング、スキャニングサブシステムのコンフィギュレーション、等の種々の機能をサポートすることができる。
アプリケーションプログラムインターフェイスが与えられた種々のコールは、オープンコール、データコール、及びクローズコールを含んでもよい。使用に際して、アプリケーションプログラムインターフェイスが、複数のアプリケーションプログラムのそれぞれに設けられてもよい。
詳細な説明
図1は、一実施形態に係る移動通信フレームワーク100を示す。図示されたように、移動通信装置102と、ワイヤレスネットワークを介して通信可能なバックエンドサーバー104とが含まれている。ここでの説明においては、移動通信装置102は、セルラー電話、ワイヤレスパーソナルデジタルアシスタント(PDA)、ワイヤレスハンドヘルドコンピュータ、ワイヤレスポータブルコンピュータ、或いはワイヤレスネットワークを介して通信できる他の移動装置を含んでいるが、これらに限定されない。
一実施形態では、移動通信装置102は、スキャニングサブシステム105を備えていてもよい。このスキャニングサブシステム105は、移動通信装置102に記憶されるか又はそれに伝送されるデータをスキャニングすることができるサブシステムを含んでもよい。当然ながら、このようなスキャニングは、オンアクセススキャニング、オンデマンドスキャニング、又は他の任意の形式のスキャニングを指すことができる。更に、スキャニングは、上記データに代表されるコンテンツ(即ち、テキスト、ピクチャー、等)、マルウェアに対する一般的なセキュリティ型のスキャニング、等を含んでいてもよい。
続けて図1を参照する。移動通信装置102は、上記スキャニング機能を含む種々の機能を管理するようになっている複数のグラフィックユーザインターフェイス108を表示できるディスプレイ106を更に備えることができる。
使用に際して、移動通信装置102のディスプレイ106が用いられて、ネットワーク(即ち、インターネット、等)上のデータが表示される。オペレーション1を参照されたい。ここに示す使用の過程では、ユーザは、バックエンドサーバー104を介してネットワークからデータを検索するためのリンク又はアンカーを選択することにより、ディスプレイ106を使用してネットワーク上の種々のデータをブラウズすることができる。オペレーション2を参照されたい。次いで、オペレーション3において、検索されたデータをスキャンするためにスキャニングサブシステム105がコールされる。
ここに示す例では、スキャニングサブシステム105は、オペレーション4において、検索されたデータに関連してマルウェアを見つけたと示されている。この時点で、ユーザには、検索を停止するか、及び/又は特定されたマルウェアに関わらずデータを使用/アクセスするか、の選択肢がディスプレイ106を介して提供される。オペレーション5に注目されたい。オペレーション5における判断に基づいて、ユーザは、オペレーション6に示すように、「攻撃」の対象になるかもしれないし、ならないかもしれない。
図2は、別の実施形態に係る移動通信フレームワーク200を示す。この移動通信フレームワーク200は、移動通信装置が検索されたデータにおけるマルウェアの特定に反応する方法を除くと、図1の移動通信フレームワーク100と同様である。
より詳細には、ユーザには、オペレーション5において一つの選択肢が与えられるだけである。即ち、ユーザは、マルウェアを組み込んでいることが発見されたデータに関連するダイアログを閉じることしかできない。オペレーション6に注意されたい。
図3は、一実施形態に係る移動通信装置に関連するアーキテクチャー300を示す。このアーキテクチャー300は、図1及び図2の移動通信装置に組み込むことが可能である。当然ながら、アーキテクチャー300は、所望のいかなる状況においても実施されうるものである。
図示されたように、このアーキテクチャー300は、複数の移動アプリケーションプログラム302を含むことができる。この説明においては、移動アプリケーションプログラム302は、種々のタスクを実行するために移動通信装置にインストールされる、いかなるアプリケーションプログラム、ソフトウェア、等を含むことができる。更に、このようなアプリケーションプログラム302は、ユーザの要求によって、ファームウェア、ハードウェア、等で実施されてもよいことに注意されたい。
別の実施形態では、アプリケーションプログラム302は、タスクが電子メールの管理を含むようなメールアプリケーションプログラムを含んでいるが、これに限定されない。更に、アプリケーションプログラムは、タスクがネットワークのブラウジングを含むようなブラウザアプリケーションプログラムを含んでいてもよい。更に、アプリケーションプログラムは、タスクが複数の電話番号の管理を含むような電話帳アプリケーションプログラムを含んでいてもよい。オプションとして、アプリケーションプログラムは、タスクがメッセージの伝送を含むようなメッセージアプリケーションプログラムを含んでいてもよい。いかなる形式のアプリケーションプログラムが含まれてもよいことに注意されたい。例えば、Java(登録商標)アプリケーションプログラム又はそれと同様のものが含まれてもよい。
続けて図3を参照する。スキャニングサブシステム304は、このスキャニングサブシステム304に関連した第1アプリケーションプログラムインターフェイス(API)306及び第1ライブラリー308を介してアプリケーションプログラム302と通信状態にある。第1アプリケーションプログラムインターフェイス306及び第1ライブラリー308に関連した任意の例示的細部に関するより多くの情報を、図4から図12を参照して以下に詳細に説明する。
オプションとして、アプリケーションプログラム302は、スキャニングサブシステム304によるスキャニングを容易にするためにスキャニングサブシステム304へ情報を伝送することができる。このような情報は、スキャンされるべきデータの形式、及びこのようなスキャニングに関連したタイミングに関するものであってもよい。このようにスキャニングサブシステム304がアプリケーションプログラム302と情報を交換する方法に関するより多くの例示的情報を、図13〜図15を参照して説明する。
図3に示すように、第1ライブラリー308は、更新マネージャー310、コンフィギュレーションマネージャー312、及びシグネチャーデータベース314を含むことができる。使用に際して、更新マネージャー310は、シグネチャーデータベース314をスキャニングのための最新のシグネチャーで更新するプロセスを管理することができる。一実施形態では、更新プロセスは、移動通信フレームワークに固有の限定帯域巾に適応するようにストリームライン化されていてもよい。このような更新プロセスに関するより多くの例示的情報を、図16及び図17を参照して説明する。
図3のアーキテクチャー300のコンポーネントとして、オペレーティングシステム316が更に設けられており、当該オペレーティングシステム316は、移動通信装置にインストールされており、且つアプリケーションプログラム302を実行するようになっている。一実施形態では、スキャニングサブシステム304は、プラットホームとは独立したものでよく、従って、いかなる形式のオペレーティングシステム/移動通信装置との組合せにおいても実施することができる。
この特徴に適応するために、第2のアプリケーションプログラムインターフェイス318と、第2のライブラリー320は、種々の機能、例えば、システム/ライブラリー初期化322、エラーファンクション336、メモリ割り当て334、入力/出力(I/O)328、データ認証332、同期330、ハイパーテキスト転送プロトコル326、装置情報324、デバッグ338、及び他のファンクション(即ち共有メモリ、システム時間、等)をサポートし得るものになっている。一実施形態では、第2のアプリケーションプログラムインターフェイス318は、スキャニングサブシステム304と同様に、プラットホームとは独立したものであってもよい。第2のアプリケーションプログラムインターフェイス318及び第2のライブラリー320に関連した任意の例示的細部に関するより多くの情報を、添付資料Aを参照して以下に詳細に説明する。
図4は、一実施形態に係るものであり、動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのシステムを示す図である。一例においては、このシステム400は、図3のアーキテクチャー300のアプリケーションプログラム、スキャニングサブシステム、及びオペレーティングシステムの状況で実施されうる。しかしながら、このシステム400は、所望のいかなる状況において実施されてもよいことに注意されたい。
図示されたように、ワイヤレスネットワークを介して通信することのできる移動通信装置にインストールされたオペレーティングシステム402が含まれている。更に、移動通信装置にインストールされ、且つタスクを実行するためにオペレーティングシステム402を使用して実行されるアプリケーションプログラム404も設けられている。
スキャニングサブシステム406は、アプリケーションプログラムインターフェイス及びそれに関連したライブラリーを介してアプリケーションプログラム404と通信する状態を維持する(例えば、図3の第1アプリケーションプログラムインターフェイス306及び第1ライブラリー308を参照されたい)。このようなスキャニングサブシステム406は、アプリケーションプログラム404により実行されるタスクと共働してセキュリティ又はコンテンツ分析機能にアクセスするようになっている。一実施形態では、セキュリティ又はコンテンツ分析は、セキュリティ分析を含んでいてもよい。別の実施形態では、セキュリティ又はコンテンツ分析は、コンテンツ分析を含んでいてもよい。更に、セキュリティ又はコンテンツ分析は、オンデマンドウイルススキャニング及び/又はオンアクセスウイルススキャニングを含んでいてもよい。
使用に際して、セキュリティ又はコンテンツ分析機能が、アプリケーションプログラム404によって実行されるタスクに関連したアプリケーションデータに適用されてもよい。ここでの説明においては、アプリケーションデータは、入力され、処理され、出力され、又は、アプリケーションプログラム404によって行われるタスクの実行に別の方法で関連する、いかなるデータを含んでいてもよい。
アプリケーションプログラムインターフェイスを介してスキャニングサブシステム406及びアプリケーションプログラム404を密に結合することによって、要求されるオーバーヘッド及びコードの冗長性が僅かになる。このようなアプリケーションプログラムインターフェイス及びそれに関連したライブラリーに関するより多くの例示的情報について、以降の図面を参照して以下に詳細に説明する。
図5は、図4のシステム400のアプリケーションサーバーの実施形態に係るものであって、移動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのフレームワーク500を示す。このフレームワーク500は、所望のいかなる状況において実施されてもよいことに注意されたい。
図示されたように、スキャニングサブシステムは、アプリケーションプログラムインターフェイス506及びそれに関連したプロトコル(即ち、uItronメッセージングシステム)を介してアプリケーションプログラム504と通信するスキャニングプログラム502を含むことができる。以下で詳細に述べるように、アプリケーションプログラムインターフェイス506は、スキャニングプログラム502に関連した第1コンポーネント508と、アプリケーションプログラム504に関連した第2コンポーネント510とを含むことができる。
アプリケーションプログラムインターフェイス506が設けられた種々のコール512は、オープンコール、データコール、及びクローズコールを含んでいてもよい。使用に際して、スキャニングプログラム502は、アプリケーションプログラム504によって実行されるタスクに関連したアプリケーションデータ516をスキャンすることができる。
図6は、図4のシステム400の再入可能ライブラリーの実施形態に係るものであり、移動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのフレームワーク600を示す。このフレームワーク600は、所望のいかなる状況において実施されてもよいことに注意されたい。
図示されたように、スキャニングサブシステムは、再入可能ライブラリー602を含むことができる。使用に際して、スキャニングサブシステムの再入可能ライブラリー602は、アプリケーションプログラム604に実行時にリンクされてもよい。従って、アプリケーションプログラムインターフェイス606は、複数のアプリケーションプログラム604のそれぞれに設けられてもよい。
図5における先のフレームワーク500と同様に、アプリケーションプログラムインターフェイス606は、オープンコール、データコール及びクローズコールを含む種々のコール612を含むことができる。使用に際して、再入可能ライブラリー602を用いて、アプリケーションプログラム604によって実行されるタスクに関連したアプリケーションデータ616をスキャンしてもよい。
図7は、図4のシステム400の状況で実施されたオンデマンドスキャニングシステム700を示す。このシステム700は、所望のいかなる状況において実施されてもよいことに注意されたい。
オンデマンドスキャニングは、不当なコンテンツ又はコードを除去するために、記憶されたアプリケーションデータ702をスキャニングする。ユーザは、ユーザインターフェイス703を介してオンデマンドスキャニングを開始することができる。更に、各アプリケーションプログラム704は、スキャニングサブシステム706をコールして、それに対応するメモリに記憶されたオブジェクトのスキャニングを行うことができる。
一方、オンアクセススキャニングは、アプリケーションプログラム704がアプリケーションデータ702を処理又はレンダリングする前に、不当なコード又はコンテンツを特定する。オンアクセススキャニングは、スキャニングサブシステム706が不当なアプリケーションデータ702を検出するまでユーザにとって透過的である。
図8は、一実施形態に係るものであり、移動アプリケーションプログラム及びスキャニングサブシステムをインターフェイスするのに使用できるアプリケーションプログラムインターフェイス800の種々のコンポーネントの階層を示す図である。オプションとして、このアプリケーションプログラムインターフェイス800は、図4のシステム400の状況において実施されてもよい。しかしながら、このアプリケーションプログラムインターフェイス800は、所望のいかなる状況において実施されてもよいことに注意されたい。
図8に示すように、アプリケーションプログラムインターフェイスファンクションは、MDoScanOpen()802、MDoScanClose()804、MDoScanVersion()806、及びMDoScanData()808を備えている。MDoScanOpen()802及びMDoScanClose()804は、スキャニングサブシステムオブジェクトのインスタンスを生成/オープン及びクローズするのに使用される。MDoScanVersion()806は、スキャニングサブシステム及びシグネチャーパターンデータのバージョン情報を提供する。MDoScanData()808は、コンテンツ/データスキャニング及びレポーティングを実行する。また、スキャナのアプリケーションプログラムインターフェイスにはMDoScanUpdate()810も含まれており、当該MDoScanUpdate()810は、マルウェアシグネチャーデータベース及び検出ロジックの更新を提供する。このMDoScanUpdate()810が更新アプリケーションによりコールされると、ライブラリーは、リモートバックエンドサーバー(例えば、図1を参照されたい)に接続して、最新のファイル(即ち、mdo.sdb、mdo.pd)をダウンロードする。
スキャニングサブシステムのコンフィギュレーションは、MDoConfigOpen()812、MDoConfigClose()814、MDoConfigGet()816及びMDoConfigSet()818を使用して行われる。このアプリケーションプログラムインターフェイス800をコールすることによりコンフィギュレーションハンドルが得られると、コールしたアプリケーションプログラムは、ゲット及びセットコンフィギュレーションAPIを使用して、スキャニングサブシステムコンフィギュレーション変数を問合せて、それをセットする。
また、このアプリケーションプログラムインターフェイス800には、MDoGetLastError()820という名前のエラー検索ファンクションも含まれている。このファンクションは、発生した最新のエラーに関する情報を検索するのに使用される。
APIコールのいずれかがなされる前に、好ましくはブート時に、ライブラリー環境設定を初期化するために、MDoSystemInit()825がコールされる。ライブラリーは、コンフィギュレーション設定、不当なコード検出ロジック(即ち、mdo.pd)及びシグネチャーデータベース(即ち、mdo.adb)、並びに内部変数(即ち、同期オブジェクト等)を固定の持続的記憶位置に保持する。
MDoLibraryOpen()830及びMDoLibraryClose()840は、ライブラリーを初期化するのに使用される。アプリケーションプログラムは、他のAPIコールがなされる前にMDoLibraryOpen()830をコールし、また、アプリケーションプログラムは、終了の前にMDoLibraryClose()840をコールすることができる。
アプリケーションプログラムインターフェイス800は、種々のアプリケーションプログラムインターフェイスコンポーネントを使用して、システム環境初期化、バージョン状態情報の検索、スキャニングサブシステムの更新、スキャニング、スキャニングサブシステムのコンフィギュレーション等の種々の機能をサポートすることができる。アプリケーションプログラムインターフェイス800に関する上記機能について、より多くの情報を以下に説明する。
システム初期化
MDoSystemInit()825は、特定の持続記憶位置に保持されるデータに対する検証及び環境初期化を実行する。不当なコード/コンテンツのシグネチャーパターンデータベース(即ち、mdo.sdb)、検出ロジック(即ち、mdo.pd)、コンフィギュレーション設定、及び同期オブジェクトは、これらの位置に記憶することができる。MDoSystemInit()825は、いずれかのAPIファンクションが実行される前に一度コールすることができる(即ち、ブート時に)。
テーブル#1は、MDoSystemInit()825に関する例示的情報を示す。
テーブル#1
MDoSystemInit

説明
システム環境情報を検証し、初期化する。

プロトタイプ
Int MDoSystemInit(void);

パラメータ
なし

リターン値
成功の場合は0、他の場合は非ゼロのエラーコード。
ライブラリーインターフェイスAPI
アプリケーションプログラムインターフェイス800は、複数のライブラリーインターフェイスコンポーネントを含む。APIインターフェイスのインスタンス化は、MDoLibraryOpen()830を使用して行うことができる。このファンクションを使用して得られるインスタンス化されたライブラリーインターフェイスハンドルは、その後のAPIコールに使用することができる。アプリケーションプログラムが終了する前に、ハンドルをリリースするためにMDoLibraryClose()840をコールすることができる。図9は、MDoLibraryOpen()830及びMDoLibraryClose()840を使用する例示的ライブラリーインターフェイス初期化900を示す。
テーブル#2は、MDoLibraryOpen()830に関する例示的情報を示す。
テーブル#2
MDoLibraryOpen

説明
APIライブラリーインターフェイスハンドルを初期化して、返す。

プロトタイプ
MDOLIB_HANDLEMDoLibraryOpen(void);

パラメータ
なし

リターン値
成功の場合はライブラリーインターフェイスハンドル、他の場合はINVALID_MDOLIB_HANDLE。

MDoLibraryClose()も参照のこと
テーブル#3は、MDoLibraryClose()840に関する例示的情報を示す。
テーブル#3
MDoLibraryClose

説明
MDoLibraryClose()ファンクションにより返されたAPIライブラリーハンドルに関連したシステムリソースをリリースする。

プロトタイプ
Void MDoLibraryClose(MDOLIB_HANDLEhLib);

パラメータ
hLib
[入力] MDoLibraryOpenによって返されるハンドル化されたライブラリー

リターン値
なし

MDoLibraryOpen()も参照のこと
エラー検索
MDoLibraryOpen()830によるライブラリーの初期化及びインスタンス化が成功すると、MDoGetLastError()820は、発生した最新のエラーに関する情報をアプリケーションプログラムに提供する。
テーブル#4は、MDoGetLastError()820に関する例示的情報を示す。
テーブル#4
MDoGetLastError

説明
指定のライブラリーインスタンスの最新のエラー値を返す。

プロトタイプ
MDoErroeCode MDoGetLastError(MDOLIB_HANDLEhLib);

パラメータ
hLib
[入力] MDoLibraryOpenによって返されるハンドル化されたライブラリー
リターン値
MDoErrorCodeのデータ形式は、コンポーネント及びエラーコードの両方を含む32ビット非符号化整数として定義することができる。多くの場合、検索されたエラー情報は、プラットホームの抽象APIレイヤーにおいてセットされている。そのため、ここで与えられるMDoErrorCodeフォーマットは、抽象レイヤーAPI(添付資料Aを参照)により定義されたAlErrorCodeフォーマットと同様である。図10は、一実施形態に基づくMDoErrorCodeの例示的フォーマット1000を示す。
テーブル#5は、MDoGetLastError()820に関する例示的情報を示す。
テーブル#5
MDoErrorCodeは、次のように定義される。
Typedef unsigned long MDoErrorCode;
MDoLibraryOpen()、MDoScanOpen()、MDoScanData()、MDoScanUpdate()も参照のこと。
例示的コンピュータコード#1は、MDoGetLastError()820へのコールと共にサンプルのライブラリーコーリングシーケンスを示す。
コンピュータコード#1
Figure 0004597973
エラーコード
MDoGetLastError()820によりレポートされるエラーコードは、2つの部分、即ちコンポーネントコード及びエラーコードを含んでいる。更なる情報については、添付資料Aを参照されたい。テーブル#6は、例示的エラーコード及びそれに対応するコンポーネントコードをリストしたものである。また、MDoGetLastError()820は、抽象ライブラリーレイヤーにおいてセットされたエラーコードも返す。次のリストは、例示のためのものに過ぎず、何らこれに限定するものではないことに注意されたい。
テーブル#6
Figure 0004597973
スキャニングサブシステムAPI
アプリケーションプログラムインターフェイス800は、複数のスキャニングサブシステムコンポーネントを含んでいる。スキャニングサブシステムAPIコンポーネントは、データ/コンテンツスキャニング及びシグネチャー更新サービスを提供する。MDoScanOpen()802、MDoScanClose()804、MDoScanVersion()806、MDoScanUpdate()810、及びMDoScanData()808が含まれている。MDoScanOpen()802は、スキャニングサブシステムオブジェクトのインスタンス化に使用される。MDoScanVersion()806は、スキャニングサブシステム及びシグネチャーデータベースのバージョン情報を提供する。MDoScanUpdate()810は、シグネチャーデータベースの更新を実行する。MDoScanData()808は、不当なコード/コンテンツデータのスキャニングを実行する。図11は、一実施形態に係るスキャニングサブシステムAPIコールシーケンス1100を示す。
MDoScanOpen
テーブル#7は、MDoScanOpen()802に関する例示的情報を示す。
テーブル#7
説明
スキャニングサブシステムのインスタンスのハンドルを返す。

プロトタイプ
MDOSCAN_HANDLEMDoScanOpen(MDOLIB_HANDLE hLib);

パラメータ
[入力] MDoLibraryOpen()ファンクションを使用して得たライブラリーのハンドル。

リターン値
成功の場合にはスキャニングサブシステムインスタンスハンドル。
エラーの場合にはINVALID_MDOSCAN_HANDLEが返される。

MDoScanClose()、MDoScanData()、MDoScanUpdate()、MDoLibraryOpen()も参照のこと。
MDoScanClose
テーブル#8は、MDoScanClose()804に関する例示的情報を示す。
テーブル#8
説明
スキャニングサブシステムのインスタンス及びそれに関連したシステムリソースをリリースする。

プロトタイプ
VoidMDoScanClose(MDOSCAN_HANDLE hScan);

パラメータ
hScan
[入力] MDoScanOpen()ファンクションを使用して得られたスキャニングサブシステムのハンドル。

リターン値
なし

MDoScanOpen()、MDoScanData()、MDoScanUpdate()も参照のこと。
MDoScanVersion
テーブル#9は、MDoScanVersion()806に関する例示的情報を示す。
テーブル#9
説明
MDoScanOpen()ファンクションにより返されたスキャナハンドルからスキャニングサブシステム及びシグネチャーのバージョン情報を得る。

プロトタイプ
Int MDoScanVersion(MDOSCAN_HANDLEhScan,
SVerInfo* pVersion);

パラメータ
hScan
[入力] MDoScanOpen()ファンクションを使用して得たスキャニングサブシステムのハンドル。
pVersion
[出力] バージョン情報を含む構造体へのポインタ。

リターン値
成功の場合には0、他の場合には−1。

MDoScanOpen()、MDoScanClose()、MDoScanData()、MDoScanUpdate()も参照のこと
例示的コンピュータコード#2は、サンプルのバージョン情報の構造体を示す。
コンピュータコード#2
Figure 0004597973
MDoScanVersion()806によりレポートされた移動通信装置特定ストリングは、AlDevGetInfoにより返される装置特定ストリングを使用してセットされる(添付資料Aを参照)。
MDoScanData
テーブル#10は、MDoScanData()808に関する例示的情報を示す。
テーブル#10
説明
MDoScanDataは、特定のデータ形式をスキャンするためにアプリケーションプログラムからコールされる。コールするアプリケーションプログラムは、スキャナアクション、スキャンターゲット、データ形式、データにアクセスするためのI/Oファンクションのセット、及び任意のコールバックファンクションを指定する。データスキャニングの結果は、データ構造体を提供した呼出元に返される。MDoScanDataは、再入可能である。

プロトタイプ
Int MDoScanData(MDOSCAN_HANDLEhScan,
SScanParam* pParam,
SScanResult* pResult);

パラメータ
hScan
[入力] MDoScanOpen()ファンクションへのコールで得られたスキャニングサブシステムのハンドル。
pParam
[入力] データスキャンパラメータを含む構造体へのポインタ。
pResult
[出力] データスキャン結果を含む構造体へのポインタ。

リターン値
成功の場合は0、他の場合には−1、エラーコードがセットされる。

MDoScanOpen()、MDoScanClose()、MDoScanVersion()、MDoScanUpdate()も参照のこと。
MDoScanUpdate
テーブル#11は、MDoScanUpdate()810に関する例示的情報を示す。
テーブル#11
説明
不当なコード/コンテンツシグネチャーパターンデータベース(mdo.sdb)及び検出ロジック(mdo.pd)の更新を実行する。

プロトタイプ
Int MDoScanUpdate(MDOSCAN_HANDLEhScan,
SUpdateParam* pParam);

パラメータ
hScan
[入力] MDoScanOpen()ファンクションを用いて得たスキャンハンドル。
pParam.
[入力] 更新のキャンセル/中止及び進捗状態更新用のコールバックファンクションのポインタを含む更新パラメータの構造体へのポインタ。
例示的コンピュータコード#3は、更新パラメータ構造体の定義の態様を示す。
コンピュータコード#3
Figure 0004597973
コールするアプリケーションプログラムは、ファンクションをコールするときに、ファンクションポインタと、ファンクションへ渡されるべきデータとをセットすることができる。テーブル#12に注目されたい。
テーブル#12
Figure 0004597973
コンフィギュレーションAPI
アプリケーションプログラムインターフェイス800は、複数のコンフィギュレーションコンポーネントを含む。スキャニングサブシステムの設定を検索し指定するのに使用されるファンクションのセットが含まれている。これらファンクションの1つの目標は、アプリケーションプログラム及びスキャニングサブシステムに集中化ランタイムコンフィギュレーションアクセスを提供することである。コンフィギュレーションデータは、不揮発性持続データ記憶装置(即ち、フラッシュメモリ、等)に記憶される。
図12は、一実施形態に基づく一つの例示的コンフィギュレーションAPIコールシーケンス1200を示す。図示されたように、MDoConfigOpen()830は、コンフィギュレーションの検索及び指定ファンクションへ渡すべきハンドルを返す。MDoConfigClose()814は、MDoConfigOpen()812により返されるコンフィギュレーションハンドルをリリースし、クローズするのに使用される。MDoConfigSet()818は、指定のコンフィギュレーション変数を指定値にセットし、MDoConfigGet()816は、指定の変数に対するコンフィギュレーション値を返す。MDoConfSet()818により変更されたコンフィギュレーション変数(1つ又は複数)の設定は、MDoConfigClose()814がコールされるまで永久記憶装置へ必ずしもセーブされない。アプリケーションプログラムは、コンフィギュレーションオープン、ゲット又はセットをコールし、そして変数値にアクセスするか及び/又はそれを指定するときにはクローズファンクションに直ちに従うことができる。
アプリケーションプログラムインターフェイス800のコンフィギュレーションコンポーネントを使用して指定/検索されたコンフィギュレーション変数及び値は、nullキャラクタ(‘\0’)で終わる8ビットキャラクタストリングで表すことができる。テーブル#13は、使用可能なコンフィギュレーション変数をリストしたものである。
テーブル#13
Figure 0004597973
MDoConfigOpen
テーブル#14は、MDoConfigOpen()812に関する例示的情報を示す。
テーブル#14
説明
その後のコールに渡すべきコンフィギュレーション設定に対するハンドルをMDoConfigGet()及びMDoConfigSet()へ返す。

プロトタイプ
MDOCONFIG_HANDLEMDoConfigOpen(MDOLIB_HANDLE hLib);

パラメータ
hLib
[入力] MDoLibraryOpen()ファンクションを用いて得たライブラリーのハンドル。

リターン値
成功の場合はコンフィギュレーションハンドル。エラーの場合はINVALID_MDOCONFIG_HANDLEが返される。

MDoConfigClose()、MDoConfigSet()、MDoCongigGet()も参照のこと。
MDoConfigClose
テーブル#15は、MDoConfigClose()814に関する例示的情報を示す。
テーブル#15
説明
システムリソースをリリースし、コンフィギュレーションハンドルをクローズする。

プロトタイプ
VoidMDoConfigClose(MDOCONFIG_HANDLE hConfig);

パラメータ
hConfig
[入力] MDoConfigOpen()ファンクションによって返されたコンフィギュレーションハンドル。

リターン値
なし

MDoConfigOpen()、MDoConfigSet()、MDoConfigGet()も参照のこと
MDoConfigGet
テーブル#16は、MDoConfigGet()816に関する例示的情報を示す。
テーブル#16
説明
指定のコンフィギュレーション変数に対するコンフィギュレーション値を得る。

プロトタイプ
Int MDoConfigGet(MDCONFIG_HANDLEhConfig
charconst* pszName,
char* pBuffer,
unsignedint uSize);

パラメータ
hConfig
[入力] MDoConfigOpen()ファンクションによって返されたコンフィギュレーションハンドル。
pszName
[入力] NULL終端のコンフィギュレーション変数の名前。
pBuffer
[出力] 指定された変数に対するNULL終端のコンフィギュレーション設定/値。
uSize
[入力] pBufferのバイトでの長さ.

リターン値
成功の場合は0、他の場合は−1

MDoConfigOpen()、MDoConfigClose()、MDoConfigSet()も参照のこと。
MDoConfigSet
テーブル#17は、MDoConfigSet()818に関する例示的情報を示す。
テーブル#17
説明
指定のコンフィギュレーション変数の値をセットする。

プロトタイプ
Int MDoConfigGet(MDOCONFIG_HANDLEhConfig
charconst* pszName
charconst* pszValue);

パラメータ
hConfig
[入力] MDoConfigOpen()ファンクションによって返されるコンフィギュレーションハンドル。
pszName
[入力] NULL終端のコンフィギュレーション変数の名前。
pszValue
[入力] 指定された変数に対するNULL終端の新たなコンフィギュレーション設定/値

リターン値
成功の場合は0、他の場合は−1。

MDoConfigOpen()、MDoConfigClose()、MDoConfigGet()も参照のこと。
スキャニングを容易にするためのアプリケーションプログラム/スキャニングサブシステム通信
先に述べたように、アプリケーションプログラムは、スキャニングサブシステムによるスキャニングを容易にするためにスキャニングサブシステムへ情報を伝送することができる。この伝送は、上述したAPIを介することによって容易にされている。上述の情報は、スキャニングされるべきデータの形式と、このようなスキャニングに関連したタイミングとに関係しうるものである。上述のAPIがこれを達成する方法に関する説明を次に行う。
スキャンパラメータ(SScanParam)
コールするアプリケーションプログラムは、SScanParam構造体を使用してスキャニングパラメータをスキャニングサブシステムに供給することができる。スキャンパラメータに含まれる情報は、スキャニングサブシステムに、1)スキャニングサブシステムアクション形式(即ち、iAction)、2)スキャンデータ形式(即ち、スキャニングされるべきアプリケーションデータの形式、iDataType)、3)スキャンターゲットに対するデータポインタ(即ち、pPrivate)、4)バイトでのデータサイズを検索するためのファンクション(即ち、pfGetSize)、5)スキャンデータをリサイズするためのファンクション(即ち、pfSetSize)、6)スキャンデータのブロックを検索するためにスキャニングサブシステムにより使用されるファンクション(即ち、pfRead)、6)スキャンデータを書き込むのに使用されるファンクション(即ち、pfWrite)、及び7)スキャニングサブシステム状態/進行レポートのためのコールバックファンクション(即ち、pfCallBack)を提供する。
例示的コンピュータコード#4は、データスキャンパラメータ構造体を示す。
コンピュータコード#4
Figure 0004597973
スキャンアクション(iAction)
スキャンアクションは、供給されたアプリケーションデータに関して実行されるべきスキャニングの形式を指定する。テーブル#18は、種々の例示的スキャンアクションを示す。
テーブル#18
Figure 0004597973
スキャンデータ形式(iDataType)
コールするアプリケーションプログラムは、この変数を使用してアプリケーションデータ形式及びフォーマットをスキャニングサブシステムに通知してもよい。
図13は、アプリケーションプログラムがAPIを介してスキャニングサブシステムへ通信することのできる種々の例示的なアプリケーションデータ形式1300を示す。urlストリングフォーマットは、ユニホームリソースロケータ(RFC1738)の仕様に合致することができる。E−メールストリングフォーマットは、インターネットE−メールアドレスフォーマット(RFC822)に合致することができる。デフォールトドメインは、所望のいかなるドメインにセットされていてもよい。更に、電話番号ストリングは、数字キャラクタ‘0’−‘9’及び‘#’及び‘*’キャラクタを含んでいてもよい。
スキャンデータポインタ/ハンドル(pPrivate)
アプリケーションスキャンオブジェクトに対するポインタ(又はハンドル)が更に提供される。スキャニングサブシステムは、必ずしも、このデータポインタ/ハンドルを使用して直接メモリI/Oを実行しない。このデータポインタ/ハンドルは、呼出元指定のI/Oファンクションを使用して読み取り/書き込みを実行するために呼出元へ返送される。
スキャンデータサイズ
このファンクションは、コールしたアプリケーションプログラムからスキャンターゲットデータサイズ(バイト数)を得るためにスキャニングサブシステムにより使用される。
スキャンデータリサイズ(pfSetSize)
このファンクションは、修復/清浄化されているアプリケーションデータを所与のサイズ(バイト数)にリサイズすることを、コールしたアプリケーションプログラムに要求するためにスキャニングサブシステムにより使用される。このファンクションは、スキャン及び修復/削除オプションにと共に使用されてもよい。
スキャンデータ読み取りファンクション(pfRead)
このファンクションは、コールしたアプリケーションプログラムから指定量のアプリケーションデータを読み取るためにスキャニングサブシステムによって使用されうるものである。
スキャンデータ書き込みファンクション(pfWrite)
これは、オプションのパラメータであって、当該パラメータは、修復プロセスの一部分としてスキャンオブジェクトに指定量のアプリケーションデータを書き込むためにスキャニングサブシステムにより使用される。このファンクションポインタは、修復又は削除用にスキャンアクションがセットされた場合にセットされてもよい。
コールバックファンクション(pfCallBack)
指定された場合に、スキャニングサブシステムは、以下のテーブルに示す情報で指定のファンクションをコールする。コールバックファンクションは、負のリターン値が返された場合には、スキャニングプロセスを中止する。テーブル#19は、例示的コールバックコードリストを示す。
テーブル#19
Figure 0004597973
例示的コンピュータコード#5は、スキャニングサブシステムのコールバック構造体を示す。
コンピュータコード#5
Figure 0004597973
スキャン結果(SScanResult)
オブジェクトスキャニングの結果、即ち検出されたマルウェア情報は、コールしたアプリケーションプログラムにより提供されたSScanResult構造体で、コールしたアプリケーションプログラムへ返される。このSScanResult構造体は、スキャン結果情報を含む構造体に対するポインタと、スキャン結果リソースを削除するのに使用されるファンクションへのポインタとを含む。スキャン結果を保持するのに使用されるメモリは、スキャニングサブシステムにより割り当てられ、そしてpfDeleteResultポインタが指すファンクションをコールすることにより解放される。
例示的なコンピュータコード#6は、サンプルコーリングシーケンスを示す。
コンピュータコード#6
Figure 0004597973
例示的なコンピュータコード#7は、検出された不正コード/コンテンツ情報構造体を示す。
コンピュータコード#7
Figure 0004597973
例示的なコンポーネントコード#8は、スキャン結果構造体を示す。
コンピュータコード#8
Figure 0004597973
重大度及びビヘイビアレベル(uBehavior)
図14は、一実施形態に係るものであり、SDetect構造体に含まれるマルウェアの重大度及びアプリケーションプログラムのビヘイビアレベルを含むビットフィールド変数1400を示す。
テーブル#20は、例示的なマルウェアの重大度のリストを示す。
テーブル#20
Figure 0004597973
スキャニングサブシステムは、スキャンされたアプリケーションデータが移動通信装置のユーザにとって有害なマルウェアを含む場合に、MDO_SC_USERフラグをセットする。移動通信装置それ自体にとって有害なものである場合には、MDO_SC_TERMINALフラグがセットされる。ユーザ及び移動通信装置の両方にとって有害である場合には、MDO_SC_USER及びMDO_SC_TERMINALの両フラグがセットされる。
アプリケーションプログラムのビヘイビアレベルは、検出されたマルウェアを含むアプリケーションデータの処置方法を指定する。テーブル#21は、ビヘイビアレベル値と、アプリケーションプログラムによる対応アクションとをリストする。
テーブル#21
Figure 0004597973
スキャンされたアプリケーションデータに多数の不正コードが見つかったときには、コールしたアプリケーションプログラムは、最も高いビヘイビアレベルでアクションすることが期待される。例えば、MDO_BC_LEVEL0及びMDO_BC_LEVEL3の両方がレポートされる場合には、アプリケーションプログラムは、MDO_BC_LEVEL3のアクションをとることができる。
図15は、スキャニングサブシステムによるスキャニングのタイミングが、図13の変数により特定されたデータ形式のファンクションにつれて変化する態様を示すチャート1500である。
シグネチャーデータベース更新
先に述べたように、更新プロセスは、移動通信フレームワークに固有の限定帯域巾に適応するようにストリームライン化されてもよい。これを達成する種々の方法に関するより多くの情報を以下に示す。
更新されたコンポーネント
MDoScanUpdateファンクションは、2つのコンポーネント[即ち、不正コード検出ロジック(mdo.pd)及びシグネチャーデータベース(mdo.sdb)]に更新サービスを提供する。一つのコンポーネント(即ち、mdo.pd)は、検出ロジックを含んでいて、新たなバージョンが使用できるときに完全に更新されてもよい。別のコンポーネント(即ち、mdo.sdb)は、n個の以前のバージョンまで増分的に更新されてもよい。第2のコンポーネントに対する完全な更新は、nより古いバージョンをもつ移動通信装置において実行することができる。例えば、nが5にセットされ、最新バージョンが20である場合には、15より古いバージョンをもつ移動通信装置において完全な更新が実行される。
ユーザインターフェイスを介したアクチベーション
図16は、一実施形態に係るものであり、ユーザインターフェイスにより更新がどのように開始されるかを示す例示的フロー1600を示す。図示されたように、ウイルスパターンの更新は、移動通信装置のユーザがユーザインターフェイス1602を介してメニューエントリーを選択することにより開始できる。ユーザが更新メニューを選択すると、更新アプリケーション1604がアクチベートされ、適切な更新インターフェイスファンクション1606を介してバックエンドサーバーに接続する。
通信プロトコル
更新ライブラリーは、HTTPプロトコルを介してバックエンドサーバーと通信することができる。
更新プロセス
図17は、一実施形態に係るものであり、移動通信装置のスキャニングサブシステムを効率的に更新するための方法1700を示す。一実施形態において、この方法1700は、図3のアーキテクチャー300のアプリケーションプログラム、スキャニングサブシステム及びオペレーティングシステム、並びに図1及び2のシステムの状況で実施することができる。しかしながら、この方法1700は、所望のいかなる状況において実施されてもよいことに注意されたい。
プロセスを開始するために、更新の要求を少なくとも1つの移動通信装置からバックエンドサーバーへ送信することができる。当然ながら、他の実施形態では、要求を伴わずに更新を送信してもよい。
一実施形態では、更新は、要求データ構造体を使用して移動通信装置により要求される。任意であるが、このようなデータ構造体は、ユニホームリソースロケータ(URL)変数、移動通信識別子変数、アプリケーションプログラムインターフェイスのバージョン変数、検出ロジック変数、シグネチャーバージョン変数、及び/又は部分番号変数のような変数を含むことができる。
テーブル#22は、このような目的で使用することのできる例示的URLを示す。
テーブル#22
<BASE-URL>?dev=<DEV-ID>&mdo=<MDO-VER>&eng=<ENG-VER>&sdb=<SDB-VER>&chk=<CHUNK>

上述のURL変数を説明するテーブルは、次の通りである。
Figure 0004597973
テーブル#23は、上記説明に合致するURLの特定例である。
テーブル#23
http://update.mcafeeacsa.com/504i?dev=X504i05&mdo=2&eng=3&sdb=56&chk=1
テーブル#23の上記URLは、ベースURL「http://update.mcafeeacsa.com/504i」、装置識別子として「X504i05」、APIのバージョン2、不正コード検出ロジックのバージョン3、及びシグネチャーデータベースのバージョン56を指定している。「chunk」又は部分、番号は、移動通信装置がバックエンドサーバーに最初にコンタクトするときに1にセットできることに注意されたい。また、ベースURLは、「UpdateURL」コンフィギュレーション変数を使用し、MDoConfigGetAPIを使用して得ることができる。
要求を受け取った後に、バックエンドサーバーは、記憶された不正コード検出ロジック及びシグネチャーデータベースのバージョンを、URLでエンコードされたバージョン情報と比較することにより、どの更新パッケージをダウンロードする必要があるのかを決定する。
更新が必要とされない場合には、バックエンドは、コンテンツなし応答を返す。オペレーション1701において、移動通信装置は、その応答を第1部分として受け取る。この第1部分が先述のコンテンツなし応答を含むと判断される場合には(判断1702を参照)、ダウンロードすべき更新がないので、方法1700は終了となる。このような特徴は、移動通信フレームワークに固有の限定帯域巾に適応する点で有益である。
一方、更新パッケージの第1部分がリターンされる場合には、方法1700は、更新の第1部分の受信に続いて(又はおそらくそれと並列に)更新の付加的な部分を受信することにより続けられる。オペレーション1704−1708に注意されたい。また、第1部分は、全パッケージサイズ及び部分カウント情報を付随してもよいことに注意されたい。
残りの更新部分をダウンロードするために、ダウンロードURLの部分番号を変更することができる。テーブル#24は、部分番号「3」を指定するURLの特定例を示す。
テーブル#24
http://update.mcafeeacsa.com/504i?dev=X504i05&mdo=2&eng=3&sdb=56&chk=3
一実施形態では、更新の完全性が判断されてもよい。従って、更新は、更新の完全性が検証されたかどうかに基づいて、スキャニングサブシステムに条件付きでインストールされてもよい。
オプションとして、更新の完全性が、シグネチャーを使用して判断されてもよい。このようなシグネチャーは、更新の部分の一つ(即ち、最後の部分)として受け取られてもよい。次いで、シグネチャーは、更新の部分の各々を使用して生成される別のシグネチャーに対して比較されてもよい。オペレーション1710に注意されたい。
一実施形態では、シグネチャーは、RSAプライベートキーを使用して生成され、次いで、移動通信装置において、更新に含まれている対応のパブリックキーを使用して認証されてもよい。シグネチャーの検証及び生成は、更に、指定の認証ライブラリーを使用して実行されてもよい。
完全性が検証されたものとすると、スキャニングサブシステムにより実行されるスキャニングが休止又は停止される。オペレーション1712に注意されたい。このような休止は任意であることに注意されたい。
次いで、更新をスキャニングサブシステムにインストールすることができる。オペレーション1714に注意されたい。スキャニングが休止される実施形態では、更新がスキャニングサブシステムにインストールされたときに、スキャニングサブシステムを使用して、スキャニングをその後に再開することができる。オペレーション1716を参照されたい。
移動通信フレームワークに固有の限定帯域巾に適応するために、更新の部分のサイズを最小にすることができる。更に、更新の部分を圧縮することもできる。
更に別の実施形態では、更新の各部分のフォーマットは、移動通信フレームワークに固有の限定帯域巾に適応するように設計することができる。このようなフォーマットに関する更なる情報を以下に示す。
テーブル#25は、更新の部分をダウンロードするための例示的フォーマットを示す。
テーブル#25
Figure 0004597973
テーブル#25に示す上記部分の各々は、次のテーブル#26のように定義される。
テーブル#26
Figure 0004597973
各部分は、ヘッダ及びデータで構成されている。このようなヘッダは、更新の関連部分の識別子、更新の関連部分の長さ、等を指示することができる。更に、ヘッダは、含まれているデータ名及びデータ長を指定すると共に、特別のCR+LF対をもつ実際のデータから分離することができる。テーブル#27は、ヘッダに関連した例示的データ/コンテンツ名を示す。
テーブル#27
Figure 0004597973
テーブル#28は、例示的な更新パッケージを示す。
テーブル#28
Figure 0004597973
抽象ライブラリーAPI
先に述べたように、移動通信装置に使用するためのプラットホーム独立システム及びそれに関連した方法が提供される。スキャニングの目的で移動通信装置のオペレーティングシステムと通信するプラットホーム独立のスキャニングサブシステムが含まれる。更に、オペレーティングシステム及びスキャニングサブシステムに接続するためのプラットホーム独立のアプリケーションプログラムインターフェイスも設けられる。このプラットホーム独立のアプリケーションプログラムインターフェイスは、プラットホーム独立のスキャニングサブシステムを、移動通信装置及びそれに関連したオペレーティングシステムにポーティングするための抽象ライブラリーを含む。
この設計により、スキャニングサブシステムは、プラットホーム独立であることができ、従って、いかなる形式のオペレーティングシステム/移動通信装置の組合せにおいても実施することができる。
一実施形態では、抽象ライブラリーは、システム初期化、ライブラリー初期化、エラーファンクション、メモリ割り当て、入力/出力(I/O)、データ認証、同期、ハイパーテキスト転送プロトコル、共有メモリ、システム時間、装置情報、及びデバッグをサポートすることができる。前記アプリケーションプログラムインターフェイスの1つの任意の実施に関連した更なる例示的情報を添付資料Aに示す。
以上、種々の実施形態を説明したが、それらは、一例に過ぎず、それらに何ら限定されるものではないことを理解されたい。従って、好ましい実施形態の広さ及び範囲は、上述した実施形態のいずれにも限定されず、特許請求の範囲及びその均等物によってのみ定義されるべきである。
添付資料A
このアプリケーションプログラムインターフェイス(API)は、次のサブシステムを含む。
・システム初期化
・ライブラリー初期化
・エラーファンクション
・ヒープメモリ割り当て
・持続的メモリ/記憶装置I/O
・データ認証
・同期オブジェクト(セマフォ)
・HTTP API
・共有メモリ
・システム時間
・装置情報
・デバッグ
また、この添付資料には、APIライブラリーに使用するための抽象ライブラリー(AL)レイヤーで定義ざれたC言語定義(1つ又は複数)のセットも説明されている。
システム初期化
プラットホーム/システムに依存するブート初期化は、AlLibrarySysInit()により実行される。このファンクションは、先に述べたMDoSystemInit()ファンクションからコールされるように設計されている。
AlLibrarySysInit
説明
システムに依存する初期化を実行する。

プロトタイプ
intAlLibrarySysInit(void);

パラメータ
なし

リターン値
成功の場合0、他の場合は−1。
ライブラリー初期化
このプラットホームの抽象APIライブラリーは、AlInitLibrary()ファンクションを使用して初期化される。この抽象ライブラリーは、抽象APIファンクションがコールされる前に一度初期化されるべきである。AlInitLibrary()により得られて初期化されるシステムリソースは、AlCleanupLibrary()ファンクションがコールされるときにリリースされる。
AlInitLibrary
説明
ライブラリー初期化を実行する。このファクションは、MDoLibraryOpen()ファンクションによりコールされる。

プロトタイプ
intAlInitLibrary(void);

パラメータ
なし

リターン値
成功の場合0、他の場合は−1。
AlCreanupLibrary
説明
AlInitLibrary()ファンクションにより得られたシステムリソースをリリースする。このファンクションは、先に述べたMDoLibraryClose()ファンクションによりコールされる。

プロトタイプ
voidAlCleanupLibrary(void);

パラメータ
なし

リターン値
なし
エラーファンクション
ALライブラリーは、タスク/スレッド特有のエラーコードをセット及び検索するのに使用されるエラーファンクションのセットが含まれている。これは、適当なエラーコード及びコンポーネントコードをセットするのは、抽象レイヤーインプリメンターの役割である。
AlGetLastError
説明
コーリングタスク/スレッドの最新のエラーコード値を返す。これらファンクションは、AlSetLastError()ファンクションを使用して、返された値をセットする。

AlErrorCodeデータ形式は、32ビットの非符号化値を使用して内的に表される。

プロトタイプ
AlErrorCode AlGetLastError(void);

パラメータ
なし

リターン値
AlSetLastError()ファンクションを使用してセットされたコーリングスレッド/タスクの最新のエラー値。
AlSetLastError
説明
コーリングスレッド/タスクに対する最新のエラーコードをセットする。

プロトタイプ
voidAlSetLastError(AlErrorCode errorCode);

パラメータ
errorCode
[入力] 32ビットのエラーコード値。

リターン値
なし
エラー/状態コード
Figure 0004597973
上記テーブルは、ALコンポーネント及びエラーコードのセットをリストする。AlSetLastErrorファンクションを使用してレポートされたエラーは、コンポーネントコードをエラーコードに結合することにより形成された32ビット値である。ALレベルにセットされたエラーは、エラーが発生したときに適当なアクションを取るためにMDoGetLastErrorファンクションを使用して検索される。
ヒープメモリ割り当て
抽象レイヤーは、必要なメモリを動的に割り当てるために、コールしたアプリケーションプログラム(即ち「呼出元」)に対するヒープメモリ割り当てを提供する。割り当てられたメモリは、グローバルに共有可能で、多数のアプリケーション/タスクによりアクセスできるものと仮定されている。AlMemAlloc()及びAlMemFree()APIファンクションは、ヒープメモリの割り当て及び割り当て解除を提供する。
Figure 0004597973
AlMemAlloc
説明
指定量の動的メモリを割り当て、そのメモリに対するポインタを返す。割り当てられたメモリブロックは、特殊なオペレーション(即ちメモリのロック)を必要とせず、呼出元(即ちコールしたアプリケーションプログラム)による直接のアクセスが可能である。

プロトタイプ
void*AlMemAlloc(unsigned int uSize);

パラメータ
uSize
[入力] 割り当てるメモリのバイトでの量。

リターン値
割り当てられたメモリに対するポインタ。要求が失敗に終わるか又は要求のサイズが0である場合には、NULL。

AlMemFree()も参照のこと。
AlMemFree
説明
AlMemAlloc()ファンクションによってリターンされた動的メモリブロックを解放する。

プロトタイプ
void AlMemFree(void*pData);

パラメータ
pData
[入力] 開放すべきメモリブロックへのポインタ。

リターン値
なし

AlMemAlloc()も参照のこと。
持続記憶装置I/O
持続的記憶装置(即ちフラッシュメモリ)へのアクセスは、ファイルI/O APIを使用して実行される。以下を参照されたい。
Figure 0004597973
ファイルハンドル形式AL_FILE_HANDLEは、次のように定義される。
typedef struct AL_FILE_HANDLE_struct
{
} *AL_FILE_HANDLE;
そして、無効の持続的記憶ハンドルINVALID_AL_FILE_HANDLEを指定するのに使用される定数は、次のように定義される。
#define INVALID_AL_FILE_HANDLE((AL_FILE_HANDLE)0)
ファイル状態バッファ形式AlStatBufは、次のように定義される。
typedef struct AlStatBuf_struct
{
unsigned long ulSize;
unsigned long ulTime;
} AlStatBuf;
AlFileOpen
説明
指定のファイルをオープンし、そのハンドルを返す。

プロトタイプ
AL_FILE_HANDLEAlFileOpen(const char* pszFilename,
Int iMode);

パラメータ
pszFilename
[入力] ファイル名/パスのストリング.
iMode
[入力] ファイルのアクセスモード.
AL_OPEN_READ 読み取りのためのファイルオープン
AL_OPEN_WRITE 読み取り及び書き込みの両方のためのファイルオープン

リターン値
成功の場合はファイルハンドル、他の場合はINVALID_AL_FILE_HANDLE

AlFileClose()、AlFileRead()、AlFileWrite()も参照のこと。
AlFileClose
説明
指定のファイルハンドルに関連したシステムリソースをクローズし、リリースする。

プロトタイプ
VoidAlFileClose(AL_FILE_HANDLE hFile);

パラメータ
hFile
[入力] AlFileOpen()によって返されたファイルハンドル。

リターン値
なし

AlFileOpen()、AlFileRead()、AlFileWrite()も参照のこと。
AlFileSeek
説明
リード/ライトファイルオフセットを再配置する。

プロトタイプ
longAlFileSeek(AL_FILE_HANDLE hFile,
Long lOffset,
Int iWhence);

パラメータ
hFile
[入力] オープンファイルのハンドル。
lOffset
[入力] iWhence directiveに関連するファイルオフセット。
iWhence
[入力] 初期位置。とり得る値は次の通りである。
AL_SEEK_SET オフセットパラメータは絶対的ファイルオフセットを指定する。
換言すれば、ファイルの開始からのオフセット。
AL_SEEK_CUR 相対的オフセットを指定し、即ちオフセットパラメータは現在ファ イルからのファイルオフセットを指定する。
AL_SEEK_END ファイルの終わりからのファイルオフセットを指定する。

リターン値
成功の場合は得られたファイルオフセット、他の場合は−1L。

AlFileOpen()、AlFileClose()、AlFileRead()、AlFileWrite()も参照のこと。
AlFileRead
説明
ファイルからデータのブロックを読み取る。

プロトタイプ
Unsigned intAlFileRead(AL_FILE_HANDLE hFile,
void* pBuffer,
Unsigned int uSize);

パラメータ
hFile
[入力] オープンファイルのハンドル。
pBuffer
[出力] データバッファ
uSize
[出力] 読み込むデータ量。

リターン値
成功の場合は読み取ったバイト数、他の場合は−1。

AlFileOpen()、AlFileClose()、AlFileSeek()、AlFileWrite()も参照のこと。
AlFileWrite
説明
データのブロックをファイルに書き込む。

プロトタイプ
unsigned int AlFileWrite(AL_FILE_HANDLEhFile,
void const* pBuffer,
unsigned int uSize );

パラメータ
hFile
[入力] オープンファイルのハンドル
pBuffer
[int] 書き込むデータを保持しているバッファ。
uSize
[出力] 書き込むデータの量。

リターン値
成功の場合は書き込まれたデータの量、他の場合は−1。

AlFileOpen()、AlFileClose()、AlFileSeek()、AlFileRead()も参照のこと。
AlFileSetSize
説明
オープンファイルをリサイズする。

ネイティブのファイルリサイズのサポートをもたないプラットホームについては、抽象ライブラリーは、AlFileClose()ファンクションがコールされたときに各ファイルの始めに記憶されたサイズ情報を変更することにより、このファンクションを実施する。

プロトタイプ
unsigned intAlFileSetSize(AL_FILE_HANDLE hFile,
unsigned int uSize );

パラメータ
hFile
[入力] ライトモードでオープンファイルを指すハンドル。
uSize
[出力] バイトでの新たなファイル長。

リターン値
成功の場合は0、他の場合は−1。

AlFileStat()も参照のこと。
AlFileStat
説明
ファイルサイズの検索及びタイムスタンプの生成。
ネイティブのファイルサイズ及び/又はタイムスタンプ情報の検索方法を備えていないプラットホームについては、抽象ライブラリーは、各ファイルの始めに情報を記憶することによりこのファンクションを実施する。

プロトタイプ
int AlFileStat(charconst* pszFilenames,
AlStatBuf* pStat );

パラメータ
pszFilename
[入力] 情報を検索するファイルの名称。
pStat
[出力] サイズ及びタイムスタンプを返すのに使用される構造体へのポインタ。この構造体は、次のフィールドを含む。

typedef structureAlStatBuf_struct
{
unsigned long ulSize; /* size in bytes */
unsigned long ulTime; /* creation time */
} AlStatBuf;

リターン値
成功の場合0、他の場合は−1。
データ認証
プラットホーム抽象APIには、データを認証するためのファンクションのセットが含まれている。データ認証APIは、ダウンロードされたマルウェアシグネチャーデータベースを検証するのに使用される。
呼出元がAlDaOpenファンクションを使用して認証オブジェクトハンドルを得ると、供給されたデータを検証するためにAlDaVerifyへのコールがなされる。
AlDaGetSignerInfo()は、署名者情報を検索するのに使用される。AlDaClose()は、データ認証ハンドル及びそれに関連したシステムリソースをクローズ及びリリースするのに使用される。
例示的なデータ認証APIを以下に示す。
Figure 0004597973
AlDaOpen()ファンクションによって返されたデータ認証ハンドルは、次のように定義される。

ALHANDLE(AL_DA_HANDLE);
#defineINVALID_AL_DA_HANDLE ((AL_DA_HANDLE) 0)
署名者情報構造は、次のように定義される。

#defineMAX_DA_SIGNER_NAME 128
typedef structDaSignerInfo_struct
{
char szSignerName[MAX_DA_SIGNER_NAME];
} DaSignerInfo;
AlDaOpen
説明
データ認証ハンドルを生成し、返す。

プロトタイプ
AL_DA_HANDLEAlDaOpen(const void* pSig,
unsigned int uSize );

パラメータ
pSig
[入力] シグネチャーデータへのポインタ。
uSigSize
[入力] バイトでのシグネチャーサイズ。

リターン値
成功の場合はデータ認証ハンドル、他の場合はNVALID_AL_DA_HANDLE。

AlDaClose()、AlDaUpdata()、AlDaVerify()、AlDaGetSignerInfo()も参照のこと。
AlDaClose
説明
データ認証ハンドルに対して使用されるシステムリソースをリリースする。

プロトタイプ
voidAlDaClose(AL_DA_HANDLE hDa );

パラメータ
hDa
[入力] AlDaOpenによって返されるデータ認証ハンドル。

リターン値
なし

AlDaOpen()、AlDaUpdata()、AlDaVerify()、AlDaGetSignerInfo()も参照のこと。
AlDaVerify
説明
データ認証を行う。

プロトタイプ
intAlDaVerify(AL_DA_HANDLE hDa,
int (*pfRead)(void*,void*,int),
int iTotalSize,
void *pPrivate);

パラメータ
hDa
[入力] データ認証ハンドル。
pfRead
[入力] データの読み取り(参照)に使用する呼出元のコールバックファンクション。エラーの場合は、−1とし、読み取るべきデータがそれ以上ない場合は0とし、他の場合は、読み取られてAlDaVerifyファンクションへ返されたデータの量とする。ファンクションは何回もコールされることが予想される。
iTotalSize
[入力] 検証されるべき全データサイズ。
pPrivate
[入力] pfReadのコールバックによって渡されるべき呼出元のプライベートデータ。

リターン値
アプリケーションデータが認証された場合は0、他の場合は−1。

AlDaOpen()、AlDaClose()、AlDaGetSignerInfo()も参照のこと。
サンプルデータ読み取りコールバックファンクションは、次の通りである。
Figure 0004597973
AlDaGetSignerInfo
説明
データ認証署名者情報を検索する。

プロトタイプ
intAlDaGetSignerInfo(AL_DA_HANDLE hDA,
DaSignerInfo*pDSI);

パラメータ
hDa
[入力] データ認証ハンドル。
pDSI
[出力] 署名者情報を含む構造体へのポインタ。

リターン値
署名者情報の取得が成功した場合には0、他の場合には−1。

AlDaOpen()、AlDaClose()、AlDaVerify()も参照のこと。
同期オブジェクト
リソースの同期及び制御は、セマフォを使用して行われる。抽象ライブラリーには、セマフォオブジェクトを生成し、オープンし、クローズし、そして変更するためのファンクションのセットが含まれている。例示的なセマフォAPIは次の通りである。
Figure 0004597973
AlSemCreate
説明
命名されたセマフォを生成し、内部カウンターを0にセットしそのハンドルを返す。

プロトタイプ
AL_SEM_HANDLEAlSemCreate(char const* pszName );

パラメータ
pszName
[入力] セマフォ名のストリング。

リターン値
成功の場合はセマフォハンドル、他の場合はINVALID_AL_SEM_HANDLE。

AlSemOpen()、AlSemClose()、AlSemGet()、AlSemRelease()も参照のこと。
AlSemOpen
説明
既存のセマフォへのハンドルを返す。

プロトタイプ
AL_SEM_HANDLEAlSemOpen(char const* pszName );

パラメータ
pszName
[入力] セマフォ名。

リターン値
成功の場合はセマフォハンドル、他の場合はINVALID_AL_SEM_HANDLE。

AlSemCreate()、AlSemClose()、AlSemGet()、AlSemRelease()も参照のこと。
AlSemClose
説明
システムリソース関連の指定のセマフォハンドルをクローズし、リリースする。
セマフォ使用/参照カウントも減少され、参照されたセマフォオブジェクトはカウントが0になった場合に破棄される。

プロトタイプ
voidAlSemClose(AL_SEM_HANDLE hSem);

パラメータ
hSem
[入力] AlSemCreate() 又は AlSemOpen()を用いて得たセマフォハンドル。

リターン値
なし

AlSemCreate()、AlSemOpen()、AlSemGet()、AlSemRelease()も参照のこと。
AlSemGet
説明
指定のセマフォを取得する。内部カウンターがエントリーにおいて0より大きい場合には、それを1だけ減少して直ちに返す。内部カウンターがエントリーにおいて0である場合には、他のタスク/スレッドがAlSemRelease()をコールして0より大きくするまで、コールが阻止される。

プロトタイプ
intAlSemGet(AL_SEM_HANDLE hSem);

パラメータ
hSem
[入力] セマフォハンドル。

リターン値
成功の場合は0、他の場合は−1。

AlSemCreate()、AlSemOpen()、AlSemClose()、AlSemRelease()も参照のこと。
AlSemRelease
説明
セマフォをリリースし、内部カウンターを1だけ増加する。

プロトタイプ
int AlSemRelease(AL_SEM_HANDLEhSem);

パラメータ
hSem
[入力] セマフォハンドル。

リターン値
成功の場合は0、他の場合は−1。

AlSemCreate()、AlSemOpen()、AlSemClose()、AlSemGet()も参照のこと。
HTTP API
抽象ライブラリーには、呼出元が提供したコールバック構造体を使用してHTTPネットワークI/Oを提供するファンクションのセットが含まれている。例示的HTTP APIを以下に示す。
Figure 0004597973
AlHttpOpen()ファンクションによりリターンされるHTTPハンドルは、次のように定義される。
typedef structAL_HTTP_HANDLE_struct
{
} *AL_HTTP_HANDLE;
#defineINVALID_AL_HTTP_HANDLE ((AL_HTTP_HANDLE)0)
HTTPコールバック構造体は、次のように定義される。
typedef structAlHttpCallbacks_struct
{
unsigned int (* pWrite) (void* pPrivate,
void const* pData,
unsigned int uSize);
unsigned int (* pRead) (void* pPrivate.
Void* pData,
unsignedint uSize);
unsigned int (* pGetSize) (void* pPrivate);
unsigned int (* pSetSize) (void* pPrivate,
unsigned int uSize);
} AlHttpCallbacks;
上記HTTPコールバック構造体で与えられるコールバックファンクションは、次の機能を提供する。
pWrite 到来するHTTP要求データを記憶するためにシステムHTTPライブラ
リーによりコールされる。
pRead HTTP要求の一部として送信されるべきアプリケーションデータを検索
するのに使用される。
pGetSize アプリケーションのコンテンツデータサイズ「Content-Length」をHTT
Pライブラリーに提供する。
pSetSize 到来するコンテンツデータ長さが得られるときにそれをコーリングアプリ
ケーションに知らせるためにHTTPライブラリーによりコールされる
AlHttpOpen
説明
ハンドルを生成して、HTTPライブラリーへ返す。

プロトタイプ
AL_HTTP_HANDLE_AlHttpOpen(void);

パラメータ
なし

リターン値
HTTPのインスタンス生成に失敗した場合には、INVALID_AL_HTTP_HANDLEが返される。

AlHttpClose()も参照のこと。
AlHttpClose
説明
HTTPハンドルに関連したシステムリソースをクローズし、リリースする。

プロトタイプ
voidAlHttpClose(AL_HTTP_HANDLE hHTTP);

パラメータ
hHTTP
[入力] AlHttpOpen()ファンクションによって返されるHTTPライブラリのハンドル。

リターン値
なし

AlHttpClose()も参照のこと。
AlHttpExec
説明
指定のURLにおいて任意のヘッダ情報を用いてHTTPメソッド(「GET」又は「POST」)を実行する。

プロトタイプ
intAlHttpExec(AL_HTTP_HANDLE hHTTP,
char const* pszMethod,
char const* pszURL,
AlHttpCallbacks* pHttpCb,
void* pPrivate );

パラメータ
hHTTP
[入力] AlHttpOpen()関数によって返されるHTTPライブラリのハンドル。
pszMethod
[入力] HTTPメソッドの指定。HTTP “GET” または “POST”。
pszURL
[入力] HTTPリクエストがなされるULR。
pHttpCb
[入力] 呼出元指定のHTTP I/Oファンクションのセットへのポインタ。
HTTPライブラリーは、データI/Oに対してAlHttpCallbacksで指定された
ファンクションを使用する
pPrivate
[入力/出力] AlHttpCallbacksにおいて指定されたコールバックファンクションへ返却されるべき呼出元データへのポインタ。

リターン値
成功の場合は0、他の場合は−1。

ALHttpOpen()、AlHttpClose()も参照のこと。
共有メモリ
ライブラリーの共有オブジェクトが記憶されるシステムメモリの位置は、AlShmAddress()ファンクションを使用して取得される。この共有情報エリアは、装置のブート時に割り当てられ/準備され、ライブラリーの異なるインスタンスにより参照される。
AlSemAddress
説明
共有メモリアドレスを返す。

プロトタイプ
void*AlSemAddress(void);

パラメータ
なし

リターン値
成功の場合は共有メモリアドレス、他の場合はNULL。
Time
AlTmGetCurrent()は、呼出元に現在システム時間を秒で与える。
AlTmGetCurrent
説明
現在システム時間を得る。

プロトタイプ
unsigned longAlTmGetCurrent(void);

パラメータ
なし

リターン値
成功のときは、エポック(1970年1月1日の00:00:00)以来の時間(秒で)。エラーのときは、((unsigned long) -1L)を返す。
装置情報
AlDevGetInfo
説明
装置の特定情報を検索する。このファンクションにより返される装置識別ストリングは、APIにより使用される。

プロトタイプ
intAlDevGetInfo(AlDeviceInfo* pDeviceInfo );

パラメータ
pDeviceInfo
[出力] デバイス情報へのポインタ。

AlDeviceInfoは、次のように定義される。

#defineAL_MAX_DEVICE_ID 32
typedef structAlDeviceInfo_struct
{
charszDeviceID[AL_MAX_DEVICE_ID];
} AlDeviceInfo;

識別ストリングszDeviceIDは、特定の移動通信装置を全ての他のものからユニークに特定するのに使用されるユニークなターミナル/装置識別子である。この情報は、移動通信装置に対してマルウェアシグネチャーダウンロードURLを構成するのに使用される。これは、URLで許されないキャラクタ(即ち、ホワイトスペース)を含んではならない。

リターン値
成功の場合は0、失敗の場合は−1。
デバッグ
AlDbgOutput
説明
デバッグストリングをデバッグコンソールへ出力する。このファンクションは、リリースビルドに対するナルファンクションである。

プロトタイプ
int AlDbgOutput(charconst* pszOutput);

パラメータ
pszOutput
[入力] デバッグコンソールに出力するストリング。

リターン値
成功の場合は0、失敗の場合は−1。
アプリケーション及びスキャナが分離状態でオペレーティングシステムに接続している従来のフレームワークを示す図である。 一実施形態に係る移動通信フレームワークを示す図である。 別の実施形態に係る移動通信フレームワークを示す図である。 一実施形態に係る移動通信装置に関連するアーキテクチャーを示す図である。 一実施形態に係るものであり、動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのシステムを示す図である。 図4のシステムのアプリケーションサーバーの実施形態に係るものであり、移動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのフレームワークを示す図である。 図4のシステムの再入可能ライブラリーの実施形態に係るものであり、移動通信装置を使用してセキュリティ又はコンテンツ分析機能にアクセスするためのフレームワークを示す図である。 図4のシステムの状況において実施されたオンデマンドのスキャニングシステムを示す図である。 一実施形態に係るものであり、移動アプリケーションプログラム及びスキャニングサブシステムをインターフェイスするのに使用できるアプリケーションプログラムインターフェイス(API)の種々のコンポーネントの階層を示す図である。 ライブラリーインターフェイス初期化を例示する図である。 一実施形態に係るエラーコードファンクションのフォーマットを例示する図である。 一実施形態に係るスキャニングサブシステムAPIコールシーケンスを示す図である。 一実施形態に係るコンフィギュレーションAPIコールシーケンスの一例を示す図である。 アプリケーションプログラムがAPIを介してスキャニングサブシステムに通信することのできる種々のスキャンデータ形式を例示する図である。 一実施形態に係るものであり、マルウェア重大度フラグ及びアプリケーションプログラムのビヘイビアレベルを含むビットフィールド変数を示す図である。 スキャニングサブシステムによるスキャニングのタイミングが、図13の変数によって特定されるデータ形式のファンクションにつれてどのように変化するか示すチャートである。 一実施形態に係るものであり、ユーザインターフェイスにより更新がどのように開始されるか示すフローを例示する図である。 一実施形態に係るものであり、移動通信装置のスキャニングサブシステムを効率的に更新するための方法を示す図である。

Claims (12)

  1. プロセッサと、
    メモリと、
    前記メモリにインストールされたオペレーティングシステムと、
    前記メモリにインストールされたアプリケーションプログラムであって、前記プロセッサに、前記アプリケーションプログラムに従ったタスクを実行させる、該アプリケーションプログラムと、
    前記メモリに格納されたスキャニングプログラムであって、前記プロセッサに、前記タスクで使用されるアプリケーションデータをスキャニングさせ、該スキャニングは、前記アプリケーションデータが前記メモリに記憶されたウイルスシグネチャデータベースに含まれるウイルスシグネチャを含むか否かをチェックすることを含む、該スキャニングプログラムと、
    を備え、
    前記アプリケーションプログラムは、メールアプリケーションプログラム、ブラウザアプリケーションプログラム、電話帳アプリケーションプログラム、メッセージアプリケーションプログラム、及び、Java(登録商標)アプリケーションプログラムの何れかを含み、前記タスクは、電子メールの管理、ネットワークのブラウジング、複数の電話番号の管理、及び、メッセージの伝送の何れかを含み、
    前記アプリケーションプログラムが、前記スキャニングプログラムのアプリケーションプログラムインターフェイスを介して、前記アプリケーションデータの情報を該アプリケーションプログラムから前記スキャニングブプログラムへ伝送しつつ、前記スキャニングプログラムを呼び出し、
    前記情報は、不当なコードが検出された場合の前記スキャニングプログラムのアクションを規定するアクション形式、前記アプリケーションデータのデータ形式、前記アプリケーションデータへのデータポインタ、前記アプリケーションプログラムから前記アプリケーションデータのバイトでのデータサイズを取得するための第1の関数、前記アプリケーションプログラムに前記アプリケーションデータのリサイズを要求するための第2の関数、及び、前記スキャニングプログラムによって使用される第3の関数であって前記アプリケーションプログラムから指定量の前記アプリケーションデータを取得するための該第3の関数、を含む、
    移動通信装置。
  2. 前記移動通信装置はセルラー電話を含む、請求項1に記載の移動通信装置。
  3. 前記スキャニングプログラムは再入可能ライブラリーを含む、請求項1に記載の移動通信装置。
  4. 前記スキャニングプログラムは、実行時に前記アプリケーションプログラムにリンクされる、請求項3に記載の移動通信装置。
  5. 前記アプリケーションプログラムインターフェイスは、前記スキャニングプログラム及び前記シグネチャデータベースのバージョン状態情報を検索することが可能である、請求項1に記載の移動通信装置。
  6. 前記アプリケーションプログラムインターフェイスは、前記スキャニングプログラム及び前記シグネチャデータベースを更新することが可能である、請求項1に記載の移動通信装置。
  7. 前記アプリケーションプログラムインターフェイスは、オープンコールを含む、請求項1に記載の移動通信装置。
  8. 前記アプリケーションプログラムインターフェイスは、データコールを含む、請求項1に記載の移動通信装置。
  9. 前記アプリケーションプログラムインターフェイスは、クローズコールを含む、請求項1に記載の移動通信装置。
  10. 前記アプリケーションプログラムインターフェイスは、複数のアプリケーションプログラムのそれぞれに設けられる、請求項1に記載の移動通信装置。
  11. 該移動通信装置のメモリにインストールされたアプリケーションプログラムを実行する移動通信装置のプロセッサが、該アプリケーションプログラムに従ったタスクを実行するステップと、
    前記メモリにインストールされたスキャニングプログラムを実行する前記プロセッサが、前記タスクで使用されるアプリケーションデータをスキャニングするステップであって、該スキャニングは、前記アプリケーションデータが前記メモリに記憶されたウイルスシグネチャデータベースに含まれるウイルスシグネチャを含むか否かをチェックすることを含む、該ステップと、
    を備え、
    前記アプリケーションプログラムは、メールアプリケーションプログラム、ブラウザアプリケーションプログラム、電話帳アプリケーションプログラム、メッセージアプリケーションプログラム、及び、Java(登録商標)アプリケーションプログラムの何れかを含み、前記タスクは、電子メールの管理、ネットワークのブラウジング、複数の電話番号の管理、及び、メッセージの伝送の何れかを含み、
    前記アプリケーションプログラムが、前記スキャニングプログラムのアプリケーションプログラムインターフェイスを介して、前記アプリケーションデータの情報を該アプリケーションプログラムから前記スキャニングブプログラムへ伝送しつつ、前記スキャニングプログラムを呼び出し、
    前記情報は、不当なコードが検出された場合の前記スキャニングプログラムのアクションを規定するアクション形式、前記アプリケーションデータのデータ形式、前記アプリケーションデータへのデータポインタ、前記アプリケーションプログラムから前記アプリケーションデータのバイトでのデータサイズを取得するための第1の関数、前記アプリケーションプログラムに前記アプリケーションデータのリサイズを要求するための第2の関数、及び、前記スキャニングプログラムによって使用される第3の関数であって前記アプリケーションプログラムから指定量の前記アプリケーションデータを取得するための該第3の関数、を含む、
    方法。
  12. 移動通信装置で使用されるコンピュータプログラムであって、
    前記移動通信装置のメモリにインストールされたオペレーティングシステムと、
    前記メモリにインストールされたアプリケーションプログラムであって、前記プロセッサに、前記アプリケーションプログラムに従ったタスクを実行させる、アプリケーションプログラムと、
    前記メモリに格納されたスキャニングプログラムであって、前記プロセッサに、前記タスクで使用されるアプリケーションデータをスキャニングさせ、該スキャニングは、前記アプリケーションデータが前記メモリに記憶されたウイルスシグネチャデータベースに含まれるウイルスシグネチャを含むか否かをチェックすることを含む、該スキャニングプログラムと、
    を備え、
    前記アプリケーションプログラムは、メールアプリケーションプログラム、ブラウザアプリケーションプログラム、電話帳アプリケーションプログラム、メッセージアプリケーションプログラム、及び、Java(登録商標)アプリケーションプログラムの何れかを含み、前記タスクは、電子メールの管理、ネットワークのブラウジング、複数の電話番号の管理、及び、メッセージの伝送の何れかを含み、
    前記コンピュータプログラムは、
    前記アプリケーションプログラムに従ったタスクを実行するステップと、
    前記スキャニングプログラムのアプリケーションプログラムインターフェイスを介して、前記アプリケーションデータの情報を前記アプリケーションプログラムから前記スキャニングブプログラムへ伝送しつつ、前記アプリケーションプログラムから前記スキャニングプログラムを呼び出すステップと
    を前記移動通信装置に実行させ、
    前記情報は、不当なコードが検出された場合の前記スキャニングプログラムのアクションを規定するアクション形式、前記アプリケーションデータのデータ形式、前記アプリケーションデータへのデータポインタ、前記アプリケーションプログラムから前記アプリケーションデータのバイトでのデータサイズを取得するための第1の関数、前記アプリケーションプログラムに前記アプリケーションデータのリサイズを要求するための第2の関数、及び、前記スキャニングプログラムによって使用される第3の関数であって前記アプリケーションプログラムから指定量の前記アプリケーションデータを取得するための該第3の関数、を含む、
    コンピュータプログラム。
JP2006509718A 2003-04-17 2004-04-05 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品 Expired - Lifetime JP4597973B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US46388603P 2003-04-17 2003-04-17
US10/639,088 US7392043B2 (en) 2003-04-17 2003-08-11 API system, method and computer program product for accessing content/security analysis functionality in a mobile communication framework
PCT/US2004/010482 WO2004095166A2 (en) 2003-04-17 2004-04-05 Api system, method and computer program product for accessing content/security analysis functionality in a mobile communication framework

Publications (2)

Publication Number Publication Date
JP2006526222A JP2006526222A (ja) 2006-11-16
JP4597973B2 true JP4597973B2 (ja) 2010-12-15

Family

ID=33162398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509718A Expired - Lifetime JP4597973B2 (ja) 2003-04-17 2004-04-05 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品

Country Status (7)

Country Link
US (1) US7392043B2 (ja)
EP (1) EP1623297B1 (ja)
JP (1) JP4597973B2 (ja)
KR (1) KR101046549B1 (ja)
CA (1) CA2517485C (ja)
NO (1) NO20055428L (ja)
WO (1) WO2004095166A2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970697B2 (en) * 2003-04-17 2005-11-29 Ntt Docomo, Inc. Platform-independent scanning subsystem API for use in a mobile communication framework
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US8839417B1 (en) 2003-11-17 2014-09-16 Mcafee, Inc. Device, system and method for defending a computer network
US7400878B2 (en) 2004-02-26 2008-07-15 Research In Motion Limited Computing device with environment aware features
BRPI0510378B1 (pt) * 2004-04-30 2018-12-11 Blackberry Ltd Método de manusear transferências de dados em um dispositivo móvel , mídia lida porcomputador e aparelho de transferência de dados
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US7634262B1 (en) * 2006-03-07 2009-12-15 Trend Micro, Inc. Virus pattern update for mobile device
US7814544B1 (en) * 2006-06-22 2010-10-12 Symantec Corporation API-profile guided unpacking
US7953984B1 (en) * 2006-06-29 2011-05-31 Trend Micro Incorporated Enhanced malware detection utilizing transparently integrated searching
US20080170525A1 (en) * 2007-01-12 2008-07-17 Microsoft Corporation Adaptive optimizations for connecting to a wireless network
KR101437837B1 (ko) 2007-08-20 2014-09-15 에스케이플래닛 주식회사 이동통신 시스템에서 동적 플랫폼과 연동된 콘텐츠의다운로드 방법 및 장치
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8984628B2 (en) * 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8051480B2 (en) 2008-10-21 2011-11-01 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8099472B2 (en) 2008-10-21 2012-01-17 Lookout, Inc. System and method for a mobile cross-platform software system
US8060936B2 (en) 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8402544B1 (en) * 2008-12-22 2013-03-19 Trend Micro Incorporated Incremental scanning of computer files for malicious codes
US20100179980A1 (en) * 2009-01-14 2010-07-15 Movidilo S.L. Cache system for mobile communications devices
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8397301B2 (en) 2009-11-18 2013-03-12 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US9047451B2 (en) 2010-09-24 2015-06-02 Blackberry Limited Method and apparatus for differentiated access control
CA2811659C (en) 2010-09-24 2018-02-13 Research In Motion Limited Method and apparatus for differentiated access control
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US20130067578A1 (en) * 2011-09-08 2013-03-14 Mcafee, Inc. Malware Risk Scanner
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
US9497220B2 (en) 2011-10-17 2016-11-15 Blackberry Limited Dynamically generating perimeters
US9613219B2 (en) 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
KR101143999B1 (ko) * 2011-11-22 2012-05-09 주식회사 안철수연구소 Api 기반 어플리케이션 분석 장치 및 방법
US9262604B2 (en) 2012-02-01 2016-02-16 Blackberry Limited Method and system for locking an electronic device
US9698975B2 (en) 2012-02-15 2017-07-04 Blackberry Limited Key management on device for perimeters
EP2629570B1 (en) 2012-02-16 2015-11-25 BlackBerry Limited Method and apparatus for automatic vpn login and interface selection
CA2805960C (en) 2012-02-16 2016-07-26 Research In Motion Limited Method and apparatus for management of multiple grouped resources on device
US9306948B2 (en) 2012-02-16 2016-04-05 Blackberry Limited Method and apparatus for separation of connection data by perimeter type
TWI566566B (zh) * 2012-03-27 2017-01-11 群邁通訊股份有限公司 電話薄管理方法
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US8972762B2 (en) 2012-07-11 2015-03-03 Blackberry Limited Computing devices and methods for resetting inactivity timers on computing devices
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US9852416B2 (en) 2013-03-14 2017-12-26 Lookout, Inc. System and method for authorizing a payment transaction
US10699273B2 (en) 2013-03-14 2020-06-30 Lookout, Inc. System and method for authorizing payment transaction based on device locations
US9307412B2 (en) 2013-04-24 2016-04-05 Lookout, Inc. Method and system for evaluating security for an interactive service operation by a mobile device
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
CN103619014B (zh) * 2013-11-13 2017-06-30 广东欧珀移动通信有限公司 防止应用数据泄露的方法和系统
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
CN103619015A (zh) * 2013-12-06 2014-03-05 孙江宁 一种利用移动终端进行信息验证的方法、装置和系统
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US10440053B2 (en) 2016-05-31 2019-10-08 Lookout, Inc. Methods and systems for detecting and preventing network connection compromise
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US11232205B2 (en) * 2019-04-23 2022-01-25 Microsoft Technology Licensing, Llc File storage service initiation of antivirus software locally installed on a user device
US11232206B2 (en) 2019-04-23 2022-01-25 Microsoft Technology Licensing, Llc Automated malware remediation and file restoration management

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951698A (en) * 1996-10-02 1999-09-14 Trend Micro, Incorporated System, apparatus and method for the detection and removal of viruses in macros
JPH11167533A (ja) * 1997-12-03 1999-06-22 Toshiba Information Systems Corp 電子メールファイアウォール装置
US6269254B1 (en) 1998-09-28 2001-07-31 Motorola, Inc. Radio communications device and method with API between user application program and telephony program and method
JP3256187B2 (ja) * 1998-11-11 2002-02-12 コナミ株式会社 ゲーム機
EP1118949A1 (en) 2000-01-21 2001-07-25 Hewlett-Packard Company, A Delaware Corporation Process and apparatus for allowing transaction between a user and a remote server
GB2366692B (en) * 2000-08-31 2002-08-14 F Secure Oyj Virus protection in an internet environment
US6934857B1 (en) * 2000-11-27 2005-08-23 Networks Associates Technology, Inc. Security system and method for handheld computers
US20020072347A1 (en) 2000-12-07 2002-06-13 Dunko Greg A. System and method of receiving specific information at a mobile terminal
JP2002202939A (ja) * 2000-12-28 2002-07-19 Casio Comput Co Ltd 電子メール受信制御装置、電子メール受信制御方法及び電子メール受信制御プログラムを記録した記録媒体
US6907423B2 (en) 2001-01-04 2005-06-14 Sun Microsystems, Inc. Search engine interface and method of controlling client searches
JP2002351686A (ja) * 2001-05-23 2002-12-06 Sony Corp データ処理方法及びデータ処理方法のプログラム
US7123933B2 (en) 2001-05-31 2006-10-17 Orative Corporation System and method for remote application management of a wireless device
US7171690B2 (en) * 2001-08-01 2007-01-30 Mcafee, Inc. Wireless malware scanning back-end system and method
US6792543B2 (en) * 2001-08-01 2004-09-14 Networks Associates Technology, Inc. Virus scanning on thin client devices using programmable assembly language
GB2378783B (en) * 2001-08-17 2004-12-29 F Secure Oyj Preventing virus infection in a computer system
US7210168B2 (en) 2001-10-15 2007-04-24 Mcafee, Inc. Updating malware definition data for mobile data processing devices
US7254811B2 (en) * 2003-04-17 2007-08-07 Ntt Docomo, Inc. Update system and method for updating a scanning subsystem in a mobile communication framework
US6970697B2 (en) * 2003-04-17 2005-11-29 Ntt Docomo, Inc. Platform-independent scanning subsystem API for use in a mobile communication framework
US6987963B2 (en) * 2003-04-17 2006-01-17 Ntt Docomo, Inc. System, method and computer program product for content/context sensitive scanning utilizing a mobile communication device

Also Published As

Publication number Publication date
EP1623297B1 (en) 2020-03-11
WO2004095166A3 (en) 2005-06-02
CA2517485A1 (en) 2004-11-04
KR20060016752A (ko) 2006-02-22
EP1623297A2 (en) 2006-02-08
EP1623297A4 (en) 2009-11-04
JP2006526222A (ja) 2006-11-16
KR101046549B1 (ko) 2011-07-05
US20040209608A1 (en) 2004-10-21
CA2517485C (en) 2013-12-24
WO2004095166A2 (en) 2004-11-04
US7392043B2 (en) 2008-06-24
NO20055428L (no) 2006-01-10
NO20055428D0 (no) 2005-11-16

Similar Documents

Publication Publication Date Title
JP4597973B2 (ja) 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品
JP4597974B2 (ja) 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品
JP4448849B2 (ja) 移動通信フレームワークにおいてスキャニングサブシステムを更新するための更新システム及び方法
JP4597975B2 (ja) 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム
JP3950010B2 (ja) データ処理装置、プログラムおよび記録媒体
CN1981263A (zh) 在移动通信框架内用于更新扫描子系统的更新系统与方法
JP4680485B2 (ja) 端末装置、プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100922

R150 Certificate of patent or registration of utility model

Ref document number: 4597973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term