라즈베리 파이 5에 IDSTower를 설치하는 단계별 가이드

궁극의 가정 및 소규모 비즈니스 보안 솔루션

C05348A3-9AB8-42C9-A6E0-81DB3AC59FEB
           

예산으로 보안을 강화하세요! 점점 더 연결되는 세상에서 홈 네트워크든 소규모 비즈니스든 보안은 가장 중요합니다. 사이버 위협은 매일 진화하고 있기 때문에 민감한 데이터를 보호하고 네트워크 무결성을 유지하기 위한 사전 예방적 조치를 구현하는 것이 필수적입니다. 다행히도 침입 탐지 시스템(IDS)을 설정하는 데 더 이상 값비싼 하드웨어나 고급 기술 전문 지식이 필요하지 않습니다. Raspberry Pi 5가 출시되면서 이제 비용 효율적이고 에너지 효율적인 플랫폼에 강력한 IDS 솔루션인 IDSTower와 같은 강력한 보안 도구를 설치할 수 있게 되었습니다. 이 블로그에서는 라즈베리 파이 5에 IDSTower를 설치하는 단계별 가이드를 안내하고 이 설정이 가정 사용자 및 소규모 비즈니스에 이상적인 이유를 설명합니다.

cropped-favicon

수리카타와 ID스타워란 무엇인가요?

Suricata는 대부분의 민간 및 공공 기관에서 사용하는 고성능 오픈 소스 네트워크 분석 및 위협 탐지 소프트웨어로, 주요 공급업체에서 자산 보호를 위해 내장하고 있습니다.

IDSTower는 Suricata의 프로비저닝, 구성 및 규칙 관리를 간소화하는 도구입니다. DSTower는 사용자 친화적인 관리 인터페이스를 추가하여 사이버 보안에 대한 경험이 많지 않은 사용자도 쉽게 사용할 수 있습니다. IDSTower에는 단일 호스트를 위한 무료 라이선스가 포함되어 있어 이 프로젝트에 적합합니다.

하드웨어

Suricata는 실시간 침입 탐지(IDS), 침입 방지(IPS), 네트워크 보안 모니터링(NSM), 심층 패킷 검사(DPI)를 위해 설계된 고성능 네트워크 보안 도구입니다. 네트워크 트래픽을 실시간으로 분석하여 잠재적으로 악의적인 활동을 탐지합니다.

패킷 캡처를 실시간으로 분석하려면 CPU뿐만 아니라 많은 메모리도 필요합니다. 8GB RAM과 2.4GHz 64비트 쿼드코어 Arm Cortex-A76 프로세서가 탑재된 Raspberry Pi 5, 싱글 보드 컴퓨터는 이러한 작업을 처리할 수 있습니다!

harrison-broadbent-raLeFIxXgDY-unsplash

라즈베리 파이에 IDSTower 설치하기

최신 운영체제를 사용해야 합니다. 이 글을 작성할 당시 저는 Debian 버전 12(책벌레)를 기반으로 하는 64비트 Raspberry Pi OS Lite (적을수록 좋습니다!)를 사용했습니다.

시작하기 전에 무료 IDSTower 라이선스를 받아야 합니다.

또한 설치가 완료된 후 웹 UI에 액세스할 수 있도록 포트 443을 열어야 합니다:

sudo apt install iptables-persistent
sudo iptables -I INPUT 1 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent 저장

또한 네트워크 인터페이스가 무차별 모드를 지원하는지 확인해야 네트워크의 트래픽을 감시할 수 있습니다:

iw phy phy0 정보
netstat -i
sudo ip link set eth0 promisc on
sudo ifconfig eth0 -promisc

라즈베리 파이에 IDSTower를 설치하는 것은 매우 간단합니다. 저는 Debian 12.1(Bookworm) 에 설치하기의 지침을 따르기만 하면 됩니다.

주의를 기울여 설치 중에 오류가 없는지 확인하세요. 마지막에 스크립트는 IDSTower 웹 UI의 URL과 구성을 위해 생성된 사용자 이름 및 비밀번호를 출력합니다.

라즈베리 파이에서 IDSTower 구성하기

첫 번째 클러스터를 만들고 규칙 및 표시기를 구성하여 설치 지침을 계속 따르세요. 저는 다음 설정을 사용했습니다:

  • 수리카타를 설치하는 IDS 소프트웨어 - 최신 버전 (7) - 공식 저장소 - (인터넷 필요)  
  • Filebeat를 설치하기 위한 로그 발송자 소프트웨어 - 최신 버전(8) - 공식 저장소 - (인터넷 필요) 

