RU2811375C1 - System and method for generating classifier for detecting phishing sites using dom object hashes - Google Patents

System and method for generating classifier for detecting phishing sites using dom object hashes Download PDF

Info

Publication number
RU2811375C1
RU2811375C1 RU2023112277A RU2023112277A RU2811375C1 RU 2811375 C1 RU2811375 C1 RU 2811375C1 RU 2023112277 A RU2023112277 A RU 2023112277A RU 2023112277 A RU2023112277 A RU 2023112277A RU 2811375 C1 RU2811375 C1 RU 2811375C1
Authority
RU
Russia
Prior art keywords
page
data
hashes
hash
pages
Prior art date
Application number
RU2023112277A
Other languages
Russian (ru)
Inventor
Владислав Николаевич Тушканов
Original Assignee
Акционерное общество "Лаборатория Касперского"
Filing date
Publication date
Application filed by Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Application granted granted Critical
Publication of RU2811375C1 publication Critical patent/RU2811375C1/en

Links

Abstract

FIELD: computer technology.
SUBSTANCE: method for generating a classifier, including a machine learning model, for detecting phishing sites using hashes of page DOM objects contains stages at which pages corresponding to a set of links are obtained; a tree structure is generated in the form of a DOM tree for each page; at least one line is formed consisting of DOM tree elements for each page; at least two hashes are created for each page; two sets of data are formed from the generated hashes; a check for data diversity is performed in each data set; training of the classifier is carried out based on the generated data sets.
EFFECT: reduced proportion of false positives and increased proportion of true positives when detecting phishing sites.
11 cl, 9 dwg

Description

Область техникиTechnical field

Настоящее изобретение относится к области информационных технологий, а более конкретно к системам и способам обнаружения фишинговых сайтов и оптимизации обнаружения фишинговых сайтов.The present invention relates to the field of information technology, and more specifically to systems and methods for detecting phishing sites and optimizing the detection of phishing sites.

Уровень техникиState of the art

За последнее десятилетие компьютерные атаки, включающие имитацию сайтов популярных компаний, такие как фишинговые атаки, стали большой проблемой, с которой сталкиваются многие пользователи сети Интернет. Фишинг (англ. phishing от fishing «рыбная ловля, выуживание») — вид интернет-мошенничества, целью которого является получение доступа к конфиденциальным данным пользователей, в частности логинам и паролям. Это достигается путём проведения массовых рассылок электронных писем от имени популярных брендов, а также личных сообщений внутри различных сервисов, например от имени банков или внутри социальных сетей. В письме часто содержится прямая ссылка на сайт, внешне неотличимый от настоящего, либо на сайт с переадресацией. После того как пользователь попадает на поддельную страницу, злоумышленники пытаются различными приёмами побудить пользователя ввести на поддельной странице свои логин и пароль, которые он использует для доступа к определённому сайту, что позволяет злоумышленникам получить доступ к аккаунтам и банковским счетам пользователя.Over the past decade, computer attacks involving imitations of popular company websites, such as phishing attacks, have become a major problem facing many Internet users. Phishing (English phishing from fishing “fishing, fishing”) is a type of Internet fraud, the purpose of which is to gain access to confidential user data, in particular logins and passwords. This is achieved by sending mass emails on behalf of popular brands, as well as personal messages within various services, for example, on behalf of banks or within social networks. The letter often contains a direct link to a site that is externally indistinguishable from the real one, or to a site with redirection. After the user lands on a fake page, attackers try various techniques to induce the user to enter his login and password on the fake page, which he uses to access a certain site, which allows attackers to gain access to the user's accounts and bank accounts.

Существуют и другие способы кражи конфиденциальных данных пользователей. Некоторые фишеры используют JavaScript для изменения адресной строки. Это достигается, например, путем исполнения так называемой атаки «браузер в браузере», в рамках которой злоумышленник создает с помощью HTML фальшивое окно браузера прямо на веб-странице сайта.There are other ways to steal users' confidential data. Some phishers use JavaScript to change the address bar. This is achieved, for example, by performing a so-called “browser-in-browser” attack, in which the attacker creates a fake browser window using HTML directly on the site’s web page.

Также злоумышленники могут использовать уязвимости в скриптах доверенного сайта. Этот вид мошенничества, известный как «межсайтовый скриптинг» (англ. Cross-Site Scripting), наиболее опасен, так как пользователь взаимодействует с официальным (доверенным) сайтом. Атака с использованием межсайтового скриптинга представляет собой внедрение вредоносного кода в контент доверенного сайта и последующую его работу в динамическом контенте, отображаемом в браузере пользователя (жертвы). Подобный фишинг очень сложно обнаружить без специальных навыков.Attackers can also exploit vulnerabilities in trusted site scripts. This type of fraud, known as Cross-Site Scripting, is the most dangerous because the user is interacting with an official (trusted) site. A cross-site scripting attack is the injection of malicious code into the content of a trusted website and its subsequent execution in dynamic content displayed in the user's (victim's) browser. This kind of phishing is very difficult to detect without special skills.

Из уровня техники известны решения, направленные на обнаружение кибератак, использующих мошеннические сайты.Solutions are known from the prior art aimed at detecting cyber attacks using fraudulent sites.

Например, из публикации US 20200252428 А1 известно решение для обнаружения фишинговых кибератак. Это решение включает анализ кода, загруженного с веб-страницы по определенному URL-адресу (от англ. uniform resource locator), для выявления ссылок. По ссылкам осуществляется сбор URL-адресов со страниц сайта и анализ кода, соответствующего собранным URL. Если код соответствует коду, относящемуся к известным фишинговым кибератакам (вредоносным URL), то исходный URL-адрес определяется как вредоносный URL. Одним из недостатков представленного решения является увеличение времени анализа при большом объеме данных и невозможности вынесения решения в случае неполного соответствия кода при его сравнении с другим кодом. Одним из вариантов решения, устраняющего указанный недостаток, является применение моделей машинного обучения для ускорения обработки больших объемов информации.For example, from publication US 20200252428 A1, a solution for detecting phishing cyber attacks is known. This solution involves analyzing the code downloaded from a web page at a specific URL (uniform resource locator) to identify links. The links collect URLs from site pages and analyze the code corresponding to the collected URLs. If the code matches code related to known phishing cyberattacks (malicious URLs), then the original URL is determined to be a malicious URL. One of the disadvantages of the presented solution is the increase in analysis time with a large volume of data and the impossibility of making a decision in the case of incomplete compliance of the code when comparing it with other code. One of the solutions that eliminates this drawback is the use of machine learning models to speed up the processing of large volumes of information.

Кроме того, огромный объем информации, представленный в Интернете, тоже является проблемой для быстрого и эффективного мониторинга и анализа веб-сайтов. Так, например, в процессе обработки потока фишинговых URL, а именно когда скачиваются HTML-страницы, которые им соответствуют, вместо реальной фишинговой страницы потенциально получают много типовой информации, например: сообщения о том, что эти страницы уже заблокированы; различные ошибки сервера, если страница заблокирована или удалена администратором; типовой клоакинг (от англ. Cloak), т.е. метод обмана поисковых систем и систем автоматизированного анализа. Количество таких данных может быть достаточно велико. Для решения этой задачи используются контентные обработчики и производные от них технологии, работающие на основании машинного обучения, при этом качество их работы крайне зависит от качества обучающих данных. Практика показала, что именно такая типовая информация мешает добиться высокого качества обнаружения реальной фишинговой атаки. Во-первых, модель машинного обучения обучается обнаруживать то, что обнаружить легко, но уже обнаруживать не нужно, например, по причине того, что эти страницы уже заблокированы, а не действительно сложные фишинговые страницы. Во-вторых, повышается вероятность ложных срабатываний из-за попадания в фишинговые образцы безопасных (легитимных) HTML-страниц.In addition, the huge amount of information available on the Internet also poses a challenge for quickly and effectively monitoring and analyzing websites. So, for example, in the process of processing a stream of phishing URLs, namely when HTML pages that correspond to them are downloaded, instead of the real phishing page, they potentially receive a lot of typical information, for example: messages that these pages are already blocked; various server errors if the page is blocked or deleted by the administrator; typical cloaking (from the English Cloak), i.e. a method of deceiving search engines and automated analysis systems. The amount of such data can be quite large. To solve this problem, content processors and technologies derived from them are used, working on the basis of machine learning, and the quality of their work is extremely dependent on the quality of the training data. Practice has shown that it is precisely this type of typical information that prevents high-quality detection of a real phishing attack. First, the machine learning model is trained to detect things that are easy to detect but no longer need to be detected, for example, because these pages are already blocked, and not really complex phishing pages. Secondly, the likelihood of false positives increases due to safe (legitimate) HTML pages being included in phishing samples.

Соответственно, необходимы решения, способные обнаруживать изменения на сайтах или сходства с фишинговыми сайтами, при этом обеспечивая уменьшение числа ложных срабатываний и увеличение доли истинно-положительных срабатываний. Варианты осуществления настоящего изобретения решают по меньшей мере указанные задачи по отдельности и вместе.Accordingly, solutions are needed that can detect changes in sites or similarities to phishing sites, while reducing the number of false positives and increasing the rate of true positives. Embodiments of the present invention achieve at least these objectives individually and collectively.

Раскрытие изобретенияDisclosure of the Invention

Настоящее изобретение относится к решениям для обнаружения фишинговых сайтов и направлено на уменьшение числа ложных срабатываний и увеличение доли истинно-положительных срабатываний при обнаружении фишинговых сайтов с помощью базы хешей деревьев DOM для страниц.The present invention relates to solutions for detecting phishing sites and is aimed at reducing the number of false positives and increasing the proportion of true positives when detecting phishing sites using a database of DOM tree hashes for pages.

Технический результат настоящего изобретения заключается в уменьшении доли ложных срабатываний и увеличении доли истинно-положительных срабатываний за счет формирования классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов при помощи хешей объектов DOM для страниц.The technical result of the present invention is to reduce the proportion of false positives and increase the proportion of true positives by generating a classifier, including a machine learning model, for detecting phishing sites using hashes of DOM objects for pages.

В одном из вариантов реализации изобретения предлагается способ формирования классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов при помощи хешей объектов DOM страниц, при этом указанный способ содержит этапы, на которых: получают страницы, соответствующие набору ссылок; формируют древовидную структуру в виде DOM-дерева для каждой страницы путем парсинга страницы, во время которого извлекают данные и информацию из страницы; формируют по меньшей мере одну строку, состоящую из элементов DOM-дерева для каждой страницы, на основании шаблона; создают по меньшей мере два хеша для каждой страницы, при этом первый хеш формируют от всей страницы, а второй и последующие хеши – от сформированных строк; формируют два набора данных из сформированных хешей, где первый набор данных содержит информацию о безопасных страницах, а второй набор данных содержит информацию о фишинговых страницах; проводят проверку на наличие разнообразности данных в каждом наборе данных; осуществляют обучение классификатора, включающего модель машинного обучения, на основании сформированных наборов данных.In one of the embodiments of the invention, a method is proposed for generating a classifier, including a machine learning model, for detecting phishing sites using hashes of DOM objects of pages, and this method contains the steps of: obtaining pages corresponding to a set of links; form a tree structure in the form of a DOM tree for each page by parsing the page, during which data and information are extracted from the page; generating at least one line consisting of DOM tree elements for each page based on the template; creating at least two hashes for each page, with the first hash being generated from the entire page, and the second and subsequent hashes from the generated rows; form two sets of data from the generated hashes, where the first set of data contains information about safe pages, and the second set of data contains information about phishing pages; check for data diversity in each data set; carry out training of a classifier, including a machine learning model, based on the generated data sets.

В другом варианте исполнения способа получают страницы по меньшей мере одним из подходов: скачивают страницы сайта согласно ссылкам в виде текстовых файлов или получают страницы из базы данных.In another embodiment of the method, pages are obtained using at least one of the following approaches: website pages are downloaded according to links in the form of text files or pages are obtained from a database.

В еще одном варианте исполнения способа шаблон определяет способ формирования строки из элементов DOM-дерева страницы.In another embodiment of the method, the template determines the method for forming a string from elements of the page's DOM tree.

В другом варианте исполнения способа по меньшей мере одним шаблоном является один из следующих шаблонов:In another embodiment of the method, the at least one template is one of the following templates:

шаблон, согласно которому формируют строку на основании только названий тегов в DOM-дереве страницы (первый шаблон);a template according to which a line is formed based only on the names of the tags in the DOM tree of the page (the first template);

шаблон, согласно которому формируют строку на основании названий тегов и названий атрибутов тегов (второй шаблон).a template according to which a string is formed based on tag names and tag attribute names (second template).

В еще одном варианте исполнения способа формируют по меньшей мере две строки, при этом первую строку формируют на основании первого шаблона, а вторую строку формируют на основании второго шаблона.In yet another embodiment of the method, at least two lines are formed, the first line being formed based on the first template, and the second line being formed based on the second template.

В другом варианте исполнения способа проверку осуществляют путем определения, есть ли в наборах данных группы схожих хешей, при этом указанные группы являются достаточно многочисленными.In another embodiment of the method, the check is carried out by determining whether there are groups of similar hashes in the data sets, and these groups are sufficiently numerous.

В еще одном варианте исполнения способа дополнительно проводят очистку данных из наборов данных, где очистка заключается в поиске и удалении из одного из набора данных хешей, которые попали в оба набора данных.In another embodiment of the method, data is additionally cleaned from the data sets, where the cleaning consists of searching and removing from one of the data sets hashes that are included in both data sets.

В другом варианте исполнения способа дополнительно проводят проверку на наличие разнообразности данных в каждом из указанных наборе данных.In another embodiment of the method, a check is additionally carried out for the presence of data diversity in each of the specified data sets.

В еще одном варианте исполнения способа дополнительно после обучения классификатора осуществляют проверку его работы на тестовом подмножестве данных.In another embodiment of the method, after training the classifier, its operation is checked on a test subset of data.

В другом варианте исполнения способа проводят переобучение классификатора при выявлении ложного срабатывания во время проверки на тестовом подмножестве данных.In another embodiment of the method, the classifier is retrained when a false positive is detected during testing on a test subset of data.

