説明

コンピュータ・システムの操作を防止するための方法及びデータ処理システム

【課題】 本発明は、コンピュータ技術の分野に関し、特に、コンピュータ・システム内に格納された任意の種類のコンピュータ・プログラム及びデータが操作されることを防止するため、特にコンピュータ・システムにおけるハッカー攻撃及びウィルス感染を防止するための方法及びシステムに関する。
【解決手段】 コンピュータ・システムは、読み取り書き込み可能なストレージ手段と、ストレージ手段を書き込み保護されたモードに切り換えるための手段とを含む。改善された防止策を提供するために、起動の間又はアプリケーション・プログラムのインストール・プロセスの間のいずれかにおける、以下のステップが提案される。
a)ユーザに、書き込み保護可能ストレージ領域(32)への書き込みを一時的に許可する切換を実行するように促すステップであって、それぞれの物理的な書き込み保護機構(34、36)が、コンピュータ・システムのオペレーティング・システムの外部からのみ作動可能である切換手段(36)を含む、ステップ、
b)書き込み保護可能ストレージ領域(32)内にセキュリティ関連情報を格納するステップ(520、620)、
c)ユーザに、書き込み保護可能ストレージ領域(32)への書き込みを制限するための手動切換を実行するように促し、その結果として書き込み保護されたストレージ領域(32)を生成するステップ、
d)手動切換に応答して、コンピュータ・システムのさらなるランタイムの間、書き込み保護されたストレージ領域(32)へのいかなる書き込みアクセスも制限するステップ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術の分野に関し、特に、コンピュータ・システム内に格納された任意の種類のコンピュータ・プログラム及びデータが操作されることを防止するため、特にコンピュータ・システムにおけるハッカー攻撃及びウィルス感染を防止するための、方法及びシステム並びにデバイスに関する。
【背景技術】
【0002】
コンピュータ・プログラムは、本明細書においてはコンピュータ・アプリケーションと称され、セキュリティが重大な意味を持つ使用事例を含むことがしばしばあり、そのような事例では、故障によって、著しい財務上の損失、環境汚染が引き起こされ、或いは人間の生命をも危うくすることさえある。よく引用される例には、軍事設備又は原子力プラントを制御するコンピュータ・システムが含まれる。しかしながら、オンライン・バンキングのようなインターネット・ベースのビジネスといった新興の分野もまた、コンピュータ・システム内に格納され、それらの間で交換されるデータの完全性に本質的に依存する。また、今日の会社の大部分の事業も、コンピュータ・システムのアベイラビリティ及び内部に格納されたデータの完全性に依存する。
【0003】
不都合なことに、従来技術のコンピュータ・システムは、多くの種類のいわゆるハッカー攻撃を受けやすい。これらの攻撃は、コンピュータ・プログラムの変更、コンピュータ・システム内に格納されたデータの変更、又はプログラム若しくはデータのコピーの取得を行おうとする。このような攻撃の2つの主な種類が、ウィルス感染と、ハッカー攻撃によって実行されるプログラム又はデータの操作である。
【0004】
コンピュータ・ハッカーは、攻撃を受けるコンピュータ・システムに何らかの方法でアクセスしようとする。これらの攻撃には、パスワードの盗用若しくはその推測、又はコンピュータ・システムのセキュリティ機構内の何らかのバグの利用が含まれる。後者のハッキング技術の典型的な例が、バッファ・オーバーフローを活用することであり、これは、特定の状況下で、ハッカーによって提供されたコンピュータ・プログラムをコンピュータ・システムに実行させてしまうことができる。
【0005】
しかしながら、コンピュータ・システムへの不正アクセスに至るこのプロセスは通常、多くの時間を要し、単にまぐれ当たりの機会に依存することができるに過ぎない。また、ハッカーは、攻撃の第1段階の間には、ある程度制限されたアクセス権しか獲得しないことが多い。そのため、初めてコンピュータ・システムに侵入した後に、ハッカーは、しばしば、将来ハッカーに容易なアクセスを提供し、ハッカーに付加的な権利を与え、かつハッカーの変更及び活動をシステム管理者によって発見されないように隠すような方法で、コンピュータ・システムを制御するシステム・ソフトウェアを変更しようと試みる。このことは、後で再度システムに侵入するための「バックドア」の実装であると理解される。Linuxオペレーティング・システムについては、特定の雑誌でこのような技術が論じられており、ハッカーをサポートするソフトウェア・パッケージは特定のウェブ・サイトから自由に入手可能である。
【0006】
上述の変更は通常、攻撃を受けているコンピュータ・システム内に何らかの付加的なファイルを格納することを必要とする。ハッカーの活動の一部は、これらのファイルが発見されないようにすることである。
【0007】
図1及び図2は、自身が必要とするファイルを隠すために、オペレーティング・システムとしてLinuxを実行するコンピュータ・システムをハッカーがどのようにして変更するかについての典型的な例を示す。現在のディレクトリ内に格納された全ファイルのリストを取得するためのLinuxコマンドは「ls」であり、通常は、何らかのオプション、例えば「−alh」を有する。
【0008】
図1は、このコマンドが、ステップ10においてユーザによって入力された後にLinuxシステムによってどのように実行されるかを示す。オペレータがこのコマンドをタイプ入力すると、ls動作の実行12が、Linuxカーネルによって提供される特定のサービスについてのLinux名である、いわゆるシステム・コール13を作成する。この場合、ある種のデータ構造(「sys_call_table」と名付けられる)、すなわちシステム・コール・テーブル15としてメモリ領域内に格納され「getdents64」(「get directory entries」の略語)と名付けられたシステム・コールが実行され、現在のディレクトリ内で見出される全ファイルのリスト16をその呼び出し元であるlsプログラムに戻す。次に、lsプログラムは、オプション「−alh」によるオペレータの要求の通りに、ステップ17において、リストの何らかのフォーマッティングを実行する。最終的に、フォーマットされたファイルのリスト18が、ディスプレイに表示される。
【0009】
ここで、ディレクトリが、ハッカーが隠すことを望んでいる、例えばHACKER.TXTをファイルのうちの1つに含むと仮定する。これは、図2に示されるように、Linuxシステムに対する変更によって行われる。ここでは、「getdents64」と名付けられたオリジナルのシステム・コールが、「hackers_getdents64」と名付けられたハッカーのバージョンである21で置き換えられる。Linuxの場合、システム・コールの置き換えは、システム・コール・テーブル15内のエントリを変更することによって行われる。
【0010】
lsプログラムによって発行されたシステム・コールが、「hackers_getdents64」を呼び出す。このプログラムは、ステップ21において実行されると、ファイルのリスト16を取得するためにオリジナルのシステム・コール14、すなわち「getdents64」を呼び出す。オリジナルのシステム・コールは、このリストをその呼び出し元であるhackers_getdents64に戻し、hackers_getdents64は次に、ハッカーが伏せること、すなわち表示されないことを望むファイル名についてリストを検索する。この例においては、hackers_getdents64は、HACKER.TXTという名称をリストから除去し、残りのファイルのリストをlsプログラムに戻し、次にlsプログラムは、図1を参照して先に説明したように、結果をフォーマットし、最終的にそれを表示する。
【0011】
ウィルス感染もまた、コンピュータ・システム内に格納されたプログラムに対する変更を伴う。ハッカー攻撃との主な違いは、ウィルスの動作が自動的に行われることである。また、コンピュータ・ウィルス及び同類のプログラムは、ネットワークを介して自動的に広がることができる。それらは、ウィルスに属するコード・シーケンスが実行されるようにするような仕方で幾つかの実行可能コードを操作することによって、コンピュータ・システムを感染させる。
【0012】
ウィルス及びハッカー攻撃は、何らかのストレージのコンテンツが変更されるという点で共通である。
【0013】
ウィルス感染を防止するための最新技術は、いわゆるウィルス・スキャン・プログラムを適用することである。それらは、ウィルスを識別するものと考えられる特定のパターンの探索を行う。ウィルス・スキャナは、ハード・ディスクのような不揮発性ストレージとコンピュータ・システムのRAMのような揮発性ストレージの両方をチェックすることができる。
【0014】
残念ながら、この方法で達成される保護の程度は限定的である。ウィルス・スキャナは、ウィルス感染を検出することはできるが、一般には、それらを防止するものではない。新しいウィルス毎に更新が必要とされ、それは金銭と時間を要する。ウィルス・スキャナは、いずれかの専門家によって既に分析された既知のウィルスを検出することができるに過ぎず、すなわち、最新のウィルス・スキャン・ソフトウェアを備えたコンピュータ・システムでさえ依然として新しく開発されたウィルスによる攻撃を受けやすいという点で、保護は限定的である。これは、検出プログラムをだますようにプログラムされた「ハイテク」ウィルスについて特に当てはまる。特に、このことは自己書き換え型の多形性ウィルス及び暗号化ウィルスに関係する。
【0015】
ウィルス・スキャナの使用に関連する他の欠点は、ウィルスに起因するバイト・シーケンスが非感染ファイルの一部として存在する場合に、偽陽性を報告する場合があることである。また、コンピュータ・システムからのウィルスの除去は、除去ツールがバイナリ実行ファイルを操作しなくてはならないため、扱いが難しく、エラーを起こしやすい。
【0016】
ウィルス感染を防止するためのさらに別の方法は、いわゆる「高信頼計算(trustedcomputing)」手法である。ここでは、付加的なハードウェアによって提供されるサービスは、保護される必要がある全てのファイル又はメモリ領域についてハッシュ値を計算する。これらの値は、付加的なハードウェアによって格納される。その後のある時点で、ハッシュ値を再度計算し、付加的なハードウェア内に格納された値と比較することができる。保護されているファイル又は記憶場所が後のスキャンの間に異なるハッシュ値をもたらした場合には、それは、おそらく変更されている。
【0017】
この方法の1つの欠点は、ハッシュ値の計算が多対一マッピングであること、すなわち、多くの異なるファイルが同じハッシュ値を生じさせ得ることである。偶然に、又はウィルスの開発者がハッシュ値を計算する方法についての十分な知識を入手している場合には、ウィルス感染又はハッカー攻撃が検出されなくなることがある。別の欠点は、ウィルス感染を検出することはできるが、この方法は感染を防止するものではないということである。別の欠点は、コストを増加させる付加的なハードウェアを有することを必要とするという点である。
【0018】
ウィルス感染を検出するためのさらに別の方法は、重複ストレージである。この手法を用いると、保護される必要があるファイルはいずれも実際には二度格納され、一度目は通常の方式で、そして二度目はコンピュータ・システムの正常動作中には書き込み保護されているストレージ・デバイス上に格納される。初期化に際して、ファイルは、両方の宛先に書き込まれる。ウィルス感染についてのチェックが行われる必要があるときはいつでも、ファイルの両方のコピーを比較することができる。2つのコピー間の何らかの違いは、作業コピーの変更を示す。ウィルスの除去は簡単であり、感染したコピーは、保護されたコピーで置換される。この方法の欠点は、重複ファイル・ストレージのための付加的な作業である。また、比較は、時間がかかる場合がある。この方法は、ウィルス感染を防止することはできない。
【0019】
重複ストレージ手法の1つの変法は、保護されるべきコンテンツをハード・ディスクの1つの書き込み保護されたパーティション内に保存することである。しかしながら、これは、管理者特権を有する人は誰でも書き込み保護をディスエーブルにすることができるので、安全ではない。
【0020】
ハッカー攻撃を防止するための公知の技術は、ネットワークを介した攻撃からコンピュータ・システムを守るためにファイアウォールを用いることを含む。しかしながら、この手法は、ファイアウォールの内側にいる人々からの攻撃を防止するものではなく、すなわち、特定の組織のコンピュータ・システムは、この組織の従業員によって攻撃を受ける可能性がある。また、ファイアウォールもコンピュータ・システムそれ自体であり、意図したとおりに機能しない場合がある。
【0021】
コンピュータ・システムがいずれにせよ、インターネット又はそれどころかイントラネットに接続しているネットワークに接続されている限り、ハッカー攻撃による実行中のプログラム又は実行中のオペレーティング・システムの操作を防止する技術手段は、今までのところ従来技術では知られていない。
【発明の概要】
【発明が解決しようとする課題】
【0022】
従って、本発明の目的は、コンピュータ・システム内に格納されたコンピュータ・プログラム及び任意の種類のデータが操作されること、特にハッカー攻撃の過程で操作されることに対する改善された防止策をもたらす方法を提供することである。
【課題を解決するための手段】
【0023】
本発明のこの目的は、添付の独立請求項で記述される特徴によって達成される。本発明のさらなる有利なアレンジメント及び実施形態は、それぞれの従属請求項に記述される。以下、添付の特許請求の範囲を参照する。
【0024】
その基本的な態様によれば、コンピュータ・システムにおけるハッカー攻撃及びウィルス感染を防止するための方法において、コンピュータ・システムは、読み取り及び書き込み可能なストレージ手段と、ストレージ手段を書き込み保護モードに切り換えるための手段とを含み、この方法は、
a)ユーザに、書き込み保護可能ストレージ領域への書き込みを一時的に許可する切換を実行するように促すステップであって、それぞれの物理的書き込み保護機構が、そのコンピュータ・システムのオペレーティング・システムの外部からのみ作動可能である切換手段を含む、ステップと、
b)この書き込み保護可能ストレージ領域内にセキュリティ関連情報を格納するステップと、
c)ユーザに、この書き込み保護可能ストレージ領域への書き込みを制限するための手動切換を実行するように促し、その結果として書き込み保護されたストレージ領域を生成するステップと、
d)手動切換に応答して、コンピュータ・システムのさらなるランタイムの間、書き込み保護されたストレージ領域へのいかなる書き込みアクセスも制限するステップ、すなわち、そこへの書き込みをディスエーブルにするステップと、
を含む。
【0025】
さらに、以下のステップ、すなわち、
情報を参照するプログラムを開始する前に、どの情報がどの領域内に格納さるかを管理するステップ、
d)セキュリティ関連情報と非セキュリティ関連情報の両方を含むプログラムを、ストレージのそれぞれの専用領域にアクセスすることによって、実行するステップ、
が実行される。
【0026】
このように、本発明の核心となる思想は、読み取り及び書き込みが可能なストレージ、すなわち読み取り書き込みモードのストレージに適用される。本発明は、ストレージの特定の部分が読み取り専用になるようにさせるスイッチによって、ストレージ・ハードウェアを拡張することである(図3)。読み取り専用モードに変わることができるメモリのその部分を、保護可能メモリと名付ける。
【0027】
コンピュータ・ハードウェア及びコンピュータ上で実行されるソフトウェアの実装に対するこれらの拡張は、そのソフトウェアの不正操作を単に検出するのではなく、実際に不正操作を防止する。開示される発明は、どのようなウィルスに対しても役に立ち、専門家によって分析されたウィルスに依存するものではない。本発明はまた、ハッカーが、管理者特権によってログインできるようにオペレーティング・システムの内部を変更することを防止する。
【0028】
さらに、有利には、セキュリティ関連情報は、コンピュータ・システムのオペレーティング・システムのコンポーネントであり、ストレージは、システム・メモリであり、
書き込み保護されたメモリ領域内に情報を格納するステップは、オペレーティング・システムの起動手順を開始するときに、いずれの書き込み保護もイネーブルにされることなく実行され、
書き込み保護可能メモリ領域への書き込みの完了の後に、書き込み保護可能メモリ領域に対して有効な書き込み保護機構をイネーブルにし、
オペレーティング・システムの残りの部分を保護可能ではないメモリ領域内に格納することによって起動手順を完了させる。このことは、安全な起動及び安全なオペレーティング・システムの達成のために有用である。
【0029】
さらに、有利には、書き込み保護可能なストレージ領域(しばしば、ハード・ディスク又はFLASH ROM領域)への書き込みプロセスが、一時的にオペレーティング・システムの外部から手動でその保護が機能しないようさせた後に、アプリケーション・プログラムのインストール中に実行され、かつストレージがコンピュータ・システムに接続された又は接続可能な不揮発性メモリである場合、コード又は機密(sensible)データの実行可能な断片はどれでも、すなわち読み取り専用特性を有するexe−、dll、datファイルはどれでも、例えば、.dotファイル又は単なる秘密データ若しくは機密データ、プライベート・データ若しくはどのようなデータも、書き込み保護されたハード・ディスク又はFLASH−ROM領域内にインストールされることができるので、これにより、どのようなアプリケーション・プログラムも安全な方法でインストールされることができるようになる。
【0030】
このように、本発明は、コンピュータ・システムのメイン・メモリと、不揮発性の書き換え可能な大容量ストレージ・デバイスの両方に適用される。これらの2つの場合についての本発明の好ましい実施形態は別々に実行され、これは以下の詳細な説明から明らかになる。
【0031】
本発明は、例示のみの目的で説明されるものであり、図面の図柄の形状によって限定されるものではない。
【図面の簡単な説明】
【0032】
【図1】関連するLINUXファイル・システムの幾つかのファイルを表示するためにLINUXコマンド“ls”を実行するときの制御フローを示す概略的な制御フロー図である。
【図2】LINUXコマンド“ls”を変更することによる、LINUXオペレーティング・システムに対するハッカー攻撃を示す概略的な制御フロー図である(従来技術)。
【図3】本発明による書き込み保護されたメモリ領域を有するある種のメモリ・デバイスを示す概略図である。
【図4】起動手順の間にオペレーティング・システムをメモリの保護された領域及び保護されていない領域内にロードするための本発明の方法を適用した場合の、オペレーティング・システムのバイナリ・イメージのコードの場所を示す概略図である。
【図5】保護された起動手順を実行するために用いられる場合の本発明の方法の好ましい実施形態の制御フローを示す概略図である。
【図6】アプリケーション・プログラムに対して保護されたインストール手順を実行するために用いられる場合の本発明の方法の好ましい実施形態の制御フローを示す概略図である。
【発明を実施するための形態】
【0033】
全般的に図面を参照し、特にここでは図3を参照して、システムのメイン・メモリを保護するための本発明の方法及びシステムの好ましい実施形態をより詳細に説明する。
【0034】
1.メイン・メモリ(RAM)の保護
本発明を用いたコンピュータ・システムのメイン・メモリの保護は、異なるレベルにおいて、従来技術のコンピュータ・システムに対する幾つかの付加及び拡張を含む。
【0035】
第1のレベルにおいて、コンピュータ・システムのハードウェアは、通常のRAMのように読み出すことができるが、書き込みはオンデマンドでのみ可能であって、ある認証動作が実行されることを必要とするという性質を有する、ある種のメモリ領域32を提供する必要がある。
【0036】
保護されているオペレーティング・システムの範囲外で認証が行われることは、安全上の理由で必須であり、すなわち、システム管理特権は書き込みをイネーブルにできるほどであってはならない。ソフトウェア・ベースの認証は、そのソフトウェアが、保護されているオペレーティング・システムの一部ではない場合に限り、許容可能である。例えば、System zにおけるVMゲストにおいてLinuxを実行する場合、書き込み認証は、VMアプリケーションによって与えることができ、又はIBM Corporationから販売されている、従来技術の「System z」マシンを動作させるのに用いられる、この環境におけるいわゆる「サービス要素」(SE)を用いて、与えることができる。
【0037】
保護可能なメモリ領域32にアクセスする方式には幾つかの選択肢がある。実行が容易で、おそらく最も有利な方式は、一部のアドレス範囲のみを保護し、メモリ・アーキテクチャに対してその他の修正を加えないことである。しかしながら、メモリの保護された部分にアクセスするための特別な機械語命令を実行することも可能である。
【0038】
保護機構それ自体を実行するために用いることができる様々な固体技術及びストレージ技術がある。単純な方法は、幾つかのメモリ・チップの書き込み許可信号34に割り込む機械式スイッチ36を作動させることを含む。より洗練された手法は、システム・セットアップの間に、どのアドレス範囲を保護すべきかの環境設定をさせることができる。このような手法を用いて、システムは、保護されるべきアドレス範囲の境界を記憶し、書き込み動作がその範囲内のからの記憶場所にアクセスするかどうかをチェックする何らかの論理を提供する。
【0039】
第2のレベルにおいて、保護されるべきアプリケーション・プログラム又はオペレーティング・システムは、実行可能コードとデータ構造とを含む。データ構造は、本発明の実施形態に従って、2つの互いに素なクラスに分けられる。第1のクラスは、正常動作中に修正される必要があるデータ構造を含む。第2のクラスは、正常動作中には修正される必要がなく、不正書き込みアクセスから保護される必要があるデータ構造を含む。
【0040】
オペレーティング・システムのうちウィルス及び/又はハッカーによって変更される可能性がある、セキュリティが重大な意味を持つ部分は、本発明の実施形態に従って、このような保護可能なメモリ領域内に格納される。この方式で保存されるべきデータは、重要なデータ構造(例えば、Linuxシステム・コール・テーブル)のみならず、何らかの実行可能コード(例えば、Windows又はLinuxオペレーティング・システム・コア)を含むことができる。
【0041】
序論で用いた例(図1及び図2)に関しては、システム・コール・テーブル15を実装するデータ構造は、本発明のこの好ましい実施形態によれば、「正常動作中には変更を必要としない」ものとして分類される。Linuxオペレーティング・システム・カーネルによってユーザ・アプリケーションの実行を管理するために用いられるデータ構造はいずれも、「正常動作中に修正される必要がある」ものとして分類される。
【0042】
多くのプログラミング言語が、特定の変数又は特定のサブプログラムが特定のアドレスに配置されるように指定することを可能にする。このような機構は、本発明により開示される保護機構を実行するために、本発明のこの好ましい実施形態に従って利用することができる。
【0043】
これに従うさらに好ましい態様、又はさらに好ましい本発明の実施形態は、オペレーティング・システムの実行のために用いられるプログラミング言語(例えば、C)の拡張と、この言語を実行するコンパイラとを含む。オペレーティング・システムを実行するのに用いられるプログラミング言語は、その場合、変数を安全なメモリ領域内に格納させる付加的な属性と、サブルーチンを安全なメモリ領域内に格納させる属性と、好ましくは、データとコードの両方からなるプログラムの一部を安全なデータ領域内に格納させる付加的な属性とを提供する。例としてC言語を用いると、可能なソリューションは、「secure」と名付けられる付加的なストレージ・クラス属性である。この場合、安全なメモリ領域内に格納されることが意図される静的整数変数は、「secure static int i」として宣言される。同様の方法が関数について実行可能である。
【0044】
オペレーティング・システムのソース・コードをコンパイルするために用いられるコンパイラは、これらの付加的な本発明の宣言を評価する必要があり、それぞれのデータ及び実行可能コードを安全なメモリ領域内にマッピングする必要がある。これらの領域は特別なアセンブラ命令の間にアクセスすることもでき、又はこれらをシステムの正常なメモリ・アドレス空間内の専用アドレス領域に格納することもでき、そのいずれかである。
【0045】
さらに本発明のこの好ましい実施形態によれば、オペレーティング・システムのソース・コードは、攻撃によって影響を受ける可能性がある全ての部分が安全なメモリ領域内に格納されるように修正される。Linuxのようなマルチプラットフォームのソース・コードの場合、プリプロセッサによって定義されたシンボルを用いて実行される属性を用いることができ、これは、ターゲット・マシンの環境設定の間に、上記のストレージ・クラス属性に対する評価を行うか、又はターゲット・プラットフォームが安全なメモリ領域をサポートしない場合には、全く何の評価も行わないかのいずれかである。
【0046】
正常動作の間、これらの安全なメモリ領域内に格納されたコード及びデータは、あたかもこのメモリがまったく普通のRAMであるかのように参照されることができる。しかしながら、書き込みは、オペレーティング・システム、又はその影響の外部から、何らかの認証が、例えば機械式スイッチをトグルで切り換えることによって行われていない限りは、本発明のこの好ましい実施形態に従って禁止される。オペレーティング・システムを起動するときには、書き込みはイネーブルにされる。一旦オペレーティング・システムがロードされ、初期化されたら、書き込みはディスエーブルにされる。オペレーティング・システムの一部を修正することを標的とするハッカーによるいかなる試行も、このようにして妨げられる。それに加えて、書き込み保護されている間に特別なメモリ領域内に書き込みを行おうとする試行は、好ましくは、システムが攻撃されていることを示す指標として表示することができる。
【0047】
さらに、オペレーティング・システムのバイナリ・バージョンは、「書き込み保護」及び「書き込み許可」という2つのクラスを何らかの方法で区別することができるように構成される。
【0048】
次に、図5を参照して、本発明の好ましい実施形態によるオペレーティング・システムの開始プロセスをより詳細に説明する。
【0049】
本発明の好ましい実施形態による方法を装備したコンピュータ・システム上でのオペレーティング・システムの開始は、少なくともシステムが初めて本発明の方法を使用する場合には、ハッカーの影響を受けていないことが保証される環境において、以下のように進行する。
1.ステップ510において、メモリの保護可能部分を読み取り書き込みモードに切り換える。
2.次のステップ520において、オペレーティング・システムがメモリ内にロードされる。図4は、このステップをより詳細にさらに明確にする。オペレーティング・システムのうち「正常動作中に変更することができる」ものとして分類された部分は、メモリの保護可能ではない部分42内にロードされる。しかしながら、オペレーティング・システムのうち「正常動作中に変更される必要がない」又は「正常動作中に変更してはいけない」ものとして分類された部分は、メモリの保護可能部分44内にロードされる。
3.次に、さらなるステップ530において、オペレーティング・システムの初期化の部分が実行される。
4.その直後のステップ540において、メモリの保護可能部分を読み取り専用モードに切り換える。
【0050】
この書き込みアクセスのディスエーブルは、ハードウェア内、又はオペレーティング・システムに仮想環境を提供するソフトウェア・レイヤ内に実装されることが必須である。
【0051】
ソフトウェア・ベースの手法は従来技術において長い間知られており、それらの手法は、いったんハッカーが保護されるべきコンピュータ・システム上の管理者特権を入手すると、回避することができるという主要な欠点を有することに留意すべきである。
【0052】
本発明の実施形態による保護の技術的な実施は、用いられるメモリの詳細に依存する。しかしながら、このメモリは、常に読み取り又は書き込み動作を実行することが可能であり、従って、読み取り又は書き込みの2つの動作のうちのいずれを実行すべきかを区別する技術的性質を有するハードウェア手段を実装する。最新技術は、読み取り及び書き込みモードを区別するために、それぞれ論理的に0又は1の電圧レベルに設定される信号を有することにある。図3に示されるスイッチは、従って、メモリ・デバイスに送信される読み取り又は書き込みアクセス信号が書き込みモードに対応する電圧に設定されることを防ぐ電子デバイスである。
【0053】
次に、前述の実施形態の幾つかのバリエーションを説明し、それにより本発明の事項の幾つかのさらなる実施形態を開示する。
【0054】
別のさらなる実施形態は、オペレーティング・システムのソース・コードが、オペレーティング・システムを実行するのに用いられるプログラミング言語の一部ではない属性によって強化され、ある実行可能コード又はデータ構造が正常動作中に修正される必要があるか又は必要がないかどうかを指定するという思想に基づく。それをコンパイルするのに用いられるコンパイラは、これらの属性を受け入れて評価するために強化される。ソース・コードをバイナリ形式に翻訳しながら、コンパイラは、オペレーティング・システムの保護された部分及び保護されない部分がメモリの適切なそれぞれの部分にロードされるように、そのバイナリ形式を構成する。
【0055】
別の好ましい実施形態は、オペレーティング・システムを実行するのに用いられるプログラミング言語が新しいキーワードのようなある種の手段で強化されるという思想に基づく。これらのキーワードに対するプログラミング言語の意味論は、この言語をバイナリ形式に翻訳するのに用いられるコンパイラがメモリの割り当てられた部分内にバイナリ出力がロードされるようにバイナリ出力を構成できるようにする、特定の表記を含む。それを行う単純な方法は、新しいキーワードが変数及び/又はサブプログラム宣言に対して有効な属性となるようにプログラミング言語の規則が拡張されなければならないという教示を含む。コンパイラは、変数又はサブプログラムが保護可能ストレージ内に格納されるようにするためにはどのようなアクションを取るべきかをコンパイラが知るように拡張されなくてはならず、それぞれのキーワードが変数又はサブプログラム宣言についての属性として与えられたときはいつも、このアクションを取らなくてはならない。
【0056】
別の好ましい実施形態は、コンパイラからの出力(アセンブラ・プログラムによってさらに処理されるアセンブラ・ソース・コード、又はバイナリ・コードのいずれか)が、どの部分がストレージの保護可能部分又は保護可能ではない部分にそれぞれロードされるべきかを知らせる情報によって強化されるという特徴を含む。この情報は、開発者によって手動で提供することができる。
【0057】
別の可能な変法は、オペレーティング・システムのバイナリをメモリ内にロードするシステム・プログラムが、バイナリのどの部分がメモリの保護可能部分又は保護可能でない部分にロードされなければならないかという情報をさらに受け入れることである。
【0058】
別の好ましい実施形態は、オペレーティング・システムのみならず、ユーザ・アプリケーション・プログラムもセキュリティ保護するという特徴を含む。
【0059】
別の好ましい実施形態は、保護可能メモリ領域を読み取り書き込みモードと読み取り専用モードとの間でトグル切り換えするための機械式スイッチを有するという特徴を含む。
【0060】
別の好ましい実施形態は、カード・リーダ又は指紋リーダのようなある種の安全な入力デバイスによって作動される、保護可能メモリ領域を読み取り書き込みモードと読み取り専用モードとの間でトグル切り換えするためのスイッチの特徴を含む。
【0061】
別の好ましい実施形態は、保護可能メモリ領域を読み取り書き込みモードと読み取り専用モードとの間でトグル切り換えするためのスイッチを有するコンピュータ・システムの特徴を含み、このスイッチは、第1のコンピュータ・システムの動作を制御するように設計された別個のコンピュータ・システムによって制御され、これは、先に述べたいわゆるサービス要素のことをいう。
【0062】
別の好ましい実施形態は、メモリの保護可能部分が現在読み取り専用モードの状態にあるにもかかわらず何らかの動作が書き込み動作を実行しようとしていることを検出するための付加的な手段を有する、本発明を装備したコンピュータ・システムの特徴を含む。この事象が検出された場合、適切な信号がシステム管理者に送信されるか、又はその他の何らかのアクションが取られる。
【0063】
別の好ましい実施形態は、仮想化されたオペレーティング・システムを含むという特徴を含む。保護されるべきオペレーティング・システムが別のホスト・オペレーティング・システムによって実行される場合、第1のオペレーティング・システムの保護可能メモリの制御は、ホスト・オペレーティング・システムによって発行される動作によって行われることができる。典型的な例は、ホスト・オペレーティング・システムとしてのz/VMの制御下でLinuxを実行することができる、IBM System zである。
【0064】
別の好ましい実施形態は、コンピュータのアドレス空間に属する特定のアドレス範囲を保護可能として宣言する、コンピュータ・システムの特徴を含む。
【0065】
別の好ましい実施形態は、そのうちの幾つかが保護可能である別個のアドレス空間を提供する、コンピュータ・システムの特徴を含む。
【0066】
2.不揮発性ストレージ・デバイスの保護
次に、不揮発性大容量ストレージ・デバイスの保護に関する本発明の態様を、上記の実施形態うちの1つ又は複数と組み合わせることができるさらなる実施形態において、より詳細に説明する。
【0067】
「不揮発性」大容量ストレージ・メモリという用語は、ハード・ディスク、書き換え可能CD及びDVD、EEPROM及びFLASH ROMといった書き換え可能ROMの変種のようなストレージ技術を包含する。
【0068】
このようなデバイス上に格納された情報を保護するやり方についての核心となる思想は、メモリについて上で説明したものと同様であり、すなわち、ストレージの一部を読み取り専用モードに変更することができ、その一方でストレージの残りの部分は読み取り書き込みモードのまま維持する機構によってそれらを強化するという、教示を含む。読み取り専用モードのときは、オペレーティング・システムによっても、又はコンピュータ・システム上で実行されているどのようなプログラムによっても、安全なメモリ・デバイスには書き込むことができない。
【0069】
コンピュータ・システム上にインストールされたソフトウェアは、2つの部分に分けられ、ウィルス感染によって危険にさらされる実行可能ファイルは保護可能メモリ内に格納され、その一方、正常なプログラム実行の間に変更される必要があり得る他のファイルは、読み取り書き込みモードのまま維持されたストレージ・デバイス上に格納される。
【0070】
オペレーティング・システムの管理者特権は書き込みをイネーブルにできるほどであってはならないのは必須であるが、むしろ付加的なハードウェアを伴う何らかの機構が必要とされる。これは、単なる機械式イッチとすることもできるし、又はSystem zの「サービス要素」(SE)のような別個のオペレータ・コンソールによって開始される何らかのアクションとすることもできる。
【0071】
保護可能ストレージは、ウィルス感染によって影響を受ける可能性があるファイルを格納するために用いられる。例えば、これは、Windowsオペレーティング・システムのコア、並びに、あるアプリケーション・プログラムに属する実行可能ファイルを含むことができる。理想的には、ソフトウェア・パッケージは、そのファイルが「正常動作中に修正される必要がある」もの、又は「正常動作中に変更されずに維持されるべき実行可能コード」のどちらかとして分類されるように設計される。インストール・プログラムは、それに応じて、両方の種類のファイルを取り扱う。
【0072】
本発明のこの特定の態様の主な利点は、全てのファイルが一度しか格納されず、付加的な情報の計算及び格納を必要としないことである。本発明は、バックアップ・コピーも使用しないし、ハッシュ値から導出されるファイルの「指紋」の計算及び格納も必要としない。
【0073】
さらに、それぞれ切換可能に作ることができるある種の内部配線又は信号が存在するので、ハード・ディスクに対して書き込み保護を付加することは扱いが容易である。
【0074】
ハード・ディスクのコアは回転ディスクであり、その磁性表面に情報が格納される。読み取り時には、コイルは表面の近くへと移動され、回転磁気パターンが電流を誘導し、次にこの電流がさらに処理されて、最終的に、要求されるバイナリ情報をもたらす。しかしながら、書き込み時には、磁界を発生させるために書き込み電流がコイルに印加され、次にこの磁界がコイルの下のディスク領域の磁気特性を変化させ、それによってハード・ディスク上に情報が書き込まれる。従って、問題は、この電流を手動で、又は少なくともオペレーティング・システムの外部から、及びアプリケーション・プログラムの外部から、制御することである。本発明の好ましい態様によれば、ハード・ディスクのパーティション全体が本発明の方法によって保護され、又はハード・ディスク全体が保護される。ファイル・アロケーション・テーブル又はそれに相当するリストはいずれも、基本的には従来技術で公知のように構成される。
【0075】
次に、本発明の方法のこの実施形態を用いる場合に関連する、幾つかのインストールの問題をより詳細に説明する。
【0076】
この実施形態を用いるソフトウェア・パッケージは、そのソフトウェア・パッケージに属する全てのファイルを上述の2つの異なるクラスに分ける。第1のクラスは、正常動作中にはユーザによって変更される必要はなく、インストール中にのみ変更される必要があるファイルからなり、第2のクラスは、正常動作中に変更を必要とすることがあるファイルからなる。
【0077】
コンピュータ・システム上へのこのようなソフトウェア・パッケージのインストールの制御フローは図6に示され、以下のステップを含む。
【0078】
ステップ610:オペレータが、物理的な切換を行うレバーを作動させることによって、「安全なハード・ディスク・セクション」に対する書き込みをイネーブルにする。
【0079】
ステップ620:ソフトウェア・パッケージのためのインストール・ルーチンが開始され、全ての機密ファイルは「安全なセクション」内にコピーされる。「機密(sensible)」は、例えば、インストールがネットワーク(インターネット)を介して行われるときにファイルのヘッダに付加される例えばビット・フラグ、又はインストールのために使用されるCD−ROM上の予め指定された記憶場所により、上述の分類によってコード化される。
【0080】
次に、ステップ630において、ユーザは、ハード・ディスクの安全なセクションの書き込み保護を作動させるために、レバーを切り換えるよう促される。
【0081】
次に、その後のステップ640において、インストール・ルーチンは、変更することができる機密ではないファイルであって、それらの変更がアプリケーションの動作を深刻な危険にさらすものではないものと見なされるファイルを、保護されていないハード・ディスク・セクションにコピーし、ステップ640もまた、前述の分類に依存する。
【0082】
さらに、本発明の好ましい態様によれば、本発明の方法は、最初からいずれかの種類の保護可能メモリをサポートするように設計されていたわけではないソフトウェア・パッケージの取り扱いも可能にする。
【0083】
このように本開示を活用するようには設計されていないソフトウェア・パッケージに対しては、以下の手順を適用することができることが有利であり得る。
【0084】
1.オペレーティング・システム及び/又はアプリケーション・プログラムを、コンピュータ・システムのハード・ディスク上に、通常どおりに、すなわち、本発明の方法を装備していないコンピュータ・システム上にそれらをインストールするのと同様に、インストールする。
2.次に、セキュリティ・プログラムを開始し、以下の特性の各々を満たす全てのファイルのリストを入力パラメータとして採用する。
(a)ファイルは、ステップ1の間にインストールされ、
(b)ファイルは、コンピュータ・ウィルスに感染する可能性があり、
(c)ファイルは、正常動作中には修正されることはない。
セキュリティ・プログラムは、これらのファイルを保護可能ストレージ内にコピーする。ファイルのリストは、プログラマによって手動で作成される。
3.インストールしているソフトウェアの内部構造に応じて、安全なメモリ内に移動させたファイルに適切にアクセスすることができるようにアクセス経路を調整する。
【0085】
ステップ3は不可能な場合があるので、この特定の方法を全てのソフトウェア・パッケージに適用することができるわけではないことに留意されたい。
【0086】
次に、本発明のこの実施形態のさらなるバリエーションを以下の通り開示する。
【0087】
別の好ましい実施形態は、2つの分離したストレージ・デバイスを備え、その一方が保護可能である、コンピュータ・システムの特徴を含む。これらのデバイスは、ハード・ディスク、フラッシュROM、又は他の任意の不揮発性ストレージとすることができる。
【0088】
別の好ましい実施形態は、1つのストレージ・デバイスによって提供されるストレージ領域を別個のセクションに分割し、そのうちの幾つかを読み取り専用モードに変えることができ、それにより、保護可能とすることができるという特徴を含む。
【0089】
本発明は、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、又はハードウェア要素とソフトウェア要素の両方を含む実施形態の形態をとることができる。好ましい実施形態において、本発明はソフトウェアに実装され、これは、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがそれらに限定されるものではない。
【0090】
さらに、本発明は、コンピュータ又は何らかの命令実行システムによって又はそれらと関連して使用するためのプログラム・コードを提供するコンピュータで使用可能な媒体又はコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラムの形態をとることができる。この説明の目的に関して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによって、或いはそれらと関連して使用されるためのプログラムを収容し、格納し、通信し、伝搬し、又は移送することができる、任意の装置とすることができる。
【0091】
媒体は、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体システム(又は装置若しくはデバイス)、或いは伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、硬質磁気ディスク及び光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク−読み取り専用メモリ(CD−ROM)、コンパクト・ディスク−読み取り/書き込み(CD−R/W)及びDVDが含まれる。
【0092】
プログラム・コードを格納及び/又は実行するのに適したデータ処理システムは、システム・バスを介してメモリ要素に直接的又は間接的に連結される少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、及び実行中に大容量ストレージからコードを取得しなければならない回数を減らすために少なくとも一部のプログラム・コードの一時記憶を提供するキャッシュ・メモリを含むことができる。
【0093】
入力/出力、すなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス等を含むが、それらに限定されるものではない)は、直接的に、又は介在するI/Oコントローラを通じての、いずれかでシステムに連結することができる。
【0094】
データ処理システムが、介在する私設若しくは公衆ネットワークを通じて他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスと連結できるようにするために、ネットワーク・アダプタをシステムに連結することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現在のところ使用可能なネットワーク・アダプタの種類のうちのほんの幾つかである。
【0095】
上述のような回路は、集積回路チップのための設計の一部である。チップ設計は、グラフィカルなコンピュータ・プログラミング言語で作成され、コンピュータ・ストレージ媒体(例えば、ディスク、テープ、物理的ハード・ドライブ、又はストレージ・アクセス・ネットワークにおける場合のような仮想ハード・ドライブ)内に格納される。設計者がチップ、又はチップを製造するのに用いられるフォトリソグラフィ・マスクを製造しない場合には、設計者は、得られた設計を、物理的な手段によって(例えば、設計を格納した記憶媒体のコピーを提供することによって)、又は電子的に(例えば、インターネットを介して)、そのような企業実体に対して直接的又は間接的に伝送する。格納された設計は、次に、フォトリソグラフィ・マスクを製造するのに適した形式(例えば、GDSII)に変換され、そのマスクには、典型的には、ウェハ上に形成される当該チップ設計の多数のコピーが含まれる。フォトリソグラフィ・マスクは、エッチング又は他の手段で、処理されるべきウェハ(及び/又はその上の層)の領域を画定する。

