JP2013542536A - コンピュータシステムの実行動作を標準化する方法 - Google Patents

コンピュータシステムの実行動作を標準化する方法 Download PDF

Info

Publication number
JP2013542536A
JP2013542536A JP2013538027A JP2013538027A JP2013542536A JP 2013542536 A JP2013542536 A JP 2013542536A JP 2013538027 A JP2013538027 A JP 2013538027A JP 2013538027 A JP2013538027 A JP 2013538027A JP 2013542536 A JP2013542536 A JP 2013542536A
Authority
JP
Japan
Prior art keywords
code segment
operation request
call
current operation
data structure
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.)
Granted
Application number
JP2013538027A
Other languages
English (en)
Other versions
JP5615444B2 (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.)
Beijing Zhongtian Antai Technology Co Ltd
Original Assignee
Beijing Zhongtian Antai Technology Co Ltd
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 Beijing Zhongtian Antai Technology Co Ltd filed Critical Beijing Zhongtian Antai Technology Co Ltd
Publication of JP2013542536A publication Critical patent/JP2013542536A/ja
Application granted granted Critical
Publication of JP5615444B2 publication Critical patent/JP5615444B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

コンピュータシステムの実行動作を標準化する方法であって、呼び出し命令を阻止し、呼び出し命令の阻止後に阻止された呼び出し命令のデータ構造を取得し、阻止された呼び出し命令の提供元を、取得され阻止された呼び出し命令のデータ構造に基づいて決定し、阻止された呼び出し命令の操作方法及び操作対象を決定し、阻止された呼び出し命令の提供元、操作方法、及び操作対象を、コンピュータシステムの実行動作を標準化する規則を用いて照合し、阻止された呼び出し命令の実行を許可するかどうかを判定する方法である。本開示は、阻止された呼び出し命令の提供元を呼び出し命令のデータ構造にしたがって決定するので、コンピュータシステムを包括的に監視可能である。提供元のみが不正である場合、本開示は阻止された呼び出し命令の実行を全く許可しないので、不法な操作を包括的かつ効果的に削除する。

Description