В другом варианте реализации изобретения предлагается система формирования классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов на основании объектов DOM страниц, при этом указанная система включает: средство сбора данных, средство анализа, включающие средство формирования объекта DOM и средство формирование хешей, средство хранения данных, средство обучения, предназначенное для обучения классификатора, включающего модель машинного обучения для поиска фишинговых сайтов, и в которой вычислительное устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, хранящую машиночитаемые инструкции, исполняемые по меньшей мере одним процессором, осуществляет упомянутый способ.In another embodiment of the invention, a system for generating a classifier, including a machine learning model, is proposed for detecting phishing sites based on DOM page objects, wherein said system includes: a data collection tool, an analysis tool, including a DOM object generation tool and a hash generation tool, a storage means data, a learning tool for training a classifier including a machine learning model for finding phishing sites, and in which a computing device comprising at least one processor and at least one memory storing machine-readable instructions executable by the at least one processor performs the mentioned method.

Краткое описание чертежейBrief description of drawings

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objects, features and advantages of the present invention will become apparent from a reading of the following description of the invention with reference to the accompanying drawings, in which:

Фиг. 1 показывает пример системы создания классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов. Fig. 1 shows an example of a system for creating a classifier incorporating a machine learning model for detecting phishing sites.

Фиг. 2 показывает пример системы обнаружения фишинговых сайтов с возможностью последующего переобучения классификатора. Fig. Figure 2 shows an example of a system for detecting phishing sites with the possibility of subsequent retraining of the classifier.

Фиг. 3 показывает пример способа обучения (переобучения) модели машинного обучения для обнаружения фишинговых сайтов. Fig. Figure 3 shows an example of a method for training (retraining) a machine learning model to detect phishing sites.

Фиг. 4 показывает пример способа обнаружения фишинговых сайтов. Fig. 4 shows an example of a method for detecting phishing sites.

Фиг. 5а-5б показывает пример объекта DOM для страницы сайта и формирования строк из объекта DOM. Fig. 5a-5b shows an example of a DOM object for a site page and generating strings from the DOM object.

Фиг. 6 показывает пример базы данных, содержащей классифицированные хеш-функции страниц сайтов для обучения модели машинного обучения. Fig. Figure 6 shows an example of a database containing classified hash functions of website pages for training a machine learning model.

Фиг. 7 показывает примеры подозрительных страниц и применение настоящего изобретения. Fig. 7 shows examples of suspicious pages and the application of the present invention.

Фиг. 8 иллюстрирует пример компьютерной системы, с помощью которой осуществляется настоящее изобретение. Fig. 8 illustrates an example of a computer system with which the present invention is implemented.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.Although the invention may take various modifications and alternative forms, the characteristic features exemplified in the drawings will be described in detail. It should be understood that the purpose of the description is not to limit the invention to a specific embodiment. On the contrary, it is the purpose of the description to cover all changes and modifications falling within the scope of the present invention as defined in the appended claims.

Описание вариантов осуществления изобретенияDescription of Embodiments of the Invention

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.Objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, but may be embodied in various forms. The following description is intended to assist one skilled in the art to fully understand the invention, which is defined only by the scope of the appended claims.

Настоящее изобретение является техническим решением, позволяющим автоматически обнаруживать фишинговые сайты и информировать о найденных изменениях или сходствах с фишинговыми сайтами с помощью компонента, содержащего модель машинного обучения. В рамках настоящего изобретения на основании информации о сайтах, в том числе об их страницах, осуществляется формирование обучающей выборки для обучения или переобучения модели машинного обучения, при этом имея возможность проводить «очистку» данных, получаемых в процессе обнаружения фишинговых сайтов, от «мусорных» данных. Эффективность работы модели машинного обучения зависит от качества данных, на основании которых обучается указанная модель. Поэтому «мусорными» данными считаются данные, которые влияют на появление ошибок первого и второго рода. Другим словами, «мусорные» данные понижают вероятность обнаружения фишинговых сайтов или увеличивают вероятность определения легитимных сайтов как фишинговых, что повышает вероятность ложного срабатывания указанной модели. Таким образом, настоящее изобретение позволяет более эффективно и быстро анализировать большое количество сайтов для выявления фишинговых сайтов, чем существующие технологии.The present invention is a technical solution that allows you to automatically detect phishing sites and inform about detected changes or similarities to phishing sites using a component containing a machine learning model. Within the framework of the present invention, based on information about sites, including their pages, a training sample is formed for training or retraining a machine learning model, while being able to “clean” the data obtained in the process of detecting phishing sites from “junk” data. The performance of a machine learning model depends on the quality of the data on which the model is trained. Therefore, “garbage” data is considered to be data that influences the appearance of errors of the first and second types. In other words, “junk” data reduces the likelihood of detecting phishing sites or increases the likelihood of identifying legitimate sites as phishing, which increases the likelihood of a false positive for the specified model. Thus, the present invention makes it possible to analyze a large number of sites more efficiently and quickly to identify phishing sites than existing technologies.

Стоит отметить, что подходы, представленные при описании настоящего изобретения, в зависимости от реализации позволяют определять сходства между целевым сайтом и большим набором сайтов точнее и быстрее, чем известные из уровня техники решения, предназначенные для сравнения сайтов. It is worth noting that the approaches presented in the description of the present invention, depending on the implementation, can determine similarities between a target site and a large set of sites more accurately and quickly than prior art solutions designed for comparing sites.

Настоящее изобретение может быть реализовано совместно с такими системами, которые предназначены для сбора информации о сайтах, в том числе контента сайтов, с различных серверов, подключенных к сети Интернет, анализа собранной информации для определения, соответствует ли информация сайта ранее размещенной информации на сайте, классификации сайтов на основании определения сходства в контенте сайтов с ранее классифицированными сайтами, в том числе определения, является ли сайт фишинговым. Настоящее изобретение может являться посредником между сайтами и другими участниками сети, которые обращаются к сайтам, например для определения, является ли сайт фишинговым и вредоносным.The present invention can be implemented in conjunction with such systems that are designed to collect information about sites, including site content, from various servers connected to the Internet, analyze the collected information to determine whether the site information corresponds to previously posted information on the site, classification sites based on determining the similarity in the content of sites with previously classified sites, including determining whether the site is phishing. The present invention can mediate between sites and other network participants who access the sites, for example to determine whether a site is phishing or malicious.

Варианты осуществления настоящего изобретения используют в своей работе анализ страниц сайта через «объектную модель документа» (от англ. Document Object Model) или объект DOM. Объект DOM формируется для каждой страницы, преобразовывается в определенный вид и на его основании формируются несколько типов хешей (англ. hash), позволяющих точнее сравнить страницы сайтов и/или сами сайты. После этого проводится обучение модели машинного обучения, которая в дальнейшем используется для выявления фишинговых сайтов. Такой подход позволяет точнее определить сходства между страницами или сайтами, что влечет уменьшение числа ложных срабатываний при определении фишинговых страниц и/или сайтов и, соответственно, увеличивает долю истинно-положительных срабатываний, т.е. выявлений фишинговых сайтов.Embodiments of the present invention use in their work the analysis of website pages through the “Document Object Model” (from the English Document Object Model) or DOM object. A DOM object is generated for each page, converted to a specific form, and based on it, several types of hashes (English hash) are formed, which allow more accurate comparison of site pages and/or sites themselves. After this, a machine learning model is trained, which is subsequently used to identify phishing sites. This approach makes it possible to more accurately determine similarities between pages or sites, which leads to a reduction in the number of false positives when identifying phishing pages and/or sites and, accordingly, increases the proportion of true positive positives, i.e. detection of phishing sites.

Страница сайта – это самостоятельная часть веб-ресурса, представляющая собой текстовый файл на одном из языков разметки документов (например, в формате HTML или XHTML), при этом страница имеет свой уникальный адрес (URL). Каждая страница создается при помощи языка разметки и содержит по крайней мере главные теги: head, содержащий заголовок (Title) и метаданные (например, Keywords, Description), и основную часть – тело (Body), содержащее контент. У тегов есть значения и атрибуты, у которых также есть значения.A site page is an independent part of a web resource, which is a text file in one of the document markup languages (for example, in HTML or XHTML format), and the page has its own unique address (URL). Each page is created using markup language and contains at least the main tags: head, containing the title (Title) and metadata (for example, Keywords, Description), and the body (Body), containing the content. Tags have values and attributes, which also have values.

Объект DOM – это независимый от платформы и языка интерфейс, который позволяет динамически получать доступ и обновлять содержимое, структуру и стиль HTML-, XHTML- и XML-текстовых файлов (далее – текстовые файлы). Текстовые файлы могут включать в себя любые данные. Например, текстовый файл может включать полученный от веб-сервера HTML-код для страницы. Объект DOM определяет логическую структуру текстового файла или способ доступа к текстовому файлу и позволяет управлять им через древовидную структуру, называемую деревом DOM. Основой каждого размеченного текстового файла являются теги (англ. tag), в частности HTML-теги. В соответствии с объектом DOM каждый тег текстового файла является объектом. Вложенные теги являются «детьми» родительского элемента. Текст, который находится внутри тега, также является объектом. Объект DOM позволяет клиентским приложениям динамически получать доступ, взаимодействовать и обновлять информацию сайта, полученную от одного или нескольких веб-серверов.The DOM object is a platform- and language-independent interface that allows you to dynamically access and update the content, structure, and style of HTML, XHTML, and XML text files (hereinafter referred to as text files). Text files can contain any data. For example, a text file might include the HTML code for a page received from a web server. The DOM object defines the logical structure of a text file, or how a text file is accessed, and allows it to be manipulated through a tree structure called a DOM tree. The basis of every marked up text file is tags, in particular HTML tags. According to the DOM object, each text file tag is an object. Nested tags are "children" of the parent element. The text that is inside the tag is also an object. The DOM object allows client applications to dynamically access, interact with, and update site information received from one or more Web servers.

Признак «информация о сайте» может включать любую соответствующую информацию, связанную с сайтом или хостом (например, сервером), на котором размещен сайт. Например, информация о сайте может включать: URL-адрес сайта; HTML-код, полученный после связи с веб-сервером; заголовки (англ. headers) ответа от веб-сервера; метаданные, связанные с HTML-кодом; и любую другую информацию, которая может быть получена от веб-сервера для отображения страницы, связанной с сайтом.The "site information" attribute may include any relevant information associated with the site or the host (eg, server) on which the site is hosted. For example, site information may include: site URL; HTML code received after contacting the web server; headers of the response from the web server; metadata associated with HTML code; and any other information that may be received from the Web server to display the page associated with the Site.

На Фиг. 1 представлен примерный вариант реализации системы создания классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов 100 (далее – система создания классификатора 100). Система создания классификатора 100 предназначена для обучения модели машинного обучения, которая в свою очередь предназначенна для обнаружения фишинговых сайтов.In FIG. 1 shows an example implementation of a system for creating a classifier, including a machine learning model, for detecting phishing sites 100 (hereinafter referred to as the system for creating a classifier 100 ). The classifier creation system 100 is designed to train a machine learning model, which in turn is designed to detect phishing sites.

В одном из вариантов реализации система создания классификатора 100 осуществляется при помощи компьютерной системы, например такой, как представлена на Фиг. 8. In one embodiment, the system for creating the classifier 100 is implemented using a computer system, such as the one shown in FIG. 8 .

В предпочтительном варианте реализации система создания классификатора 100 включает такие средства, как средство сбора данных 110, средство анализа 115, средство хранения данных 140 и средство обучения классификатора для поиска фишинговых сайтов 150. Средство анализа 115 в свою очередь включает средство формирования объекта DOM 120 и средство формирования хешей 130. В зависимости от реализации все средства могут быть связаны между собой как на аппаратном, так и на программного уровне, при этом возможен вариант реализации совместного применения аппаратного и программного уровней.In a preferred embodiment, the classifier creation system 100 includes a data collection engine 110 , an analysis engine 115 , a data storage engine 140 , and a classifier training engine for searching phishing sites 150 . The parser 115 in turn includes a DOM object generator 120 and a hash generator 130 . Depending on the implementation, all tools can be interconnected both at the hardware and software levels, and it is possible to implement the joint use of hardware and software levels.

Средство сбора данных 110 предназначено для взаимодействия с сайтами 160, которые, как правило, расположены на внешних устройствах, и с устройствами, такими как облачное хранилище 165, для сбора необходимой информации о сайтах. Стоит отметить, что средство сбора данных 110 может быть реализовано в том числе любым подходящим и известным способом, предназначенным для поиска, получения и хранения информации о сайтах.Data Collection Tool110 designed to interact with websites160, which are usually located on external devices, and with devices such as cloud storage165, to collect the necessary information about sites. It is worth noting that the data collection tool110 can be implemented, inter alia, by any suitable and known method designed to search, receive and store information about sites.

Взаимодействие с сайтами 160 и устройствами 165 осуществляется как по проводной связи, так и по беспроводной связи, например через сеть 170. В общем случае примером сети 170 является сеть Интернет. Внешними устройствами, на которых расположены сайты 160, являются, например, компьютерные системы типа хостинга, которые размещают данные и хранят их. Такими данными являются не только сами сайты, но и информация, связанная с ними, например URL сайта или страницы сайта. Также средство сбора данных 110 может взаимодействовать с различными DNS-серверами (от англ. Domain name server) и поисковыми системами для сбора информации о сайтах. Внешним устройством 165 является облачное хранилище, которое в свою очередь взаимодействует с поисковыми системами и предназначено для сбора и хранения информации о сайтах. В еще одном варианте реализации устройство 165 является облачной инфраструктурой, например такой, как Kaspersky Security Network (KSN). KSN – это инфраструктура облачных служб, предоставляющая доступ к оперативной базе знаний о репутации файлов, интернет-ресурсов (сайтов) и программного обеспечения. Устройство 165 может содержать как информацию о легитимных файлах, интернет-ресурсах (сайтах) и программном обеспечении, так и о вредоносных, например фишинговых сайтах и страницах.Interaction with sites 160 and devices 165 occurs via both wired and wireless communications, such as through network 170 . In general, an example of network 170 is the Internet. The external devices on which the sites 160 are located are, for example, computer systems such as hosting that host and store data. This data includes not only the sites themselves, but also information associated with them, such as the site URL or site pages. Also, the data collection tool 110 can interact with various DNS servers (from the English Domain name server) and search engines to collect information about sites. The external device 165 is a cloud storage, which in turn interacts with search engines and is designed to collect and store information about sites. In yet another embodiment, device 165 is a cloud infrastructure, such as Kaspersky Security Network (KSN). KSN is a cloud service infrastructure that provides access to an operational knowledge base about the reputation of files, Internet resources (sites) and software. Device 165 can contain both information about legitimate files, Internet resources (sites) and software, and about malicious ones, such as phishing sites and pages.

