ืฉื—ืจื•ืจ ื‘ื˜ื ืื—ืจื•ืŸ ืฉืœ ืžืขืจื›ืช ื–ื™ื”ื•ื™ ื—ื“ื™ืจื” ืฉืœ Snort 3

ื—ื‘ืจืช ืกื™ืกืงื• ืžื•ืฆื’ ื’ืจืกืช ื‘ื˜ื ืกื•ืคื™ืช ืฉืœ ืžืขืจื›ืช ืœืžื ื™ืขืช ืชืงื™ืคื•ืช ืฉืขื•ืฆื‘ื” ืžื—ื“ืฉ ืœื—ืœื•ื˜ื™ืŸ ื ื—ืจื” 3, ื”ื™ื“ื•ืข ื’ื ื›ืคืจื•ื™ืงื˜ Snort++, ืฉืขื•ื‘ื“ ืขืœื™ื• ืœืกื™ืจื•ื’ื™ืŸ ืžืื– 2005. ืžื•ืขืžื“ ืœืฉื—ืจื•ืจ ืžืชื•ื›ื ืŸ ืœื”ืชืคืจืกื ื‘ื”ืžืฉืš ื”ืฉื ื”.

ื‘ืกื ื™ืฃ ื”ื—ื“ืฉ, ืงื•ื ืกืคื˜ ื”ืžื•ืฆืจ ืžื—ื•ืฉื‘ ืžื—ื“ืฉ ืœื—ืœื•ื˜ื™ืŸ ื•ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžืขื•ืฆื‘ืช ืžื—ื“ืฉ. ื‘ื™ืŸ ื”ืชื—ื•ืžื™ื ืฉื”ื•ื“ื’ืฉื• ื‘ืขืช ื”ื›ื ืช ืกื ื™ืฃ ื—ื“ืฉ, ื”ื™ื™ืชื” ืคื™ืฉื•ื˜ ื”ืงืžื” ื•ื”ืฉืงื” ืฉืœ Snort, ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชืฆื•ืจื”, ืคื™ืฉื•ื˜ ื”ืฉืคื” ืœื‘ื ื™ื™ืช ื›ืœืœื™ื, ืื™ืชื•ืจ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื›ืœ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื, ืžืชืŸ ืžืขื˜ืคืช ืœืฉืœื™ื˜ื” ืžื”ืคืงื•ื“ื” ืงื•, ืฉื™ืžื•ืฉ ืคืขื™ืœ ื‘ืจื™ื‘ื•ื™ ื”ื”ืœื™ื›ื™ื ืขื ื’ื™ืฉื” ืžืฉื•ืชืคืช ืฉืœ ืžืขื‘ื“ื™ื ืฉื•ื ื™ื ืœืชืฆื•ืจื” ื‘ื•ื“ื“ืช.