発明の詳細な説明
[技術分野]
本開示はコンピュータ分野に関し、詳細にはコンピュータシステムの挙動を標準化する方法に関する。
[背景技術]
既存のコンピュータセキュリティ技術には主に、1.例えばウィルス除去ソフトウェアやファイアウォール等のソフトウェアといった、「スキャンして除去する」メカニズムに基づくコンピュータセキュリティシステム 2.例えば「タイムマシン」や「サンドボックス」等のセキュリティシステムといった、「遮る」メカニズムに基づくコンピュータセキュリティシステム 3.「セキュアなオペレーションシステム(略してセキュアなOSとする)」といった、「システムを強化する」理論に基づくコンピュータセキュリティシステムがある。
上述の「スキャンして除去する」メカニズムと「遮る」メカニズムとは、コンピュータシステムのセキュリティを確実なものにすることは理論上できない。また、「システムを強化する」メカニズムは、実質的にはコンピュータの挙動を制限することによってコンピュータ操作のセキュリティを確実なものにするものであり、このメカニズムに基づいた製品には主として、セキュアなオペレーションシステムや他の積極防御型製品が含まれる。しかし、この種の製品は、コンピュータのいくつかの挙動を個々に制限することでしかシステムに対してセキュリティ制御を行うことができず、その結果コンピュータのアプリケーションは大幅に制限される。
実際には、コンピュータの構造、挙動、及び状態変化が複雑なために、コンピュータのある挙動によって、コンピュータには若干の状態変化しか生じないこともあるし、コンピュータに一連の反応が生じてしまった結果、状態が連続して変化してしまうこともある。従って、コンピュータの挙動の正当性を現在のコンピュータの挙動に照らすのみで判断するということでは、コンピュータシステムのセキュリティを効果的に確保することはできない。これが、積極防衛型ソフトウェアを補助的なセキュリティシステムとしてしか使用できない理由である。
さらには、コンピュータ操作が複雑なために、コンピュータのある特殊な挙動が、許可されたプログラムによって引き起こされることもあれば、不正なコードによって引き起こされることもある。ある特殊な挙動の正当性をある特殊な挙動自体のみで判断する場合、「何にでも適合する(one−size−fits−all)」現象が生じるので、許容挙動と不正なコードによって引き起こされる許容外挙動とが同じように処理されてしまい、その結果「正常なもの」と「不正なもの」を効果的に区別するというセキュリティの目的を達成することができない。
コンピュータのセキュリティは組織的なものでなければならず、局所的な問題を解決することでコンピュータシステムのセキュリティを確保することはできない。例えば、静的なテキストコードを確実に変更されないようにしたときに、記憶コードや記憶パラメータが不正に変更された場合には、コンピュータシステムのセキュリティを確保することができない。動作プロセス中におけるコンピュータの操作はいずれもコンピュータが所有する機能であり、コンピュータの各操作は個々では「正常」でも「不正」でもない。つまり、例えば、ファイル削除、記録変更、及び命令の再組み換えは、個々では「正常」または「不正」と判断することはできない。
よって、コンピュータシステムセキュリティは現在、主として2つの問題に直面している。第1の問題は、コンピュータの挙動の正当性を判断するための根拠を得ることである。具体的には、コンピュータシステムの挙動の正当性を判断する際に、決定条件として形成される効果的な「証拠の連鎖」がなく、このためコンピュータシステムのセキュリティにとっての根本的な問題は「連続的」かつ「効果的な」決定メカニズムを確立することである。第2の問題は、「正常な」挙動と「不正な」挙動とをいかに効果的に区別するかである。すなわち、コンピュータシステムの動作プロセス中、挙動自体は「正常」でも「不正」でもなく、ある挙動が不正に使用された場合にだけ不正な挙動になる。このため、コンピュータシステムの動作中のセキュリティにとっての最重要問題は、「正常な」挙動を「不正な」挙動と区別する手法である。
[発明の概要]
本開示は、コンピュータシステムの挙動を標準化する方法を提供する。これは、コンピュータシステムの動作の挙動及び状況に対して全体的かつ連続的な監視を実現することによって、コンピュータシステムの挙動に対して全体的かつ連続的な制御を実現し、これによりコンピュータシステムの挙動のセキュリティを確保するという目的を達成するものである。コンピュータの挙動を完全に監視することもコンピュータシステムの挙動を制御することもできないという既存の情報セキュリティ技術における不利益は克服される。
上述の問題を解決するために、コンピュータシステムの挙動を標準化する方法を本開示の一実施形態において提供する。本実施形態によれば、本方法は以下のとおりである。
呼び出し命令を取得し、呼び出し命令によって呼び出されるコードセグメントの情報を呼び出し命令に基づいて取得し、コードセグメント呼び出しデータ構造を構築し、コードセグメント呼び出しデータ構造は、呼び出し命令がノードとして配置されているコードセグメントを取り込むとともに、呼び出し命令によって構築された、呼び出し命令を起動するコードセグメントと、呼び出しパスとして呼び出されるコードセグメントとの間の呼び出し関係を取り込むことによって構築され、コードセグメント呼び出しデータ構造は数個のサブデータ構造を有している。
現在の操作要求に関連したサブデータ構造をデータ構造から取得して、現在の操作要求が現在の呼び出し命令の実行動作である状態で、現在の操作要求のイニシエータ、操作方法、及び操作対象をサブデータ構造に基づいて決定する。
コンピュータシステムの挙動を標準化するための規則を取得し、決定された現在の操作要求のイニシエータ、操作方法、及び操作対象を規則と比較して、現在の操作要求が許容できるかどうかを判定する。
任意に、コンピュータシステムの挙動を標準化するための規則は、操作要求のイニシエータ、操作要求の操作方法、及び操作要求の操作対象である3つの要素を有している。
規則は、決定されたイニシエータが規則の要件を満たしている場合、現在の操作要求は実施が許可され、また、決定されたイニシエータ及び決定された操作方法が規則の要件を満たしている場合、現在の操作要求は実施が許可され、さらに、決定されたイニシエータ及び決定された操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可され、決定されたイニシエータ、決定された操作方法、及び決定された操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可される。
任意に、イニシエータは、現在の操作要求よりも前にあり、現在の操作要求に関連している全てのノード及び呼び出しパスで構成されているサブデータ構造である。
任意に、操作対象は、現在の操作要求に対して呼び出されるコードセグメントによって操作される内容である。
任意に、操作方法は、現在の操作要求に対して呼び出されるコードセグメントによって実施される操作である。
任意に、現在の操作要求に関連したサブデータ構造をデータ構造から取得することは、サブデータ構造を取得するための条件を事前設定することを含む。
現在の操作要求が事前設定条件を満たしている場合には、データ構造に基づいて、現在の操作要求に関連したノード及び呼び出しパスを後戻りして、現在の操作要求に関連したサブデータ構造を取得する。
任意に、本方法はさらに以下を含む。
コンピュータの動作領域を少なくとも2つのサブ領域に分割する。
サブデータ構造を取得するための事前設定条件は、1つのサブ領域内にある操作要求が他のサブ領域内にある対象を操作するという条件である。
任意に、データ構造の構築は以下のように行う。
呼び出し命令を取得する。
呼び出し命令を起動するコードセグメント及び呼び出されるコードセグメントを取得する。
取得された呼び出し命令を起動するコードセグメント及び取得された呼び出されるコードセグメントを用いることによって、呼び出しノード及び被呼び出しノードをそれぞれ構築する。
呼び出し命令を起動するコードセグメントと呼び出されるコードセグメントとの間の呼び出し関係を構築し、構築された呼び出し関係を呼び出しノードと被呼び出しノードとの間にある呼び出しパスとして取り込む。
任意に、呼び出し命令はアセンブラ命令であり、呼び出し命令の取得は以下を含む。
動作しているコンピュータコードに対してバイナリ変換を行って、呼び出し命令を取得する。
任意に、呼び出し命令を起動するコードセグメント及び呼び出されるコードセグメントを取得することは、以下を含む。
呼び出されるコードセグメントのアドレスを呼び出しパラメータから取得する。
呼び出し命令が配置されているコードセグメントが呼び出し命令を起動するコードセグメントである状態で、呼び出されるコードセグメントを呼び出されるコードセグメントのアドレスに基づいて取得する。
従来技術と比較して、本開示は次のような効果がある。
本開示の技術的解決法を用いることにより、現在の操作要求に関連したサブデータ構造を、構築されたコードセグメント呼び出しデータ構造から取得し、現在の操作要求のイニシエータ、操作方法、及び操作対象をサブデータ構造に基づいて決定する。したがって、現在の操作要求は実施が許可されるかどうかを、サブデータ構造及び規則によって決定されたイニシエータ、操作方法、及び操作対象の間の比較結果によって判定する。上述の解決法により、現在の操作要求を実施前に分析可能になり、従来技術と比べて、現在の操作の危険性に対する分析が動作実行結果に依存せず、危険が発生する前に防御が可能になる。その上、従来技術において現在の操作それぞれを個々に分析するのとは違い、現在の操作要求に関連している動的かつ連続的なサブデータ構造を用いて現在の操作要求を記述する。よって、現在の操作要求を、現在の操作要求の前にあり、かつ現在の操作要求に関連している挙動と関連付けることにより、現在の操作要求が「正常」か「不正」かを効果的に判定することができる。よって、コンピュータシステムの挙動はイベント後でしか監視・分析できないという従来における不利益を解決し、現在の操作要求が「正常」か「不正」かを判断するために操作の挙動を「判定」することができないという従来における不利益を解決する。
さらに、本開示の特定の実施形態において、コンピュータシステムの挙動を標準化するための規則は、操作要求のイニシエータが規則の要件を満たしている場合、現在の操作要求は実施が許可され、また、操作要求のイニシエータ及び操作方法が規則の要件を満たしている場合、現在の操作要求は実施が許可され、さらに、操作要求のイニシエータ及び操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可され、操作要求のイニシエータ、操作方法、及び操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可されるものであり得る。このコンピュータシステムの挙動を標準化する規則は実際の状況に応じて決定可能であり、非常に順応性がある。
本開示のある特定の実施形態に係るコンピュータシステムの挙動を標準化する方法のフローチャートである。 コードセグメント呼び出しデータ構造を構築する方法のフローチャートである。 本開示のある特定の実施形態に係るコードセグメントの呼び出し関係の概略図である。 本開示のある特定の実施形態において構築されたコードセグメント呼び出しデータ構造の概略図である。
本開示のある特定の実施形態の範囲内において、現在の操作要求に関連するサブデータ構造はデータ構造から得られ、現在の操作要求のイニシエータ、操作方法及び操作対象は、サブデータ構造を基にして決定される。つまり、現在の操作要求の実行が許可されるかどうかは、サブデータ構造及び規則によって決定されたイニシエータと操作方法と操作対象との間の比較結果によって判断される。上述の解決方法によって、現在の操作要求の実行前にその現在の操作要求を分析することができるとともに、従来技術と比べて現在の操作の危険性分析が動作実行結果に依存しなくなり、危険が生じる前に防御が可能になる。さらに、従来技術において現在の操作の各々に対して別々に分析していたのとは異なり、現在の操作要求に関連した動的かつ連続的なサブデータ構造を用いて現在の操作要求を記述する。よって、現在の操作要求と、現在の操作要求より前にある、現在の操作要求に関連する挙動とを関連付けることにより、現在の操作要求を生じさせた理由が特定できるので、現在の操作要求が「正常」なのか「不正」なのかが、現在の操作要求を生じさせた関連する関係が「正常」か「不正」かを確認することで判断できる。これにより、コンピュータシステムの挙動はイベント後でしか監視・分析できないという従来技術の不利益が解決されるとともに、現在の操作要求が「正常」か「不正」かを判断するために操作の挙動を認識することができないという従来技術の不利益が解決される。
図1は、本開示のある特定の実施形態に係るコンピュータシステムの挙動を標準化する方法のフローチャートである。図1を参照すると、本開示のある特定の実施形態に係るコンピュータシステムの挙動を標準化する方法は、以下のステップを有している。
ステップS10では、呼び出し命令を取得し、呼び出し命令によって呼び出されるコードセグメントの情報を呼び出し命令に基づいて取得して、コードセグメント呼び出しデータ構造を構築する。ここで、コードセグメント呼び出しデータ構造は、呼び出し命令がノードとして配置されているコードセグメントを取り込むとともに、呼び出し命令によって構築された、呼び出し命令を起動するコードセグメントと、呼び出しパスとして呼び出されるコードセグメントとの間の呼び出し関係を取り込むことによって構築される。また、コードセグメント呼び出しデータ構造は数個のサブデータ構造を有している。
ステップS20では、現在の操作要求に関連したサブデータ構造をデータ構造から取得して、現在の操作要求が現在の呼び出し命令の実行動作である状態で、現在の操作要求のイニシエータ、操作方法、及び操作対象をサブデータ構造に基づいて決定する。
ステップS30では、コンピュータシステムの挙動を標準化するための規則を取得して、決定された現在の操作要求のイニシエータ、操作方法、及び操作対象を規則と比較して、現在の操作要求が許容可能かもしくは正当かどうかを判定する。
以下に、本開示の特定の実施形態に係るコンピュータシステムの挙動を標準化する方法を、特定の実施形態及び後述する図面と共に詳細に説明する。これにより、当業者であれば本開示の精神をよりよく理解できるであろう。
ステップS10において、呼び出し命令を取得し、呼び出し命令によって呼び出されるコードセグメントの情報を呼び出し命令に基づいて取得して、コードセグメント呼び出しデータ構造を構築する。ここで、コードセグメント呼び出しデータ構造は、呼び出し命令がノードとして配置されているコードセグメントを取り込むとともに、呼び出し命令によって構築された、呼び出し命令を起動するコードセグメントと、呼び出しパスとして呼び出されるコードセグメントとの間の呼び出し関係を取り込むことによって構築される。また、コードセグメント呼び出しデータ構造は数個のサブデータ構造を有している。
コンピュータは、順次実施するコードからなるセグメントをコードセグメントとして定義した状態で、コードを実行して機能間で呼び出しを行うことによってある機能を実現する。そして、コードセグメントを順次実施した後は、呼び出し命令を介して次のコードセグメントへとジャンプする。この原理に基づいて、コンピュータコードの動作プロセスを記述するためのデータ構造、すなわち本開示におけるコードセグメント呼び出しデータ構造が構築される。
コンピュータが操作中であるとき、コードセグメント呼び出しデータ構造は、呼び出し命令がノードとして配置されているコードセグメントを取り込むとともに、呼び出し命令によって構築された、呼び出し命令を起動するコードセグメントと、呼び出しパスとして呼び出されるコードセグメントとの間の呼び出し関係を取り込むことによって構築される。したがって、コードセグメント呼び出しデータ構造は、対応するノード及び呼び出しノードと被呼び出しノードとの間にそれぞれある呼び出しパスを有している。この呼び出しノードは、呼び出し命令を起動するコードセグメントを用いることによって構築されたノードのことを指し、被呼び出しノードは、呼び出し命令によって呼び出されるコードセグメント(すなわち被呼び出しコードセグメント)を用いることによって構築されたノードのことを指す。つまり、隣接する2つのノードを順に構築する際に、呼び出しノードは最初に構築されたノードのことを指し、被呼び出しノードは後で構築されたノードのことを指す。本開示におけるコードセグメント呼び出しデータ構造は、数個のサブデータ構造を有している。同期間で同時に数個の呼び出し命令を実施可能なので、数個の呼び出し命令は対応する次の数個のコードセグメントを呼び出す。よって、構築されたコードセグメント呼び出しデータ構造は、数個のサブデータ構造で構成されているデータ網になる。
図2は、コードセグメント呼び出しデータ構造を構築する方法のフローチャートである。図2によれば、コードセグメント呼び出しデータ構造を構築する方法は後述のステップで実施される。
ステップS21で、呼び出し命令を取得する。
ステップS22で、呼び出し命令を起動するコードセグメントと被呼び出しコードセグメントとを取得する。
ステップS23で、取得した呼び出し命令起動コードセグメントと取得した被呼び出しコードセグメントとを用いることによって、それぞれに対応する呼び出しノードと被呼び出しノードとを構築する。
ステップS24で、呼び出し命令を起動するコードセグメントと被呼び出しコードセグメントとの間で呼び出し関係を構築し、構築した呼び出し関係を呼び出しノードと被呼び出しノードとの間にある呼び出しパスとして取り込む。
コードセグメント呼び出しデータ構造を構築する方法を詳細に説明する。ステップS21では、呼び出し命令を取得する。本開示の特定の実施形態において、呼び出し命令はアセンブラ命令であり、コンピュータ上で動作しているコードは全て機械コードである。したがって、本開示の特定の実施形態において、呼び出し命令を取得することは、コンピュータ上で動作している機械コードに対してバイナリ変換を行って呼び出し命令を取得することを含む。具体的には、コンピュータ上で動作している機械コードに対してバイナリ変換行うことにより、機械コードをアセンブリ言語に変換する。このプロセスは逆アセンブリプロセスであり、アセンブラコードの取得後、アセンブラコード内の呼び出し命令を取得する。
図3は、本開示のある特定の実施形態に係るコードセグメントの呼び出し関係の概略図である。図3によれば、図3は複数のコードセグメントを示しており、それぞれは、A1〜Anコード行からなるコードセグメント11、B1〜Bnコード行からなるコードセグメント12、C1〜Cnコード行からなるコードセグメント13、M1〜Mnコード行からなるコードセグメント21、L1〜Lnコード行からなるコードセグメント31、E1〜Enコード行からなるコードセグメント41、F1〜Fnコード行からなるコードセグメント42、G1〜Gnコード行からなるコードセグメント43、R1〜Rnコード行からなるコードセグメント61、及びS1〜Snコード行からなるコードセグメント51である。ここで、Anコード行、Bnコード行、Cnコード行、Mnコード行、Lnコード行、Enコード行、Fnコード行、Gnコード行、Rnコード行、Snコード行は全て呼び出し命令であり、Anコード行、Bnコード行、Cnコード行、Mnコード行、Lnコード行、Enコード行、Fnコード行、Gnコード行、Rnコード行、及びSnコード行によって、図3に示されたコンピュータコードは複数のコードセグメント、すなわち、コードセグメント11、コードセグメント12、コードセグメント13、コードセグメント21、コードセグメント31、コードセグメント41、コードセグメント42、コードセグメント43、コードセグメント51、及びコードセグメント61に分割されている。コードセグメント11、コードセグメント12、コードセグメント13、コードセグメント21、及びコードセグメント31が、互いに関連しているコードセグメントのグループを形成し、それぞれの間にある呼び出し関係によってサブデータ構造が形成できる。同様に、コードセグメント41、コードセグメント42、コードセグメント43、コードセグメント51、及びコードセグメント61が互いに関連しているコードセグメントの別のグループを形成し、それぞれの間にある呼び出し関係によってサブデータ構造が形成できる。図3に示す本開示の本実施形態では、コンピュータは、コードセグメント11の実行後にAnコード行を用いてコードセグメント21を呼び出している。同様に、コードセグメント21の実行後にMnコード行を用いてコードセグメント31を、コードセグメント31の実行後にLnコード行を用いてコードセグメント12を、そしてコードセグメント12の実行後にBnコード行を用いてコードセグメント13を呼び出している。また、コンピュータは、コードセグメント41の実行後にEnコード行を用いてコードセグメント51を、コードセグメント51の実行後にSnコード行を用いてコードセグメント61を、コードセグメント61の実行後にRnコード行を用いてコードセグメント42を、そしてコードセグメント42の実行後にFnコード行を用いてコードセグメント43を呼び出す。理解しやすいように、図3は数例のコードセグメントのみを模式的に示しているが、当業者なら呼び出し命令のデータ構造の構築もよく理解している。
本開示の本特定の実施形態において、Anコード行、Bnコード行、Cnコード行、Mnコード行、Lnコード行、Enコード行、Fnコード行、Gnコード行、Rnコード行、及びSnコード行は全て機械コードであり、これらの機械コードに対してバイナリ変換を行うことにより、アセンブリ言語での呼び出し命令を取得する。
ステップS21の後にステップS22を実施し、このステップで呼び出し命令を起動するコードセグメントと被呼び出しコードセグメントとが取得される。例えば、ステップS21で取得した呼び出し命令がAnコード行によって表される呼び出し命令である場合、ステップS22でこの呼び出し命令を起動するコードセグメント11と被呼び出しコードセグメント21とが取得される。ステップS21で取得した呼び出し命令がMnコード行によって表される呼び出し命令である場合、ステップS22で呼び出し命令を起動するコードセグメント21と被呼び出しコードセグメント31とが取得される。
ステップS23は、取得された呼び出し命令起動コードセグメントと取得された被呼び出しコードセグメントとを用いてノードを構築するようにして実施される。以下において、ステップS23を図3及び図4とともに説明する。コードセグメント11の実施後、コードセグメント11を用いてノードP11を構築する。その後、Anコード行で表されている呼び出し命令によってコードセグメント21を呼び出し、コードセグメント21の実施後に、コードセグメント21を用いてノードP21を構築する。その後、Mnコード行で表されている呼び出し命令によってコードセグメント31を呼び出し、コードセグメント31の実施後に、コードセグメント31を用いてノードP31を構築する。その後、Lnコード行で表されている呼び出し命令によってコードセグメント12を呼び出し、コードセグメント12の実施後に、コードセグメント12を用いてノードP12を構築する。その後、Bnコード行で表されている呼び出し命令によってコードセグメント13を呼び出し、コードセグメント13の実施後に、コードセグメント13を用いてノードP13を構築する。もう一方のコードセグメントグループに対しても、コードセグメント41の実施後、コードセグメント41を用いてノードN41を構築する。その後、Enコード行で表されている呼び出し命令によってコードセグメント51を呼び出し、コードセグメント51の実施後、コードセグメント51を用いてノードN51を構築する。その後、Snコード行で表されている呼び出し命令によってコードセグメント61を呼び出し、コードセグメント61の実施後、コードセグメント61を用いてノードN61を構築する。その後、Rnコード行で表されている呼び出し命令によってコードセグメント42を呼び出し、コードセグメント42の実施後、コードセグメント42を用いてノードN42を構築する。その後、Fnコード行で表されている呼び出し命令によってコードセグメント43を呼び出し、コードセグメント43の実施後、コードセグメント43を用いてノードN413を構築する。
ステップS24において、呼び出し命令を起動するコードセグメントと被呼び出しコードセグメントとの間の呼び出し関係を構築し、構築された呼び出し関係を、呼び出しノードと被呼び出しノードとの間にある呼び出しパスとして取り込む。引き続き図3を一例として用いて、図4とともに説明を行う。コードセグメント11のノードP11とコードセグメント21のノードP21の間にある呼び出しパスT1を、コードセグメント11(Anコード行に対応する呼び出し命令のイニシエータ)からコードセグメント21(Anコード行に対応する呼び出し命令の呼び出し対象、Mnコード行に対応する呼び出し命令のイニシエータ)への呼び出し関係を用いて構築し、コードセグメント21のノードP21とコードセグメント31のノードP31の間にある呼び出しパスT2を、コードセグメント21からコードセグメント31への呼び出し関係を用いて構築し、コードセグメント31のノードP31とコードセグメント12のノードP12との間にある呼び出しパスT3を、コードセグメント31からコードセグメント12への呼び出し関係を用いて構築し、コードセグメント12のノードP12とコードセグメント13のノードP13の間にある呼び出しパスT4を、コードセグメント12からコードセグメント13への呼び出し関係を用いて構築することによって、根ノードから現ノードまでの各ノードの間にある全呼び出しパスが構築される。また、コードセグメント41のノードN41とコードセグメント51のノードN51の間にある呼び出しパスK1を、コードセグメント41(Enコード行に対応する呼び出し命令のイニシエータ)からコードセグメント51(Enコード行に対応する呼び出し命令の呼び出し対象、Snコード行に対応する呼び出し命令のイニシエータ)への呼び出し関係を用いて構築し、コードセグメント51のノードN51とコードセグメント61のノードN61の間にある呼び出しパスK2を、コードセグメント51からコードセグメント61への呼び出し関係を用いて構築し、コードセグメント61のノードN61とコードセグメント42のノードN42の間にある呼び出しパスK3を、コードセグメント61からコードセグメント42への呼び出し関係を用いて構築し、コードセグメント42のノードN42とコードセグメント43のノードN3との間にある呼び出しパスK4を、コードセグメント42からコードセグメント43への呼び出し関係を用いて構築することによって、根ノードから現ノードまでの各ノードの間にある全呼び出しパスが構築される。
上述した2つのコードセグメントグループの呼び出し関係において、コードセグメント11、コードセグメント12、コードセグメント13、コードセグメント21、及びコードセグメント31のそれぞれの間の呼び出し関係は、ノードP11、P21、P31、P12、P13及び呼び出しパスT1、T2、T3、T4を有するサブデータ構造を構築する。一方、コードセグメント41、コードセグメント42、コードセグメント43、コードセグメント51、及びコードセグメント61のそれぞれの間の呼び出し関係は、ノードN41、N51、N61、N42、N43及び呼び出しパスK1、K2、K3、K4を有する別のサブデータ構造を構築する。当業者が理解しやすいように、図3及び図4は一例を示したにすぎない。つまり、本開示におけるコードセグメント呼び出しデータ構造は数個のサブデータ構造を含むデータ網であり、各サブデータ構造内のコードセグメントは互いに関連付けられている。
このようにして、いったんコードセグメントを実施すると、すなわち、いったん呼び出し命令を実行すると、この呼び出し命令を起動するコードセグメントを用いてノードを構築するので、根ノードから現ノードまでの全ノードの構築が可能であるとともに、呼び出しノードと被呼び出しノードとは構築された呼び出しパスによって結び付けられている。
なお、このデータ構造を構築する方法は動的プロセスであり、いったん呼び出し命令を取得すると、この呼び出し命令を起動するコードセグメントと呼び出されるコードセグメントとが取得され、その後、取得されたこの呼び出し命令を起動するコードセグメントと取得された被呼び出しコードセグメントとを用いてノードを構築する。呼び出しノードと被呼び出しノードとの間にある呼び出しパスは、この呼び出し命令を起動するコードセグメントと被呼び出しコードセグメントとの間の呼び出し関係を用いて構築される。
既存のコンピュータはスタック型コンピュータであり、スタック領域はコンパイラによって自動的に割り当て・解放が行われて、呼び出し命令の呼び出しパラメータを格納する。よって、呼び出しパラメータは、呼び出し命令によって呼び出される次のコードセグメント(すなわち被呼び出しコードセグメント)のアドレス、次のコードセグメントの操作方法及び操作内容を含んでいる。ここで、操作方法とは操作を完了させる方法であり、操作内容は操作に関係する対象である。次の、ファイルを削除するというコードセグメントを例にとると、操作方法は削除すること、操作内容はファイルである。
本開示の特定の実施形態において、呼び出されるコードセグメントのアドレスは、被呼び出しコードセグメント内の例えば1番目のコード行のアドレスといった呼び出しパラメータから取得される。図3を一例として、呼び出されるコードセグメントがコードセグメント21である場合、呼び出されるコードセグメントの取得されたアドレスはM1コード行のアドレス、つまり、コードセグメント21内の1番目のコード行のアドレスである。したがって、呼び出されるコードセグメントは呼び出されるコードセグメントのアドレスに基づいて取得され、呼び出し命令が配置されているコードセグメントは呼び出し命令を起動するコードセグメントである。
上記で説明したデータ構造を用いて、コンピュータの動作状態を記述することができる。このデータ構造は非常に大きなデータ構造網であり、その中にはたくさんのデータ構造が、各サブデータ構造が関連するコードセグメントの中の呼び出し関係に対応している状態で含まれている。
ステップS20では、現在の操作要求に関連したサブデータ構造をデータ構造から取得し、現在の操作要求のイニシエータ、操作方法、及び操作対象をそのサブデータ構造に基づいて決定する。言い換えると、動的かつ連続的なサブデータ構造を用いて現在の操作要求の特徴、つまり、現在の操作要求の特徴を記述する。この操作要求は呼び出し命令によってコードを呼び出す実行動作を、操作方法は呼び出し命令のために呼び出されるコードセグメントの属性、つまり、操作を実現する方法を、そして操作対象は呼び出されるコードセグメントが実行動作を行う対象、つまり、操作される内容をそれぞれ指す。例えば、現在の操作要求がファイルを削除するコードセグメントを呼び出すことである場合、現在の操作要求に対する操作方法は「消去する」という実行動作であり、操作内容は削除されるファイル、すなわち、操作が行われる内容である。
本開示の特定の実施形態において、サブデータ構造を取得するための条件を事前設定することが可能であり、現在の操作要求が事前設定条件を満たしている場合に、現在の操作要求に関連したサブデータ構造が取得される。したがって、本開示の特定の実施形態において、現在の操作要求に関連したサブデータ構造をデータ構造から取得することは、サブデータ構造を取得するための条件を事前設定し、現在の操作要求が事前設定条件を満たす場合に、現在の操作要求に関連したサブデータ構造を、現在の操作要求に関連したノード及び呼び出しパスをデータ構造に基づいて後戻りすることによって取得することを含む。図3及び図4に示されている例を一例とすると、現在の操作要求がBnコード行で表されている呼び出し命令によって実施される実行動作とFnコード行で表されている呼び出し命令によって実施される実行動作である場合、構築されたデータ構造に基づいて、Bnコード行に対応する現在の操作要求に対して、現在の操作要求に関連したノード及び呼び出しパスを後戻りして取得することによって、現在の操作要求に関連したサブデータ構造を取得する。ここでサブデータ構造はノードP11、P21、P31、P12と呼び出しパスT1、T2、T3とを含んでいる。Fnコード行に対応する現在の操作要求に対しては、現在の操作要求に関連したノード及び呼び出しパスを後戻りして取得することによって、現在の操作要求に関連したサブデータ構造を取得する。ここでサブデータ構造はノードN41、N51、N61、N42及び呼び出しパスK1、K2、K3を含んでいる。現在の操作要求より前にある、関連しているノードを、現在の操作要求を最初に起動するノードまで後戻りすることによって、現在の操作要求のサブデータ構造を取得する。
本開示の特定の実施形態において、現在の操作要求はアセンブラ命令であり、コンピュータ上で動作するコードは全て機械コードである。よって、コンピュータ上で動作しているコードに対してバイナリ変換を行って現在の呼び出し命令を取得すことによって、現在の操作要求を取得しなければならない。その後、事前設定条件に従って、取得された現在の操作要求が事前設定条件を満たしているかどうかを判定し、事前設定条件を満たしている場合に現在の操作要求に関連したサブデータ構造を取得する。具体的には、動作しているコンピュータコードに対してバイナリ変換を行うことによって、機械コードをアセンブリ言語に変換する。このプロセスは逆アセンブリプロセスである。そしてアセンブラコードの取得後に、アセンブラコード内の呼び出し命令を取得することによって現在の操作要求を取得する。その後、取得した現在の操作要求が事前設定条件を満たしているかどうかを判定し、事前設定条件を満たしている場合に現在の操作要求に関連したサブデータ構造を取得する。
本開示の特定の実施形態において、コンピュータの動作領域は少なくとも2つのサブ領域に分割可能であり、サブデータ構造を取得するための事前設定条件は、1つのサブ領域内の操作要求は別のサブ領域内のコードセグメントを呼び出すことである。次のコードセグメント(操作要求として解釈可能)を呼び出すためにコンピュータは頻繁に操作され、また、ある程度の操作要求によって次のコードセグメントを呼び出してもコンピュータの動作には実体的な影響を及ぼさないので、コンピュータの動作領域は少なくとも2つのサブ領域、例えば8個のサブ領域に分割可能である。また、各サブ領域は他の2つのサブ領域に隣接しているとして定義可能であり、各サブ領域はさらに、各操作要求に対して分割されるまで、つまり、各操作要求に対して有効性判定を行うまで、任意に無限に分割可能である。ある操作要求がサブ領域の間の境界を越えることである場合に、操作要求に対する有効性検証メカニズムが生じる。すなわち、コンピュータの動作のための領域を複数のサブ領域に分割する場合、サブデータ構造を取得する条件を以下のように設定可能である。あるサブ領域内の呼び出し命令が別のサブ領域内のコードセグメントを呼び出すことである場合に、現在の操作要求に関連しているサブデータ構造を取得する。
その後、取得された現在の操作要求に関連したサブデータ構造に基づいて、現在の操作要求のイニシエータを決定するとともに、現在の操作要求の操作方法及び操作対象を決定する。具体的には、取得された現在の操作要求に関連したサブデータ構造に基づいて、取得された現在の操作要求に関連したサブデータ構造を現在の操作要求のイニシエータとして決定する。例えば、現在の操作要求がBnコード行で表されている呼び出し命令によって実施される実行動作である場合に、ノードP11、P21、P31、P12及びこれらのノードの間の呼び出しパスT1、T2、T3を含んでいるデータ構造が現在の操作要求に関連しているサブステート構造である。現在の操作要求に対する呼び出しパラメータに基づいて、現在の操作要求によって呼び出される次のコードセグメント(呼び出されるコードセグメント)に対する操作方法及び操作対象、つまり、現在の操作要求の操作方法及び操作対象を決定する。
現在の操作要求のイニシエータ、操作方法、及び操作対象の決定後、コンピュータシステムの挙動を標準化する規則を取得するステップS30を実施して、決定された現在の操作要求及び規則のイニシエータ、操作方法、及び操作対象の間で照合操作または比較操作を行うことにより、現在の操作要求が許容できるかどうかを判定する。本開示の特定の実施形態では、コンピュータシステムの挙動を標準化する規則は、操作要求のイニシエータ、操作要求の操作方法、及び操作要求の操作対象という3つの要素を有している。よって、コンピュータシステムの挙動を標準化する規則は、現在の操作要求のイニシエータが規則の要件を満たしている場合、現在の操作要求は実施が許可され、また、現在の操作要求のイニシエータ及び操作方法が規則の要件を満たしている場合には、現在の操作要求は実施が許可され、現在の操作要求のイニシエータ及び操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可され、現在の操作要求のイニシエータ、操作方法、及び操作対象が規則の要件を満たしている場合には、現在の操作要求は実施が許可される。具体的には、4つの事例が存在し得る。第1の事例では、操作要求のイニシエータによって、現在の操作要求の動作を許可するかどうか判定する。第2の事例では、操作要求のイニシエータ及び操作要求の操作方法によって、現在の操作要求の動作を許可するかどうか判定する。第3の事例では、操作要求のイニシエータ及び操作要求の操作対象によって、現在の操作要求の動作を許可するかどうか判定する。第4の事例では、操作要求のイニシエータ、操作要求の操作方法、及び操作要求の操作対象によって、現在の操作要求の動作を許可するかどうか判定する。
以下に、本開示の方法を具体例と共に例示する。
「サブデータ構造を取得するための事前設定条件」は、メモリ実行コードのサブ領域(システムコードマッピングのメカニズムにより、システムマッピング構造における実行コードの範囲、つまり、メモリ実行コードのサブ領域を決定する)と、持続型デバイスの構造的データのサブ領域(持続型デバイスは記憶装置であり、構造的データはファイル形式で存在するデータを指す)を有している。
第1例
以下に説明する本開示の方法を用いることによって、メモリ実行コードが書き換えられたり組み替えられたりすることを抑制する。
バイナリ変換を行うことによって現在の操作要求を判定し、現在の操作要求がメモリ実行コードに対して操作するものか、もしくはメモリ実行コードを操作するものであれば、「不正な」分析を作動させる(つまり、サブデータ構造を取得する事前設定条件を作動させる)。
現在の操作要求に関連したノード及び呼び出しパスを後戻りすることによって、現在の操作要求に関連したサブデータ構造を取得する。
取得された現在の操作要求のサブデータ構造にしたがって、現在の操作要求のイニシエータ、つまり、現在の操作要求を生成する全ての呼び出しプロセスまたは引用プロセス、すなわち、現在の操作要求に関連している全てのノード及び呼び出しパスを決定する。
後戻りすることによって取得した現在の操作要求のサブデータ構造を現在の操作要求のイニシエータとして取り込み、イニシエータ及び規則に対して照合操作または比較操作を行い、現在の操作要求が初期化または引用によって起動した再マッピングであるかどうかを判定することによって、実行コードを書き換えまたは組み替え可能である現在の操作要求の動作を許可するかどうかを判定する。ここで、許容外の操作が発生している場合には、書き換え及び組み替え動作が生じないようにすることができる。
第2例
以下に説明するように、操作要求のイニシエータを分析することにより、持続型デバイス(記憶装置)の構造的データ(ファイル形式で存在するデータ)が侵入によって破壊されることを抑制する。
バイナリ変換を行うことによって現在の操作要求を判定し、現在の操作要求が持続型デバイスの構造的データに対して操作するものであれば、「不正な」分析を作動させる(つまり、サブデータ構造を取得する事前設定条件を作動させる)。
現在の操作要求の生成プロセスを後戻りすることによって、つまり、現在の操作要求に関連したノード及び呼び出しパスを後戻りすることによって、現在の操作要求に関連したサブデータ構造を取得する。
取得された現在の操作要求のサブデータ構造にしたがって、現在の操作要求のイニシエータ、つまり、現在の操作要求を生成する全ての呼び出しプロセスまたは引用プロセス、すなわち、現在の操作要求に関連している全てのノード及び呼び出しパスを決定する。
取得した現在の操作要求のサブデータ構造を現在の操作要求のイニシエータとして取り込み、イニシエータ及び規則に対して照合操作を行い、現在の操作要求の動作を許可するかどうかを判定する。ここで、構造的データの書き込み操作の生成プロセスは、コンピュータのスタックデバイスのスタック層に応じて順次下方に送るプロセスである(規則に対応して、操作要求のイニシエータは連続的なノード及び呼び出しパスで構成されているサブデータ構造である)。現在の操作要求の生成プロセスが非連続プロセスである(つまり、呼び出しパスが連続していない)場合、現在の操作要求はあるデバイスに侵入するための操作要求であり、現在の操作要求は許容外の操作要求である。したがって、現在の操作要求の実行または動作は許可されないので、持続型デバイス(記憶装置)の構造的データが侵入によって破壊されることを防止する。
本開示を用いることによって、コンピュータの動作中に、コードセグメント呼び出しデータ構造を構築し、データ構造は数個のサブデータ構造を、各サブデータ構造内のノードが互いに関連している状態で有している。すなわち、それらの間には呼び出し関係が存在していて、構築されたデータ構造は動的で、コンピュータの動作とともに構築されることにより、データ構造は動的で連続したデータ構造になる。現在の操作要求の取得後、現在の操作要求に関連しているサブデータ構造は、後戻りして効果的な「証拠となる連係」を形成することによって取得可能である。したがって、現在の操作要求のイニシエータ、操作方法、及び操作対象をサブデータ構造にしたがって決定する(効果的な「証拠となる連係」)ことにより、現在の操作要求を関連性のないプロセスではなく動的で連続したプロセスととらえるので、このような動的かつ連続的なサブデータ構造と規則によって決定されたイニシエータ、操作方法及び操作対象の間での比較を判定することによって、現在の操作要求が「正常」か「不正」かを判定することが可能になり、この結果、コンピュータシステムの挙動を標準化できる。さらに、本開示におけるコンピュータシステムの挙動の標準化は、事前に防止することによって行うものであり、従来技術のようにイベントが起こった後に修復することによって行うものではない。本開示をコンピュータセキュリティ分野に適用すると、コンピュータシステムのセキュリティを確保でき、従来技術において、ある特定の挙動の正当性をある特定の挙動自体のみによって判断する場合に「何にでも適合する(one−size−fits−all)」現象が生じてしまい、正常な挙動と不正なコードによって引き起こされる挙動を両方とも制限する、あるいは制限しないでおくせいでコンピュータシステムのセキュリティを制御できなくなるということを回避できる。
さらに、本開示の特定の実施形態では、コンピュータシステムの挙動を標準化する規則は以下のようになり得る。操作要求のイニシエータが規則の要件を満たしている場合に、現在の操作要求は実施が許可される。一方、操作要求のイニシエータ及び操作方法が規則の要件を満たしている場合、現在の操作要求は実施が許可されるし、また、操作要求のイニシエータ及び操作対象が規則の要件を満たしている場合も、現在の操作要求は実施が許可される。さらには、操作要求のイニシエータ、操作方法、及び操作対象が規則の要件を満たしている場合、現在の操作要求は実施が許可される。コンピュータシステムの挙動を標準化する規則は実際の状況に応じて決定可能であり、非常に順応性がある。
上述の各例は本開示の特定の実施形態に過ぎず、当業者が本開示の精神をよりよく理解するためのものである。しかしながら、本開示の保護範囲はこれら特定の実施形態によって限定されるものではなく、本開示の精神から逸脱することなく、当業者による本開示の特定の実施形態の変更が可能であり、それもまた本開示の保護範囲に含まれる。

