728x90
๋ฐ์ํ
1๏ธโฃ ์ค์ต ๊ฐ์
VirtualBox์ ์ค์น๋ CentOS ํ๊ฒฝ์์ SNORT๋ฅผ ์ง์ ์ค์นํ๊ณ , ICMP ํจํท์ ํ์งํ๋ ๋ฃฐ์ ์ถ๊ฐํด ์นจ์ ํ์ง ๊ธฐ๋ฅ์ ์ค์ตํด๋ณด์๋ค. ์๊ฒฉ ์ ์์ PuTTY๋ฅผ ํ์ฉํ์๋ค.
๐น ์ค์ต ํ๊ฒฝ
- ๊ฐ์ํ ๋๊ตฌ: VirtualBox
- OS: CentOS
- ์๊ฒฉ ์ ์: PuTTY
- IDS ํด: SNORT 2.9.20
2๏ธโฃ SNORT ์ค์น
๐น1. EPEL ์ ์ฅ์ ์ถ๊ฐ
- ``EPEL``: CentOS์์ ์ฌ์ฉํ ์ ์๋ ์ถ๊ฐ ์คํ์์ค ํจํค์ง ์ ์ฅ์
- SNORT ์ค์น์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํด์ด ๊ธฐ๋ณธ ์ ์ฅ์์ ์๊ธฐ ๋๋ฌธ์, EPEL์ ๋จผ์ ์ค์นํด์ค์ผ ํจ
yum install epel-release
- ``/etc/yum.repos.d/`` ๋๋ ํฐ๋ฆฌ ๋ด์ EPEL ๊ด๋ จ ํ์ผ์ด ์ถ๊ฐ๋จ.
๐น2. ์์กด์ฑ ๋ฐ ํ์ ํจํค์ง ์ค์น
- SNORT๊ฐ ์์กดํ๋ ๊ฐ๋ฐ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ค์น
yum install wget gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel \
pcre pcredevel libdnet* libpcap* nghttp2 xz-devel libtool libsfbpf* daq* -y
ํจํค์ง | ์ค๋ช |
``wget`` | ์น์์ ํ์ผ ๋ค์ด๋ก๋ ๋๊ตฌ (SNORT ์ค์นํ์ผ ๋ฐ๊ธฐ์ฉ) |
``gcc``, ``gcc-c++`` | C/C++ ์ปดํ์ผ๋ฌ (SNORT ์์ค ๋น๋ ์ ํ์) |
``libnetfilter_queue-devel`` | ํจํท ํ ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (ํจํท ํํฐ๋ง ์ ํ์) |
``git`` | ์์ค์ฝ๋ ๋ค์ด๋ก๋์ฉ |
``flex``, ``bison`` | SNORT ๋ฃฐ ํ์ฑ๊ธฐ ๋น๋์ ํ์ํ ๋๊ตฌ๋ค |
``zlib``, ``zlib-devel`` | ์์ถ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
``pcre``, ``pcre-devel`` | ์ ๊ทํํ์ ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
``libdnet*`` | ์ ์์ค ๋คํธ์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
``libpcap*`` | ํจํท ์บก์ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (SNORT์ ํต์ฌ ๊ตฌ์ฑ ์์) |
``nghttp2``, ``xz-devel, libtool`` | ์ผ๋ถ ๋น๋ ํ๊ฒฝ์์ ์ข ์์ฑ ์๊ตฌ๋จ |
``libsfbpf*`` | Berkeley Packet Filter ๊ด๋ จ (snort 2.9.20 ์ดํ ํ์) |
``daq*`` | SNORT ํจํท ์บก์ฒ ์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ (DAQ = Data Acquisition Library) |
๐น3. SNORT ์ค์น
- snort.org์์ ์ ๊ณตํ๋ ๊ณต์ SNORT 2.9.20 ๋ฒ์ ์ค์น
rpm -ivh https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
- ``-i``: install (์ค์น)
- ``-v``: verbose (์ค์น ์งํ ์ํ ํ์)
- ``-h``: hash (์งํ ์ํฉ์ ``#####``๋ก ํ์)
๐น4. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ณผ๋ฆญ ๋งํฌ ์ค์
- SNORT ์ค์น ํ ํ์ธ์ ์ํด ๋ฒ์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ ``snort -V`` ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ
- ``libdnet.1`` ํ์ผ์ด ์๋ค๋ ์๋ฌ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋จ
- SNORT๊ฐ ``libdnet.``๋ฅผ ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ``ln-s`` ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํด์ค
ln -s /usr/lib64/libdnet.so.1.0.1 /usr/lib64/libdnet.1
3๏ธโฃ SNORT ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
๐น1. ์ค์น ๊ฒฝ๋ก ํ์ธ
- SNORT ๋ฐ์ด๋๋ฆฌ์ ๊ด๋ จ๋ ํ์ผ๋ค์ ์์น ํ
whereis snort
๐น2. SNORT ์คํ ๊ตฌ์กฐ
- ๐ /usr/sbin/snort (์คํํ์ผ)
- โ๏ธ snort.conf (์ค์ ํ์ผ)
- ๐ /rules
- ๐ local.rules (๋ฃฐํ์ผ)
4๏ธโฃ ์ค์ ํ์ผ ์์
vi /etc/snort/snort.conf
๐น1. ์ฒดํฌ์ฌ ๋ชจ๋(checksum_mode) ๋ณ๊ฒฝ
- IP/TCP ์ฒดํฌ์ฌ ๊ฒ์ฌ๋ ํ์ง์ ๋ถํ์ํ๊ฑฐ๋ ๊ฐ์ํ ํ๊ฒฝ์์ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์์ผ๋ฏ๋ก none์ผ๋ก ๋นํ์ฑํํ๋ค
[๋ณ๊ฒฝ ์ ]
# Configure IP / TCP checksum mode
config checksum_mode: all
[๋ณ๊ฒฝ ํ]
# Configure IP / TCP checksum mode
config checksum_mode: none
๐น2. dynamic rules ์ค์ ์ฃผ์ ์ฒ๋ฆฌ
- ๋์ ๋ฃฐ ๋ก๋ฉ ๊ฒฝ๋ก๋ฅผ ๋นํ์ฑํํ์ฌ SNORT๊ฐ ๋์ ๋ฃฐ์ ๋ก๋ํ์ง ์๋๋ก ํ๋ค
[๋ณ๊ฒฝ ์ ]
# path to dynamic rules libraries
dynamicdetection directory /usr/local/lib/snort_dynamicrules
[๋ณ๊ฒฝ ํ]
# path to dynamic rules libraries
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
๐น3. white/blacklist ์ค์ ์ฃผ์ ์ฒ๋ฆฌ
[๋ณ๊ฒฝ ์ ]
# Reputation preprocessor. For more informations see README.reputation
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner, \
whitelist $WHITE_LIST_PATH/white_list.rules, \
blacklist $BLACK_LIST_PATH/black_list.rules
[๋ณ๊ฒฝ ํ]
# Reputation preprocessor. For more informations see README.reputation
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner #, \
#whitelist $WHITE_LIST_PATH/white_list.rules, \
#blacklist $BLACK_LIST_PATH/black_list.rules
๐น4. ํ์ง๋ก๊ทธ ์ ์ฅ ์ค์
- ํ์ง ๊ฒฐ๊ณผ๋ฅผ unified2 ํฌ๋งท์ผ๋ก ์ ์ฅํ๊ณ , ํ์ผ๋ช ์ alert.log๋ก ์ง์ ํ๋ค
- barnyard2์์ ์ฐ๋์ ์ํด ํ์ํ๋ค
[๋ณ๊ฒฝ ์ ]
# unified2
# Recommended for most installs
# output unified2: filename merged.log, limit 128, nostmap, mpls_event_typtes, vlan_ebent_types
[๋ณ๊ฒฝ ํ]
# unified2
# Recommended for most installs
output unified2: filename alert.log, limit 128
๐น5. ๋ฃฐ์ค์
- /etc/snort/rules/local.rules๋ง ์ฌ์ฉํ ์์ ์ด๋ฏ๋ก, ๋ค๋ฅธ ๊ธฐ๋ณธ ๋ฃฐ ์ค์ ๋ค์ ๋ชจ๋ ์ฃผ์ ์ฒ๋ฆฌํ๋ค
- vi ๋ช ๋ น์ด ``:548,651norm i#``์ผ๋ก 548~651์ค ๋ชจ๋ ์ฃผ์์ฒ๋ฆฌ
5๏ธโฃ ๋ฃฐ ํ์ผ ์ค์
- ์ฌ์ฉ์ ์ ์ ๋ฃฐ ํ์ผ์ ์ฌ๋ฌ ํ์ง ๋ฃฐ์ ์ถ๊ฐํ๋ค
vi /etc/snort/rules/local.rules
- ๋ชจ๋ ICMP ํจํท ์ค ํ์ 8(``ping ์์ฒญ``)์ ํ์งํ๋ ๋ฃฐ
- ํ์ง ์ ``"ping-request"`` ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค
alert icmp any any -> any any (msg:"ping-request"; itype:8; sid:1000000; rev:1;)
6๏ธโฃ ์คํ ๋ฐ ํ ์คํธ
๐น1. SNORT ์คํ
- SNORT๋ฅผ ์ธํฐํ์ด์ค ``eth1``์์ ์ค์ ํ์ผ์ ์ฌ์ฉํ์ฌ ์คํํ๋ค
- ``-A fast``๋ ํ์ง ๋ฉ์์ง๋ฅผ ๋น ๋ฅธ ํ ์คํธ ํ์์ผ๋ก ์ถ๋ ฅํ๋ค
๐กSNORT ์คํ ๋ช ๋ น์ด
- snort ``-i`` [๋์นด๋] ``-c`` [์ค์ ํ์ผ]
- snort ``-r`` [pcap ํ์ผ] ``-c`` [์ค์ ํ์ผ] (์บก์ณ ํธ๋ํฝ ์ฝ๊ธฐ ๋ชจ๋)
snort -i eth1 -c /etc/snort/snort,conf -A fast
- ์คํ ํ ``Commencing packet processing`` ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ๋๋ฉด SNORT๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ๊ฒ์ด๋ค
- SNORT ์ข ๋ฃ๋ ``Ctrl+C`` ํค๋ก ๊ฐ๋ฅํ๋ค.
- ์ข ๋ฃ ์, ์ฝ์ ๋ก๊ทธ์์ ``Alerts`` ๊ฐ๊ณผ ``Logged`` ๊ฐ ํ์ธ ๊ฐ๋ฅํ๋ค
- ํ์ฌ ์๋ฌด๋ฐ ์ด๋ฒคํธ๊ฐ ์์์ผ๋ฏ๋ก ``0``์ผ๋ก ๊ธฐ๋ก ๋๋ค
๐น2. Ping ๋ช ๋ น์ผ๋ก ํ ์คํธ ํธ๋ํฝ ๋ฐ์
- ๋ก์ปฌ(ํธ์คํธ) PC์์ CentOS๋ก ping ๋ช ๋ น์ด๋ฅผ ์คํํด ICMP ํธ๋ํฝ์ ์์ฑํ๋ค
- ์์ ์ค์ ํ ICMP ํ์ง ๋ฃฐ์ด ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํ ํ ์คํธ์ด๋ค
๐น3. ํ์ง ๊ฒฐ๊ณผ ํ์ธ
- SNORT ์ฝ์ ๋ก๊ทธ์์ Alerts: 4, Logged: 4์ ๊ฐ์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ฉด ์ค์ ํ ๋ฃฐ์ด ์ ์์ ์ผ๋ก ์๋ํ ๊ฒ์ด๋ค
- ํธ๋ํฝ์ด ์์ ๊ฒฝ์ฐ Alerts: 0, Logged: 0์ผ๋ก ํ์๋๋ค
๐น4. ๋ก๊ทธ ํ์ผ ํ์ธ
- SNORT๊ฐ ์์ฑํ alert ๋ก๊ทธ ํ์ผ์ ์ด์ด ํ์ง๋ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ง์ ํ์ธํ ์ ์๋ค
ls /var/log/snort
vi /var/log/snort/alert
๐น5. ํธ๋ํฝ ๋ฐ ํจํท ๊ตฌ์กฐ ํ์ธ
- ํจํท์ ๋ถ์ํ๊ธฐ ์ํ ``tcpdump` ํด์ ์ค์นํ๋ค
yum install tcpdump -y
- SNORT๊ฐ ์์ฑํ binary ๋ก๊ทธ ํ์ผ์ tcpdump๋ก ๋ถ์ํ์ฌ, ์บก์ฒ๋ ์ค์ ํจํท์ ๋ด์ฉ์ ์ถ๋ ฅํด๋ณผ ์ ์๋ค
tcpdump -nxr /var/log/snort/snort.log.1743484460
728x90
๋ฐ์ํ
'๐จ ๋ณด์ ์ค๋ฌด > ๋ณด์ ๊ด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SNORT] SNORT ์คํค๋ง ๊ตฌ์กฐ์ ๋ฃฐ ๊ตฌ์ฑ ๋ฐ ์ต์ ์ ๋ณด (0) | 2025.04.02 |
---|---|
[์นจ์ ํ์ง์์คํ ์ค์ต] โก SNORT ํ์ง ๋ก๊ทธ๋ฅผ MySQL๋ก ์ฐ๋ํ๊ธฐ (Barnyard2) (0) | 2025.04.01 |
[SOC] SIEM๊ณผ SOAR (0) | 2025.04.01 |
[SOC] ๋ณด์๊ด์ ์์คํ ์์์ ๋ณด์ ์๋ฃจ์ (0) | 2025.04.01 |
[SOC] ๋ณด์๊ด์ ํ์ง ๋ฐ ๋ฐฉ์ด๊ธฐ์ / ํจํด๊ธฐ๋ฐ ํ์ง, ํ์๊ธฐ๋ฐํ์ง (0) | 2025.04.01 |