DUICUO

Apache Eagle: eBay のオープンソース分散リアルタイム Hadoop データ セキュリティ エンジン

著者紹介

[[161443]]

チェン・ハオ

Apache Eagle コミッターおよび PMC メンバーであり、eBay の Analytics プラットフォームのインフラストラクチャ部門のシニア ソフトウェア エンジニアで、Eagle の製品設計、技術アーキテクチャ、コア実装、オープンソース コミュニティのプロモーションを担当しています。

情報

eBayは先日、分散型リアルタイムセキュリティ監視ソリューション「Apache Eagle」をオープンソース業界向けに正式にリリースすると発表しました。このプロジェクトは、2015年10月26日にApache Foundationのインキュベータプロジェクトとして正式に参加しました。

  1. http://goeagle.io

Apache Eagleは、高いリアルタイム性能、スケーラビリティ、容易な拡張性、そしてユーザーフレンドリーなインターフェースといった機能を備えた、高効率な分散ストリーミングポリシーエンジンを提供します。また、機械学習を統合し、履歴モデルのトレーニングとユーザープロファイルの構築を行うことで、Hadoopエコシステムにおけるビッグデータセキュリティのインテリジェントなリアルタイム保護を実現します。

eBayにおけるEagleの活用事例

現在、Eagle のデータ動作監視システムは、数百ペタバイトのデータを保護するために 2,500 を超えるノードを持つ Hadoop クラスターに導入されており、2015 年末までに 10 を超える他の Hadoop クラスターに拡張される予定で、これにより eBay のすべての主要な Hadoop システムの 10,000 を超えるノードがカバーされることになります。

当社の本番環境では、HDFS や Hive などのクラスター内のデータに対していくつかの基本的なセキュリティ ポリシーを構成しており、重要なデータの絶対的なセキュリティを確保するために、年末までにさらに多くのポリシーを導入する予定です。

現在、Eagle の戦略は、アクセス パターン、頻繁にアクセスされるデータセット、定義済みのクエリ タイプ、Hive テーブルと列、HBase テーブル、機械学習モデルに基づいて生成されたユーザー プロファイルに関連するすべての戦略を含む、さまざまなパターンをカバーしています。

同時に、データ損失、安全でない場所へのデータコピー、権限のない領域からの機密データへのアクセスを防ぐための幅広い戦略を備えています。Eagleの戦略定義は柔軟性と拡張性に優れているため、将来的にもより複雑な戦略を容易に拡張し、より多様なユースケースシナリオに対応できます。

プロジェクトの背景

ビッグデータの発展に伴い、ますます多くの企業や組織がデータドリブンなビジネスモデルを採用し、成功を収めています。eBayでは、数千人のエンジニア、アナリスト、データサイエンティストが日々ペタバイト規模のデータにアクセスし分析することで、ユーザーに比類のない体験を提供しています。また、世界中で膨大な量のビッグデータを積極的に活用し、数億人のユーザーと繋がっています。

近年、Hadoopはビッグデータ分析分野で徐々に最も人気のあるソリューションとなりつつあり、eBayもHadoop技術を活用してデータから価値を引き出しています。例えば、ビッグデータを活用して、ユーザーの検索体験を向上させ、ターゲット広告を特定・最適化し、商品カタログを充実させ、クリックストリーム分析を通じてユーザーがオンラインマーケットプレイスプラットフォームをどのように利用しているかを把握しています。

現在、eBayのHadoopクラスタは1万台以上のノード、170PBを超えるストレージ容量、そして2,000人以上のアクティブユーザーを擁しています。この規模は拡大を続けており、多様なニーズに対応するため、Hive、MapReduce、Spark、HBaseといった、ますます多様なデータストレージおよび分析ソリューションを導入しています。これにより、管理と監視の課題はますます深刻化し、データセキュリティは最も重要な課題の一つとなっています。

