Snort 와 Snort Inline 의 차이점...

segenny의 이미지

Snort의 구조. 의미 간단한건 알겠는데

Snort inline 은 iptables 로 이용하여 IPS 의 효과를 낸다.. 뭐 이러는것 같은데요

뭘 이미 하는지 잘 모르겠어요.

좀 아시는분은 해주실수 있으세요??

부탁합니다.

mach의 이미지

1) 스노트는 패킷을 수동적으로 수집해서, 이를 분류/조합 한 후, 자신의 룰구조에 입력하여 매칭을 하고, 결과가 만족(참)되면, 이를 룰에 기술한 형태로 로깅을 수행합니다.
- 패킷수집, 세션재조립, 룰트리, 룰매칭, 로깅
-- 이 중에서 패킷수집부분, 즉, Layer 2부분에 대한 인터페이스로 스노트는 pcap을 채택했습니다. 그리고, 모든 부분을 사용자영역에서 만들었습니다. 이때, pcap은 무엇보다도 호환성(portability)가 뛰어난 패킷 수집라이브러리 이므로, 스노트는 다양한 플랫폼에서 사용될 수 있었습니다.
-- 로깅부분이 이슈가 되는데, 단지 로그만 남길것인가? 아니면, 특정행위(차단이겠지요?^^ )를 수행할 것인가?를 가지고 몇가지 프로젝트가 이슈가 되었었습니다.
...... 그중에 하나가 스노트인라인이고, 이는 정식으로 스노트엔진에 포함되어 배포되게 됩니다. (마치, 커널 모듈 이나, 커널패치를 발표하는 사람들이 정식 커널배포판에 포함되기를 기대하는 것처럼 말이지요. 음 .. VM .... XEN이 요즘 이를 원하고 있다지요?)

2) 스노트인라인은 스노트에 몇몇 기술을 통합해서 이뤄집니다.
(1) 브리지 구성(bridge; 우분투 브리지와는 전혀 다릅니다 ^^ )
가) 브리지는 다수개의 망과 망을 연결하는 것을 의미합니다.
나) 예를들어, ethernet card를 두개 가지고 있는 장비에 라인을 꽂아 두개의 라인을 하나의 라인으로 연결할 수 있겠지요. 즉, 라인과 라인사이(in-line)에 장비를 둘 수 있습니다.
-- 적용이전의 라인 형태
====================================
-- 적용이후의 라인형태
=========eth0 -- eth1 =================
다) 위에처럼 망을 연동하여 양쪽의 트래픽을 서로 유통시킬 수 있게 해주는 것이 브리지이며, 특히, 이더넷의 경우 이더넷브리지라고 부릅니다. 브리지를 구성하게 되면, eth0+eth1은 논리적인 이더넷인터페이스(예를들어 br0)등으로 명명하여 운영할 수 있습니다. 논리적인터페이스 br0에도 리눅스의 방화벽 메카니즘을 적용할 수 있습니다(iptables참조). 브리지는 ip를 가지지 않아도 되므로, 양단간에서는 중간에 뭔가가 있다는 것을 감지하지 못하게 할 수도 있습니다. stealth 파이어월을 구성할 수 있다는 얘기지요.
라) 괜히, 잘 소통되는 라인선상에(inline) 위와 같은 구성을 할리는 없고, 브리지를 구성하고는 이 브리지 단에서 모니터링이나, 필터링을 수행 하게 됩니다. 필터링을 수행하는 방법은 리눅스의 방화벽 메카니즘인 iptables(ip 단, L3)를 사용하거나, ebtables(etherenet 단, L2)를 이용할 수 있습니다.

(2) QUEUE 타겟(IPTABLES)
가) 대부분의 방화벽 메카니즘은 커널단에서 이뤄집니다. 리눅스의 iptables도 커널내부에 필터링룰을 위한 자료구조를 가지고 있고, 이 자료구조에 룰을 삽입/삭제/갱신등을 하여 방화벽을 구성합니다. 이 자료구조는 마치 데이터베이스의 테이블과 비슷한 뷰를 제공하는데, 3개의 테이블(filter, nat, mangle)로 구성됩니다. iptables 룰을 사용하여 커널내의 테이블 에 룰을 등록해 두면, 패킷은 이 테이블을 순회하고, 조건이 맞는 룰이 있으면 그 룰에 따라, 패킷은 버려지거나, 포워드되거나, 등등 행위를 수행하게 됩니다. 그런데, 리눅스의 iptables에는 QUEUE라는 타겟을 제공합니다.
조건이 맞으면, 이를 QUEUE로 보내게 됩니다.
나) 여기서 QUEUE는 사용자 영역으로 전달되는 것을 의미합니다. 자료구조에서 보는 큐와 유사하게 전달됩니다. 일단 QUEUE로 넘어오면, 이제 패킷에 대한 처리는 사용자 프로세스에게 달려있습니다.
다) 커널에서 사용자영역으로 패킷을 전송하는 것은 iptables의 룰을 queue 타겟으로 하면됩니다. 그러면, 사용자 영역에서는 어떻게 받는가? 이를 위한 프로그래밍 인터페이스가 있는데, libipq입니다.(참고로, iptables은 libiptc를 이용해서 만들어진 사용자 수준 유틸리티입니다) 따라서, libipq를 이용하면 네트워크인터페이스에서 입력된 패킷을 커널이 사용자 영역으로 보낼때, 보내온 패킷을 받을 수 있고, 커널로 패킷을 보낼 수 있습니다. 이렇게 커널로 전달된 패킷은 네트워크인터페이스를 거쳐 전송되게 될것입니다.
라) 사용자 영역으로 패킷이 왔을때, 이 패킷들을 처리하여, 패킷을 커널로 보내지 않거나(drop), 임의의 패킷을 생성하거나, 패킷을 포워드할 수 있습니다.

(3) snort inline
위의 1), 2)를 구축하고, 패킷에 대한 판단을 snort에게 하게 한 것이 snort inline입니다.

(4) 정리하자면, 스노트인라인은 브리지구성하고, iptables queue 타겟으로 패킷을 받아서, 스노트로직으로 검사하고, 패킷을 포워드하거나 드랍하는 것입니다.

----------------------
키워드) snort, bridge, etherenet bridge, ebtables, iptables, libipq, libiptc, queue target, ip_queue kernel module, snort rule

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

segenny의 이미지


그런데 .리눅스 보안관련해서 다른 분들은 어떤걸 구축하시나요?

예를들면, snort , chkrootkit , tripwire ....

패킷을 검출하고,예방하고 , 이미 그래도 수상한 파일이나 root계정으로 사용하면 캐취하는..

궁합이(?) 좋게 사용하는 방법이 따로 있나요??

---------------------------------------
안된다고 하지말고 아니라고 하지말고 어떻게~!
된다!고요~~

안된다고 하지말고 아니라고 하지말고 어떻게~!

된다!고요~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.