Средство сбора данных 110 может собирать информацию о сайтах как в автоматическом режиме или взаимодействуя с различными поисковыми системами, так и по запросу других средств системы создания классификатора 100 или запросу, полученному от пользователя системы 100 через одно из средств ввода (не представлены на Фиг. 1). Примером работы средства сбора данных 110 в автоматическом режиме является подход, используемый поисковыми роботами (англ. Web crawler), для регулярного и/или периодического обхода сайтов 160, размещенных на хостингах и доступных через сеть 170.The data collection tool 110 can collect information about sites either automatically or by interacting with various search engines, or at the request of other means of the system for creating a classifier 100 or a request received from a user of the system 100 through one of the input means (not shown in Fig. 1 ). An example of the operation of the data collection tool 110 in automatic mode is the approach used by search robots (English Web crawler) to regularly and/or periodically crawl sites 160 hosted on hosting sites and accessible via the network 170 .

В одном из вариантов реализации средство 110 получает набор URL 190 от внешнего устройства 165. В этом случае средство 110 собирает информацию о сайтах на основании ссылок URL из набора URL 190. Сбор информации осуществляется путем перехода по полученным ссылкам URL и скачивания необходимой информации, например самого сайта или его страницы в виде текстового файла и других ресурсов сайта.In one embodiment, tool 110 receives a set of URLs 190 from external device 165 . In this case, tool 110 collects site information based on URL links from the set of URLs 190 . Information is collected by following the received URL links and downloading the necessary information, for example, the site itself or its page in the form of a text file and other site resources.

После сбора информации о сайтах средство сбора данных 110 передает ее средству анализа 115.After collecting information about the sites, the data collection tool 110 transmits it to the analysis tool 115 .

Средство анализа 115 предназначено для создания набора хешей для каждого сайта и/или для каждой его страницы. Набор хешей для каждой страницы или сайта содержит по меньшей мере два типа хеша. В предпочтительном варианте реализации набор хешей состоит из трех типов хешей. Три типа хешей позволяют наиболее эффективно проводить поиск похожих сайтов и/или осуществлять обнаружение фишинговых сайтов. В то же время в зависимости от реализации изобретения возможно применение и по крайней мере одного типа хеша, например для задач по определению схожести страниц или сайтов. Стоит отметить, что в варианте реализации, когда применяется только один тип хеша, хеш должен быть создан при помощи объекта DOM.The analysis tool 115 is designed to create a set of hashes for each site and/or for each page thereof. The hash set for each page or site contains at least two hash types. In a preferred embodiment, the hash set consists of three hash types. Three types of hashes allow you to most effectively search for similar sites and/or detect phishing sites. At the same time, depending on the implementation of the invention, it is possible to use at least one type of hash, for example, for tasks of determining the similarity of pages or sites. It is worth noting that in an implementation where only one type of hash is used, the hash must be created using a DOM object.

Средство анализа 115 при помощи средства формирования объекта DOM 120 проводит парсинг каждой страницы, полученной от средства сбора данных 110. Под парсингом страницы подразумевается автоматизированный процесс извлечения данных или информации из страницы, которая имеет вид текстового файла. В процессе парсинга средство анализа 115 при помощи средства формирования объекта DOM 120 создает древовидную структуры страницы, а именно DOM-дерево. Пример DOM-дерева представлен на Фиг. 5а. В одном из вариантов реализации для парсинга страницы средство формирования объекта DOM 120 использует библиотеку lxml для языка Python. В еще одном варианте реализации при помощи библиотеки lxml упомянутое средство 120 в том числе проводит восстановление страниц, например осуществляет корректировку (исправление) DOM-дерева и формирование кода (например, html-кода) страницы на основе древовидной структуры. Например, формирование кода заключается в восстановлении пропущенных закрывающих тегов. После формирования DOM-дерева упомянутое средство 120 передает его средству формирования хешей 130. Средство формирования хешей 130 преобразует полученное DOM-дерево в определенный вид, а именно формирует по меньшей мере одну строку из элементов DOM-дерева страницы согласно определенному шаблону. Каждый шаблон определяет, каким образом формируется строка из элементов DOM-дерева страницы.The parser 115 , using the DOM object generation engine 120 , parses each page received from the data collector 110 . Page parsing refers to the automated process of extracting data or information from a page that is in the form of a text file. During the parsing process, the parser 115 , using the DOM object generation tool 120, creates a tree structure of the page, namely a DOM tree. An example of a DOM tree is shown in Fig. 5a . In one implementation, the DOM 120 renderer uses the Python lxml library to parse the page. In another embodiment, using the lxml library, the mentioned tool 120 also performs page restoration, for example, adjusting (correcting) the DOM tree and generating code (for example, HTML code) of the page based on the tree structure. For example, code generation consists of restoring missing closing tags. After generating the DOM tree, said tool 120 passes it to the hash generation tool 130 . The hash generator 130 converts the resulting DOM tree into a certain form, namely, it forms at least one line from the elements of the page DOM tree according to a certain pattern. Each template defines how a string is formed from elements of the page's DOM tree.

Так, для формирования первой строки используется первый шаблон, согласно которому для формирования строки используются только названия тегов. Для этого средство 130 удаляет весь текст и все значения и формирует цепочку тегов, например: html, head, title, body. Можно говорить, что образовавшаяся строка является уникальной. Для формирования второй строки используется второй шаблон, согласно которому принцип остается тот же, что и при формировании первой строки, только используются названия тегов и дополнительно названия атрибутов тегов. На Фиг. 5б представлены примеры обоих строк, которые сформированы на основании DOM-дерева, представленного на Фиг. 5а.Thus, to form the first line, the first template is used, according to which only tag names are used to form the line. To do this, tool 130 removes all text and all values and generates a chain of tags, for example: html, head, title, body. We can say that the resulting string is unique. To form the second line, a second template is used, according to which the principle remains the same as when forming the first line, only the names of the tags and additionally the names of the tag attributes are used. In FIG. Figure 5b shows examples of both strings, which are generated based on the DOM tree presented in FIG. 5a .

Далее средство 130 формирует хеш для каждой сформированной строки, а также дополнительно формирует хеш и от самой страницы (текстового файла). В одном из вариантов реализации средство 130 формирует хеши на основании алгоритма MD5. Таким образом, средство 130 по меньшей мере формирует три типа хешей для каждой страницы, где первый хеш сформирован от всей страницы (контентный хеш или content_md5), второй хеш (hash_light) сформирован от первой строки, т.е. строки, сформированной согласно первому шаблону, и третий хеш (hash_full) сформирован от второй строки, т.е. строки, сформированной согласно второму шаблону. После формирования всех хешей для каждой страницы средство 130 передает их в средство хранения данных 140. Стоит отметить, что при формировании дополнительных строк на основании дополнительных шаблонов средство 130 также сформирует на их основании и дополнительные хеши.Next, tool 130 generates a hash for each generated line, and also additionally generates a hash from the page (text file) itself. In one embodiment, tool 130 generates hashes based on the MD5 algorithm. Thus, the tool 130 at least generates three types of hashes for each page, where the first hash is generated from the entire page (content hash or content_md5), the second hash (hash_light) is generated from the first line, i.e. line generated according to the first template, and the third hash (hash_full) generated from the second line, i.e. line generated according to the second pattern. After generating all the hashes for each page, the means 130 passes them to the data storage means 140 . It is worth noting that when generating additional strings based on additional patterns, tool 130 will also generate additional hashes based on them.

В одном из вариантов реализации средство 115 в начале работы осуществляет проверку каждой страницы на ее новизну. Другими словами, получало ли ранее средство 115 соответствующую страницу на анализ. В этом случае вначале средство 115 при помощи средства 130 сформирует хеш от самой страницы (первый хеш) и проведет проверку на наличие данного хеша в средстве хранения данных 140. В случае если средство 115 обнаружит хеш в средстве хранения данных 140, то средство 115 исключит данную страницу из дальнейшего анализа. В противном случае, если средство 115 не обнаружит соответствующий хеш в средстве хранения данных 140, то средство 115 проведет дальнейший анализ с учетом того, что хеш от самой страницы уже был сформирован.In one implementation, the tool 115 checks each page to see if it is new at the start of its operation. In other words, whether the tool 115 previously received the corresponding page for analysis. In this case, first, the tool 115 , using the tool 130 , will generate a hash from the page itself (the first hash) and check for the presence of this hash in the data storage tool 140 . If the tool 115 detects a hash in the data storage tool 140 , the tool 115 will exclude this page from further analysis. Otherwise, if the tool 115 does not detect a corresponding hash in the data storage means 140 , then the tool 115 will conduct further analysis, taking into account that the hash from the page itself has already been generated.

Средство хранения данных 140 является машиночитаемым носителем, который предназначен для хранения информации о сайтах и их страницах, при этом хранимая информация включает как сформированные хеши, так и дополнительную информацию о сайтах, например URL HTML-страниц. Дополнительная информация может быть предоставлена как средством анализа 115, так и средством сбора данных 110 или средством обучения 150. Пример хранения данных средством хранения данных 140 представлен на Фиг. 6. В одном из вариантов реализации средство хранения данных 140 представляет собой базу данных, выраженную в виде таблицы, в которой каждая строка содержит информацию для одного хеша. Информация для хеша по меньшей мере включает:Data storage means 140 is a computer-readable medium that is designed to store information about sites and their pages, where the stored information includes both generated hashes and additional information about the sites, such as URLs of HTML pages. Additional information may be provided by either the analysis tool 115 , the data collection tool 110, or the learning tool 150 . An example of data storage by the data storage means 140 is shown in FIG. 6 . In one embodiment, data storage means 140 is a database expressed as a table in which each row contains information for one hash. The hash information at least includes:

• Hash - значение хеша,• Hash - hash value,

• Hash_type - тип хеша (например, хеш от страницы «content_md5» (первый хеш), хеш «hash_light» (второй хеш), хеш «hash_full» (третий хеш)).• Hash_type - hash type (for example, hash from the page “content_md5” (first hash), hash “hash_light” (second hash), hash “hash_full” (third hash)).

Также средство хранения данных 140 дополнительно содержит информацию для хеша, которая включает назначение хеша и решение, которое выносится по соответствующему хешу. Например, в качестве назначения хеша может быть указано, что хеш используется при обучении (train_action) и каким образом – для тренировки или для проверки. Примером выносимого решения по хешу является указание на то, что хеш относится к хешам, указывающим на фишинговый сайт (mark_as_phish), или хешам, указывающим на «чистую» страницу или сайт (mark_as_clean).Also, the data storage means 140 further contains information for the hash, which includes the purpose of the hash and the decision that is made on the corresponding hash. For example, the purpose of the hash can indicate that the hash is used during training (train_action) and in what way - for training or for testing. An example of a hash judgment is to indicate that the hash refers to hashes pointing to a phishing site (mark_as_phish) or hashes pointing to a “clean” page or site (mark_as_clean).

Стоит отметить, что средство 140 содержит информацию как о безопасных страницах, так и о фишинговых страницах. Безопасными страницами являются страницы, которые не представляют угрозы потери данных третьих лиц и на которых не срабатывают механизмы обнаружения фишинговых сайтов. Также такими страницами являются страницы, формируемые и изменяемые только с разрешения владельца сайта, если владелец сайта имеет подтверждённую личность.It is worth noting that tool 140 contains information about both benign pages and phishing pages. Safe pages are pages that do not pose a threat to the loss of third party data and on which detection mechanisms for phishing sites do not work. Also, such pages are pages that are formed and modified only with the permission of the site owner, if the site owner has a confirmed identity.

В одном из вариантов реализации средство анализа 115 для каждого типа хешей из средства хранения данных 140 определяет их популярность и ранжирует в соответствии с определенной популярностью. В одном из вариантов реализации популярность определяется на основании анализа страниц в интервале 6 (шести) месяцев. Так, средство анализа 115 определяет, какое количество одинаковых хешей от страниц за последние шесть месяцев было сформировано. Соответственно, чем больше количество страниц, имеющих одинаковый хеш, тем более популярным является данный хеш.In one embodiment, the parser 115 determines the popularity of each hash type in the data store 140 and ranks them according to the determined popularity. In one embodiment, popularity is determined based on analysis of pages over a six (6) month period. Thus, the analysis tool 115 determines how many identical hashes from pages have been generated over the past six months. Accordingly, the greater the number of pages that have the same hash, the more popular this hash is.

Средство обучения 150 предназначено для обучения или переобучения классификатора, включающего модель машинного обучения, для поиска фишинговых сайтов. Средство обучения 150 при обучении классификатора взаимодействует со средством хранения данных 140. Средство обучения 150 формирует два набора данных. Первый набор данных содержит информацию о безопасных страницах, а второй набор данных содержит информацию о фишинговых страницах. В качестве информации о страницах понимается ранее собранная информация о сайтах, в частности информация о хешах. Каждый набор данных формируется на основании информации о хешах, в частности информации о назначении хешей. В частном варианте реализации наборы данных формируются с учетом частоты появления хеша среди всех созданных хешей и длины DOM-дерева, на основании которого хеш создан.The training tool 150 is designed to train or retrain a classifier including a machine learning model to find phishing sites. The training tool 150 interacts with the data storage tool 140 when training the classifier. The learning engine 150 generates two sets of data. The first dataset contains information about benign pages, and the second dataset contains information about phishing pages. Page information refers to previously collected information about sites, in particular information about hashes. Each data set is generated based on information about hashes, in particular information about the purpose of the hashes. In a particular implementation, data sets are formed taking into account the frequency of occurrence of a hash among all created hashes and the length of the DOM tree on the basis of which the hash was created.