Claims (10)

  1. コンピュータシステムの挙動を標準化する方法であって、
    呼び出し命令を取得し、前記呼び出し命令によって呼び出されるコードセグメントの情報を前記呼び出し命令に基づいて取得し、コードセグメント呼び出しデータ構造を構築し、前記コードセグメント呼び出しデータ構造は、前記呼び出し命令がノードとして配置されているコードセグメントを取り込むとともに、前記呼び出し命令によって構築された、前記呼び出し命令を起動するコードセグメントと、呼び出しパスとして呼び出されるコードセグメントとの間の呼び出し関係を取り込むことによって構築され、前記コードセグメント呼び出しデータ構造は数個のサブデータ構造を備えており、
    現在の操作要求に関連したサブデータ構造を前記データ構造から取得して、前記現在の操作要求のイニシエータ、操作方法、及び操作対象を前記サブデータ構造に基づいて決定し、
    前記コンピュータシステムの挙動を標準化するための規則を取得し、決定された前記現在の操作要求のイニシエータ、操作方法、及び操作対象を前記規則と比較して、前記現在の操作要求が許容できるかどうかを判定する方法。
  2. 前記コンピュータシステムの挙動を標準化するための規則は、前記呼び出し命令のイニシエータ、前記呼び出し命令の操作方法、及び前記呼び出し命令の操作対象である3つの要素を備えており、
    前記コンピュータシステムの挙動を標準化するための規則は、前記現在の操作要求の前記イニシエータが前記規則の要件を満たしている場合、前記現在の操作要求は実施が許可され、また、前記現在の操作要求の前記イニシエータ及び前記操作方法が前記規則の要件を満たしている場合、前記現在の操作要求は実施が許可され、さらに、前記現在の操作要求の前記イニシエータ及び前記操作対象が前記規則の要件を満たしている場合、前記現在の操作要求は実施が許可され、前記現在の操作要求の前記イニシエータ、前記操作方法、及び前記操作対象が前記規則の要件を満たしている場合、前記現在の操作要求は実施が許可される、請求項1記載のコンピュータシステムの挙動を標準化する方法。
  3. 前記イニシエータは、前記現在の操作要求よりも前にあり、前記現在の操作要求に関連している全てのノード及び呼び出しパスで構成されているサブデータ構造である、請求項1または2に記載のコンピュータシステムの挙動を標準化する方法。
  4. 前記操作対象は、前記現在の操作要求に対して呼び出される前記コードセグメントによって操作される内容である、請求項1記載のコンピュータシステムの挙動を標準化する方法。
  5. 前記操作方法は、前記現在の操作要求に対して呼び出される前記コードセグメントによって実施される操作である、請求項1記載のコンピュータシステムの挙動を標準化する方法。
  6. 前記現在の操作要求に関連したサブデータ構造をデータ構造から取得することは、
    前記サブデータ構造を取得するための条件を事前設定し、
    前記現在の操作要求が前記事前設定条件を満たしている場合には、前記データ構造に基づいて、前記現在の操作要求に関連した前記ノード及び前記呼び出しパスを後戻りして、前記現在の操作要求に関連した前記サブデータ構造を取得することを含む、請求項1記載のコンピュータシステムの挙動を標準化する方法。
  7. さらに、コンピュータの動作領域を少なくとも2つのサブ領域に分割し、
    サブデータ構造を取得するための前記事前設定条件は、1つのサブ領域内にある操作要求が他のサブ領域内にあるコードセグメントを呼び出すという条件である、請求項6記載のコンピュータシステムの挙動を標準化する方法。
  8. 前記データ構造の構築は、
    前記呼び出し命令を取得し、
    前記呼び出し命令を起動する前記コードセグメント及び前記呼び出されるコードセグメントを取得し、
    取得された前記呼び出し命令を起動する前記コードセグメント及び取得された前記呼び出されるコードセグメントを用いることによって、呼び出しノード及び被呼び出しノードをそれぞれ構築し、
    前記呼び出し命令を起動する前記コードセグメントと前記呼び出されるコードセグメントとの間の呼び出し関係を構築し、前記構築された呼び出し関係を前記呼び出しノードと前記被呼び出しノードの間にある呼び出しパスとして取り込む、請求項1記載のコンピュータシステムの挙動を標準化する方法。
  9. 前記呼び出し命令はアセンブラ命令であり、前記呼び出し命令の取得は、動作している前記コンピュータコードに対してバイナリ変換を行って、前記呼び出し命令を取得する、請求項8記載のコンピュータシステムの挙動を標準化する方法。
  10. 前記呼び出し命令を起動する前記コードセグメント及び前記呼び出されるコードセグメントの取得は、
    前記呼び出されるコードセグメントのアドレスを呼び出しパラメータから取得し、
    前記呼び出し命令が配置されている前記コードセグメントが前記呼び出し命令を起動する前記コードセグメントである状態で、前記呼び出されるコードセグメントを前記呼び出されるコードセグメントのアドレスに基づいて取得する、請求項8記載のコンピュータシステムの挙動を標準化する方法。
