SIEMを使用した倫理的ハッカーのトレーニング:ハンズオンラボの開設

大学やトレーニングセンターで倫理的なハッカーをどのようにトレーニングしますか?原則として、KaliLinuxまたはScanner-VSを提供しますこれには、一連のセキュリティテストツールと多くの脆弱性を持つマシンが含まれています。その結果、実際のプロジェクトでは、ペンテスターは情報セキュリティツールや情報セキュリティイベント監視システム(SIEM)を含むインフラストラクチャを扱うため、リスナーは侵入テストが実際にどのように行われるかを大まかに理解できます。状況を改善し、複合施設内の情報セキュリティイベントを監視するためのセキュリティテスト方法とツールを研究する機会を初心者に提供するために、この記事から実際の実験室作業の公開を開始します。







私たちの入門ラボは、Webサーバーの管理パネルへのアクセスの取得に関連するインシデントの特定に焦点を当てています。



場合



ISAの休暇中に、TomcatWebサーバーでホストされるように計画されたWebアプリケーションを作成するためにサードパーティの開発者が雇われました。便宜上、開発者はサーバーアプリケーションを管理するためのWebコンソールを外部全体で利用できるようにし、「重要な」admin:adminアカウントを作成しました。



脅威



攻撃者は、組織の外部ホストをスキャンしているときに、問題のWebサーバーのポート8080に遭遇し、管理コンソールが使用可能であることを確認し、数回の試行の後、管理者アカウントのパスワードを正常に侵害します。



仕事



問題の脅威に関連するインシデントをタイムリーに登録するために、情報セキュリティ管理者が休暇前にSIEMを設定する方法を決定する必要があります。その後、この攻撃シナリオを実装し、相関ディレクティブが正しく機能することを確認する必要があります。



仮想インフラストラクチャ



この状況は、VirtualBoxにデプロイされた次のITインフラストラクチャで発生しています。







  1. 攻撃者のマシン(Kali Linux、IP:8.8.8.10、4GB RAM、kali:kali);
  2. 侵入検知システムを備えたファイアウォール(pfSense、外部IP:8.8.8.1、内部ネットワークIP:192.168.1.1、DMZ IP:192.168.2.1、1GB RAM、管理者:pfsense);
  3. Webサーバー(Tomcatを備えたUbuntu Server 18.04、IP 192.168.2.15、2GB RAM、ユーザー:ユーザー);
  4. サーバーSIEMシステム「KOMRAD」(Ubuntu 20.04、IP 192.168.1.99、4GB RAM、ユーザー:ユーザー)。


このインフラストラクチャを自分で展開することに興味がある場合は、手順を使用できますが、時間を節約したい場合は、構成済みの仮想マシンをOVA形式で投稿しましたSIEMシステムを追加で取得する必要がありますが、これについては以下で説明します。



解決策:SIEMシステムのセットアップ



この問題を解決するために、攻撃者のアクションを順番に実行し、それらがファイアウォールとWebサーバーのログにどのように反映されるかを分析し、イベントの収集、解析、およびフィルタリングを構成し、SIEMシステムで必要な相関ディレクティブを作成します。ガイド私たちの研究室では、この問題を解決するための詳細な手順を提供し、記事では、我々は唯一の重要なポイントに集中します。





1.ファイアウォールからイベントを送信する



pfSenseファイアウォールを使用すると、Syslogプロトコルを介してリモートサーバーにログを送信できます。このためには、syslogコレクターSIEM "KOMRAD"のIPアドレスとポートを設定し、192.168.2.0 / 24ネットワークから192.168内部ネットワークにログを送信することを許可するルールを追加する必要があります。 .1.0 / 24。







SIEMシステムは、次のタイプのイベントを受信します。



<134> 1 2020-10-18T02:33:40.684089 + 00:00 pfSense.localdomain filterlog 9761 --- 4 ,,, 1000000103、em0、match、block、in、4 0x0の,, 64,25904,0、DF、6、TCP、60、8.8.8.108.8.8.1、35818,1721,0、S、1017288379 ,, 64240 ,, MSS; sackOK; TS; NOP; wscale



ご覧のとおり、このエントリには、接続を開始したホストのIPアドレス、接続が試行されているホストのIPアドレス、接続の試行がブロックされたことの表示などの重要な情報が含まれています。



2.Webサーバーからイベントを送信する



Tomcat Webサーバーは、rsyslogを介してSIEMシステムにリダイレクトできるローカルログにhttp要求を記録します。この問題を解決するには、SIEMシステム「KOMRAD」の一部であるファイルコレクターを使用することもできます。レコードには、リクエストを受信したホストのIPアドレスと、承認が成功した場合のユーザーアカウントが登録されていることがわかります。







3.SIEMシステム「KOMRAD」による一連のイベントの受信



考慮されるイベントは、SIEMシステム「KOMRAD」によって自動的に登録されます







。前述の2種類のイベントは、次の状況を検出するのに十分です。



  • 接続ブロッキング-ブロックに基づく;
  • ポートスキャン-同じホストによって開始された接続試行が複数回ブロックされた場合。
  • 不正アクセスの疑い-ポートスキャンとその後の管理アクセスの取得。


