1。はじめに紹介
Watchadは、すべてのドメインコントロールでイベントログとKerberosトラフィックを収集し、機能マッチング、Kerberosプロトコル分析、歴史的行動、デリケートな操作、ハニーポットアカウントを通じて、さまざまな既知および未知の脅威を検出します。その関数は、現在の一般的な内神経ドメイン浸透技術のほとんどをカバーしています。このプロジェクトは360で半年以上にわたってオンラインで開始され、多くの脅威活動が見つかり、良い結果を達成しました。次に、オープンソースシステムのイベントログに基づいて検出部分を決定します。
現在サポートされている特定の検出機能は次のとおりです。
情報の検出:SAMRを使用して機密のユーザーグループを照会し、SAMRを使用して機密ユーザー、Honeypotアカウントアクティビティ、PSLOGGEDON情報コレクションをクエリします
資格情報:Kerberosting(トラフィック)、AS-REPロースト、リモートダンプドメインコントロールパスワード
水平ムーブメント:アカウントブラスト、明示的な資格情報のリモートログイン、ターゲットドメインコントロールのリモートコード実行、不明なファイル共有名、Kerberosチケット暗号化のダウングレード(トラフィック)、異常なKerberosチケットリクエスト(トラフィック)
許可の強化:ACL修正、MS17-010攻撃検出、新しいグループポリシーモニタリング、NTLMリレー検出、リソースベースの制約委任許可許可補助金の検出、攻撃プリンターサービススプールサンプル、不明な許可拡張、MS14-068攻撃検出(トラフィック)、Kerberosは委任乱用(トラフィック)を制約しました
許可のメンテナンス:Adminsdholderオブジェクトの変更、DCSHADOW攻撃検出、DSRMパスワードリセット、グループポリシー委任許可許可検出、Kerberos制約委任許可委任許可補助金の検出、デリケートユーザーグループの修正、ドメイン制御新しいシステムサービス、ドメイン制御新しい計画タスク、Sidhistore属性の修正、Master Quatsive Qutsection、Master-Quative-cuspassection、Master contive astedificat
防衛バイパス:イベントログクリア、イベントログサービスがシャットダウンされます
プロジェクトアーキテクチャ図:
2。サーバー側のwaitachad
を展開します今回は、CENTOS7展開サーバーサイドのWatchADが準備され、CENTOS7展開フロントエンドのWatchad-WEBが準備されました。
1.CentOS7システムを更新します(Yumソースが追加された前提条件、中国でAlibaba Cloud Sourceを使用することをお勧めします)
[root@guest yum.repos.d]#yum -yアップデート
2。ネットツールネットワークツールをインストールします
[root@guest yum.repos.d]#yumインストールネットツール
3. gitコマンドツールをインストールします
[root@guest opt]#yumインストールgit -y
4.GithubからWaitachadサーバー側のソースコードをダウンロードします
[root@guest opt]#git clone 3https://github.com/0kee-team/watchad.git
5。Watchadディレクトリを入力します
[root@guest opt]#cd watchad/
6.このプロジェクトではPython3環境を実行する必要があるため、Python3とPIP3をインストールする必要があります
[root@guest watchad]#yum install -y python36 #install python3.6
[root@guest watchad]
[root@guest watchad]
[root@guest watchad]#yum install -y python36 -pip #install pip3
8。プロジェクトに必要なPythonパッケージをインストールします
[root@guest watchad]
9。 Dockerをインストールします
[root@guest watchad]#yum -y docker #use yumをインストールする
Systemctl start docker.service #start dokcer
SystemCtlは、docker.service #setを起動して起動することを有効にします
10。Docker-Composeをインストールします
[root@guest watchad]
[root@guest watchad]#chmod +x/usr/local/bin/docker-compose#実行可能な権限を追加します
[root@guest watchad] #docker-compose-versio#docker-composeバージョンを表示します
11。ローカルスタンドアロンのセキュリティウォッチドテスト環境
Watchadには、多くのデータストレージ依存関係が必要です。ここでは、プロジェクトで構成されているDocker One-Click Startup Scriptを使用することをお勧めします。 (テスト環境はDokcerを使用してインストールでき、正式な環境では各サービスを個別にインストールする必要があります)
[root@guest watchad] #docker-compose up
#RabbitMQ、Logstash、Elasticsearch、Redis、およびMongoサービスがローカルで開始されます。テスト環境でのDokcer-ComseのDocker-Compose.yaml構成ファイルに関係するデフォルトのユーザー名とパスワードを変更することをお勧めします。
#Production Environment Deployment:WatchadはRabbitMQ、Logstash、Elasticsearch、Redis、Mongoに依存しています。既存のストレージサービスとMQを使用する場合は、{project_home}/settings/database_config.py構成情報を直接変更してください。データパイプラインログスタッシュの構成については、{project_home}/settings/logstash/logstash.confを参照してください。実際の構成は、アーキテクチャ環境に従って変更する必要があります。
知らせ:
1.上記の操作を実行するときは、最初にコマンドウィンドウを開き、Docker-Composeを実行し、基本的なデータベース環境を実行し、入力ログを観察する必要があります。後のサービスが安定している場合は、Docker -Compose Up -Dバックグラウンド操作を実行できます。
2。Dockerから始まった環境は、一時的なテストにのみ使用でき、スタンドアロンのマシンは大量のデータを耐えられない場合があります。オンラインで展開する必要がある場合は、構成{project_home}/settings/database_config.pyを変更して、各サービスアドレスを実際のイントラネットサービスアドレスに置き換えてください。
3。カスタマーサービスサイドウォッチドAgnetを展開します
1.カスタマーサービス側でのポリシー監査を有効にする(ドメインコントローラーで構成)
分析ベースはすべてのドメインコントロールのすべてのイベントログです。まず、ドメインコントロールでセキュリティ監査オプションを開き、ドメインコントロールがすべてのタイプのイベントログを記録できるようにする必要があります。ここでは、Windows Server 2008を例にとって、ローカルセキュリティのセキュリティ設定- ローカルポリシー監査ポリシーで、すべての監査オプションを開きます。
2. Agnet winlogbeatをインストールします
まず、構成ファイルを開きます{project_home}/settings/winlogbeat/winlogbeat.ymlを開き、output.logstashのホストフィールド値をLogstash IPとポートに変更します(デフォルト5044)
[root@guest winlogbeat]#vi /opt/watchad/settings/winlogbeat/winlogbeat.yml
winlogbeat.event_logs:
-name:セキュリティ
Ingrore_older: 1h
output.logstash:
hosts: ['ローカルIPアドレス:5044']
3。winlogbeat(ドメインコントロールホストにインストール)をインストールして構成する
winlogbeatの対応するバージョンをダウンロードします。推奨バージョンは6.2です。他のバージョンのフィールドが変更される可能性があり、非互換性の可能性があります。 Watchadにはバージョンが必要です6.2ダウンロードアドレス:https://Artifacts.Elastic.co/DownLoads/beats/winlogbeat/winlogbeat-6.2.0-windows-x86_64.zip、
減圧後、Configurationファイルを使用して変更したばかりのwinlogbeat.ymlを使用して、元のデフォルト構成ファイルwinlogbeat.ymlを置き換えます。
次に、公式ウェブサイトのチュートリアルに従って、正常にインストールして(https://www.lastic.co/en/beats/winlogbeat/current/winlogbeat-installation.html)。
(1)。ダウンロードしたWinLogBeat 6.2圧縮パッケージをC: \プログラムファイルに解凍します
(2)。 winlogbeat-versionディレクトリの名前をWinlogbeatに変更します
(3)。インストールディレクトリの下にあるwinlogbeatディレクトリでwinlogbeat.ymlファイルを開き、すべてのコンテンツを削除してから、テストサーバーの監視プロジェクトに基づくwinlogbat.ymlファイルをコピーしてファイルディレクトリを上書きします。
(4)。 PowerShellプロンプトを管理者として開きます(PowerShellアイコンを右クリックし、「管理者として実行」を選択します)
(5)。 PowerShellプロンプトで、次のコマンドを実行してサービスをインストールします
PS C: \ Users \ Administrator CD 'C: \ Program Files \ winlogbeat'
PS C: \ Program Files \ winlogbeat。\ install-service-winlogbeat.ps1
(6)。スクリプトの実行がシステム上で無効になっている場合、スクリプトの実行を許可するために、現在のセッションの実行ポリシーを設定する必要があります。例えば:
set-executionpolicyのリモートセグイン
:イベントログはさまざまなドメインコントロール間で同期されないため、すべてのドメインコントロールのすべてのイベントログを収集する必要があることに注意してください。
iv。 Watchadエンジンの初期化
1.wachchad helpコマンド:
usage: watchad.pyオプション[設定]
options:
-H、 - ヘルプショーヘルプ情報
- インストールWatchAD初期化のインストールを実行します。インストール前に環境が完全にインストールされ、完全に構成されていることを確認してください。
-dドメイン、-domain=domain
fqdnドメインdetection.adサーバードメイン名
-sサーバー、-ldap-server=server
LDAP検索のサーバーアドレス。例えば、dc01.corp.com、サーバーアドレス、ドメイン名が解決された場合、ドメイン名を使用できる場合、実際には広告ホスト名のフルネームです
-u username、-domain-user=username
LDAP検索のユーザー名。 E.G: Corp \ Peter、ADに接続されているアカウント、フォーマット:ドメイン名\\アカウントまたはドメイン名\アカウント
-pパスワード、-domain-passwd=パスワード
LDAP Search.Adminパスワードのパスワード
- 各データベースの接続ステータスとメッセージキューステータスを確認する
- 開始検出エンジンを開始します
- Restart Restart Detection Engine
- エンジンを停止します(データの過負荷を防ぐために既存のメッセージキューを削除します)
-status現在のエンジンステータスを確認します
2。初期化のインストールを実行します
python3 watchad.py - install -d bks.com -s dc.bks.com -u bks \ administrator -p *********
Watchadは正常に正常にインストールされ、次の要件を満たす必要があります。
(1)。すべてのストレージ関連の依存関係は、正しくインストールされ、構成されています
(2)。インストール中に指定されたLDAPサーバーにアクセスできます
(3)。Supervisorは正しくインストールできます
(4)。 Python3.6を正しくインストールすると、/usr/bin/python3ソフト接続が存在します
3。Watchadを開始します
python3 watchad.py-スタート
完了後、Pythonプロセスはスーパーバイザーを使用してホストされます。 Watchadコマンドラインは、単にスーパーバイザーコマンドをカプセル化するだけです。エンジンのスタートアップシャットダウンは、基本的にスーパーバイザータスクのスタートアップシャットダウンです。
5。Web監視サービスWatchad-Web
を展開します1。Watchad-Webソースコードをダウンロードします
[root@guest opt]#git clone 3https://github.com/0kee-team/watchad-web.git
2。構成を変更します
接続されたデータベースの構成の変更:Watchad-Web/server/config/database_config.pyファイルのデータベース構成を変更します。
フロントエンドページの構成を変更します。このファイルの変更127.0.0.1、Watchad-Web/frontend/.env.production and watchad-web/frontend/.env.development、Watchad-Webが配置されているサーバーのIPに。私のWatchadとWatchad-Webは同じサーバー上に構築されているため、IPは同じです。
3。コンパイル
Watchad-Webディレクトリのダウンロードに移動して実行:Docker-Compose Buildを実行します。前のステップの構成が変更されている場合、またはコードが変更された場合、このコマンドを再実行する必要があります。 Docker-Compose Upの次のステップが有効になります。
4.インストールを実行します
コマンドを実行します。
docker -compose up -d
起動後、Watchad-Webのフロントエンドページにアクセスできます。
vi。カスタム変更
1。プロジェクト構造説明ウォッチドルートディレクトリ
├─参照されたいくつかの外部ライブラリをlibします
cong-カプセル化されたデータオブジェクトをモデルします
modulesメインモジュールディレクトリ
Alarmアラーム処理のためのアラート関連コード
│││马云惹不起马云レス脅威検出コードを検出します
イベントログに基づいて、Event_log検出コード
││││││。分類された検出コード
recordは、警告なしにドメイン内のエンティティのさまざまなアクティビティを記録するために使用されます
Kerberosトラフィックに基づく└─TRAFFIC_KERBEROS検出コード(今回はオープンソースではなく、削除されました)
│└│马云惹不起马云马云惹不起马云RECORD_HANDLE分析中に使用されるその他の情報操作ファイル
Installation、タイミングタスクなどのスクリプトを記載してください。
├├)さまざまな構成ファイル、構成情報を取得するための操作ファイル
├ツール