JP5852676B2 - 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム - Google Patents

権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム Download PDF

Info

Publication number
JP5852676B2
JP5852676B2 JP2013550717A JP2013550717A JP5852676B2 JP 5852676 B2 JP5852676 B2 JP 5852676B2 JP 2013550717 A JP2013550717 A JP 2013550717A JP 2013550717 A JP2013550717 A JP 2013550717A JP 5852676 B2 JP5852676 B2 JP 5852676B2
Authority
JP
Japan
Prior art keywords
software application
computer software
access
computer
instruction
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 - Fee Related
Application number
JP2013550717A
Other languages
English (en)
Other versions
JP2014507718A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014507718A publication Critical patent/JP2014507718A/ja
Application granted granted Critical
Publication of JP5852676B2 publication Critical patent/JP5852676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Description

本発明は、一般に、コンピュータ・ソフトウェアのセキュリティおよび分析に関する。
権限昇格(PE)攻撃とは、攻撃者が、制御が不十分であることもしくは存在しないことを利用して、特別許可された権限をもつ有効なユーザによるアクセスのみを対象とする、または特別許可ではない権限をもつ有効なユーザによるアクセスを対象とするが、攻撃者に対しては侵入禁止であるよう意図されているコンピュータ・ソフトウェア・アプリケーション・リソースへのアクセスを獲得しようと試みる、コンピュータ・ベースの攻撃の1つのタイプを指す。コンピュータ・ソフトウェア・アプリケーションを、その開発中に検査して、PE攻撃に脆弱かを判定することは有益である。
権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定することを課題とする。
本発明の一態様では、権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法が提供され、その方法には、コンピュータ・ソフトウェア・アプリケーションの命令のアクセス制限領域候補(candidate access-restricted area)を識別することと、アクセス制限領域候補を静的に分析して、アクセス制限領域候補への実行フローを制御する条件付き命令の有無を判定することと、静的分析を実施して、条件付き命令がコンピュータ・ソフトウェア・アプリケーション内のデータ・ソースに依存しているかを判定することと、条件付き命令がないか、データ・ソースがない場合、アクセス制限領域候補を権限昇格攻撃に脆弱として指定することとが含まれる。本発明を具体化する、システムおよびコンピュータ・プログラム製品も提供される。
本発明は、添付図面とともに取り上げられる後述の詳細な説明から、より完全に理解されよう。
本発明の一実施形態による、権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するシステムの概念図である。 本発明の一実施形態による、図1のシステムの例示的動作方法の流れ図である。 本発明の一実施形態による、コンピュータ・ソフトウェア・アプリケーション命令の例である。 本発明の一実施形態による、コンピューティング・システムの例示的ハードウェア実装形態のブロック図である。
次に、1つまたは複数の実施形態に照らして本発明を説明するが、説明は、本発明を全体として例示することを意図し、したがって本発明を、示される実施形態に限定するとみなされるべきではない。本明細書に具体的に示されてはいないが本発明の趣旨および範囲内にある様々な修正形態を当業者であれば思いつくであろうことが理解される。
当業者には理解されようが、本発明の態様はシステム、方法、またはコンピュータ・プログラム製品として具体化され得る。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様とハードウェアの態様を組み合わせた一実施形態の形をとってもよい。それらはすべて、一般に本明細書で「回路」、「モジュール」、または「システム」と呼ばれる場合がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを組み入れられた1つまたは複数のコンピュータ可読媒体で具体化されるコンピュータ・プログラム製品の形をとってもよい。
1つまたは複数のコンピュータ可読媒体の任意の組合せが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、それだけに限定されるものではないが、電子的、磁気的、光学式、電磁的、赤外線式、もしくは半導体式のシステム、装置、またはデバイス、あるいは以上の任意の適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的リスト)には、次のものが含まれる。すなわち、1つもしくは複数の配線を有する電気的な接続、携帯型のコンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読出し専用メモリ(CD−ROM)、光学式データ・ストレージ・デバイス、磁気データ・ストレージ・デバイス、または以上の任意の適当な組合せである。本明細書の内容上、コンピュータ可読ストレージ媒体は、命令実行のシステム、装置、もしくはデバイスが使用するための、またはこれらに関連して使用するためのプログラムを収容、あるいは格納できる任意の有形の媒体であってもよい。
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードを組み入れられた伝搬されるデータ信号を、例えばベースバンド内に、または搬送波の一部として含むことができる。そのような伝搬される信号は、それだけに限定されるものではないが、電磁的、光学式、またはこれらの任意の適切な組合せを含めて、様々な形のいずれかをとることができる。コンピュータ可読信号媒体は、命令実行のシステム、装置、もしくはデバイスが使用するための、またはこれらに関連して使用するためのプログラムを通信、伝搬、あるいは伝送できる、コンピュータ可読記憶媒体ではない任意のコンピュータ可読媒体であってもよい。
コンピュータ可読媒体に組み入れられたプログラム・コードは、それだけに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RFなど、または以上の任意の適切な組合せを含めて、任意の適当な媒体を使用して伝送することができる。
本発明の態様の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++などのオブジェクト指向プログラム言語、および「C」プログラム言語もしくは類似のプログラム言語などの従来の手続き型プログラム言語を含む、1つまたは複数のプログラム言語の任意の組合せで記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的に、独立型のソフトウェア・パッケージとしてユーザのコンピュータ上で、部分的にユーザのコンピュータ上でまた部分的に遠隔のコンピュータ上で、または全体的に遠隔のコンピュータもしくはサーバ上で実行することができる。後半のシナリオの場合、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または外部のコンピュータへ(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)接続を行うこともできる。
以下で、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら、本発明の態様を説明する。流れ図またはブロック図あるいはその両方のそれぞれのブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ・プログラム命令によって実装され得ることが理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供可能であり、それによりコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令は、流れ図またはブロック図あるいはその両方のブロックもしくはブロック群で指定される機能/動作を実施するための手段を生成する。
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに特定の方法で機能するよう指示できるコンピュータ可読媒体に格納可能であり、これにより、コンピュータ可読媒体に格納された命令が、流れ図またはブロック図あるいはその両方のブロックもしくはブロック群で指定された機能/動作を実施する命令を含む製品を形成する。
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードでき、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させ、コンピュータまたは他のプログラム可能装置上で実行される命令が、流れ図またはブロック図あるいはその両方のブロックもしくはブロック群で指定された機能/動作を実施するためのプロセスを提供するようなコンピュータ実施プロセスを形成する。
次に、本発明の一実施形態による、権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するシステムの概念図である図1を参照する。図1のシステムでは、命令分類器100が、命令をアクセス制限命令として識別するための事前定義された基準に従って、コンピュータ・ソフトウェア・アプリケーションの命令のアクセス制限領域候補を識別するのに使用されるように構成される。そのような基準は、例えば、ファイル・システムまたはデータベースへのアクセスを制御する命令を含んでもよい。これは、従来の技法に従って手動で行われてもよい。例えば、ユーザが、手動で、コンピュータ・ソフトウェア・アプリケーションのソース・コードをスキャンしてアクセス制限命令を識別し、識別された候補の場所をデータ入力インタフェースを介して命令分類器100に入力し、その後、命令分類器100が、好ましくは、候補場所を候補場所102のデータ・ストアに保存するなどである。
さらに、または代替方法として、命令分類器100は、ニューヨーク州アーモンクのInternational Business Machines Corporation(TM)から販売されているAppScan SE(TM)などのブラック・ボックス・テスト・ソフトウェアを使用して、アプリケーションのアクセス制限領域候補を識別するための、コンピュータ・ソフトウェア・アプリケーションの差分ブラック・ボックス・テスト(differential black-box testing)を実行する、ブラック・ボックス・テスタ104を制御するように構成される。この手法では、ブラック・ボックス・テスタ104は、ユーザが「管理者」としてアプリケーションにログインするときなどに、アプリケーションの制限領域へのアクセスを許可されたユーザとして、アプリケーションとの対話をシミュレートする。ブラック・ボックス・テスタ104はまた、ユーザが一般ユーザとしてアプリケーションにログインするときなどに、アプリケーションの制限領域へのアクセスを許可されていないユーザとして、アプリケーションとの対話をシミュレートする。次いで、両方のブラック・ボックス・テストの結果が、命令分類器100によって比較されて、許可されたユーザには露出されたが、一般ユーザには露出されなかったデータ入力インタフェースを識別する。従来の技法を使用して、命令分類器100が、識別されたデータ入力インタフェースと、識別されたデータ入力インタフェースの根底にある、アプリケーションのソース・コード命令またはバイト・コード命令とを相互に関連付け、その後、そうした相互に関連付けられた命令が、命令分類器100によって、アクセス制限領域候補として指定される。このアクセス制限領域候補は、候補場所102に保存されることが好ましい。
さらに、または代替方法として、命令分類器100は、セキュリティ上注意が必要な動作またはそのような動作に関する分野特有の知識、あるいはその両方にかかわる事前定義された仕様を使用して従来の技法に従ってアプリケーション命令を静的に分析することにより、コンピュータ・ソフトウェア・アプリケーションのアクセス制限領域候補を識別するように構成される。例えば、アプリケーション・プログラミング・インタフェース(API)のリストを、そのアプリケーションが記述されているプログラミング言語内に事前定義してもよい。この場合、APIは、ファイル・システム、データベース、および注意が必要な他の領域へのアクセスを、これらのAPIを使用するアプリケーションの部分へのアクセスを特に許可されているユーザだけがアクセスできることになるという前提のもとで、制御することが知られている。これらのAPIにアクセスする、アプリケーションの領域は、命令分類器100によって、アクセス制限領域候補として指定され、このアクセス制限領域候補は、候補場所102に保存されることが好ましい。
静的分析器106は、アクセス制限領域候補を静的に分析して、実行がアクセス制限領域候補へと流れるかどうかを制御する条件付き命令の有無を判定するように構成される。そのような条件付き命令が見つからない場合、静的分析器106は、条件付き認証なしではアクセスを制限できないという前提のもとで、アクセス制限領域候補をPEに脆弱であるとして指定することが好ましい。そのような条件付き命令が見つかった場合、静的分析器106が、好ましくは、静的分析を実施して、条件付き命令がアプリケーション内のデータ・ソースに依存しているかを判定する。アプリケーションでは、データ・ソースが、Java(R)サーブレットの「getParameter」コールなどの、ユーザ入力をアプリケーション内に取り込む命令文として定義されている。条件付き命令がデータ・ソースに依存していない場合、静的分析器106は、ユーザ入力へのアクセスがなければ、ユーザの認証は実施できなかったという前提のもとで、アクセス制限領域候補をPEに脆弱であるとして指定することが好ましい。
a)実行がアクセス制限領域候補へと流れるかどうかを制御し、b)データ・ソースに依存していない、そのような条件付き命令があるアクセス制限領域候補が識別される場合には、条件付き命令によって実行されるテストが分析されて、そのテストが実際に有効な認証テストであるかを判定することができる。例えば、静的分析器106は、コンピュータ・ソフトウェア・アプリケーションによって露出されているどのデータ入力インタフェースがテストにつながるかを確かめる、静的分析を実施することができる。次いで、これらのデータ入力インタフェースのそれぞれに対し、命令分類器100が、ブラック・ボックス・テスタ104を制御して、データ入力インタフェースを対象とする2つの要求を発行することができる。一方は、ユーザが「管理者」としてアプリケーションにログインするときなどに、アプリケーションの制限領域へのアクセスを許可されたユーザによってシミュレートされた対話の形であり、他方は、ユーザが一般ユーザとしてアプリケーションにログインするときなどに、アプリケーションの制限領域へのアクセスを許可されていないユーザによってシミュレートされた対話の形である。前者のテストだけが成功した場合、命令分類器100が、そのテストが有効な認証テストであることを判定することが好ましい。さらに、または代替方法として、テスト、またはアクセス制限領域候補、またはデータ・ソース、あるいはそれらの組合せの記述が、そのテストが実際に有効な認証テストであるかを手動で判断し得るユーザに命令分類器100によって提示されてもよい。
あるアクセス制限領域候補への複数の実行フロー・パスを示している複数の条件付き命令が見つかった場合、また特に、その条件付き命令のすべてが同じソース・データに対し、同じテストを実行するわけではない場合、この発見は、欠陥のあるプログラム実行を表すものとして後で報告できるよう、命令分類器100によって記録されてもよい。
図1に示す要素のいずれもが、要素のいずれかを、コンピュータ・ハードウェア、または物理的に有形の、非一時的な、コンピュータ可読媒体において具体化されるコンピュータ・ソフトウェア、あるいはその両方の中に、従来の技法に従って実装することなどにより、コンピュータ108によって実行されるか、そうでなければコンピュータ108にアクセス可能となることが好ましい。図1のシステムの任意の要素によって収集または生成されたデータは、コンピュータ108によって制御されたプリンタやコンピュータ・モニタなどのコンピュータ制御された出力デバイスを介した従来の技法に従って、ユーザに提示されてもよい。
次に、本発明の一実施形態による、図1のシステムの例示的動作方法の流れ図である図2を参照する。図2の方法では、コンピュータ・ソフトウェア・アプリケーションの命令のアクセス制限領域候補が、命令をアクセス制限命令として識別するための事前定義された基準に従って識別される(200)。図1を参照しながら先に述べたように、これは、手動により、またはアプリケーションの差分ブラック・ボックス・テストを実行することにより、またはアプリケーション命令を静的に分析することにより、あるいはそれらの組合せにより、実施されてもよい。各識別されたアクセス制限領域候補に対し、静的分析が実施されて、実行がアクセス制限領域候補へと流れるかどうかを制御する条件付き命令の有無を判定する(202)。そのような条件付き命令が見つからない場合(204)、条件付き認証なしではアクセスを制限できないという前提のもとで、アクセス制限領域候補がPEに脆弱であるとして指定される(206)ことが好ましい。そのような条件付き命令が見つかった場合、静的分析が実施されて、条件付き命令がデータ・ソースに依存しているかが判定される(208)。条件付き命令がデータ・ソースに依存していない場合(210)、ユーザ入力へのアクセスがなければ、ユーザの認証は実施できなかったという前提のもとで、アクセス制限領域候補がPEに脆弱であるとして指定される(206)ことが好ましい。a)実行がアクセス制限領域候補へと流れるかどうかを制御し、b)データ・ソースに依存していない、そのような条件付き命令があるアクセス制限領域候補が識別される場合には、条件付き命令によって実行されるテストが分析されて、そのテストが実際に有効な認証テストであるかを判定することができる(212)。あるアクセス制限領域候補への複数の実行フロー・パスを示している複数の条件付き命令が見つかった場合、また特に、その条件付き命令のすべてが同じソース・データに対し、同じテストを実行するわけではない場合、この発見は、欠陥のあるプログラム実行を表すものとして後で報告できるよう記録されてもよい(214)。図2の方法を参照しながら上述したような、収集または生成されたデータは、プリンタやコンピュータ・モニタなどのコンピュータ制御された出力デバイスを介した従来の技法に従って、ユーザに提示されてもよい。
図1のシステムおよび図2の方法は図3に照らして示すことができ、図3は本発明の一実施形態による、データベースからユーザ・レコードを削除するコンピュータ・ソフトウェア・アプリケーションの例示的な命令を示す。図3に示す命令は、動作を開始したユーザが「admin」として識別されるか、また提供されたパスワードが正しいかを検査するテストを組み込むことにより、PE攻撃を防ぐように構成されている。同じ命令にこれらのテストがない場合、ユーザ削除の動作は依然として、ユーザ削除の動作を起動したURLが「removeUser」で終了するかを検査するテストによって「保護される」。しかし、このテストは、現在のユーザが「admin」として識別されるかどうかを判別するのに不十分であり、このため、命令はPE攻撃に脆弱である。先に述べたようなブラック・ボックス・テストは、上記の例における2つのケースを区別できるはずである。「admin」およびパスワードのテストが存在する場合、シミュレートされるユーザが「admin」としてログインするときのブラック・ボックス・テストの間に、ユーザ・レコードを除外する命令だけが呼び出される。「admin」およびパスワードのテストが存在しない場合、シミュレートされるユーザが「admin」としてログインしているかどうかにかかわらずブラック・ボックス・テストの間に、ユーザ・レコードが除外されることになり、これにより、アプリケーションがPE攻撃に脆弱であることが示されるはずである。
次に図4を参照すると、ブロック図400は、本発明の1つまたは複数の構成要素/方法論(例えば、図1〜3に照らして説明した構成要素/方法論)をそれに従って実装することができる、本発明の一実施形態によるコンピューティング・システムの例示的ハードウェア実装形態を示す。
図に示すように、少なくとも1つのリソースへのアクセスを制御する技法は、コンピュータ・バス418または代替の接続構成を介して結合された、プロセッサ410、メモリ412、I/Oデバイス414、およびネットワーク・インタフェース416に従って、実装され得る。
本明細書における用語「プロセッサ」は、例えば、CPU(中央演算処理装置)または他の処理回路あるいはその両方を備える処理デバイスなどの任意の処理デバイスを含むことを意図したものであることが理解されよう。また、用語「プロセッサ」は、2つ以上の処理デバイスに言及してもよく、また処理デバイスと関連付けられた様々な要素は、他の処理デバイスによって共有されてもよいことを理解されたい。
本明細書における用語「メモリ」は、例えば、RAM、ROM、固定メモリ・デバイス(例えばハード・ドライブ)、取外し可能メモリ・デバイス(例えばディスケット)、フラッシュ・メモリなどの、プロセッサまたはCPUと関連するメモリを含むことを意図したものである。そのようなメモリは、コンピュータ可読ストレージ媒体とみなされる。
さらに、本明細書における語句「入力/出力デバイス」または「I/Oデバイス」は、例えば、データを処理装置に入力する1つもしくは複数の入力デバイス(例えば、キーボード、マウス、スキャナなど)、または処理装置と関連付けられた結果を提示する1つもしくは複数の出力デバイス(例えば、スピーカ、ディスプレイ、プリンタなど)、あるいはその両方を含むことを意図したものである。
図中、流れ図およびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品に対する可能な実装形態のアーキテクチャ、機能性、ならびに動作を示す。この点に関連して、流れ図またはブロック図における各ブロックは、特定の論理機能(複数可)を実装するための1つもしくは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を示すことができる。また、いくつかの別の実装形態において、ブロックに記された機能が、図に記された順序以外で発生し得ることにも留意されたい。例えば、連続して示されている2つのブロックが、関係する機能に応じて、実際には実質的に同時に実行可能であり、または、そのブロックが時には逆の順序で実行可能である。また、ブロック図または流れ図あるいはその両方のそれぞれのブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せが、特定の機能または動作を実行する特殊用途のハードウェア・ベースのシステムによって、あるいは特殊用途のハードウェアとコンピュータ命令の組合せによって実装され得ることにも留意されたい。
先に述べた要素のいずれもが、例えば、磁気もしくは光ストレージ媒体に格納された、またはコンピュータ・ハードウェア内に組み込まれたコンピュータ・プログラム命令の形などをとって、コンピュータ可読媒体において具体化されるコンピュータ・プログラム製品として実装されてもよく、さらに、コンピュータ(図示せず)によって実行されるか、そうでなければコンピュータにアクセス可能であってもよいことが理解されよう。
本明細書において方法および装置が特定のコンピュータ・ハードウェアまたはソフトウェアに関連して説明されている場合もそうでない場合もあるが、本明細書で説明される方法および装置は、従来の技法を使用して、コンピュータ・ハードウェアまたはソフトウェアに容易に実装され得ることが理解される。
本発明を1つまたは複数の特定の実施形態を参照しながら説明してきたが、説明は、本発明を全体として例示することを意図するものであり、したがって本発明を示される実施形態に限定するものとみなされるべきではない。当業者であれば、本明細書で具体的に示されてはいないが、様々な修正形態を、やはり本発明の趣旨および範囲の中で思いつくであろうことが理解される。