【特許請求の範囲】
【請求項1】
コンピュータ・システムにおけるハッカー攻撃及びウィルス感染を防止するための方法であって、前記コンピュータ・システムは、読み取り及び書き込みが可能なストレージ手段と、前記ストレージ手段を書き込み保護モードに切り換えるための手段とを含み、前記方法は、
a)ユーザに、書き込み保護可能ストレージ領域(32)への書き込みを一時的に許可する切換を実行するように促すステップであって、それぞれの物理的書き込み保護機構(34、36)が、前記コンピュータ・システムのオペレーティング・システムの外部からのみ作動可能である切換手段(36)を含む、ステップと、
b)前記書き込み保護可能ストレージ領域(32)内にセキュリティ関連情報を格納するステップ(520、620)と、
c)ユーザに、前記書き込み保護可能ストレージ領域(32)への書き込みを制限するための手動切換を実行するように促し、その結果として書き込み保護されたストレージ領域(32)を生成するステップと、
d)前記手動切換に応答して、前記コンピュータ・システムのさらなるランタイムの間、前記書き込み保護されたストレージ領域(32)へのいかなる書き込みアクセスも制限するステップと、
を含む方法。
【請求項2】
前記セキュリティ関連情報は、コンピュータ・システムのオペレーティング・システムのコンポーネントであり、
前記ストレージは、システム・メモリであり、
前記書き込み保護可能メモリ領域内に情報を格納する前記ステップ(520、620)は、前記オペレーティング・システムの起動手順を開始するときに、いずれの書き込み保護もイネーブルにされることなく実行され、
前記書き込み保護可能メモリ領域への書き込みの完了の後に、前記書き込み保護可能メモリ領域に対して有効な書き込み保護機構をイネーブルにし(540)、
前記オペレーティング・システムの残りの部分を保護可能ではないメモリ領域内に格納することによって前記起動手順を完了させる、
請求項1に記載の方法。
【請求項3】
前記書き込み保護可能ストレージ領域(32)への前記書き込みプロセス(620)は、手動で前記書き込み保護が機能しないようにさせた後に、アプリケーション・プログラムのインストール中に実行され、前記ストレージは、前記コンピュータ・システムに接続された又は接続可能な不揮発性メモリである、請求項1に記載の方法。
【請求項4】
前記不揮発性メモリは、前記コンピュータ・システムのハード・ディスクである、請求項1乃至請求項3のいずれか1項に記載の方法。
【請求項5】
前記機構は、前記コンピュータ・システムに接続された又は接続可能な機械式スイッチ(36)の作動を含む、請求項1に記載の方法。
【請求項6】
機械式スイッチの代わりに、前記機構は、前記オペレーティング・システムに対して仮想環境を提供するソフトウェア・レイヤ内に実装される、請求項1に記載の方法。
【請求項7】
前記書き込み保護機構がイネーブルにされた後に、前記書き込み保護されたストレージ領域に書き込みを行おうする試行が検出された場合に、警告を発するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記書き込み保護可能ストレージ手段は、
a)RAMメモリ、
b)ハード・ディスク・デバイス、
c)フラッシュRAMデバイス、
d)書き換え可能な、取り外し可能ストレージ・デバイス、好ましくはDVD−RWデバイス又はCD−RWストレージ媒体
の群のうちの1つを含む、請求項1に記載の方法。
【請求項9】
読み取り及び書き込み可能なストレージ手段と、前記ストレージ手段を書き込み保護モードに切り換えるための手段とを含む電子コンピュータ・システムであって、
a)ユーザに、書き込み保護可能ストレージ領域(32)への書き込みを一時的に許可する切換を実行するように促すための手段と、
b)セキュリティ関連情報を格納する(520、620)ための書き込み保護可能ストレージ領域(32)と、
c)ユーザに、前記書き込み保護可能ストレージ領域(32)への書き込みを制限するための手動切換を実行するように促すための手段と、
d)前記コンピュータ・システムのオペレーティング・システムの外部からのみ作動可能である切換手段(36)を含む、前記書き込み保護可能ストレージ領域(32)のための物理的書き込み保護機構(34、36)と
をさらに含む、電子コンピュータ・システム。
【請求項10】
コンピュータ可読プログラムを含むコンピュータ使用可能媒体を含む、コンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピュータ上で実行されたときに、前記コンピュータに、
a)ユーザに、書き込み保護可能なストレージ領域(32)への書き込みを一時的に許可する切換を実行するように促すステップであって、それぞれの物理的な書き込み保護機構(34、36)が、前記コンピュータ・システムのオペレーティング・システムの外部からのみ作動可能である切換手段(36)を含む、ステップと、
b)前記書き込み保護可能ストレージ領域(32)内にセキュリティ関連情報を格納するステップ(520、620)と、
c)ユーザに、前記書き込み保護可能ストレージ領域(32)への書き込みを制限するための手動切換を実行するように促し、その結果として書き込み保護されたストレージ領域(32)を作成するステップと、
d)前記手動切換に応答して、前記コンピュータ・システムのさらなるランタイムの間に、前記書き込み保護されたストレージ領域(32)へのいかなる書き込みアクセスも制限するステップと
を実行させる機能コンポーネントを含む、
コンピュータ・プログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2010−527060(P2010−527060A)
【公表日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2010−506870(P2010−506870)
【出願日】平成20年3月4日(2008.3.4)
【国際出願番号】PCT/EP2008/052600
【国際公開番号】WO2008/138653
【国際公開日】平成20年11月20日(2008.11.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.WINDOWS
3.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】