Принудительно использовать TLS V1.2 при обмене данными с клиентом?

Вы не упомянули perl, но я предполагаю, что это можно использовать, поскольку вы упомянули awk, sedи grep. Я выбрал perl, а не awk, главным образом потому, что гораздо проще работать с многоуровневыми ассоциативными массивами -(, а "хеш -из -хэшей" или "HoH" в perlжаргоне ), чем в awk.

#!/usr/bin/perl
use strict;

# array used to keep track of the order each sid was first seen,
# so that they can be printed out in the same order.
# Necessary because perl hashes are inherently un-ordered.
my @order=();

# hashed array to contain the highest rev seen of each sid.
my %S = ();

# count of the number of files we've read completely so far.
my $filenum=0;

while(<>) {
  s/^\s*|\s*$//g;  # strip leading and trailing spaces
  if (m/^$/) { $filenum++ if eof; next }; # skip empty lines

  # extract the sid and the rev
  my ($sid, $rev) = $_ =~ (m/^.*; sid:(\d+); rev:(\d+)/) ;

  # store or update an anonymous hash containing the rev and the entire
  # line in the hash, keyed by the sid.
  if (defined($S{$sid})) {
    $S{$sid} = { rev => $rev, line => $_ } if ( ($rev > $S{$sid}->{rev}) );
  } else {
    next if ($filenum); # only store sid if we're still reading the 1st file.
    push @order, $sid;
    $S{$sid} = { rev => $rev, line => $_ };
  };

  $filenum++ if eof;
};

# if you want output sorted by the sid, comment the first of the next
# two lines and uncomment the second
for my $sid (@order) {
#for my $sid (sort keys %S) {
     print $S{$sid}->{line}, "\n";
};

Сохраните его как, например, ./apply-update.plи запустите как./apply-update.pl all.rules update.rules > out.rules

Выходные данные из ваших новых входных файлов-образцов будут состоять всего из трех строк (с идентификаторами, показанными в all.rules, обновленными update.rules, т. е. "rev :2", а не "rev :". ] версии 1"):

alert udp $home_net any -> any 53 (msg:"et trojan copykittens? matryoshka dns lookup 1 (winupdate64. com)"; content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; content:"|0b|winupdate64|03|com|00|"; nocase; distance:0; fast_pattern; reference:url,www.clearskysec.com/wp- content/uploads/2017/07/operation_wilted_tulip.pdf; classtype:trojan- activity; sid:2024495; rev:2;)
alert udp $home_net any -> any 53 (msg:"et trojan copykittens matryoshka dns lookup 2 (twiter-statics. info)"; content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; content:"|0e|twiter|2d|statics|04|info|00|"; nocase; distance:0; fast_pattern; metadata: former_category trojan; reference:url,www.clearskysec.com/wp- content/uploads/2017/07/operation_wilted_tulip.pdf; reference:md5,752240cddda5acb5e8d026cef82e2b54; classtype:trojan-activity; sid:2024496; rev:2; metadata:affected_product windows_xp_vista_7_8_10_server_32_64_bit, attack_target client_endpoint, deployment perimeter, signature_severity major, created_at 2017_07_25, malware_family matryoshka, performance_impact moderate, updated_at 2017_07_25;)
alert udp $home_net any -> any 53 (msg:"et trojan copykittens cobalt strike dns lookup (cloudflare-analyse. com)"; content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; content:"|12|cloudflare|2d|analyse|03|com|00|"; nocase; distance:0; fast_pattern; threshold:type limit, track by_src, count 1, seconds 60; metadata: former_category trojan; reference:url,www.clearskysec.com/wp- content/uploads/2017/07/operation_wilted_tulip.pdf; reference:md5,752240cddda5acb5e8d026cef82e2b54; classtype:trojan-activity; sid:2024497; rev:2; metadata:affected_product windows_xp_vista_7_8_10_server_32_64_bit, attack_target client_endpoint, deployment perimeter, signature_severity major, created_at 2017_07_25, malware_family cobaltstrike, performance_impact moderate, updated_at 2017_07_26;)

Это будет во много раз быстрее, чем любаяbash-версия на основе -интерпретаторы оболочки просто не так быстры при обработке текста -, как perlили awkили python. Компилируемый язык, такой как C, был бы снова намного быстрее, но написание чего-то подобного на C, вероятно, потребовало бы, по крайней мере, 50 или 60, возможно, даже нескольких сотен строк кода C, а не 15 строк Perl (не подсчет комментариев или пустых строк ).

0
13.11.2019, 07:24
0 ответов

Теги

Похожие вопросы