snort یک سیستم تشخیص نفوذ بر پایه شبکه میباشد که از متد تشخیص امضا استفاده می نماید و بسته های داده شبکه را برای شناسایی حملات شناخته شده و تطبیق آنها کنترل می کند.snort دارای ویژگیهایی است که در ذیل به برخی از آنها اشاره میکنم :
۱- Snort قابلیت شخصی سازی و تنظیم دارد.همه عملکردهای داخلی snort ، فایلهای مربوط به تنظیمات و قوانین مربوط به شناسایی تشیخص نفوذ قابل شخصی سازی میباشد و این قابلیت را به کاربر میدهد تا snort را بر اساس نیاز های خاص خود و ساختار شبکه خود تنظیم نماید.حتی کاربر میتواند در نهایت با استفاده از قابلیت تعریف قوانینی که خود بوجود میآورد با حملات جدید نیز مقابله نماید.
۲- گستردگی استفاده از آن. بسیار زیاد است به طوری که آمار ماهانه دانلود آن به دهها هزار می رسد.
۳- snort یک نرمافزار چند سیستم عاملی است و به راحتی بر روی سیستم عامل های مختلف اجرا می شود.
۴-snort به طور مداوم در حال به روز رسانی است.نسخه های جدید ، قوانین حدید برای شناسایی حملات جدید همگی به طور مداوم از طریق وب سایت www.snort.org قابل بارگزاری هستند.
قسمتهای تشکل دهنده Snortهدف طراحان Snort تولید یک نرمافزار متن باز با کیفیت بالا بوده است که به نظر بسیاری از کارشناسان در این امر موفق بوده اند.در پروسه طراحی Snort توسعه دهندگان انرژی خود را برای استفاده از ابزارهای موجود و توسعه تواناییهای این ابزارهای برای تولید چیزهای جدید متمرکز نموده اند.حالا فکر میکنید مثلاً کدام ابزار موجود.یکی از ابزارهای بسیار کابردی درسیستم های مبتنی بر یونیکس و لینوکس TcpDump می باشد.که وظیفه آن دریافت بسته های داده در شبکه می باشد.خالق snort آقای Marty Roesch از این قابلیت Tcp Dump برای گرفتن بسته ها استفاده نمود و قابلیت آنالیز این بسته ها برای مجموعهای از امضاهای حملات را به آن اضافه نمود.snort از اجزای مختلفی تشکیل شده است که هر جزء وظایف مربوط به خود را انجام میدهد که در شکل زیر اجزای آن را مشاهده می نمایید.
قوانین Snort برای خلاف بسیاری از محصولات تجاری مشابه بسیار انعطاف پذیر هستند و کاربر به راحتی می تواند قوانین دلخواه خود را برای شناسایی حملات مورد نظرش تعریف نماید .برای مثال در ذیل قانون تعریف شده برای شناسایی تروجان SubSeven آورده می شود :
alert tcp $EXTERNAL_NET 27374 -> $HOME_NET any (msg:"BACKDOOR subseven 22"; flags: A+; content: "|0d0a5b52504c5d3030320d0a|"; reference:arachnids,485; reference:url,www.hackfix.org/subseven/; sid:103; classtype:misc-activity; rev:4;)
محتویات قبل از پرانتر به عنوان rule header شناخته می شود و محتویات داخل پرانتر به عنوان انتخاب های قانون Rule Options شناخته می شود.