특정 호스트만 모니터링하는 것이 아니라 로컬 네트워크의 트래픽을 관찰하고 싶었기 때문에 "IDS + NSM" Suricata 설정을 선택했습니다. NSM은 네트워크 보안 모니터링의 약자입니다.

IDSTower/Suricata에 규칙이 로드되지 않음 문제 해결

가장 먼저 놀란 것은 클러스터에 규칙이 로드되지 않는다는 사실이었습니다. 모든 것이 정상적으로 작동하고 모든 서비스가 실행 중이었지만 규칙이 로드되지 않았습니다.

약간의 '구글 검색'을 통해 첫 번째 단서를 찾을 수 있었습니다:

suricatasc -v
/var/run/suricata-command.socket 소켓에 연결할 수 없습니다: L178: [Errno 2] 해당 파일 또는 디렉터리 없음
 
tail -f /var/log/idstower/heartbeat.log
==> /var/log/idstower/heartbeat.log <==
[2024-09-20T11:21:01-0700] [Info] ==================== IDSTower Heartbeat Script ====================
[2024-09-20T11:21:01-0700] [Info] Starting script....
[2024-09-20T11:21:04-0700] [Info] Getting suricata metrics...
[2024-09-20T11:21:04-0700] [Warning] socket file not found: /
[2024-09-20T11:21:04-0700] [경고] 활성 Suricata 소켓 파일을 찾을 수 없습니다.
[2024-09-20T11:21:04-0700] [경고] 소켓 파일을 찾을 수 없습니다: /var/run/suricata-command.socket
[2024-09-20T11:21:04-0700] [경고] suricata 메트릭을 얻을 수 없습니다, 활성 소켓 파일을 찾을 수 없습니다:
[2024-09-20T11:21:04-0700] [정보] IDSTower에 하트비트 전송...
[2024-09-20T11:21:04-0700] [정보] 하트비트를 IDSTower에 성공적으로 전송, API 응답..: {"success":true,"statusCode":0,"data":true}
[2024-09-20T11:21:04-0700] [Info] IDSTower Heartbeat 완료.
[2024-09-20T11:22:01-0700] [Info] ==================== IDSTower Heartbeat Script ====================
[2024-09-20T11:22:01-0700] [Info] Starting script....
[2024-09-20T11:22:04-0700] [Info] suricata 메트릭을 가져오는 중...
suricata -c /etc/suricata/suricata.yaml --dump-config | grep -e dir -e unix-

제 생각에는 데비안 북웜 서비스가 구성 파일에서 예상하는 위치에 suricata-command.socket을 구성하지 않고 /var/suricata-command.socket이 아닌 /var/run/suricata-command.socket에 구성한 것 같습니다. 또한, 수리카타는 루트로 실행되지만 IDSTower는 아이디스타워 사용자로 실행되므로 몇 가지 권한 문제도 있습니다.

이 문제를 해결하려면 다음 명령을 실행하세요:

sudo chgrp idstower /var/run/suricata-command.socket

IDSTower 웹 UI에서 suricata.yaml 파일(클러스터, 설정, 고급)을 편집하고 "파일 이름" 줄의 주석 처리를 해제하고 이를 다음과 같이 바꿉니다:

unix-command:
활성화됨: 자동
파일명: /var/run/suricata-command.socket

클러스터를 다시 시작하면 이제 규칙이 로드되고 있을 것입니다.

ElastiSearch 통합

또한 결과를 시각화할 수 있기를 바라며 'ElastiSearch로 이벤트 보내기(버전 2.0.0)' 옵션을 선택했습니다. 하지만 너무 많은 리소스를 필요로 하는 것인지 Raspi에서 ElastiSearch를 실행할 수 없었습니다. 대신 Bonsai.io의 무료 클라우드 기반 옵션을 선택했습니다. 그러나 이 글을 쓰는 시점에서 이 회사의 ElastiSearch 버전(Elasticsearch 7.10.2)은 FileBeat 버전 8의 IDSTower 버전과 호환되지 않습니다.....

결론

라즈베리 파이 5에 IDSTower를 설치하면 강력하고 저렴하며 에너지 효율적인 방법으로 홈 네트워크 또는 소규모 비즈니스를 사이버 위협으로부터 보호할 수 있습니다. 라즈베리 파이 5의 향상된 하드웨어와 IDSTower의 강력한 침입 탐지 기능이 결합된 이 솔루션은 관리하기 쉽고 상시 가동되는 보안 시스템을 원하는 모든 사람에게 이상적인 솔루션입니다.