В одном из вариантов реализации информация, содержащаяся в каждом наборе данных, включает информацию о страницах и сайтах, которую можно разделить на три группы. К первой группе относится информация о контенте, содержащемся на страницах, в частности информация об организациях, необходимости ввода пароля, или другие данные пользователей. Ко второй группе относится информация об URL-адресах, в частности информация о форме написания строки и наличии пробелов и специальных знаков. К третьей группе относится информация о страницах, полученная из внешних источников, таких как сервис WHOIS. Также наборы дополнительно могут включать информацию о популярности того или иного домена.In one implementation, the information contained in each data set includes page and site information, which can be divided into three groups. The first group includes information about the content contained on the pages, in particular information about organizations, the need to enter a password, or other user data. The second group includes information about URLs, in particular information about the form of writing the line and the presence of spaces and special characters. The third group includes information about pages obtained from external sources, such as the WHOIS service. Also, sets can additionally include information about the popularity of a particular domain.

Стоит отметить, что формирование наборов данных при помощи хешей, сформированных на основании DOM-деревьев, позволяет получить указанные наборы данных наиболее сбалансированными, что позволяет в дальнейшем осуществить обучение классификатора с наибольшей эффективностью. Другими словами, такой подход позволяет выдержать баланс между однородной и разнообразной информацией в наборах данных, в частности за счет исключения «мусорных» данных.It is worth noting that the formation of data sets using hashes generated on the basis of DOM trees makes it possible to obtain the most balanced data sets, which allows further training of the classifier with the greatest efficiency. In other words, this approach makes it possible to maintain a balance between homogeneous and diverse information in data sets, in particular by excluding “junk” data.

В зависимости от варианта реализации при формировании наборов данных могут быть использованы как все хранимые в средстве хранения данных 140 хеши и связанная с ними информация, так и только часть из них. В качестве ограничений при формировании наборов данных выступают количество хешей, хранимых в средстве хранения данных 140, и дата формирования хеша, т.е. актуальность хеша. Depending on the implementation option, when generating data sets, all hashes and associated information stored in the data storage means 140 can be used, or only part of them. The limitations when generating data sets are the number of hashes stored in the data storage medium 140 and the date the hash was generated, i.e. hash relevance.

Далее средство обучения 150 делит каждый набор данных на две части, где первая часть является обучающим подмножеством (обучающей выборкой), а вторая часть является тестовым подмножеством (тестовой выборкой). На обучающем подмножестве средство обучения 150 проводит обучение классификатора, а именно модели машинного обучения, а при помощи тестового подмножества проводит верификацию (проверку качества работы) обученного классификатора. Например, деление на две части основывается на пропорции от общего объема данных: 70% обучающая выборка и 30% тестовая выборка. Также пропорция может изменяться в зависимости от объема данных в каждом наборе данных.Next, the training engine 150 divides each data set into two parts, where the first part is a training subset (training set) and the second part is a testing subset (test set). On the training subset, the training tool 150 trains the classifier, namely the machine learning model, and using the test subset, it carries out verification (checking the quality of work) of the trained classifier. For example, dividing into two parts is based on the proportion of the total data: 70% training set and 30% test set. Also, the proportion may change depending on the amount of data in each data set.

В частном случае реализации средство обучения 150 осуществляет деление набора данных на три части. В таком случае к указанным двум подмножествам добавляется третье – валидационное подмножество (валидационная выборка). Валидационная выборка предназначена для выбора порога принятия решения для модели машинного обучения, обученной на обучающей выборке. После выбора порога принятия решения проводится окончательная проверка качества работы указанной модели.In a particular implementation, the learning tool 150 divides the data set into three parts. In this case, a third is added to the specified two subsets - a validation subset (validation sample). The purpose of the validation set is to select a decision threshold for a machine learning model trained on the training set. After choosing a decision threshold, a final check of the quality of the specified model is carried out.

В одном из вариантов реализации средство обучения 150 при формировании двух наборов данных дополнительно проводит так называемую очистку данных с целью улучшения выборки данных для обучения. Очистка данных основывается на том, что сформированные хеши, особенно хеши соответствующие типу хеша hash_full (третий хеш), являются достаточно уникальными идентификаторами страниц с точностью до вариативности, связанной с отражением особенностей конкретного пользователя или сессии на сайте. Например, домашняя страница в социальной сети является одной и той же страницей вне зависимости от того, какие имя, фамилия, фотография и подобные данные заполняют соответствующие слоты (например, поля для ввода) страницы. Повторяющиеся уникальные идентификаторы (хеши) страниц при разном контенте также характерны для служебных страниц, таких как сообщения об ошибках. Таким образом, чем чаще тот или иной хеш встречается в обоих наборах данных, тем больше вероятность того, что это служебная страница. При очистке данных используется подход, во время которого средство обучения 150 исключает по крайней мере в одном из наборов данных как повторяющиеся хеши, так и относящиеся к служебным страницам. Такая очистка данных позволяет подготовить наиболее оптимальные наборы данных для обучения классификатора, содержащего модель машинного обучения. Этот подход позволяет устранить один из недостатков машинного обучения, а именно обучение на наборах данных, в которых присутствовали очень похожие объекты. Например, в обоих наборах данных присутствовали одинаковые хеши. При обучении на схожих данных эффективность работы обученной модели машинного обучения падает и возникают ложные срабатывания при вынесении решений такой обученной модель машинного обучения.In one embodiment, the training tool 150, when generating two sets of data, additionally performs so-called data cleaning in order to improve the sample of data for training. Data cleaning is based on the fact that the generated hashes, especially hashes corresponding to the hash_full hash type (third hash), are fairly unique page identifiers up to the variability associated with reflecting the characteristics of a particular user or session on the site. For example, a home page on a social network is the same page regardless of what first name, last name, photo, and similar data fills the corresponding slots (for example, input fields) of the page. Repeated unique identifiers (hashes) of pages with different content are also typical for service pages, such as error messages. Thus, the more often a particular hash appears in both data sets, the more likely it is that it is a service page. Data cleaning uses an approach in which the learner 150 eliminates both duplicate hashes and those related to service pages in at least one of the data sets. This data cleaning allows you to prepare the most optimal data sets for training a classifier containing a machine learning model. This approach eliminates one of the shortcomings of machine learning, namely training on data sets in which very similar objects were present. For example, the same hashes were present in both data sets. When training on similar data, the performance of the trained machine learning model decreases and false positives occur when such a trained machine learning model makes decisions.

В еще одном из вариантов реализации средство обучения 150 осуществляет очистку обоих наборов данных следующим образом. Вначале средство обучения 150 формирует набор самых популярных хешей для чистых хешей и набор самых популярных хешей для фишинговых хешей путем обращения к средству хранения данных 140 и последующего поиска, при условии, что средство 140 еще не содержит информацию о популярности хешей. Далее средство обучения 150 выявляет хеши, которые соответствуют хешам, относящимся к обоим наборам данных. После выявления по крайней мере одного подобного хеша средство обучения 150 определяет, к какой странице относится хеш, и на основании этого удаляет хеш из одного набора данных и оставляет хеш в другом наборе данных. Например, если хеш относится к служебной странице, то данная страница является безопасной, и, соответственно, хеш удаляется из набора данных, относящегося к фишинговых сайтам, и остается в наборе данных, относящемся к безопасным сайтам. Кроме того, средство обучения 150 вносит или изменяет сведения об указанном хеше в средстве хранения данных 140 следующим образом: в столбце «Действие при обучении» указывается «к удалению (none)», и в столбце «Принимаемое решение» указывается «чистый (mark_as_clean)». В еще одном примере если хеш относится к фишинговой странице, то средство обучения 150 оставляет такую страницу только в наборе данных, относящемся к фишинговым сайтам.In yet another embodiment, the learning engine 150 cleans both data sets as follows. First, the learning engine 150 generates a set of the most popular hashes for clean hashes and a set of the most popular hashes for phishing hashes by accessing the data storage engine 140 and then searching, provided that the engine 140 does not already contain hash popularity information. Next, the learner 150 identifies hashes that correspond to hashes related to both data sets. After identifying at least one such hash, the learner 150 determines which page the hash belongs to and, based on this, removes the hash from one data set and leaves the hash in the other data set. For example, if the hash refers to a service page, then this page is safe, and, accordingly, the hash is removed from the data set related to phishing sites and remains in the data set related to safe sites. In addition, the learning engine 150 enters or changes information about the specified hash in the data storage engine 140 as follows: the “Learning Action” column indicates “to delete (none)” and the “Decision” column indicates “mark_as_clean” " In yet another example, if the hash refers to a phishing page, then the learner 150 leaves such a page only in the dataset related to phishing sites.

Далее средство обучения 150 проводит проверку на наличие разнообразности данных в каждом указанном наборе данных. Так как если в каждом наборе данных есть группа схожих объектов (хешей), при этом такая группа является достаточно многочисленной, то такая выборка данных также может негативно влиять на качество обучения классификатора. Например, набор данных содержит 100 (сто) тысяч групп, при этом объекты одной из группы занимают больше 1% от всего набора. В другом примере набор данных содержит 90 (девяносто) тысяч групп, при этом объекты одной из группы занимают больше 5% от всего набора. В еще одном примере многочисленность определяется эмпирическим путем. Поэтому в каждом наборе данных средство обучения 150 отбирает по меньшей мере одну группу хешей, относящихся к странице, которая встречается в соответствующем наборе данных больше, чем N раз, где N – настраиваемый параметр и определяется практическим путем. В одном из вариантов реализации параметр N определяется на основании соотношения общего количества хешей в наборе данных и хешей, относящихся к одной странице. Если средство обучения 150 не осуществило отбор ни одной группы, значит каждый набор хешей является оптимальным для дальнейшего обучения классификатора, включающего модель машинного обучения. В противном случае средство обучения 150 в каждой отобранной группе отбирает случайным образом по К страниц, где К – настраиваемый параметр и определяется практическим путем. Средство обучения 150 оставляет страницы, хеши которых относятся к отобранным К страницам, в наборе данных и удаляет из набора данных оставшиеся страницы, хеши которых относятся к отобранной группе. Стоит отметить, если набор данных относится к фишинговым сайтам, то средство обучения 150 добавляет соответствующую информацию о странице, а именно о хеше, в средство хранения данных 140. Например, в строку указанного хеша добавится запись, что принимаемое решение – «фишинг». Также средство обучения 150 может осуществить дополнительную проверку, является ли страница, к которой относится хеш, фишинговой. В одном из вариантов реализации дополнительная проверка заключается в запросе к компонентам защиты (не представлены на Фиг. 1), относящимся к решениям анализа и обнаружения фишинговых сайтов, и получении ответа от них. Если набор данных относится к «чистым» сайтам, то средство обучения 150 добавляет в запись о хеше в средстве хранения данных 140, что принимаемое решение – «чистая страница».Next, the learner 150 checks for data diversity in each specified data set. Since in each data set there is a group of similar objects (hashes), and such a group is quite large, then such a data sample can also negatively affect the quality of classifier training. For example, a data set contains 100 (one hundred) thousand groups, and the objects of one of the groups occupy more than 1% of the entire set. In another example, the data set contains 90 (ninety) thousand groups, and the objects of one of the groups occupy more than 5% of the entire set. In yet another example, multiplicity is determined empirically. Therefore, in each data set, the learner 150 selects at least one group of hashes related to a page that appears more than N times in the corresponding data set, where N is a configurable parameter and is determined by practical means. In one implementation, the parameter N is determined based on the ratio of the total number of hashes in the data set and hashes related to one page. If the training tool 150 did not select any groups, then each set of hashes is optimal for further training of the classifier, including the machine learning model. Otherwise, the learning tool 150 in each selected group randomly selects K pages, where K is a configurable parameter and is determined in a practical way. The learner 150 retains the pages whose hashes belong to the selected K pages in the data set and removes the remaining pages whose hashes belong to the selected group from the data set. It is worth noting that if the data set relates to phishing sites, then the learner 150 adds the relevant information about the page, namely the hash, to the data store 140 . For example, an entry will be added to the specified hash line that the decision being made is “phishing.” Also, the learner 150 may further check whether the page to which the hash relates is phishing. In one embodiment, the additional check consists of querying the security components (not shown in FIG. 1 ) related to phishing site analysis and detection solutions, and receiving a response from them. If the data set is a "clean" site, then the learner 150 adds to the hash entry in the data store 140 that the decision being made is a "clean page".

Далее средство обучения 150 осуществляет обучение классификатора, включающего модель машинного обучения, на основании сформированных и оптимизированных наборов данных. В зависимости от варианта реализации обучение модели машинного обучения основывается по меньшей мере на одном из принципов: обучение с учителем, такое как логистическая регрессия, линейная регрессия или k-ближайших соседей (англ. k-nearest neighbors algorithm, k-NN); или нейронные сети. После обучения классификатора средство обучения 150 осуществляет верификацию (проверку качества работы) обученного классификатора на тестовом подмножестве. Если обученный классификатор не превысил заданный порог при вынесении неправильных решений, т.е. количество ложных срабатываний ниже предельно допустимого уровня, то средство обучения 150 передает классификатор в работу. В противном случае, если обученный классификатор вынес количество неправильных решений, превышающее заданный порог, т.е. количество ложных срабатываний превысило предельно допустимый уровень, то средство обучения 150 проводит переобучение классификатора. Во время переобучения средство обучения 150 формирует новый или обновляет по меньшей мере один набор данных для обучения. Для обновления набора данных средство обучения 150 формирует запрос средству сбора данных 110 для сбора новой или дополнительной информации о сайтах.Next, the training tool 150 trains a classifier, including a machine learning model, based on the generated and optimized data sets. Depending on the implementation, training a machine learning model is based on at least one of the following principles: supervised learning, such as logistic regression, linear regression, or k-nearest neighbors algorithm (k-NN); or neural networks. After training the classifier, the training tool 150 carries out verification (checking the quality of work) of the trained classifier on the test subset. If the trained classifier does not exceed a given threshold when making incorrect decisions, i.e. the number of false positives is below the maximum permissible level, then the learning tool 150 sends the classifier to work. Otherwise, if the trained classifier made the number of incorrect decisions exceeding the specified threshold, i.e. the number of false positives has exceeded the maximum permissible level, then the learning tool 150 retrains the classifier. During retraining, the training engine 150 generates a new or updates at least one training data set. To update the data set, the learning engine 150 queries the data collection engine 110 to collect new or additional information about the sites.

В частном случае реализации при переобучении средство обучения 150 дополнительно может осуществлять изменения в гиперпараметрах модели машинного обучения, например скорости обучения и размере набора данных. Также средство обучения 150 может изменять размеры модели машинного обучения, например количество узлов в нейронной сети.In a particular retraining implementation, the learner 150 may further implement changes to hyperparameters of the machine learning model, such as learning rate and data set size. Also, the learner 150 may change the dimensions of the machine learning model, such as the number of nodes in the neural network.