Claims (11)

  1. プロセッサとメモリを有するコンピュータの情報処理を用いて権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法であって、
    コンピュータ・ソフトウェア・アプリケーションの命令のアクセス制限領域候補を識別するステップと、
    前記アクセス制限領域候補を静的に分析して、前記アクセス制限領域候補への実行フローを制御する条件付き命令の有無を判定するステップと、
    静的分析を実施して、前記条件付き命令が前記コンピュータ・ソフトウェア・アプリケーション内の、ユーザの認証を実施する際にユーザ入力をアプリケーション内に取り込む命令文として定義されたデータ・ソースに依存しているかを判定するステップと、
    前記条件付き命令がないか、前記データ・ソースに依存していない場合、前記アクセス制限領域候補を権限昇格攻撃に脆弱であるとして指定するステップと
    を含む方法。
  2. 前記コンピュータ・ソフトウェア・アプリケーションの前記命令の前記アクセス制限領域候補を識別する前記ステップが、
    前記アクセス制限領域候補を、前記命令のいずれかをアクセス制限命令として識別するための事前定義された基準に従って識別するステップを含む、請求項1に記載の方法。
  3. 前記コンピュータ・ソフトウェア・アプリケーションの前記命令の前記アクセス制限領域候補を識別する前記ステップが、
    前記コンピュータ・ソフトウェア・アプリケーション内の前記アクセス制限領域候補の手動で入力された場所を受信するステップを含む、請求項1に記載の方法。
  4. 前記コンピュータ・ソフトウェア・アプリケーションの前記命令の前記アクセス制限領域候補を識別する前記ステップが、
    前記アクセス制限領域候補を識別するための、前記コンピュータ・ソフトウェア・アプリケーションの差分ブラック・ボックス・テストを実行するステップを含む、請求項1に記載の方法。
  5. 前記アクセス制限領域候補を識別するための、前記コンピュータ・ソフトウェア・アプリケーションの前記差分ブラック・ボックス・テストを実行する前記ステップが、
    ブラック・ボックス・テスタを制御して、前記コンピュータ・ソフトウェア・アプリケーションの制限領域へのアクセスを許可されたユーザとして、前記コンピュータ・ソフトウェア・アプリケーションとの対話をシミュレートする第1のテストを実行するステップと、
    前記ブラック・ボックス・テスタを制御して、前記コンピュータ・ソフトウェア・アプリケーションの制限領域へのアクセスを許可されていないユーザとして、前記コンピュータ・ソフトウェア・アプリケーションとの対話をシミュレートする第2のテストを実行するステップと、
    前記テストの両方の結果を比較して、前記許可されたユーザには露出されたが、前記許可されていないユーザには露出されなかった任意のデータ入力インタフェースを識別するステップと、
    前記識別されたデータ入力インタフェースと、前記識別されたデータ入力インタフェースの根底にある前記コンピュータ・ソフトウェア・アプリケーションの命令とを相互に関連付けるステップと、
    前記相互に関連付けられた命令を前記アクセス制限領域候補として指定するステップと
    を含む、請求項4に記載の方法。
  6. 前記コンピュータ・ソフトウェア・アプリケーションの前記命令の前記アクセス制限領域候補を識別する前記ステップが、
    セキュリティ上注意が必要な動作にかかわる事前定義された仕様を使用して、前記アプリケーションの命令を静的に分析するステップを含む、請求項1に記載の方法。
  7. 前記コンピュータ・ソフトウェア・アプリケーションの前記命令の前記アクセス制限領域候補を識別する前記ステップが、
    セキュリティ上注意が必要な動作に関する分野特有の知識にかかわる事前定義された仕様を使用して、前記アプリケーションの命令を静的に分析するステップを含む、請求項1に記載の方法。
  8. 前記コンピュータ・ソフトウェア・アプリケーションによって露出されており、前記条件付き命令によって実行される認証テストにつながるそれぞれのデータ入力インタフェースに対し、
    前記コンピュータ・ソフトウェア・アプリケーションの制限領域へのアクセスを許可されたユーザとして、前記データ入力インタフェースとの対話をシミュレートする第1のテストを実行するステップと、
    前記コンピュータ・ソフトウェア・アプリケーションの制限領域へのアクセスを許可されていないユーザとして、前記データ入力インタフェースとの対話をシミュレートする第2のテストを実行するステップと、
    前記第1のテストだけが成功した場合に、前記認証テストが有効な認証テストであることを判定するステップと
    をさらに含む、請求項1に記載の方法。
  9. 前記アクセス制限領域候補が権限昇格攻撃に脆弱であるとする前記指定を、コンピュータ制御された出力デバイスを介して提示するステップをさらに含む、
    請求項1に記載の方法。
  10. 請求項1〜9の何れか1項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
  11. 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するためのシステムであって、請求項1〜9の何れか1項に記載の方法の各ステップをコンピュータのハードウェアによる手段として構成したシステム。
