JP2007249279A - サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム - Google Patents
サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム Download PDFInfo
- Publication number
- JP2007249279A JP2007249279A JP2006068000A JP2006068000A JP2007249279A JP 2007249279 A JP2007249279 A JP 2007249279A JP 2006068000 A JP2006068000 A JP 2006068000A JP 2006068000 A JP2006068000 A JP 2006068000A JP 2007249279 A JP2007249279 A JP 2007249279A
- Authority
- JP
- Japan
- Prior art keywords
- service
- banner information
- port
- specific port
- banner
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】標準的なポート番号以外のポート番号でサービスが提供される場合であっても、そのポート番号で提供されるサービスを特定できるようにする。
【解決手段】情報の入出力を行う入出力部11と、各処理部の動作を制御する制御部12と、特定のポートに対する接続を指示する接続指示部13と、特定のポートから送出されるバナー情報を取得するバナー情報取得部14と、バナー情報を引き出すためのリクエストデータを記憶するデータ記憶部15と、特定のポートで提供されているサービスを特定するサービス特定部16と、サービスを特定する際に参照されるテーブルを記憶するテーブル記憶部17と、特定されたサービスに応じた脆弱性検査の実施を指示する検査指示部18と、各処理部とネットワークとの間で情報の送受信を行う通信部19とを備える。
【選択図】図2
【解決手段】情報の入出力を行う入出力部11と、各処理部の動作を制御する制御部12と、特定のポートに対する接続を指示する接続指示部13と、特定のポートから送出されるバナー情報を取得するバナー情報取得部14と、バナー情報を引き出すためのリクエストデータを記憶するデータ記憶部15と、特定のポートで提供されているサービスを特定するサービス特定部16と、サービスを特定する際に参照されるテーブルを記憶するテーブル記憶部17と、特定されたサービスに応じた脆弱性検査の実施を指示する検査指示部18と、各処理部とネットワークとの間で情報の送受信を行う通信部19とを備える。
【選択図】図2
Description
本発明は、ネットワークを介して接続された他の装置が提供するサービスの脆弱性を検査する脆弱性検査装置等に関する。
近年、インターネットが爆発的に普及し、我々の生活を便利にしている。しかし、その反面、インターネットに潜む脅威も無視することはできない。特に、インターネット上で提供されるサービスに脆弱性があると、その脆弱性を突いた攻撃を受ける虞がある。例えば、ワームによる攻撃、サーバへの不正侵入によるホームページの改ざんや機密情報の漏洩等である。そこで、インターネット上のサービスについては、脆弱性が存在していないかどうかを検査することが重要になってきている。
ところで、一般に、インターネット上で公開されるサービスについては、そのサービスを提供する際に用いる標準的なポート番号が定められている。従って、各サービスは、通常、その標準的なポート番号で提供される。こうした事情から、従来、あるサービスの脆弱性の検査は、そのサービスに割り当てられた標準的なポート番号に対してのみ行うのが普通だった。
ここで、公報記載の従来技術としては、コンピュータウィルスの感染によってオープンされると想定するポート番号に対してポートスキャンを行うことにより、あるコンピュータ上で稼動しているソフトウェアの脆弱性を検査するものがある(例えば、特許文献1参照)。この特許文献1では、ユーザが意図してそのコンピュータ上に提供するサービスに対応するポート番号を検査対象から除外している。例えば、サービス「Web(HTTP)」に対するポート番号「80」、サービス「FTP」に対するポート番号「20」及び「21」、サービス「telnet」に対するポート番号「23」が除外されている。
前述の通り、従来は、サービスに対して定められた標準的なポート番号に対して脆弱性検査を実施する検査方法が用いられていた。しかしながら、この標準的なポート番号は必ずこれを用いなければならないというものではなく、サービスの提供者が、サービスの提供に用いるポート番号を任意に変更することは可能である。
このように標準的なポート番号以外でサービスを提供するようにした場合、従来の検査方法では、そのサービスの脆弱性を検出することはできないという問題点があった。
このように標準的なポート番号以外でサービスを提供するようにした場合、従来の検査方法では、そのサービスの脆弱性を検出することはできないという問題点があった。
また、特許文献1の技術は、あるポート番号のポートがコンピュータウィルスの感染によってオープンすることが分かっている状況におけるポートスキャンによる検査である。また、検査対象から除外するポート番号としても、各サービスに割り当てられた標準的なポート番号が例示されている。従って、特許文献1では、標準的なポート番号以外でサービスが提供されることなど全く考えられておらず、そうした場合に上記問題点を解決するための有効な手段を提供するものでもない。
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、標準的なポート番号以外のポート番号でサービスが提供される場合であっても、そのポート番号で提供されるサービスを特定できるようにすることにある。
また、本発明の他の目的は、あるサービスの脆弱性の検査や、あるサービスに対する攻撃の検知を、効率的に実施できるようにすることにある。
また、本発明の他の目的は、あるサービスの脆弱性の検査や、あるサービスに対する攻撃の検知を、効率的に実施できるようにすることにある。
かかる目的のもと、本発明は、ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを、そのポートから送出されたバナー情報の特徴に基づいて判定するようにした。即ち、本発明のサービス判定装置は、特定のポートに対して接続を行う接続手段と、この接続手段による接続に応じて返信されるバナー情報を取得するバナー情報取得手段と、バナー情報からサービスに関するキーワードを検出することにより、特定のポートで提供されるサービスを特定するサービス特定手段とを備えている。
また、本発明では、特定のポートへ接続する際に、バナー情報を引き出すようなリクエストを複数送信するようにした。即ち、本発明のサービス判定装置は、バナー情報取得手段が、サービスごとに用意されたバナー情報を返信させるためのデータを、特定のポートに繰り返し送信することにより、そのバナー情報を取得するように構成することもできるものである。そして、このような構成により、接続しただけでバナー情報が取得できるサービス以外にも、より多くのサービスに関するバナー情報を取得することができるようになる。
更に、本発明は、各ポートで提供されるサービスの調査結果を用いて、脆弱性検査の内容を最適化するようにした。即ち、本発明の脆弱性検査装置は、特定のポートから送出されるバナー情報を取得するバナー情報取得手段と、バナー情報に基づいて、特定のポートで提供されるサービスを特定するサービス特定手段と、このサービス特定手段により特定されたサービスに応じた脆弱性検査を実行する検査手段とを備えている。これにより、標準的なポート番号以外で稼働するサービスの脆弱性の検出を可能とし、ポートが開いていないサービスやそのサービスに関連のない無駄な検査を省く効果が期待できる。
更にまた、本発明は、各ポートで提供されるサービスの調査結果を用いて、攻撃検知の内容を最適化するようにした。即ち、本発明の攻撃検知装置は、複数のポートから送出されるバナー情報を取得するバナー情報取得手段と、バナー情報に基づいて、特定のサービスが提供されているポートを特定するポート特定手段と、このポート特定手段により特定されたポートに対する攻撃データを検知する検知手段とを備えている。これにより、標準的なポート番号以外で稼働するサービスに対する攻撃データの検出を可能とする。
また、本発明は、ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを判定する方法として捉えることもできる。その場合、本発明のサービス判定方法は、特定のポートに対して接続を行うステップと、接続に応じて返信されるバナー情報を取得するステップと、サービスとそのサービスに関するキーワードとの対応情報を所定の記憶装置から読み出すステップと、対応情報に含まれるキーワードがバナー情報に含まれる場合に、そのキーワードに対応するサービスを、特定のポートで提供されるサービスとして特定するステップとを含んでいる。
一方、本発明は、ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを判定するためのプログラムとして捉えることもできる。その場合、本発明のプログラムは、コンピュータに、特定のポートに対して接続を行う機能と、接続に応じて返信されるバナー情報を取得する機能と、バナー情報からサービスに関するキーワードを検出することにより、特定のポートで提供されるサービスを特定する機能とを実現させるためのものである。
本発明によれば、標準的なポート番号以外のポート番号でサービスが提供される場合であっても、そのポート番号で提供されるサービスを特定することが可能になる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態が適用されるコンピュータシステムの構成を示した図である。このコンピュータシステムは、検査装置10と、被検査装置20とが、ネットワーク30を介して接続されている。
検査装置10は、被検査装置20がネットワーク30上で提供するサービスの脆弱性を検査する装置である。例えば、汎用的なPC(Personal Computer)であってよい。
また、被検査装置20は、ネットワーク30上でサービスを提供するサーバコンピュータである。この被検査装置20としては、FTP(File Transfer Protocol)サービスを提供するFTPサーバ、SSH(Secure SHell)サービスを提供するSSHサーバ、SMTP(Simple Mail Transfer Protocol)サービスを提供するSMTPサーバ、HTTP(HyperText Transfer Protocol)サービスを提供するHTTPサーバ、Proxyサービスを提供するProxyサーバ等が例示される。尚、図では、1台の被検査装置20しか示していないが、被検査装置20の数はこれに限るものではない。即ち、複数台の被検査装置20がネットワーク30に接続されていてもよい。
ネットワーク30は、例えば、インターネットである。
図1は、本実施の形態が適用されるコンピュータシステムの構成を示した図である。このコンピュータシステムは、検査装置10と、被検査装置20とが、ネットワーク30を介して接続されている。
検査装置10は、被検査装置20がネットワーク30上で提供するサービスの脆弱性を検査する装置である。例えば、汎用的なPC(Personal Computer)であってよい。
また、被検査装置20は、ネットワーク30上でサービスを提供するサーバコンピュータである。この被検査装置20としては、FTP(File Transfer Protocol)サービスを提供するFTPサーバ、SSH(Secure SHell)サービスを提供するSSHサーバ、SMTP(Simple Mail Transfer Protocol)サービスを提供するSMTPサーバ、HTTP(HyperText Transfer Protocol)サービスを提供するHTTPサーバ、Proxyサービスを提供するProxyサーバ等が例示される。尚、図では、1台の被検査装置20しか示していないが、被検査装置20の数はこれに限るものではない。即ち、複数台の被検査装置20がネットワーク30に接続されていてもよい。
ネットワーク30は、例えば、インターネットである。
次に、本実施の形態における検査装置10の機能構成について説明する。
図2は、検査装置10の機能構成の一例を示したブロック図である。
図示するように、検査装置10は、情報の入出力を行う入出力部11と、後述する各処理部の動作を制御する制御部12とを含む。また、被検査装置20における特定のポートに対する接続を指示する接続指示部13と、被検査装置20における特定のポートから送出されるバナー情報を取得するバナー情報取得部14と、バナー情報を引き出すためのリクエストデータを記憶するデータ記憶部15とを含む。更に、被検査装置20における特定のポートで提供されているサービスを特定するサービス特定部16と、サービスを特定する際に参照されるテーブルを記憶するテーブル記憶部17と、特定されたサービスに応じた脆弱性検査の実施を指示する検査指示部18とを含む。更にまた、被検査装置20との間で情報の送受信を行う通信部19とを含んでいる。
図2は、検査装置10の機能構成の一例を示したブロック図である。
図示するように、検査装置10は、情報の入出力を行う入出力部11と、後述する各処理部の動作を制御する制御部12とを含む。また、被検査装置20における特定のポートに対する接続を指示する接続指示部13と、被検査装置20における特定のポートから送出されるバナー情報を取得するバナー情報取得部14と、バナー情報を引き出すためのリクエストデータを記憶するデータ記憶部15とを含む。更に、被検査装置20における特定のポートで提供されているサービスを特定するサービス特定部16と、サービスを特定する際に参照されるテーブルを記憶するテーブル記憶部17と、特定されたサービスに応じた脆弱性検査の実施を指示する検査指示部18とを含む。更にまた、被検査装置20との間で情報の送受信を行う通信部19とを含んでいる。
尚、これらの各機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、検査装置10の図示しないCPUが、入出力部11、制御部12、接続指示部13、バナー情報取得部14、サービス特定部16、検査指示部18、通信部19の各機能を実現するプログラムを外部記憶装置から主記憶装置に読み込んで処理を行う。また、データ記憶部15及びテーブル記憶部17は、例えば、磁気ディスクによって実現される。
次いで、このような機能構成を有する検査装置10の動作について詳細に説明する。
ここで、検査装置10の動作は、大きく前半と後半とに分けることができる。前半は、ポートスキャン、バナー情報の取得、サービスの特定であり、後半は、脆弱性の検査である。そこで、以下では、前半の処理と後半の処理とに分けて動作を説明する。
ここで、検査装置10の動作は、大きく前半と後半とに分けることができる。前半は、ポートスキャン、バナー情報の取得、サービスの特定であり、後半は、脆弱性の検査である。そこで、以下では、前半の処理と後半の処理とに分けて動作を説明する。
[前半の処理]
図3は、前半の処理の流れを示したフローチャートである。
即ち、まず、ユーザが検査対象として指定した複数のポート番号に対して接続を試みる。そして、ポートへの接続が成功した場合は、バナー情報を取得し、そのポートで提供されるサービスが何であるかを判定する。
以下、順を追って詳しく説明する。
図3は、前半の処理の流れを示したフローチャートである。
即ち、まず、ユーザが検査対象として指定した複数のポート番号に対して接続を試みる。そして、ポートへの接続が成功した場合は、バナー情報を取得し、そのポートで提供されるサービスが何であるかを判定する。
以下、順を追って詳しく説明する。
まず、検査装置10は、例えば、入出力部11がユーザによる動作開始を指示する操作を認識することで動作を開始する。これにより、制御部12による制御の下、接続指示部13が、指定されたポートに対する接続の試行、つまり、ポートスキャンを通信部19に指示する。そして、通信部19が、そのポートに対し実際にポートスキャンを実施する(ステップ101)。ここで、ポートスキャンとしては、一般的なConnect()方式のポートスキャンを実施することができる。Connect()方式のポートスキャンとは、オープン状態(外部からの接続を受付可能な状態)であるポートのポート番号を調査するものである。即ち、ポート番号ごとに接続を試行し、接続が成功したかどうかを判定する(ステップ102)。
ここで、接続に失敗したと判定された場合、このポートはクローズ状態にあると判断する。即ち、接続指示部13が接続の失敗を検出し、その情報を制御部12に返す。これにより、制御部12による制御の下、処理は終了する。
一方、接続に成功したと判定された場合、このポートはオープン状態にあると判断する。即ち、接続指示部13が接続の成功を検出し、その情報を制御部12に返す。これにより、制御部12による制御の下、バナー情報取得部14が、バナー情報の取得処理を実行する(ステップ103)。尚、このバナー情報の取得処理の詳細については後述する。
また、バナー情報の取得処理が終了すると、同じく制御部12による制御の下、サービス特定部16が、サービスの特定処理を実行する(ステップ104)。尚、このサービスの特定処理の詳細についても後述する。
一方、接続に成功したと判定された場合、このポートはオープン状態にあると判断する。即ち、接続指示部13が接続の成功を検出し、その情報を制御部12に返す。これにより、制御部12による制御の下、バナー情報取得部14が、バナー情報の取得処理を実行する(ステップ103)。尚、このバナー情報の取得処理の詳細については後述する。
また、バナー情報の取得処理が終了すると、同じく制御部12による制御の下、サービス特定部16が、サービスの特定処理を実行する(ステップ104)。尚、このサービスの特定処理の詳細についても後述する。
そして、サービス特定部16から処理結果を受けると、最後に、制御部12は、サービスが確定したかどうかを判定する(ステップ105)。
ここで、サービスが確定できなかったと判定された場合は、ステップ103及びステップ104の処理を、サービスが確定するまで繰り返す。そして、サービスが確定すれば、処理は終了する。
ここで、サービスが確定できなかったと判定された場合は、ステップ103及びステップ104の処理を、サービスが確定するまで繰り返す。そして、サービスが確定すれば、処理は終了する。
次に、図3で説明を省略したバナー情報の取得処理及びサービスの特定処理の詳細について述べる。
―バナー情報の取得処理―
まず、バナー情報取得部14がバナー情報を取得する際の動作について説明する。
図4は、このときのバナー情報取得部14の動作を示したフローチャートである。ここで、バナー情報取得部14の動作は、図3のステップ102に引き続き行われる場合と、図3のステップ105から戻って行われる場合とで、若干動作が異なるので、分けて説明する。
まず、図3のステップ102に引き続き行われる場合について説明する。
この場合、バナー情報取得部14は、図3のステップ101で実施したポートスキャンに対する応答として、バナー情報が返されたかどうかを判定する(ステップ111)。
即ち、ポートスキャンで接続に成功した場合、ある種のサービスが提供されているポートからは、接続しただけでバナー情報が返される。例えば、FTPサービス、SSHサービス、SMTPサービスがこのようなサービスに該当する。一方、接続に成功した後に、何らかのデータを送信しなければ、何の応答も返さないサービスも存在する。例えば、HTTPサービス、Proxyサービスがこのようなサービスに該当する。従って、ここではまず、このサービスごとの動作の違いを考慮して、ポートスキャンに応じてバナー情報が返されたかどうかを判定しているのである。
―バナー情報の取得処理―
まず、バナー情報取得部14がバナー情報を取得する際の動作について説明する。
図4は、このときのバナー情報取得部14の動作を示したフローチャートである。ここで、バナー情報取得部14の動作は、図3のステップ102に引き続き行われる場合と、図3のステップ105から戻って行われる場合とで、若干動作が異なるので、分けて説明する。
まず、図3のステップ102に引き続き行われる場合について説明する。
この場合、バナー情報取得部14は、図3のステップ101で実施したポートスキャンに対する応答として、バナー情報が返されたかどうかを判定する(ステップ111)。
即ち、ポートスキャンで接続に成功した場合、ある種のサービスが提供されているポートからは、接続しただけでバナー情報が返される。例えば、FTPサービス、SSHサービス、SMTPサービスがこのようなサービスに該当する。一方、接続に成功した後に、何らかのデータを送信しなければ、何の応答も返さないサービスも存在する。例えば、HTTPサービス、Proxyサービスがこのようなサービスに該当する。従って、ここではまず、このサービスごとの動作の違いを考慮して、ポートスキャンに応じてバナー情報が返されたかどうかを判定しているのである。
ここで、バナー情報を取得できたと判定された場合、バナー情報取得部14は、取得したバナー情報を制御部12に返す(ステップ112)。
一方、バナー情報を取得できなかったと判定された場合は、バナー情報を引き出すためのリクエストデータを送信する必要がある。ここで、リクエストデータを送信することが必要となるサービスとしては、上述したように、HTTPサービス、Proxyサービスが例示される。バナー情報を引き出すためのリクエストデータは、サービスごとに異なるので、リクエストデータを送信しても、サービスがそのリクエストデータを認識できないものであった場合は、何の応答も返されない可能性がある。従って、バナー情報を引き出すためには、検査対象のポートで提供されるサービスが認識できるまで、各種サービスに対して用意されたリクエストデータを送信することになる。
一方、バナー情報を取得できなかったと判定された場合は、バナー情報を引き出すためのリクエストデータを送信する必要がある。ここで、リクエストデータを送信することが必要となるサービスとしては、上述したように、HTTPサービス、Proxyサービスが例示される。バナー情報を引き出すためのリクエストデータは、サービスごとに異なるので、リクエストデータを送信しても、サービスがそのリクエストデータを認識できないものであった場合は、何の応答も返されない可能性がある。従って、バナー情報を引き出すためには、検査対象のポートで提供されるサービスが認識できるまで、各種サービスに対して用意されたリクエストデータを送信することになる。
具体的には、データ記憶部15が、サービスごとのリクエストデータを記憶しておく。この状態で、バナー情報取得部14は、データ記憶部15からリクエストデータを読み込む(ステップ113)。そして、読込みが成功したかどうかを判定する(ステップ114)。
ここで、リクエストデータの読込みが成功したと判定された場合、つまり、EOF(End Of File)ではない場合、バナー情報取得部14は、そのリクエストデータの送信を通信部19に指示する。これにより、通信部19が、リクエストデータを検査対象のポートに対して送信する(ステップ115)。尚、ここでは、図3のステップ102に引き続き行われる動作を想定しているので、リクエストデータは、先頭から順番に読み出すようにする。
ここで、リクエストデータの読込みが成功したと判定された場合、つまり、EOF(End Of File)ではない場合、バナー情報取得部14は、そのリクエストデータの送信を通信部19に指示する。これにより、通信部19が、リクエストデータを検査対象のポートに対して送信する(ステップ115)。尚、ここでは、図3のステップ102に引き続き行われる動作を想定しているので、リクエストデータは、先頭から順番に読み出すようにする。
そして、バナー情報取得部14は、このリクエストデータに応じてバナー情報が返信されたかどうかを再び判定する(ステップ111)。その後の処理は、ポートスキャンに応じてバナー情報が返された場合と同様であるため、説明を省略する。
また、ステップ111〜ステップ115を繰り返していき、どのリクエストデータを送信してもバナー情報が返されないことも理論的には想定できる。その場合、バナー情報取得部14は、エラー情報を制御部12に返す(ステップ116)。尚、この場合は、図3のステップ104の処理が行えないため、ステップ105での判定が「No」となる。
また、ステップ111〜ステップ115を繰り返していき、どのリクエストデータを送信してもバナー情報が返されないことも理論的には想定できる。その場合、バナー情報取得部14は、エラー情報を制御部12に返す(ステップ116)。尚、この場合は、図3のステップ104の処理が行えないため、ステップ105での判定が「No」となる。
次に、図3のステップ105から戻って行われる場合について説明する。
この場合も、バナー情報取得部14は、バナー情報が返されたかどうかを判定する(ステップ111)が、この時点でバナー情報が返されていることはない。従って、バナー情報取得部14は、データ記憶部15からリクエストデータを読み込む(ステップ113)。そして、読込みが成功したかどうかを判定する(ステップ114)。
ここで、リクエストデータの読込みが成功したと判定された場合、つまり、EOFではない場合、バナー情報取得部14は、そのリクエストデータの送信を通信部19に指示する。これにより、通信部19が、リクエストデータを検査対象のポートに対して送信する(ステップ115)。尚、ここでは、図3のステップ105から戻って行われる動作を想定しているので、リクエストデータは、図3のステップ103を前回実行した時に最後に読み込んだリクエストデータの次のリクエストデータから順番に読み出すようにする。
この場合も、バナー情報取得部14は、バナー情報が返されたかどうかを判定する(ステップ111)が、この時点でバナー情報が返されていることはない。従って、バナー情報取得部14は、データ記憶部15からリクエストデータを読み込む(ステップ113)。そして、読込みが成功したかどうかを判定する(ステップ114)。
ここで、リクエストデータの読込みが成功したと判定された場合、つまり、EOFではない場合、バナー情報取得部14は、そのリクエストデータの送信を通信部19に指示する。これにより、通信部19が、リクエストデータを検査対象のポートに対して送信する(ステップ115)。尚、ここでは、図3のステップ105から戻って行われる動作を想定しているので、リクエストデータは、図3のステップ103を前回実行した時に最後に読み込んだリクエストデータの次のリクエストデータから順番に読み出すようにする。
そして、バナー情報取得部14は、このリクエストデータに応じてバナー情報が返信されたかどうかを再び判定する(ステップ111)。その後の処理は、これまで述べた場合と同様であるため、説明を省略する。
また、ステップ111〜ステップ115を繰り返していき、どのリクエストデータを送信してもバナー情報が返されないことも理論的には想定できる。その場合、バナー情報取得部14は、エラー情報を制御部12に返す(ステップ116)。尚、この場合は、図3のステップ104の処理が行えないため、ステップ105での判定が「No」となる。
また、ステップ111〜ステップ115を繰り返していき、どのリクエストデータを送信してもバナー情報が返されないことも理論的には想定できる。その場合、バナー情報取得部14は、エラー情報を制御部12に返す(ステップ116)。尚、この場合は、図3のステップ104の処理が行えないため、ステップ105での判定が「No」となる。
ここで、バナー情報取得部14で取得されるバナー情報の一部を例示しておく。
図5は、FTPサービス、SSHサービス、SMTPサービス、HTTPサービス、Proxyサービスが提供されるポートから送出されるバナー情報の例を示したものである。同じサービスであっても、製品ごとにバナー情報は異なるので、ここでは、対応する製品の情報についても併せて示している。尚、図では、紙面の都合上、FTPサービス、SSHサービス、SMTPサービスについては、それぞれ、2種類のバナー情報を示し、HTTPサービス、Proxyサービスについては、それぞれ、1種類のバナー情報を示している。しかしながら、各サービスが提供されるポートから送出されるバナー情報は、これらに限らず、更に多くのものが存在する。
図5は、FTPサービス、SSHサービス、SMTPサービス、HTTPサービス、Proxyサービスが提供されるポートから送出されるバナー情報の例を示したものである。同じサービスであっても、製品ごとにバナー情報は異なるので、ここでは、対応する製品の情報についても併せて示している。尚、図では、紙面の都合上、FTPサービス、SSHサービス、SMTPサービスについては、それぞれ、2種類のバナー情報を示し、HTTPサービス、Proxyサービスについては、それぞれ、1種類のバナー情報を示している。しかしながら、各サービスが提供されるポートから送出されるバナー情報は、これらに限らず、更に多くのものが存在する。
―サービスの特定処理―
このようにバナー情報を取得すると、取得したバナー情報から、何のサービスが提供されているかを判断することができる。即ち、サービスに特有のバナー情報や応答の特徴等の情報をプログラム内に持ち、この特徴等とバナー情報とを照合することで、サービスの判断が可能となる。
或いは、サービスとそのサービスに特有のバナー情報の特徴等との対応テーブルをテーブル記憶部17に持ち、これをプログラムが参照することにより、サービスを特定することもできる。
このようにバナー情報を取得すると、取得したバナー情報から、何のサービスが提供されているかを判断することができる。即ち、サービスに特有のバナー情報や応答の特徴等の情報をプログラム内に持ち、この特徴等とバナー情報とを照合することで、サービスの判断が可能となる。
或いは、サービスとそのサービスに特有のバナー情報の特徴等との対応テーブルをテーブル記憶部17に持ち、これをプログラムが参照することにより、サービスを特定することもできる。
ここで、このような対応テーブルの一例として、キーワード/サービステーブルについて説明する。キーワード/サービステーブルは、バナー情報に含まれるキーワードと、そのキーワードに関係するサービスとを対応付けたテーブルである。
図6は、キーワード/サービステーブルの一例を示した図である。
このキーワード/サービステーブルにより、例えば、「Microsoft FTP Service (Version 5.0)」というキーワードを含むバナー情報は、FTPサービスが提供されるポートから送出されたものであり、「OpenSSH_3.7.1p1」というキーワードを含むバナー情報は、SSHサービスが提供されるポートから送出されたものであることが分かる(「Microsoft」は、米国マイクロソフト社の米国及びその他の国における登録商標)。
図6は、キーワード/サービステーブルの一例を示した図である。
このキーワード/サービステーブルにより、例えば、「Microsoft FTP Service (Version 5.0)」というキーワードを含むバナー情報は、FTPサービスが提供されるポートから送出されたものであり、「OpenSSH_3.7.1p1」というキーワードを含むバナー情報は、SSHサービスが提供されるポートから送出されたものであることが分かる(「Microsoft」は、米国マイクロソフト社の米国及びその他の国における登録商標)。
次に、サービス特定部16が、バナー情報とキーワード/サービステーブルとに基づいてサービスを特定する際の動作について説明する。尚、サービス特定部16に対しては、制御部12からバナー情報が渡されているものとする。
図7は、このときのサービス特定部16の動作を示したフローチャートである。
まず、サービス特定部16は、キーワード/サービステーブルから1つのキーワードを読み込む(ステップ121)。そして、キーワードの読込みが成功したかどうかを判定する(ステップ122)。
図7は、このときのサービス特定部16の動作を示したフローチャートである。
まず、サービス特定部16は、キーワード/サービステーブルから1つのキーワードを読み込む(ステップ121)。そして、キーワードの読込みが成功したかどうかを判定する(ステップ122)。
ここで、キーワードの読込みが成功したと判定された場合、つまり、EOFではない場合、サービス特定部16は、そのキーワードがバナー情報に含まれるかどうかを判定する(ステップ123)。
ここで、キーワードがバナー情報に含まれていないと判定された場合は、ステップ121に戻り、次のキーワードを読み込む(ステップ121)。また、キーワードがバナー情報に含まれていると判定された場合は、キーワード/サービステーブルから、そのキーワードに対応付けられたサービスの情報を取得する。そして、そのサービスの情報を制御部12に返す(ステップ124)。
一方、キーワード/サービステーブル内の全てのキーワードが、バナー情報に含まれていない場合は、全てのキーワードを読み込んだ後、ステップ122でキーワードの読込みが失敗する。その場合、サービス特定部16は、エラー情報を制御部12に返す(ステップ125)。尚、この場合は、図3のステップ105での判定が「No」となる。
ここで、キーワードがバナー情報に含まれていないと判定された場合は、ステップ121に戻り、次のキーワードを読み込む(ステップ121)。また、キーワードがバナー情報に含まれていると判定された場合は、キーワード/サービステーブルから、そのキーワードに対応付けられたサービスの情報を取得する。そして、そのサービスの情報を制御部12に返す(ステップ124)。
一方、キーワード/サービステーブル内の全てのキーワードが、バナー情報に含まれていない場合は、全てのキーワードを読み込んだ後、ステップ122でキーワードの読込みが失敗する。その場合、サービス特定部16は、エラー情報を制御部12に返す(ステップ125)。尚、この場合は、図3のステップ105での判定が「No」となる。
[後半の処理]
後半の処理においては、検査対象のポートで提供されるサービスの脆弱性を検査する。即ち、前半の処理により、オープン状態のポートとそのポートで提供されるサービスが判明するので、後半の処理では、そのオープン状態のポートに対し、そのポートで提供されるサービスに応じた脆弱性検査を実施する。
図8は、サービスごとの脆弱性の検査項目を示した図である。即ち、各サービスに対して、1又は複数の検査項目が定義され、各検査項目は、対応するサービスに関する1又は複数の脆弱性を検出する機能を持つ。これらの検査項目は、予めサービスごとに分類しておく。そして、サービスを指定することでそのサービスに関連する検査項目の検査を実施可能な脆弱性検査処理を用意しておく。
後半の処理においては、検査対象のポートで提供されるサービスの脆弱性を検査する。即ち、前半の処理により、オープン状態のポートとそのポートで提供されるサービスが判明するので、後半の処理では、そのオープン状態のポートに対し、そのポートで提供されるサービスに応じた脆弱性検査を実施する。
図8は、サービスごとの脆弱性の検査項目を示した図である。即ち、各サービスに対して、1又は複数の検査項目が定義され、各検査項目は、対応するサービスに関する1又は複数の脆弱性を検出する機能を持つ。これらの検査項目は、予めサービスごとに分類しておく。そして、サービスを指定することでそのサービスに関連する検査項目の検査を実施可能な脆弱性検査処理を用意しておく。
具体的には、検査指示部18が、サービス特定部16が特定したサービスの情報を制御部12から受け取り、そのサービスに関連する検査項目の実施を通信部19に指示する。これにより、通信部19が、指示された検査項目、つまり、サービスに応じた脆弱性検査を実施する。
このように、本実施の形態では、脆弱性検査の前に検査対象のポートで提供されるサービスを判定し、サービスごとに分類された脆弱性検査のうちそのサービスに応じた検査を実施するようにした。これにより、効率の良い脆弱性検査が実現されることとなった。
例えば、脆弱性検査の前にポートスキャンを実施し、オープン状態を検出した全てのポートに対し、複数のサービスに関する脆弱性検査を実施する、という方法も考えられる。このような方法を採用すれば、標準的なポート番号以外で提供されるサービスの検査も一応可能にはなる。しかしながら、1つのポートに対して複数のサービスに関する脆弱性検査を実施するため、検査の無駄が多く、余計な検査時間と通信トラフィックを発生させてしまうのである。これに対し、本実施の形態では、ポートスキャンにサービス判定機能を追加している。これにより、各ポートで無駄のない適切な脆弱性検査を実施することができ、脆弱性検査の検査時間を短縮し、通信トラフィックも削減できる。
ところで、本実施の形態では、あるポートに着目し、そのポートで提供されているサービスを判定するようにした。そして、提供されているサービスに応じた脆弱性検査を行うようにした。
しかしながら、本実施の形態は、次のように捉えることもできる。即ち、複数のポートに対して同様の処理を実行することにより、標準的なポート番号以外でサービスを提供していたとしても、サービスとポート番号との対応関係を把握することができる、というものである。従って、サービスに着目すれば、そのサービスが提供されているポートを特定するポート特定手段を備えたポート判定装置として捉えることもできる。
しかしながら、本実施の形態は、次のように捉えることもできる。即ち、複数のポートに対して同様の処理を実行することにより、標準的なポート番号以外でサービスを提供していたとしても、サービスとポート番号との対応関係を把握することができる、というものである。従って、サービスに着目すれば、そのサービスが提供されているポートを特定するポート特定手段を備えたポート判定装置として捉えることもできる。
このような捉え方をした場合、ポートの判定結果は、例えば、あるサービスに対する攻撃データを検知する侵入検知システム(IDS)に用いることができる。従来のIDSでは、あるサービスに対する攻撃データを検知する場合、そのサービスが提供される標準的なポート番号に対する攻撃データしか監視していなかった。従って、サービスを標準的なポート番号以外のポート番号で提供しており、攻撃者がそのことを知って攻撃データを送ってきた場合は、その攻撃データを検知することはできなかった。これに対し、本実施の形態のようにポートの判定を行ってから攻撃を検知するようにすれば、標準的なポート番号以外のポート番号に対する攻撃データも検知することが可能となる。
10…検査装置、20…被検査装置、30…ネットワーク
Claims (8)
- ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを判定するサービス判定装置であって、
前記特定のポートに対して接続を行う接続手段と、
前記接続手段による接続に応じて返信されるバナー情報を取得するバナー情報取得手段と、
前記バナー情報からサービスに関するキーワードを検出することにより、前記特定のポートで提供されるサービスを特定するサービス特定手段と
を備えたことを特徴とするサービス判定装置。 - 前記バナー情報取得手段は、サービスごとに用意された前記バナー情報を返信させるためのデータを、前記特定のポートに繰り返し送信することにより、当該バナー情報を取得することを特徴とする請求項1記載のサービス判定装置。
- ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを対象として、当該サービスの脆弱性を検査する脆弱性検査装置であって、
前記特定のポートから送出されるバナー情報を取得するバナー情報取得手段と、
前記バナー情報に基づいて、前記特定のポートで提供されるサービスを特定するサービス特定手段と、
前記サービス特定手段により特定されたサービスに応じた脆弱性検査を実行する検査手段と
を備えたことを特徴とする脆弱性検査装置。 - ネットワークを介して接続された他の装置が提供している特定のサービスを対象として、当該特定のサービスに対する攻撃データを検知する攻撃検知装置であって、
複数のポートから送出されるバナー情報を取得するバナー情報取得手段と、
前記バナー情報に基づいて、前記特定のサービスが提供されているポートを特定するポート特定手段と、
前記ポート特定手段により特定されたポートに対する攻撃データを検知する検知手段と
を備えたことを特徴とする攻撃検知装置。 - ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを判定するサービス判定方法であって、
前記特定のポートに対して接続を行うステップと、
前記接続に応じて返信されるバナー情報を取得するステップと、
サービスと当該サービスに関するキーワードとの対応情報を所定の記憶装置から読み出すステップと、
前記対応情報に含まれるキーワードが前記バナー情報に含まれる場合に、当該キーワードに対応するサービスを、前記特定のポートで提供されるサービスとして特定するステップと
を含むことを特徴とするサービス判定方法。 - 前記バナー情報を取得するステップでは、前記特定のポートに対する接続に応じてバナー情報が返信されなかった場合に、サービスごとに用意された前記バナー情報を返信させるためのデータを、当該特定のポートに繰り返し送信することにより、当該バナー情報を取得することを特徴とする請求項5記載のサービス判定方法。
- ネットワークを介して接続された他の装置が特定のポートで提供しているサービスを判定するためのプログラムであって、
コンピュータに、
前記特定のポートに対して接続を行う機能と、
前記接続に応じて返信されるバナー情報を取得する機能と、
前記バナー情報からサービスに関するキーワードを検出することにより、前記特定のポートで提供されるサービスを特定する機能と
を実現させるためのプログラム。 - 前記バナー情報を取得する機能では、前記特定のポートに対する接続に応じてバナー情報が返信されなかった場合に、サービスごとに用意された前記バナー情報を返信させるためのデータを、当該特定のポートに繰り返し送信することにより、当該バナー情報を取得することを特徴とする請求項7記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006068000A JP2007249279A (ja) | 2006-03-13 | 2006-03-13 | サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006068000A JP2007249279A (ja) | 2006-03-13 | 2006-03-13 | サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007249279A true JP2007249279A (ja) | 2007-09-27 |
Family
ID=38593556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006068000A Pending JP2007249279A (ja) | 2006-03-13 | 2006-03-13 | サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007249279A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020201533A (ja) * | 2019-06-05 | 2020-12-17 | 富士通株式会社 | 不正中継監査プログラム、不正中継監査方法および不正中継監査システム |
-
2006
- 2006-03-13 JP JP2006068000A patent/JP2007249279A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020201533A (ja) * | 2019-06-05 | 2020-12-17 | 富士通株式会社 | 不正中継監査プログラム、不正中継監査方法および不正中継監査システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11330000B2 (en) | Malware detector | |
TWI603600B (zh) | 利用運行期代理器及網路探查器判定漏洞之技術 | |
US8701192B1 (en) | Behavior based signatures | |
US8850585B2 (en) | Systems and methods for automated malware artifact retrieval and analysis | |
US9832213B2 (en) | System and method for network intrusion detection of covert channels based on off-line network traffic | |
JP6441957B2 (ja) | 疑わしいオブジェクトにおけるエクスプロイトを自動的に実証し、当該実証済みエクスプロイトに関連付けられた表示情報を強調するシステム、装置、および方法 | |
US8572750B2 (en) | Web application exploit mitigation in an information technology environment | |
US7647631B2 (en) | Automated user interaction in application assessment | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
JP5809238B2 (ja) | 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法 | |
US20050021791A1 (en) | Communication gateway apparatus, communication gateway method, and program product | |
US8595840B1 (en) | Detection of computer network data streams from a malware and its variants | |
CN111783096B (zh) | 检测安全漏洞的方法和装置 | |
US10412101B2 (en) | Detection device, detection method, and detection program | |
JP5549281B2 (ja) | 不正侵入検知・防御システム、クライアントコンピュータ、不正侵入検知・防御装置、方法およびプログラム | |
KR102156379B1 (ko) | 정보수집 프로세스를 통한 에이전트리스 방식 취약점 진단시스템 및 그 방법 | |
CN114003794A (zh) | 资产收集方法、装置、电子设备和介质 | |
CN109492403A (zh) | 一种漏洞检测方法及装置 | |
JP2007249279A (ja) | サービス判定装置、脆弱性検査装置、攻撃検知装置、サービス判定方法、及びプログラム | |
US9049170B2 (en) | Building filter through utilization of automated generation of regular expression | |
Karthik et al. | W3-Scrape-A windows based reconnaissance tool for web application fingerprinting | |
JP5435351B2 (ja) | 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム | |
JP2012150658A (ja) | 情報処理装置、システム、通信監視方法およびプログラム | |
Wanjohi et al. | Open Source IDS for a Resoure Constrained Set-Up | |
JP2022135137A (ja) | 検査装置、検査システム及び検査方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110823 |