JP2013538027A 2010-12-21 2010-12-21 コンピュータシステムの実行動作を標準化する方法 Expired - Fee Related JP5615444B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/080034 WO2012083521A1 (zh) 2010-12-21 2010-12-21 规范计算机系统行为的方法

Publications (2)

Publication Number Publication Date
JP2013542536A true JP2013542536A (ja) 2013-11-21
JP5615444B2 JP5615444B2 (ja) 2014-10-29

Family

ID=46313022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013538027A Expired - Fee Related JP5615444B2 (ja) 2010-12-21 2010-12-21 コンピュータシステムの実行動作を標準化する方法

Country Status (5)

Country Link
US (1) US9230067B2 (ja)
EP (1) EP2657872A4 (ja)
JP (1) JP5615444B2 (ja)
CN (1) CN102971741A (ja)
WO (1) WO2012083521A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330864A (ja) * 2005-05-24 2006-12-07 Hitachi Ltd サーバ計算機システムの制御方法
JP2008021274A (ja) * 2006-06-15 2008-01-31 Interlex Inc プロセス監視装置及び方法
WO2010001766A1 (ja) * 2008-07-02 2010-01-07 国立大学法人 東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
JP2010211257A (ja) * 2009-03-06 2010-09-24 Sky Co Ltd 操作監視システム及び操作監視プログラム
CN101872400A (zh) * 2009-04-24 2010-10-27 汪家祥 建立根据计算系统操作请求关联关系判断计算机操作请求安全性的计算机信息安全防护方法
WO2011041871A1 (en) * 2009-10-08 2011-04-14 Irdeto Canada Corporation A system and method for aggressive self-modification in dynamic function call systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL132915A (en) * 1999-11-14 2004-05-12 Networks Assoc Tech Inc Method for secure function execution by calling address validation
US7076557B1 (en) * 2000-07-10 2006-07-11 Microsoft Corporation Applying a permission grant set to a call stack during runtime
EP1388054B1 (en) 2001-05-11 2010-08-04 Computer Associates Think, Inc. Method and system for transforming legacy software applications into modern object-oriented systems
US7546587B2 (en) * 2004-03-01 2009-06-09 Microsoft Corporation Run-time call stack verification
US7966643B2 (en) * 2005-01-19 2011-06-21 Microsoft Corporation Method and system for securing a remote file system
US20060259947A1 (en) * 2005-05-11 2006-11-16 Nokia Corporation Method for enforcing a Java security policy in a multi virtual machine system
US8555061B2 (en) * 2005-05-13 2013-10-08 Microsoft Corporation Transparent code
US7950056B1 (en) * 2006-06-30 2011-05-24 Symantec Corporation Behavior based processing of a new version or variant of a previously characterized program
US8156536B2 (en) * 2006-12-01 2012-04-10 Cisco Technology, Inc. Establishing secure communication sessions in a communication network
US20090210888A1 (en) * 2008-02-14 2009-08-20 Microsoft Corporation Software isolated device driver architecture
CN101282332B (zh) 2008-05-22 2011-05-11 上海交通大学 面向网络安全告警关联的攻击图生成系统
US20100125830A1 (en) * 2008-11-20 2010-05-20 Lockheed Martin Corporation Method of Assuring Execution for Safety Computer Code
US8468113B2 (en) * 2009-05-18 2013-06-18 Tufin Software Technologies Ltd. Method and system for management of security rule set

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330864A (ja) * 2005-05-24 2006-12-07 Hitachi Ltd サーバ計算機システムの制御方法
JP2008021274A (ja) * 2006-06-15 2008-01-31 Interlex Inc プロセス監視装置及び方法
WO2010001766A1 (ja) * 2008-07-02 2010-01-07 国立大学法人 東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
JP2010211257A (ja) * 2009-03-06 2010-09-24 Sky Co Ltd 操作監視システム及び操作監視プログラム
CN101872400A (zh) * 2009-04-24 2010-10-27 汪家祥 建立根据计算系统操作请求关联关系判断计算机操作请求安全性的计算机信息安全防护方法
WO2011041871A1 (en) * 2009-10-08 2011-04-14 Irdeto Canada Corporation A system and method for aggressive self-modification in dynamic function call systems