В одном из вариантов реализации средство обучения 150 передает классификатор для обнаружения фишинговых сайтов компонентам защиты 185, отвечающим за обнаружение фишинговых сайтов на стороне клиентов 180. Компонент защиты 185 представлен при описании Фиг. 2. В зависимости от вариантов реализации компонентами защиты 185 являются такие технические решения, которые направлены как на защиту от кибератак и вредоносного ПО, так и на обеспечение безопасности от кражи данных, при этом указанные решения могут быть реализованы как на клиентах 180, так и на различных серверах корпоративных сетей.In one embodiment, the learner 150 passes a classifier for detecting phishing sites to security components 185 responsible for detecting phishing sites on the client side 180 . Security component 185 is introduced in the description of FIG. 2 . Depending on the implementation options, protection components 185 are technical solutions that are aimed both at protecting against cyber attacks and malware, and at ensuring security against data theft, while these solutions can be implemented both on clients 180 and on various servers corporate networks.

В еще одном из вариантов реализации кроме передачи указанного классификатора компонентам защиты дополнительно передается по меньшей мере один тип сформированных хешей, например третий тип хешей. Указанные хеши также могут использоваться совместно с классификатором при сравнении сайтов на схожесть или обнаружении фишинговых сайтов в качестве предварительного этапа.In yet another embodiment, in addition to transmitting the specified classifier, at least one type of generated hashes is additionally transmitted to the security components, for example, a third type of hashes. These hashes can also be used in conjunction with the classifier when comparing sites for similarity or detecting phishing sites as a preliminary step.

В другом варианте реализации если средство обучения 150 при формировании набора данных, относящегося к чистым сайтам, в процессе очистки данных определило, что страница не имеет фишингового контента, то соответствующие ей хеши помечаются как чистые и выносимое решение определяется как чистая страница. Например, страница относится к сообщению сервера об ошибке.In another implementation, if the learning engine 150 , when generating a data set related to clean sites, during the data cleaning process determines that the page does not have phishing content, then its corresponding hashes are marked as clean and the decision made is determined as a clean page. For example, the page refers to a server error message.

Фиг. 2 показывает пример системы обнаружения фишинговых сайтов. Система обнаружения фишинговых сайтов (далее – система обнаружения) 200 осуществляется при помощи по меньшей мере одной компьютерной системы, например такой, как представлена на Фиг. 8. Fig. Figure 2 shows an example of a phishing site detection system. The phishing site detection system (hereinafter referred to as the detection system) 200 is implemented using at least one computer system, such as the one shown in FIG. 8 .

В зависимости от варианта реализации система обнаружения 200 может осуществляться как в составе компонента защиты 185 или отдельно от компонента защиты 185 (не показано на Фиг. 2) на устройстве клиента 180, так и совместно с системой создания классификатора 100 на одном устройстве, при этом система обнаружения 200 осуществляет взаимодействие с системой создания классификатора 100 вне зависимости от варианта реализации. Кроме того, система обнаружения 200 и система создания классификатора 100 могут быть реализованы единой системой.Depending on the implementation option, the detection system 200 can be implemented either as part of the security component 185 or separately from the security component 185 (not shown in FIG. 2 ) on the client device 180 , or in conjunction with the classifier creation system 100 on a single device, wherein the system detection 200 interacts with the classifier creation system 100, regardless of the implementation option. In addition, the detection system 200 and the classifier generation system 100 may be implemented by a single system.

В одном из вариантов реализации система обнаружения 200 включает такие средства, как средство предварительной проверки 220, средство обработки 230, классификатор 240, включающий модель машинного обучения, и базу данных 260. В зависимости от вариантов реализации все средства могут быть связаны между собой как на аппаратном, так и на программном уровне, при этом возможен вариант реализации и совместного применения аппаратного и программного уровней.In one embodiment, detection system 200 includes tools such as a pre-checker 220 , a processor 230 , a classifier 240 including a machine learning model, and a database 260 . Depending on the implementation options, all tools can be interconnected both at the hardware and software levels, and it is possible to implement and jointly use the hardware and software levels.

Компонент защиты 185 при получении задачи на проверку сайта или его страницы передает соответствующие данные в систему обнаружения 200. Задача может быть получена в виде URL (ссылки), в этом случае компонент защиты 185 предварительно скачает контент (текст HTML-кода страницы) соответствующего ресурса по полученной ссылке. Кроме того, компонент защиты 185 при необходимости преобразует каждую страницу HTML в текстовый файл.The security component 185, upon receiving a task to scan a site or its page, transmits the corresponding data to the detection system 200 . The task can be received in the form of a URL (link), in which case the security component 185 will first download the content (text of the HTML code of the page) of the corresponding resource from the received link. In addition, the security component 185 optionally converts each HTML page into a text file.

Средство предварительной проверки 220 предназначено для проверки полученной системой обнаружения 200 страницы с помощью хешей из базы данных 260. Указанное средство 220 формирует хеш от самой страницы (текстового файла). В одном из вариантов реализации хеш формируется на основании алгоритма MD5. В другом варианте реализации хеш может быть сформирован и на основании любого другого известного алгоритма хеширования, например CRC32, SHA256, SHA512. После средство 220 сравнивает сформированный хеш с хешами из базы данных 260. База данных 260 содержит по меньшей мере два набора хешей, где один набор включает хеши от безопасных страниц, а второй набор включает хеши от фишинговых страниц. В случае, если средство 220 найдет сформированный хеш в базе данных 260, то система обнаружения 200 определит проверяемый файл как фишинговый или безопасный, в зависимости от набора хешей, в котором был обнаружен проверяемый хеш. В противном случае, если хеш не обнаружен в базе данных 260, средство 220 передает страницу средству обработки 230.The pre-validator 220 is designed to validate the page received by the detection system 200 using hashes from the database 260 . The specified tool 220 generates a hash from the page itself (text file). In one embodiment, the hash is generated based on the MD5 algorithm. In another implementation, the hash can be generated based on any other known hashing algorithm, for example CRC32, SHA256, SHA512. The tool 220 then compares the generated hash with hashes from the database 260 . The database 260 contains at least two sets of hashes, where one set includes hashes from benign pages and a second set includes hashes from phishing pages. If the tool 220 finds the generated hash in the database 260 , then the detection system 200 will determine the file being checked as phishing or benign, depending on the set of hashes in which the hash being checked was found. Otherwise, if the hash is not found in the database 260 , the engine 220 passes the page to the processing engine 230 .

В одном из вариантов реализации система обнаружения 200 не включает средство предварительной проверки 220. В этом случае полученная страница сразу попадает в средство обработки 230, которое и осуществляет предварительный анализ страницы.In one embodiment, detection system 200 does not include pre-checker 220 . In this case, the received page immediately goes to the processing tool 230 , which performs a preliminary analysis of the page.

Средство обработки 230 предназначено для преобразования страницы по меньшей мере в одну строку из элементов DOM-дерева страницы согласно определенному шаблону, формирования по меньшей мере одного хеша для каждой сформированной строки и проверки сформированных хешей в базе данных 260. Стоит отметить, что обработка страницы для формирования определенного типа хешей аналогична работе средства анализа 115. Можно говорить, что функциональные возможности средства обработки 230 соответствует функциональным возможностям средства анализа 115. Так, сначала средство обработки 230 проводит парсинг (синтаксический анализ) страницы, в результате которого создает древовидную структуру страницы, т.е. DOM-дерево. Далее средство обработки 230 преобразует DOM-дерево по меньшей мере в одну строку согласно определенному шаблону из элементов DOM-дерева страницы. После средство обработки 230 формирует хеш от каждой сформированной строки. В одном из вариантов реализации средство 230 по меньшей мере формирует два типа хешей для каждой страницы, где один хеш (hash_light) сформирован от строки, сформированной согласно первому шаблону, и другой хеш (hash_full) сформирован от строки, сформированной согласно второму шаблону. После формирования всех хешей для страницы средство 230 осуществляет проверку полученной страницы путем сравнения сформированных хешей с подобными хешами из базы данных 260. В том случае, если хеши были найдены в базе данных 260, система обнаружения 200 выносит решение, является ли сайт фишинговым. В противном случае, если хеши не были найдены, средство 230 передает полученную страницу классификатору 240. В частности, под передачей полученной страницы в том числе понимается и передача информации о контенте и метаданных страницы.Processor 230 is configured to convert the page into at least one string of page DOM tree elements according to a specific pattern, generate at least one hash for each generated string, and check the generated hashes against database 260 . It is worth noting that processing a page to generate a specific type of hash is similar to the work of a parser 115 . The functionality of the processing means 230 can be said to correspond to the functionality of the analysis means 115 . Thus, first the processing engine 230 parses the page, as a result of which it creates a tree structure of the page, i.e. DOM tree. Next, processing engine 230 converts the DOM tree into at least one line according to a specific pattern of page DOM tree elements. Processing means 230 then generates a hash from each generated string. In one embodiment, the engine 230 generates at least two types of hashes for each page, where one hash (hash_light) is generated from a string generated according to the first pattern, and another hash (hash_full) is generated from a string generated according to the second pattern. After all hashes for a page have been generated, tool 230 checks the resulting page by comparing the generated hashes with similar hashes from database 260 . In the event that the hashes have been found in the database 260 , the detection system 200 makes a decision as to whether the site is a phishing site. Otherwise, if no hashes were found, the engine 230 passes the resulting page to the classifier 240 . In particular, the transfer of the received page also means the transfer of information about the content and metadata of the page.

В еще одном варианте реализации средство предварительной проверки 220 и средство обработки 230 реализуются совместно. В этом случае предварительная проверка полученной страницы осуществляется как при помощи хеша, сформированного от всей страницы, так и при помощи по крайней мере одного хеша, сформированного от строки из элементов DOM-дерева страницы. Например, сначала осуществляется проверка при помощи хеша от всей страницы, и если хеш не был найден в базе данных 260, то осуществляется проверка при помощи хешей, сформированных от строк из элементов DOM-дерева страницы, т.е. хеши применяются последовательно. Также использование упомянутых хешей может осуществляться параллельно.In yet another embodiment, the pre-checker 220 and the processing engine 230 are implemented together. In this case, preliminary verification of the resulting page is carried out both using a hash generated from the entire page, and using at least one hash generated from a string of elements of the page's DOM tree. For example, a check is first carried out using a hash from the entire page, and if the hash was not found in the database 260 , then a check is carried out using hashes generated from strings from the elements of the DOM tree of the page, i.e. hashes are applied sequentially. Also, the use of the mentioned hashes can be carried out in parallel.

Классификатор 240 включает модель машинного обучения и предназначен для определения, является ли страница фишинговой, на основании полученной информации от средства обработки 230. Классификатор 240 предоставляет на вход обученной модели машинного обучения полученную информацию. Модель машинного обучения на выходе предоставляет классификатору 240 решение о соответствии страницы известным фишинговым страницам или сайтам. Классификатор 240 предоставляет компоненту защиты 185 решение, является ли сайт фишинговым.The classifier 240 includes a machine learning model and is designed to determine whether a page is phishing based on information received from the processor 230 . The classifier 240 provides the learned information as input to the trained machine learning model. The output of the machine learning model provides the classifier 240 with a decision about whether the page matches known phishing pages or sites. The classifier 240 provides the security component 185 with a decision whether the site is a phishing site.

База данных 260 является машиночитаемым носителем, который предназначен для хранения и предоставления хранимых данных средствам системы обнаружения 200 по запросу. Как упоминалось ранее, хранимыми данными по меньшей мере являются два набора хешей, где один соответствует безопасным страницам, а другой соответствует фишинговым страницам. Стоит отметить, что в указанные наборы попадают страницы, которые однозначно можно определить как безопасные страницы или фишинговые.The database 260 is a computer-readable medium that is designed to store and make stored data available to the detection system 200 on demand. As mentioned earlier, the stored data is at least two sets of hashes, where one corresponds to benign pages and the other corresponds to phishing pages. It is worth noting that these sets include pages that can clearly be identified as safe pages or phishing pages.

В одном из вариантов реализации система обнаружения 200 имеет возможность осуществить переобучение классификатора 240. В этом случае система обнаружения 200 направляет каждое вынесенное решение в систему создания классификатора 100. В свою очередь система создания классификатора 100 проводит оценку каждого вынесенного решения. В случае, если система создания классификатора 100 определит решение как ложное, то проведет переобучение классификатора, а именно модели машинного обучения. Переобучение проводится с учетом определенного по меньшей мере одного ложного решения. После этого система создания классификатора 100 предоставит переобученный классификатор системе обнаружения 200.In one embodiment, detection system 200 has the ability to retrain classifier 240 . In this case, the detection system 200 forwards each decision made to the classifier generation system 100 . In turn, the classifier creation system 100 evaluates each decision made. If the classifier creation system 100 determines the solution to be false, it will retrain the classifier, namely the machine learning model. Retraining is carried out taking into account at least one false decision. The classifier generation system 100 will then provide the retrained classifier to the detection system 200 .

Стоит отметить, что классификатор 240 предназначен для определения того, является ли сайт фишинговым или нет, в тех случаях, когда другие механизмы защиты не смогли вынести решение. Такие ситуации характерны, когда злоумышленники маскируют свои сайты путем их изменения. Как правило, изменения относятся к контенту сайта.It is worth noting that the 240 classifier is designed to determine whether a site is phishing or not in cases where other protection mechanisms have failed to make a decision. Such situations are typical when attackers disguise their websites by changing them. As a rule, changes relate to the content of the site.

Рассмотрим особенности применения представленных в настоящем изобретении хешей, сформированных на основании DOM-деревьев страниц HTML, представленных на Фиг. 7.Let us consider the features of using the hashes presented in the present invention, generated on the basis of DOM trees of HTML pages presented in Fig. 7 .

Предположим, что первая страница содержит некоторый HTML и контент, при этом страница является подозрительной страницей. Например, предполагается, что первая страница является фишинговой страницей, которая предназначена для кражи банковских данных.Let's assume the first page contains some HTML and content and the page is a suspicious page. For example, the first page is assumed to be a phishing page designed to steal banking information.

