코딩두의 포트폴리오

[1~2주차] github 오픈소스의 이슈(성능/개선점) 자료조사 (Suricata) 본문

Suricata

[1~2주차] github 오픈소스의 이슈(성능/개선점) 자료조사 (Suricata)

코딩두 2024. 10. 30. 20:21

 

[개발 환경]

  • OS - 리눅스 환경(Ubuntu, CentOS) -> 리눅스에서 성능이 최적화 -> 패킷 캡처, 트래픽 분석에 적합
  • 패키지 & 라이브러리 - apt, yum등의 매니저가 있는 환경에서 설치

[개발 언어]

C언어 - suricata의 핵심 모듈이 C로 개발되어 있음 -> 커스텀 모듈 추가 및 최적화 작업을 위해 C를 사용

 

[주요 기술 & 프레임워크]

  • 패킷 캡처 라이브러리: libpcap과 PF_RING 등 고성능 패킷 캡처 라이브러리가 필요
  • 멀티스레딩 및 고성능 네트워크 프로그래밍: Suricata는 다중 코어 활용을 위해 멀티스레드 기반의 구조를 사용
  • 규칙 작성 및 분석: Suricata 규칙을 활용하여 다양한 공격 패턴을 정의하고 탐지하는 기능이 필요
  • 파일 추출 및 무결성 보장 기술: 네트워크 트래픽에서 파일을 추출하고 해당 파일의 무결성을 검증하기 위해 해시 및 암호화 기술을 활용할 수 있음
  • 로그 관리 및 분석: ELK 스택 (Elasticsearch, Logstash, Kibana) 또는 Splunk를 사용하여 로그를 수집, 분석하고, 시각화할 수 있음
  • 악성코드 분석 및 인텔리전스 활용: 파일 추출 후 악성코드로 의심되는 파일을 분석하고, 위협 인텔리전스 피드와 연계하여 악성 여부를 판단할 수 있는 시스템이 필요

[성능]

  • 다중 스레드 및 병렬 처리: 여러 코어에서 패킷을 동시에 분석하여 효율성을 극대화
  • 프로토콜 기반 세부 분석: HTTP, DNS, TLS 등 다양한 프로토콜을 심층 분석해 세밀한 보안 위협 탐지 가능
  • 고급 메모리 관리: 메모리와 CPU 사용 최적화를 통해 대규모 트래픽 처리 성능을 개선

[개선점]

  • 성능 최적화: 고속 네트워크 환경에서 패킷 처리 성능을 더 높일 필요가 있을 수 있습니다. 다중 스레드 활용, 메모리 효율 개선 등이 주요한 개선 방향
  • 프로토콜 지원 확대: 최신 프로토콜이나 TLS/HTTP2 등의 복잡한 패턴을 더욱 잘 처리하도록 업데이트가 필요
  • 알림 최적화: 과도한 경고 로그 발생을 줄이기 위해 더욱 세분화된 경고 필터링 기능이 유용할 것
  • 사용자 친화성 강화: 설정 파일이 복잡해지기 쉬운 구조라, 설정을 단순화하거나 UI를 통한 관리 기능이 있으면 유용할 수 있음

'Suricata' 카테고리의 다른 글

Suricata 전체적인 개발 목표  (0) 2024.11.19
[1~2주차] github 오픈소스 자료조사 (Suricata)  (2) 2024.10.29
Suricata 맛보기  (2) 2024.10.09