Also Published As

Publication number Publication date
US9230067B2 (en) 2016-01-05
WO2012083521A1 (zh) 2012-06-28
CN102971741A (zh) 2013-03-13
US20130219464A1 (en) 2013-08-22
EP2657872A1 (en) 2013-10-30
JP5615444B2 (ja) 2014-10-29
EP2657872A4 (en) 2017-02-08

Similar Documents

Publication Publication Date Title
JP6317435B2 (ja) マルウェア検出のための複雑なスコアリング
JP6829718B2 (ja) 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法
JP5420734B2 (ja) オブジェクトへの制御されたアクセスを有するソフトウェアシステム
AU2006210698B2 (en) Intrusion detection for computer programs
CN110912876A (zh) 面向信息系统的拟态防御系统、方法及介质
CN104866762B (zh) 安全管理程序功能
KR100843701B1 (ko) 콜 스택에 기록된 정보를 이용한 에이피아이 확인방법
CN105408911A (zh) 硬件和软件执行概况分析
CN104700026A (zh) 基于java字节码插桩和java方法挂钩检测java沙箱逃逸攻击
CN104081404A (zh) 使用动态优化框架的应用沙盒化
CN107908958B (zh) SELinux安全标识符防篡改检测方法及系统
US20060129880A1 (en) Method and system for injecting faults into a software application
US8763129B2 (en) Vulnerability shield system
US20160246590A1 (en) Priority Status of Security Patches to RASP-Secured Applications
CN105426751A (zh) 一种防止篡改系统时间的方法及装置
CN102222189A (zh) 一种保护操作系统的方法
EP2224369B1 (en) Method, SOA registry and SOA repository for granting a user secure access to resources of a process
EP3831031B1 (en) Listen mode for application operation whitelisting mechanisms
JP5615444B2 (ja) コンピュータシステムの実行動作を標準化する方法
KR102525655B1 (ko) 문서 저장 제어 방법
CN108399330A (zh) 监控可编程逻辑控制器的执行系统的系统和方法
CN113296916A (zh) 脚本调度方法、设备、存储介质及计算机程序产品
Kornienko et al. Methodology of conflict detection and resolution in cyber attacks protection software on railway transport
KR102454845B1 (ko) 스마트 컨트랙트 재작성기
KR100939076B1 (ko) TLS Callback을 이용한 코드 변조 방지 방법 및시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140718

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: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140909

R150 Certificate of patent or registration of utility model

Ref document number: 5615444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees