Crowdsecによるマシンの保護 – パートI

注意してください、これは… ごめんなさい, でも、それは本当です… まだ知らない人のために, 一連の投稿では、Crowdsecの素晴らしさと、攻撃や不正アクセスからインフラストラクチャを保護する方法を紹介するつもりです.

そのように製品を説明する前に, そのアーキテクチャの… Crowdsecを発見するまで、私は幸せなfail2banユーザーだったと考え始めましょう. Crowdsec が, は IDS と IPS です, マシンへのアクセスを検出してブロックします, LAN上のマシンなら気にしない, インターネット上で公開されているサービスよりも, Linuxであること, ウィンドウまたはコンテナ. DDoS攻撃を検出した場合のCrowdsec, ポートスキャン, 脆弱性スキャン, または単にアクセスが正しくない (ウェブサイトの場合は、そのウェブサイトへ, Windowsの場合はそのRDPに, SSH接続, CIFSの…). Crowdsecは、その不適切なアクセスを検出し、アクションを実行します, 最も普通のこと, 彼を追放する, どう? まあ、とりわけ、OS自体のファイアウォールから (ウィンドウズ, リナックス…). そのため、CrowdsecはOSのFWにルールを作成して、そのソースIPをブロックします. さらに, 明らかに, Crowdsecは、アプリのログも読み取ります, サービス… そして私が見るものに基づいて, 行為, 攻撃者に注意する.

まぁ, それさえあればいいのですが, 私はあなたにそれがだったとは言わなかった, それでもなお, それでもなお… Crowdsecはフリーソフトウェアです, あなたが望むなら、これは商業的な部分を持っており、私たちはこの一連の投稿で見ることはありません, ですから、このシリーズで見るものはすべてオープンです. トータル, Crowdsecが動作を検出する, レピュテーションベースの脅威管理, しかし、パブリックIPアドレスのブラックリストもあります, Crowdsecを使用する私たち全員によって共有され、育まれます; したがって、脅威を検出する人が大多数いる場合, 私たちは皆、警告され、警告されます!

待って、まだ終わってない, Crowdsecは、Windowsで述べたようにインストールできることがわかりました, macOSの, リナックス, Kubernetes の, 港湾労働者, オープンWRT… まあ、Crowdsec APIのおかげです, また、当社のマシンは、IPのブラックリストを相互に共有することもできるようになります. それです, 誰かが私に機械を攻撃した場合、, 残りの部分は、試す前にアクセスをブロックします, 物珍しい… まぁ, Crowdsecは実際に検出し、「バウンサー」’ 行為 (それでは、それに取り掛かりましょう).

まだまだやるべきことはたくさんあります, 少しずつ見ていきます, 電報による通知ともしも, お持ちのWebコンソール, Prometheusと統合する, グラファナ… だがしかし, 私の意見では、最も興味深いことを知りたいですか?? たぶん、あなたはそれがたわごとだと思うでしょう, 私にとっては爆弾です. 注意深い!!! それは, それは、社内に企業のファイアウォールがある場合です, 実際の境界, たとえば、Fortigateです, pfSenseの… これらのファイアウォールをこれらのブラックリストにもフィードさせることができます! おや! そして、ファイアウォールにルールがあります (すべての上に) 他のマシンへの当該ブラックIPへのアクセスを拒否するもの, ネットワーク セグメント… おやまあ!

軽量です, 調節, セットアップが簡単… まぁ, たくさん😉話すから始めましょう

この最初の投稿では、次のことを学びます: LinuxにCrowdsecをインストールする方法, 基本コマンド, WindowsにCrowdsecをインストールする方法, コンソールの使用, テスト攻撃を行い、最後にTelegramでアラートを管理する方法を説明します. ほとんど何もない.

他の投稿では、マルチサーバーインストールを行う方法を見ていきます, これは, 当社のマシンが情報を共有すること, または、Fortigateファイアウォールと統合します…

