2022.03.02
脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(3)IDS/IPS LibDAQ編
#メール #サイバーセキュリティ #フィッシング #スパイウェア #Saas #マルウェア
トップ > 技術ナレッジのアーカイブ > 脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(3)~IDS/IPS LibDAQ編
2022.03.02
#メール #サイバーセキュリティ #フィッシング #スパイウェア #Saas #マルウェア
Snortはネットワーク型のIPS/IDSです。ネットワーク型のIPS/IDSはSnortが設置されているネットワーク内の通信を監視し、シグネチャと呼ばれる攻撃者の特長的なアクセス方法を検知して報告、対策を行います。
Open-develのインストールを行います。インストールを行わないと「cmakeのインストール」を行う際にErrorが発生するためです。
- #dnf install openssl-devel
centOSでSnortを利用するにはEPELのリポジトリを使用する必要が有ります。
EPELの使用にはepel-releaseのインストールが必要です。
- #dnf install epel-release
CentOS で利用できるリポジトリの1つです。
powertoolsリポジトリは「EPEL パッケージ」を利用する際に必要になります。そのため「epel-release」でインストールしたEPELパッケージを使用するために有効化します。
- #dnf config-manager --enable powertools
また、snortを動作させるためにcmake、LibDAQ、Snort3のインストールが必要です。
インストールについては以下のコマンドを実行します。
- #wget
- https://github.com/Kitware/CMake/releases/download/v3.19.6/cmake-3.19.6.tar.gz
- #tar xvf cmake-3.19.6.tar.gz
- #dnf install libpcap-devel pcre-devel libdnet-devel hwloc-devel openssl-devel zlib-devel luajit-devel pkgconf libmnl-devel libunwind-devel
- #dnf install libnfnetlink-devel libnetfilter_queue-devel
- #git clone https://github.com/snort3/libdaq.git
- #cd libdaq/
- #./configure
- #make
- #make install
- #ln -s /usr/local/lib/libdaq.so.3 /lib/
- #ldconfig
ソースファイルのダウンロードは以下になります。
- #git clone https://github.com/snort3/snort3.git
- #cd snort3/
環境変数の設定はこちら
- #export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
- #export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
- #export CFLAGS="-O3"
- #export CXXFLAGS="-O3 -fno-rtti"
- #./configure_cmake.sh --prefix=/usr/local/snort --enable-tcmalloc
- コンパイル
- #cd build/
- #pwd
インストールについてはこちら
- #make -j$(nproc)
ここから実際にできるか確認します。
一般的にセキュリティソフトやIDSでは、攻撃者の特長的なアクセス方法を「シグネチャ」と呼びます。
Snortではルールセットに記述されているシグネチャを参照して不正なpacketを検出します。
公式サイトのコミュニティ版のルールセットは無料で使用することができますが、有料で更に強力なルールセットを提供しています。
- # cd /tmp
- # wget https://www.snort.org/downloads/community/community-rules.tar.gz
- # tar xzvf community-rules.tar.gz
- # cd community-rules
- # mkdir -p /etc/snort/rules
- # cp sid-msg.map /etc/snort/
- # cp community.rules /etc/snort/rules/
- # chown -R snort.snort /etc/snort
続いてlogの設定を行います。以下のように「ディレクトリの作成→権限変更→snort.logrotateのコピー」の手順で行ってください。
- # mkdir /var/log/snort
- # chown -R snort.snort /var/log/snort
- # cd /usr/local/src/snort-2.9.16
- # cp rpm/snort.logrotate /etc/logrotate.d/snort
設定後、ログはsnort.logrotateのコピーに保存されます。
ディレクトリとしては
「/etc/snort/rules/snort.logrotate」に保存されます。
デフォルトでは「ipvar HOME_NET any」になっている部分を変更します。
「ipvar HOME_NET any」を「ipvar HOME_NET(監視するネットワークのIP/サブネットマスク)」に変更します。
他ホスト宛のパケットを受け取るためにプロミスキャスモードの設定を行います。
インターフェースのファイルにPROMISC=yesの設定値を追記します。
- #vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
- PROMISC=yes
snort動作確認を行います。以下のコマンドから動作確認を行うことができます。
- #/usr/local/snort/bin/snort -V
以下のような画面になれば問題なく動作しています。