(57)【特許請求の範囲】
【請求項１】
ネットワークを介して投入されたジョブのセキュリティ管理を行うためのセキュリティ管理プログラムにおいて、
コンピュータを、
ジョブの処理内容が記述されたジョブプログラムと、前記ジョブプログラム中で読み出されるリンクライブラリとの対応関係を記憶する使用ライブラリ管理データベース、
前記ジョブプログラムと、前記ジョブの投入先のノードとの対応関係を記憶するジョブ投入先管理データベース、
前記ジョブプログラムを含むジョブ実行要求の入力を受け付けるジョブ実行要求取得手段、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を前記使用ライブラリ管理データベースに登録する使用ライブラリ判断手段、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けて前記ジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させるジョブ投入手段、
安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得する投入先判別手段、
前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示するジョブ強制停止手段、
として機能させることを特徴とするセキュリティ管理プログラム。
【請求項２】
前記コンピュータを、さらに、
ライブラリに安全上の欠陥が発見される毎に前記脆弱ライブラリの識別情報が登録されるセキュリティデータベースを定期的に検索し、前記脆弱ライブラリの識別情報を取得し、取得した前記脆弱ライブラリの識別情報を前記投入先判別手段に対して出力する脆弱ライブラリ情報取得手段として機能させることを特徴とする請求項１記載のセキュリティ管理プログラム。
【請求項３】
前記セキュリティデータベースには、前記脆弱ライブラリの危険性を示す危険度が設定されており、
前記脆弱ライブラリ情報取得手段は、所定の危険度よりも高い危険度を有する前記脆弱ライブラリの識別情報のみを前記投入先判別手段に対して出力することを特徴とする請求項２記載のセキュリティ管理プログラム。
【請求項４】
前記脆弱ライブラリ情報取得手段は、前記使用ライブラリ判断手段からの脆弱ライブラリ情報取得要求に応じて、前記脆弱ライブラリの識別情報が登録されているセキュリティデータベースを定期的に検索し、前記脆弱ライブラリの識別情報を取得し、前記使用ライブラリ判断手段に前記脆弱ライブラリの識別情報を渡し、
前記使用ライブラリ判断手段は、前記リンクライブラリを判断すると、前記脆弱ライブラリ情報取得手段に対して前記脆弱ライブラリ情報取得要求を出力し、前記脆弱ライブラリ情報取得手段から前記脆弱ライブラリの識別情報を受け取り、前記脆弱ライブラリの識別情報と合致する識別情報の前記リンクライブラリの有無を判断し、
前記ジョブ投入手段は、前記使用ライブラリ判断手段において、前記脆弱ライブラリの識別情報と合致する識別情報の前記リンクライブラリはないと判断された場合にのみ、前記投入先ノードに前記ジョブプログラムを実行させる、
ことを特徴とする請求項２記載のセキュリティ管理プログラム。
【請求項５】
前記セキュリティデータベースには、前記脆弱ライブラリの危険性を示す危険度が設定されており、
前記脆弱ライブラリ情報取得手段は、所定の第１の危険度よりも高い危険度が設定された前記脆弱ライブラリの識別情報のみを前記投入先判別手段に対して出力し、前記第１の危険性よりも低い所定の第２の危険度よりも高い危険度が設定された前記危険ライブラリの識別情報のみを前記使用ライブラリ判断手段に渡すことを特徴とする請求項４記載のセキュリティ管理プログラム。
【請求項６】
前記コンピュータを、さらに、
前記投入先ノードに対して、前記脆弱ライブラリを最新のバージョンに更新することを示すライブラリ更新指示を前記投入先ノードに対して送信するライブラリ更新指示手段として機能させることを特徴とする請求項１記載のセキュリティ管理プログラム。
【請求項７】
前記ジョブ強制停止手段は、前記投入先ノードにおける前記脆弱ライブラリの更新完了後、前記投入先ノードに対して前記ジョブプログラムを起動させることを特徴とする請求項６記載のセキュリティ管理プログラム。
【請求項８】
前記使用ライブラリ判断手段は、前記ジョブプログラムから他のファイルで用意されているライブラリを呼び出すための記述と、前記ジョブプログラム内に組み込まれたライブラリを呼び出す記述とを抽出し、それぞれの記述で呼び出されるライブラリを前記リンクライブラリとすることを特徴とする請求項１記載のセキュリティ管理プログラム。
【請求項９】
ネットワークを介して投入されたジョブのセキュリティ管理を行うためのセキュリティ管理装置において、
ジョブの処理内容が記述されたジョブプログラムと、前記ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する使用ライブラリ管理データベースと、
前記ジョブプログラムと、前記ジョブの投入先のノードとの対応関係を記憶するジョブ投入先管理データベースと、
前記ジョブプログラムを含むジョブ実行要求の入力を受け付けるジョブ実行要求取得手段と、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を前記使用ライブラリ管理データベースに登録する使用ライブラリ判断手段と、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けて前記ジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させるジョブ投入手段と、
安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得する投入先判別手段と、
前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示するジョブ強制停止手段と、
を有することを特徴とするセキュリティ管理装置。
【請求項１０】
ネットワークを介して投入されたジョブのセキュリティ管理をコンピュータで行うためのセキュリティ管理方法において、
ジョブ実行要求取得手段が、ジョブプログラムを含むジョブ実行要求の入力を受け付け、
使用ライブラリ判断手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を使用ライブラリ管理データベースに登録し、
ジョブ投入手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けてジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させ、
投入先判別手段が、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得し、
ジョブ強制停止手段が、前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示する、
ことを特徴とするセキュリティ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はジョブ実行時の安全性を確保するためのセキュリティ管理プログラム、セキュリティ管理装置、およびセキュリティ管理方法に関し、特に他の装置から投入されるジョブを実行する場合の安全性を確保するセキュリティ管理プログラム、セキュリティ管理装置、およびセキュリティ管理方法に関する。
【背景技術】
【０００２】
多くの企業では、並列処理によって大量の計算を行うために、グリッドシステムが用いられている。グリッドシステムは、複数のノード（ジョブを実行するコンピュータ）をネットワークで接続し、実行すべき処理を各ノードに振り分けて並列に実行させるものである。
【０００３】
グリッドシステムでは、多数のコンピュータが互いにネットワークで接続されて動作する。そのため、１つのコンピュータがウィルス感染したり、セキュリティホールを突かれて外部からの不正進入を許したりすると、ネットワーク全体の安全が脅かされる。そこで、個々のコンピュータの安全性を確保する技術が必要となる。
【０００４】
複数のコンピュータの安全を確保する技術として、例えば、コンピュータ間に移動オブジェクトを巡回させ、その移動オブジェクトにコンピュータウィルスの感染検査を行わせる技術がある。この技術では、移動オブジェクトによりウィルス感染が検出された場合、感染したコンピュータと他のコンピュータとの間の通信を停止させることができる（例えば、特許文献１参照）。
【特許文献１】特開２００３−２０８３２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、従来のグリッドシステムでは、多くの場合、使用者が先端研究者である。そのため、システムに投入されるプログラムは、ほとんどの部分が、本来の目的とする計算用途に合わせて特別に書かれたものである。一方で、グリッドシステムの普及により、プログラムのうち様々な計算目的で共通して使用される処理については、ライブラリとして提供されると予想される。ライブラリは、異なる業務の内容を記述した複数のプログラムにおいて、共通に行われる処理が記述されたプログラムである。例えば、分散行列演算、グリッドノード間通信処理、データベース操作処理などは、共通して利用可能な場合が多い。その場合、それらの処理をライブラリで提供することが可能である。
【０００６】
多くのプログラムでライブラリが使用される状況で、万一ライブラリにセキュリティホールが発見されると、プログラムが動作しているすべてのノードが危険にさらされる。そこで、セキュリティホールの除去を迅速に行う必要がある。
【０００７】
これまでは、グリッドシステムでのライブラリの使用が少なく、重大なセキュリティホールも発見されなかったので、この問題が顕在化していなかった。今後ライブラリが広く使われるようになると、予期しないセキュリティホールが発覚し攻撃の対象となる可能性がある。この場合、ライブラリをリンクしたプログラムが実行されているすべてのグリッドノードが危険にさらされることとなる。そのため、潜在的な脅威も増すことになる。
【０００８】
しかし、現在のグリッドシステムでは、これらの脅威に対して迅速かつ網羅的に対処することが考慮されていない。その結果、潜在的な脅威が存在したままになっている。なお、特許文献１の技術では、あるコンピュータがウィルスに感染した場合、巡回オブジェクトがそのコンピュータに巡回してくるまでウィルスを検出することができない。そのため、脅威に対する迅速性の点で不十分である。
【０００９】
本発明はこのような点に鑑みてなされたものであり、ライブラリのセキュリティホールが発覚したときに迅速に対処することができるセキュリティ管理プログラム、セキュリティ管理装置、およびセキュリティ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、図１に示すようなセキュリティ管理プログラムが提供される。本発明に係るセキュリティ管理プログラムは、ネットワークを介して投入されたジョブのセキュリティ管理を行うために、図１に示す機能をコンピュータに実行させることができる。
【００１１】
使用ライブラリ管理データベース１ａは、ジョブの処理内容が記述されたジョブプログラムと、ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する。ジョブ投入先管理データベース１ｂは、ジョブプログラムと、ジョブの投入先のノードとの対応関係を記憶する。ジョブ実行要求取得手段１ｃは、ジョブプログラムを含むジョブ実行要求の入力を受け付ける。使用ライブラリ判断手段１ｄは、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを解析し、ジョブプログラム中で呼び出されるリンクライブラリを判断し、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係を使用ライブラリ管理データベース１ａに登録する。ジョブ投入手段１ｅは、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを実行させる投入先ノードを決定し、投入先ノードの識別情報とジョブプログラムの識別情報とを対応付けてジョブ投入先管理データベース１ｂに登録すると共に、投入先ノードに対してジョブプログラムを送信してジョブプログラムを実行させる。投入先判別手段１ｇは、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、使用ライブラリ管理データベース１ａを参照し、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報を取得し、ジョブ投入先管理データベース１ｂを参照し、取得したジョブプログラムの識別情報に対応する投入先ノードの識別情報を取得する。ジョブ強制停止手段１ｈは、投入先判別手段１ｇで取得されたジョブプログラムの識別情報と投入先ノードの識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止を投入先ノードに対して指示する。
【００１２】
このようなセキュリティ管理プログラムをコンピュータに実行させることで、ジョブプログラムを含むジョブ実行要求の入力が、ジョブ実行要求取得手段１ｃで受け付けられると、使用ライブラリ判断手段１ｄにより、ジョブ実行要求取得手段１ｃで取得したジョブプログラムが解析され、ジョブプログラム中で呼び出されるリンクライブラリが判断され、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係が使用ライブラリ管理データベース１ａに登録される。次に、ジョブ投入手段１ｅにより、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを実行させる投入先ノードが決定され、投入先ノードの識別情報とジョブプログラムの識別情報とが対応付けられてジョブ投入先管理データベース１ｂに登録されると共に、投入先ノードに対してジョブプログラムが送信されジョブ実行要求に応じたジョブの実行が指示される。その後、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、投入先判別手段１ｇにより、使用ライブラリ管理データベース１ａが参照され、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報が取得され、ジョブ投入先管理データベース１ｂが参照され、取得したジョブプログラムの識別情報に対応する投入先ノードの識別情報が取得される。そして、ジョブ強制停止手段１ｈにより、投入先判別手段１ｇで取得されたジョブプログラムの識別情報と投入先ノードの識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止が投入先ノードに対して指示される。
【００１３】
また、上記課題を解決するために、ネットワークを介して投入されたジョブのセキュリティ管理を行うためのセキュリティ管理装置において、ジョブの処理内容が記述されたジョブプログラムと、前記ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する使用ライブラリ管理データベースと、前記ジョブプログラムと、前記ジョブの投入先のノードとの対応関係を記憶するジョブ投入先管理データベースと、前記ジョブプログラムを含むジョブ実行要求の入力を受け付けるジョブ実行要求取得手段と、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を前記使用ライブラリ管理データベースに登録する使用ライブラリ判断手段と、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けて前記ジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させるジョブ投入手段と、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得する投入先判別手段と、前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示するジョブ強制停止手段と、を有することを特徴とするセキュリティ管理装置が提供される。
【００１４】
このようなセキュリティ管理装置によれば、ジョブ実行要求取得手段により、ジョブプログラムを含むジョブ実行要求の入力が受け付けられる。次に、使用ライブラリ判断手段により、ジョブ実行要求取得手段で取得したジョブプログラムが解析され、ジョブプログラム中で呼び出されるリンクライブラリが判断され、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係が使用ライブラリ管理データベースに登録される。さらに、ジョブ投入手段により、ジョブ実行要求取得手段で取得したジョブプログラムを実行させる投入先ノードが決定され、投入先ノードの識別情報とジョブプログラムの識別情報とが対応付けられてジョブ投入先管理データベースに登録されると共に、投入先ノードに対してジョブプログラムが送信され、ジョブ実行要求に応じたジョブの実行指示が出される。その後、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、投入先判別手段により、使用ライブラリ管理データベースが参照され、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報が取得され、ジョブ投入先管理データベースが参照され、取得したジョブプログラムの識別情報に対応する投入先ノードの識別情報が取得される。そして、ジョブ強制停止手段により、投入先判別手段で取得されたジョブプログラムの識別情報と投入先ノードの識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止が投入先ノードに対して指示される。
【００１５】
また、上記課題を解決するために、ネットワークを介して投入されたジョブのセキュリティ管理をコンピュータで行うためのセキュリティ管理方法において、ジョブ実行要求取得手段が、ジョブプログラムを含むジョブ実行要求の入力を受け付け、使用ライブラリ判断手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を使用ライブラリ管理データベースに登録し、ジョブ投入手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けてジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させ、投入先判別手段が、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得し、ジョブ強制停止手段が、前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示する、ことを特徴とするセキュリティ管理方法が提供される。
【００１６】
このようなセキュリティ管理方法によれば、ジョブ実行要求取得手段により、ジョブプログラムを含むジョブ実行要求の入力が受け付けられる。次に、使用ライブラリ判断手段により、ジョブ実行要求取得手段で取得したジョブプログラムが解析され、ジョブプログラム中で呼び出されるリンクライブラリが判断され、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係が使用ライブラリ管理データベースに登録される。さらに、ジョブ投入手段により、ジョブ実行要求取得手段で取得したプログラムを実行させる投入先ノードが決定され、投入先ノードの識別情報とジョブプログラムの識別情報とが対応付けられてジョブ投入先管理データベースに登録されると共に、投入先ノードに対してジョブプログラムが送信され、ジョブ実行要求に応じたジョブの実行指示が出される。その後、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、投入先判別手段により、使用ライブラリ管理データベースが参照され、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報が取得され、ジョブ投入先管理データベースが参照され、取得したジョブプログラムの識別情報に対応する投入先ノードの識別情報が取得される。そして、ジョブ強制停止手段により、投入先判別手段で取得されたジョブプログラムの識別情報と投入先ノードの識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止が投入先ノードに対して指示される。
【発明の効果】
【００１７】
本発明では、ジョブ投入時にジョブプログラム中で呼び出すライブラリの識別情報をデータベースに登録しておき、ライブラリに安全性上の欠陥が検出された場合、ジョブが投入されたノードに対して、ジョブプログラムを実行するプロセスの停止を指示するようにした。これにより、危険なライブラリが発見された際に、そのライブラリを使用するジョブプログラムが多数のノード上で実行されていても、即座にそのジョブプログラムの実行を緊急停止させることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本実施の形態の概略を示す図である。図１に示すように、ゲートウェイ１がクライアント２、セキュリティデータベース（ＤＢ）３、および複数のノード４〜６に接続されている。セキュリティＤＢ３には、ライブラリに安全上の欠陥が発見される毎に、該当する脆弱ライブラリの識別情報が登録される。ゲートウェイ１は、クライアント２から入力されたジョブ実行要求に基づいて、ジョブをノード４〜６に投入する。また、セキュリティＤＢ３に登録された危険性を有するライブラリ（脆弱ライブラリ）の情報に基づいて、そのライブラリを使用するジョブを強制的に停止する。
【００１９】
ゲートウェイ１は上記処理を実現するために、使用ライブラリ管理データベース（ＤＢ）１ａ、ジョブ投入先管理データベース（ＤＢ）１ｂ、ジョブ実行要求取得手段１ｃ、使用ライブラリ判断手段１ｄ、ジョブ投入手段１ｅ、脆弱ライブラリ情報取得手段１ｆ、投入先判別手段１ｇ、およびジョブ強制停止手段１ｈを有する。
【００２０】
使用ライブラリ管理データベース１ａは、ジョブの処理内容が記述されたジョブプログラムと、ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する。ジョブ投入先管理ＤＢ１ｂは、ジョブプログラムと、ジョブの投入先のノードとの対応関係を記憶する。
【００２１】
ジョブ実行要求取得手段１ｃは、クライアント２から送られるジョブ実行要求の入力を受け付ける。ジョブ実行要求には、ジョブプログラムが含まれている。
使用ライブラリ判断手段１ｄは、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを解析し、ジョブプログラム中で呼び出されるリンクライブラリを判断する。そして、使用ライブラリ判断手段１ｄは、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係を使用ライブラリ管理ＤＢ１ａに登録する。
【００２２】
ジョブ投入手段１ｅは、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを実行させる投入先ノード（図１の例では、ノード４〜６）を決定する。そして、ジョブ投入手段１ｅは、投入先ノードの識別情報とジョブプログラムの識別情報とを対応付けてジョブ投入先管理ＤＢ１ｂに登録する。さらに、ジョブ投入手段１ｅは、投入先ノードに対してジョブプログラムを送信してジョブプログラムを実行させる。
【００２３】
脆弱ライブラリ情報取得手段１ｆは、セキュリティＤＢ３を定期的に検索し、脆弱ライブラリの識別情報を取得する。そして、脆弱ライブラリ情報取得手段１ｆは、取得した脆弱ライブラリの識別情報を投入先判別手段１ｇに対して出力する。
【００２４】
投入先判別手段１ｇは、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、使用ライブラリ管理ＤＢ１ａを参照し、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報を取得する。そして、投入先判別手段１ｇは、ジョブ投入先管理ＤＢ１ｂを参照し、取得したジョブプログラムの識別情報に対応する投入先ノード（図１の例では、ノード４〜６）の識別情報を取得する。
【００２５】
ジョブ強制停止手段１ｈは、投入先判別手段１ｇで取得されたジョブプログラムの識別情報と投入先ノードの識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止を投入先ノードに対して指示する。
【００２６】
ゲートウェイ１に対してクライアント２からジョブ実行要求が入力されると、そのジョブ実行要求がジョブ実行要求取得手段１ｃで受け付けられる。すると、使用ライブラリ判断手段１ｄにより、ジョブ実行要求取得手段１ｃで取得したジョブプログラムが解析され、ジョブプログラム中で呼び出されるリンクライブラリが判断される。そして、使用ライブラリ判断手段１ｄにより、ジョブプログラムの識別情報とリンクライブラリの識別情報との対応関係が使用ライブラリ管理ＤＢ１ａに登録される。次に、ジョブ投入手段１ｅにより、ジョブ実行要求取得手段１ｃで取得したジョブプログラムを実行させる投入先ノードが決定される。すると、ジョブ投入手段１ｅにより、投入先ノードの識別情報とジョブプログラムの識別情報とが対応付けられてジョブ投入先管理ＤＢ１ｂに登録される。そして、ジョブ投入手段１ｅにより、投入先のノード４〜６に対してジョブプログラムが送信され、そのノード４〜６に対してジョブプログラムの実行が指示される。
【００２７】
すると、ノード４〜６それぞれにおいてジョブ実行用のプロセスが生成され、そのプロセスによってジョブプログラムが実行される。各ノード４〜６でジョブプログラムが実行されることで、それぞれのノード４〜６においてジョブ（ジョブプログラムに従った処理機能）が実施される。
【００２８】
その後、安全上の欠陥を有する脆弱ライブラリの識別情報がセキュリティＤＢ３に登録されると、脆弱ライブラリ情報取得手段１ｆによって、脆弱ライブラリの識別情報が取得される。取得された脆弱ライブラリの識別情報は、投入先判別手段１ｇに入力される。すると、投入先判別手段１ｇにより、使用ライブラリ管理ＤＢ１ａが参照され、脆弱ライブラリの識別情報に対応するジョブプログラムの識別情報が取得される。さらに、投入先判別手段１ｇにより、ジョブ投入先管理ＤＢ１ｂが参照され、取得したジョブプログラムの識別情報に対応する投入先ノードの識別情報が取得される。そして、ジョブ強制停止手段１ｈにより、投入先判別手段１ｇで取得されたジョブプログラムの識別情報と投入先のノード４〜６の識別情報とに基づいて、ジョブプログラムを実行するプロセスの停止の指示が投入先のノード４〜６に対して出される。
【００２９】
各ノード４〜６では、ゲートウェイ１からのプロセスの停止の指示に応答して、ジョブプログラムを実行しているプロセスが停止される。その結果、各ノード４〜６で動作していたジョブも強制的に停止されることとなる。
【００３０】
これにより、危険なライブラリが発見された際に、そのライブラリを使用するジョブプログラムが多数のノード上で実行されていても、即座にそのジョブプログラムの実行を緊急停止させることができる。その結果、ノード４〜６が危険な状態のまま放置される時間を最小限に抑えることができる。しかも、危険性を有するライブラリを実行するジョブプログラムの見落としがなくなり、危険なジョブを確実に停止させることが可能となる。
【００３１】
なお、投入先判別手段１ｇへの脆弱ライブラリの識別情報の入力は、キーボード等の入力装置を用いて管理者が操作入力することで行うこともできる。例えば、セキュリティＤＢ３に登録された脆弱ライブラリの情報から、即座にジョブを停止すべきか否かを管理者が判断する場合がある。その場合、管理者がクライアント２を利用してセキュリティＤＢ３内を参照する。そして、緊急度が高いと判断したら、管理者は、クライアント２を用いて、投入先判別手段１ｇに対して脆弱ライブラリの識別情報を入力する。
【００３２】
以下に、本発明の実施の形態を詳細に説明する。
［第１の実施の形態］
図２は、第１の実施の形態のシステム構成例を示す図である。クライアント３１は、グリッドシステム１００に配置されたゲートウェイ（ＧＷ）１１０に対してネットワーク２１を介して接続されている。
【００３３】
グリッドシステム１００は、ゲートウェイ１１０、複数のノード１２０ａ，１２０ｂ，１２０ｃ，・・・で構成されるＣＰＵ群１２０、ファイバーチャネル（ＦＣ）１４０、および複数の共有二次記憶装置１３１，１３２，１３３で構成される共有二次記憶装置群１３０を有している。
【００３４】
ゲートウェイ１１０と各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・とは、ネットワーク２２で接続されている。また、各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・と共有二次記憶装置１３１，１３２，１３３とは、ファイバーチャネル１４０を介して接続されている。
【００３５】
ゲートウェイ１１０は、クライアント３１からのジョブの投入要求を受け付ける。その際、ゲートウェイ１１０は、入力されたジョブに付加された証明書の認証処理を行う。証明書の認証は、例えば、ＧＳＩ（Grid Security Infrastructure）機能を用いて行われる。証明書が正しく認証された場合、ゲートウェイ１１０はジョブを分割し、ＣＰＵ群１２０内のノードに分割されたジョブを投入する。
【００３６】
ＣＰＵ群１２０を構成する各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・は、ゲートウェイ１１０から投入されたジョブを実行する。その際、各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・は、必要に応じて共有二次記憶装置１３１，１３２，１３３に対して、データの格納または読み出しを行う。
【００３７】
ゲートウェイ１１０には、データベースサーバ２００が接続されている。データベースサーバ２００はセキュリティＤＢ２１０を有しており、セキュリティＤＢ２１０内の情報をゲートウェイ１１０等の各種装置に提供する。セキュリティＤＢ２１０には、広く配布されているライブラリのセキュリティ情報が登録されている。
【００３８】
図３は、第１の実施の形態に用いるゲートウェイのハードウェア構成例を示す図である。ゲートウェイ１１０は、ＣＰＵ（Central Processing Unit）１１０ａによって装置全体が制御されている。ＣＰＵ１１０ａには、バス１１０ｈを介してＲＡＭ（Random Access Memory）１１０ｂ、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１１０ｃ、グラフィック処理装置１１０ｄ、入力インタフェース１１０ｅ、および通信インタフェース１１０ｆ，１１０ｇが接続されている。
【００３９】
ＲＡＭ１１０ｂには、ＣＰＵ１１０ａに実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１１０ｂには、ＣＰＵ１１０ａによる処理に必要な各種データが格納される。ＨＤＤ１１０ｃには、ＯＳやアプリケーションプログラムが格納される。
【００４０】
グラフィック処理装置１１０ｄには、モニタ１１が接続されている。グラフィック処理装置１１０ｄは、ＣＰＵ１１０ａからの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１１０ｅには、キーボード１２とマウス１３とが接続されている。入力インタフェース１１０ｅは、キーボード１２やマウス１３から送られてくる信号を、バス１１０ｈを介してＣＰＵ１１０ａに送信する。
【００４１】
通信インタフェース１１０ｆは、ネットワーク２１に接続されている。通信インタフェース１１０ｆは、ネットワーク２１を介して、クライアント３１との間でデータの送受信を行う。
【００４２】
通信インタフェース１１０ｇは、ネットワーク２２に接続されている。通信インタフェース１１０ｇは、ネットワーク２２を介して、各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・との間でデータの送受信を行う。
【００４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３にはゲートウェイ１１０のハードウェア構成を示したが、各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・も同様のハードウェアで実現することができる。
【００４４】
次に、ゲートウェイ１１０とノードとの機能について説明する。
図４は、第１の実施の形態のゲートウェイとノードとの処理機能を示すブロック図である。なお、図４では代表としてノード１２０ａの機能が示されているが、他のノードもノード１２０ａと同様の機能を有している。
【００４５】
ゲートウェイ１１０は、使用ライブラリ管理ＤＢ１１１、ジョブ投入先管理ＤＢ１１２、ジョブ投入受け付け部１１３、証明書認証部１１４、使用ライブラリ判断部１１５、ジョブ振り分け部１１６、脆弱ライブラリ情報取得部１１７、投入先判別部１１８、およびジョブ強制停止部１１９を有する。
【００４６】
使用ライブラリ管理ＤＢ１１１は、投入されたプログラムのジョブを実行するプログラムで利用されるライブラリのリストが登録された記憶装置である。例えば、ＨＤＤ１１０ｃ内の一部の記憶領域が、使用ライブラリ管理ＤＢ１１１として利用される。
【００４７】
ジョブ投入先管理ＤＢ１１２は、ジョブが投入されたノードのリストが登録された記憶装置である。例えば、ＨＤＤ１１０ｃの一部の記憶領域が、ジョブ投入先管理ＤＢ１１２として利用される。
【００４８】
ジョブ投入受け付け部１１３は、クライアント３１からジョブの実行要求を受け付ける。具体的には、クライアント３１からジョブの実行要求と共に証明書５１付きのアーカイブ４０が送信される。アーカイブ４０には、ジョブの処理内容が記述されたプログラム４１（ジョブプログラム）と、そのプログラム４１の動作環境の設定情報等のプログラム４１の実行に必要な情報が設定された付帯情報４２とが含まれる。
【００４９】
アーカイブ４０としては、例えば、ＺＡＲ（ゼロ・アドミニストレーション・アーカイブ）を利用することができる。ＺＡＲは、ＺＡＲで提供される情報（プログラムと付帯情報）のみによってジョブを実行可能なアーカイブである。すなわち、ＺＡＲの実行に際し、予め所定のライブラリ等の機能が各ノード１２０ａ，１２０ｂ，１２０ｃ，・・・に組み込まれている必要がない。
【００５０】
証明書５１は、アーカイブ４０の作成者を認証局を通して認証するためのデータである。この機能は、例えば、ＳＳＬ（Secure Socket Layer）に既定されている。
ジョブ投入受け付け部１１３は、クライアント３１から証明書５１が添付されたアーカイブ４０を受け取ると、証明書５１を証明書認証部１１４に渡す。そして、ジョブ投入受け付け部１１３は、証明書認証部１１４から、正しく認証された旨の認証結果を受け取ると、アーカイブ４０を使用ライブラリ判断部１１５に渡す。
【００５１】
証明書認証部１１４は、受け取った証明書５１に基づいて、アーカイブ４０の作成者が本人であることを認証する。認証処理は、例えば、図示していない認証局に対して認証を依頼することで実現される。証明書の認証は、例えば、ＧＳＩ（Grid Security Infrastructure）機能を用いて行われる。証明書５１が正しく認証された場合、証明書認証部１１４は、認証処理の結果をジョブ投入受け付け部１１３に対して出力する。
【００５２】
使用ライブラリ判断部１１５は、プログラム中で使用するライブラリを判断する。具体的には、使用ライブラリ判断部１１５は、ジョブ投入受け付け部１１３から渡されたアーカイブ４０内のプログラムを解析し、プログラム内で利用しているライブラリの名称（ライブラリ名）を検出する。
【００５３】
そして、使用ライブラリ判断部１１５は、解析したプログラムのプログラム名と検出したライブラリ名とを関連づけて、使用ライブラリ管理ＤＢ１１１に登録する。その後、使用ライブラリ判断部１１５は、アーカイブ４０をジョブ振り分け部１１６に渡す。
【００５４】
ジョブ振り分け部１１６は、投入されたジョブを複数のノードに実行させるために、ジョブを実行させるノードを決定する。例えば、各ノードの負荷を監視し、負荷の少ないノードにジョブを実行させる。ノードが決定すると、ジョブ振り分け部１１６は、ジョブを実行させるべきノードに対してジョブを投入する。具体的は、ジョブ振り分け部１１６は、ノードに対して、ジョブの実行要求と共にアーカイブ４０を送信する。
【００５５】
脆弱ライブラリ情報取得部１１７は、定期的にセキュリティＤＢ２１０の内容を参照し、脆弱性のあるライブラリの識別情報（ライブラリ名とバージョン）を取得する。そして、脆弱ライブラリ情報取得部１１７は、取得したライブラリの識別情報を投入先判別部１１８に渡す。
【００５６】
投入先判別部１１８は、脆弱ライブラリ情報取得部１１７から渡されたライブラリの識別情報に基づいて、そのライブラリを利用するプログラムを実行しているノードを特定する。具体的には、投入先判別部１１８は、使用ライブラリ管理ＤＢ１１１を参照し、脆弱ライブラリ情報取得部１１７から取得したライブラリの識別情報で示されるライブラリを利用するプログラムのプログラム名を抽出する。次に、投入先判別部１１８は、ジョブ投入先管理ＤＢ１１２を参照し、抽出したプログラム名のプログラムを含むジョブの投入先のノードの識別情報（例えば、ＩＰ（Internet Protocol）アドレス）を抽出する。そして、投入先判別部１１８は、抽出したノードの識別情報とプログラム名との組を、ジョブ強制停止部１１９に渡す。
【００５７】
ジョブ強制停止部１１９は、投入先判別部１１８から受け取ったノードの識別情報に対応するノードに対して、投入先判別部１１８から受け取ったプログラム名を指定したジョブの停止要求を送信する。
【００５８】
ノード１２０ａは、ジョブ管理部１２１、ＯＳ１２２、プログラム記憶部１２３、およびライブラリ記憶部１２４を有している。
ジョブ管理部１２１は、ゲートウェイ１１０から渡されたアーカイブ４０からプログラム４１と付帯情報４２とを分離する。そして、ジョブ管理部１２１は、プログラム４１と付帯情報４２との格納要求を、ＯＳ１２２のファイルシステムに対して出力する。その後、ジョブ管理部１２１は、ジョブを実施させるために、格納したプログラム４１の起動要求をＯＳ１２２に対して出力する。
【００５９】
また、ジョブ管理部１２１は、ゲートウェイ１１０から送られるプログラムの停止要求を取得すると、その停止要求で指定されたプログラム名に対応するプロセスの停止要求をＯＳ１２２に対して出力する。具体的には、ジョブ管理部１２１は、停止要求を受け取ると、ＯＳ１２２を介して現在実行されているプロセスのリスト（プロセスリスト）を取得する。プロセスリストには、動作しているプロセスのプロセスＩＤとそのプロセスで実行しているプログラム名とを含むプロセス情報が示される。
【００６０】
ジョブ管理部１２１は、取得したプロセスリストから、停止要求で指定されたプログラム名のプログラムを実行しているプロセスのプロセスＩＤを抽出する。そして、ジョブ管理部１２１は、抽出したプロセスＩＤを指定して、該当するプロセスの停止要求をＯＳ１２２に依頼する。
【００６１】
ＯＳ１２２は、ノード１２０ａ全体を制御する。ＯＳ１２２には、ファイルシステムが含まれており、ジョブ管理部１２１等のアプリケーションプログラムからの要求に応じて、ＨＤＤ内へのファイルの書き込み等を行う。また、ＯＳ１２２は、プログラム４１を指定した起動要求を受け取ると、そのプログラムを実行するためのジョブ実行プロセス１２５を起動する。そして、起動したジョブ実行プロセス１２５に、プログラム４１に記述されている処理を実行させる。
【００６２】
また、ＯＳ１２２は、プロセスリストを作成する機能を有しており、プロセスリストの作成要求に応じて、その時点で動作しているプロセスに関するプロセスリストを作成する。さらに、ＯＳ１２２は、任意のプロセスの強制停止機能を有している。具体的には、ＯＳ１２２は、プロセスＩＤを指定した停止要求を受け取ると、該当するプロセスを強制的に停止する。
【００６３】
プログラム記憶部１２３は、アーカイブ４０に含まれていたプログラム４１や付帯情報４２を記憶する記憶装置である。例えば、ＨＤＤの記憶領域の一部が、プログラム記憶部１２３として使用される。
【００６４】
ライブラリ記憶部１２４は、ライブラリ１２４ａ，１２４ｂ，１２４ｃを記憶する記憶装置である。例えば、ＨＤＤの記憶領域の一部が、ライブラリ記憶部１２４として使用される。
【００６５】
次に、図４に示す各データベースのデータ構造例について説明する。
図５は、セキュリティＤＢのデータ構造例を示す図である。セキュリティＤＢ２１０には、ライブラリ名、バージョン、および危険性の欄が設けられている。
【００６６】
ライブラリ名の欄には、セキュリティ上の欠陥が判明したライブラリの名称（ライブラリ名）が設定される。バージョンの欄には、セキュリティ上の欠陥が発見されたライブラリのバージョンが設定される。危険性の欄には、そのセキュリティ上の欠陥を放置したときの危険性が設定される。図５の例では、極めて危険な欠陥の場合「大」、中程度の危険性を有する欠陥の場合「中」、危険性の少ない欠陥の場合「小」が設定される。
【００６７】
ライブラリの危険性が「大」の場合、そのライブラリを利用しているプログラムを、即座に停止する必要がある。ライブラリの危険性が「中」の場合、そのライブラリを利用しているプログラムの処理が完了した後に、そのライブラリの欠陥を修復する必要がある。ライブラリの危険性が「小」の場合、そのライブラリの欠陥の修復は必須ではないが、修復するのが望ましい。なお、投入するジョブの処理内容が記述されたジョブプログラムで使用するライブラリの危険性が「大」または「中」の場合、そのジョブの投入は取りやめられる。
【００６８】
図６は、使用ライブラリ管理ＤＢのデータ構造例を示す図である。使用ライブラリ管理ＤＢ１１１には、プログラム名、使用ライブラリ名、およびバージョンの欄が設けられている。
【００６９】
プログラム名の欄には、アーカイブ４０に含まれていたプログラムの名称（プログラム名）が設定される。使用ライブラリ名の欄には、プログラムの実行時に使用されるライブラリの名称（ライブラリ名）が設定される。バージョンの欄には、プログラムの実行時に使用されるライブラリのバーションが設定される。
【００７０】
図７は、ジョブ投入先管理ＤＢのデータ構造例を示す図である。ジョブ投入先管理ＤＢ１１２には、プログラム名、配布先ノード名、およびＩＰアドレスの欄が設けられている。
【００７１】
プログラム名の欄には、投入されたジョブの実行用のプログラムの名称（プログラム名）が設定される。配布先ノード名の欄には、プログラムがジョブの投入に伴って配布されたときの配布先ノードの名称（ノード名）が設定される。ＩＰアドレスの欄には、各配布先ノードのＩＰアドレスが設定される。
【００７２】
以上のような構成に基づいて、ジョブの投入およびライブラリのセキュリティ管理が行われる。以下、本実施の形態の処理を、ジョブ投入時とセキュリティ上の欠陥検出時とに分けて説明する。
【００７３】
図８は、ジョブ投入時の処理を示す概念図である。図８には、グリッドシステム１００内のゲートウェイ１１０とノード１２０ａ，１２０ｂ，１２０ｃ，・・・が示されている。グリッドシステム１００を構成する各ノードでは、クライアントアプリケーション９１ｂ，９２ｂ，９３ｂが実行されている。その状態で、いずれかのノード（図８の例では、ノード１２０ａ，１２０ｂ，１２０ｃ）にジョブ９４ｂ，９５ｂ，９６ｂを実行させるものとする。
【００７４】
まず、クライアント３１からジョブが投入される（ステップＳ１１）。ジョブの投入時には、クライアント３１からゲートウェイ１１０に、ジョブの実行要求と共に証明書５１付きのアーカイブ４０が送信される。アーカイブ４０には、プログラム４１と付帯情報４２とが含まれる。
【００７５】
なお、プログラム４１では、ライブラリ４１ａ，４１ｂ，４１ｃが利用される。すなわち、プログラム４１内の処理記述として、ライブラリ４１ａ，４１ｂ，４１ｃを呼び出す記述（リンク）が含まれている。ライブラリ４１ａ，４１ｂ，４１ｃは、例えば、プログラム４１内に埋め込まれている。また、プログラム４１では、各ノードに事前に配布されているライブラリ１２４ａ，１２４ｂ，１２４ｃの呼出記述のみが含まれている場合もある。
【００７６】
ゲートウェイ１１０では、証明書５１付きのアーカイブ４０を受け取ると、証明書５１の認証および認可処理を行う（ステップＳ１２）。証明書５１が正しく認証されると、ゲートウェイ１１０は、プログラム４１で利用するライブラリ４１ａ，４１ｂ，４１ｃを判定し、判定結果を記憶する（ステップＳ１３）。さらに、ゲートウェイ１１０は、ジョブを分割する（ステップＳ１４）。
【００７７】
そして、ゲートウェイ１１０は、分割したジョブを複数のノード１２０ａ，１２０ｂ，１２０ｃに投入する（ステップＳ１５）。この際、ゲートウェイ１１０は、ジョブの投入先（プログラムの配信先）のノードの情報を記憶する。
【００７８】
ノード１２０ａ，１２０ｂ，１２０ｃに対するジョブの投入では、ジョブの処理要求と共に、アーカイブ４０が各ノード１２０ａ，１２０ｂ，１２０ｃに送信される。そして、ジョブが投入されたノード１２０ａ，１２０ｂ，１２０ｃにおいて、アーカイブ４０内のプログラム４１と付帯情報４２とが取り出され、ジョブ９４ｂ，９４ｂ，９６ｂが実行される（ステップＳ１６）。なお、ジョブ９４ｂ，９４ｂ，９６ｂは、プログラム４１に記述された内容に従ってノード１２０ａ，１２０ｂ，１２０ｃがデータ処理を行うことで実行される。
【００７９】
次に、ジョブ投入時の処理をより詳細に説明する。
図９は、ジョブ実行手順を示すシーケンス図である。以下、図９に示す処理をステップ番号に沿って説明する。
【００８０】
［ステップＳ２１］クライアント３１において、ユーザからジョブ投入指示を受け付ける。
［ステップＳ２２］クライアント３１は、証明書５１付きのアーカイブ４０をゲートウェイ１１０に対して送信する。
【００８１】
［ステップＳ２３］ゲートウェイ１１０のジョブ投入受け付け部１１３は、証明書５１付きのアーカイブ４０を受信する。すると、ジョブ投入受け付け部１１３は、証明書認証部１１４に対して証明書５１を渡す。
【００８２】
［ステップＳ２４］ゲートウェイ１１０の証明書認証部１１４は、証明書５１の認証処理を行う。そして、証明書認証部１１４は、認証結果をジョブ投入受け付け部１１３に渡す。
【００８３】
［ステップＳ２５］証明書５１が正しく認証された場合、ジョブ投入受け付け部１１３は、アーカイブ４０を使用ライブラリ判断部１１５に渡す。使用ライブラリ判断部１１５は、アーカイブ４０に含まれるプログラム４１を解析し、プログラム４１内で利用しているライブラリ４１ａ，４１ｂ，４１ｃを判断する。具体的には、使用ライブラリ判断部１１５は、プログラム４１の中からライブラリの呼出記述を抽出し、呼び出されるライブラリ名とバージョンとを判断する。
【００８４】
［ステップＳ２６］使用ライブラリ判断部１１５は、ライブラリの危険度情報（危険度が「大」または「中」のライブラリのライブラリ名のバーション）を取得する。具体的には、使用ライブラリ判断部１１５は、脆弱ライブラリ情報取得部１１７に対して、セキュリティＤＢ２１０の情報取得を要求する。脆弱ライブラリ情報取得部１１７は、使用ライブラリ判断部１１５からの要求に応答して、セキュリティＤＢ２１０を参照し、危険度が「大」または「中」のライブラリのライブラリ名とバージョンとを取得する。そして、脆弱ライブラリ情報取得部１１７は、取得したライブラリ名とバージョンとのリストを、使用ライブラリ判断部１１５に渡す。
【００８５】
［ステップＳ２７］使用ライブラリ判断部１１５は、プログラム４１で使用するライブラリ４１ａ，４１ｂ，４１ｃの中に危険なライブラリがあるか否かを判断する。具体的には、使用ライブラリ判断部１１５は、ステップＳ２５で判断したライブラリ名とバージョンとの組が、脆弱ライブラリ情報取得部１１７から受け取ったライブラリ名とバージョンとのリストに含まれるか否かを判断する。少なくとも１つでもリストに含まれていれば、使用ライブラリ判断部１１５は、危険なライブラリが含まれると判断し、処理をステップＳ２８に進める。危険なライブラリが検出されなければ、処理がステップＳ２９に進められる。
【００８６】
［ステップＳ２８］使用ライブラリ判断部１１５は、ジョブの投入を中止し、アーカイブ４０を破棄する。その後、処理が終了する。
［ステップＳ２９］使用ライブラリ判断部１１５は、全てのライブラリの安全性が確認されると、プログラム４１のプログラム名と、そのプログラム４１で利用されるライブラリ４１ａ，４１ｂ，４１ｃのライブラリ名とバージョンとを関連づけて、使用ライブラリ管理ＤＢ１１１に登録する。
【００８７】
［ステップＳ３０］使用ライブラリ判断部１１５は、アーカイブ４０をジョブ振り分け部１１６に渡す。ジョブ振り分け部１１６は、ジョブを実行させる１つ以上のノードを決定する。そして、ジョブ振り分け部１１６は、アーカイブ４０に含まれるプログラム４１のプログラム名、アーカイブ４０を送信した各ノードのノード名、およびそれらのノードのＩＰアドレスを関連づけ、ジョブ投入先管理ＤＢ１１２に登録する。
【００８８】
［ステップＳ３１］ジョブ振り分け部１１６は、挿入先のノード１２０ａに対してアーカイブ４０を送信する。
［ステップＳ３２］ノード１２０ａのジョブ管理部１２１は、アーカイブ４０を受信する。ジョブ管理部１２１は、受信したアーカイブ４０からプログラム４１と付帯情報４２とを取り出し、それらの格納要求をＯＳ１２２に対して出力する。すると、ＯＳ１２２は、プログラム４１と付帯情報４２とをプログラム記憶部１２３に格納する。
【００８９】
［ステップＳ３３］ノード１２０ａは、ジョブ実行プロセス１２５を起動し、受信したアーカイブ４０に含まれるプログラム４１を実行する。具体的には、ノード１２０ａのジョブ管理部１２１は、プログラム４１の起動要求をＯＳ１２２に対して出力する。するとＯＳ１２２は、プログラム４１を実行するためのジョブ実行プロセス１２５を生成する。そして、ＯＳ１２２は、プログラム４１を読み出し、ジョブ実行プロセス１２５に実行させる。
【００９０】
次に、ライブラリに対するセキュリティ上の欠陥検出時の処理を説明する。
図１０は、欠陥検出時の処理を示す概念図である。まず、データベースサーバ２００において、管理者からの操作入力により、セキュリティＤＢ２１０に対して、セキュリティ上の欠陥を有するライブラリ（脆弱ライブラリ）の情報が登録される（ステップＳ４１）。この例では、ライブラリ４１ｂが危険度「大」であると登録されたものとする。
【００９１】
ゲートウェイ１１０では、データベースサーバ２００に定期的にアクセスし、セキュリティＤＢ２１０の更新情報を取得する。そして、新たな脆弱ライブラリが登録されたか否かを判断する（ステップＳ４２）。
【００９２】
ライブラリ４１ｂが危険度「大」として登録されたことを検出すると、ゲートウェイ１１０では、ライブラリ４１ｂの投入先のノードを判断する（ステップＳ４３）。例えば、「プログラムＡ」がライブラリ４１ａ，４１ｂ，４１ｃを利用しており、「プログラムＡ」によって実行されるジョブが、ノード名「Node#1」，「Node#2」，「Node#3」の各ノードに投入されているものとする。
【００９３】
この場合、ゲートウェイ１１０では、ライブラリ４１ｂを使用するプログラム４１が投入された各ノード１２０ａ，１２０ｂ，１２０ｃに対して、該当するジョブの停止指示を出力する（ステップＳ４４）。ジョブの停止指示を受けたノード１２０ａ，１２０ｂ，１２０ｃでは、ジョブ９４ｂ，９５ｂ，９６ｂが強制的に止められる（ステップＳ４５）。
【００９４】
次に、ゲートウェイ１１０によるセキュリティＤＢ２１０の監視、および欠陥検出時のジョブ停止処理をより詳細に説明する。
図１１は、欠陥検出時の処理を示すシーケンス図である。以下、図１１に示す処理をステップ番号に沿って説明する。
【００９５】
［ステップＳ５１］ゲートウェイ１１０の脆弱ライブラリ情報取得部１１７は、セキュリティＤＢ２１０を参照し、危険性「大」として登録されているライブラリのライブラリ名とバージョンとを取得する。そして、脆弱ライブラリ情報取得部１１７は、取得したライブラリ名とバージョンとのリストを投入先判別部１１８に渡す。
【００９６】
［ステップＳ５２］投入先判別部１１８は、危険なライブラリがあるか否かを判断する。具体的には、投入先判別部１１８は、ステップＳ５１で取得したライブラリ名とバージョンとのリストに含まれるライブラリ名とバージョンとの組が、使用ライブラリ管理ＤＢ１１１に登録されているか否かを判断する。ライブラリ名とバージョンとの組が少なくとも１つ登録されていれば、危険ライブラリ有りと判断される。危険ライブラリが有れば、処理がステップＳ５４に進められる。危険ライブラリがなければ、処理がステップＳ５３に進められる。
【００９７】
［ステップＳ５３］脆弱ライブラリ情報取得部１１７は、所定時間待機する。その後、処理がステップＳ５１に進められる。
［ステップＳ５４］投入先判別部１１８は、危険ライブラリを実行するプログラムの投入先を判別する。具体的には、投入先判別部１１８は、使用ライブラリ管理ＤＢ１１１から、ステップＳ５１で取得したライブラリ名とバージョンとに対応するプログラム名を取得する。次に、投入先判別部１１８は、ジョブ投入先管理ＤＢ１１２を参照し、取得したプログラム名に対応するプログラム名を検出する。
【００９８】
そして、投入先判別部１１８は、検出したプログラム名に対応するＩＰアドレスをジョブ投入先管理ＤＢ１１２から抽出する。さらに、投入先判別部１１８は、抽出したプログラム名とＩＰアドレスとの組をジョブ強制停止部１１９に渡す。
【００９９】
［ステップＳ５５］ジョブ強制停止部１１９は、危険なライブラリを使用するプログラムが実行されているノードに対して、該当するプログラムに基づくジョブの停止指示を出す。該当ノードが複数有る場合、それぞれのノードに対してジョブの停止指示が出される。
【０１００】
具体的には、ジョブ強制停止部１１９は、投入先判別部１１８からプログラム名とＩＰアドレスとの組を受け取ると、ＩＰアドレスをあて先として、プログラム名を指定したジョブ停止指示をネットワークを介して送信する。投入先判別部１１８から渡されたＩＰアドレスは、対応するプログラムを使用するジョブが投入されたノードのＩＰアドレスであるため、ジョブ停止指示は、そのジョブが投入されたノードに対して送信される。
【０１０１】
［ステップＳ５６］ノード１２０ａでは、ジョブ管理部１２１がジョブ停止指示を受け付ける。
［ステップＳ５７］ジョブ管理部１２１は、ジョブ停止指示で示されたプログラム名に対応するプロセスのプロセスＩＤを取得する。具体的には、ジョブ管理部１２１は、ジョブ停止指示を受け取ると、ＯＳ１２２に対して動作しているプロセスのリストを要求する。すると、ＯＳ１２２がプロセスリストをジョブ管理部１２１に渡す。プロセスリストには、その時点で動作しているプロセスのプロセスＩＤと、そのプロセスで実行されているプログラム名とが示されている。
【０１０２】
ジョブ管理部１２１は、受け取ったプロセスリストの中から、ジョブ停止指示で指定されたプログラム名に対応するプログラムを実行しているプロセスを抽出する。そして、ジョブ管理部１２１は、抽出したプログラムのプロセスＩＤをプロセスリストから取得する。例えば、プログラム４１で使用されるライブラリ４１ｂが危険な場合、プログラム４１を実行するジョブ実行プロセス１２５のプロセスＩＤが取得される。
【０１０３】
［ステップＳ５８］ジョブ管理部１２１は、ステップＳ５７で取得したプロセスＩＤを指定して、ＯＳ１２２に対し、プロセスの停止要求を出力する。ＯＳ１２２は、停止要求に従って、指定されたプロセスＩＤに対応するプロセスを強制的に停止する。
【０１０４】
このようにして、セキュリティに問題があるライブラリを使用するプログラムのノード上への配布と実行を未然に防止できる。しかも、管理者が危険を発見した際に問題のあるプログラムを実行中ノードすべてで、確実にプログラムを停止できる。これにより、大量の計算ノードが外部からの攻撃の危険にさらされるのを防止できる。
【０１０５】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態は、ジョブを停止した後に、ライブラリの欠陥を自動で修復し、ジョブを再開するものである。
【０１０６】
図１２は、第２の実施の形態のシステム構成例を示す図である。クライアント３２は、グリッドシステム３００に配置されたゲートウェイ（ＧＷ）３１０に対してネットワーク２３を介して接続されている。
【０１０７】
グリッドシステム３００は、ゲートウェイ３１０、複数のノード３２０ａ，３２０ｂ，３２０ｃ，・・・で構成されるＣＰＵ群３２０、ファイバーチャネル（ＦＣ）３４０、および複数の共有二次記憶装置３３１，３３２，３３３で構成される共有二次記憶装置群３３０を有している。
【０１０８】
ゲートウェイ３１０と各ノード３２０ａ，３２０ｂ，３２０ｃ，・・・とは、ネットワーク２４で接続されている。また、各ノード３２０ａ，３２０ｂ，３２０ｃ，・・・と共有二次記憶装置３３１，３３２，３３３とは、ファイバーチャネル３４０を介して接続されている。
【０１０９】
ゲートウェイ３１０は、クライアント３２からのジョブの投入要求を受け付ける。その際、ゲートウェイ３１０は、入力されたジョブに付加された証明書の認証処理を行う。証明書が正しく認証された場合、ゲートウェイ３１０はジョブを分割し、ＣＰＵ群３２０内のノードに分割されたジョブを投入する。
【０１１０】
ＣＰＵ群３２０を構成する各ノード３２０ａ，３２０ｂ，３２０ｃ，・・・は、ゲートウェイ３１０から投入されたジョブを実行する。その際、各ノード３２０ａ，３２０ｂ，３２０ｃ，・・・は、必要に応じて共有二次記憶装置３３１，３３２，３３３に対して、データの格納または読み出しを行う。
【０１１１】
ゲートウェイ３１０は、データベースサーバ４００が接続されている。データベースサーバ４００はセキュリティＤＢ４１０とライブラリＤＢ４２０とを有している。これらのデータベース内の情報をゲートウェイ３１０や各ノード３２０ａ，３２０ｂ，３２０ｃ，・・・に提供する。セキュリティＤＢ４１０には、広く配布されているライブラリのセキュリティ情報が登録されている。ライブラリＤＢ４２０には、最新のバーションのライブラリ（安全上の欠陥が発見されていないライブラリ）が登録されている。
【０１１２】
図１３は、第２の実施の形態のゲートウェイとノードとの処理機能を示すブロック図である。ゲートウェイ３１０は、使用ライブラリ管理ＤＢ３１１、ジョブ投入先管理ＤＢ３１２、ジョブ投入受け付け部３１３、証明書認証部３１４、使用ライブラリ判断部３１５、ジョブ振り分け部３１６、脆弱ライブラリ情報取得部３１７、投入先判別部３１８、ジョブ強制停止部３１９、およびライブラリ更新指示部３１０ａを有している。
【０１１３】
ゲートウェイ３１０の構成要素のうち使用ライブラリ管理ＤＢ３１１、ジョブ投入先管理ＤＢ３１２、ジョブ投入受け付け部３１３、証明書認証部３１４、使用ライブラリ判断部３１５、ジョブ振り分け部３１６、および脆弱ライブラリ情報取得部３１７については、図４に示した第１の実施の形態のゲートウェイ１１０内の同名の要素と同じ機能を有している。投入先判別部３１８およびジョブ強制停止部３１９、およびライブラリ更新指示部３１０ａについては、図４に示した第１の実施の形態のゲートウェイ１１０内の同名の要素と同じ機能に加えて、以下の機能を有している。
【０１１４】
投入先判別部３１８は、使用ライブラリ投入先のノードを判別すると、抽出したノードの識別情報（ＩＰアドレス）と脆弱性のあるライブラリの識別情報との組を、ライブラリ更新指示部３１０ａに渡す。
【０１１５】
ジョブ強制停止部３１９は、ジョブの停止要求を送信したノード３２０ａから停止完了の応答を受け取ると、ライブラリの更新準備完了通知をライブラリ更新指示部３１０ａに対して出力する。また、ジョブ強制停止部３１９は、ライブラリ更新指示部３１０ａから危険性排除完了通知を受け取ると、ノード３２０ａに対してジョブの再起動要求を送信する。
【０１１６】
ライブラリ更新指示部３１０ａは、ジョブ強制停止部３１９からライブラリの更新準備完了通知を受け取ると、脆弱性のあるライブラリを最新のライブラリに更新させるための更新指示を行う。具体的には、ライブラリ更新指示部３１０ａは、投入先判別部３１８から受け取ったライブラリの識別情報によって更新対象のライブラリを判断する。そして、ライブラリ更新指示部３１０ａは、投入先判別部３１８から受け取ったノードの識別情報に基づいて、ノード３２０ａに対してライブラリの更新指示を行う。このとき、ライブラリ更新指示部３１０ａは、更新指示において、更新対象のライブラリの識別情報を指定する。ノード３２０ａからライブラリ更新完了の応答が返されると、ライブラリ更新指示部３１０ａは、ジョブ強制停止部３１９に対して危険性排除完了通知を出力する。
【０１１７】
ノード３２０ａは、ジョブ管理部３２１、ＯＳ３２２、プログラム記憶部３２３、ライブラリ記憶部３２４、およびライブラリ更新部３２６を有している。ＯＳ３２２、プログラム記憶部３２３、およびライブラリ記憶部３２４については、図４に示した第１の実施の形態のノード１２０ａ内の同名の要素と同じ機能を有している。また、ジョブ管理部３２１は、図４に示した第１の実施の形態のノード１２０ａ内の同名の要素と同じ機能に加えて、以下の機能を有している。
【０１１８】
ジョブ管理部３２１は、ＯＳ３２２に対してプロセスの停止要求を出力した後、プロセスが停止したことを確認する。例えば、ジョブ管理部３２１からＯＳ３２２に対してプロセスリストの取得要求を出力し、ＯＳ３２２から返されるプロセスリストに強制停止対象のプロセスが含まれていないことを確認する。ジョブ管理部３２１は、プロセスが停止したことを確認すると、ゲートウェイ３１０に対して停止完了の応答を送信する。
【０１１９】
また、ジョブ管理部３２１は、ゲートウェイ３１０からジョブの再起動要求を受け取ると、プロセスの強制停止によって停止していたジョブを再起動する。具体的には、ジョブ管理部３２１は、停止されたジョブ実行プロセス３２５で実行していたプログラム４１の起動要求をＯＳ３２２に対して出力する。これにより、ＯＳ３２２によってジョブ実行プロセス３２５が再度生成され、そのジョブ実行プロセス３２５によってプログラム４１が実行される。
【０１２０】
ライブラリ更新部３２６は、ゲートウェイ３１０からライブラリの更新指示を受け取ると、更新指示で示されたライブラリの識別情報に基づいて、同じライブラリ名の最新バージョンのライブラリをライブラリＤＢ４２０から取得する。そして、ライブラリ更新部３２６は、取得したライブラリによって、更新対象のライブラリを最新バージョンに更新する。
【０１２１】
ライブラリ更新部３２６は、更新対象がライブラリ記憶部３２４内のライブラリ３２４ａ，３２４ｂ，３２４ｃ内の１つであれば、該当ライブラリをライブラリＤＢ４２０から取得したライブラリに置き換える。また、ライブラリ更新部３２６は、更新対象がプログラム４１内に組み込まれていれば、プログラム４１内の該当ライブラリの部分をライブラリＤＢ４２０から取得したライブラリに置き換える。ライブラリ更新部３２６は、ライブラリの更新が終わると、ゲートウェイ３１０に対してライブラリ更新完了の応答を返す。
【０１２２】
以上のような構成によって、危険性のあるライブラリの自動更新を行うことができる。以下、ライブラリの自動更新処理手順を説明する。
図１４は、欠陥検出時のライブラリ更新処理を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
【０１２３】
［ステップＳ６１］ゲートウェイ３１０の脆弱ライブラリ情報取得部３１７は、セキュリティＤＢ４１０を参照し、危険性「大」として登録されているライブラリのライブラリ名とバージョンとを取得する。そして、脆弱ライブラリ情報取得部３１７は、取得したライブラリ名とバージョンとのリストを投入先判別部３１８に渡す。
【０１２４】
［ステップＳ６２］投入先判別部３１８は、危険なライブラリがあるか否かを判断する。具体的には、投入先判別部３１８は、ステップＳ６１で取得したライブラリ名とバージョンとのリストに含まれるライブラリ名とバージョンとの組が、使用ライブラリ管理ＤＢ３１１に登録されているか否かを判断する。ライブラリ名とバージョンとの組が少なくとも１つ登録されていれば、危険ライブラリ有りと判断される。危険ライブラリが有れば、処理がステップＳ６４に進められる。危険ライブラリがなければ、処理がステップＳ６３に進められる。
【０１２５】
［ステップＳ６３］脆弱ライブラリ情報取得部３１７は、所定時間待機する。その後、処理がステップＳ６１に進められる。
［ステップＳ６４］投入先判別部３１８は、危険ライブラリを実行するプログラムの投入先を判別する。具体的には、投入先判別部３１８は、使用ライブラリ管理ＤＢ３１１から、ステップＳ６１で取得したライブラリ名とバージョンとに対応するプログラム名を取得する。次に、投入先判別部３１８は、ジョブ投入先管理ＤＢ３１２を参照し、取得したプログラム名に対応するプログラム名を検出する。
【０１２６】
そして、投入先判別部３１８は、検出したプログラム名に対応するＩＰアドレスをジョブ投入先管理ＤＢ３１２から抽出する。さらに、投入先判別部３１８は、抽出したプログラム名とＩＰアドレスとの組をジョブ強制停止部３１９とライブラリ更新指示部３１０ａとに渡す。
【０１２７】
［ステップＳ６５］ジョブ強制停止部３１９は、危険なライブラリを使用するプログラムが実行されているノードに対して、該当するプログラムに基づくジョブの停止指示を出す。該当ノードが複数有る場合、それぞれのノードに対してジョブの停止指示が出される。
【０１２８】
［ステップＳ６６］ノード３２０ａでは、ジョブ管理部３２１がジョブ停止指示を受け付ける。
［ステップＳ６７］ジョブ管理部３２１は、ジョブ停止指示で示されたプログラム名に対応するプロセスのプロセスＩＤを取得する。
【０１２９】
［ステップＳ６８］ジョブ管理部３２１は、ステップＳ６７で取得したプロセスＩＤを指定して、ＯＳ３２２に対し、プロセスの停止要求を出力する。ＯＳ３２２は、停止要求に従って、指定されたプロセスＩＤに対応するジョブ実行プロセス３２５を強制的に停止する。
【０１３０】
［ステップＳ６９］ジョブ管理部３２１は、プロセスが停止したことを確認すると、ゲートウェイ３１０に対して停止完了の応答を出力する。
［ステップＳ７０］ゲートウェイ３１０のジョブ強制停止部３１９は、ノード３２０ａからの停止完了応答を受け付けると、ライブラリの更新準備完了通知をライブラリ更新指示部３１０ａに対して出力する。
【０１３１】
［ステップＳ７１］ライブラリ更新指示部３１０ａは、ノード３２０ａに対して、更新対象のライブラリの識別情報を指定したライブラリの更新指示を行う。
［ステップＳ７２］ノード３２０ａのライブラリ更新部３２６は、更新指示を受け取ると、ライブラリＤＢ４２０から最新のライブラリを取得し、該当するライブラリを最新のバージョンに更新する。
【０１３２】
［ステップＳ７３］ライブラリ更新部３２６は、ライブラリの更新が完了すると、ゲートウェイ３１０に対してライブラリ更新完了の応答を返す。
［ステップＳ７４］ゲートウェイ３１０のライブラリ更新指示部３１０ａは、ライブラリ更新完了の応答を受け付ける。そして、ライブラリ更新指示部３１０ａは、ジョブ強制停止部３１９に対して危険性排除完了通知を出力する。
【０１３３】
［ステップＳ７５］ジョブ強制停止部３１９は、ライブラリ更新指示部３１０ａから危険性排除完了通知を受け取ると、ノード３２０ａに対してジョブの再起動指示を送信する。
【０１３４】
［ステップＳ７６］ノード３２０ａのジョブ管理部３２１は、ジョブの再起動を行う。すなわち、ジョブ管理部３２１は、プログラム４１の起動要求をＯＳ３２２に対して出力する。すると、ジョブ実行プロセス３２５が再生成され、ジョブ実行プロセス３２５によってプログラム４１が実行される。
【０１３５】
このようにして、危険性を有するライブラリを用いたジョブを実行しているジョブ実行プロセス３２５を強制的に緊急停止した場合、問題のないバージョンにライブラリを更新した後、ジョブを再開できる。これにより、ジョブの停止期間を短時間ですませることができる。その結果、危険性を有するライブラリが発見された場合のグリッドシステム全体としての処理効率の低下を少なく抑えることができる。
【０１３６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ゲートウェイや各ノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３９】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１４０】
（付記１）  ネットワークを介して投入されたジョブのセキュリティ管理を行うためのセキュリティ管理プログラムにおいて、
コンピュータを、
ジョブの処理内容が記述されたジョブプログラムと、前記ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する使用ライブラリ管理データベース、
前記ジョブプログラムと、前記ジョブの投入先のノードとの対応関係を記憶するジョブ投入先管理データベース、
前記ジョブプログラムを含むジョブ実行要求の入力を受け付けるジョブ実行要求取得手段、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を前記使用ライブラリ管理データベースに登録する使用ライブラリ判断手段、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けて前記ジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させるジョブ投入手段、
安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得する投入先判別手段、
前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示するジョブ強制停止手段、
として機能させることを特徴とするセキュリティ管理プログラム。
【０１４１】
（付記２）  前記コンピュータを、さらに、
ライブラリに安全上の欠陥が発見される毎に前記脆弱ライブラリの識別情報が登録されるセキュリティデータベースを定期的に検索し、前記脆弱ライブラリの識別情報を取得し、取得した前記脆弱ライブラリの識別情報を前記投入先判別手段に対して出力する脆弱ライブラリ情報取得手段として機能させることを特徴とする付記１記載のセキュリティ管理プログラム。
【０１４２】
（付記３）  前記セキュリティデータベースには、前記脆弱ライブラリの危険性を示す危険度が設定されており、
前記脆弱ライブラリ情報取得手段は、所定の危険度よりも高い危険度を有する前記脆弱ライブラリの識別情報のみを前記投入先判別手段に対して出力することを特徴とする付記２記載のセキュリティ管理プログラム。
【０１４３】
（付記４）  前記脆弱ライブラリ情報取得手段は、前記使用ライブラリ判断手段からの脆弱ライブラリ情報取得要求に応じて、前記脆弱ライブラリの識別情報が登録されるセキュリティデータベースを定期的に検索し、前記脆弱ライブラリの識別情報を取得し、前記使用ライブラリ判断手段に前記脆弱ライブラリの識別情報を渡し、
前記使用ライブラリ判断手段は、前記リンクライブラリを判断すると、前記脆弱ライブラリ情報取得手段に対して前記脆弱ライブラリ情報取得要求を出力し、前記脆弱ライブラリ情報取得手段から前記脆弱ライブラリの識別情報を受け取り、前記脆弱ライブラリの識別情報と合致する識別情報の前記リンクライブラリの有無を判断し、
前記ジョブ投入手段は、前記使用ライブラリ判断手段において、前記脆弱ライブラリの識別情報と合致する識別情報の前記リンクライブラリはないと判断された場合にのみ、前記投入先ノードに前記ジョブプログラムを実行させる、
ことを特徴とする付記２記載のセキュリティ管理プログラム。
【０１４４】
（付記５）  前記セキュリティデータベースには、前記脆弱ライブラリの危険性を示す危険度が設定されており、
前記脆弱ライブラリ情報取得手段は、所定の第１の危険度よりも高い危険度が設定された前記脆弱ライブラリの識別情報のみを前記投入先判別手段に対して出力し、前記第１の危険性よりも低い所定の第２の危険度よりも高い危険度が設定された前記危険ライブラリの識別情報のみを前記使用ライブラリ判断手段に渡すことを特徴とする付記４記載のセキュリティ管理プログラム。
【０１４５】
（付記６）  前記コンピュータを、さらに、
前記投入先ノードに対して、前記脆弱ライブラリを最新のバージョンに更新することを示すライブラリ更新指示を前記投入先ノードに対して送信するライブラリ更新指示手段として機能させることを特徴とする付記１記載のセキュリティ管理プログラム。
【０１４６】
（付記７）  前記ジョブ強制停止手段は、前記投入先ノードにおける前記脆弱ライブラリの更新完了後、前記投入先ノードに対して前記ジョブプログラムを起動させることを特徴とする付記６記載のセキュリティ管理プログラム。
【０１４７】
（付記８）  前記使用ライブラリ判断手段は、前記ジョブプログラムから他のファイルで用意されているライブラリを呼び出すための記述と、前記ジョブプログラム内に組み込まれたライブラリを呼び出す記述とを抽出し、それぞれの記述で呼び出されるライブラリを前記リンクライブラリとすることを特徴とする付記１記載のセキュリティ管理プログラム。
【０１４８】
（付記９）  前記使用ライブラリ判断手段は、前記リンクライブラリの識別情報として、前記リンクライブラリのライブラリ名とバージョンとを前記使用ライブラリ管理データベースに登録し、
前記投入先判別手段は、前記脆弱ライブラリの識別情報として、前記脆弱ライブラリのライブラリ名とバージョンとを受け取ることを特徴とする付記１記載のセキュリティ管理プログラム。
【０１４９】
（付記１０）  ネットワークを介して投入されたジョブのセキュリティ管理を行うためのセキュリティ管理装置において、
ジョブの処理内容が記述されたジョブプログラムと、前記ジョブプログラム中で呼び出されるリンクライブラリとの対応関係を記憶する使用ライブラリ管理データベースと、
前記ジョブプログラムと、前記ジョブの投入先のノードとの対応関係を記憶するジョブ投入先管理データベースと、
前記ジョブプログラムを含むジョブ実行要求の入力を受け付けるジョブ実行要求取得手段と、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を前記使用ライブラリ管理データベースに登録する使用ライブラリ判断手段と、
前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けて前記ジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させるジョブ投入手段と、
安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得する投入先判別手段と、
前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示するジョブ強制停止手段と、
を有することを特徴とするセキュリティ管理装置。
【０１５０】
（付記１１）  ネットワークを介して投入されたジョブのセキュリティ管理をコンピュータで行うためのセキュリティ管理方法において、
ジョブ実行要求取得手段が、ジョブプログラムを含むジョブ実行要求の入力を受け付け、
使用ライブラリ判断手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを解析し、前記ジョブプログラム中で呼び出される前記リンクライブラリを判断し、前記ジョブプログラムの識別情報と前記リンクライブラリの識別情報との対応関係を使用ライブラリ管理データベースに登録し、
ジョブ投入手段が、前記ジョブ実行要求取得手段で取得した前記ジョブプログラムを実行させる投入先ノードを決定し、前記投入先ノードの識別情報と前記ジョブプログラムの識別情報とを対応付けてジョブ投入先管理データベースに登録すると共に、前記投入先ノードに対して前記ジョブプログラムを送信して前記ジョブプログラムを実行させ、
投入先判別手段が、安全上の欠陥を有する脆弱ライブラリの識別情報が入力されると、前記使用ライブラリ管理データベースを参照し、前記脆弱ライブラリの識別情報に対応する前記ジョブプログラムの識別情報を取得し、前記ジョブ投入先管理データベースを参照し、取得した前記ジョブプログラムの識別情報に対応する前記投入先ノードの識別情報を取得し、
ジョブ強制停止手段が、前記投入先判別手段で取得された前記ジョブプログラムの識別情報と前記投入先ノードの識別情報とに基づいて、前記ジョブプログラムを実行するプロセスの停止を前記投入先ノードに対して指示する、
ことを特徴とするセキュリティ管理方法。
【図面の簡単な説明】
【０１５１】
【図１】本実施の形態の概略を示す図である。
【図２】第１の実施の形態のシステム構成例を示す図である。
【図３】第１の実施の形態に用いるゲートウェイのハードウェア構成例を示す図である。
【図４】第１の実施の形態のゲートウェイとノードとの処理機能を示すブロック図である。
【図５】セキュリティＤＢのデータ構造例を示す図である。
【図６】使用ライブラリ管理ＤＢのデータ構造例を示す図である。
【図７】ジョブ投入先管理ＤＢのデータ構造例を示す図である。
【図８】ジョブ投入時の処理を示す概念図である。
【図９】ジョブ実行手順を示すシーケンス図である。
【図１０】欠陥検出時の処理を示す概念図である。
【図１１】欠陥検出時の処理を示すシーケンス図である。
【図１２】第２の実施の形態のシステム構成例を示す図である。
【図１３】第２の実施の形態のゲートウェイとノードとの処理機能を示すブロック図である。
【図１４】欠陥検出時のライブラリ更新処理を示すシーケンス図である。
【符号の説明】
【０１５２】
１  ゲートウェイ
１ａ  使用ライブラリ管理ＤＢ
１ｂ  ジョブ投入先管理ＤＢ
１ｃ  ジョブ実行要求取得手段
１ｄ  使用ライブラリ判断手段
１ｅ  ジョブ投入手段
１ｆ  脆弱ライブラリ情報取得手段
１ｇ  投入先判別手段
１ｈ  ジョブ強制停止手段
２  クライアント
３  セキュリティＤＢ
４〜６  ノード
【図１】
0004722730.tif 000002
【図２】
0004722730.tif 000003
【図３】
0004722730.tif 000004
【図４】
0004722730.tif 000005
【図５】
0004722730.tif 000006
【図６】
0004722730.tif 000007
【図７】
0004722730.tif 000008
【図８】
0004722730.tif 000009
【図９】
0004722730.tif 000010
【図１０】
0004722730.tif 000011
【図１１】
0004722730.tif 000012
【図１２】
0004722730.tif 000013
【図１３】
0004722730.tif 000014
【図１４】
0004722730.tif 000015