JP2013550717A 2011-01-31 2012-01-30 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム Expired - Fee Related JP5852676B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/018,342 2011-01-31
US13/018,342 US8914890B2 (en) 2011-01-31 2011-01-31 Determining the vulnerability of computer software applications to privilege-escalation attacks
PCT/CA2012/050052 WO2012103646A1 (en) 2011-01-31 2012-01-30 Determining the vulnerability of computer software applications to privilege-escalation attacks

Publications (2)

Publication Number Publication Date
JP2014507718A JP2014507718A (ja) 2014-03-27
JP5852676B2 true JP5852676B2 (ja) 2016-02-03

Family

ID=46578550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013550717A Expired - Fee Related JP5852676B2 (ja) 2011-01-31 2012-01-30 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム

Country Status (6)

Country Link
US (2) US8914890B2 (ja)
JP (1) JP5852676B2 (ja)
CN (1) CN103339635B (ja)
DE (1) DE112012000279T5 (ja)
GB (1) GB2499353B (ja)
WO (1) WO2012103646A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0700687A1 (en) 1994-06-23 1996-03-13 Ralph A. Milliken Dual one-way valved respiratory "T" with threaded locking female luer connector
US8893268B2 (en) * 2011-11-15 2014-11-18 Microsoft Corporation Permission re-delegation prevention
WO2014018029A1 (en) * 2012-07-25 2014-01-30 Hewlett-Packard Development Company, L.P. Determining application vulnerabilities
FI124560B (en) * 2012-09-14 2014-10-15 Codenomicon Oy Monitoring of the operation of the communication protocol procedure
US10521288B2 (en) * 2012-11-07 2019-12-31 International Business Machines Corporation Collaborative application testing
US9197660B2 (en) 2013-03-15 2015-11-24 Mcafee, Inc. Generic privilege escalation prevention
US20150007330A1 (en) * 2013-06-26 2015-01-01 Sap Ag Scoring security risks of web browser extensions
CN104751052A (zh) * 2013-12-30 2015-07-01 南京理工大学常熟研究院有限公司 基于svm算法的移动智能终端软件的动态行为分析方法
WO2016048294A1 (en) * 2014-09-24 2016-03-31 Hewlett Packard Enterprise Development Lp Infrastructure rule generation
US10264008B2 (en) 2015-10-08 2019-04-16 Bank Of America Corporation Vulnerability exposing application characteristic variation identification engine
US10268824B2 (en) 2016-03-01 2019-04-23 Wipro Limited Method and system for identifying test cases for penetration testing of an application
US10505962B2 (en) * 2016-08-16 2019-12-10 Nec Corporation Blackbox program privilege flow analysis with inferred program behavior context
WO2018174990A1 (en) * 2017-03-21 2018-09-27 Mcafee, Llc Automatic detection of software that performs unauthorized privilege escalation
EP3663959B1 (en) * 2018-12-06 2021-08-11 Mastercard International Incorporated An integrated circuit, method and computer program
US10965686B1 (en) * 2020-12-30 2021-03-30 Threatmodeler Software Inc. System and method of managing privilege escalation in cloud computing environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096502B1 (en) * 2000-02-08 2006-08-22 Harris Corporation System and method for assessing the security posture of a network
US7975296B2 (en) * 2002-02-07 2011-07-05 Oracle International Corporation Automated security threat testing of web pages
US6952779B1 (en) * 2002-10-01 2005-10-04 Gideon Cohen System and method for risk detection and analysis in a computer network
CN1809812A (zh) * 2003-04-18 2006-07-26 盎司实验室股份有限公司 用于源代码检测源代码中弱点的方法和装置
AU2004232058B2 (en) * 2003-04-18 2010-05-27 International Business Machines Corporation Method and system for detecting vulnerabilities in source code
JP4789933B2 (ja) * 2004-06-04 2011-10-12 フォーティファイ ソフトウェア, エルエルシー セキュアーソフトウェアを開発し、テストし、監視するための装置および方法
US20050273859A1 (en) * 2004-06-04 2005-12-08 Brian Chess Apparatus and method for testing secure software
US7207065B2 (en) 2004-06-04 2007-04-17 Fortify Software, Inc. Apparatus and method for developing secure software
JPWO2006087780A1 (ja) * 2005-02-17 2008-07-03 富士通株式会社 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法
US8266700B2 (en) * 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
US7779399B2 (en) 2005-05-16 2010-08-17 Armorize Technologies, Inc. System and method for securing web application code and verifying correctness of software
US7900193B1 (en) * 2005-05-25 2011-03-01 Parasoft Corporation System and method for detecting defects in a computer program using data and control flow analysis
JP5042315B2 (ja) * 2006-10-19 2012-10-03 チェックマークス リミテッド ソースコード内のセキュリティ脆弱性の検出
US8266702B2 (en) * 2006-10-31 2012-09-11 Microsoft Corporation Analyzing access control configurations
JP4951416B2 (ja) * 2007-06-01 2012-06-13 株式会社 日立システムアンドサービス プログラム検証方法、プログラム検証装置
US20090327943A1 (en) 2008-06-26 2009-12-31 Microsoft Corporation Identifying application program threats through structural analysis

