СПОСОБ ЗАЩИТЫ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
METHOD FOR PROTECTING COMPUTING NETWORKS

Изобретение относится к электросвязи и может быть использовано в системах обнаружения атак с целью оперативного выявления и противодействия несанкционированным воздействиям в вычислительных сетях, в частности, в сети передачи данных типа «Internet», основанных на семействе коммуникационных протоколов TCP/IP (Transmission Control Protocol /Internet Protocol).
Известен способ защиты вычислительных сетей «Система анализа протоколов передачи данных с целью нейтрализации программ, рассылающих спам» по патенту РФ №101234, класс G06F 21/00, G06F 11/00, заявл. 23.07.2010. Известный способ включает следующую последовательность действий. Задают и записывают в базу данных репутационные правила, которые определяют, что клиент является спам-ботом. Принимают запрос от клиентов к серверу о определяют протокол передачи данных между клиентом и сервером, наличие ошибок протокола, количество запросов, поступающих от клиентов к серверу, адреса клиентов. Выставляют репутацию клиентам от которых поступили запросы в соответствии с используемыми репутационными правилами. В случае идентификации спам-бота, использующих программу рассылающую спам, направляют средства лечения программы, рассылающей спам на адреса спам-ботов с которых направляются запросы к серверу.
Недостатком данного способа является относительно низкая результативность защиты, которая обусловлена отсутствием учета возможностей злоумышленника по блокированию и перенаправлению пересылаемых ему средств лечения программы, рассылающей спам, а также отсутствие учета возможности злоумышленника по спам-рассылке с поддельных адресов электронной почты, что повышает вероятность успешной реализации некоторых видов NDR-атак (Non Delivery Report), основанных на возврате отправителю почтовых сообщений, получателя которых не существует. Кроме того, еще одним недостатком, существенно влияющим на результативность рассматриваемого способа, является то компрометация применяемых средств защиты, что вынуждает злоумышленника продолжать вредоносное воздействие и (или) изменять его стратегию.
Известен способ защиты вычислительных сетей «Предотвращение несанкционированной массовой рассылки электронной почты» по патенту РФ №2472308, класс H04W 4/12, G06F 15/167, заявл. 19.05.2011. Известный способ включает следующую последовательность действий. Отфильтрованные на почтовом сервере сообщения, признанные вирусом и спамом, не только помечают, перемещают в другой ящик или удаляют, но копии таких писем возвращают отправителю, за счет чего его почтовый ящик переполняется и блокируется, и отправка несанкционированной массовой рассылки электронной почты с этого адреса прекращается. Почтовые ящики серверов электронной почты настраивают таким образом, чтобы при переполнении они блокировались, прерывая отправку писем.
Недостатком данного способа является относительно низкая результативность и узкая область применения. Узкая область применения обусловлена применением способа для противодействия злоумышленнику, использующему одновременно лишь один почтовый ящик для массовой спам-рассылки, не учитывают возможность применения для этих целей злоумышленником множества почтовых ящиков различных компьютеров, под управлением спам-ботов, резко повышающих его возможности. Низкая результативность защиты обусловлена блокированием почтовых ящиков серверов электронной почты, при их переполнении вследствие интенсивного обмена сообщениями электронной почты со злоумышленником, что приведет к снижению скорости или невозможности информационного обмена сообщениями электронной почты с санкционированными отправителями (отказу в обслуживании). Кроме того, отсутствие учета возможностей злоумышленника по блокированию и перенаправлению пересылаемых ему обратно спам-сообщений, а также отсутствие учета возможности злоумышленника по массовой спам-рассылке с поддельных адресов электронной почты повышает вероятность успешной реализации некоторых NDR-атак (Non-Delivery Report), основанных на недоставке электронной почты, типа «bounce message attack», «bounce-source» или «backscatter-attack», известных и описанных, например, в статье Касперски К. Беспредельный спам // Хакер, №07(103), июнь 2007, на стр. 48-51 и приведет к регрессии (деградации) основного качества способа-прототипа. Еще одним недостатком, существенно влияющим на результативность рассматриваемого способа, является то, что реализация указанного подхода к защите компрометирует применяемые средства защиты и вынуждает злоумышленника продолжать вредоносное воздействие и (или) изменять его стратегию.
зад
зад
зад
зад
зад
Наиболее близким по своей технической сущности к заявленному является способ защиты вычислительных сетей «Response delay management using connection information» по патенту США №20070220600 A1, класс G06F 2/4 (2006.01), опубл. 20.09.2007. Способ заключается в выполнении следующих действий: Предварительно задают N≥1 опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты. Устанавливают сетевое соединение с отправителем сообщений электронной почты. Принимают от отправителя команду, идентифицирующую отправителя почтовых сообщений, выделяют идентификаторы отправителя почтовых сообщений и сравнивают их с опорными идентификаторами санкционированных отправителей и получателей сообщений электронной почты. При их совпадении передают ответный отклик о готовности получателя к очередному этапу почтовой транзакции отправителю сообщений. В ином случае снижают скорость передачи сформированного ответного отклика на время t и направляют через время t сформированный ответный отклик отправителю с уменьшением скорости передачи. В случае получения от отправителя сообщений электронной почты команды на завершение сетевого соединения, до истечения времени t отправки ответного отклика, разрывают сетевое соединение с отправителем почтовых сообщений. Далее, на каждом из этапов почтовой транзакции, повторяют цикл приема от отправителя команд, идентифицирующих отправителя и получателей почтовых сообщений, выделения идентификаторов отправителя и получателей почтовых сообщений, их сравнения с опорными идентификаторами санкционированных отправителей и получателей сообщений электронной почты, разрыва соединения с отправителем в случае получения от него команды на завершение соединения до истечения времени t отправки ответного отклика. Увеличивают значение времени t задержки, через которое передают ответный отклик отправителю сообщений электронной почты в случае повторных попыток передачи сообщений несанкционированного отправителя.
Известный способ-прототип обеспечивает более высокую результативность защиты по сравнению с аналогами за счет задержки на заданное время ответных откликов на команды злоумышленника в процессе передачи сообщений электронной почты, что позволяет уменьшить количество передаваемых им нежелательных сообщений и, тем самым, снизить и(или) прекратить вредоносное воздействие злоумышленника.
зад
Недостатком способа-прототипа является относительно низкая результативность защиты, которая обусловлена тем, что задержку по времени при отправке ответных откликов на команды злоумышленника, после его идентификации в процессе передачи сообщений электронной почты по протоколу SMTP, осуществляют через достаточно продолжительное время задержки t, значение которого увеличивают в случае его повторных попыток передачи сообщений электронной почты. Это может привести к компрометации применяемых средств защиты, что вынуждает злоумышленника далее воздействовать на вычислительные сети и (или) менять применяемую стратегию воздействия, а также обходу применяемых средств защиты при установке злоумышленником достаточно коротких значений тайм-аутов ожидания ответных откликов от получателя сообщений на различных этапах процесса передачи сообщений электронной почты по протоколу SMTP.
Целью заявленного технического решения является разработка способа защиты вычислительных сетей, обеспечивающего повышение результативности защиты за счет снижения возможности обнаружения злоумышленником факта использования средств защиты, достигаемой имитацией канала связи с плохим качеством на различных этапах почтовой транзакции, за счет разбиения ответного отклика злоумышленнику на фрагменты и направления этих фрагментов через многочисленные малые интервалы времени задержки, направления ответного отклика злоумышленнику после множества промежуточных откликов, отправленных через многочисленные малые интервалы времени задержки, а также направления злоумышленнику заведомо ложных сообщений о временной или постоянной невозможности продолжения почтовой транзакции.
c
cmax
зад
s
smax
c
s
s
smax
s
smax
c
s
s
smax
зад
зад
зад
c
s
зад
зад
зад
зад
c
s
зад
c
cmax
c
cmax
c
s
c
cmax
зад
зад
зад
c
s
зад
c
s
c
s
c
s
c
s
Поставленная цель достигается тем, что в известном способе защиты вычислительных сетей предварительно задают N≥1 опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты. Далее задают I счетчик количества подключений отправителя сообщений и I максимально возможное количество подключений отправителя сообщений электронной почты. После этого задают t время задержки, через которое передают ответный отклик отправителю сообщений электронной почты и массив памяти М для хранения опорных идентификаторов санкционированных отправителей сообщений электронной почты. Затем задают I счетчик общего количества подключений всех отправителей сообщений электронной почты и Iмаксимально возможное количество подключений всех отправителей сообщений электронной почты. Далее устанавливают сетевое соединение с отправителем почтовых сообщений и направляют отправителю отклик, инициирующий начало сеанса SMTP со стороны получателя. После этого увеличивают значение I счетчика количества подключений от отправителя сообщений на единицу. Затем увеличивают значение I счетчика общего количества подключений от всех отправителей сообщений и сравнивают значение I счетчика количества подключений от всех отправителей сообщений с I максимально возможным количеством подключений всех отправителей сообщений. При выполнении условия I≥I уменьшают значения I и I на единицу. Затем завершают сетевое соединение с отправителем почтовых сообщений. В ином случае, при невыполнении условия I≥I принимают команду, инициирующую отправителя почтовых сообщений и идентифицирующую его. Далее выделяют из принятой команды идентификаторы отправителя сообщений и сравнивают выделенные идентификаторы отправителя сообщений с опорными идентификаторами из массива памяти М. Если по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то направляют ответный отклик отправителю сообщений о готовности к почтовой транзакции. В ином случае, если по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют ответный отклик. После этого устанавливают t время задержки передачи сформированного ответного отклика. Затем по истечении времени t направляют сформированный ответный отклик отправителю. В случае получения, во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты уменьшают значения I и I на единицу. После этого задают сетевое соединение с отправителем почтовых сообщений. В ином случае, если во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то направляют отправителю ответный отклик. Далее принимают от отправителя сообщений команду на начало почтовой транзакции, идентифицирующую отправителя сообщений электронной почты. После этого выделяют из принятой команды идентификаторы отправителя сообщений и сравнивают выделенные идентификаторы отправителя сообщений с опорными идентификаторами из массива памяти М. Если по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то направляют ответный отклик отправителю сообщений о приеме полученной команды и начале почтовой транзакции. В ином случае, если по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют ответный отклик. Затем устанавливают t время задержки передачи сформированного ответного отклика. Далее по истечении времени t направляют сформированный ответный отклик отправителю. В случае получения, во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты уменьшают значения I и I на единицу. После этого завершают сетевое соединение с отправителем почтовых сообщений. В ином случае, если во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то направляют отправителю ответный отклик. Затем принимают от отправителя сообщений команду, указывающую получателей сообщения электронной почты. После этого сравнивают значение I счетчика количества подключений отправителя сообщений I максимально возможным количеством подключений отправителя сообщений. Далее, при выполнении условия I≥I, уменьшают значения I и I на единицу и завершают сетевое соединение с отправителем почтовых сообщений. В ином случае, при невыполнении условия I≥I принимают команду, указывающую получателей сообщения электронной почты и выделяют из принятой команды идентификаторы получателей сообщений. Затем сравнивают выделенные идентификаторы получателей сообщений с опорными идентификаторами из массива памяти М. Если по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных получателей сообщений из массива памяти М, то направляют ответный отклик отправителю сообщений о готовности продолжить почтовую транзакцию. В ином случае, если по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных получателей сообщений из массива памяти М, то формируют ответный отклик. Далее устанавливают t время задержки передачи сформированного ответного отклика и по истечении времени t направляют сформированный ответный отклик отправителю. В случае получения, во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты уменьшают значения I и I на единицу. После этого завершают сетевое соединение с отправителем почтовых сообщений. В ином случае, если во время t перед отправкой ответного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то направляют отправителю ответный отклик. Далее принимают очередную команду, инициирующую передачу почтовых данных и направляют отправителю сообщений ответный отклик о готовности приема текста сообщения электронной почты. Затем принимают текст сообщения электронной почты и завершают почтовую транзакцию передачей отклика, подтверждающего транзакцию. После этого уменьшают значения I и I на единицу и завершают сетевое соединение с отправителем почтовых сообщений. В предварительно заданные данные дополнительно задают массив памяти L для хранения t сформированных значений времени задержки промежуточных откликов отправителю сообщений электронной почты, где t=1, 2, …, Т, а Т - общее количество сформированных значений времени задержки промежуточных откликов отправителю сообщений. Затем задают массив памяти V для хранения d промежуточных откликов отправителю сообщений электронной почты, где d=1, 2 ... R, a R - общее количество промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным сообщением. Далее задают  счетчик сформированных промежуточных откликов, хранящихся в массиве памяти V. После этого задают массив памяти J для хранения матрицы соответствия d-му промежуточному отклику из массива V t-го сформированного значения времени задержки его направления отправителю сообщений электронной почты из массива памяти L. После этого задают массив памяти P для хранения g фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений. Затем задают массив памяти Z для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты. Далее задают счетчик m сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р. После этого задают массив памяти Н для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z. Далее задают массив памяти X для хранения и ответных откликов на команды отправителя сообщений, содержащих коды ошибки в соответствии со спецификацией протокола SMTP, где u=1, 2, … U, a U - общее количество ответных откликов на команды отправителя сообщений, содержащих коды ошибки. Затем, если после приема идентифицирующей отправителя команды, выделения идентификаторов отправителя и их сравнения с опорными, выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют R промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным откликом. После этого запоминают R промежуточных откликов в массиве памяти V и устанавливают значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V равным R. Далее формируют Т значений времени задержки промежуточных откликов отправителю сообщений и запоминают Т значений времени задержки промежуточных откликов отправителю сообщений в массиве памяти L. После этого запоминают в массиве памяти J соответствие d-му промежуточному отклику из массива V t-го сформированного значения времени его задержки из массива памяти L. Затем считывают из массива памяти J первый из R сформированных промежуточных откликов и из массива памяти L первое из Т сформированных значений времени задержки. Далее направляют отправителю сообщений первый из R сформированных промежуточных откликов через первое из Т сформированных значений времени задержки. После этого удаляют первый из R сформированных промежуточных откликов и первое из Т сформированных значений времени задержки, а также запись об их соответствии из массивов памяти V, L и J соответственно. Затем уменьшают значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V на единицу. В случае получения после отправки промежуточного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты значения I и I уменьшаются на единицу, а сетевое соединение с отправителем сообщений завершается. В ином случае, если, после отправки промежуточного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают значение счетчика  сформированных промежуточных откликов. Далее, в случае, если значение счетчикачто говорит о том, что еще не все промежуточные отклики направлены отправителю сообщений электронной почты, то считывают очередной (d+l)-й из ранее сформированных R промежуточных откликов. После этого направляют очередной (d+1)-й из ранее сформированных R промежуточных откликов через (t+1)-e значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие  означающее, что все промежуточные отклики направлены отправителю. Затем после выполнения условия  направляют ответный отклик отправителю сообщений электронной почты. В случае если после приема от отправителя сообщений команды на начало почтовой транзакции, выделения идентификаторов отправителя, их сравнения с опорными идентификаторами, по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений. После этого запоминают G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, в массиве памяти Р. Далее устанавливают значение счетчика т сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р, равным G. Затем формируют F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю. После этого запоминают F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю в массиве памяти Z и запоминают в массиве памяти Н соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z. Далее считывают из массива памяти Р первый из G сформированных фрагментов ответного отклика и из массива памяти Z первое из F сформированных значений времени задержки. Затем направляют отправителю сообщений первый из G фрагментов ответного отклика через первое из Z сформированных значений времени задержки. После этого удаляют первый из G сформированных фрагментов ответного отклика и первое из F сформированных значений времени задержки, а также запись об их соответствии из массивов памяти Р, Z и Н соответственно. Далее уменьшают значение счетчика т сформированных фрагментов ответного отклика, хранящихся в массиве памяти Р, на единицу. В случае получения после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты значения I и Iуменьшаются на единицу, а сетевое соединение с отправителем сообщений завершается. В ином случае, если после отправки очередного фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают значение счетчика m сформированных фрагментов ответного отклика. В случае, если значение счетчика m≠0, что говорит о том, что еще не все фрагменты ответного отклика направлены отправителю сообщений электронной почты, то считывают очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика. Далее направляют очередной (g+lj-й из ранее сформированных G фрагментов ответного отклика через (ƒ+1)-e значение времени задержки отправителю сообщений электронной почты, и так до тех пор пока не будет выполнено условие m=0, означающее, что все фрагменты ответного отклика направлены отправителю. В случае если после приема от отправителя сообщений команды, идентифицирующей получателей сообщений, выделения идентификаторов получателей сообщений, их сравнения с опорными идентификаторами выделенные идентификаторы по результатам сравнения не соответствуют опорным идентификаторам санкционированных получателей сообщений из массива памяти М, то формируют U ответных откликов на команды отправителя сообщений, содержащих коды ошибки в соответствии со спецификацией протокола SMTP. После этого запоминают U ответных откликов в массиве памяти X и считывают из X u-й ответный отклик, содержащий код ошибки, на команду отправителя сообщений электронной почты. Далее направляют отправителю сообщений электронной почты ответный отклик, содержащий код ошибки. В случае неполучения повторной команды от отправителя сообщений по истечении времени тайм-аута ожидания на полученный отклик с кодом ошибки или получения команды о разрыве установленного соединения, значения I и I уменьшаются на единицу, а сетевое соединение с отправителем сообщений завершается.
Значение времени задержки для каждого из промежуточных откликов несанкционированному отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 1 до 10 секунд.
Количество промежуточных откликов, направляемых несанкционированному отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 1000 до 20000.
Значение времени задержки для каждого из фрагментов ответного отклика, направляемого несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 15 секунд.
Величину фрагментов, на которые разбивают ответный отклик несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 3 байт.
Для каждого ложного ответного отклика несанкционированному отправителю сообщений электронной почты значение кода ошибки выбирают случайным образом из стандартных кодов ошибки протокола SMTP.
Благодаря новой совокупности существенных признаков в заявленном способе обеспечивается повышение результативности защиты за счет снижения возможности обнаружения злоумышленником факта использования средств защиты, достигаемой имитацией канала связи с плохим качеством на различных этапах почтовой транзакции, за счет разбиения ответного отклика злоумышленнику на фрагменты и направления этих фрагментов через многочисленные малые интервалы времени задержки, направления ответного отклика злоумышленнику после множества промежуточных откликов, отправленных через многочисленные малые интервалы времени задержки, а также направления злоумышленнику заведомо ложных сообщений о временной или постоянной невозможности продолжения почтовой транзакции.
Заявленные объекты изобретения поясняются чертежами, на которых показаны:
фиг. 1 - Схема установления сетевого соединения и работы протокола SMTP;
фиг. 2а - Блок-схема последовательности действий, реализующих заявленный способ защиты вычислительных сетей;
фиг. 2б - Блок-схема последовательности действий, реализующих заявленный способ защиты вычислительных сетей;
фиг. 3 - Фрагмент почтовой транзакции в момент формирования и направления несанкционированному отправителю промежуточных откликов перед ответным откликом;
фиг. 4 - Фрагмент почтовой транзакции в момент формирования и направления несанкционированному отправителю ответного отклика, разбитого на множество фрагментов;
фиг. 5 - Фрагмент почтовой транзакции в момент формирования и направления несанкционированному отправителю ложного ответного отклика, содержащего код ошибки.
Реализация заявленного способа объясняется следующим образом. Известно, что нежелательная электронная почта (спам), где под спамом понимается массовая рассылка коммерческой и иной рекламы или иного вида сообщений (информации) лицам, не выражавшим желания их получать, составляет от 60% до 90% всех электронных писем, отправленных по всему миру. Согласно данным «Лаборатории Касперского» в I квартале 2020 года средняя доля спама в мировом почтовом трафике составила 54,61%, доля спама в трафике российского сегмента интернета также достигла максимума в январе 2020 года и составила 52,08%, а первую пятерку стран по количеству исходящего спама возглавила Россия, на ее долю пришлось 20,74% всего мусорного трафика. Для борьбы со спамом, уже достаточно давно, разработаны и применяются ряд систем и методик, а большинство известных методов защиты от спама известны и описаны, например, в статье Ковалев С.С., Шишаев М.Г. Современные методы защиты от нежелательных почтовых рассылок // Труды Кольского научного центра РАН, вып. 7 (информационные технологии вып. 2 4/2011(7)), на стр. 100-111. Основными из них являются байесовская фильтрация, методы на основе формальных протокольных правил, процедурные методы, проверка подлинности отправителя, методы, использующие контрольные сумы и списки блокировки и др. Однако, все эти методы основаны в основном на обнаружении и блокировании уже принятых спам-сообщений, и, по сути, являются реактивными, реагирующими на факт совершенного вредоносного воздействия, в связи с чем они эффективны только при использовании известных шаблонов спам-сообщений. Кроме того, некоторые из известных методов реализуют попытки так называемого силового демонстративного блокирования спам-сообщений, например, такие методы как перенаправление спам-сообщений их отправителям, направление выявленным источникам рассылки спама средств лечения вредоносных программ, предназначенных для рассылки вирусных спам-сообщений и т.д. Применение таких методов противодействия с одной стороны, ведет к компрометации применяемых средств защиты, что способствует их последующему обходу и/или изменению стратегии вредоносного воздействия злоумышленником. С другой стороны, эффективность средств защиты, реализующих эти методы, ограничена их ресурсными возможностями, так как эти методы являются вычислительно интенсивными и требуют для эффективного применения мощных процессоров с большими объемами памяти, в то время как ресурс злоумышленников может быть практически неограничен, что подтверждается их возможностью совершать крупномасштабные DOS и DDOS атаки на основе массовой спам-рассылки с привлечением спам-ботов, что описано, например, в статье Сайты «Единой России» подверглись масштабной DDoS-атаке - INTERFAX.RU. URL: https://www.interfax.ru/russia/609414 (дата обращения 26.05.2020).
В связи с этим, актуальность приобретают принципиально новые подходы к борьбе со спамом, основанные на предотвращении самой доставки спам-сообщений от злоумышленника на почтовый сервер. Эти подходы смещают акцент на борьбе со спамом в сторону проактивной защиты, накладывающей ограничение на используемый злоумышленником вычислительный ресурс и вызывающей «истощение» его ресурсов в процессе почтовой транзакции без значительных вычислительных затрат со стороны защищаемой вычислительной сети. Однако известные технические решения, рассмотренные выше, реализующие вопросы проактивной защиты вычислительных сетей от массовой рассылки спам-сообщений, еще недостаточно проработаны и обладают существенными недостатками, а задачи приведения в соответствие таких мер защиты (централизованному) замыслу противодействия спаму только начинают формулироваться отдельными авторами и их кооперациями.
Таким образом, возникает ряд противоречий между результативностью защиты вычислительных сетей от спам-сообщений и возможностями злоумышленников по компрометации средств защиты, а также между наличием необходимости управления ресурсными возможностями злоумышленника по организации массовой рассылки спам-сообщений и отсутствием технических решений по динамическому управлению параметрами почтовой транзакции со злоумышленником. На устранение указанных противоречий направлен заявленный способ.
Заявленный способ реализуют следующим образом. Протокол SMTP предназначен для транспортировки объектов электронной почты через множество вычислительных сетей, что известно и описано, например, в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc5321). В RFC 821, см. https://tools.ietf.org/html/rfc82l, два хоста, принимающие участие в транзакции SMTP, описаны как SMTP-sender (отправитель) и SMTP-receiver (получатель). Сеанс SMTP инициируется, когда отправитель соединяется с получателем и тот отвечает ему соответствующим сообщением, как представлено на фиг. 1. После организации коммуникационного канала и согласования параметров отправитель обычно инициирует почтовую транзакцию, состоящую из последовательности команд, задающих отправителя и получателя сообщения электронной почты, а также передачи содержимого письма (включая все заголовки и прочие структуры). Команды SMTP и данные сообщений передаются от отправителя к получателю через коммуникационный канал в форме строк. Получатель отвечает откликом на каждую из полученных команд, который содержит трехзначный номер (передается как три числовых символа), за которым обычно следует строка текста и представляет собой подтверждение (или отказ, содержащий сообщение с кодом временной или постоянной ошибки), передаваемое в форме строк от получателя к отправителю через коммуникационный канал. Диалог между отправителем и получателем осуществляется поэтапно (команда - отклик - команда …), как представлено на фиг. 1. В соответствие с RFC 5321 текст отклика может содержать несколько строк, количество которых не ограничено, но в таких случаях текст должен маркироваться так, чтобы отправитель мог узнать о завершении текста. Это требует использования для многострочных откликов специального формата, регламентирующего, чтобы каждая строка (кроме последней) начиналась кодом отклика, после которого следует дефис (-), а далее текст. В последней строке вместо дефиса используется пробел, после которого может следовать текст. В многострочных откликах коды в каждой строке должны совпадать. В некоторых случаях важные для отправителя данные передаются в тексте отклика.
Ниже приведен пример многострочного отклика:
250 - Первая строка
250 - Вторая строка
250-234 Текст, начинающийся с числа
250 Последняя строка
После завершения передачи сообщения отправитель может запросить разрыв соединения или инициировать следующую почтовую транзакцию. Почтовая транзакция включает три этапа. Началом транзакции служит команда MAIL, дающая идентификацию отправителя. После этого следует одна или несколько команд RCPT, указывающих получателей сообщения. Последний этап транзакции начинается командой DATA, которая инициирует передачу почтовых данных и завершается индикатором end of mail, который также подтверждает транзакцию. Каждый объект электронной почты состоит из конверта (envelope) и содержимого. Конверт SMTP передается как серия протокольных элементов SMTP. Конверт содержит адрес отправителя (по которому должны возвращаться отчеты об ошибках) и один или более адресов получателей, а также дополнительную информацию для расширений протокола.
Для передачи информации между удаленными локальными вычислительными сетями посредством протоколов взаимодействия устанавливают канал связи, под которым понимают информационные потоки от отправителя к получателю. Структура пакетов сообщений известна, как известен и принцип передачи пакетов в вычислительных сетях, что дает возможность анализа идентификаторов источника и получателя информационных потоков и формирования опорных идентификаторов. Так, совокупность полей адресов отправителя и получателя пакета сообщений, является идентификаторами информационных потоков. Кроме того, идентифицировать отправителя и конечного получателя сообщения будет указанный или определенный клиентом SMTP домен. В других случаях, когда клиенты SMTP связаны с реализациями протоколов POP в соответствии с RFC 937 https://tools.ietf.org/html/rfc937, RFC 1939 https://tools.ietf.org/html/rfcl939 и IMAP в соответствии с RFC 3501 https://tools.ietf.org/html/rfc3501 или клиент располагается внутри изолированной транспортной среды, идентифицированный домен будет определять промежуточного получателя, через которого будут транслироваться все сообщения электронной почты.
На фиг. 2 представлена блок-схема последовательности действий, реализующих заявленный способ защиты вычислительных сетей, в которой приняты следующие обозначения:
N≥1 - база из опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты;
c
I - счетчик подключений отправителя сообщений;
cmax
I - максимально возможное количество подключений отправителя сообщений электронной почты;
М - массив памяти для хранения опорных идентификаторов санкционированных отправителей сообщений электронной почты;
s
I- счетчик общего количества подключений всех отправителей сообщений электронной почты;
smax
I - максимально возможное количество подключений всех отправителей сообщений электронной почты;
L - массив памяти для хранения t сформированных значений времени задержки промежуточных откликов отправителю сообщений электронной почты, где t=1, 2, …, Т, а T - общее количество сформированных значений времени задержки промежуточных откликов отправителю сообщений;
V- массив памяти для хранения d промежуточных откликов отправителю сообщений электронной почты, где d=l, 2 … R, a R - общее количество промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным сообщением;
- счетчик сформированных промежуточных откликов, хранящихся в массиве памяти V;
J - массив памяти для хранения матрицы соответствия d-му промежуточному отклику из массива V t-го сформированного значения времени задержки его направления отправителю сообщений электронной почты из массива памяти L;
Р - массив памяти для хранения g фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений;
Z - массив памяти для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты;
m - счетчик сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р;
Н - массив памяти для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z;
Х - массив памяти для хранения и ответных откликов на команды отправителя сообщений, содержащих коды ошибки в соответствии со спецификацией протокола SMTP, где u=1, 2, … U, a U - общее количество ответных откликов на команды отправителя сообщений, содержащих коды ошибки.
Для повышения результативности защиты за счет снижения вероятности обнаружения злоумышленником факта использования средств защиты, имитируют канал связи с плохим качеством. Для этого в предварительно заданные данные для исключения возможности идентификации злоумышленником средств защиты по продолжительным задержкам ответных откликов от получателя сообщений электронной почты, а также для предотвращения возможности обхода злоумышленником средств защиты за счет установки коротких тайм-аутов ожидания ответных откликов, в предварительно заданные данные дополнительно задают (см. блок 1 на фиг. 2а) массив памяти L для хранения t сформированных значений времени задержки промежуточных откликов отправителю сообщений электронной почты, где t=1, 2, …, T, а T - общее количество сформированных значений времени задержки промежуточных откликов отправителю сообщений. Использование интервалов времени t, в течение которого отправителю сообщений будут направлены промежуточные отклики, применяется для увеличения времени диалога с отправителем спам-сообщений в процессе почтовой транзакции, например, так как показано на фиг. 3.
Затем задают (см. блок 1 на фиг. 2а) массив памяти V для хранения d промежуточных откликов отправителю сообщений электронной почты, где d=1, 2 … R, a R - общее количество промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным сообщением. Для того, чтобы задать массив памяти, статически или динамически выделяют объем оперативной памяти (в байтах).
Далее задают (см. блок 1 на фиг. 2а)  счетчик сформированных промежуточных откликов, хранящихся в массиве памяти V.
После этого задают (см. блок 1 на фиг. 2а) массив памяти J для хранения матрицы соответствия d-му промежуточному отклику из массива V t-го сформированного значения времени задержки его направления отправителю сообщений электронной почты из массива памяти L.
Затем для повышения результативности способа защиты и снижения вероятности обнаружения злоумышленником факта использования средств защиты, применяют разбиение ответного отклика на команды отправителя на фрагменты и направление этих фрагментов отправителю через многочисленные малые интервалы времени, чем достигают невозможность обхода средств защиты злоумышленником за счет использования коротких тайм-аутов ожидания ответного отклика, например, так как показано на фиг. 4. Для этого в предварительно заданные данные дополнительно задают (см. блок 1 на фиг. 2а) массив памяти Р для хранения g фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений.
Затем задают (см. блок 1 на фиг. 2а) массив памяти Z для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты.
Далее задают (см. блок 1 на фиг. 2а) счетчик m сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р.
После этого задают (см. блок 1 на фиг. 2а) массив памяти Н для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z.
Далее для введения злоумышленника в заблуждение о статусе почтовой транзакции и увеличении времени диалога с ним, а также для предотвращения процесса рассылки спам-сообщений спам-ботами, не способными исправлять ошибки, полученные в ответном отклике и направлять получателю повторные команды после исправления, при идентификации злоумышленника, ответные отклики, содержащие код ошибки, будут направляться ему в независимости от правильности его реагирования на ответный отклик, например, так как показано на фиг. 5. Для этого задают (см. блок 1 на фиг. 2а) массив памяти X для хранения u ответных откликов на команды отправителя сообщений, содержащих коды ошибки в соответствии со спецификацией протокола SMTP, где u=1, 2, … U, a U - общее количество ответных откликов на команды отправителя сообщений, содержащих коды ошибки.
s
c
s
smax
s
smax
Затем, если после установления сетевого соединения с отправителем (см. блок 2 на фиг. 2а), направления отправителю инициирующего сеанс SMTP отклика (см. блок 3 на фиг. 2а), увеличения значений I (см. блок 4 на фиг. 2а) и I (см. блок 5 на фиг. 2а) на единицу, сравнения значений I и I(см. блок 6 на фиг. 2а), и в случае выполнения условия I≥I приема (см. блок 7 на фиг. 2а) идентифицирующей отправителя команды, выделения (см. блок 8 на фиг. 2а) идентификаторов отправителя и их сравнения (см. блок 9 на фиг. 2а) с опорными, выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют (см. блок 10 на фиг. 2а) R промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным откликом.
После этого запоминают (см. блок 11 на фиг. 2а) R промежуточных откликов в массиве памяти V и устанавливают (см. блок 12 на фиг. 2а) значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V равным R.
Далее формируют (см. блок 13 на фиг. 2а) Т значений времени задержки промежуточных откликов отправителю сообщений и запоминают (см. блок 14 на фиг. 2а) Т значений времени задержки промежуточных откликов отправителю сообщений в массиве памяти L.
После этого запоминают (см. блок 15 на фиг. 2а) в массиве памяти J соответствие d-му промежуточному отклику из массива V t-го сформированного значения времени его задержки из массива памяти L.
Затем считывают (см. блок 16 на фиг.2а) из массива памяти J первый из R сформированных промежуточных откликов и из массива памяти L первое из Т сформированных значений времени задержки.
Далее направляют (см. блок 17 на фиг. 2а) отправителю сообщений первый из R сформированных промежуточных откликов через первое из Т сформированных значений времени задержки. Этим достигают увеличение продолжительности диалога с отправителем сообщений.
После этого удаляют (см. блок 18 на фиг. 2а) первый из R сформированных промежуточных откликов и первое из Т сформированных значений времени задержки, а также запись об их соответствии из массивов памяти V, L и J соответственно.
Затем уменьшают (см. блок 19 на фиг. 2а) значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V на единицу.
c
s
В случае получения после отправки промежуточного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты (см. блок 20 на фиг. 2а) значения I и I уменьшаются на единицу (см. блок 53 на фиг. 2б), а сетевое соединение с отправителем сообщений завершается (см. блок 54 на фиг. 2б).
В ином случае, если, после отправки промежуточного отклика, команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают (см. блок 21 на фиг. 2а) значение счетчика  сформированных промежуточных откликов.
Далее, в случае, если значение счетчика  что говорит о том, что еще не все промежуточные отклики направлены отправителю сообщений электронной почты, то считывают (см. блок 16 на фиг. 2а) очередной (d+1)-й из ранее сформированных R промежуточных откликов.
После этого направляют (см. блок 17 на фиг. 2а) очередной (d+1)-й из ранее сформированных R промежуточных откликов через (t+1)-е значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие  (см. блок 21 на фиг. 2а), означающее, что все промежуточные отклики направлены отправителю.
Затем после выполнения условия  направляют (см. блок 22 на фиг. 2а) ответный отклик отправителю сообщений электронной почты.
В случае если после приема (см. блок 23 на фиг. 2а) от отправителя сообщений команды на начало почтовой транзакции, выделения идентификаторов отправителя (см. блок 24 на фиг. 2а), их сравнения с опорными идентификаторами (см. блок 25 на фиг. 2а), по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то формируют (см. блок 27 на фиг. 2а) G фрагментов на которые разделяют ответный отклик, направляемый отправителю сообщений.
После этого запоминают (см. блок 28 на фиг. 2а) G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, в массиве памяти Р.
Далее устанавливают (см. блок 29 на фиг. 2а) значение счетчика m сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р, равным G.
Затем формируют (см. блок 30 на фиг. 2а) F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю.
После этого запоминают (см. блок 31 на фиг. 2а) F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю в массиве памяти Z и запоминают (см. блок 32 на фиг. 2б) в массиве памяти Н соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z.
Далее считывают (см. блок 33 на фиг. 2б) из массива памяти Р первый из G сформированных фрагментов ответного отклика и из массива памяти Z первое из F сформированных значений времени задержки.
Затем направляют (см. блок 34 на фиг. 2б) отправителю сообщений первый из G фрагментов ответного отклика через первое из Z сформированных значений времени задержки.
После этого удаляют (см. блок 35 на фиг. 2б) первый из G сформированных фрагментов ответного отклика и первое из F сформированных значений времени задержки, а также запись об их соответствии из массивов памяти Р, Z и H соответственно.
Далее уменьшают (см. блок 36 на фиг. 2б) значение счетчика m сформированных фрагментов ответного отклика, хранящихся в массиве памяти Р, на единицу. Этим обеспечивают учет отправленных фрагментов ответного отклика.
c
s
В случае получения после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты (см. блок 37 на фиг. 2б) значения I и I уменьшаются на единицу (см. блок 53 на фиг. 2б), а сетевое соединение с отправителем сообщений завершается (см. блок 54 на фиг. 2б).
В ином случае, если после отправки очередного фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают (см. блок 38 на фиг. 2б) значение счетчика m сформированных фрагментов ответного отклика.
В случае, если значение счетчика m≠0, что говорит о том, что еще не все фрагменты ответного отклика направлены отправителю сообщений электронной почты, то считывают (см. блок 33 на фиг. 2б) очередной (g+l)-й из ранее сформированных G фрагментов ответного отклика. Далее направляют (см. блок 34 на фиг. 2б) очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика через (ƒ+1)-e значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие m=0, означающее, что все фрагменты ответного отклика направлены отправителю.
c
cmax
c
cmax
В случае если после приема (см. блок 39 на фиг. 2б) от отправителя сообщений команды, идентифицирующей получателей сообщений, сравнения (см. блок 40 на фиг. 2б) значения I счетчика количества подключений отправителя сообщений I максимально возможным количеством подключений отправителя сообщений и в случае выполнения условия I≥I выделения (см. блок 41 на фиг. 2б) идентификаторов получателей сообщений, их сравнения (см. блок 42 на фиг. 2б) с опорными идентификаторами выделенные идентификаторы по результатам сравнения не соответствуют опорным идентификаторам санкционированных получателей сообщений из массива памяти М, то формируют (см. блок 43 на фиг. 2б) U ответных откликов на команды отправителя сообщений, содержащих коды ошибки в соответствии со спецификацией протокола SMTP.
После этого запоминают (см. блок 44 на фиг. 2б) U ответных откликов в массиве памяти X и считывают (см. блок 45 на фиг. 2б) из X u-й ответный отклик, содержащий код ошибки, на команду отправителя сообщений электронной почты.
Далее направляют (см. блок 46 на фиг. 2б) отправителю сообщений электронной почты ответный отклик, содержащий код ошибки.
c
s
В случае неполучения повторной команды от отправителя сообщений по истечении времени тайм-аута ее ожидания на полученный отклик с кодом ошибки или получения (см. блок 47 на фиг. 2б) команды о разрыве установленного соединения, значения I и I уменьшаются на единицу (см. блок 53 на фиг. 2б), а сетевое соединение с отправителем сообщений завершается (см. блок 54 на фиг. 2б).
c
s
В ином случае отправителю сообщений электронной почты направляется ответный отклик (см. блок 48 на фиг. 2б), после чего принимается (см. блок 49 на фиг. 2б) команда, инициирующая передачу почтовых данных, отправителю направляется ответный отклик (см. блок 50 на фиг. 2б), затем принимается текст сообщения электронной почты (см. блок 51 на фиг. 2б) и завершается (см. блок 52 на фиг. 2б) почтовая транзакция. Далее значения I и I уменьшаются на единицу (см. блок 53 на фиг. 2б), а сетевое соединение с отправителем сообщений завершается (см. блок 54 на фиг. 2б).
Для исключения компрометации средств защиты по постоянному значению времени задержки промежуточных откликов, значения времени задержки для каждого из промежуточных откликов несанкционированному отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 1 до 10 секунд.
Количество промежуточных откликов, направляемых несанкционированному отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 1000 до 20000.
Значение времени задержки для каждого из фрагментов ответного отклика, направляемого несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 15 секунд.
Величину фрагментов, на которые разбивают ответный отклик несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 3 байт.
Для каждого ложного ответного отклика несанкционированному отправителю сообщений электронной почты значение кода ошибки выбирают случайным образом из стандартных кодов ошибки протокола SMTP.
Таким образом, в заявленном способе обеспечивается достижение сформулированной цели, заключающейся в повышении результативности защиты за счет снижения возможности обнаружения злоумышленником факта использования средств защиты, достигаемой имитацией канала связи с плохим качеством на различных этапах почтовой транзакции, за счет разбиения ответного отклика злоумышленнику на фрагменты и направления этих фрагментов через многочисленные малые интервалы времени задержки, направления ответного отклика злоумышленнику после множества промежуточных откликов, отправленных через многочисленные малые интервалы времени задержки, а также направления злоумышленнику заведомо ложных сообщений о временной или постоянной невозможности продолжения почтовой транзакции.