.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

FlexResp で自己防衛を行う

FlexResp とは、Snort のアクションの一つです。flexresp アクションを利用するには、コンパイル時に指定されている必要があります。

ここでは、FlexResp を有効にしてコンパイルしています。

FlexResp で行えること

FlexResp を使用すると、 セッションを確立する前にパケット終了コマンドを送りつけ、強制的に通信を終了させる事が出来ます。パケット内容を監視してアクションが起こせる Snort は、iptables (パケットフィルタリング型ファイアウォール)とは違うアプローチで通信を抑制する事が出来ます。

扱いを誤ると大変な事に、、、

FlexResp アクションの利用においては細心の注意が必要です。特に、プロミスキャスモードで広範囲にパケット監視を行うケースでは、AさんのパソコンとBさんのパソコンだけをピンポイントで通信不能に陥れることも簡単に出来てしまいます。

つまり、第三者が通信に強制介入する事が出来てしまいます。

誤まって設定するとネットワークを簡単に麻痺させてしまう事になります。

利用方法 ~ ルールの基本構文

ルールヘッダ、ルールオプションの詳細については、下記 Snort マニュアル日本語訳を参照して下さい。ここでは resp の利用方法についてのみ説明しています。 それぞれの関連は色で示した通りです。

参照 => Snortルールを書 正しいSnortルールの記述方法

ルールの基本構文

大きくは ルールヘッダ部 と ルールオプションで構成されます。

[アクション] [プロトコル] [アドレス] [ポート] [方向] [アドレス] [ポート] [ルールオプション]

使用例 ~ 特定のメールアドレスを含む通信を強制終了させる

hack@hack.net からのメールはパケット終了コマンドを送りつけ、一方的に通信を終了させる場合は /etc/snort/rules/local.rules に 以下の様に一行で記述します。

/etc/snort/rules/local.rules

alert tcp EXTERNAL_NET any -> HOME_NET 25 (content:"hack@hack.net";resp:rst_snd;msg:"Mail Rley Atack!";)

ルールヘッダ部

ルールヘッダ部 では、指定された外部ドメイン全てのポート からローカルエリアport25TCPプロトコル のパケットに対し、ルールオプションで指定されたアクションを起こす事になります。

参照 => Snort ルールヘッダ (Snot マニュアル)

ルールオプション部

  • content:"hack@hack.net"
    • 文字列 hack@hack.net を監視します。
  • msg:"Mail Rley Atack!"
    • アラートログ/通信記録に Mail Rley Atack! で出力します。
  • ;resp:rst_snd
    • 送信元にRSTパケット(通信終了パケット)を送信します。

このルール定義では、hack@hack.net が含まれる場合、resp の rst_rst で処理し、msgでアラートに出力するメッセージ "Mail Rley Atack!"と表示します。 これは文字を含むパケットの抑制である事に注意して下さい。当然ですが、送信元メールアドレスを判定している訳ではありません。

resp オプションについて

resp には、以下の種類があります。

RST (リセット)パケット (プロトコルは指定可能なプロトコルです)

タイプ プロトコル 内容
rst_all TCP 送信元、受信先両方にRSTパケットを送信
rst_snd TCP 送信元に RSTパケットを送信
rst_rcv TCP 受信先に RSTパケットを送信

ICMPパケットを送信する事で通信を終了させる事も出来ます。

icmp_net UDP 送信側にICMP_NET_UNREACHを送信
icmp_host UDP 送信側にICMP_HOST_UNREACHを送信
icmp_port UDP 送信側にICMP_PORT_UNREACH
icmp_all UDP 上記3つの不到達 ICMP を全て送信

特定の地域からのSMTPポートへの接続を強制終了

SMTP AUTH と SSL暗号化 を利用して外部からメール送信サーバーを利用出来るようにポートを開くと、毎日のように不正中継が試されます。その多くは 中国、韓国です。これらの地域からの利用は通常業務ではありえないので、これらの地域からのポート25へのアクセスは全て不正アクセスとみなし、 FlexResp で遮断する例です。

~/etc/snort/rules/local.rules

alert tcp 222.120.0.0/15 any -> HOME_NET 25 (msg:"Mail Refused !";resp:rst_all;)

APNICで管理されているIPアドレスを調べる

アクセスを制限したい国・地域別のIPアドレスを調べます。アジア・太平洋地域であれば、APNICにより管理されており、最新のIPアドレス国別割当て状況は以下で公開されています。

http://ftp.apnic.net/stats/apnic/

最終の更新リストファイル

http://ftp.apnic.net/stats/apnic/delegated-apnic-latest

"一網打尽" というツールをつかって CIDR(アドレス範囲)を抽出します。 http://www.vector.co.jp/soft/winnt/net/se316799.html
ダウンロードした delegated-apnic-latest を開き CIDR を書き出します。使い方は付属の説明書を見て下さい。後はテキストエディターをつかってSnortのルール書式にします。

これらのリストを、新たなルールセットとして /etc/snort/snort.conf に登録します。

注意
 このリストは毎月更新されます。IPアドレスの返還、他の地域の割当ても行われるため、絶対ではありません。SMTPのような利用者が限定できる場合の サービスは特に影響はありませんが、広範囲に提供するサービス、例えば http などへの使用は、関係のない広範囲に及ぶ地域からのアクセスを制限してしまう可能性もあります。

しばらく、運用してみたのですが、不正中継行為が激減し効果はあがりました。しかし、負荷が高くその他のパケットの取りこぼしも発生しました。

アイデア次第で幸せになれます。

Snort をネットワークに存在するホストのパケットを受け取れる場所に、センサーとして設置した場合、この FlexResp 機能の使い方によっては幸せになれます。

先に述べたように、AさんとBさんのコンピューターだけをピンポイントで通信不能に出来る事は容易である事は理解 出来たかと思います。

使い方次第で、ネットワークを麻痺させる事の出来る機能ですが、有用な通信妨害の手段として、マイホームパパであれば子供さんのパソコンに触れる事無く、 有害なWebサイトへのアクセスを抑制するといった使い方も考えられます。当然、自分は大人の特権として例外ですが。(笑

FlexResp ではありませんが、Snort にもポルノに関するルールが含まれています。

/etc/snort/rules/porn.rules

標準では、このルールセットは使用しないようになっています。ちょっと、ピーであれな、キーワードが含まれています。キーワードではなく、有害サイトの Webサイトアドレスを収集すると良いと思います。ホームページからリンクのみをテキストで抽出するツールもあります。何れにせよアドレス収集の方が大変な作業ですけど、、

bottom_mark
ページ最上部
ページ最上部 前のページ