Also Published As

Publication number Publication date
US8910293B2 (en) 2014-12-09
DE112012000279T5 (de) 2013-10-10
US20120198557A1 (en) 2012-08-02
WO2012103646A1 (en) 2012-08-09
GB2499353A (en) 2013-08-14
JP2014507718A (ja) 2014-03-27
CN103339635B (zh) 2016-08-10
GB2499353B (en) 2013-10-16
US8914890B2 (en) 2014-12-16
GB201310455D0 (en) 2013-07-24
US20120272322A1 (en) 2012-10-25
CN103339635A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
JP5852676B2 (ja) 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム
US8984642B2 (en) Detecting security vulnerabilities in web applications
US10915659B2 (en) Privacy detection of a mobile application program
US8613080B2 (en) Assessment and analysis of software security flaws in virtual machines
US10019581B2 (en) Identifying stored security vulnerabilities in computer software applications
US20120110551A1 (en) Simulating black box test results using information from white box testing
US9201769B2 (en) Progressive black-box testing of computer software applications
US9519788B2 (en) Identifying security vulnerabilities related to inter-process communications
US11416613B2 (en) Attack detection through exposure of command abuse
US10827349B2 (en) SEALANT: security for end-users of android via light-weight analysis techniques
Bhuiyan et al. API vulnerabilities: Current status and dependencies
US20120198555A1 (en) Testing web services that are accessible via service oriented architecture (soa) interceptors
Elsayed et al. IFCaaS: information flow control as a service for cloud security
US10002253B2 (en) Execution of test inputs with applications in computer security assessment
Kumar Reverse Engineering and Vulnerability Analysis in Cyber Security.
Wang et al. Credit karma: Understanding security implications of exposed cloud services through automated capability inference
US20230229787A1 (en) Automated zero trust security validation
Ehichoya et al. Evaluation of Static Analysis on Web Applications
Holmberg iOS vs Android: Security of Inter-App Communication
AL-Aufi et al. Security Testing of Android Applications Using Drozer
Sara Test performance and security measurements in software development
Sharma et al. Protection of software against various attacks: issues and challenges
Song et al. A Qualitative Analysis of Privilege Escalation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151204

R150 Certificate of patent or registration of utility model

Ref document number: 5852676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees