見出し画像

334.2 ネットワーク侵入検知


課題 334: ネットワークセキュリティ
334.2 ネットワーク侵入検知

LPIC303の試験範囲である主題331~335まであるうちの「334: ネットワークセキュリティ」から「334.2 ネットワーク侵入検知」についてのまとめ

  • 総重量:4

  • 説明:
    ネットワークのセキュリティスキャン・ネットワークモニタ・ネットワークの侵入検知ソフトウエアの設定・利用について理解している。これには、セキュリティスキャナの更新と管理が含まれる。

  • 主要な知識範囲:

    • 利用帯域モニタリングの実施

    • Snortの利用と設定とルール管理

    • NASLを含むOpenVASの利用と設定

  • 重要なファイル、用語、ユーティリティ:

    • ntop

    • snort

    • snort-stat

    • pulledpork.pl

    • /etc/snort/*

    • openvas-adduser,

    • openvas-rmuser

    • openvas-nvt-sync

    • openvassd

    • openvas-mkcert

    • openvas-feed-update

    • /etc/openvas/*


利用帯域モニタリングの実施

ntop/ntopngとは

  • ntop:1998年リリース

  • ntopng:ntopの後継、2013年にリリース

ntopng is a web-based traffic monitoring application able to:
・Passive monitor traffic by passively capturing network traffic
・Collect network flows (NetFlow, sFlow and IPFIX)
・Actively monitor selected network devices
・Monitor a network infrastructure via SNMP
The main difference between ntopng and a traffic collector, is that ntopng not only reports traffic statistics but it also analizes the traffic, draws conclusions on observed traffic type and reports cybersecurity metrics.
↓↓↓Google翻訳↓↓↓
ntopng は、次のことができる Web ベースのトラフィック監視アプリケーションです。
・ネットワークトラフィックを受動的にキャプチャすることによるパッシブ監視トラフィック
・ネットワーク フローの収集 (NetFlowsFlowIPFIX)
・選択したネットワークデバイスをアクティブに監視します
SNMP経由でネットワークインフラを監視する
ntopng とトラフィック コレクターの主な違いは、ntopng はトラフィック統計をレポートするだけでなく、トラフィックを分析し、観察されたトラフィック タイプに関する結論を導き出し、サイバーセキュリティ メトリックをレポートすることです。

What is ntopng ― ntopng 6.1 documentation

インストール

  • RockyLinux9の場合

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# curl https://packages.ntop.org/centos-stable/ntop.repo > /etc/yum.repos.d/ntop.repo
[root@lpic303-rocky34 ~]# dnf config-manager --set-enabled powertools
[root@lpic303-rocky34 ~]# dnf install epel-release
[root@lpic303-rocky34 ~]# dnf clean all
[root@lpic303-rocky34 ~]# dnf update
[root@lpic303-rocky34 ~]# dnf install pfring-dkms n2disk nprobe ntopng cento ntap
[root@lpic303-rocky34 ~]#
  • Ubuntu22.04の場合

root@lpic303-ubuntu35:~#
root@lpic303-ubuntu35:~# apt-get install software-properties-common wget
root@lpic303-ubuntu35:~# add-apt-repository universe
root@lpic303-ubuntu35:~# wget https://packages.ntop.org/apt-stable/22.04/all/apt-ntop-stable.deb
root@lpic303-ubuntu35:~# apt install ./apt-ntop-stable.deb
root@lpic303-ubuntu35:~# 

設定ファイル

/etc/ntopng/ntopng.conf

実行例

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# systemctl restart ntpopng
[root@lpic303-rocky34 ~]# systemctl restart nprobe
[root@lpic303-rocky34 ~]#

http://localhost:3000/
ユーザー名:admin、パスワード:admin

参考


Snortの利用と設定とルール管理

Snortとは

オープンソースのネットワーク型IDS

インストール

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# dnf install libdnet
[root@lpic303-rocky34 ~]# dnf install https://www.snort.org/downloads/snort/snort-2.9.20-1.f35.x86_64.rpm
[root@lpic303-rocky34 ~]#
★ルールをダウンロードする★
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# curl -LO https://www.snort.org/downloads/community/community-rules.tar.gz
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# tar -xvzf community-rules.tar.gz -C /etc/snort/rules
community-rules/
community-rules/community.rules
community-rules/VRT-License.txt
community-rules/LICENSE
community-rules/AUTHORS
community-rules/snort.conf
community-rules/sid-msg.map
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l /etc/snort/rules/
合計 0
drwxr-xr-x 2 1210 wheel 119  214 03:45 community-rules
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l /etc/snort/rules/community-rules/
合計 2336
-rw-r--r-- 1 1210 wheel    7834 119  2018 AUTHORS
-rw-r--r-- 1 1210 wheel   15127  320  2013 LICENSE
-rw-r--r-- 1 1210 wheel   21084  225  2021 VRT-License.txt
-rw-r--r-- 1 1210 wheel 1813553  214 03:45 community.rules
-rw-r--r-- 1 1210 wheel  494265  214 03:45 sid-msg.map
-rw-r--r-- 1 1210 wheel   30249  425  2022 snort.conf
[root@lpic303-rocky34 ~]#
"libdnet.1: cannot open..."が出る場合はシンボリックリンクの設定をする★
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# snort
snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cd /usr/lib64/
[root@lpic303-rocky34 lib64]#
[root@lpic303-rocky34 lib64]# ln -s libdnet.so.1.0.1 libdnet.1
[root@lpic303-rocky34 lib64]#
[root@lpic303-rocky34 lib64]# ls -l libdnet*
lrwxrwxrwx 1 root root    16  215 00:55 libdnet.1 -> libdnet.so.1.0.1
lrwxrwxrwx 1 root root    16  57  2022 libdnet.so -> libdnet.so.1.0.1
lrwxrwxrwx 1 root root    16  57  2022 libdnet.so.1 -> libdnet.so.1.0.1
-rwxr-xr-x 1 root root 75344  57  2022 libdnet.so.1.0.1
[root@lpic303-rocky34 lib64]#
[root@lpic303-rocky34 lib64]# snort --version

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.10.0 (with TPACKET_V3)
           Using PCRE version: 8.44 2020-02-12
           Using ZLIB version: 1.2.11

[root@lpic303-rocky34 lib64]#
"..."/usr/local/lib/snort_dynamicrules": No such file or directory."が出る場合は空のディレクトリを作成する★
[root@lpic303-rocky34 lib64]#
[root@lpic303-rocky34 lib64]#
ERROR: /etc/snort/snort.conf(253) Could not stat dynamic module path "/usr/local/lib/snort_dynamicrules": No such file or directory.

Fatal Error, Quitting..
[root@lpic303-rocky34 ~]# mkdir -p /usr/local/lib/snort_dynamicrules
[root@lpic303-rocky34 ~]# chown -R snort:snort /usr/local/lib/snort_dynamicrules
[root@lpic303-rocky34 ~]# chmod -R 700 /usr/local/lib/snort_dynamicrules
  • Ubuntu22.04の場合

root@lpic303-ubuntu35:~#
root@lpic303-ubuntu35:~# apt install snort
root@lpic303-ubuntu35:~#

設定ファイル

/etc/snort/*

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l /etc/snort/
合計 236
-rw-r--r-- 1 root root   3757  420  2022 classification.config
-rw-r--r-- 1 root root  33339  420  2022 gen-msg.map
-rw-r--r-- 1 root root    687  420  2022 reference.config
drwxr-xr-x 3 root root     29  215 00:45 rules
-rw-r--r-- 1 root root  26812  524  2022 snort.conf
-rw-r--r-- 1 root root   2335  420  2022 threshold.conf
-rw-r--r-- 1 root root 160606  420  2022 unicode.map
[root@lpic303-rocky34 ~]#

設定ファイル:snort.conf

  • ipvar HOME_NET <localnetwork/mask>

  • ipvar EXTERNAL_NET any

  • var RULE_PATH /etc/snort/rules
    include $RULE_PATH/local.rules = /etc/snort/rules/

設定ファイル:ルール

  • ディレクトリ
    /etc/snort/rules/

  • ファイル名
    xxxx.rules

設定ファイル:ルールフォーマット

[アクション] [プロトコル] [SrcIP] [Srcポート] [方向] [DstIP] [Dstポート]
例)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (RULE_OPTIONS)

  • アクション
    - alert
    - log
    - pass
    - active

  • プロトコル
    - tcp
    - udp
    - icmp
    - ip

  • IPアドレス
    - x.x.x.x
    - [x.x.x.x,y.y.y.y]
    - any

  • ポート番号
    - x
    - (x,y)
    - any

  • 方向演算子
    - ->
    - <>

  • オプション
    - 検知するパケットの条件を指定

ログ

  • ログディレクトリ
    /var/log/snort

  • ログファイル形式
    tcpdump形式

  • ログファイル名
    snort.log.数字

モード

  • スニファモード
    コンソールに表示するモード
    -v オプション

  • パケットロガーモード
    ログを記録するモード
    -l オプション

  • NIDSモード
    ネットワーク トラフィックの検出と分析をするモード
    -Aオプション

snortコマンド

  • -v
    スニファモード

  • -A [ fast | full | unsock | none | console | cmg ]
    アラートモード
    - fast:簡単な形式で出力
    - full:完全な形式で出力
    - unsock:UNIXsケットに出力
    - none:なし
    - console:"fast"のスタイルでコンソールに出力
    - cmg:ヘッダーの詳細を16 進数およびテキストで出力

  • -T
    テストモード

  • -D
    デーモンモード

  • -d
    IP ヘッダーと TCP/UDP/ICMP ヘッダーを表示

  • -e
    データ リンク層ヘッダーを表示

  • -l <ログディレクトリ名>
    ログファイルを格納するディレクトリを指定
    ファイル名は "snort.log.数字" となる
    指定がなければ "/var/log/snort" となる。

  • -L <ログファイル名>
    バイナリログのログファイル名を指定

  • -h <ネットワークアドレス>
    HOME_NET を指定

  • -b
    ログをtcpdump形式のバイナリで保存する
    すべての情報を記録するので -h, -d, -e の指定が不要になる

  • -c <設定ファイル>
    設定ファイルを指定する

  • -i <インターフェース>
    検査対象となるインターフェースを指定する

  • -s
    ログをsyslogに出力する

  • -r <ファイル名>
    tcpdump形式のファイルを読み込む

  • -q
    コマンド実行時のバナーを表示しない

  • -Q
    インラインモードを有効化する

参考


NASLを含むOpenVASの利用と設定

OpenVASとは

オープンソースの脆弱性スキャナ
現在はGreenbone-Vulnerability-Manager(GVM)という名称になっている。

NASLとは

Nessus Attack Scripting Language

The Nessus Attack Scripting Language, usually referred to as NASL, is a scripting language that is used by vulnerability scanners like Nessus and OpenVAS. With NASL specific attacks can be automated, based on known vulnerabilities.
↓↓↓Google翻訳↓↓↓
通常NASLと呼ばれるNessus攻撃スクリプト言語は、 NessusやOpenVASなどの脆弱性スキャナーで使用されるスクリプト言語です。NASL を使用すると、既知の脆弱性に基づいて特定の攻撃を自動化できます。

Nessus Attack Scripting Language - Wikipedia

※注意※

OpenVASは、OpenVAS-scanerやOSP-Scannerを含む脆弱性検査フレームワークとして「Greenbone-Vulnerability-Manager(GVM)」に変わっており、執筆時点(2024年4月)で試験範囲に含まれている `openvas-*` コマンドはなくなっているようです。

試験範囲に含まれている `openvas-*` コマンドが使われているのは、OpenVASがGVMになる以前の「OpenVAS 9」までのようで、インストール方法についてもネット上に情報は少なく、Ubuntu12.04~18.04でインストールできるという記事がいくつか発見できた程度でした。

設定ファイル

/etc/openvas/*
/etc/openvas/openvassd.conf(古い)
/etc/openvas/openvas.conf(新しい)

コマンド

  • openvas-rmuser コマンド
    https://linux.die.net/man/8/openvas-rmuser
    - OpenVASのユーザーデータベースのユーザーを削除する
    - openvasmd --delete-user=<username>
    - gvmd --delete-user=<username>

  • openvas-feed-update コマンド
    - 脆弱性情報の更新

  • openvassd コマンド
    https://linux.die.net/man/8/openvassd
    - openvassd - The 'scanner' part of the OpenVAS Security Scanner
    - オプション
     -c <config-file>, --config-file=<config-file>
     -a <address>, --listen=<address>
     -p <port-number>, --port=<port-number>

  • openvasmd
    - OpenVAS Manager

参考


この記事が気に入ったらサポートをしてみませんか?