トップ > 技術ナレッジのアーカイブ > 脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(3)~IDS/IPS LibDAQ編

2022.03.02

脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(3)IDS/IPS LibDAQ編

#メール #サイバーセキュリティ #フィッシング #スパイウェア #Saas #マルウェア

IDS/IPS LibDAQのインストール確認

Snort

Snortはネットワーク型のIPS/IDSです。ネットワーク型のIPS/IDSはSnortが設置されているネットワーク内の通信を監視し、シグネチャと呼ばれる攻撃者の特長的なアクセス方法を検知して報告、対策を行います。

Open-develのインストール

Open-develのインストールを行います。インストールを行わないと「cmakeのインストール」を行う際にErrorが発生するためです。

  1. #dnf install openssl-devel

epel-releaseのインストール

centOSでSnortを利用するにはEPELのリポジトリを使用する必要が有ります。
EPELの使用にはepel-releaseのインストールが必要です。

  1. #dnf install epel-release

powertoolsリポジトリの有効化

CentOS で利用できるリポジトリの1つです。
powertoolsリポジトリは「EPEL パッケージ」を利用する際に必要になります。そのため「epel-release」でインストールしたEPELパッケージを使用するために有効化します。

  1. #dnf config-manager --enable powertools

また、snortを動作させるためにcmake、LibDAQ、Snort3のインストールが必要です。
インストールについては以下のコマンドを実行します。

cmakeのインストール

  1. #wget
  2. https://github.com/Kitware/CMake/releases/download/v3.19.6/cmake-3.19.6.tar.gz
  3. #tar xvf cmake-3.19.6.tar.gz
  4. #dnf install libpcap-devel pcre-devel libdnet-devel hwloc-devel openssl-devel zlib-devel luajit-devel pkgconf libmnl-devel libunwind-devel
  5. #dnf install libnfnetlink-devel libnetfilter_queue-devel

LibDAQのインストール

  1. #git clone https://github.com/snort3/libdaq.git
  2. #cd libdaq/
  3. #./configure
  4. #make
  5. #make install
  6. #ln -s /usr/local/lib/libdaq.so.3 /lib/
  7. #ldconfig

Snort3のインストール

ソースファイルのダウンロードは以下になります。

  1. #git clone https://github.com/snort3/snort3.git
  2. #cd snort3/

環境変数の設定はこちら

  1. #export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
  2. #export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
  3. #export CFLAGS="-O3"
  4. #export CXXFLAGS="-O3 -fno-rtti"
  5. #./configure_cmake.sh --prefix=/usr/local/snort --enable-tcmalloc
  6. コンパイル
  7. #cd build/
  8. #pwd

インストールについてはこちら

  1. #make -j$(nproc)

ここから実際にできるか確認します。

ルールセットの設定

一般的にセキュリティソフトやIDSでは、攻撃者の特長的なアクセス方法を「シグネチャ」と呼びます。 Snortではルールセットに記述されているシグネチャを参照して不正なpacketを検出します。
公式サイトのコミュニティ版のルールセットは無料で使用することができますが、有料で更に強力なルールセットを提供しています。

ルールセットのダウンロード

  1. # cd /tmp
  2. # wget https://www.snort.org/downloads/community/community-rules.tar.gz

解凍

  1. # tar xzvf community-rules.tar.gz

ディレクトリ移動

  1. # cd community-rules

ディレクトリの作成

  1. # mkdir -p /etc/snort/rules

sid-msg.mapのコピー

  1. # cp sid-msg.map /etc/snort/

community.rulesのコピー

  1. # cp community.rules /etc/snort/rules/

権限変更

  1. # chown -R snort.snort /etc/snort

logの設定

続いてlogの設定を行います。以下のように「ディレクトリの作成→権限変更→snort.logrotateのコピー」の手順で行ってください。

ディレクトリの作成

  1. # mkdir /var/log/snort

権限変更

  1. # chown -R snort.snort /var/log/snort

snort.logrotateのコピー

  1. # cd /usr/local/src/snort-2.9.16
  2. # cp rpm/snort.logrotate /etc/logrotate.d/snort

設定後、ログはsnort.logrotateのコピーに保存されます。
ディレクトリとしては 「/etc/snort/rules/snort.logrotate」に保存されます。

/etc/snort/snort.confの編集

デフォルトでは「ipvar HOME_NET any」になっている部分を変更します。
「ipvar HOME_NET any」を「ipvar HOME_NET(監視するネットワークのIP/サブネットマスク)」に変更します。

他ホスト宛のパケットを受け取るためにプロミスキャスモードの設定を行います。
インターフェースのファイルにPROMISC=yesの設定値を追記します。

  1. #vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
  2. PROMISC=yes

snort動作確認

snort動作確認を行います。以下のコマンドから動作確認を行うことができます。

  1. #/usr/local/snort/bin/snort -V

以下のような画面になれば問題なく動作しています。

閉じる