СПОСОБ ЗАЩИТЫ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
METHOD FOR PROTECTING COMPUTER 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», «bouce-source» или «backscatter-attack», известных и описанных, например, в статье Касперски К. Беспредельный спам // Хакер, №07(103), июнь 2007, на стр. 48-51 и приведет к регрессии (деградации) основного качества способа-прототипа. Еще одним недостатком, существенно влияющим на результативность рассматриваемого способа, является то, что реализация указанного подхода к защите компрометирует применяемые средства защиты и вынуждает злоумышленника продолжать вредоносное воздействие и (или) изменять его стратегию.
зад
зад
зад
зад
зад
Наиболее близким по своей технической сущности к заявленному, является способ защиты вычислительных сетей «Response delay management using connection informations» по патенту США №20070220600A1, класс G06F 2/4 (2006.01), опубл. 20.09.2007. Способ заключается в выполнении следующих действий: Предварительно задают N≥1 опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты. Устанавливают сетевое соединение с отправителем сообщений электронной почты. Принимают от отправителя команду, идентифицирующую отправителя почтовых сообщений, выделяют идентификаторы отправителя почтовых сообщений и сравнивают их с опорными идентификаторами санкционированных отправителей и получателей сообщений электронной почты. При их совпадении передают ответный отклик о готовности получателя к очередному этапу почтовой транзакции отправителю сообщений. В ином случае снижают скорость передачи сформированного ответного отклика на время t и направляют через время t сформированный ответный отклик отправителю с уменьшением скорости передачи. В случае получения от отправителя сообщений электронной почты команды на завершение сетевого соединения, до истечения времени t отправки ответного отклика, разрывают сетевое соединение с отправителем почтовых сообщений. Далее, на каждом из этапов почтовой транзакции, повторяют цикл приема от отправителя команд, идентифицирующих отправителя и получателей почтовых сообщений, выделения идентификаторов отправителя и получателей почтовых сообщений, их сравнения с опорными идентификаторами санкционированных отправителей и получателей сообщений электронной почты, разрыва соединения с отправителем в случае получения от него команды на завершение соединения до истечения времени t отправки ответного отклика. Увеличивают значение времени t задержки, через которое передают ответный отклик отправителю сообщений электронной почты в случае повторных попыток передачи сообщений несанкционированного отправителя.
Известный способ-прототип обеспечивает более высокую результативность защиты по сравнению с аналогами за счет задержки на заданное время ответных откликов на команды злоумышленника в процессе передачи сообщений электронной почты, что позволяет уменьшить количество передаваемых им нежелательных сообщений и, тем самым, снизить и(или) прекратить вредоносное воздействие злоумышленника.
зад
зад
Недостатком способа-прототипа является его относительно низкая результативность защиты, которая обусловлена тем, что задержку по времени при отправке ответных откликов на команды злоумышленника, после его идентификации в процессе передачи сообщений электронной почты по протоколу SMTP, осуществляют через достаточно продолжительное время задержки t, значение которого увеличивают в случае его повторных попыток передачи сообщений электронной почты. Это может привести к компрометации применяемых средств защиты и вынуждает злоумышленника далее воздействовать на вычислительные сети и (или) менять применяемую стратегию воздействия, а также способствует обходу применяемых средств защиты при установке злоумышленником достаточно коротких значений тайм-аутов ожидания ответных откликов от получателя сообщений на различных этапах процесса передачи сообщений электронной почты по протоколу SMTP. Отправка ответных откликов даже через достаточно продолжительное время задержки t позволяет злоумышленнику к некоторому моменту времени осуществить сбор адресов получателей электронной почты и использовать их в качестве потенциальных целей атаки.
Целью заявленного технического решения является разработка способа защиты вычислительных сетей, обеспечивающего повышение результативности защиты снижением возможности обнаружения злоумышленником факта использования средств защиты и недопущением сбора действительных адресов получателей электронной почты для использования их в качестве потенциальных целей атаки. Снижение возможности обнаружения злоумышленником факта использования средств защиты достигается имитацией канала связи с плохим качеством на различных этапах почтовой транзакции за счет направления отправителю фрагментированного ответного отклика, фрагменты которого направляются через многочисленные малые интервалы времени задержки, после множества промежуточных откликов, направляемых через многочисленные малые интервалы времени задержки, за счет направления отправителю ответных откликов, указывающих на временную недоступность получателя сообщений электронной почты, через многочисленные малые интервалы времени задержки и за счет направления отправителю ложных откликов содержащих выбранный случайным образом код ошибки в соответствии со спецификацией протокола SMTP. Недопущение сбора действительных адресов получателей электронной почты для использования их в качестве потенциальных целей атаки обеспечивается введением злоумышленника в заблуждение за счет направления отправителю ложных откликов, подтверждающих наличие некорректных адресов получателей сообщений электронной почты.
c
сmах
зад
s
smax
c
s
s
smax
s
smax
c
s
s
smax
зад
c
s
зад
зад
зад
зад
c
s
зад
c
сmах
c
сmах
c
s
c
сmах
зад
зад
зад
c
s
зад
c
s
оа
оаmах
1
2
i
i
1
2
i
i
c
s
c
s
c
s
c
сmах
с
сmах
c
s
с
сmах
оа
оаmах
оа
oаmах
oа
oа
c
s
оа
oаmах
оа
оа
c
s
c
c
сmах
с
сmax
i
c
c
c
c
сmах
Поставленная цель достигается тем, что в известном способе защиты вычислительных сетей предварительно задают N≥1 опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты. После этого задают I счетчик количества подключений отправителя сообщений и I максимально возможное количество подключений отправителя сообщений электронной почты. Далее задают t время задержки, через которое передают ответный отклик отправителю сообщений электронной почты. Затем задают М массив памяти для хранения опорных идентификаторов санкционированных отправителей и получателей сообщений электронной почты. После этого задают I счетчик общего количества подключений всех отправителей сообщений электронной почты и I максимально возможное количество подключений всех отправителей сообщений электронной почты. Далее устанавливают сетевое соединение с отправителем почтовых сообщений. Затем увеличивают значение счетчика I количества подключений от отправителя сообщений на единицу и увеличивают значение счетчика I общего количества подключений от всех отправителей сообщений. После этого сравнивают значение счетчика I количества подключений от всех отправителей сообщений с I максимально возможным количеством подключений всех отправителей сообщений. При выполнении условия I≥I уменьшают значения I и I на единицу и завершают сетевое соединение с отправителем почтовых сообщений. В ином случае, при невыполнении условия I≥I направляют отправителю отклик, инициирующий начало сеанса SMTP со стороны получателя. Затем принимают команду, инициирующую отправителя почтовых сообщений и идентифицирующую его. Выделяют из принятой команды идентификаторы отправителя сообщений и сравнивают выделенные идентификаторы отправителя сообщений с опорными идентификаторами из массива памяти М. В случае если по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то направляют ответный отклик отправителю сообщений о готовности к почтовой транзакции. При получении команды на завершение сетевого соединения от отправителя сообщений электронной почты, во время 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. После этого задают массив памяти Р для хранения g фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений. Далее задают массив памяти Z для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты. Затем задают счетчик m сформированных фрагментов, хранящихся в массиве памяти Р, на которые разделяют ответный отклик. После этого задают массив памяти Н для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z. Далее задают массив памяти О для хранения u ответных откликов на команды отправителя сообщений электронной почты, содержащих код ошибки, указывающих на временную недоступность получателя сообщений электронной почты, в соответствии со спецификацией протокола SMTP, где u=1, 2, … U, a U - общее количество ответных откликов, содержащих код ошибки, на команды отправителя сообщений. После этого задают массив памяти X для хранения с значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю, где с=1, 2, … С, а С - общее количество сформированных значений времени задержки направления ответных откликов. Далее задают счетчик b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О. Затем задают массив памяти Q для хранения матрицы соответствия u-му ответному отклику, содержащему код ошибки, из массива О ого сформированного значения времени его задержки из массива памяти X. Далее задают счетчик I количества некорректных адресов получателей сообщений электронной почты и счетчик I максимально возможного количества некорректных адресов получателей сообщений электронной почты. Затем задают множество {I}={I, I, …, I} подключений отправителя к получателям сообщений электронной почты, где I - идентификатор подключения отправителя сообщений электронной почты, который содержит в себе порядковый номер подключения отправителя к получателю сообщений электронной почты, i - максимальный порядковый номер подключения отправителя к получателю сообщений электронной почты. После этого задают массив памяти Е=[I, I, …, I] для хранения I идентификаторов, а также массив памяти Y для хранения а значений времени задержки обработки подключений отправителя, где а=1,2, … А, а А - общее количество значений времени задержки обработки подключений отправителя. Далее задают массив памяти W для хранения матрицы соответствия подключениям отправителя, из массива памяти Е, значений времени задержки перед их обработкой из массива памяти Y. В случае если после приема команды, инициирующей отправителя почтовых сообщений и идентифицирующей его, выделения из принятой команды идентификаторов отправителя сообщений, сравнения выделенных идентификаторов отправителя сообщений с опорными идентификаторами из массива памяти М, по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то отправителю сообщений направляется ответный отклик о готовности к почтовой транзакции. В ином случае, если выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений, то формируют R промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным откликом. Далее запоминают R промежуточных откликов в массиве памяти V. Затем устанавливают значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V, равным R. После этого формируют Т значений времени задержки промежуточных откликов отправителю сообщений. Запоминают Т значений времени задержки промежуточных откликов отправителю сообщений в массиве памяти L. Далее запоминают в массиве памяти J соответствие d-му промежуточному отклику из массива V t-то сформированного значения времени его задержки из массива памяти L. После этого считывают из массива памяти J первый из R сформированных промежуточных откликов и из массива памяти L первое из Т сформированных значений времени задержки. Далее направляют отправителю сообщений первый из R сформированных промежуточных откликов через первое из Т сформированных значений времени задержки. Затем удаляют первый из R сформированных промежуточных откликов и первое из Т сформированных значений времени задержки, а также запись об их соответствии из массивов памяти V, L и J соответственно. После этого уменьшают значение счетчика  сформированных промежуточных откликов, хранящихся в массиве памяти V на единицу. В случае получения после отправки промежуточного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. В ином случае, если после отправки промежуточного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают значение счетчика  сформированных промежуточных откликов. При выполнении условия  ≠ 0, считывают очередной (d+1)-й из ранее сформированных R промежуточных откликов. Направляют очередной (d+1)-й из ранее сформированных R промежуточных откликов через (t+1)-е значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие =1. Формируют G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, после выполнения условия =1. Далее запоминают G фрагментов, на которые разделяется ответный отклик, направляемый отправителю сообщений. Затем устанавливают значение счетчика т сформированных фрагментов, на которые разделяют ответный отклик, равным G. После этого формируют F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю. Далее запоминают F значений времени задержки для каждого из фрагментов, на которые разделяют ответный отклик отправителю в массиве памяти Z. Затем запоминают в массиве памяти Н соответствия g-му фрагменту из массива памяти Р ƒ-го сформированного значения времени его задержки из массива памяти Z. После этого считывают из массива памяти Р первый из G сформированных фрагментов ответного отклика и из массива памяти Z первое из F сформированных значений времени задержки. Далее направляют отправителю сообщений первый из G фрагментов ответного отклика через первое из Z сформированных значений времени задержки. Затем удаляют первый из G сформированных фрагментов ответного отклика и первое из F сформированных значений времени задержки, а также запись об их соответствии из массивов памяти Р, Z и Н соответственно. После этого уменьшают значение счетчика m сформированных фрагментов ответного отклика, на единицу. В случае получения после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты, значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. В ином случае, если после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают значение счетчика m сформированных фрагментов ответного отклика. Далее если значение счетчика m≠0, то считывают очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика. После этого направляют очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика через (ƒ+1)-е значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие m=0. В случае, если после приема от отправителя сообщений команды на начало почтовой транзакции, идентифицирующей отправителя сообщений электронной почты, выделения из принятой команды идентификаторов отправителя сообщений, сравнения выделенных идентификаторов отправителя сообщений с опорными идентификаторами из массива памяти М, выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то отправителю сообщений направляется ответный отклик о приеме полученной команды и начале почтовой транзакции. В ином случае, если по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то для ответа на принятую команду отправителя сообщений формируют U ответных откликов, содержащих код ошибки, указывающий на временную недоступность получателя сообщений электронной почты, в соответствии со спецификацией протокола SMTP. После этого запоминают U ответных откликов, содержащих код ошибки в массиве памяти О. Далее устанавливают значение счетчика b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О, равным U. Затем формируют С значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю. После этого запоминают С значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю в массиве памяти X. Далее запоминают в массиве памяти Q соответствие u-му ответному отклику, содержащему код ошибки, из массива памяти О ого сформированного значения времени его задержки из массива памяти X. Затем считывают из массива памяти О первый из U сформированных ответных откликов, содержащих код ошибки и из массива памяти X первое из С сформированных значений времени задержки. После этого направляют отправителю сообщений первый из U сформированных ответных откликов, содержащих код ошибки, через первое из С сформированных значений времени задержки. Далее удаляют первый из U сформированных ответных откликов, содержащих код ошибки и первое из С сформированных значений времени задержки, а также запись об их соответствии из массивов памяти О, X и Q соответственно. Затем уменьшают значение счетчика b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О на единицу. В случае получения от отправителя сообщений на полученный отклик, содержащий код ошибки, команды о разрыве установленного соединения, значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. В ином случае, если после отправки u-то ответного отклика, содержащего код ошибки, от отправителя сообщений электронной почты команды на разрыв соединения не последовало, а последовала повторная команда на начало почтовой транзакции, то считывают значение счетчика b сформированных ответных откликов, содержащих код ошибки. В случае если значение счетчика b ≠ 0, что говорит о том, что еще не все ответные отклики, содержащие код ошибки, направлены отправителю сообщений электронной почты, то считывают очередной (u+1)-й из U ранее сформированных ответных откликов, содержащих код ошибки. Затем направляют отправителю сообщений электронной почты (u+1)-й ответный отклик, содержащих код ошибки, через (с+1)-е значение времени задержки, и так до тех пор, пока не будет выполнено условие b=0. После приема от отправителя сообщений команды, указывающей получателей сообщений электронной почты, выделения из принятой команды идентификаторов получателей сообщений электронной почты, сравнения выделенных идентификаторов с идентификаторами санкционированных получателей из массива М, если выделенные идентификаторы получателей сообщений электронной почты не совпадают с идентификаторами санкционированных получателей из массива М, то после сравнения значения счетчика I количества подключений отправителя сообщений с I максимально возможным количеством подключений отправителя сообщений, при выполнении условия I≥I значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. При невыполнении условия I≥I считывают полученные от отправителя некорректные адреса получателей сообщений электронной почты, не принадлежащие идентификаторам санкционированных получателей из массива памяти М. Далее сравнивают значение счетчика I количества некорректных адресов получателей сообщений электронной почты с I максимально возможным количеством полученных некорректных адресов получателей сообщений электронной почты. В случае выполнения условия I≥I формируют I ложных откликов отправителю, подтверждающих наличие некорректных адресов получателей сообщений электронной почты. Затем направляют отправителю I откликов, подтверждающих наличие некорректных адреса получателей сообщений электронной почты отправителю сообщений электронной почты, значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. В случае невыполнения условия I≥I формируют I ложных откликов с сообщением об ошибке, направляют I откликов с ложным сообщением об ошибке отправителю сообщений электронной почты, в случае получения на отклик с ложным сообщением об ошибке от отправителя сообщений команды о разрыве установленного соединения, значения I и I уменьшаются на единицу, а сетевое соединение с отправителем почтовых сообщений завершается. В ином случае, если после направления отклика с ложным сообщением об ошибке отправителю, от него поступила повторная команда, то принимают от отправителя повторную команду с исправленной ошибкой. Далее вновь формируют отклик с ложным сообщением об ошибке, направляют его отправителю и так до тех пор, пока не будет получена команда от отправителя сообщений о разрыве установленного соединения. Если выделенные идентификаторы получателей сообщений электронной почты совпадают с идентификаторами санкционированных получателей из массива памяти М, то считывают количество подключений отправителя. Затем устанавливают значение счетчика I количества подключений отправителя сообщений равным i. Далее сравнивают значение счетчика I количества подключений отправителя сообщений с I максимально возможным количеством подключений отправителя сообщений. При выполнении условия I≥I задают каждому из множества {I} подключений отправителя идентификатор I. После этого запоминают идентификатор каждого из подключений отправителя в массиве памяти Е. Далее формируют для каждого из подключений отправителя, характеризуемого идентификатором из массива памяти Е, значение времени задержки его обработки. Затем запоминают А значений времени задержки обработки подключений отправителя в массиве памяти Y. После этого запоминают в массиве памяти W соответствие каждому подключению, характеризуемому идентификатором из массива памяти Е, значения времени задержки перед его обработкой из массива памяти Y. Далее обрабатывают первое из подключений отправителя через время задержки перед его обработкой. После этого удаляют идентификатор первого из обработанных подключений и соответствующее ему значение времени задержки перед его обработкой, а также запись об их соответствии из массивов памяти Е, А и W соответственно. Затем уменьшают значение счетчика I количества подключений отправителя сообщений на единицу. В случае если значение счетчика I ≠ 0, то обрабатывают очередное из подключений отправителя и так до тех пор, пока не будет выполнено условие I = 0. При невыполнении условия I≥I направляют отправителю ответный отклик.
Значение времени задержки для каждого из промежуточных откликов отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 0,1 до 1 секунды.
Количество промежуточных откликов, направляемых отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 10000 до 25000.
Значение времени задержки для каждого из фрагментов ответного отклика, направляемого отправителю сообщений электронной почты, выбирают в пределах от 0,1 до 1 секунды.
Величину фрагментов, на которые разбивают ответный отклик несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 4 байт.
сmах
Максимально возможное количество подключений отправителя сообщений электронной почты I, выбирают в пределах от 5 до 10 подключений.
Значения времени задержки ответных откликов, содержащих код ошибки, выбирают в пределах от 0,1 до 1 секунды.
Количество ответных откликов, содержащих код ошибки, указывающий на временную недоступность получателя сообщений электронной почты, выбирают в пределах от 100 до 2000.
Значения времени задержки перед обработкой подключений отправителя, выбирают в пределах от 1 до 10 секунд.
Для каждого ложного ответного отклика несанкционированному отправителю сообщений электронной почты значение кода ошибки выбирают случайным образом из стандартных кодов ошибки протокола SMTP.
Благодаря новой совокупности существенных признаков в заявленном способе обеспечивается повышение результативности защиты снижением возможности обнаружения злоумышленником факта использования средств защиты и недопущением сбора действительных адресов получателей электронной почты для использования их в качестве потенциальных целей атаки. Снижение возможности обнаружения злоумышленником факта использования средств защиты достигается имитацией канала связи с плохим качеством на различных этапах почтовой транзакции за счет направления отправителю фрагментированного ответного отклика, фрагменты которого направляются через многочисленные малые интервалы времени задержки, после множества промежуточных откликов, направляемых через многочисленные малые интервалы времени задержки, за счет направления отправителю ответных откликов, указывающих на временную недоступность получателя сообщений электронной почты, через многочисленные малые интервалы времени задержки и за счет направления отправителю ложных откликов содержащих выбранный случайным образом код ошибки в соответствии со спецификацией протокола 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. После того, как отправитель передал приглашающее сообщение (приветствие) и получатель получил его, последний обычно передает серверу команду EHLO, идентифицирующую отправителя. После организации коммуникационного канала и согласования параметров отправитель обычно инициирует почтовую транзакцию, состоящую из последовательности команд, задающих отправителя и получателя сообщения электронной почты, а также передачи содержимого письма (включая все заголовки и прочие структуры). Команды 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, …, Т, а Т- общее количество сформированных значений времени задержки промежуточных откликов отправителю сообщений;
V - массив памяти для хранения d промежуточных откликов отправителю сообщений электронной почты, где d=1, 2 … R, а R - общее количество промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным сообщением;
- счетчик сформированных промежуточных откликов, хранящихся в массиве памяти V;
J - массив памяти для хранения матрицы соответствия d-му промежуточному отклику из массива V t-го сформированного значения времени задержки его направления отправителю сообщений электронной почты из массива памяти L;
Р - массив памяти для хранения g фрагментов на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений;
Z - массив памяти для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты;
m - счетчик сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р;
H - массив памяти для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z;
О - массив памяти для хранения u ответных откликов, содержащих код ошибки, указывающих на временную недоступность получателя сообщений электронной почты, в соответствии со спецификацией протокола SMTP, где u=1, 2, … U, a U - общее количество ответных откликов, содержащих код ошибки, на команды отправителя сообщений;
Х - массив памяти для хранения с значений времени задержки ответных откликов отправителю сообщений электронной почты, содержащих код ошибки, через которые ответные отклики будут направлены отправителю, где с=1, 2, … С, а С - общее количество сформированных значений времени задержки направления ответных откликов отправителю сообщений электронной почты, содержащих код ошибки;
b - счетчик сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О;
Q - массив памяти для хранения матрицы соответствия u-му ответному отклику, содержащему код ошибки, из массива О с-го сформированного значения времени его задержки из массива памяти X;
оа
I - счетчик количества некорректных адресов получателей сообщений электронной почты;
oamax
I - счетчик максимально возможного количества некорректных адресов получателей сообщений электронной почты;
1
2
i
i
{I}={I, I, …, I} множество подключений отправителя, где I- идентификатор подключения отправителя сообщений электронной почты, который содержит в себе порядковый номер подключения отправителя к получателю сообщений электронной почты, i - максимальный порядковый номер подключения отправителя к получателю сообщений электронной почты;
1
2
i
i
Е=[I, I, …, I] массив памяти для хранения I идентификаторов подключения отправителя сообщений электронной почты;
Y - массив памяти для хранения а значений времени задержки обработки подключений отправителя, где а=1, 2, … А, а А - общее количество значений времени задержки обработки подключений отправителя;
W - массив памяти для хранения соответствия подключениям отправителя, из массива памяти Е, значений времени задержки перед их обработкой из массива памяти Y.
Для повышения результативности защиты за счет снижения вероятности обнаружения злоумышленником факта использования средств защиты, имитируют канал связи с плохим качеством. Для этого, в целях исключения возможности идентификации злоумышленником средств защиты по продолжительным задержкам ответных откликов от получателя сообщений электронной почты, а также для предотвращения возможности обхода средств защиты за счет установки коротких тайм-аутов ожидания ответных откликов, в предварительно заданные данные дополнительно задают (см. блок 1 на фиг. 2а) массив памяти L для хранения t сформированных значений времени задержки промежуточных откликов отправителю сообщений электронной почты, где t=1, 2, …, Т, а T - общее количество сформированных значений времени задержки промежуточных откликов отправителю сообщений. Использование интервалов времени t, в течение которого отправителю сообщений будут направлены промежуточные отклики применяется для увеличения времени диалога с отправителем спам-сообщений в процессе почтовой транзакции, например, так как показано на фиг. 3.
Затем задают (см. блок 1 на фиг. 2а) массив памяти V для хранения d промежуточных откликов отправителю сообщений электронной почты, где d=1, 2 … R, a R - общее количество промежуточных откликов, которые будут направлены отправителю сообщений электронной почты перед ответным сообщением. Для того чтобы задать массив памяти, статически или динамически выделяют объем оперативной памяти (в байтах).
Далее задают (см. блок 1 на фиг. 2а)  счетчик сформированных промежуточных откликов, хранящихся в массиве памяти V. Счетчик сформированных промежуточных откликов позволяет осуществлять их учет и отследить момент отправки последнего промежуточного отклика, который впоследствии необходимо будет разделить на фрагменты, направляемые через сформированные значения времени задержки каждый, также в целях увеличения продолжительности времени диалога с отправителем спам-сообщений в процессе почтовой транзакции.
После этого задают (см. блок 1 на фиг. 2а) массив памяти J для хранения матрицы соответствия d-му промежуточному отклику из массива V t-го сформированного значения времени задержки его направления отправителю сообщений электронной почты из массива памяти L.
Затем для повышения результативности способа защиты и снижения вероятности обнаружения злоумышленником факта использования средств защиты, применяют разбиение ответного отклика отправителю на фрагменты и направление этих фрагментов отправителю через многочисленные малые интервалы времени, чем достигают невозможность обхода средств защиты вычислительной сети злоумышленником за счет использования коротких тайм-аутов ожидания ответного отклика, например, так как показано на фиг. 3. Для этого в предварительно заданные данные дополнительно задают (см. блок 1 на фиг. 2а) массив памяти Р для хранения g фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений, где g=1, 2, …, G, a G - общее количество сформированных фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений.
Затем задают (см. блок 1 на фиг. 2а) массив памяти Z для хранения ƒ сформированных значений времени задержки передачи фрагментов ответного отклика отправителю сообщений электронной почты, где ƒ=1, 2, …, F, a F - общее количество сформированных значений времени задержки направления фрагментов ответного отклика отправителю сообщений электронной почты.
Далее задают (см. блок 1 на фиг. 2а) счетчик т сформированных фрагментов, на которые разделяют ответный отклик, хранящихся в массиве памяти Р.
После этого задают (см. блок 1 на фиг. 2а) массив памяти Н для хранения матрицы соответствия g-му фрагменту из массива Р ƒ-го сформированного значения времени его задержки из массива памяти Z.
Далее для повышения результативности способа защиты и увеличения времени диалога со злоумышленником ему будут направляться ответные отклики, содержащие код ошибки, указывающий на временную недоступность получателей сообщений электронной почты, например, такой как «450 Requested mail action not taken: mailbox unavailable», в соответствии с RFC 5321 (см., например, https://tools.ietf.org/html/rfc5321), который показан на фиг. 4. Для этого задают (см. блок 1 на фиг. 2а) массив памяти О для хранения и ответных откликов, содержащих код ошибки, указывающих на временную недоступность получателя сообщений электронной почты, в соответствии со спецификацией протокола SMTP, на команды отправителя сообщений электронной почты, где u=1, 2, … U, а U - общее количество ответных откликов, содержащих код ошибки, на команды отправителя сообщений.
Далее задают (см. блок 1 на фиг. 2а) массив памяти X для хранения с значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю, где с=1, 2, … С, а С - общее количество сформированных значений времени задержки направления ответных откликов, содержащих код ошибки, отправителю сообщений электронной почты. После этого задают (см. блок 1 на фиг. 2а) счетчик b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О.
Затем задают (см. блок 1 на фиг. 2а) массив памяти Q для хранения матрицы соответствия u-му ответному отклику, содержащему код ошибки, из массива О с-го сформированного значения времени его задержки из массива памяти X.
ош
ошmах
Для недопущения сбора действительных адресов получателей электронной почты, например, посредством реализации атак типа «directory harvest attack (DHA)» по сбору адресов электронной почты получателей сообщений (см, например, https://en.wikipedia.org/wiki/Directory_Harvest_Attack), позволяющих подобрать действительные адреса электронной почты в домене с использованием различных перестановок общих имен пользователей и введения злоумышленника в заблуждение относительно истинных адресов электронной почты получателей сообщений предварительно задают (см. блок 1 на фиг. 2а) I - счетчик количества некорректных адресов электронной почты получателей сообщений и I - счетчик максимально возможного количества некорректных адресов электронной почты получателей сообщений.
1
2
i
i
Далее для учета сетевых подключений в целях исключения возможности злоумышленника реализовать перегрузку компьютеров получателей вычислительной сети за счет избыточного количества сетевых подключений задают (см. блок 1 на фиг. 2а) множество {I}={I, I, …, I} подключений отправителя к получателям сообщений электронной почты, где I - идентификатор подключения отправителя сообщений электронной почты, который содержит в себе порядковый номер подключения отправителя к получателю сообщений электронной почты, i - максимальный порядковый номер подключения отправителя к получателю сообщений электронной почты. Это обусловлено тем, что в соответствии со спецификацией протокола SMTP один отправитель сообщений электронной почты может организовать несколько сетевых подключений, что известно, и описано, например, в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc5321).
1
2
i
i
После этого задают (см. блок 1 на фиг. 2а) E=[I, I, …, I] массив памяти для хранения I идентификаторов.
Далее задают (см. блок 1 на фиг. 2а) массив памяти Y для хранения а значений времени задержки обработки подключений отправителя, где а=1, 2, … А, а А - общее количество значений времени задержки обработки подключений отправителя, чем принудительно увеличивают время диалога получателей сообщений электронной почты со злоумышленником.
Затем задают (см. блок 1 на фиг. 2а) массив памяти W для хранения матрицы соответствия подключениям отправителя, из массива памяти Е, значений времени задержки перед их обработкой из массива памяти Y.
c
s
s
smax
s
smax
c
s
После установления сетевого соединения с отправителем сообщений электронной почты (см. блок 2 на фиг. 2а), увеличения значений I (см. блок 3 на фиг. 2а) и I (см. блок 4 на фиг. 2а), сравнения I и I (см. блок 5 на фиг. 2а), в случае выполнения условия I≥I значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). В ином случае, отправителю сообщений электронной почты направляется (см. блок 6 на фиг. 2а) инициирующий сеанс SMTP отклик, принимается (см. блок 7 на фиг. 2а) команда, идентифицирующая отправителя почтовых сообщений, из принятой команды выделяются (см. блок 8 на фиг. 2а) идентификаторы отправителя сообщений и сравниваются (см. блок 9 на фиг. 2а) с опорными идентификаторами из массива памяти М. Если по результатам сравнения выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то отправителю сообщений направляется (см. блок 34 на фиг. 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 уменьшаются (см. блок 76 на фиг. 2б) на единицу, а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). В ином случае, если после отправки промежуточного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают (см. блок 21 на фиг. 2а) значение счетчика  сформированных промежуточных откликов. Отправка получателю сообщений электронной почты команды на завершение сетевого соединения в большинстве случаев не будет осуществлена, так как для сбора адресов электронной почты или массовой рассылки сообщений электронной почты злоумышленники применяют специализированные программные средства и спам-ботов соответственно, которые функционируют в автоматическом режиме и не в состоянии интеллектуально реагировать на изменение продолжительности времени диалога со средствами защиты.
Далее при выполнении условия ≠0 считывают (см. блок 16 на фиг. 2а) очередной (d+1)-й из ранее сформированных R промежуточных откликов.
После этого направляют (см. блок 17 на фиг. 2а) очередной (d+1)-й из ранее сформированных R промежуточных откликов через (t+1)-e значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие =1, указывающего на то, что все промежуточные отклики, кроме последнего, направлены отправителю сообщений электронной почты.
Затем для повышения результативности способа защиты, за счет снижения вероятности обнаружения злоумышленником факта использования средств защиты, применяют разбиение ответного отклика на команды отправителя на фрагменты и направление этих фрагментов отправителю через многочисленные малые интервалы времени, чем достигают невозможность обхода средств защиты злоумышленником использованием коротких тайм-аутов ожидания ответного отклика, например, как показано на фиг. 3. Для этого формируют (см. блок 22 на фиг. 2а) G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений после выполнения условия =1.
Далее запоминают (см. блок 23 на фиг. 2а) G фрагментов, на которые разделяют ответный отклик, направляемый отправителю сообщений.
После этого устанавливают (см. блок 24 на фиг. 2а) значение счетчика m сформированных фрагментов, на которые разделяется ответный отклик, равным G.
Затем формируют (см. блок 25 на фиг. 2а) F значений времени задержки для каждого из фрагментов, на которые разделяется ответный отклик отправителю.
Далее запоминают (см. блок 26 на фиг. 2а) F значений времени задержки для каждого из фрагментов, на которые разделяется ответный отклик отправителю в массиве памяти Z.
После этого запоминают (см. блок 27 на фиг. 2а) в массиве памяти Н соответствия g-му фрагменту из массива памяти Р ƒ-го сформированного значения времени его задержки из массива памяти Z.
Затем считывают (см. блок 28 на фиг. 2а) из массива памяти Р первый из G сформированных фрагментов ответного отклика и из массива памяти Z первое из F сформированных значений времени задержки.
Далее направляют (см. блок 29 на фиг. 2а) отправителю сообщений первый из G фрагментов ответного отклика через первое из Z сформированных значений времени задержки.
После этого удаляют (см. блок 30 на фиг. 2а) первый из G сформированных фрагментов ответного отклика и первое из F сформированных значений времени задержки, а также запись об их соответствии из массивов памяти Р, Z и H соответственно.
Затем уменьшают (см. блок 31 на фиг. 2а) значение счетчика m сформированных фрагментов ответного отклика, на единицу. Этим обеспечивают учет отправленных фрагментов ответного отклика.
с
s
В случае получения после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). В ином случае, если после отправки фрагмента ответного отклика команды на завершение сетевого соединения от отправителя сообщений электронной почты не последовало, то считывают  (см. блок 33 на фиг. 2а) значение счетчика m сформированных фрагментов ответного отклика.
В случае, если значение счетчика m≠0, то считывают (см. блок 28 на фиг. 2а) очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика.
После этого направляют (см. блок 29 на фиг. 2а) очередной (g+1)-й из ранее сформированных G фрагментов ответного отклика через (ƒ+1)-e значение времени задержки отправителю сообщений электронной почты, и так до тех пор, пока не будет выполнено условие m=0, означающее, что все фрагменты ответного отклика направлены отправителю, то есть он передан полностью.
В случае, если после приема (см. блок 35 на фиг. 2а) от отправителя сообщений команды на начало почтовой транзакции, идентифицирующей отправителя сообщений электронной почты, выделения (см. блок 36 на фиг. 2а) из принятой команды идентификаторов отправителя сообщений, сравнения (см. блок 37 на фиг. 2а) выделенных идентификаторов отправителя сообщений с опорными идентификаторами из массива памяти М, выделенные идентификаторы соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то отправителю сообщений направляется (см. блок 38 на фиг. 2а) ответный отклик о приеме полученной команды и начале почтовой транзакции. В ином случае, если по результатам сравнения выделенные идентификаторы не соответствуют опорным идентификаторам санкционированных отправителей сообщений из массива памяти М, то для ответа на принятую команду отправителя сообщений формируют (см. блок 39 на фиг. 2а) U ответных откликов, содержащих код ошибки, указывающий на временную недоступность получателя сообщений электронной почты, в соответствии со спецификацией протокола SMTP. Этим обеспечивают повышение результативности защиты за счет введения злоумышленника в заблуждение и увеличение продолжительности времени диалогового взаимодействия с ним.
Далее запоминают (см. блок 40 на фиг. 2б) U ответных откликов, содержащих код ошибки в массиве памяти О.
Затем устанавливают (см. блок 41 на фиг. 2б) значение счетчика b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О, равным U.
После этого формируют (см. блок 42 на фиг. 2б) С значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю.
Далее запоминают (см. блок 43 на фиг. 2б) С значений времени задержки ответных откликов, содержащих код ошибки, через которые ответные отклики будут направлены отправителю в массиве памяти X.
После этого запоминают (см. блок 44 на фиг. 2б) в массиве памяти Q соответствие u-му ответному отклику, содержащему код ошибки, из массива памяти О с-го сформированного значения времени его задержки из массива памяти X.
Считывают (см. блок 45 на фиг. 2б) из массива памяти О первый из U сформированных ответных откликов, содержащих код ошибки и из массива памяти X первое из С сформированных значений времени задержки.
Затем направляют (см. блок 46 на фиг. 2б) отправителю сообщений первый из U сформированных ответных откликов, содержащих код ошибки, через первое из С сформированных значений времени задержки, как показано на фиг. 4.
Далее удаляют (см. блок 47 на фиг. 2б) первый из U сформированных ответных откликов, содержащих код ошибки и первое из С сформированных значений времени задержки, а также запись об их соответствии из массивов памяти О, Х и Q соответственно.
После этого уменьшают (см. блок 48 на фиг. 2б) значение счетчика b сформированных ответных откликов, содержащих код ошибки, хранящихся в массиве памяти О на единицу.
c
s
В случае получения (см. блок 49 на фиг. 2б) от отправителя сообщений на полученный отклик, содержащий код ошибки, команды о разрыве установленного соединения значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). Если после отправки u-го ответного отклика, содержащего код ошибки, от отправителя сообщений электронной почты команды на разрыв соединения не последовало, а последовала повторная команда на начало почтовой транзакции, то считывают значение счетчика b сформированных ответных откликов, содержащих код ошибки.
В случае, если значение счетчика b ≠ 0 (см. блок 50 на фиг. 2б), что говорит о том, что еще не все ответные отклики, содержащие код ошибки, направлены отправителю сообщений электронной почты, то считывают (см. блок 45 на фиг. 2б) очередной (u+1)-й из U ранее сформированных ответных откликов, содержащих код ошибки.
Далее направляют (см. блок 46 на фиг. 2б) отправителю сообщений электронной почты (u+1)-й ответный отклик, содержащих код ошибки, через (с+1)-е значение времени задержки, и так до тех пор, пока не будет выполнено условие b=0 (см. блок 50 на фиг. 2б).
c
сmах
c
cmax
c
s
c
сmах
После приема (см. блок 51 на фиг. 2б) от отправителя сообщений команды, указывающей получателей сообщений электронной почты, выделения (см. блок 52 на фиг. 2б) из принятой команды идентификаторов получателей сообщений электронной почты, сравнения (см. блок 53 на фиг. 2б) выделенных идентификаторов с идентификаторами санкционированных получателей из массива М, если выделенные идентификаторы получателей сообщений электронной почты не совпадают с идентификаторами санкционированных получателей из массива М, то после сравнения (см. блок 54 на фиг. 2б) значения счетчика I количества подключений отправителя сообщений с I максимально возможным количеством подключений отправителя сообщений, при выполнении условия I≥I значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). При невыполнении условия I>I считывают (см. блок 51 на фиг. 2б) полученные от отправителя некорректные адреса получателей сообщений электронной почты, не принадлежащие идентификаторам санкционированных получателей из массива памяти М.
оа
oamax
После этого сравнивают (см. блок 55 на фиг. 2б) значение счетчика I количества некорректных адресов получателей сообщений электронной почты с I максимально возможным количеством полученных некорректных адресов получателей сообщений электронной почты.
оa
oamax
оа
В случае выполнения условия I- I формируют (см. блок 56 на фиг. 2б) I ложных откликов отправителю, подтверждающих наличие некорректных адресов получателей сообщений электронной почты.
оа
c
s
Направляют (см. блок 57 на фиг. 2б) отправителю I откликов, подтверждающих наличие некорректных адреса получателей сообщений электронной почты отправителю сообщений электронной почты, значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б).
оa
оаmах
оа
оа
В случае невыполнения условия I≥I формируют (см. блок 58 на фиг. 2б) I ложных откликов с сообщением об ошибке, в соответствии со спецификацией протокола SMTP, например, таких как «552 Выполнение команды прервано: превышен выделенный объем памяти» или «501 Синтаксическая ошибка в параметрах или аргументах» и др. (см., например, https://tools.ietf.org/html/rfc5321) и направляют (см. блок 59 на фиг. 2б) I откликов с ложным сообщением об ошибке отправителю сообщений электронной почты, как показано на фиг. 5.
c
s
В случае получения на отклик с ложным сообщением об ошибке от отправителя сообщений команды о разрыве установленного соединения, значения I и I уменьшаются на единицу (см. блок 76 на фиг. 2б), а сетевое соединение с отправителем почтовых сообщений завершается (см. блок 77 на фиг. 2б). В ином случае, если после направления отклика с ложным сообщением об ошибке отправителю, от него поступила повторная команда, то принимают (см. блок 61 на фиг. 2б) от отправителя повторную команду с исправленной ошибкой, вновь формируют (см. блок 58 на фиг. 2б) отклик с ложным сообщением об ошибке, направляют (см. блок 59 на фиг. 2б) его отправителю и так до тех пор, пока не будет получена команда от отправителя сообщений о разрыве установленного соединения.
c
c
сmах
Если выделенные идентификаторы получателей сообщений электронной почты совпадают с идентификаторами санкционированных получателей из массива памяти М (см. блок 53 на фиг. 2б), то считывают количество подключений отправителя сообщений электронной почты, устанавливают значение счетчика I количества подключений отправителя сообщений равным i и сравнивают (см. блок 62 на фиг. 2б) значение счетчика I количества подключений отправителя сообщений с I максимально возможным количеством подключений отправителя сообщений.
с
cmах
i
При выполнении условия I≥I задают каждому из множества {I} подключений отправителя идентификатор I и запоминают (см. блок 63 на фиг. 2б) идентификатор каждого из подключений отправителя в массиве памяти Е.
Формируют (см. блок 64 на фиг. 2б) для каждого из подключений отправителя, характеризуемого идентификатором из массива памяти Е, значение времени задержки его обработки.
Запоминают (см. блок 65 на фиг. 2б) А значений времени задержки обработки подключений отправителя в массиве памяти Y.
Запоминают (см. блок 66 на фиг. 2б) в массиве памяти W соответствие каждому подключению, характеризуемому идентификатором из массива памяти Е, значения времени задержки перед его обработкой из массива памяти Y.
Обрабатывают (см. блок 67 на фиг. 2б) первое из подключений отправителя через время задержки перед его обработкой.
Удаляют (см. блок 68 на фиг. 2б) идентификатор первого из обработанных подключений и соответствующее ему значение времени задержки перед его обработкой, а также запись об их соответствии из массивов памяти Е, А и W соответственно.
c
Уменьшают (см. блок 69 на фиг. 2б) значение счетчика I количества подключений отправителя сообщений на единицу.
c
c
В случае если значение счетчика I ≠ 0 (см. блок 70 на фиг. 2б), то обрабатывают (см. блок 67 на фиг. 2б) очередное из подключений отправителя, и так до тех пор, пока не будет выполнено условие I=0.
c
сmах
c
s
При невыполнении условия I≥I направляют (см. блок 71 на фиг. 2б) отправителю ответный отклик. После этого принимается (см. блок 72 на фиг. 2б) очередная команда, инициирующая передачу почтовых данных, отправителю сообщений направляется (см. блок 73 на фиг. 2б) ответный отклик о готовности приема текста сообщения электронной почты, принимается (см. блок 74 на фиг. 2б) текст сообщения электронной почты и почтовая транзакция завершается (см. блок 75 на фиг. 2б) передачей отклика, подтверждающего окончание транзакции. Затем уменьшаются (см. блок 76 на фиг. 2б) значения I и I на единицу и завершается (см. блок 77 на фиг. 2б) сетевое соединение с отправителем почтовых сообщений.
Для исключения возможности обхода средств защиты за счет установки злоумышленником коротких значений тайм-аутов ожидания ответных откликов от получателя сообщений на различных этапах процесса передачи сообщений электронной почты по протоколу SMTP значение времени задержки для каждого из промежуточных откликов отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 0,1 до 1 секунды.
Для увеличения времени диалогового взаимодействия со злоумышленником количество промежуточных откликов, направляемых отправителю сообщений электронной почты, перед отправкой ответного отклика получателем, выбирают в пределах от 10000 до 25000.
Для исключения возможности обхода средств защиты за счет установки злоумышленником коротких значений тайм-аутов ожидания ответных откликов от получателя сообщений на различных этапах процесса передачи сообщений электронной почты по протоколу SMTP значение времени задержки для каждого из фрагментов ответного отклика, направляемого отправителю сообщений электронной почты, выбирают в пределах от 0,1 до 1 секунды.
Для увеличения времени диалогового взаимодействия со злоумышленником величину фрагментов, на которые разбивают ответный отклик несанкционированному отправителю сообщений электронной почты, выбирают в пределах от 1 до 4 байт.
cmax
Для исключения реализации злоумышленником атак типа «отказ в обслуживании» за счет избыточного количества сетевых подключений максимально возможное количество подключений отправителя сообщений электронной почты I, выбирают в пределах от 5 до 10 подключений.
Для исключения возможности обхода средств защиты за счет установки злоумышленником коротких значений тайм-аутов ожидания ответных откликов от получателя сообщений на различных этапах процесса передачи сообщений электронной почты по протоколу SMTP значения времени задержки ответных откликов, содержащих код ошибки, выбирают в пределах от 0,1 до 1 секунды.
Для увеличения времени диалогового взаимодействия со злоумышленником количество ответных откликов, содержащих код ошибки, указывающий на временную недоступность получателя сообщений электронной почты, выбирают в пределах от 100 до 2000.
Для исключения перегрузки компьютеров получателей в виду значительного количества подключений санкционированных отправителей сообщений и недопущения отказа в обслуживании санкционированных отправителей значения времени задержки перед обработкой подключений отправителя, выбирают в пределах от 1 до 10 секунд. Этим достигают последовательную обработку соединений с отправителями сообщений без их разрыва по истечении времени тайм-аута соединения.
Для каждого ложного ответного отклика несанкционированному отправителю сообщений электронной почты значение кода ошибки выбирают случайным образом из стандартных кодов ошибки протокола SMTP.
Таким образом, в заявленном способе обеспечивается достижение сформулированной цели, заключающейся в повышении результативности защиты снижением возможности обнаружения злоумышленником факта использования средств защиты и недопущением сбора действительных адресов получателей электронной почты для использования их в качестве потенциальных целей атаки. Снижение возможности обнаружения злоумышленником факта использования средств защиты достигается имитацией канала связи с плохим качеством на различных этапах почтовой транзакции за счет направления отправителю фрагментированного ответного отклика, фрагменты которого направляются через многочисленные малые интервалы времени задержки, после множества промежуточных откликов, направляемых через многочисленные малые интервалы времени задержки, за счет направления отправителю ответных откликов, указывающих на временную недоступность получателя сообщений электронной почты, через многочисленные малые интервалы времени задержки и за счет направления отправителю ложных откликов содержащих выбранный случайным образом код ошибки в соответствии со спецификацией протокола SMTP. Недопущение сбора действительных адресов получателей электронной почты для использования их в качестве потенциальных целей атаки обеспечивается введением злоумышленника в заблуждение за счет направления отправителю ложных откликов, подтверждающих наличие некорректных адресов получателей сообщений электронной почты.