ビッグデータ時代において、セキュリティはかつてないほど重要になっています。世界有数のeコマース企業であるeBayは、Hadoopにおけるユーザーデータの絶対的なセキュリティを確保する必要があります。

当社のセキュリティ対策には通常、アクセス制御、セキュリティ分離、データ分類、データ暗号化、リアルタイムのデータ動作監視が含まれます。

しかし、広範囲にわたる試験と調査の結果、膨大なリアルタイムデータストリームと多様なユースケースに対応するデータ挙動の監視という当社のニーズを完全に満たす既存の製品やソリューションは存在しないことが判明しました。このギャップを埋めるため、eBayはEagleをゼロから構築することを決定しました。

Eagleは、データ挙動のリアルタイム監視をサポートするオープンソースの分散型リアルタイムHadoopデータセキュリティソリューションです。機密データへのアクセスや悪意のある操作を即座に検知し、迅速な対策を講じることができます。

私たちは、Eagle が Hadoop データ セキュリティ分野の中核コンポーネントの 1 つになると信じているため、その機能をコミュニティ全体と共有することにしました。

私たちは、オープンソース コミュニティと協力して Eagle を開発し、成長させてオープンソース コミュニティの幅広いニーズに対応できるようにしたいと考え、Eagle を Apache Incubator プロジェクトとして Apache Software Foundation にすでに寄贈しています。

Eagle のデータ動作監視ソリューションは、次のような一般的なシナリオで使用できます。

◆ Hadoop のデータアクセストラフィックを監視する

◆ 不正侵入やセキュリティルール違反を検知

◆ 機密データの紛失やアクセスを検出し防止する

◆ ポリシーベースのリアルタイム検出と早期警告を実現

◆ ユーザーの行動パターンに基づいて異常なデータ行動検出を実装

Eagle には次の特性があります。

高いリアルタイム性:セキュリティ監視において、高いリアルタイム性と迅速な対応が重要であることを私たちは深く理解しています。そのため、Eagleの設計当初から、1秒未満の時間枠内でアラームを生成できるよう、あらゆる努力を払ってきました。複数の要因が重なり、危険な操作が行われたと判断された場合、直ちに違法行為を阻止するための措置が講じられます。

スケーラビリティ: eBayでは、数百ペタバイトのデータと1日あたり8億回以上のデータアクセスを処理する複数の大規模HadoopクラスタにEagleがデプロイされています。そのため、膨大な量のリアルタイムデータを処理するために、Eagleには高いスケーラビリティが求められます。

使いやすさ:使いやすさはEagleのコアとなる設計原則の一つです。Eagleのサンドボックスを使えば、ユーザーはわずか数分で環境を構築し、実験を始めることができます。ユーザーエクスペリエンスを可能な限りシンプルにするために、多くの優れたサンプルを用意しており、ユーザーは数回クリックするだけで簡単に戦略を作成・追加できます。

ユーザープロファイル: Eagleは、機械学習アルゴリズムを用いてHadoopにおけるユーザーの行動習慣に基づいてユーザープロファイルを構築する組み込み機能を提供します。様々なデフォルトの機械学習アルゴリズムから選択でき、HDFSの様々な機能セットをモデル化できます。過去の行動モデルを通じて、Eagleは異常なユーザー行動をリアルタイムで検知し、アラートを生成します。

オープンソース: Eagleは常にオープンソース標準に準拠して開発され、ビッグデータ分野の多くのオープンソース製品を基盤として構築されています。そのため、コミュニティへの貢献として、Apacheライセンスの下でEagleをオープンソース化することにしました。コミュニティからのフィードバック、協力、そしてサポートを期待しています。

イーグルの概要

1. イーグルアーキテクチャ:データの収集と保存

Eagleは、あらゆるタイプのデータソースをEagleのポリシー実行エンジンに統合できる、非常にスケーラブルなプログラミングAPIを提供します。例えば、