Вторая страница является также подозрительной страницей и другой версией первой страницы. Отличие заключается в том, что вторая страница обладает той же функциональностью, но при этом противодействует обнаружению путем подмены части символов и добавления ложных (англ. fake) значений для атрибутов классов. Стоит отметить, что на Фиг. 7 для демонстрации подмены очевидны, в настоящих образцах гомографические атаки выполняются более искусно.The second page is also a suspicious page and a different version of the first page. The difference is that the second page has the same functionality, but at the same time counteracts detection by substituting some characters and adding false values for class attributes. It is worth noting that in Fig. 7 to demonstrate the substitution is obvious, in the present samples homography attacks are performed more skillfully.

Для каждой страницы формируют хеши согласно указанному ранее принципу, а именно:For each page, hashes are generated according to the previously stated principle, namely:

• Формируют md5-хеш от каждой страницы;• Generate an md5 hash from each page;

• Получают DOM-дерево с помощью парсинга HTML-страницы с помощью библиотеки lxml;• Obtain a DOM tree by parsing an HTML page using the lxml library;

• Преобразуют сформированное DOM-дерево для каждой страницы в две строки:• Convert the generated DOM tree for each page into two lines:

• Для первой строки используют первый шаблон, согласно которому сохраняют только названия тегов,• For the first line, use the first template, according to which only the tag names are saved,

• Для второй строки используют второй шаблон, согласно которому сохраняют названия тегов и названия атрибутов тегов.• For the second line, a second template is used, according to which the tag names and tag attribute names are stored.

• Формируют хеши для полученных строк.• Form hashes for the received strings.

Так, хеши, основанные на MD5, для каждой страницы от целой страницы будут иметь вид:Thus, MD5-based hashes for each page of the entire page will look like:

Для первой страницы – 397ac9d66c21ec19ae55a3c758d6443d,For the first page – 397ac9d66c21ec19ae55a3c758d6443d,

Для второй страницы – 39c7706b85321872a6e4bae79eff3064.For the second page – 39c7706b85321872a6e4bae79eff3064.

Видно, что внесенные изменения в контент второй страницы изменили и хеш второй страницы. Поэтому сгруппировать страницы на основании хешей таких страниц (файлов) не получится и потребуется каждый раз формировать новые образцы (хеши) для блокировки фишинговых сайтов (например, при блокировке по сигнатуре). Другими словами, если хеш создается от всей страницы, то небольшое изменение в контенте страницы изменит и такой хеш.It can be seen that the changes made to the content of the second page also changed the hash of the second page. Therefore, it will not be possible to group pages based on the hashes of such pages (files), and you will need to generate new samples (hashes) each time to block phishing sites (for example, when blocking by signature). In other words, if a hash is generated from the entire page, then a small change in the content of the page will change that hash.

В то же время структура страниц осталось одной и той же:At the same time, the structure of the pages remained the same:

Первая строка (структура тегов):First line (tag structure):

Для первой страницы:For the first page:

doc | html | head | title | /title | /head | body | h1 | /h1 | /body | /html | /docdoc | html | head | title | /title | /head | body | h1 | /h1 | /body | /html | /doc

Для второй страницы (с маскировкой):For the second page (with masking):

doc | html | head | title | /title | /head | body | h1 | /h1 | /body | /html | /docdoc | html | head | title | /title | /head | body | h1 | /h1 | /body | /html | /doc

Вторая строка (структура тегов и атрибутов):Second line (tags and attributes structure):

Для первой страницы:For the first page:

doc | html | head |title | /title | /head | body | h1:class | /h1 | /body | /html | /docdoc | html | head |title | /title | /head | body | h1:class | /h1 | /body | /html | /doc

Для второй страницы (с маскировкой):For the second page (with masking):

doc | html | head |title | /title | /head | body | h1:class | /h1 | /body | /html | /docdoc | html | head |title | /title | /head | body | h1:class | /h1 | /body | /html | /doc

Видно, что строки для обеих страниц получились идентичные. Поэтому сформировав хеши на основании полученных строк, хеши для обеих страниц будут одинаковые. Например, строки второго типа в виде хешей (структура тегов и атрибутов) будут иметь вид:It can be seen that the lines for both pages are identical. Therefore, having generated hashes based on the received strings, the hashes for both pages will be the same. For example, strings of the second type in the form of hashes (the structure of tags and attributes) will look like:

для первой страницы – fbec7f8965c8f1c9c5986c076b7de5cd,for the first page – fbec7f8965c8f1c9c5986c076b7de5cd,

для второй страницы – fbec7f8965c8f1c9c5986c076b7de5cd.for the second page – fbec7f8965c8f1c9c5986c076b7de5cd.

Таким образом, при использовании заявленного решения дополнительно имеется возможность на основании преобразования объектов DOM страниц в строки формировать хеши и группировать в кластеры похожие страницы.Thus, when using the claimed solution, it is additionally possible, based on the conversion of page DOM objects into strings, to form hashes and group similar pages into clusters.

В одном из вариантов реализации представленный принцип предназначен не только для поиска фишинговых сайтов, но и для обнаружения схожих страниц.In one embodiment, the presented principle is intended not only to search for phishing sites, but also to detect similar pages.

В качестве примера рассмотрим две страницы:As an example, consider two pages:

https://www.google.com/errorhttps://www.google.com/error

https://www.google.com/another_error.https://www.google.com/another_error.

Сформированные хеши на основании целых страниц будут отличаться, в то время как сформированные хеши на основании представленного решения (с помощью объектов DOM и строк) - нет:Generated hashes based on entire pages will be different, while generated hashes based on the presented solution (using DOM objects and strings) will not:

Хеши на основании целых страниц: Hashes based on entire pages:

1) cfa900f6311e2e675c95de0788684d2b,1) cfa900f6311e2e675c95de0788684d2b,

2) 696531ac087387b995e3376a36b333d1.2) 696531ac087387b995e3376a36b333d1.

Хеши на основании строки первого типа для указанных страниц:Hashes based on the first type string for the specified pages:

1) 4841ea35c8deb90b749f2f1b2aed8a11,1) 4841ea35c8deb90b749f2f1b2aed8a11,

2) 4841ea35c8deb90b749f2f1b2aed8a11.2) 4841ea35c8deb90b749f2f1b2aed8a11.

Хеши на основании строки второго типа для указанных страниц:Hashes based on the second type of string for the specified pages:

1) d8085a405ad249ece59f79744c94158f,1) d8085a405ad249ece59f79744c94158f,

2) d8085a405ad249ece59f79744c94158f.2) d8085a405ad249ece59f79744c94158f.

Так можно легко находить большие группы схожих с точностью до структуры страниц и удалять их из обучающей выборки (или балансировать выборку, оставляя из каждой группы только несколько примеров).This way, you can easily find large groups of pages that are similar to within the structure and remove them from the training set (or balance the sample, leaving only a few examples from each group).

Фиг. 3 показывает пример способа обучения (переобучения) модели машинного обучения для обнаружения фишинговых сайтов. Fig. Figure 3 shows an example of a method for training (retraining) a machine learning model to detect phishing sites.

На шаге 310 получают набор URL при помощи средства сбора данных 110 из различных источников. At step 310, a set of URLs is obtained using the data collection tool 110 from various sources.

На шаге 320 при помощи средства сбора данных 110 осуществляют скачивание страниц и/или сайтов в виде текстовых файлов формата HTML согласно URL из полученного набора.At step 320 , using the data collection tool 110, pages and/or sites are downloaded in the form of text files in HTML format according to the URL from the resulting set.

В одном из вариантов реализации шаги 310 и 320 могут не выполняться. В этом случае получают страницы для обучения из средства хранения данных 140 либо из аналогичной базы данных, которая хранит информацию о сайтах. In one embodiment, steps 310 and 320 may not be performed. In this case, the pages for training are obtained from the data storage means 140 or from a similar database that stores information about the sites.

В предпочтительном варианте реализации шаги 330, 335 и 340 выполняют при помощи средства анализа 115.In a preferred embodiment, steps 330 , 335 and 340 are performed using analysis tool 115 .

На шаге 330 осуществляют парсинг каждой полученной страницы, во время которого формируют DOM-дерево соответствующей страницы. В процессе парсинга создают древовидную структуру страницы, а именно DOM-дерево.At step 330 , each received page is parsed, during which a DOM tree of the corresponding page is formed. During the parsing process, a tree structure of the page is created, namely a DOM tree.

На шаге 335 формируют по меньшей мере одну строку из элементов DOM-дерева для каждой полученной страницы согласно определенному шаблону. Каждый шаблон определяет, каким образом формируется строка из элементов DOM-дерева страницы. Стоит отметить, что для формирования первой строки используется первый шаблон, согласно которому для формирования строки используются только названия тегов. Для формирования второй строки используется второй шаблон, согласно которому для формирования строки используются названия тегов и дополнительно названия атрибутов тегов.At step 335 , at least one row of DOM tree elements is generated for each resulting page according to a specific template. Each template defines how a string is formed from elements of the page's DOM tree. It is worth noting that to form the first line, the first template is used, according to which only tag names are used to form the line. To form the second line, a second template is used, according to which the names of tags and additionally the names of tag attributes are used to form the line.

На шаге 340 создают хеш для каждой сформированной строки и хеш для всей полученной страницы. В частном случае реализации хеш от всей полученной страницы не создают. В предпочтительном варианте реализации создают три типа хешей для каждой страницы, где первый хеш сформирован от всей страницы (контентный хеш), второй хеш (hash_light) сформирован от первой строки и третий хеш (hash_full) сформирован от второй строки, при этом на шаге 335 формируют две строки для каждой страницы. После формирования всех хешей для каждой страницы переходят к шагу 350.At step 340 , a hash is created for each generated line and a hash for the entire resulting page. In a particular implementation case, a hash of the entire received page is not created. In the preferred embodiment, three types of hashes are created for each page, where the first hash is generated from the entire page (content hash), the second hash (hash_light) is generated from the first line, and the third hash (hash_full) is generated from the second line, while at step 335 two lines for each page. After all hashes have been generated for each page, proceed to step 350 .

На шаге 350 определяют популярность для каждого типа хешей, сформированных для страниц, соответствующих полученному набору URL. Популярность определяют на основании анализа страниц в течение 6 (шести) месяцев. Так, определяют какое количество одинаковых хешей от страниц за последние шесть месяцев было сформировано. Соответственно, чем больше количество страниц, имеющих одинаковый хеш, тем более популярным становится хеш. В одном из вариантов реализации данный шаг может быть исключен и в этом случае после шага 340 переходят к шагу 360.At step 350 , the popularity for each type of hashes generated for the pages corresponding to the resulting set of URLs is determined. Popularity is determined based on page analysis over a period of 6 (six) months. Thus, they determine how many identical hashes from pages have been generated over the past six months. Accordingly, the greater the number of pages that have the same hash, the more popular the hash becomes. In one embodiment, this step may be omitted, in which case, after step 340 , proceed to step 360 .

На шаге 360 формируют два набора данных, где первый набор данных содержит информацию о безопасных страницах, а второй набор данных содержит информацию о фишинговых страницах. В качестве информации о страницах по меньшей мере понимается ранее собранная информация о сайтах. Каждый набор данных формируется на основании информации о хешах. В частности, наборы данных формируются с учетом частоты появления хеша среди всех созданных хешей и длины DOM-дерева, на основании которого хеш создан.At step 360 , two data sets are generated, where the first data set contains information about safe pages, and the second data set contains information about phishing pages. Page information at least refers to previously collected information about sites. Each data set is generated based on hash information. In particular, data sets are generated taking into account the frequency of occurrence of a hash among all created hashes and the length of the DOM tree on the basis of which the hash was created.

В одном из частных вариантов реализации на шаге 360 информация, содержащаяся в каждом наборе данных, дополнительно включает информацию о страницах и сайтах, которую можно разделить на три группы. К первой группе относится информация о контенте, содержащемся на страницах. Ко второй группе относится информация об URL-адресах. К третьей группе относится информация о страницах, полученная из внешних источников, таких как сервис WHOIS.In one particular embodiment, at step 360 , the information contained in each data set further includes page and site information, which can be divided into three groups. The first group includes information about the content contained on the pages. The second group includes information about URLs. The third group includes information about pages obtained from external sources, such as the WHOIS service.

В еще одном частном варианте реализации на шаге 360 дополнительно каждый набор данных делят на две части, где первая часть является обучающим подмножеством (обучающей выборкой), а вторая часть является тестовым подмножеством (тестовой выборкой).In yet another particular embodiment, at step 360 , each data set is further divided into two parts, where the first part is a training subset (training set) and the second part is a test subset (test set).

В другом частном варианте реализации на шаге 360 дополнительно осуществляют очистку данных с целью улучшения выборки данных для обучения. Во время очистки данных в наборах данных выявляют хеши, которые соответствуют хешам, относящимся к обоим наборам данных, при этом хеши сформированы на основании DOM-деревьев. После выявления по крайней мере одного подобного хеша определяют, к какой странице относится хеш, и на основании этого удаляют соответствующую хешу страницу из одного набора данных и оставляют в другом наборе данных соответствующую хешу страницу. Пример реализации представлен при описании Фиг. 1.In another particular embodiment, at step 360 , data is further cleaned to improve the training data sample. During data cleaning, hashes are identified in the data sets that correspond to hashes related to both data sets, and the hashes are generated based on DOM trees. After identifying at least one similar hash, it is determined which page the hash belongs to, and based on this, the page corresponding to the hash is removed from one data set and the page corresponding to the hash is left in the other data set. An example implementation is presented in the description of FIG. 1 .

На шаге 370 проводят анализ на наличие разнообразности данных в каждом наборе данных. Во время анализа определяют, есть ли в наборах данных группы схожих объектов (хешей), при этом указанные группы являются достаточно многочисленными. Если есть, то в соответствующем наборе данных отбирают по меньшей мере одну группу хешей, относящихся к страницам, которые встречаются в соответствующем наборе данных больше, чем N раз. В одном из вариантов реализации параметр N определяется на основании соотношения общего количества хешей в наборе данных и хешей, относящихся к одной странице. Далее в каждой отобранной группе отбирают случайным образом по К страниц. После этого оставляют страницы, хеши которых относятся к отобранным К страницам, в наборе данных и удаляют из набора данных оставшиеся страницы, хеши которых относятся к отобранной группе. Если ни одной группы не выявлено, то каждый набор данных уже является оптимальным.At step 370 , an analysis is performed to determine whether there is data diversity in each data set. During the analysis, it is determined whether there are groups of similar objects (hashes) in the data sets, and these groups are quite numerous. If so, then in the corresponding data set at least one group of hashes related to pages that occur more than N times in the corresponding data set is selected. In one implementation, the parameter N is determined based on the ratio of the total number of hashes in the data set and hashes related to one page. Next, K pages are randomly selected from each selected group. After this, the pages whose hashes belong to the selected K pages are left in the data set and the remaining pages whose hashes belong to the selected group are removed from the data set. If no groups are identified, then each data set is already optimal.