다음은 수리카타의 작동 방식과 주요 구성 요소에 대한 분석입니다:

1. 트래픽 캡처 및 분석

Suricata의 핵심은 네트워크 트래픽을 캡처하고 실시간으로 데이터를 분석하는 것입니다. 다음을 포함한 여러 계층에서 패킷을 검사합니다:

  • 링크 레이어 (이더넷 헤더 등)
  • 네트워크 계층 (IP 헤더)
  • 전송 계층 (TCP, UDP 등)
  • 애플리케이션 계층 (HTTP, FTP, SMTP 등)

Suricata는 무차별 모드에서 네트워크 인터페이스 카드(NIC)를 사용하여 설치된 장치로 향하는 트래픽뿐만 아니라 네트워크를 통해 흐르는 모든 트래픽을 캡처합니다.

2. 심층 패킷 검사(DPI)

Suricata는 패킷 헤더 분석에 그치지 않습니다. 네트워크 패킷의 페이로드(콘텐츠)를 검사하여 멀웨어, 피싱 시도 또는 파일 기반 익스플로잇과 같은 애플리케이션 수준 공격을 탐지할 수 있는 심층 패킷 검사(DPI)를 수행합니다.

  • Suricata는 HTTP, DNS, SMB, FTP, TLS 등과 같은 다양한 프로토콜을 구문 분석합니다.
  • 네트워크 트래픽에서 알려진 공격 시그니처와 비정상적인 동작을 모두 디코딩하고 검사할 수 있습니다.
  • DPI는 파일 다운로드 또는 기타 형태의 콘텐츠에 숨겨진 멀웨어를 탐지하는 데 매우 중요합니다.

3. 멀티 스레딩 및 고성능

수리카타는 멀티 스레딩을 통해 많은 양의 트래픽을 효율적으로 처리하도록 설계되었습니다. 여러 프로세서 코어를 동시에 사용하여 네트워크 데이터를 처리하고 검사할 수 있으므로 고속 및 엔터프라이즈 네트워크에 적합합니다.

Suricata는 적절한 하드웨어와 구성으로 최대 기가비트 및 테라비트 수준의 속도로 작동할 수 있습니다.

4. 서명 기반 탐지

Suricata가 사용하는 주요 탐지 방법 중 하나는 "시그니처" 또는 "규칙"이라고 하는 사전 정의된 공격 패턴 데이터베이스와 캡처된 네트워크 트래픽을 비교하는 시그니처 기반 탐지입니다.

  • 이러한 서명은 종종 Snort 호환 규칙 구문으로 작성되며, 이는 Snort IDS용으로 개발된 방대한 서명 라이브러리를 사용할 수 있음을 의미합니다.
  • 규칙은 다음과 같은 것을 감지할 수 있습니다:
    • 알려진 멀웨어 시그니처
    • 포트 스캔 시도
    • 버퍼 오버플로 익스플로잇
    • SQL 인젝션 공격

규칙은 다음과 같이 보일 수 있습니다:

plaintextCopy codealert tcp any any -> 192.168.1.100 80 (msg:"잠재적 웹 공격"; content:"GET"; http_method; sid:1000001;)

이 규칙은 포트 80의 IP 192.168.1.100에서 웹 서버로 전송되는 HTTP GET 요청을 확인합니다.

5. 이상 징후 기반 탐지

시그니처 기반 탐지 외에도 Suricata는 이상 징후 기반 탐지 기능도 지원합니다. 이 기술은 "정상적인" 네트워크 동작의 기준선을 만든 다음, 이 기준선에서 벗어나는 것을 잠재적 위협으로 표시하는 것입니다.

  • 예를 들어 기기가 이상한 시간에 갑자기 많은 수의 요청을 생성하기 시작하거나 비정상적인 IP 주소와 통신하는 경우 알림을 트리거할 수 있습니다.
  • 이를 통해 제로데이 공격이나 사전 정의된 시그니처가 없는 새로운 위협을 탐지하는 데 도움이 될 수 있습니다.

6. 프로토콜 식별 및 분석