その公式ドキュメントを推奨するまでもありません: https://docs.crowdsec.net

LinuxにCrowdsecをインストールする

インストールは非常に簡単です, Ubuntuで実行されるNginxを保護したい例から始めましょう, 私たちは一緒にインストールします:

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash sudo apt install crowdsec -y
   ...
   情報[11/12/2022:04:24:15 午後] crowdsec_wizard: Installing collection 'crowdsecurity/linux'
   INFO[11/12/2022:04:24:21 午後] crowdsec_wizard: Installing collection 'crowdsecurity/nginx'
   INFO[11/12/2022:04:24:24 午後] crowdsec_wizard: Installing collection 'crowdsecurity/sshd'
   ...

ご覧のとおり, Linux 用の Crowdsec エージェントをインストールする場合, SSHdおよびNginxサービスがあることを検出します, したがって、自動的に、他に何もする必要はありません, すでに異常を検出しています.

次は, 送信元IPアドレスを禁止するアクションが必要な場合, OSにファイアウォールをインストールして構築する必要があるため, 通常、誰もがそれを持ってくること, 私たちはiptablesを使用していることを理解しています, また、NFTablesもサポートします, Ipset または P, OSによって異なります. そして、対応するバウンサーをインストールします:

sudo apt install crowdsec-firewall-bouncer-iptables -y

まあ、原則として今は準備ができているでしょう, マシン保護! 🙂 今すぐ入手! 次に、Windowsで同じプロセスを実行しましょう, 類似点を確認する, そして、おそらく最も興味深いコマンドをより詳細に追います, APIについて説明します… 確かに、他の詳細もあります, 私たちが見るでしょう.

WindowsにCrowdsecをインストールする

私が言ったこと, 私たちも同じことをします, WindowsマシンにCrowdsecをインストールする, それを保護することを目的として. また、誰かがRDPでアクセスしようとして間違ったパスワードを入力した場合 (デフォルト 5 倍) まあ、彼を禁止してください, またはCIFSで, またはあなたが望むものは何でも, スキャン😉する

最初です, .NET ランタイム要件をダウンロードしてインストールします: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer (またはそれ以上のバージョン, これをいつ読むかによります).

そして、私たちは進むことができます, MSIインストーラーをからダウンロードしました https://github.com/crowdsecurity/crowdsec/releases/

“次”,

“そうだよ”,

“はい”,

インストールされるまで数秒待ちます…

そして仕上げ! すでにCrowdsecがインストールされています!

しかし、注意してください、私たちはまだ終わっていません, 同様に、Crowdsecは検出しますが、アクションを実行することはできません, このためには、Windowsファイアウォールのバウンサーが必要になります. だから, ダウンロードしてインストールします: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases

“取り付ける”,

そして今、それは. 保護されたWindows PC!

テスト攻撃の実行

最初です, これが機能することを検証してみませんか? これが、いくつかの最初のコマンドを見る方法です. 何もない, とてもシンプル, 不敵, テスト方法?

まあ、Windowsコンピュータ自体があなたを検証しようとします 5 RDP による資格情報が正しくない回数 (リモートデスクトップ), または、CIFSと共有フォルダを使用します… 必要に応じて、それを複雑にしてポートスキャンを行います, または脆弱性… Windowsマシンがどのようにあなたをブロックしているかがわかります.

ネイティブファイアウォールにルールを作成しますが、例外として、悪意のあるIPからのアクセスを拒否します.

そして、Linuxチーム, たとえば、前のケースのようにNginxを搭載している場合, さて、WebサーバースキャナーであるNiktoをダウンロードできます, そして、それを検出するかどうかを確認します:

git clone https://github.com/sullo/nikto cd nikto/program git checkout nikto-2.5.0 ./nikto.pl -h https://XXX.XXX.XXX.XXX

この後も同じことが, Linuxマシンは、ファイアウォールの例外を除いて、すぐにアクセスを拒否します.