На шаге 380 формируют обучающую выборку путем добавления полученных наборов данных. Каждый набор данных содержит информацию о страницах, соответствующих оставшимся хешам.At step 380 , a training set is formed by adding the obtained data sets. Each dataset contains information about the pages corresponding to the remaining hashes.

Дополнительно на шаге 385 проверяют, сформирована ли обучающая выборка. Если сформирована, то обучающую выборку передают на обучение модели машинного обучения. Если не сформирована, то возвращаются к шагу 310, где получают новый набор URL.Additionally, at step 385 , it is checked whether the training set has been formed. If formed, the training sample is passed on to the machine learning model for training. If not formed, then return to step 310 where a new set of URLs is obtained.

На шаге 390 осуществляют обучение модели машинного обучения, являющейся частью классификатора, на основании сформированной выборки.At step 390 , the machine learning model, which is part of the classifier, is trained based on the generated sample.

Дополнительно на шаге 390 проводят верификацию (проверку) обученной модели машинного обучения. Если обученная модель машинного обучения не превысила заданный порог при вынесении неправильных решений на тестовом подмножестве, т.е. количество ложных срабатываний ниже предельно допустимого уровня, то способ заканчивает работу. В противном случае, если обученная модель машинного обучения вынесла количество неправильных решений, превышающее заданный порог, т.е. количество ложных срабатываний превысило предельно допустимый уровень, то проводят переобучение модели машинного обучения представленным способом.Additionally, at step 390 , the trained machine learning model is verified. If the trained machine learning model did not exceed a given threshold when making incorrect decisions on the test subset, i.e. the number of false positives is below the maximum permissible level, then the method stops working. Otherwise, if the trained machine learning model made the number of incorrect decisions exceeding a given threshold, i.e. the number of false positives has exceeded the maximum permissible level, then the machine learning model is retrained using the presented method.

Фиг. 4 показывает пример способа обнаружения фишинговых сайтов. Fig. 4 shows an example of a method for detecting phishing sites.

На шаге 410 получают по меньшей мере одну страницу сайта на проверку. Страница сайта предоставляется в виде текстового документа формата HTML.At step 410, at least one site page is obtained for review. The site page is provided as a text document in HTML format.

На шаге 420 создают хеш от целой страницы и на шаге 430 осуществляют поиск хеша в базе данных 260. В случае если хеш найден в базе данных 260, то переходят к шагу 435. В противном случае, если хеш не найден в базе данных 260, то переходят к шагу 440.At step 420, a hash is created from the entire page and at step 430, the hash is searched in database 260 . If the hash is found in the database 260 , then proceed to step 435 . Otherwise, if the hash is not found in the database 260 , then proceed to step 440 .

На шаге 435 определяют, к какому набору хешей относится хеш, найденный на шаге 430 в базе данных 260. В случае, если хеш относится к набору «чистых» хешей, то переходят к шагу 410 для проверки следующей страницы. В противном случае, если хеш относится к набору фишинговых хешей, то переходят к шагу 480, где выносят решение об обнаруженном фишинговом сайте.At step 435 , it is determined which set of hashes the hash found at step 430 in the database 260 belongs to. If the hash belongs to the set of “clean” hashes, then proceed to step 410 to check the next page. Otherwise, if the hash belongs to the set of phishing hashes, then proceed to step 480 , where a decision is made about the detected phishing site.

На шаге 440 осуществляют парсинг каждой полученной страницы, во время которого формируют DOM-дерево соответствующей страницы. В процессе парсинга создают древовидное представление структуры страницы, а именно DOM-дерево.At step 440 , each received page is parsed, during which a DOM tree of the corresponding page is formed. During the parsing process, a tree-like representation of the page structure is created, namely a DOM tree.

На шаге 450 формируют по меньшей мере одну строку из элементов DOM-дерева страницы согласно определенному шаблону. Стоит отметить, что для формирования первой строки используется первый шаблон, согласно которому для формирования строки используются только названия тегов. Для формирования второй строки используется второй шаблон, согласно которому для формирования строки используются названия тегов и дополнительно названия атрибутов тегов.At step 450, at least one row is formed from the elements of the page's DOM tree according to a specific pattern. It is worth noting that to form the first line, the first template is used, according to which only tag names are used to form the line. To form the second line, a second template is used, according to which the names of tags and additionally the names of tag attributes are used to form the line.

На шаге 460 создают хеши для страницы из по меньшей мере одной сформированной строки. В предпочтительном варианте реализации формируют три типа хешей для каждой страницы, где первый хеш сформирован от всей страницы (контентный хеш), второй хеш (hash_light) сформирован от первой строки и третий хеш (hash_full) сформирован от второй строки. At step 460 , hashes are created for the page from the at least one generated string. In the preferred embodiment, three types of hashes are generated for each page, where the first hash is generated from the entire page (content hash), the second hash (hash_light) is generated from the first line, and the third hash (hash_full) is generated from the second line.

На шаге 465 осуществляют поиск по меньшей мере одного хеша в базе данных 260. В случае если по меньшей мере один хеш найден в базе данных 260, то переходят к шагу 490. В противном случае, если ни один хеш не найден в базе данных 260, то переходят к шагу 470.On the move465 searches for at least one hash in a database260. If at least one hash is found in the database260, then go to step490. Otherwise, if no hash is found in the database260, then go to step470.

На шаге 470 анализируют страницу при помощи классификатора на основании по меньшей мере одного созданного хеша. Для этого передают информацию о странице, соответствующей указанному хешу, на вход модели машинного обучения. В частности, под передачей информации о странице в том числе понимается и передача информации о контенте и метаданных страницы.At step 470 , the page is analyzed using a classifier based on the at least one hash generated. To do this, information about the page corresponding to the specified hash is passed to the input of the machine learning model. In particular, the transfer of information about a page also includes the transfer of information about the content and metadata of the page.

На шаге 475 принимают решение, является ли страница фишинговой, на основании полученного на выходе результата анализа моделью машинного обучения. В случае, если модель машинного обучения вынесла решение о том, что страница не относится к фишинговым, то переходят к шагу 410 для проверки следующей страницы, либо заканчивают работу, если проверены все страницы сайта. В противном случае, если модель машинного обучения вынесла решение о том, что страница относится к фишинговым, то переходят к шагу 480.At step 475 , a decision is made whether the page is phishing based on the output of the analysis by the machine learning model. If the machine learning model decides that the page is not phishing, then proceed to step 410 to check the next page, or finish the job if all pages of the site are checked. Otherwise, if the machine learning model has decided that the page is phishing, then proceed to step 480 .

На шаге 480 принимают решение об обнаруженном фишинговом сайте на основании информации, полученной после шага 475 или шага 435.At step 480 , a decision is made about the detected phishing site based on the information obtained after step 475 or step 435 .

В частном случае реализации шаги 420 и 430 могут быть исключены. В этом случае после получения страницы на проверку на шаге 410 переходят к шагу 440.In a particular implementation case, steps 420 and 430 may be omitted. In this case, after receiving the page for review at step 410 , proceed to step 440 .

В еще одном частном случае реализации создание хеша для страницы, предусмотренное на шаге 420, выполняется совместно с созданием хешей на шаге 460. В этом случае шаг 430 выполняется на шаге 465.In yet another particular implementation, the creation of a hash for the page provided in step 420 is performed in conjunction with the creation of hashes in step 460 . In this case, step 430 is performed at step 465 .

На Фиг. 8 представлена компьютерная система, на которой могут быть реализованы различные варианты систем и способов, раскрытых в настоящем документе. Компьютерная система 20 может представлять собой систему, сконфигурированную для реализации настоящего изобретения и может быть в виде одного вычислительного устройства или в виде нескольких вычислительных устройств, например, настольного компьютера, портативного компьютера, ноутбука, мобильного вычислительного устройства, смартфона, планшетного компьютера, сервера, мейнфрейма, встраиваемого устройства и других форм вычислительных устройств.In FIG. 8 illustrates a computer system on which various embodiments of the systems and methods disclosed herein may be implemented. Computer system 20 may be a system configured to implement the present invention and may be in the form of a single computing device or multiple computing devices, such as a desktop computer, a laptop computer, a notebook computer, a mobile computing device, a smartphone, a tablet computer, a server, a mainframe computer. , embedded device, and other forms of computing devices.

Как показано на Фиг. 8, компьютерная система 20 включает в себя: центральный процессор 21, системную память 22 и системную шину 23, которая связывает разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, способную взаимодействовать с любой другой шинной архитектурой. Примерами шин являются: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C и другие подходящие соединения между компонентами компьютерной системы 20. Центральный процессор 21 содержит один или несколько процессоров, имеющих одно или несколько ядер. Центральный процессор 21 исполняет один или несколько наборов машиночитаемых инструкций, реализующих способы, представленные в настоящем документе. Системная память 22 может быть любой памятью для хранения данных и/или компьютерных программ, исполняемых центральным процессором 21. Системная память может содержать как постоянное запоминающее устройство (ПЗУ) 24, так и память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами компьютерной системы 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.As shown in FIG. 8 , the computer system 20 includes: a central processing unit 21 , a system memory 22 , and a system bus 23 that communicates various system components, including memory, coupled to the central processing unit 21 . System bus 23 is implemented like any bus structure known in the art, which in turn includes a bus memory or bus memory controller, a peripheral bus, and a local bus capable of interfacing with any other bus architecture. Examples of buses include: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C and other suitable connections between computer system components 20 . The central processing unit 21 contains one or more processors having one or more cores. The central processing unit 21 executes one or more sets of computer-readable instructions implementing the methods presented herein. System memory 22 may be any memory for storing data and/or computer programs executable by the central processing unit 21 . System memory can contain both read-only memory (ROM) 24 and random access memory (RAM) 25 . The basic input/output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between elements of the computer system 20 , for example, when the operating system is loaded using ROM 24 .

Компьютерная система 20 включает в себя одно или несколько устройств хранения данных, таких как одно или несколько извлекаемых запоминающих устройств 27, одно или несколько неизвлекаемых запоминающих устройств 28, или комбинации извлекаемых и неизвлекаемых устройств. Одно или несколько извлекаемых запоминающих устройств 27 и/или неизвлекаемых запоминающих устройств 28 подключены к системной шине 23 через интерфейс 32. В одном из вариантов реализации извлекаемые запоминающие устройства 27 и соответствующие машиночитаемые носители информации представляют собой энергонезависимые модули для хранения компьютерных инструкций, структур данных, программных модулей и других данных компьютерной системы 20. Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28 могут использовать различные машиночитаемые носители информации. Примеры машиночитаемых носителей информации включают в себя машинную память, такую как кэш-память, SRAM, DRAM, ОЗУ не требующую конденсатора (Z-RAM), тиристорную память (T-RAM), eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; флэш-память или другие технологии памяти, такие как твердотельные накопители (SSD) или флэш-накопители; магнитные кассеты, магнитные ленты и магнитные диски, такие как жесткие диски или дискеты; оптические носители, такие как компакт-диски (CD-ROM) или цифровые универсальные диски (DVD); и любые другие носители, которые могут быть использованы для хранения нужных данных и к которым может получить доступ компьютерная система 20.Computer system 20 includes one or more data storage devices, such as one or more removable storage devices 27 , one or more non-removable storage devices 28 , or combinations of removable and non-removable devices. One or more removable storage devices 27 and/or non-removable storage devices 28 are connected to the system bus 23 via an interface 32 . In one embodiment, removable storage devices 27 and associated computer-readable storage media are nonvolatile modules for storing computer instructions, data structures, program modules, and other computer system 20 data. System memory 22 , removable storage devices 27 , and non-removable storage devices 28 may use various computer readable media. Examples of computer-readable storage media include computer memory such as cache memory, SRAM, DRAM, capacitorless RAM (Z-RAM), thyristor memory (T-RAM), eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as solid-state drives (SSDs) or flash drives; magnetic cassettes, magnetic tapes and magnetic disks such as hard disks or floppy disks; optical media such as compact discs (CD-ROMs) or digital versatile discs (DVDs); and any other media that can be used to store the desired data and that can be accessed by the computer system 20 .

Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28, содержащиеся в компьютерной системе 20 используются для хранения операционной системы 35, приложений 37, других программных модулей 38 и программных данных 39. Компьютерная система 20 включает в себя периферийный интерфейс 46 для передачи данных от устройств ввода 40, таких как клавиатура, мышь, стилус, игровой контроллер, устройство голосового ввода, устройство сенсорного ввода, или других периферийных устройств, таких как принтер или сканер через один или несколько портов ввода/вывода, таких как последовательный порт, параллельный порт, универсальная последовательная шина (USB) или другой периферийный интерфейс. Устройство отображения 47, такое как один или несколько мониторов, проекторов или встроенных дисплеев, также подключено к системной шине 23 через выходной интерфейс 48, такой как видеоадаптер. Помимо устройств отображения 47, компьютерная система 20 оснащена другими периферийными устройствами вывода (на Фиг. 8 не показаны), такими как динамики и другие аудиовизуальные устройства.System memory 22 , removable storage devices 27, and non-removable storage devices 28 contained in the computer system 20 are used to store the operating system 35 , applications 37 , other program modules 38 , and program data 39 . Computer system 20 includes a peripheral interface 46 for transmitting data from input devices 40 such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices such as a printer or scanner through one or more input/output ports, such as a serial port, parallel port, universal serial bus (USB), or other peripheral interface. A display device 47 , such as one or more monitors, projectors, or embedded displays, is also connected to the system bus 23 through an output interface 48 , such as a video adapter. In addition to the display devices 47 , the computer system 20 is equipped with other peripheral output devices (not shown in FIG. 8 ), such as speakers and other audiovisual devices.