Suricata에는 강력한 프로토콜 인식 엔진이 포함되어 있습니다. 네트워크 트래픽이 비표준 포트를 사용하더라도 Suricata는 데이터를 검사하여 프로토콜을 감지할 수 있습니다. IPP(프로토콜 식별)라고 하는 이 기능을 통해 Suricata는 다음을 수행할 수 있습니다:

  • 애플리케이션 프로토콜이 표준 포트에서 실행되지 않는 경우에도 인식합니다(예: 비표준 포트에서 실행되는 HTTP 트래픽).
  • 애플리케이션 계층에서 트래픽을 분석하여 HTTP, TLS, SSH, DNS, FTP 등의 프로토콜을 식별합니다.

7. 흐름 및 세션 추적

Suricata는 개별 패킷을 분석하는 대신 네트워크 '흐름'(두 장치 간의 관련 패킷 스트림)을 추적할 수 있습니다. 이를 통해 연결 상태(예: TCP 연결)를 파악하고 여러 패킷에서 발생하는 복잡한 공격 패턴을탐지할 수 있습니다:

  • TCP 재조립: 조각난 TCP 패킷을 재구성하여 페이로드를 완전히 검사합니다.
  • 파일 추출: 추가 분석 또는 파일 무결성 검사를 위해 HTTP, FTP 또는 SMB를 통해 전송된 파일을 추출할 수 있습니다.
  • TLS/SSL 검사: Suricata는 암호화된 트래픽을 검사하고 SSL/TLS 프로토콜 이상 징후를 감지할 수 있습니다.

8. 로깅 및 알림

Suricata는 발생하는 규칙과 탐지에 따라 상세한 로그와 경고를 생성합니다. 다음을 포함한 다양한 유형의 네트워크 데이터를 기록할 수 있습니다:

  • 알림: 알림: 규칙 기반 탐지(예: 익스플로잇 시도)에 대한 즉각적인 알림입니다.
  • 로그: 로그: 트래픽 로그, 연결 로그, 프로토콜별 로그(예: DNS, HTTP 트랜잭션).
  • PCAP 파일: Suricata는 나중에 분석할 수 있도록 원시 패킷 데이터를 PCAP 형식으로 저장할 수 있습니다.

로그를 다음과 같은 외부 시스템으로 내보낼 수 있습니다:

  • 상관관계 및 고급 분석을 위한 SIEM(보안 정보 및 이벤트 관리) 시스템.
  • 네트워크 데이터와 보안 경보의 강력한 시각화를 위한 ELK 스택(Elasticsearch, Logstash, Kibana ).

9. 침입 방지 시스템(IPS) 모드

IPS 모드로 구성하면 Suricata는 악성 트래픽을 탐지할 뿐만 아니라 능동적으로 차단할 수 있습니다. 시스템이 잠재적 공격에 대해서만 경고를 보내는 수동적 IDS 모드와 달리, IPS 모드에서는 Suricata가 가능합니다:

  • 의심스러운 패킷 또는 전체 연결을 삭제하거나 거부하세요.
  • 인라인 모드를 사용하면 네트워크와 외부 세계 사이에 위치하여 위협이 내부 디바이스에 도달하기 전에 차단합니다.

10. 확장성 및 유연성

Suricata는 구성이 용이하며 소규모 가정 환경부터 대규모 엔터프라이즈 인프라에 이르기까지 다양한 네트워크 환경에 배포할 수 있습니다. 유연성은 다음과 같습니다:

  • 분산 배포: Suricata를 여러 노드에 배포하여 네트워크의 여러 부분을 모니터링하고 그 결과를 중앙 서버로 전송할 수 있습니다.
  • 통합: Suricata는 위협 인텔리전스 플랫폼, 안티바이러스 시스템 및 엔드포인트 탐지 시스템과 같은 다른 도구와 통합됩니다.

요약

기본적으로 Suricata는 여러 계층(링크, 네트워크, 전송, 애플리케이션)에서 네트워크 트래픽을 캡처하고 검사하여 시그니처 기반 및 이상 징후 기반 탐지 기술을 모두 사용하여 위협을 식별하는 방식으로 작동합니다. 멀티 스레딩 기능을 통해 대량의 트래픽을 효율적으로 처리할 수 있으며 다양한 로깅, 경고 및 예방 메커니즘을 제공합니다. IDS로 배포하든 IPS로 배포하든 Suricata는 네트워크 기반 공격을 실시간으로 모니터링, 탐지 및 방지하는 강력한 도구입니다.

댓글을 게시했습니다: 0

Tagged with:
CyberSecurity linux