Daily Post June 16 2026JP

| Cost Assessment | Questions?' | Monthly Letter | Monthly Blog | Our Partners |
ログ解析型セキュリティツールの最前線:SSHGuardとCrowdSecの比較と実践的活用
今日、パブリックなインターネットに公開されたサーバーは、例外なく自動化されたスキャン、ブルートフォース(総当たり)攻撃、そしてアプリケーション層へのエクスプロイトの標的となります。稼働率と安全性を維持するためには、悪意のある動作を検知し、侵入される前に無力化する「プロアクティブ(先制的)な防御メカニズム」が不可欠です。
この負担を軽減するため、システム管理者やITコンサルタントは「自動ログ解析型の侵入防止ソフトウェア」を重宝しています。中でもSSHGuardとCrowdSecは非常に優れたツールです。どちらも「システムログに基づいて悪意のあるアクターを特定しブロックする」という基本的な目的は共通していますが、そのアーキテクチャの思想と運用スケールは全く異なります。
リソース消費を最小限に抑えつつ、回復力のあるインフラを設計する上で、この2つのアプローチの違いを理解することは極めて重要です。一方は「軽量・局所的・即時反応」を武器とし、もう一方は「分散型アーキテクチャと集合的なネットワークインテリジェンス」を活用します。
SSHGuard:洗練された軽量・局所防衛システム
SSHGuardは、SSHをはじめとするネットワークサービスに対するブルートフォース攻撃からホストを保護するために設計された、軽量な侵入防止システムです。C言語で書かれた小さなデーモンとして動作し、システムログを監視して認証イベントを透過的に解析、ホストのネイティブなファイアウォール機能を利用して攻撃的なIPアドレスを動的にブロックします。
名前に「SSH」とありますが、守備範囲はそれだけにとどまりません。PostfixやEximなどの一般的なメールサーバー、vsftpdなどのFTPデーモン、さらには複数のWebサーバー用のログパーサーも組み込まれています。
メカニズムと「Touchiness(危険度)」スコア
動作の核となるのは、ログの集約とパターン認識です。標準入力から直接ログメッセージを読み取ることができるため、標準的なsyslogユーティリティからのパイプと互換性があるほか、特定のログファイルやsystemdのjournalを直接監視することも可能です。
単一のIPアドレスから短時間内に連続したログイン失敗や乱暴なパターンを認識すると、攻撃が進行中であると判断します。そして、iptables、nftables、firewalld、pf、ipfw、ipfilterといったシステムのファイアウォール・バックエンドと直接連携し、そのIPに対する一時的または恒久的なブロックルールを挿入します。
特徴的なのは、攻撃の危険度(Attack Dangerousness / Touchiness)と呼ばれる内部指標を中心としたスコアリングシステムです。
- 認識された不正行為ごとに、IPアドレスの合計危険度レベルに特定のスコアが加算されます。
- スコアが事前に定義されたしきい値を超えると、IPアドレスはバン(遮断)されます。
- 再犯者に対しては「指数関数的バックオフ・アルゴリズム」を採用しており、最初のバンは短期間ですが、違反を重ねるごとにブロック期間が乗数的に増加します。
- 執拗な攻撃者に対しては、管理者が恒久的なブラックリストファイルを設定し、システムの再起動をまたいで半永久的にブロックすることで、リソースの枯渇を防ぐことができます。
CrowdSec:クラウドソースによるグローバルな脅威インテリジェンス
CrowdSecは、侵入検知および防止システムの領域における「協調的」なアプローチを体現しています。従来のログ解析ユーティリティにインスパイアされつつも、Go言語でゼロから構築され、分散型かつ参加型のセキュリティエンジンとして機能します。局所的な振る舞い検知と、世界規模のクラウドソース型サイバー脅威インテリジェンス・ネットワークを組み合わせることで、従来のログ解析の枠を超えています。
アーキテクチャは大きく2つのコンポーネントに明確に分割されています。
- CrowdSec Security Engine: ログを読み込み、事前定義されたシナリオに基づいて悪意のある動作を検出する中核。
- Remediation Components (Bouncers): インフラの様々なレベルで実際のブロックアクションを実行するコンポーネント。
協調型ネットワークレイヤーによる「先制防御」
Security Engineは、システムの認証ログから、Webサーバーのトラフィック、データベースのクエリ、アプリケーションコンテナ、クラウドインフラのログまで、あらゆるソースからログを取り込み、構造化されたイベントに正規化します。これらのイベントは、クレデンシャルスタッフィング、ディレクトリトラバーサル、ポートスキャン、L7 DDoS攻撃などの特定の悪意ある動作を検出するために設計された、YAMLベースのルールセット(シナリオ)と照合されます。
CrowdSecを真に際立たせているのは、その協調型ネットワークレイヤーです。 ローカルエンジンが悪意のあるIPアドレスに対して制限の決定を下すと、アラートから企業情報などの識別メタデータをすべて削除し、「タイムスタンプ」「トリガーされたシナリオ名」「攻撃元のIPアドレス」のみをCrowdSecが管理する中央のコンセンサスエンジンに送信します。
この脅威が検証されると、その悪意あるIPはグローバルなレピュテーションデータベースに追加されます。その見返りとして、コミュニティに接続しているすべてのノードは、自社の技術スタックや地理的条件に合わせた、リアルタイムで精査されたコミュニティ・ブロックリストを受け取ります。これにより、攻撃者がサーバーに一度も接続を試みる前から、プロアクティブにアクセスを拒否することが可能になります。
ライセンスとデータ主権
オープンソースのコンプライアンスや、監査可能なセキュリティスタック、そして「データ主権」を重視する組織にとって、ライセンスは重要な要素です。
- SSHGuard (完全なフリー&オープン):
主にBSD 3-ClauseライセンスとISCライセンスの下で配布され、一部はGPL-3.0-or-laterフレームワークの下にあります。ソースコードの改変、コピー、配布(商用・非商用問わず)の自由度が極めて高く、必要なのは著作権表示とライセンステキストの保持のみです。商用機能の出し惜しみやアップセルとは無縁の、完全なコミュニティ主導モデルです。
- CrowdSec (オープンコア&SaaSのハイブリッド):
セキュリティコンポーネントとオープンソースハブにはMITライセンスを中心としたデュアルモデルを採用しています。ローカルエンジンやBouncer、シナリオは完全にオープンで無料で変更可能です。一方で、脅威インテリジェンスの中央クラウドインフラは商用事業体として管理されています。コミュニティユーザーは「Watcher tier」として無料でシグナルの送受信ができますが、エンタープライズ向けの機能、商用統合権、リアルタイムの1時間ごとの更新、CTI APIアクセスには有料の商用サブスクリプションが必要です。
クロスプラットフォームの互換性とOSサポート
- SSHGuard: 主にUnix系オペレーティングシステム向けに構築されています。C言語とBourneシェルスクリプトで書かれているため、Unixカーネルの低レベルなパケットフィルタリングシステムと直接統合します。FreeBSDなどのBSDファミリー、Linux(nftables, iptables, firewalld)、macOS(PF)でネイティブにサポートされますが、Windowsアーキテクチャには対応していません。
- CrowdSec: Goベースのコードベースにより、分離されたクロスプラットフォームアーキテクチャを実現しています。主要なLinux、FreeBSDに加え、Windows(イベントログのネイティブ監視)もサポートしています。DockerやKubernetes向けの公式構成も用意されており、コンテナやクラウドネイティブな展開に最適化されています。中央のLinuxサーバーで検知エンジンを動かしつつ、WindowsサーバーやWebプロキシにBouncerを配置するといった柔軟な運用が可能です。
2つのツールは併用すべきか?
同じホストで両方を同時に実行することは技術的には可能ですが、デフォルトのままでは運用上の重複や競合(レースコンディションやファイアウォールルールの衝突)が発生します。
例えば、SSHGuardがCrowdSecのコンマ数秒前に攻撃を検知し、パケットレベルで即座に遮断してしまった場合、ログメッセージがそれ以上生成されなくなります。その結果、CrowdSecは攻撃の全容を把握できず、コミュニティ全体へアラートのシグナルを送信できなくなってしまいます。
補完的な導入戦略: 役割とネットワークレイヤーを明確に分離すれば、強力な併用が可能です。
- SSHGuard: SSHやローカルメール転送など、処理速度と「ゼロ依存性」の信頼性が最優先される低レベルのインフラサービスの保護に専念させる。
- CrowdSec: 一般公開されているWebアプリケーション、リバースプロキシ、APIゲートウェイなど、複雑なアプリケーション層のインフラ保護に特化させる。
中小企業(SME)にとっての戦略的価値
専任のセキュリティオペレーションセンター(SOC)を持たず、予算や人員が限られている中小企業(SME)にとって、インフラのセキュリティ管理は常に悩みの種です。自動化されたボットネットは、「中小企業のネットワークには境界防御がないことが多い」と知っているため、彼らを容赦なく標的にします。
SSHGuardやCrowdSecの導入は、高額なプロプライエタリ(独自仕様)のセキュリティスイートの財務的負担を負うことなく、エンタープライズクラスの侵入防止技術を民主化し、SMEに多大な戦略的価値をもたらします。
- システムリスクとリソース枯渇の即時軽減: これらのツールは、バックグラウンドのインターネットのノイズから内部サーバーを守る「寡黙なデジタル警備員」として機能します。少人数のITチームが、事後対応の危機管理から解放され、コアインフラの改善に集中できるようになります。
- デジタル主権とベンダーからの独立: 自社のローカル環境やクラウドVMで実行できるオープンソースツールを使用することで、特定のベンダーへのロックインを回避し、侵入的なテレメトリから運用データを保護できます。特にCrowdSecのクラウドソースモデルは、かつては巨大なセキュリティ予算を持つ大企業しかアクセスできなかったレベルの「グローバルな脅威インテリジェンス」をSMEに提供し、世界中のどこかで起きた攻撃に対する免疫をローカルインフラに付与します。
各ツールのメリットとデメリットまとめ
SSHGuard
- メリット: C言語による圧倒的なパフォーマンス効率と最小限のシステムフットプリント。依存関係がなく、導入後すぐに機能する「セット・アンド・フォーゲット(設定したらあとはお任せ)」の自律性。
- デメリット: 完全に局所的な視点に留まり、組織内の他のサーバーと脅威データを共有できない点。ネットワーク層に焦点が当てられており、複雑なアプリケーション層(Webなど)の脅威には不向き。
CrowdSec
- メリット: クラウドソースによるプロアクティブな「集合的免疫(グローバルな脅威インテリジェンス)」。あらゆるソースからログを取り込み、任意の場所でブロックできるアーキテクチャの柔軟性と、高度なYAMLシナリオによる文脈を理解した分析力。
- デメリット: Goベースかつローカルデータベースを使用するため、軽量なツールと比較してリソース(メモリ/CPU)消費が大きい。クラウド上のコンセンサスエンジンへの構造的な依存があるため、完全なエアギャップ(オフライン)環境や厳格なデータ処理ポリシーを持つ組織では調整が必要。
参考リンク
CrowdSec: https://github.com/crowdsecurity/crowdsec
SSHGuard: https://www.sshguard.net/