◆Eagle HDFS Audit イベント監視モジュールでは、Namenode Log4j Appender または Logstash Agent から収集されたデータが Kafka 経由でリアルタイムに受信されます。

◆Eagle Hive 監視モジュールは、YARN API を介して実行中のジョブの Hive クエリ ログを収集し、高いスケーラビリティとフォールト トレランスを保証します。

2. リアルタイムデータ処理

ストリーム処理API :Eagleは、物理プラットフォームに依存しない高度に抽象的なストリーム処理APIを提供します。現在はApache Stormをデフォルトでサポートしていますが、FlinkやSamzaといった任意のストリーム処理エンジンへの拡張も可能です。

この抽象化レイヤーにより、開発者は特定のストリーム処理プラットフォームを物理的な実行レイヤーにバインドすることなく、監視データ処理ロジックを定義できます。データ変換、フィルタリング、外部データ結合といったコンポーネントを再利用、組み合わせ、アセンブルすることで、ニーズを満たすDAG(有向非巡回グラフ)を構築できます。同時に、開発者はビジネスロジックプロセスとEagle戦略エンジンフレームワークをプログラム的に容易に統合できます。

Eagle フレームワークは、ビジネス ロジックを記述する DAG を、Apache Storm Topology などの基盤となるストリーム処理アーキテクチャのネイティブ アプリケーションに内部的にコンパイルし、プラットフォームの独立性を実現します。

以下は、Eagle がイベントとアラートを処理する方法の例です。

  1. ストーム実行環境 env =
  2. ExecutionEnvironmentFactory.getStorm(config); // ストーム環境
  3. StreamProducer プロデューサー = env.newSource(new
  4. KafkaSourcedSpoutProvider().getSpout(config)).renameOutputFields(1)
  5. // Kafkaソースを宣言する
  6. .flatMap(new AuditLogTransformer()) // 変換イベント
  7. .groupBy(Arrays.asList(0)) //グループ  1番目フィールド
  8. .flatMap(new UserProfileAggregatorExecutor()); // 1時間ごとのデータを集計する ユーザー 
  9. .alertWithConsumer("userActivity","userProfileExecutor") // MLポリシー評価 env. execute (); //ストリーム処理を実行し  
  10. 警告

Eagle Alerting Framework は、ストリーミング メタデータ API、ポリシー エンジン サービス API、ポリシー パーティショナー API、およびアラート重複排除フレームワークで構成されています。

1.ストリーム メタデータ API:イベントを構成する属性、各属性のタイプ、ユーザーが戦略を構成するときに実行時に属性値が動的に解決される方法など、イベントのスキーマを宣言できるようにします。

2.戦略エンジンサービスは、開発者が戦略エンジンをプラグインとして簡単に拡張できるAPIを提供します。WSO2 Siddhi CEPエンジンは、Eagleがサポートするデフォルトの戦略エンジンとして推奨されており、機械学習アルゴリズムも別の戦略エンジンとして実行できます。

3.スケーラビリティ: Eagle の戦略エンジン サービスは、新しい戦略エンジンをプラグインできる API を提供します。

  1. パブリックインターフェース PolicyEvaluatorServiceProvider {パブリック文字列
  2. getPolicyType(); // 1つのタイプを識別するリテラル文字 
  3. ポリシーpublic Class<? extends PolicyEvaluator> getPolicyEvaluator();
  4. // ポリシー評価器の実装を取得するpublicリスト
  5. getBindingModules(); // JSON形式ポリシーテキストをオブジェクト変換
  6. マッピング }パブリックインターフェース PolicyEvaluator {パブリックvoid
  7. evaluate(ValuesArray input) throws Exception; // 入力イベントを評価する
  8. パブリックvoid onPolicyUpdate(AlertDefinitionAPIEntity newAlertDef); //
  9. ポリシー更新されたときに呼び出されますpublic void onPolicyDelete(); //
  10. ポリシー削除されたときに呼び出されます}