基本コマンド

言い訳として、ドキュメントの次のポイントに移ります, 私たちが知りたいと思うかもしれない最小限のコマンド (詳細は後ほどお知らせします):

禁止またはブロックのリストを表示する:

sudo cscli決定リスト

そして、これは禁止されていないことを私たちに返すでしょう, テストを行わなかった場合.

または、ブロックを検出し、そのIPを表示している, あなたの理由, ブロッキング時間…

IPを手動で禁止する:

sudo cscli decisions add --ip DIRECCIÓN_IP --reason "形容"

デバン, またはIPアドレスのブロックを解除します:

Sudo cscli decisions delete --IP DIRECCIÓN_IP

Con 'sudo cscliアラートリスト’ 鳴ったアラートが表示されます, con 'sudo cscli alerts inspect ID’ 各アラートの詳細をお知らせします.

con 'sudo /usr/share/crowdsec/wizard.sh -c’ Crowdsecで監視するサービスを有効/無効にすることができます.

このファイルでは、 '/etc/crowdsec/parsers/s02-enrich/whitelists.yaml’ マシンを除外してホワイトリストに登録する可能性があります, デフォルトでは、 3 除外された範囲と、テスト攻撃によって検出されなかったかどうか, たぶん、あなたはこの辺りで撃😉つでしょう

名前: CrowdSecurity/ホワイトリストの説明: "プライベートIPv4アドレスからのイベントのホワイトリスト登録"
ホワイトリスト:
  理由: "プライベートIPv4/IPv6 IP/範囲"
  IPアドレス:
    - "127.0.0.1"
    - "::1"
  シドル:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # 表現:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

電報通知

さて、この最後の日と別の日、私たちは続けます, 見たり伝え🙂たりすることがたくさんあることデフォルトでは、Telegramを台無しにすることなく、Slackに通知を送信できます, Splunkの, 電子メール…

プロファイルファイル '/etc/crowdsec/profiles.yaml を編集します。’ そして、これらについてコメントを外す 2 台詞:

通知:
  - http_default

'/etc/crowdsec/notifications/http.yaml にあるように編集します’ そんなものをお泊り, TelegramグループとトークンのIDを変更することを考慮に入れる必要があります:

種類: HTTP 名: http_default log_level: 情報フォーマット: |
  {
   "chat_id": "-ID_CHAT_TELEGRAM",
   "テキスト": "
     {{範囲 . -}}
     {{$アラート := . -}}
     {{範囲。決定 -}}
     {{.価値}} 取得します {{.種類}} 次へ向け {{.期間}} トリガー {{.シナリオ}}.\rn https://www.shodan.io/host/{{.価値}}
     {{終わり -}}
     {{終わり -}}
   "
  }

関連URL: httpsの://api.telegram.org/botTOKEN/sendMessage 方法: POST ヘッダー:
  コンテンツタイプ: "アプリケーション/json"

いつも通り, Crowdsecサービスを再起動するために必要な変更:

sudo systemctl restart crowdsec

エト出来上がり!! 電報メッセージはすぐに到着します!

来る, 今日も続きます, これは地獄に行く, 見るべきものがたくさんあります, もっと多くのコマンドについて話す必要があります, APIの, 彼らのダッシュボードまたはWebコンソールから、私たちが見ると言った, しかし、お願いします… これは非常に長いです 私たちは🙂すべてのエージェントに互いに話させる必要があります, (もし興味を引くものだったら), それを境界ファイアウォールと統合する部分… プロメテウスの部分を見る, グラファナ…

まぁ, 私はそれが興味のある解決策であることを願っています, 私たちの多くが、この保護なしにインターネットにサービスを公開していると確信しています. または、なぜそうしないのですか, 組織の内部マシンに実装する, それらの間に彼らはメッシュを作り、お互いを保護します…

まぁ, なんて大きなハグでしょう!

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!