3つの状況はすべて情報セキュリティインシデントである可能性がありますが、もちろん重大度のレベルは異なります。



インシデントを登録する前に、イベントから上記の有用な情報を抽出する方法を学ぶ必要があります。



4. SIEMシステム「KOMRAD」によるイベントの分析(解析)



SIEMシステムでソースイベントを解析するには、一連の正規式を含むプラグインを作成する必要があります。最も人気のあるソースについては、COMRADにはすでに既製のプラグインがあります。プラグインがない場合、ユーザーはプラグインを作成できます。



以下は、上記のファイアウォールイベントからフィールドを抽出するための正規式を設計する例です。デバッグツールとして、ポータルhttps://regex101.com/を使用し







ました。プラグインを作成した後、次のイベントカードからわかるように、イベントからのデータが個別のフィールドに抽出されます。







5.ストリームから対象の情報セキュリティイベントを抽出するためのフィルタの構成



SIEMシステムに入るイベントのストリームで関心のあるイベントを識別するために、フィルターを設定する必要があります。SIEMシステムでは、「KOMRAD」フィルターは、人気のあるスクリプト言語Luaを使用して形成されます(情報セキュリティの専門家は、NmapとSuricataからすでにそれをよく知っています)。



接続のブロックに関連するファイアウォールイベントを選択するために、次のフィルターを作成します。



--  filter  
function filter(event)
--    ,     IP- ,  
    action = event:getString ('Action')
    ip = event:getString ('IpSrc')
--     IP-,      
    if action == 'block' then
        return {IP=ip}
    end
end


Tomcatイベントのフィルターはもう少し複雑に見えます。ここでは、イベントから取得したアカウントが値「admin」と一致するかどうかを確認します。この場合、IPアドレスも返します。



function filter(event)
    journal = event:getString ('Journal')
    login = event:getString ('Username')
    ip = event:getString ('IpSrc')
    
    if journal == 'tomcat-access' and login == 'admin' then
        return {IP=ip}
    end
end


実稼働環境で使用する場合、システムパフォーマンスを向上させるために、各フィルターの開始時に特定のコレクターIDをチェックして、フィルターの範囲を制限する必要がある場合があります。



6.相関ディレクティブの作成



次の重大度レベルで、考慮される状況の相関ディレクティブを作成しましょう。



  1. 接続のブロック-「重要ではない」;
  2. ポートスキャン-低;
  3. 管理者アカウントを使用したhttpリクエストの送信は「高」です。


接続がブロックされている場合にインシデントを作成するには、相関ディレクティブで適用されている唯一のフィルターを示すだけで十分です。



filter 5


同じホストによって開始された接続が3回ブロックされた場合にインシデントを作成する、2番目のディレクティブは次のようになります。



/*  ip,   ,        .*/
var ip
filter 5 export ip = ep.IP
/*         IP.
    notforking,       .*/
filter 5 +1m where ep.IP==ip notforking
//   .
filter 5 +1m where ep.IP==ip notforking


3番目のディレクティブでは、管理者アカウントを持つWebサーバーへの要求を選択するために作成されたID6のフィルターを使用する別の行を追加します。




var ip
filter 5 export ip = ep.IP
filter 5 +1m where ep.IP==ip notforking
filter 5 +1m where ep.IP==ip notforking
filter 6 +1m where ep.IP==ip notforking


チュートリアルの例では、時間枠は1分のままでしたが、実際には、数分に増やすのが理にかなっています。



解決策:攻撃を実行して特定する



イベントソースとSIEMシステムを構成したら、模擬攻撃を実行します。まず、ポートをスキャンしましょう。







次に、ポート8080に移動し、admin:adminアカウントで認証を







実行します。これらのアクションはSIEMシステム「KOMRAD」によって記録されます。3つの相関ディレクティブすべてがトリガーされます。







結論



したがって、この実験室での作業では、Webサーバーへの管理アクセスを取得した場合に、情報セキュリティイベントを収集および分析するための一連のアクションを確認しました。次のラボでは、攻撃者は攻撃を開発し、取得した管理アクセスを使用して、ターゲットインフラストラクチャに関する情報を収集します。



SIEMシステム「KOMRAD」のデモ版の入手方法



現在、製品のベータテストを行っており、誰でも参加できます。これを行うために、現在のバージョンのSIEMシステムをDockerコンテナの形式で提供します。デモバージョンには2つの制限しかありません。イベント処理速度が1000EPSに削減され、承認およびアクセス制御システムがありません。



デモバージョンのアーカイブを受け取るには、組織のメールボックスからメールアドレスgetkomrad@npo-echelon.ruまでご連絡ください(誰が参加するかを確認します)。また、Telegramグループにご招待します。問題が発生した場合は、https//t.me/komrad4でサポートを受けられます。



リンク



  1. VirtualBoxでトレーニングインフラストラクチャを整理するための仮想マシン:https//yadi.sk/d/GQ4BFn_soDJj0A
  2. , : https://yadi.sk/i/tD8nxckjYwr_6Q
  3. №1: https://yadi.sk/i/ffztj2XQMPD-xw



All Articles