1.ストラテジーパーティショナーAPI:異なる物理ノード上でストラテジーを並列実行できます。また、カスタムストラテジーパーティショナークラスを定義することもできます。これらの機能により、ストラテジーとイベントを完全に分散的に実行できます。

2.スケーラビリティ: Eagle は、ポリシーをサポートするパーティショニング インターフェイスを通じて、多数のポリシーをスケーラブルな方法で同時に実行できるようにします。

  1. パブリックインターフェース PolicyPartitioner はSerializableを拡張します{ int  
  2. パーティション( int numTotalPartitions、 String policyType、 String policyId);
  3. // ポリシー配布するメソッド }

スケーラブルなEagleポリシー施行フレームワーク

3. 機械学習モジュール:

Eagle は、Hadoop プラットフォームにおけるユーザーの過去の使用習慣に基づいて、行動パターンまたはユーザー プロファイルを定義する機能をサポートしています。

この機能により、システムに固定の閾値を事前に設定することなく、異常な行動をインテリジェントに検出できます。Eagleでは、機械学習アルゴリズムを用いてユーザープロファイルを生成し、ユーザーの現在のリアルタイム行動パターンと対応する過去のモデルパターンとの間に一定の差異がある場合に、ユーザーの行動が異常かどうかを識別します。

現在、Eagle は異常検出用に、固有値分解と密度推定という 2 つの組み込みアルゴリズムを提供しています。

これらのアルゴリズムは、HDFS監査ログからデータを読み取り、データをセグメント化、分析、クロス分析し、各ユーザーのプロファイル行動モデルを定期的に作成します。モデルが生成されると、Eagleのリアルタイムストリーミング戦略エンジンは、疑わしい行動と過去の行動モデルと一致しない行動を区別し、ほぼリアルタイムで異常を特定できます。

次の図は、Eagle におけるオフライン トレーニング モデリングとユーザー プロファイルのオンライン リアルタイム モニタリングのデータ フローを簡単に示しています。

ユーザープロファイルのオフライントレーニングと異常検出アーキテクチャ

Eagleのユーザープロファイルに基づくオンラインリアルタイム異常検知は、Eagleの一般的なポリシーフレームワークに従って実装されています。ユーザープロファイルは、Eagleシステム内でポリシーとして定義されます。ユーザープロファイルのポリシーは、Eagleの統合ポリシー実行インターフェースを継承した機械学習評価器によって実行されます。ポリシー定義には、異常検知プロセスに必要な特徴ベクトルやその他の特徴が含まれています(オンライン検知はオフライン学習と整合しています)。

さらに、Eagleは自動トレーニングスケジューラを提供し、ファイルまたはUIで設定された期間と粒度に従って、Sparkベースのオフライントレーニングプログラムをスケジュールできます。これは、ユーザープロファイルと行動モデルを一括作成するために使用されます。デフォルトでは、トレーニングシステムはモデルを毎月更新し、モデルの粒度は1分です。

Eagle に組み込まれている機械学習アルゴリズムの基本的な考え方は次のとおりです。

カーネル密度推定アルゴリズム

このアルゴリズムの基本的な考え方は、検出されたトレーニング サンプル データに基づいて、各ユーザーに対応する確率密度分布関数を計算することです。

まず、訓練データセットの各特徴量の平均を標準化します。標準化により、すべてのデータセットが同一の尺度に変換されます。次に、確率変数の確率分布推定において、ガウス分布関数を用いて確率密度を計算します。各特徴量は互いに独立していると仮定すると、最終的なガウス確率密度は、個々の特徴量の確率密度を分解することで計算できます。

オンラインリアルタイム検知フェーズでは、まず各ユーザーのリアルタイム行動の確率を計算します。ユーザーが現在の行動を示す確率が一定の閾値を下回る場合、異常警告としてマークします。この閾値は、オフライントレーニングプログラムによって「マシューズ相関係数」と呼ばれる手法を用いて計算されます。

単一次元のユーザー行動ヒストグラム

固有値分解アルゴリズム

このアルゴリズムにおいて、ユーザープロファイルを生成する主な目的は、価値あるユーザー行動パターンを発見することだと考えています。これを実現するために、特徴量を順次組み合わせ、それらが互いにどのように影響し合うかを観察することが考えられます。

データセットが非常に大規模になる場合(よくあることですが)、正常なパターンの数が膨大であるため、特徴セット内の異常なパターンを見落としてしまう可能性が高くなります。さらに、正常な行動パターンは通常、非常に低次元の部分空間に存在するため、データセットの次元を削減することで、ユーザーの真の行動パターンをより深く理解できる可能性があります。

この手法は、トレーニングデータセットのノイズを低減するためにも使用できます。大量のユーザー特徴データの分散計算に基づき、このユースケースシナリオでは通常、95%の分散をベンチマークとして選択します。95%の分散を持つ主成分の数はk個です。したがって、最初のk個の主成分をユーザーの正常部分空間と見なし、残りの(nk)個の主成分を異常部分空間と見なします。

リアルタイム異常検知において、ユーザーの行動パターンが正常領域に近い場合、その行動は正常とみなされます。一方、ユーザーの行動パターンが異常領域に近い場合、ユーザーの行動は概ね正常領域内に収まると考えられるため、直ちにアラームがトリガーされます。ユーザーの現在の行動が正常領域に近いか異常領域に近いかを計算する方法としては、ユークリッド距離法を採用しています。

ユーザーの行動パターンの主要な要素を表示する

イーグルサービス

ポリシー マネージャー: Eagle ポリシー マネージャーは、インタラクティブでユーザーフレンドリーなインターフェイスと RESTful アーキテクチャを提供します。

APIを使用すると、ユーザーはマウスを数回クリックするだけで簡単にポリシーを定義および管理できます。Eagleのユーザーインターフェースは、ポリシー管理、機密メタデータの識別とインポート、HDFSまたはHiveリソースの閲覧、アラートダッシュボードの操作を非常に簡単にします。

Eagleのポリシーエンジンは、WSO2のSiddhi CEPエンジンと機械学習エンジンをデフォルトでサポートしています。以下は、Siddhi CEPに基づくポリシーの例です。

◆シングルイベント実行戦略(Hiveの機密データ列へのユーザーアクセス)

  1. hiveAccessLogStream[sensitivityType=='PHONE_NUMBER']から*を選択
  2. 入れる  outputStreamに出力します

◆ ウィンドウベースのポリシー(ユーザーが10分以内に/tmp/privateディレクトリに5回以上アクセスする)

  1. hdfsAuditLogEventStream[(ソース ==
  2. '/tmp/private')]#window.externalTime(タイムスタンプ,10)を選択 ユーザー
  3. count ( timestamp )aggValueグループとして による ユーザー  aggValue >= 5 の挿入 
  4. outputStreamに出力します

クエリサービス:

Eagleは、大規模なデータセットの包括的な計算、クエリ、分析を可能にするSQLライクなREST APIを提供し、フィルタリング、集計、ヒストグラム演算、ソート、TOP演算、算術式、ページネーションなどの機能をサポートしています。EagleはHBaseをデフォルトのデータストアとして優先していますが、JDBCベースのリレーショナルデータベースもサポートしています。

特に、ストレージとしてHBaseを選択した場合、EagleはHBaseを使用して大量の監視データを保存およびクエリする機能をネイティブに備えます。Eagleクエリフレームワークは、ユーザーが提供するSQLライクなクエリ構文をネイティブのHBaseフィルターオブジェクトにコンパイルし、HBaseコプロセッサを通じて応答速度をさらに向上させます。

クエリ=アラート定義サービス[@dataSource=”hiveQueryLog”]{@policyDef}&pageSize=100000

フォローアップ計画

過去 2 年間、Eagle コア フレームワークは、データ動作の監視に使用されるだけでなく、ノードの健全性、Hadoop アプリケーションのパフォーマンス メトリック、Hadoop コア サービス、および Hadoop クラスター全体の健全性を監視するために eBay で広く使用されてきました。

また、ノード修復などの一連の自動化メカニズムも確立しており、これによりプラットフォーム部門の手作業が大幅に削減され、クラスター リソース全体の利用率が効果的に向上しました。

現在開発中の機能の一部をご紹介します。

◆ HiveとHBaseの機械学習モデルのサポートを拡張

◆Ganglia や Nagios など、業界で広く使用されている他の監視およびアラート プラットフォームやツールと簡単に統合できる、拡張性の高い API を提供するとともに、Dataguise などの機密データのインポートもサポートします。

統合等

◆さらに、私たちは、将来のリリースでコミュニティにオープンソースとして公開することを目指して、他の Hadoop クラスター監視モジュールを積極的にコンパイルしています。

◆HBaseモニタリング

◆Hadoopジョブパフォーマンス監視

◆Hadoopノード監視

ありがたい

この記事の執筆にご協力いただいた Apache Eagle コミュニティおよび eBay の以下の共著者の方々に感謝いたします。

Yong Zhang、Apache Eagle コミッター兼チーフアーキテクト、eBay Sr. MTS シニアアーキテクト

Sun Libin、Apache Eagle コミッター兼 PMC、eBay ソフトウェア エンジニア

Jiang Jilin、Apache Eagle コミッター兼 PMC、eBay ソフトウェア エンジニア

Zhao Qingwen、Apache Eagle コミッター兼 PMC、eBay ソフトウェア エンジニア

eBayのアナリティクスデータインフラストラクチャ部門は、eBayのグローバルデータおよびアナリティクスインフラストラクチャ部門です。データベース、データウェアハウス、Hadoop、ビジネスインテリジェンス、機械学習など、eBayの様々なデータプラットフォームの開発と管理を担っています。eBayのグローバル部門がハイエンドのデータ分析ソリューションを用いてタイムリーかつ効果的な運用上の意思決定を行えるよう支援し、世界中のビジネスユーザーにデータ分析ソリューションを提供しています。

参考文献

Apache Eagle ドキュメント:

  1. http://goeagle.io

Apache Eagle ソースコード:

  1. http://github.com/ebay/eagle

Apache Eagle プロジェクト:

  1. http://incubator.apache.org/projects/eagle.html

共に幸せに成長する方法

「効率的な運用と保守」WeChat公式アカウント(下記QRコード)はフォローする価値があります。中国を代表する運用保守の垂直コミュニティであるWeChatグループ「効率的な運用と保守」シリーズの唯一の公式アカウントとして、毎週、シリーズグループの議論のエッセンス、運用保守フォーラムからの素晴らしい情報共有、グループメンバーによるオリジナル記事など、貴重な情報満載のオリジナル記事を多数公開しています。「効率的な運用と保守」は、インターネットコラム「効率的な運用と保守のベストプラクティス」と「運用保守2.0」の公式WeChatアカウントでもあります。

重要:事前に許可がない限り、この記事を転載する前に、この公式アカウントで公開されてから2日間お待ちください。知的財産権の尊重は最優先事項です。この行と下記のQRコードを含む記事全体を転載してください。

[編集者のおすすめ]

  1. 台湾海峡両岸のオープンソースコミュニティの概観
  2. オープンソース プロジェクトとコミュニティの創始者であり、Debian の作者である彼が、42 歳という若さで謎の状況下で亡くなりました。
  3. 2016年に成功する可能性が高いオープンソースソフトウェアプロジェクト10選
  4. 【レビュー】2015年国内人気オープンソースソフトウェア トップ50
  5. 2015 年に GitHub のトップ 10 に入ったオープンソース プロジェクトはどれですか?