ื”ื—ื™ื“ื•ืฉื™ื ื”ืžืฉืžืขื•ืชื™ื™ื ื”ื‘ืื™ื ื™ื•ืฉืžื•:

  • ื‘ื•ืฆืข ืžืขื‘ืจ ืœืžืขืจื›ืช ืชืฆื•ืจื” ื—ื“ืฉื” ื”ืžืฆื™ืขื” ืชื—ื‘ื™ืจ ืžืคื•ืฉื˜ ื•ืžืืคืฉืจืช ืฉื™ืžื•ืฉ ื‘ืกืงืจื™ืคื˜ื™ื ืœื™ืฆื™ืจืช ื”ื’ื“ืจื•ืช ื“ื™ื ืžื™ืช. LuaJIT ืžืฉืžืฉ ืœืขื™ื‘ื•ื“ ืงื‘ืฆื™ ืชืฆื•ืจื”. ืชื•ืกืคื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ LuaJIT ืžืกื•ืคืงื™ื ืขื ื™ื™ืฉื•ื ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช ืœื›ืœืœื™ื ื•ืžืขืจื›ืช ืจื™ืฉื•ื;
  • ืžื ื•ืข ื–ื™ื”ื•ื™ ื”ืชืงื™ืคื” ืขื‘ืจ ืžื•ื“ืจื ื™ื–ืฆื™ื”, ื”ื›ืœืœื™ื ืขื•ื“ื›ื ื• ื•ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœืงืฉื•ืจ ืžืื’ืจื™ื ื‘ื›ืœืœื™ื (ื“ื‘ื™ืงื™ื). ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื ื•ืข ื”ื—ื™ืคื•ืฉ Hyperscan, ืฉืื™ืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืชื‘ื ื™ื•ืช ืžื•ืคืขืœื•ืช ืžื”ื™ืจื•ืช ื•ืžื“ื•ื™ืงื•ืช ื™ื•ืชืจ ืขืœ ื‘ืกื™ืก ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื ื‘ื›ืœืœื™ื;
  • ื ื•ืกืฃ ืžืฆื‘ ื”ืชื‘ื•ื ื ื•ืช ืคื ื™ืžื™ืช ื—ื“ืฉ ืขื‘ื•ืจ HTTP ืฉืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ืืช ืžืฆื‘ ื”ื”ืคืขืœื” ื•ืžื›ืกื” 99% ืžื”ืžืฆื‘ื™ื ื”ื ืชืžื›ื™ื ืขืœ ื™ื“ื™ ื—ื‘ื™ืœืช ื”ื‘ื“ื™ืงื” HTTP ื—ื•ืžืง. ืงื•ื“ ืœืชืžื™ื›ื” ื‘-HTTP/2 ื ืžืฆื ื‘ืคื™ืชื•ื—;
  • ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืฆื‘ ื‘ื“ื™ืงืช ื”ืžื ื•ืช ื”ืขืžื•ืง ืฉื•ืคืจื• ืžืฉืžืขื•ืชื™ืช. ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœืขื™ื‘ื•ื“ ืžื ื•ืช ืžืจื•ื‘ื” ื—ื•ื˜ื™ื, ื”ืžืืคืฉืจ ื‘ื™ืฆื•ืข ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืžืกืคืจ ื—ื•ื˜ื™ื ืขื ืžืขื‘ื“ื™ ืžื ื•ืช ื•ืžืชืŸ ืžื“ืจื’ื™ื•ืช ืœื™ื ื™ืืจื™ืช ื‘ื”ืชืื ืœืžืกืคืจ ืœื™ื‘ื•ืช ื”-CPU;
  • ื”ื•ื˜ืžืขื• ืื—ืกื•ืŸ ืชืฆื•ืจื” ืžืฉื•ืชืฃ ื•ื˜ื‘ืœืื•ืช ืชื›ื•ื ื•ืช, ื”ืžืฉื•ืชืฃ ื‘ื™ืŸ ืชืช-ืžืขืจื›ื•ืช ืฉื•ื ื•ืช, ืžื” ืฉื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืขืœ ื™ื“ื™ ื‘ื™ื˜ื•ืœ ื›ืคื™ืœื•ืช ื”ืžื™ื“ืข;
  • ืžืขืจื›ืช ืจื™ืฉื•ื ืื™ืจื•ืขื™ื ื—ื“ืฉื” ื‘ืคื•ืจืžื˜ JSON ื•ืžืฉื•ืœื‘ืช ื‘ืงืœื•ืช ืขื ืคืœื˜ืคื•ืจืžื•ืช ื—ื™ืฆื•ื ื™ื•ืช ื›ื’ื•ืŸ Elastic Stack;
  • ืžืขื‘ืจ ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื•ื“ื•ืœืจื™ืช, ื™ื›ื•ืœืช ืœื”ืจื—ื™ื‘ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืืžืฆืขื•ืช ื—ื™ื‘ื•ืจ ืชื•ืกืคื™ื ื•ื”ื˜ืžืขืช ืชืชื™ ืžืขืจื›ื•ืช ืžืจื›ื–ื™ื•ืช ื‘ืฆื•ืจื” ืฉืœ ืชื•ืกืคื™ื ื”ื ื™ืชื ื™ื ืœื”ื—ืœืคื”. ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ื›ืžื” ืžืื•ืช ืชื•ืกืคื™ื ื›ื‘ืจ ื”ื•ื˜ืžืขื• ืขื‘ื•ืจ Snort 3, ื”ืžื›ืกื™ื ืชื—ื•ืžื™ ื™ื™ืฉื•ื ืฉื•ื ื™ื, ืœืžืฉืœ, ืžืืคืฉืจื™ื ืœืš ืœื”ื•ืกื™ืฃ ืงื•ื“ืงื™ื ืžืฉืœืš, ืžืฆื‘ื™ ื”ืชื‘ื•ื ื ื•ืช ืคื ื™ืžื™ืช, ืฉื™ื˜ื•ืช ืจื™ืฉื•ื, ืคืขื•ืœื•ืช ื•ืืคืฉืจื•ื™ื•ืช ื‘ื›ืœืœื™ื;
  • ื–ื™ื”ื•ื™ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืฉื™ืจื•ืชื™ื ืคื•ืขืœื™ื, ืžื‘ื˜ืœ ืืช ื”ืฆื•ืจืš ืœืฆื™ื™ืŸ ื™ื“ื ื™ืช ื™ืฆื™ืื•ืช ืจืฉืช ืคืขื™ืœื•ืช.

