(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6819978
(24)【登録日】2021年1月6日
(45)【発行日】2021年1月27日
(54)【発明の名称】コンピュータネットワークにおけるトラフィックのロギング
(51)【国際特許分類】
G06F 13/00 20060101AFI20210114BHJP
H04L 12/70 20130101ALI20210114BHJP
【FI】
G06F13/00 351N
H04L12/70 100Z
【請求項の数】33
【全頁数】23
(21)【出願番号】特願2019-514863(P2019-514863)
(86)(22)【出願日】2017年5月24日
(65)【公表番号】特表2019-517704(P2019-517704A)
(43)【公表日】2019年6月24日
(86)【国際出願番号】FI2017050394
(87)【国際公開番号】WO2017203105
(87)【国際公開日】20171130
【審査請求日】2020年5月20日
(31)【優先権主張番号】20165443
(32)【優先日】2016年5月27日
(33)【優先権主張国】FI
【早期審査対象出願】
(73)【特許権者】
【識別番号】518421980
【氏名又は名称】サイセック アイス ウォール オイ
【氏名又は名称原語表記】CYSEC ICE WALL OY
(74)【代理人】
【識別番号】100075557
【弁理士】
【氏名又は名称】西教 圭一郎
(72)【発明者】
【氏名】ルウッパラ,ハッリ
(72)【発明者】
【氏名】ピトカヤルヴィ,アキ
【審査官】
佐々木 洋
(56)【参考文献】
【文献】
特開2014−175699(JP,A)
【文献】
国際公開第2002/089426(WO,A1)
【文献】
特表2012−533099(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
H04L 12/70
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを含むコンピュータシステムであって、メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、システムに、
分割ポイント(SPLIT POINT 1,SPLIT POINT 2)において、情報を含む通信信号の分割信号であって、情報内容において通信信号と同一である分割信号を形成させ(110,540)、
ネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって分割ポイント(SPLIT POINT 1,SPLIT POINT 2)から分割信号を受信させ、
リアルプロミスキャスモードで動作するネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって通信パケットをフィルタリングまたは合体させることなく、直接メモリアクセス動作でネットワークインタフェースコントローラを使用して分割信号の通信パケットを一時的メモリに捕捉させ(120,550)、
通信パケットのデータを一時メモリから直接メモリアクセス動作で読み取らせ(130,560)、
通信パケットのデータが情報内容において通信信号と同一になるように、通信パケットのデータを非一時的メモリに直接メモリアクセス動作で書き込ませ(130,560)、
ネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって、ネットワークに向けて、いかなるネットワーク通信も伝送させず、
非一時的メモリに格納された通信パケットが改ざんされていないことを示すために使用されるように構成された通信パケットに基づいて検証コードを形成させ、
検証コードを安全な場所に格納させる、
ように構成されることを特徴とするコンピュータシステム。
【請求項2】
システムに、
仮想ネットワークインタフェースコントローラ(VNIC1,VNIC2,VNIC3,VNICN)を、隔離されたメモリ範囲として一時的メモリにアクセスできる隔離されたユーザ空間コンテナから操作させ、
通信パケットを、隔離されたユーザ空間コンテナの隔離されたメモリ範囲に捕捉させ、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリに書き込ませるコンピュータプログラムコードをさらに含むことを特徴とする、請求項1に記載のコンピュータシステム。
【請求項3】
隔離されたユーザ空間コンテナは、非一時的メモリの隔離された非一時的メモリを含み、
システムに、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリの隔離された非一時的メモリ範囲に書き込ませるコンピュータプログラムコードをさらに含むことを特徴とする、請求項2に記載のコンピュータシステム。
【請求項4】
隔離されたユーザ空間コンテナは隔離された名前空間に属し、
システムに、
隔離された名前空間および隔離された非一時的メモリ範囲への、読取り専用モードで提供される、外部アクセスを提供させるコンピュータプログラムコードをさらに含むことを特徴とする、請求項3に記載のコンピュータシステム。
【請求項5】
システムに、
通信パケットをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって復号化させ、
通信パケットと比較して情報内容において同一の出力データフローをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)から一時的メモリに出力させるコンピュータプログラムコードをさらに含むことを特徴とする、請求項1〜4のいずれか1項に記載のコンピュータシステム。
【請求項6】
システムに、
ネットワークインタフェースコントローラのデバイスドライバを使用して通信パケットを一時的メモリの循環バッファに書き込ませ、
非一時的メモリのデバイスドライバを使用して直接メモリアクセス動作で循環バッファにアクセスし、通信パケットを非一時的メモリに書き込ませるコンピュータプログラムコードをさらに含むことを特徴とする、請求項1〜5のいずれか1項に記載のコンピュータシステム。
【請求項7】
非一時的メモリは、複数のメモリユニットを含み、該メモリユニットはワイドストライプメモリシステムを形成し、非一時的メモリへの書込みは、ワイドストライプメモリシステムに対して実行されるように構成されることを特徴とする、請求項1〜6のいずれか1項に記載のコンピュータシステム。
【請求項8】
通信ネットワークは、1または複数のペリメータを含み、分割信号は、通信ネットワークのペリメータ位置に形成され、通信パケットの捕捉は、着信および発信パケットの両方、ペリメータ位置の内部パケット、および外部からペリメータ位置に到着する外部パケットを捕捉することを含み、通信パケットは、ある期間内にペリメータ位置を通過して流れる、およびそこを流れる実質的にすべてのネットワークトラフィックを含むことを特徴とする、請求項1〜7のいずれか1項に記載のコンピュータシステム。
【請求項9】
システムに、
不完全で不正確で損傷したパケットを少なくとも部分的に復号化させるコンピュータプログラムコードをさらに含むことを特徴とする、請求項1〜8のいずれか1項に記載のコンピュータシステム。
【請求項10】
分割信号は、ローカルネットワークとワイドエリアネットワークとの間の位置に形成されるように構成され、該位置を介して、ワイドエリアネットワークからローカルネットワークへのロケーションネットワークトラフィックは、ネットワークオペレータルーティングポイントをローカルネットワークへと通過することを特徴とする、請求項1〜9のいずれか1項に記載のコンピュータシステム。
【請求項11】
分割信号は、入力通信信号の第2波面部分を形成することによって形成されるように構成され、該第2波面部分は、実質的に元の波面と同時であることを特徴とする、請求項1〜10のいずれか1項に記載のコンピュータシステム。
【請求項12】
通信ネットワークにおける通信信号から通信パケットをログする方法であって、
分割ポイント(SPLIT POINT 1, SPLIT POINT 2)において、情報を含む通信信号の分割信号であって、通信信号と情報内容において同一である分割信号を形成し、
ネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって分割ポイント(SPLIT POINT 1, SPLIT POINT 2)から分割信号を受信し、
リアルプロミスキャスモードで動作するネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって通信パケットをフィルタリングまたは合体させることなく、直接メモリアクセス動作でネットワークインタフェースコントローラを使用して分割信号の通信パケットを一時的メモリに捕捉し(120,550)、
通信パケットのデータを一時メモリから直接メモリアクセス動作で読み取り(130,560)、
通信パケットのデータが情報内容において通信信号と同一になるように、通信パケットのデータを非一時的メモリに直接メモリアクセス動作で書き込み(130,560)、
ネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって、ネットワークに向けて、いかなるネットワーク通信も伝送せず、
非一時的メモリに格納された通信パケットが改ざんされていないことを示すために使用されるように通信パケットに基づいて検証コードを形成し、
検証コードを安全な場所に格納することを特徴とする方法。
【請求項13】
仮想ネットワークインタフェースコントローラ(VNIC1,VNIC2,VNIC3,VNICN)を、隔離されたメモリ範囲として一時的メモリにアクセスできる隔離されたユーザ空間コンテナから操作させ、
通信パケットを、隔離されたユーザ空間コンテナの隔離されたメモリ範囲に捕捉し、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリに書き込むことを特徴とする、請求項12に記載の方法。
【請求項14】
隔離されたユーザ空間コンテナは、非一時的メモリの隔離された非一時的メモリ範囲を含み、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリの隔離された非一時的メモリ範囲に書き込むことを含むことを特徴とする、請求項13に記載の方法。
【請求項15】
隔離されたユーザ空間コンテナは隔離された名前空間に属し、
隔離された名前空間および隔離された非一時的メモリ範囲への、読取り専用モードで提供される、外部アクセスを提供することを含むことを特徴とする、請求項14に記載の方法。
【請求項16】
通信パケットをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって復号化し、
通信パケットと比較して情報内容において同一の出力データフローをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)から一時的メモリに出力することを含むことを特徴とする、請求項12〜15のいずれか1項に記載の方法。
【請求項17】
ネットワークインタフェースコントローラのデバイスドライバを使用して通信パケットを一時的メモリの循環バッファに書き込み、
非一時的メモリのデバイスドライバを使用して直接メモリアクセス動作で循環バッファにアクセスし、通信パケットを非一時的メモリに書き込むことを含むことを特徴とする、請求項12〜16のいずれか1項に記載の方法。
【請求項18】
非一時的メモリは、複数のメモリユニットを含み、該メモリユニットはワイドストライプメモリシステムを形成し、非一時的メモリへの書込みは、ワイドストライプメモリシステムに対して実行されることを特徴とする、請求項12〜17のいずれか1項に記載の方法。
【請求項19】
通信ネットワークは、1または複数のペリメータを含み、分割信号は、通信ネットワークのペリメータ位置に形成され、通信パケットの捕捉は、着信および発信パケットの両方、ペリメータ位置の内部パケット、および外部からペリメータ位置に到着する外部パケットを捕捉することを含み、通信パケットは、ある期間内にペリメータ位置を通過して流れる、およびそこを流れる実質的にすべてのネットワークトラフィックを含むことを特徴とする、請求項12〜18のいずれか1項に記載の方法。
【請求項20】
不完全で不正確で損傷したパケットを少なくとも部分的に復号化することを含むことを特徴とする、請求項12〜19のいずれか1項に記載の方法。
【請求項21】
分割信号は、ローカルネットワークとワイドエリアネットワークとの間の位置に形成され、該位置を介して、ワイドエリアネットワークからローカルネットワークへのロケーションネットワークトラフィックは、ネットワークオペレータルーティングポイントをローカルネットワークへと通過することを特徴とする、請求項12〜20のいずれか1項に記載の方法。
【請求項22】
分割信号は、入力通信信号の第2波面部分を形成することによって形成され、該第2波面部分は、実質的に元の波面と同時であることを特徴とする、請求項12〜21のいずれか1項に記載の方法。
【請求項23】
非一時的コンピュータ読取り可能な媒体上に具現化されたコンピュータプログラム製品であって、少なくとも1つのプロセッサで実行されたとき、装置またはシステムに、
ネットワークインタフェースコントローラによって分割ポイント(SPLIT POINT 1,SPLIT POINT 2)から分割信号であって、分割ポイント(SPLIT POINT 1,SPLIT POINT 2)による通信信号であって、情報を含む通信信号から成り、情報内容において通信信号と同一である分割信号を受信させ、
リアルプロミスキャスモードで動作するネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって通信パケットをフィルタリングまたは合体させることなく、直接メモリアクセス動作でネットワークインタフェースコントローラを使用して分割信号の通信パケットを一時的メモリに捕捉させ(120,550)、
通信パケットのデータを一時メモリから直接メモリアクセス動作で読み取らせ(130,560)、
通信パケットのデータが情報内容において通信信号と同一になるように、通信パケットのデータを非一時的メモリに直接メモリアクセス動作で書き込ませ(130,560)、
ネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって、ネットワークに向けて、いかなるネットワーク通信も伝送させず、
非一時的メモリに格納された通信パケットが改ざんされていないことを示すために使用されるように構成された通信パケットに基づいて検証コードを形成させ、
検証コードを安全な場所に格納させる、
ように構成されたコンピュータプログラムコード含むことを特徴とするコンピュータプログラム製品。
【請求項24】
仮想ネットワークインタフェースコントローラを、隔離されたメモリ範囲として一時的メモリにアクセスできる隔離されたユーザ空間コンテナから操作し、
通信パケットを、隔離されたユーザ空間コンテナの隔離されたメモリ範囲に捕捉し、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリに書き込むコンピュータプログラムコードを含むことを特徴とする、請求項23に記載のコンピュータプログラム製品。
【請求項25】
隔離されたユーザ空間コンテナは、非一時的メモリの隔離された非一時的メモリを含み、
通信パケットのデータを隔離されたメモリ範囲から非一時的メモリの隔離された非一時的メモリ範囲に書き込むコンピュータプログラムコードをさらに含むことを特徴とする、請求項24に記載のコンピュータプログラム製品。
【請求項26】
隔離されたユーザ空間コンテナは隔離された名前空間に属し、
隔離された名前空間および隔離された非一時的メモリ範囲への、読取り専用モードで提供される、外部アクセスを提供するコンピュータプログラムコードをさらに含むことを特徴とする、請求項25に記載のコンピュータプログラム製品。
【請求項27】
通信パケットをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)によって復号化し、
通信パケットと比較して情報内容が同一の出力データフローをネットワークインタフェースコントローラ(NIC1,NIC2,NIC3,NICN)から一時的メモリに出力するコンピュータプログラムコードを含むことを特徴とする、請求項23〜26のいずれか1項に記載のコンピュータプログラム製品。
【請求項28】
ネットワークインタフェースコントローラのデバイスドライバを使用して通信パケットを一時的メモリの循環バッファに書き込み、
非一時的メモリのデバイスドライバを使用して直接メモリアクセス動作で循環バッファにアクセスし、通信パケットを非一時的メモリに書き込むコンピュータプログラムコードを含むことを特徴とする、請求項23〜27のいずれか1項に記載のコンピュータプログラム製品。
【請求項29】
非一時的メモリは、複数のメモリユニットを含み、該メモリユニットはワイドストライプメモリシステムを形成し、非一時的メモリへの書込みは、ワイドストライプメモリシステムに対して実行されるように構成されることを特徴とする、請求項23〜28のいずれか1項に記載のコンピュータプログラム製品。
【請求項30】
通信ネットワークは、1または複数のペリメータを含み、分割信号は、通信ネットワークのペリメータ位置に形成され、通信パケットの捕捉は、着信および発信パケットの両方、ペリメータ位置の内部パケット、および外部からペリメータ位置に到着する外部パケットを捕捉することを含み、通信パケットは、ある期間内にペリメータ位置を通過して流れる、およびそこを流れる実質的にすべてのネットワークトラフィックを含むことを特徴とする、請求項23〜29のいずれか1項に記載のコンピュータプログラム製品。
【請求項31】
不完全で不正確で損傷したパケットを少なくとも部分的に復号化するコンピュータプログラムコードを含むことを特徴とする、請求項23〜30のいずれか1項に記載のコンピュータプログラム製品。
【請求項32】
分割信号は、ローカルネットワークとワイドエリアネットワークとの間の位置に形成されるように構成され、該位置を介して、ワイドエリアネットワークからローカルネットワークへのロケーションネットワークトラフィックは、ネットワークオペレータルーティングポイントをローカルネットワークへと通過することを特徴とする、請求項23〜30のいずれか1項に記載のコンピュータプログラム製品。
【請求項33】
分割信号は、入力通信信号の第2波面部分を形成することによって形成されるように構成され、該第2波面部分は、実質的に元の波面と同時であることを特徴とする、請求項23〜30のいずれか1項に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータネットワークセキュリティはますます重要になっている。パーソナルコンピュータおよび他のコンピューティングハードウェアの計算能力の進歩、およびインターネットに接続されたネットワークの広範な使用に伴い、ネットワークセキュリティ違反はかなり一般的になっている。それでも、ネットワークの所有者は侵入をさえ検出できず、よって必要な措置を講じることができないことが多い。さらに、侵入が検出された場合、コンピュータネットワークのセキュリティがどの程度危険にさらされ、コンピュータネットワークのどのデータおよびどの部分が影響を受けたのかが明確でない場合がある。これらの理由や他の理由から、立法者(たとえば、EU内)でさえも、企業がコンピュータネットワークへの侵入を検出して、追跡する能力を向上させることを要求している。
【0002】
それゆえ、これまでに、コンピュータネットワークにおけるトラフィックをログするための解決策が必要である。
【発明の概要】
【0003】
今や、改良された方法およびこの方法を実施する技術的装置が発明されており、それによって上記の問題は軽減されている。本発明の様々な態様は、方法、装置、サーバ、クライアント、およびその中に格納されたコンピュータプログラムを含む、クライアントおよびコンピュータ読取り可能な媒体を含み、それらは、独立請求項に述べられたことを特徴とする。本発明の様々な実施形態は従属請求項に開示されている。
【0004】
本発明は、通信ネットワークにおいて通信信号から通信パケットをログするための方法、システム、およびコンピュータプログラム製品に関する。通信ネットワークは、より大きいペリメータが、1以上のより小さいペリメータを包含するように、たとえば少なくとも部分的に配置され得る1以上のペリメータを備えてもよい。分割信号は、通信信号から形成され、通信信号は情報を含み、分割信号は、情報内容において通信信号と同一である。分割信号は、前記通信ネットワークのペリメータ位置、または他の位置、たとえばネットワークトラフィックが集中するような位置に形成することができる。分割信号の通信パケットは、ネットワークインタフェースコントローラを使用して一時的メモリに捕捉されてもよい。ネットワークインタフェースコントローラは、リアルプロミスキャスモードで動作してもよい。仮想ネットワークインタフェースコントローラは、隔離されたユーザ空間コンテナから操作されてもよく、隔離されたユーザ空間コンテナは、隔離されたメモリ範囲として前記一時的メモリにアクセスできる。通信パケットは、隔離されたメモリ範囲内に捕捉され、通信パケットのデータは隔離されたメモリ範囲から非一時的メモリに書き込まれる。
【0005】
この方法においては、隔離されたユーザ空間コンテナを利用することができる。仮想ネットワークインタフェースコントローラは、隔離されたユーザ空間コンテナから操作することができ、前記隔離されたユーザ空間コンテナは、隔離されたメモリ範囲として前記一時的メモリにアクセスすることができる。次に、通信パケットは、隔離されたユーザ空間コンテナの隔離されたメモリ範囲に捕捉され、通信パケットのデータは、隔離されたメモリ範囲から前記非一時的メモリに書き込まれる。隔離されたユーザ空間は、前記非一時的メモリの隔離された非一時的メモリ範囲を含み、前記通信パケットのデータは、前記隔離されたメモリ範囲から前記非一時的メモリの前記隔離された非一時的メモリ範囲に書き込まれる。隔離されたユーザ空間コンテナは隔離された名前空間に属してもよく、外部アクセスは前記隔離された名前空間および前記隔離された非一時的メモリ範囲に提供されてもよく、この場合、前記外部アクセスは読取り専用モードで提供される。通信パケットは、パケットをフィルタリングまたは合体させることなく、前記ネットワークインタフェースによって復号化されてもよく、出力データフローは、前記通信パケットと比較して、情報内容において同様に、前記一時的メモリに出力されてもよい。前記ネットワークインタフェースコントローラのデバイスドライバは、前記通信パケットを前記一時的メモリ内の循環バッファに書き込むために使用され、前記非一時的メモリのデバイスドライバは直接メモリアクセス動作で前記循環バッファにアクセスするために、そして前記通信パケットを前記非一時的メモリに書き込むために使用されてもよい。非一時的メモリは複数のメモリユニットを含んでもよく、メモリユニットは、ワイドストライプメモリシステムなどの非一時的メモリシステムを形成し、非一時的メモリシステムへの書込みは、非一時的メモリシステムに行われる。通信ネットワークは1または複数のペリメータを含み、前記分割信号は、前記通信ネットワークのペリメータ位置に形成され、前記通信パケットの捕捉は、着信および発信パケットの両方、ペリメータ位置の内部パケット、および外部からペリメータ位置に到着する外部パケットを捕捉することを含み、前記通信パケットは、ある期間内に前記ペリメータ位置を通過して流れる、およびそこを流れる実質的にすべてのネットワークトラフィックを含む。不完全で不正確で損傷したパケットも、少なくとも部分的に復号化されてもよい。分割信号は、ローカルネットワークとワイドエリアネットワークとの間のネットワーク内の位置に形成され、該位置を介して、ワイドエリアネットワークからローカルネットワークへのロケーションネットワークトラフィックは、ネットワークオペレータルーティングポイントをローカルネットワークへと通過する。分割信号は、入力通信信号の第2波面部分を形成することによって形成することができ、前記第2波面部分は実質的には元の波面と同時である。
【0006】
以下においては、本発明の様々な実施形態を、添付の図面を参照してより詳細に説明する。
【図面の簡単な説明】
【0007】
【
図1a】ログの作成と、アクセスに関する、コンピュータ・ネットワーク・トラフィックのログギングのためのフローチャートを示す。
【
図1b】ログの作成と、アクセスに関する、コンピュータ・ネットワーク・トラフィックのログギングのためのフローチャートを示す。
【
図2】コンピュータネットワークトラフィックのロギングのためのシステムおよび装置を示す。
【
図3】ネットワークトラフィックのログを作成するための装置のブロック図を示す。
【
図4a】名前空間を用いてコンピュータネットワークトラフィックのログを作成しアクセスするための構成を示す。
【
図4b】ログされたネットワークトラフィックへのアクセスを許可するための構成を示す。
【
図5】コンピュータネットワークトラフィックをログし解析するフローチャートを示す。
【
図6】コンピュータネットワークトラフィックをログするためのコンピュータプログラム製品のユーザインタフェースを示す。
【発明を実施するための形態】
【0008】
以下においては、本発明のいくつかの実施形態を、例示的なコンピュータハードウェア構成、および例示的なコンピュータハードウェア要素に照らして説明する。しかしながら、本発明は、いかなる特定のハードウェアまたはソフトウェアにも限定されないことに留意されたい。実際、それらの異なる実施形態は、コンピュータネットワークトラフィックのロギングが必要とされる任意の環境において用途を有し、それらは異なるハードウェアおよびソフトウェア構成を用いて実現され得る。たとえば、本明細書において与えられた例は、コンピュータネットワークトラフィックをログし解析するための任意の実用的な組合わせに組み合わせることができる。
【0009】
パケットデータネットワークにおいては、データはエンベロープとペイロードとを含む有限長のパケットで転送される。パケットで提供される送信側と受信側のような識別子と、典型的にはいくらかの、ペイロードを記述する情報とがある。階層化ネットワークモデルにおいては、データは複数のレイヤのパケットにカプセル化されている。たとえば、レイヤ2パケットの内側には、レイヤ3パケットがある。両方の層のパケットは、送信側および受信側の情報を含んでおり、レイヤ2においてはMACアドレスが与えられ、レイヤ3においては、たとえばTCP/IPアドレスが与えられる。パケットは、典型的には、通常受信側から送信側への確認応答パケットを伴う。本明細書においては、すべて、そのような情報、すなわち、パケットアドレス、送信側および受信側情報、パケットが確認応答であるかどうかなどを、後述するように取り込むことができる。
【0010】
ネットワークへの攻撃や侵入においては、さまざまなことが起こる可能性がある。たとえば、パケットと確認応答のペアは混合される可能性があり、パケットは、フォーマットおよび内容において、許容されるよりも長く、不完全であり、誤りがあるものになっている可能性がある。受信側ネットワークまたはシステムは、誤ったネットワークトラフィックに対する応答において、たとえば、アクセス不可能と思われるデータまたはメモリへのアクセスを許容することによって、誤って動作する可能性がある。攻撃者はこのような脆弱性を利用してシステムを制御する可能性がある。その後、または攻撃中に、侵入者は、違反を隠そうとする可能性がある。たとえば、システムが、大量のデータトラフィック、いわゆる、同時侵入を隠蔽するためのDoS攻撃によってフラッディングされる可能性がある。侵入者はシステムログを変更したり、システム時間を変更する可能性がある。これらの攻撃は通信パケットの形で起こる。また、いわゆるコンポーネント攻撃においては、攻撃が複数の部分に分割されることもあり、単一の部分においては検出が難しく、有害な操作を引き起こすことはないかもしれないが、後の部分と組み合わせて攻撃を引き起こす可能性がある。そのような攻撃も、ここで説明されているように検出可能である。
【0011】
侵入を検出するために、着信および発信の通信パケットを、通常のトラフィックの一部ではなく、侵入の試みの一部である可能性があるパケットについて監視することができる。しかしながら、侵入が検出されたときに、侵入が本来いつ発生したのか、およびシステムのどの部分が影響を受けたのかを調べる簡単な方法はない。ネットワーク通信パケットが、たとえば、ファイルにそれらの送信側情報、受信側情報および時間情報を格納することによって、格納されるなら、異常なパターンを、このようなファイルから検出することが可能である。しかしながら、侵入者は、侵入の方法や影響を受けたシステムの部分を隠すためにファイルを変更しようとするかもしれない。
【0012】
この観点において、ロギングとは、コンピュータメモリ内におけるデジタルデータレコードの形式でのログの作成として理解することが可能であり、このデータレコードは、1または複数のロギングポイント(ここでは分割ポイントと呼ぶ)を通過した、または指定された時間間隔の間、そのようなポイントのどちらの側にもあるネットワークトラフィック要素のデータ(たとえばパケット)を含む。このデジタルデータレコードは、ネットワークトラフィックパケットのデータ情報およびヘッダ情報を含み得る。このデジタルデータレコードはまた、ロギングの時間、データパケットのサイズおよび種類、ならびにデータパケットの送信側および受信側の情報などのメタデータ情報を含むことができる。ログは1または複数のログポイントから収集される。
【0013】
本発明においては、ポイントにおける、またはポイントを介する完全なコンピュータネットワークトラフィックのロギングが、改善された方法で違反を解析することを可能にすることに注目されている。分割信号は(後述されるように)、そのポイントにおけるネットワークトラフィックから形成されてもよく、したがってそのようなポイントは分割ポイントと見なすことが可能である。各パケットとそれに対する確認応答がログに格納されると、違反に関連するすべてのイベントを時間内に追跡することができる。これは、たとえば、侵入者がシステム内の攻撃の痕跡を隠そうとしている攻撃の場合に、または攻撃が複数の部分に及ぶ(コンポーネント攻撃)場合に有益である。
【0014】
この目的のために、ロギングは隔離されたユーザ空間コンテナ内で行われてもよい。隔離されたユーザ空間コンテナは、コントローラ内のデータへの制御されていないアクセスを許可しない。たとえば、証拠の信憑性を維持するために、コンテナは、他のプロセスがロガープロセス以外のログに書き込むことを防ぐことができる。この方法においては、ログを変更することはできず、イベントを隠したり削除したりすることはできない。
【0015】
図1aおよび
図1bは、ログの作成およびアクセスに関するコンピュータネットワークトラフィックのログのためのフローチャートを示す。
図1aにおいて、通信ネットワークにおける通信信号からの通信パケットのロギングプロセスが示される。通信ネットワークは、1または複数のペリメータを、すなわちネットワークセグメントの内側をネットワークセグメントの外側から分離する仮想境界またはゾーンを含むことができる。そのようなペリメータは、内側ペリメータが外側ペリメータの内側にあるように配置することができる。これらのペリメータは、全体的または部分的に物理的に重なっていてもよい。ロギングポイントはペリメータに設定できる。段階110において、通信信号の分割信号が形成される。分割信号は、通信ネットワークのペリメータ位置に形成することができ、すなわち、着信パケット、発信パケット、および/またはペリメータのいずれか側のロギングポイントで移動しているパケットを、分割信号のソースとすることができる。
図2に関して、たとえば、後述するように、信号が分割されるポイントは、スプリットポイントと呼ばれることもある。当該技術分野で知られているように、通信信号は情報を含む。分割信号は、通信信号と情報内容において同一であるようにしてもよい。分割信号は、ペリメータポイント以外のポイントに形成してもよく、たとえば、ワイヤレスネットワーク接続が利用可能であるポイントに、またはネットワークトラフィックの大部分が得られる任意のポイントに形成してもよい。換言すれば、分割信号は、ネットワークトラフィックの有意な部分が流れる、および/またはネットワークトラフィックの有意な部分が利用可能である任意の収束ポイントなど、任意の有益なポイントに形成することができる。ネットワークには、多くのこのような収束ポイントがあってもよい。
【0016】
分割信号は、様々な方法において分割ポイントで形成することができる。たとえば、ルータ、スイッチ、ファイアウォール、脅威管理要素、脅威保護要素、侵入または脅威検出要素、電子証拠収集装置、アプリケーション配信コントローラ、基地局、無線または固定のネットワークノード、合法的傍受ゲートウェイ、生産管理室の遠隔制御装置、トランスミッション制御装置、または車両通信ノードなどのネットワーク要素は、それが見るネットワークトラフィックを監視ポート(ミラーポート)にコピーするように構成されてもよい。そのような監視ポートは、ネットワーク要素の管理インタフェースを介して設定することができる。ネットワーク要素を管理するための専用管理ネットワークがあってもよく、その管理ネットワークは、通常の通信パケットを搬送するネットワークを介してアクセスできなくてもよい。負荷分散ネットワークがあってもよい。各ネットワークは別々でもよい。また、たとえば光通信のために、特別な信号スプリッタを使用することができ、信号は、たとえば光信号スプリッタによって、光ファイバ中を移動する光信号から検出(タップ)することができる。分割ポイント(たとえば、ネットワーク要素)は、いかなる方法でも分割信号に作用することを避けることが可能であり、それは単にその信号をNICに転送するだけでよい。これは信号の信憑性を維持し、そして、それはまた、ネットワーク要素に処理負荷を引き起こすことを回避し得る。
【0017】
段階120において、分割信号の通信パケットは、ネットワークインタフェースコントローラを使用して捕捉することが可能であり、一時的メモリ、たとえば、バスを介して、プロセッサのような他の構成要素に、およびネットワークインタフェースコントローラに接続されるコンピュータの周知のランダムアクセスメモリ(RAM)に一時的に格納することができる。ネットワークインタフェースコントローラは、リアルプロミスキャスモードで動作してもよく、すなわち、パケットがどこを移動しようとしているのかに関係なく、または、誰が受信側かであるかに関係なく、ネットワークインタフェースにおいて検出するすべてのパケットを捕捉するモードで動作することができる。ネットワークインタフェースコントローラは、それがネットワークに向けて、いかなるネットワーク通信も伝送しないように動作するように構成されてもよく、たとえば、ソフトウェアによって、もしくは物理的に伝送不可にされてもよく、またはNICからネットワークへの接続は、NICとネットワーク間のネットワークケーブル、またはその他の方法で省略されてもよい。ネットワークインタフェースコントローラは、ネットワークアドレスを持たないように、または低レベルネットワークアドレス(MACアドレス)のみを持つように構成されてもよい。したがって、ネットワークインタフェースコントローラは、通常モードにおいては、それが見る通信パケットに応答するので、ネットワークインタフェースコントローラは、通常モードのネットワークインタフェースコントローラとは異なる動作をすることが可能である。ここで、ネットワークインタフェースコントローラは、ネットワークに対しては沈黙していてもよいので、通信が変更されないとき、ロギングの信頼性は改善されるかもしれない。さらに、NICが通信パケットをネットワークに伝送していなければ、ネットワークトラフィックは乱されず、ネットワーク負荷は増加しない。ここで、一時的メモリへのデータの書込みにおいて、ネットワークインタフェースコントローラとメモリとの間の転送速度の技術的問題、ならびに一時的メモリからデータを読み出す技術的問題を解決する必要があることに気付いた。さらに、一時的メモリのサイズは通常、ネットワーク通信データの量と比較してかなり制限されている。
【0018】
それらを長時間格納し、侵入を解析する必要がある場合、後に解析のために取り出すことができるように、段階130においては、通信パケットのデータは、非一時的メモリに書き込まれてもよい。非一時的メモリは、たとえば、伝統的なハードディスク記憶装置、ソリッドステートドライブ記憶装置(フラッシュメモリ)、または光メモリなどの他の種類のメモリとすることができる。非一時的メモリへのデータの書込みにおいては、書込み速度の技術的問題を克服する必要があることが分かっているすなわち、一時的メモリは、典型的には、非一時的メモリよりも明らかに読取りおよび書込み速度が速い。
【0019】
上記において、書込み速度および転送速度の問題は、特別な技術的対策が講じられない限り、システムを信頼できないものにする、すなわち通信パケットを失う可能性がある。そのような構成については後に説明する。
【0020】
通信パケットのロギングは、隔離されたユーザ空間コンテナから仮想ネットワークインタフェースコントローラを操作することを含み得る。隔離されたユーザ空間コンテナは、プロセスやアプリケーションを実行するための環境である。この環境は他の環境と共存することがあり、それらは同じオペレーティングシステムカーネル空間を共有することがあり、すなわち、オペレーティングシステムの1つのインスタンスと、オペレーティングシステムの上のユーザスペースコンテナの複数のインスタンスがあるということである。異なるユーザ空間コンテナは相互に隔離されているので、1つのユーザ空間コンテナに、別のユーザ空間コンテナ内からアクセスすることはできない。ユーザ空間コンテナは、この隔離を実施するために、専用の一時的メモリ空間、非一時的メモリ空間、およびプロセスツリーを有してもよい。したがって、隔離されたユーザ空間コンテナは、隔離されたメモリ範囲として一時的メモリへアクセスすることが可能である。通信パケットは、隔離されたユーザ空間コンテナの隔離されたメモリ範囲内に捕捉されることができる。このようにして、通信パケットは、オペレーティングシステムカーネルの許可されたプロセスによってアクセスされてもよい。さらに、通信パケットのデータは、隔離されたメモリ範囲から非一時的メモリに書き込まれてもよい。隔離されたユーザ空間は、非一時的メモリの隔離された非一時的メモリ範囲を含んでもよい。通信パケットのデータは、この隔離されたメモリ範囲に一時的メモリから書き込まれてもよい。
【0021】
名前、定義、アドレスなどは、それらが、隔離されたユーザ空間コンテナを参照するように、そして他のユーザ空間コンテナを参照しないように、定義することができ、すなわち、それらはユーザ空間コンテナの名前空間を定義する。すなわち、隔離されたユーザ空間コンテナは、隔離された名前空間に属してもよい。名前空間とは、コンピュータシステム上で実行されているプログラムやプロセスがシステムのリソースにアクセスしたり、システム外部のリソースにアクセス(要求)したりするコンテキストである。オペレーティングシステムのカーネルは、名前空間を管理する。つまり、プログラムが特定のリソースへのアクセスに使用できるハンドルを割り当てる。オペレーティングシステムはまた、(通信接続を介して)オペレーティングシステムの外部にアクセスして、他のシステム内のリソースにアクセスすることを可能にしてもよい。さらに、オペレーティングシステムは、外部からシステムのリソースへのアクセスを許可してもよい。
【0022】
図1bには、ログされた通信パケットのアクセスが示されている。段階150において、隔離された名前空間および隔離された非一時的メモリ範囲へのアクセスが提供されてもよい。段階160において、または段階150においてアクセスが提供されると、外部アクセスは読取り専用に制限される、すなわち非一時的メモリへのデータの書込みが防止されてもよい。段階170において、通信パケットおよびパケットに関する情報は、非一時的メモリから検索されてもよい。この情報は、段階180において解析プログラムに提供され、侵入の、種類、ソース、時間、標的または他の特性の解析結果を提供してもよい。
【0023】
図2は、コンピュータネットワークトラフィックのロギングのためのシステムおよびデバイスを示す。たとえば、監視は、1以上の分割ポイントSPLIT POINT1,SPLIT POINT2が、ネットワークトポロジにおけるペリメータ位置PERIMETERに設定されて、このポイントまたはこれらのポイントを通過するネットワークトラフィックが、ローカルネットワークLANに出入りするすべてのネットワークトラフィックの重要な部分になるように行われてもよく、またはあるスプリットポイントが任意の収束ポイントにおいて設定されてもよい。「ローカルネットワーク」は、たとえば施設または組織、たとえば会社の内部ネットワークであると定義することができ、または部署のネットワークなどの会社の内部ネットワークのサブセクション、または単一のコンピュータCOMP1,COMP2,COMP3であると理解することができる。ペリメータ位置は、ローカルネットワークLANとワイドエリアネットワークINTERNETとの間のネットワーク内における位置SPLIT POINT1を含んでもよく、これを介して、ワイドエリアネットワークからローカルネットワークLANへのネットワークトラフィックは、ネットワークオペレータルーティングポイントROUTERにおいてローカルネットワークへと通過する。言い換えれば、ローカルネットワークのペリメータ位置は、物理的な位置およびローカルネットワークの範囲とは別の、ネットワーク事業者の施設内に物理的に存在していてもよい。言い換えれば、ペリメータ位置は、施設の物理的な境界にあってもよく、またはネットワークセグメントのネットワークペリメータにあってもよく、ネットワークペリメータは、ローカルネットワークと物理的に同じ場所、または(通信接続を介して接続されている)遠隔の場所にあってもよい。このことは、ネットワークオペレータがローカルネットワークとの間のネットワークトラフィックを監視およびログする可能性を提供する。
【0024】
通信パケットのロギングは、着信および発信パケットの両方、ペリメータ位置の内部パケット、および外部からペリメータ位置に到着する外部パケットを捕捉することを含み、前記通信パケットは、ある時間間隔内に前記ペリメータ位置を通過する実質的にすべてのネットワークトラフィックを含む。それに対応して、どの収束ポイントでも、その収束ポイントで見えるすべてのパケットは、発信元または宛先に関係なく捕捉される。
【0025】
分割ポイントSPLIT POINT1,SPLIT POINT2において、ネットワークトラフィックは、2つ以上の同一で共存するトラフィックのストリームに分割される。分割は、たとえば電気的または光学的に起こってもよく、形成された分割ネットワークストリームは情報内容において同一である。これらのストリームは、コンピュータネットワークおよびシステムの異なる経路に存在し、実質的に同時に(たとえば、1ミリ秒未満の時間差で)伝播する。言い換えれば、たとえば半導体部品の立ち上がり時間などのために信号経路が遅延を引き起こす場合、信号の異なる波面は異なるタイミングを有してもよい。遅延が累積すると、タイミングの差はミリ秒もしくは数十ミリ秒のオーダー、または秒のオーダーになることがある。このようにして、分割信号は、入力通信信号の第2波面部分を形成することによって形成され、第2波部分は元の波面と実質的に同時である。信号を分割する他の方法は、たとえば、量子計算ベースの状態スプリッタ、および/または磁場、電場、光などの電磁放射、赤外の無線周波数波によって搬送される通信信号を分割することを含んでもよい。
【0026】
ネットワークインタフェースコントローラNIC1,NIC2は、続いて、ヘッダまたはコンテンツに関わりなく全てのトラフィックパケットを捕捉し、この情報を、通常の宛先、およびコンピュータシステムLOGGERの記録パスに送信するように動作することができる(プロミスキャスモード)。通信パケットを含む通信信号が分割ポイントに到着すると、信号は、信号スプリッタによって、またはネットワークインタフェースコントローラNIC1,NIC2によって分割され、分割信号を形成する。分割信号の通信パケットは、続いて、リアルプロミスキャスモードで動作することができるネットワークインタフェースコントローラNIC1,NIC2を使用して一時的コンピュータメモリMEMに取り込まれる。ネットワークインタフェースコントローラは、したがって、通信ネットワークからデータストリームを受信し、そのデータストリームをメモリMEMに格納することができる。ネットワークインタフェースコントローラは、ネットワークに対して沈黙してもよく、すなわち、ネットワークインタフェースコントローラは、ネットワークへの送信または応答を省略するようにソフトウェアまたはハードウェアによって構成されてもよい。通信パケットのデータは、その後、非一時的メモリSTORに書き込まれる。ネットワークインタフェースコントローラは、インタフェースコントローラ入力パケットフロー(リアルプロミスキャスモード)と比較して出力と同じパケットフローを転送することができ、非一時的メモリSTORに書き込まれる。ネットワークインタフェースコントローラは、通信パケットを復号化してもよい。コントローラは、可能な限り元のパケットフローに近い元の通信信号パケットフローを維持するために、パケットのフィルタリングまたは合体を回避することができる。元のパケットフローと同一または同じ大きな程度であるそのようなパケットフローは、続いて格納される(ログされる)。
【0027】
ネットワークトラフィックを記録する方法は、サーバコンピュータLOGGER内の1以上のプロセッサコアCORE1,CORE2上で動作するメモリMEM内のソフトウェアコードPROGRを用いて実現することができる。サーバコンピュータは、ネットワークトラフィックを分割するためのネットワークインタフェースコントローラを備えてもよく、またはそれに接続されてもよい。サーバは、データストレージ(非一時的メモリシステム)、たとえば、ストライプモードまたはいわゆるワイドストライプモードで動作するRAIDドライブを備えるか、またはそれに接続されてもよい。
【0028】
図3は、ネットワークトラフィックのログを作成するための装置またはシステムのブロック図を示す。ネットワークトラフィックの記録は、スプリッタで始まり、そこでネットワークトラフィック通信パケットのストリームは、スプリットストリームを形成するように分割される。スプリットストリームは、ネットワークインタフェースカードNIC1,NIC2によって捕捉され、ネットワークインタフェースコントローラコンピュータの一時的メモリMEM1,MEM2(一般にMEM)に書き込まれる。ネットワークインタフェースコントローラによって制御される循環バッファCIRCBUF直接メモリ動作は、分割ネットワークトラフィックストリームパケットを一時的メモリMEM1,MEM2に書き込むために使用することができる。この循環バッファは、1または複数のプロセッサコアCORE1,CORE2によって実行される処理によって読み取られ、非一時的メモリSTORのバッファメモリSTORBUF、たとえば、ワイドストライプストレージシステムなどのハードドライブストレージ、光学ストレージ媒体、ソリッドステートディスクまたは非一時的メディアへの外部電源がなくてもデータが書き込まれたままになる任意の他のシステムに転送される。バッファメモリSTORBUFから、データは、コントローラSTORCTRLによって制御される非一時的メモリD1,D2,D3,D4に書き込まれる。そのような構成は、完全なネットワークトラフィックストリームのイメージをパケット損失なしに永久ストレージに捕捉することができ、その結果、格納されたストリームを信頼できるフォレンジックエビデンスソースとして使用することができるように十分な速度を可能にする。ログされたストリームは、1つのセグメントを非一時的メモリ、たとえば1つのメモリユニットに効率的に書き込むことができるように、複数のセグメントで非一時的メモリに書き込むことができる。また、セグメントは、タイムスタンプを付けられ、ハッシュコードまたはデジタル署名によって検証することができる独立したデータユニットに形成することができる。このようにして、より速い速度または容量が必要とされるとき、メモリユニットを非一時的メモリに追加することができ、これにより、より多くのデータユニットを同時に非一時的メモリに書き込むことが可能になる。
【0029】
ネットワークインタフェースコントローラのデバイスドライバは、一時的メモリMEM内の循環バッファに通信パケットを書き込むことができる。非一時的メモリのデバイスドライバは、直接メモリアクセス動作中に循環バッファCIRCBUFにアクセスし、非一時的メモリ、またはそのバッファメモリに通信パケットを書き込むことができる。非一時的メモリは、複数のメモリユニットを含んでもよく、複数のメモリユニットは、RAIDまたはワイドストライプシステムなどの非一時的メモリシステムを形成する。
【0030】
循環バッファは、データがメモリ範囲に書き込まれ、メモリ範囲の終わりに達すると、書込みがメモリ範囲の始めから継続する構成であると理解することができる。メモリ範囲は、連続していてもよく、非連続であってもよい。書込み時には、書込みアドレスWRITEと読出しアドレスREADの2つのアドレスが連続して使用されてもよい。より多くのデータが循環バッファに書き込まれるにつれて、書込みアドレスはそれに対応して進み、メモリ範囲の終わりに達したときにメモリ範囲の始めに戻る。データが循環バッファから読み出されているとき、読み出されたアドレスはそれに対応して進み、メモリ範囲の終わりに達するとメモリ範囲の始めに戻る。読出しアドレスが書込みアドレスに達すると、さらにデータが利用可能になるまで読出しが停止される。書込みアドレスが読出しアドレスに達すると、循環バッファが一杯になり、データをバッファから読み出すまでそれ以上データを書き込むことができないので、これはエラー状態である。循環バッファがオーバーフローを回避するためには、読出し速度が十分に高速であるべきであり、少なくとも平均データフロー速度よりも高速であるべきである。さらに、循環バッファは、それが1以上の書込みバーストを含むことができるように十分に大きいサイズであってもよい。
【0031】
この観点において、ネットワークストリームのストレージは実質的に遅延なしに行われ、循環バッファリングおよび永久ストレージへの書込み遅延を減らすことを理解されたい。また、パケットは、いかなる方法でも、パケットをフィルタリング、合体、および/または変更することなく格納することができる。すなわち、ネットワークインタフェースコントローラは、フィルタリングすることなく、たとえば、MACアドレスまたはプロトコルによってパケットを落とさずに、またはパケットの合体を行わずに、着信通信信号から通信パケットを復号化するモードで動作する。また、不完全で不正確で破損したパケットも、少なくとも部分的に、または可能な限りNICによって復号化されてもよい。このようにして、本物のパケットフローが捕捉される。これは、証拠的な意味で隙のない記録を提供する。送信側、および受信側、またはプロトコルに関係なく、すべてのパケットが復号化される。
【0032】
代替的、または追加的に、ストレージプロセス中に、たとえば別のプロセッサコアCORE1,CORE2が採用され、スプリットネットワークストリームの包括的なヘッダログを形成するために採用することができる。ヘッダログには、パケットヘッダ(アドレスを含む)は格納されているが、パケットのペイロードは格納されていない。このヘッダログは、人間が判読できるようにテキスト形式でも作成することができる。そのようなヘッダログは、ネットワークトラフィックの解析の基礎となる出力として提供することができ、パケット、たとえばペイロードのより詳細な解析が必要な場合、ネットワークトラフィックストリームの全イメージにアクセスすることができる。
【0033】
ここで、
図3のアプローチが通信ネットワークトラフィックをログする、信頼性がありかつ拡張可能な方法を提供し得ることに留意されたい。ネットワーク通信パケットの分割を形成し、分割信号を別個のハードウェアによってログおよび格納することは、たとえば、通信ネットワークの一部であるルータまたはスイッチなどのネットワーク要素によってネットワークトラフィックをログすることと比較して優れている。侵入者は、トラフィックを有する要素に過負荷をかけることによって、そのようなネットワーク要素を攻撃することができ、そのような場合には、ネットワーク要素がログを処理するために十分な処理能力がないかもしれない。その結果、侵入は、検出されないままである場合がある。
図3の方法の別の利点は、ネットワーク内の分割ポイントを形成し、専用のハードウェアでログを処理することが、ログを構成する際に柔軟性をもたらし、コストおよび消費電力を節約することもできる点である。なぜなら、そのような追加の機能は、ネットワーク要素自体において必要とされないからである。言い換えれば、そのような構成は、既存のネットワーク要素内の機能に基づくものよりもさらに拡張可能であってもよい。分割ポイントの数と監視されるネットワークトラフィックの量とに応じて、様々な種類の専用ハードウェアをログに使用することができる。たとえば、小規模オフィスまたは家庭のネットワークトラフィックを監視するためには、100ユーロ未満のコストの小型コンピュータを使用することができる。強力なサーバは、会社の非常に大きなネットワークの監視を可能にし、そして多数のコンピュータが大規模なコンピュータネットワークおよび大量のネットワークトラフィックを監視するようにサーバファームを利用することができる。
【0034】
専用ハードウェアは、ルータまたはネットワークスイッチのようなネットワーク要素の代わりに、たとえば現代のPCハードウェアアーキテクチャのパーソナルコンピュータまたは対応するサーバコンピュータ、すなわち汎用コンピュータであってもよい。現代アーキテクチャにおいて、PCIeバスのような拡張バスEXTBUSは、プロセッサとネットワークインタフェースコントローラ(複数可)との間においてデータおよびコマンドを運び、分割ポイントにおいて全てのネットワークトラフィックのログを処理するために十分な通信速度を有する。通信バスは、計算ノード(プロセッサ)において、処理またはQPIバスのようなバスPROCBUSに接続されてもよく、ノードは、たとえば、各ノードが2つのメモリーバンクを有するように一時的メモリMEM1,MEM2(ランダムアクセスメモリRAM)に接続することができる。一時的メモリ(RAM)は、上述のように、ネットワークインタフェースコントローラドライバが書き込むためのアドレス空間として定義された循環バッファを有してもよい。データレコーダプロセスは、循環バッファに使用されるアドレス範囲を定義することができる。この種の構成は、非一時的メモリに対して200MB/sの速度を提供することができる。このような高速データフローを受信するために、たとえば、個々のストレージユニットに回転ストレージを有する4096バイトブロックを採用することによって、たとえばRAIDワイドストライプストレージシステムが存在してもよい。
【0035】
デーモンプロセスのようなプログラムは、上述したような非一時的メモリへのネットワークインタフェースコントローラからのネットワークトラフィックのログを制御してもよい。ネットワークインタフェースコントローラは、ネットワークインタフェースコントローラを通過するデータ量およびパケット数を計数し続け、このデータも非一時的メモリに格納することができる。ログプロセスでいくつかのパケットを失っても侵入の検出および調査に害はないかもしれないが、後で非一時的ストレージに何も追加できないこと、および非一時的ストレージからパケットを削除するアクセスがないことが重要である。パケットとトラフィックとのタイムスタンプおよびタイミング情報は、格納されてもよい。なぜなら、ネットワーク時間の変化は、攻撃を可能にする可能性があり、タイムスタンプおよび/またはタイミング情報を格納することによってそのような攻撃も同様に捕らえられ可能性があるからである。
【0036】
図4aは、名前空間および隔離されたユーザ空間コンテナを使用してコンピュータネットワークトラフィックのログを作成し、アクセスするための構成を示す。
【0037】
図4のNAMESPACE Aとしての名前空間は、コンピュータ環境においてオブジェクトを命名するためのデータ構造およびシステムであると理解することができる。たとえば、ネットワークアドレスとコンピュータにおけるデバイスの論理名とは、対応する要素を表すプログラムによって使用することができる識別子である。名前空間を使用すると、名前空間内で名前の競合が発生しないようになり、同時に名前空間を超えた項目への参照が無効になる。
【0038】
図4におけるUSER SPACE CONTAINER A、およびUSER SPACE CONTAINER Bとしてのユーザ空間コンテナは、ユーザ空間コンテナにおいて動作するプログラムが、オペレーティングシステムへの直接のアクセスを持たない代わりにインタフェースLIBINTを介してこれらのサービスを介してオペレーティングシステムにアクセスするように、オペレーティングシステムのサービスが汎用サービスとして提供される仮想化環境であると理解することができる。よく知られているように、オペレーティングシステムおよびオペレーティングシステムに関連するデバイスドライバは、プログラムがハードウェアに直接アクセスする必要がないかまたはアクセスすることが許されないように、一般的なサービスとしてコンピュータハードウェアのサービスを提供する。単一のオペレーティングシステムの上にいくつかのユーザ空間コンテナがあってもよく、ユーザ空間コンテナは、1つのコンテナ内のプログラムが別のコンテナのリソースにアクセスすることができないように互いに隔離されている。コンテナ内にアクセス可能な名前およびオブジェクトは、他のコンテナからのアクセス不可能であってもよい。また、オペレーティングシステムおよびコンテナマネージャCONTAINER MGRは、コンテナからオペレーティングシステムによって提供されるリソースへのアクセスを制限することができる。たとえば、オペレーティングシステムは、解析目的のために存在するユーザ空間から非一時的メモリ(ディスクストレージ)への書込みアクセスを防止することができる。このことは、ロギングを実行する拡張可能な方法を提供するシステムにおいて、ネットワーク通信の信頼性および安全性を提供するために有用であってもよい。
【0039】
上述されたプロセス隔離およびその他のアクセス制限は、コントロールグループと名前空間とを使用することによって実現することができる。たとえば、コンテナは、マウント名前空間を使用することによって、非一時的メモリに対する特定の権限(たとえば、特定の範囲またはマウントポイントに対する読取り専用権限)のみを提供することができる。コンテナは、特定の名前空間を使用することによってそれらの固有のホスト名を有してもよく、別の名前空間によってプロセス間通信オブジェクト(たとえば共有メモリ)にアクセスすることができる。異なるコンテナ内のプロセスは、プロセスid名前空間を使用して独立して番号付けすることができ、ネットワーク名前空間はコンテナのネットワーク機能性にシステムリソースを提供することができる。このようにして、名前空間は、コンテナに見えるように特定のリソースを提供すると理解されてもよい。コントロールグループは、たとえば、処理時間、メモリの量または範囲、およびネットワーク帯域幅などの特定のシステムリソースへのアクセスを提供するために使用することができる。たとえば、コンテナが任意の処理時間を与えられていない場合、つまり、処理時間を使うことができるであろう性質を有していない場合、プロセスは、そのようなコンテナ内で実行されていないが、コンテナは、ポインタを介してデータストレージへのアクセスを提供したままであってもよい。非一時的メモリ範囲への書込みアクセス権がコンテナに与えられていない場合、コンテナはデータへの読取りアクセスのみを提供することができる。このような機能は、コンテナが起動されたときに形成される。このことは、不正アクセスに対するセキュリティを提供する。なぜなら、コンテナの再起動は、設定において許可されておらず、コンテナ内部から不可能である場合があるからである。また、オペレーティングシステムのカーネルが特定の設定で実行されてもよく、設定の変更は、カーネルを再起動することによってのみ、またはカーネルを再コンパイルして再起動することによってのみ可能であってもよい。このような操作には、通常は簡単には利用できない強力な権限が必要である。
【0040】
本明細書においては、ネットワークインタフェースコントローラは、ネットワーク通信データをオペレーティングシステムカーネル用に予約されているメモリ範囲に提供することができ、したがってカーネルプロセスはそのデータにアクセスすることができる。このようにして、一定範囲のメモリMEMを確保することができる。システムは、一時的メモリから非一時的メモリへのデータの転送が直接メモリ転送を介して行われ、プロセッサの負荷が最小化されるように動作するように構成されてもよい。
【0041】
別の既知のタイプの仮想化はハードウェア仮想化であり、この場合、仮想コンピュータは、コンピュータハードウェアサービスが仮想コンピュータへのサービスとして提供されるように、コンピュータハードウェア上で動作するホストオペレーティングシステムの上に作成される。つまり、仮想コンピュータにインストールされたゲストオペレーティングシステムは、仮想ハードウェアを実際のハードウェアのように使用する。ハードウェアおよびホストオペレーティングシステムの上で複数の仮想コンピュータが実行されてもよい。
【0042】
仮想コンピュータおよびユーザ空間コンテナは、1または複数のユーザ空間コンテナが仮想コンピュータのオペレーティングシステム上で実行されるようにネストされることができる。
図4aにおいては、1組のコンピュータハードウェアと、そのカーネル空間KERNEL SPACE(オペレーティングシステムカーネルの名前空間)を有する1つのオペレーティングシステム環境とが示されている。オペレーティングシステムの上では、いくつかのユーザ空間コンテナ、USER SPACE CONTAINER A,USER SPACE CONTAINER Bに、それぞれの名前空間が設けられてもよい。
【0043】
仮想ネットワークインタフェースコントローラVNIC1,VNIC2,VNIC3,VNICNは、分割ポイントからネットワーク通信パケットの受信機として機能する、実際のネットワークインタフェースコントローラNIC1,NIC2,NIC3,NICNへのインタフェースを提供することが可能である。そのような仮想ネットワークインタフェースコントローラは、隔離されたユーザ空間コンテナから、そのドライバDRVA,DRVBを介して、たとえば、ネットワークパケットロギングを制御する制御プログラム(ロガープログラム)によって、動作させることが可能である。隔離されたユーザ空間コンテナは、オペレーティングシステム(またはコンテナマネージャ)によって提供された、隔離されたメモリ範囲として、一時的メモリMEMA,MEMBにアクセス可能であってもよい。つまり、コンテナ内のプログラムは一時的メモリ範囲を読み書きできるが、そのメモリ範囲は別のコンテナからアクセスできない。通信パケットは、隔離されたユーザ空間コンテナの隔離されたメモリ範囲MEMA,MEMB内に、たとえば、ネットワークインタフェースコントローラの循環バッファ直接メモリアクセス動作を制御することによって捕捉される。一時的メモリから、通信パケットを非一時的メモリに書き込むことも可能である。非一時的メモリを、隔離された非一時的メモリ範囲STORA,STORBとして、オペレーティングシステムによって、コンテナに提供することも可能である。隔離された非一時的メモリ範囲を含む隔離されたユーザ空間、コミュニケーションパケットを、隔離された一時的メモリ範囲から、非一時的メモリの隔離された非一時的メモリ範囲に書き込むことが可能である。ユーザ空間コンテナA用メモリ範囲は、コーナ“A”として、デバイスSTORおよびMEM上にも示されている。
【0044】
図4aに示すように、隔離されたユーザ空間コンテナは、隔離された名前空間に属し、かつその名前空間への外部からのアクセスと、隔離された非一時的メモリ範囲とが提供されてもよく、その場合、外部アクセスは読取り専用モードで提供される。言い換えれば、非一時的メモリにログされた過去のネットワークトラフィックを解析するための解析プログラムANPROGから見えるように、隔離された非一時的メモリ範囲をマウントする方法を提供することができる。また、監視プログラムMONITORによって、ロギングのステータスを読取り専用モードで監視することができる。
【0045】
コンピュータプログラム製品は、名前空間内で実行するように構成することができ、ストレージ、オペレーティングシステム、仮想化ハードウェア、およびネットワーク接続は、格納されたストリームにアクセスするための十分な領域を形成する。記録のために名前空間は書込みのために利用可能であるけれども、名前空間は、読取り専用アクセスモードにおいても、たとえば、フォレンジック解析のために提供することができる。このようにして、ログされたネットワークトラフィックストリーム全体に読取りのためにアクセスすることができるが、フォレンジック価値はアクセスによって損なわれることはない(読取り専用)。これにより、ネットワーク通信をログするための信頼できる方法とログされたデータにアクセスするための信頼できる方法が提供される。
【0046】
図3、
図4a、および
図4bの動作は、適切なコンピュータハードウェアと共に、非一時的コンピュータ読取り可能な媒体上に具現化されるコンピュータプログラム製品として説明されるように実行することができ、前記媒体は、少なくとも1つのプロセッサ上で実行されたとき、装置またはシステムに通信信号の分割信号を発生させ、そして通信パケットのデータを非一時的メモリに書き込むように構成されたコンピュータプログラムコードを含み、この場合、前記通信信号は、情報を含み、前記分割信号は、情報内容において通信信号と同一であって、前記分割信号は、通信ネットワークのペリメータまたは収束の位置に形成され、分割信号の捕捉通信パケットは、一時的メモリ内にネットワークインタフェースコントローラを使用し、前記ネットワークインタフェースコントローラは、リアルプロミスキャスモードで動作する。
【0047】
コンピュータプログラム製品は、隔離されたユーザ空間コンテナであって、隔離されたメモリ範囲として、一時的メモリにアクセスする隔離されたユーザ空間コンテナから、仮想ネットワークインタフェースコントローラを操作し、通信パケットのデータを、隔離されたメモリ範囲から、非一時的メモリに書き込むためのコンピュータプログラムコードを含んでもよい。
【0048】
解析のためにログされたネットワークパケットを形成し提供するためのいくつかの実用的な詳細が以下に提供される。記録のために、実際のネットワークインタフェースコントローラに対応する仮想ネットワークインタフェースコントローラ、一時的および非一時的メモリ範囲、およびロギング用の制御プログラムを含むコンテナが記録名前空間に形成される。ログされたデータを読み取る際に、リーダ制御プログラムANPROGは、解析ツールを含む、または解析ツール用のデータへのアクセスを提供する、読取り専用モードで動作するコンテナに添付されることができる。記憶コンテナは、ロギング中にそれに書き込まれた識別子、たとえば、通信トラフィックがロギングされたネットワークインタフェースコントローラの識別子から導出された識別子を含むことができる。記憶装置はハッシュ、または、CRC、または記憶装置が改ざんされていないことを示す他の確認コード(対応するコードは、記録時に安全な場所に格納することができる)を含むことが可能である。
【0049】
そのようなコンテナは、1つの物理的マシンに、複数のネットワークロギング動作のために使用されることを許可するドメインを構築するために使用することが可能である。たとえば、ネットワークオペレータが複数のネットワークをログするサービスを提供している場合、1つの物理的なマシン上に各ネットワーク用のログコンテナがあってもよい。これは、物理的機械が高性能を有するように構築可能であり、そして同時にネットワーク要素がより単純にされることができるのでコスト節約を提供することができるので、信頼性を提供する。したがって、1または複数のネットワークが複数の分割ポイントでログされる環境においては、そのようなコンテナおよび名前空間の配置は、ログの実装を単純化することができる。言い換えれば、そのような構成は、機能がネットワーク要素自体に組み込まれているものよりも拡張可能であり得る。
【0050】
図4bにおいて、ログされたネットワークトラフィックへのアクセスを許可するための構成が示されている。互いに通信するように配設された多数のユーザ空間コンテナ(接頭辞CONTで名前が付けられた要素)があってもよい。ロギングネットワークトラフィックCONT_LOGGERためのユーザ空間コンテナが、一時的メモリにネットワークトラフィックパケットの非一時的メモリ内への受信と、このデータNETDATAの非一時的メモリSTORへの書込みとに関する機能を行う。ロガーCONT_LOGGERは、統計情報CONT_STATISTICSを収集するためにユーザ空間コンテナと通信を行い、統計情報CONT_STATISTICSは、ログの進行状況を監視するために統計情報STATをモニタコンテナCONT_MONITORに提供する。他のコンテナが非一時的記憶装置に書き込むことは許可されない。非一時的記憶装置内のログされたネットワークトラフィックのデータは、それらがアクセスされることができる識別子(名前)をそれぞれ有するデータセグメントとして格納される。許可コンテナCONT_AUTHは、これらの名前をデータLSTとして読み取ることを許可され、ユーザが解析されるべきセグメントを選択することを許可する。許可コンテナは、この選択SELと抽出コンテナCONT_EXTRACTへの許可とを提供し、その結果、選択されたセグメントのデータSELDATAを利用可能にするために取り出すことができる。抽出コンテナCONT_EXTRACTは、データSELDATAをフォレンジック解析コンテナCONT_FORENSICに提供し、フォレンジック解析コンテナCONT_FORENSICは解析の進行状況を承認コンテナに報告する。
【0051】
一例として、ログされたデータは、データを読み取り、既知の侵入方法に一致するパターンを見つけることによって解析できる。別の例として、ログされたネットワークトラフィックは、ネットワークの侵入を検出するように構成されているオンラインネットワークトラフィックアナライザを通して再生することができる。このようにして、ネットワークトラフィックアナライザが新しい侵入方法を検出するように更新されたときに、更新されたアナライザを介してプレイインすることによって、後で古いトラフィックを解析できる。
【0052】
図5は、コンピュータネットワークトラフィックをログし解析するフローチャートを示す。この図において、個々の段階は前述のように実行することができ、あるいはそれらを修正または省略することができる。異なる順序におけるこれらの段階の異なる組み合わせを実行することができる。たとえば、この方法は、隔離されたユーザ空間コンテナを使用せずに実行することができ、または仮想コンピュータを使用して実行することができる。段階510において、隔離されたユーザ空間コンテナが形成される。ユーザ空間コンテナは、隔離された一時的メモリ範囲および/または隔離された非一時メモリ範囲を含んでもよい。段階520において、一時的メモリ範囲は、循環バッファを有するように設定されてもよく、該循環バッファに、ネットワークインタフェースコントローラが通信パケットを書き込むことができる。段階530において、非一時的メモリは、ネットワーク通信を格納するために設定されてもよく、非一時的メモリは、複数のメモリユニットを含むメモリシステムを含んでもよい。段階540において、分割通信信号は、ネットワークペリメータまたは収束位置において通信信号から形成されてもよい。段階550において、分割信号は、一時的メモリに、そして循環バッファに捕捉されてもよく、この捕捉は、通信パケットの復号化、たとえば、無傷の通信パケットおよび不完全または誤ったパケットの復号化を含んでもよい。段階560において、通信パケットのデータは、一時的メモリから非一時的メモリに書き込まれてもよい。段階570において、読取り専用の外部アクセスは、コンテナに、たとえばコンテナ読取り専用モードでコンテナを起動することによって提供されてもよい。段階580において、ログされた通信は、解析プログラムを使用して解析されてもよい。
【0053】
図6は、コンピュータネットワークトラフィックをログするためのコンピュータプログラム製品のユーザインタフェース600を示す。記録の状態を示す目的で、隔離されたユーザ空間を含むコンテナ内にそのような監視アプリケーションがあってもよい。監視アプリケーションは、たとえば、ネットワークインタフェースコントローラ、ロギングを制御する制御プログラム、および/または非一時的メモリに接続されてもよい。
図6に示すように、監視アプリケーションは、ロギングが実行されているかどうかを第1インジケータ610で示してもよく、第2インジケータ620でデータ量を示し、第3インジケータ630でログされたパケット数を示してもよく、かつ/または、受信されたパケット数をネットワークインタフェースコントローラおよび非一時的メモリによって比較して、パケットがログにおいて失われたかどうかを決定し、そして失われたパケット量を第4インジケータ640で示してもよい。ロギングの内部状態、たとえば循環バッファのステータス(インジケータ650)、非一時的記憶装置の満杯度(インジケータ660)などにおける他のことを示すためのインジケータがあってもよい。本明細書で説明されているようなロギングのそのようなステータスもまた格納されてもよく、解析段階で同様のユーザインタフェース600を用いて後で表示されてもよい。
【0054】
上記の方法および関連する装置は利点を提供することが可能である。たとえば、新しいセキュリティの脆弱性が発見された場合、そのような脆弱性が、セキュリティ攻撃に(発見される直前まで)どれくらいの期間使用されているのかがわからない。完全なネットワークトラフィックストリームイメージを格納するこの方法においては、過去のネットワークトラフィックを解析して何が起こったのかを見つけ、脆弱性が最初に使用された瞬間を検出することができる。たとえば、ネットワークおよび接続されているコンピュータを復元する際に使用されるバックアップレコードも感染する可能性がある。ペイロードを開かずに格納および解析を実行することができ、それによって方法をほとんどの国の法律に準拠したものにすることができる。たとえば、ネットワークトラフィックヘッダの自動解析を実行することができる。上記の方法で、新製品は、特定の場所ですべての着信および発信ネットワークトラフィックを監視および記録する方法を提供する。
【0055】
本発明の様々な実施形態は、メモリ内に存在し、関連する装置に本発明を実行させるコンピュータプログラムコードを使用して実施することができる。たとえば、装置は、データを処理、受信および送信するための回路および電子機器、メモリ内のコンピュータプログラムコード、ならびにコンピュータプログラムコードを実行すると装置に実施形態の特徴を実行させるプロセッサとを備えてもよい。さらに、サーバのようなネットワーク装置は、データを処理、受信および送信するための回路および電子機器、メモリ内のコンピュータプログラムコード、ならびに、コンピュータプログラムコードを実行すると、ネットワーク装置に実施形態の特徴を実行させるプロセッサを備えてもよい。
【0056】
本発明は上記の実施形態のみに限定されるものではなく、添付の特許請求の範囲の範囲内で変更することができることは明らかである。