Компьютерная система 20 может работать в сетевом окружении, используя сетевое соединение с одним или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является рабочим персональным компьютером или сервером, который содержит большинство или все упомянутые компоненты, отмеченные ранее при описании сущности компьютерной системы 20, представленной на Фиг. 8. В сетевом окружении также могут присутствовать и другие устройства, например, маршрутизаторы, сетевые станции или другие сетевые узлы. Компьютерная система 20 может включать один или несколько сетевых интерфейсов 51 или сетевых адаптеров для связи с удаленными компьютерами 49 через одну или несколько сетей, таких как локальная компьютерная сеть (LAN) 50, глобальная компьютерная сеть (WAN), интранет и Интернет. Примерами сетевого интерфейса 51 являются интерфейс Ethernet, интерфейс Frame Relay, интерфейс SONET и беспроводные интерфейсы.The computer system 20 may operate in a networked environment using a network connection to one or more remote computers 49 . The remote computer(s) 49 is a working personal computer or server that contains most or all of the components noted previously in describing the nature of the computer system 20 shown in FIG. 8 . There may also be other devices in the network environment, such as routers, network stations or other network nodes. The computer system 20 may include one or more network interfaces 51 or network adapters for communicating with remote computers 49 over one or more networks, such as a local area network (LAN) 50 , a wide area network (WAN), an intranet, and the Internet. Examples of network interface 51 are an Ethernet interface, a Frame Relay interface, a SONET interface, and wireless interfaces.

Варианты раскрытия настоящего изобретения могут представлять собой систему, способ, или машиночитаемый носитель (или носитель) информации.Embodiments of the present invention may be a system, a method, or a computer-readable medium (or storage medium).

Машиночитаемый носитель информации является осязаемым устройством, которое сохраняет и хранит программный код в форме машиночитаемых инструкций или структур данных, к которым имеет доступ центральный процессор 21 компьютерной системы 20. Машиночитаемый носитель может быть электронным, магнитным, оптическим, электромагнитным, полупроводниковым запоминающим устройством или любой подходящей их комбинацией. В качестве примера, такой машиночитаемый носитель информации может включать в себя память с произвольным доступом (RAM), память только для чтения (ROM), EEPROM, портативный компакт-диск с памятью только для чтения (CD-ROM), цифровой универсальный диск (DVD), флэш-память, жесткий диск, портативную компьютерную дискету, карту памяти, дискету или даже механически закодированное устройство, такое как перфокарты или рельефные структуры с записанными на них инструкциями. A computer-readable storage medium is a tangible device that stores and stores program code in the form of machine-readable instructions or data structures that are accessible by the central processing unit 21 of a computer system 20 . A computer-readable medium may be an electronic, magnetic, optical, electromagnetic, semiconductor storage device, or any suitable combination thereof. By way of example, such a computer-readable storage medium may include random access memory (RAM), read-only memory (ROM), EEPROM, compact disc read-only memory (CD-ROM), digital versatile disk (DVD) ), flash memory, hard drive, portable computer floppy disk, memory card, floppy disk, or even a mechanically encoded device such as punch cards or embossed structures with instructions written on them.

Система и способ, настоящего изобретения, могут быть рассмотрены в терминах средств. Термин "средство", используемый в настоящем документе, относится к реальному устройству, компоненту или группе компонентов, реализованных с помощью аппаратного обеспечения, например, с помощью интегральной схемы, специфичной для конкретного приложения (ASIC) или FPGA, или в виде комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора машиночитаемых инструкций для реализации функциональности средства, которые (в процессе выполнения) превращают микропроцессорную систему в устройство специального назначения. Средство также может быть реализовано в виде комбинации этих двух компонентов, при этом некоторые функции могут быть реализованы только аппаратным обеспечением, а другие функции - комбинацией аппаратного и программного обеспечения. В некоторых вариантах реализации, по крайней мере, часть, а в некоторых случаях и все средство может быть выполнено на центральном процессоре 21 компьютерной системы 20. Соответственно, каждое средство может быть реализовано в различных подходящих конфигурациях и не должно ограничиваться каким-либо конкретным вариантом реализации, приведенным в настоящем документе.The system and method of the present invention can be thought of in terms of means. The term "device" as used herein refers to an actual device, component, or group of components implemented in hardware, such as an application-specific integrated circuit (ASIC) or FPGA, or a combination of hardware and software. providing, for example, using a microprocessor system and a set of machine-readable instructions to implement the functionality of a tool that (in the process of execution) turns the microprocessor system into a special-purpose device. The tool may also be implemented as a combination of these two components, with some functions being implemented by hardware alone and other functions being implemented by a combination of hardware and software. In some embodiments, at least a portion, and in some cases all, of the means may be executed on the central processing unit 21 of the computer system 20 . Accordingly, each means may be implemented in various suitable configurations and should not be limited to any particular embodiment set forth herein.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что при разработке любого реального варианта осуществления настоящего изобретения необходимо принять множество решений, специфических для конкретного варианта осуществления, для достижения конкретных целей, и эти конкретные цели будут разными для разных вариантов осуществления. Понятно, что такие усилия по разработке могут быть сложными и трудоемкими, но, тем не менее, они будут обычной инженерной задачей для тех, кто обладает обычными навыками в данной области, пользуясь настоящим раскрытием изобретения.In conclusion, it should be noted that the information given in the description are examples that do not limit the scope of the present invention as defined by the formula. One skilled in the art will appreciate that in developing any actual embodiment of the present invention, many decisions specific to the particular implementation must be made to achieve specific objectives, and these specific objectives will differ from one embodiment to another. It is understood that such development efforts can be complex and time consuming, but will nevertheless be a routine engineering task for those of ordinary skill in the art using the present disclosure.

Claims (25)

1. Способ формирования классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов при помощи хешей объектов DOM страниц, при этом указанный способ содержит этапы, на которых:1. A method for generating a classifier, including a machine learning model, for detecting phishing sites using hashes of DOM page objects, wherein this method contains the steps of: а) получают страницы, соответствующие набору ссылок (URL);a) get pages corresponding to a set of links (URL); б) формируют древовидную структуру в виде DOM-дерева для каждой страницы путем парсинга страницы, во время которого извлекают данные и информацию из страницы;b) form a tree structure in the form of a DOM tree for each page by parsing the page, during which data and information are extracted from the page; в) формируют по меньшей мере одну строку, состоящую из элементов DOM-дерева для каждой страницы, на основании шаблона;c) form at least one line consisting of DOM tree elements for each page based on the template; г) создают по меньшей мере два хеша для каждой страницы, при этом первый хеш формируют от всей страницы, а второй и последующие хеши – от сформированных строк;d) create at least two hashes for each page, with the first hash being formed from the entire page, and the second and subsequent hashes from the generated lines; д) формируют два набора данных из сформированных хешей, где первый набор данных содержит информацию о безопасных страницах, а второй набор данных содержит информацию о фишинговых страницах;e) form two sets of data from the generated hashes, where the first set of data contains information about safe pages, and the second set of data contains information about phishing pages; е) проводят проверку на наличие разнообразности данных в каждом наборе данных;f) check for data diversity in each data set; ж) осуществляют обучение классификатора, включающего модель машинного обучения, на основании сформированных наборов данных.g) train a classifier, including a machine learning model, based on the generated data sets. 2. Способ по п. 1, в котором получают страницы по меньшей мере одним из подходов: скачивают страницы сайта согласно ссылкам в виде текстовых файлов или получают страницы из базы данных.2. The method according to claim 1, in which pages are obtained by at least one of the following approaches: downloading site pages according to links in the form of text files or obtaining pages from a database. 3. Способ по п. 1, в котором шаблон определяет способ формирования строки из элементов DOM-дерева страницы.3. The method according to claim 1, in which the template determines the method of forming a string from the elements of the DOM tree of the page. 4. Способ по п. 3, в котором по меньшей мере одним шаблоном является один из следующих шаблонов:4. The method according to claim 3, wherein at least one template is one of the following templates: а) шаблон, согласно которому формируют строку на основании только названий тегов в DOM-дереве страницы (первый шаблон);a) a template according to which a line is formed based only on the names of the tags in the DOM tree of the page (the first template); б) шаблон, согласно которому формируют строку на основании названий тегов и названий атрибутов тегов (второй шаблон).b) a template according to which a string is formed based on the tag names and tag attribute names (second template). 5. Способ по п. 1, в котором формируют по меньшей мере две строки, при этом первую строку формируют на основании первого шаблона, а вторую строку формируют на основании второго шаблона.5. The method according to claim 1, in which at least two lines are formed, the first line being formed based on the first template, and the second line being formed based on the second template. 6. Способ по п. 1, в котором на этапе е) проверку осуществляют путем определения, есть ли в наборах данных группы схожих хешей, при этом указанные группы являются достаточно многочисленными.6. The method according to claim 1, in which at step e) the check is carried out by determining whether there are groups of similar hashes in the data sets, and these groups are sufficiently numerous. 7. Способ по п. 1, в котором дополнительно проводят очистку данных из наборов данных, где очистка заключается в поиске и удалении из одного из набора данных хешей, которые попали в оба набора данных.7. The method according to claim 1, in which data is additionally cleaned from the data sets, where the cleaning consists of searching and removing hashes from one of the data sets that are included in both data sets. 8. Способ по п. 1, в котором дополнительно проводят проверку на наличие разнообразности данных в каждом из указанных наборе данных.8. The method according to claim 1, in which they additionally check for the presence of data diversity in each of the specified data sets. 9. Способ по п. 1, в котором дополнительно после обучения классификатора осуществляют проверку его работы на тестовом подмножестве данных.9. The method according to claim 1, in which additionally, after training the classifier, its operation is checked on a test subset of data. 10. Способ по п. 9, в котором проводят переобучение классификатора при выявлении ложного срабатывания во время проверки на тестовом подмножестве данных.10. The method according to claim 9, in which the classifier is retrained when a false positive is detected during testing on a test subset of data. 11. Система формирования классификатора, включающего модель машинного обучения, для обнаружения фишинговых сайтов на основании объектов DOM страниц, при этом указанная система включает:11. A system for generating a classifier, including a machine learning model, for detecting phishing sites based on page DOM objects, wherein the specified system includes: а) средство сбора данных,a) data collection means, б) средство анализа, включающие средство формирования объекта DOM и средство формирование хешей,b) an analysis tool, including a DOM object generation tool and a hash generation tool, в) средство хранения данных,c) data storage device, г) средство обучения, предназначенное для обучения классификатора, включающего модель машинного обучения для поиска фишинговых сайтов, d) a learning tool designed to train a classifier that includes a machine learning model for finding phishing sites, д) и в которой вычислительное устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, хранящую машиночитаемые инструкции, исполняемые по меньшей мере одним процессором, осуществляет способ по любому из пп. 1-10.e) and wherein a computing device comprising at least one processor and at least one memory storing machine-readable instructions executable by the at least one processor, implements the method according to any one of claims. 1-10.
RU2023112277A 2023-05-12 System and method for generating classifier for detecting phishing sites using dom object hashes RU2811375C1 (en)

Publications (1)

Publication Number Publication Date
RU2811375C1 true RU2811375C1 (en) 2024-01-11

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192855A1 (en) * 2006-01-18 2007-08-16 Microsoft Corporation Finding phishing sites
US20170286544A1 (en) * 2015-09-16 2017-10-05 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
RU2636700C1 (en) * 2016-03-18 2017-11-27 Акционерное общество "Лаборатория Касперского" Method for eliminating vulnerabilities of devices having access to internet
US20210409445A1 (en) * 2020-06-26 2021-12-30 Zoho Corporation Private Limited Machine learning-based sensitive resource collection agent detection
WO2023043750A1 (en) * 2021-09-14 2023-03-23 Netskope, Inc. Machine learning-based systems and methods of using url feature hashes, html encodings, and content page embedded images for detecting phishing websites

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192855A1 (en) * 2006-01-18 2007-08-16 Microsoft Corporation Finding phishing sites
US20170286544A1 (en) * 2015-09-16 2017-10-05 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
RU2636700C1 (en) * 2016-03-18 2017-11-27 Акционерное общество "Лаборатория Касперского" Method for eliminating vulnerabilities of devices having access to internet
US20210409445A1 (en) * 2020-06-26 2021-12-30 Zoho Corporation Private Limited Machine learning-based sensitive resource collection agent detection
WO2023043750A1 (en) * 2021-09-14 2023-03-23 Netskope, Inc. Machine learning-based systems and methods of using url feature hashes, html encodings, and content page embedded images for detecting phishing websites

Similar Documents

Publication Publication Date Title
Rao et al. Detection of phishing websites using an efficient feature-based machine learning framework
Mahajan et al. Phishing website detection using machine learning algorithms
RU2610254C2 (en) System and method of determining modified web pages
Xiang et al. Cantina+ a feature-rich machine learning framework for detecting phishing web sites
Nelms et al. {ExecScent}: Mining for New {C&C} Domains in Live Networks with Adaptive Control Protocol Templates
US20210203690A1 (en) Phishing detection using certificates associated with uniform resource locators
US20210203692A1 (en) Phishing detection using uniform resource locators
US12021894B2 (en) Phishing detection based on modeling of web page content
Wang et al. Machine learning based cross-site scripting detection in online social network
Buja et al. Detection model for SQL injection attack: An approach for preventing a web application from the SQL injection attack
CN108156131A (en) Webshell detection methods, electronic equipment and computer storage media
JP7264631B2 (en) System and method for detecting fraud in computer systems
Kar et al. SQLiDDS: SQL injection detection using query transformation and document similarity
US11962610B2 (en) Automated security testing system and method
US11470114B2 (en) Malware and phishing detection and mediation platform
Kirchner A framework for detecting anomalies in http traffic using instance-based learning and k-nearest neighbor classification
WO2020082763A1 (en) Decision trees-based method and apparatus for detecting phishing website, and computer device
Saleem et al. Web server attack detection using machine learning
Khan Detection of phishing websites using deep learning techniques
Crişan et al. Detecting malicious URLs based on machine learning algorithms and word embeddings
Meena Siwach Anomaly detection for web log data analysis: A review
Wu et al. WAFBOOSTER: automatic boosting of WAF security against mutated malicious payloads
Gupta et al. Alleviating the proliferation of JavaScript worms from online social network in cloud platforms
RU2811375C1 (en) System and method for generating classifier for detecting phishing sites using dom object hashes
RU2813242C1 (en) Method for detecting phishing sites and system that implements it