ืฉื™ื ื•ื™ื™ื ื‘ื”ืฉื•ื•ืื” ืœืžื”ื“ื•ืจืช ื”ื‘ื“ื™ืงื” ื”ืื—ืจื•ื ื”, ืฉืคื•ืจืกืžื” ื‘-2018:

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืงื‘ืฆื™ื ื›ื“ื™ ืœืขืงื•ืฃ ื‘ืžื”ื™ืจื•ืช ื”ื’ื“ืจื•ืช ื‘ื™ื—ืก ืœืชืฆื•ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ;
  • ื”ืงื•ื“ ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืžื‘ื ื™ C++ ื”ืžื•ื’ื“ืจื™ื ื‘ืชืงืŸ C++14 (ื”ื‘ื ื™ื™ื” ื“ื•ืจืฉืช ืžื”ื“ืจ ื”ืชื•ืžืš ื‘-C++14);
  • ื ื•ืกืฃ ืžื˜ืคืœ VXLAN ื—ื“ืฉ;
  • ื—ื™ืคื•ืฉ ืžืฉื•ืคืจ ืื—ืจ ืกื•ื’ื™ ืชื•ื›ืŸ ืœืคื™ ืชื•ื›ืŸ ื‘ืืžืฆืขื•ืช ื™ื™ืฉื•ืžื™ ืืœื’ื•ืจื™ืชืžื™ื ื—ืœื•ืคื™ื™ื ืžืขื•ื“ื›ื ื™ื ื‘ื•ื™ืืจ-ืžื•ืจ ะธ ื”ื™ืคืจ-ืกืจื™ืงื”;
  • ืžืขืจื›ืช ื‘ื“ื™ืงืช ื”ืชืขื‘ื•ืจื” HTTP/2 ื›ืžืขื˜ ื”ื•ื‘ืื” ืœืžื•ื›ื ื•ืช ืžืœืื”;
  • ื”ืืชื—ื•ืœ ืžื•ืืฅ ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืžืกืคืจ ืฉืจืฉื•ืจื™ื ื›ื“ื™ ืœื”ืจื›ื™ื‘ ืงื‘ื•ืฆื•ืช ืฉืœ ื›ืœืœื™ื;
  • ื ื•ืกืฃ ืžื ื’ื ื•ืŸ ืจื™ืฉื•ื ื—ื“ืฉ;
  • ื–ื™ื”ื•ื™ ืžืฉื•ืคืจ ืฉืœ ืฉื’ื™ืื•ืช Lua ื•ืจืฉื™ืžื•ืช ื”ืœื‘ื ื™ื ืžื•ืชืืžื•ืช;
  • ื‘ื•ืฆืขื• ืฉื™ื ื•ื™ื™ื ื›ื“ื™ ืœืืคืฉืจ ื˜ืขื™ื ื” ืžื—ื“ืฉ ืฉืœ ื”ื’ื“ืจื•ืช ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”;
  • ื ื•ืกืคื” ืžืขืจื›ืช ื‘ื“ื™ืงืช RNA (Real-Time Network Awareness), ื”ืื•ืกืคืช ืžื™ื“ืข ืขืœ ืžืฉืื‘ื™ื, ืžืืจื—ื™ื, ื™ื™ืฉื•ืžื™ื ื•ืฉื™ืจื•ืชื™ื ื”ื–ืžื™ื ื™ื ื‘ืจืฉืช;
  • ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืชืฆื•ืจื”, ื”ืฉื™ืžื•ืฉ ื‘-snort_config.lua ื•ื‘-SNORT_LUA_PATH ื”ื•ืคืกืง.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”