2 research outputs found

    Побудова скінченних автоматів реконфігуровними засобами для вирішення задач інформаційної безпеки

    Get PDF
    Computer security requires the implementation of different measures - organizational, technical, cryptographic, etc. Network intrusion detection systems, antiviruses and other similar tools of technical protection based on signatures should solve in real time the computationally complex multi-pattern string matching task, which is a specific type of string matching functionality performed in DPI systems to search an input stream for a set of patterns rather than a single pattern. Due to rising traffic rates, increasing number and sophistication of attacks and the collapse of Moore's law for sequential processing, traditional software solutions can no longer meet the high requirements of today’s security challenges. Therefore, hardware approaches are proposed to accelerate pattern matching. Combining the flexibility of software and the near-ASIC performance, reconfigurable hardware devices based on Field Programmable Gate Arrays (FPGA) have become increasingly popular for this purpose. There are three main approaches to fulfill the computation-intensive multi-pattern string matching task using FPGA. The techniques of these approaches are: content addressable memory, Bloom filter and Aho-Corasick Algorithm. Each approach has its advantages and disadvantages. Effective construction of more and more complex signature-based tools of technical secure protection is impossible without a comprehensive analysis of the properties and specific features of every approach. In this study, in order to improve the efficiency of information security tools created on the basis of the FPGA, the main features of the third of the listed approaches are analyzed. Based on the analysis of the stateof-the-art finite automata realizing Aho-Corasick algorithm, the specialty of their implementation on FPGAs, encountering problems and ways to solve them are also investigated.Противодействие угрозам информационной безопасности требует осуществления мероприятий различного плана – организационных, технических, криптографических и др. Сетевые системы обнаружения вторжений, антивирусы и прочие подобные средства технической защиты, работа которых основана на использовании сигнатур, должны решать в реальном времени вычислительно сложную задачу множественного распознавания строк, которая в отличие от одиночного распознавания подразумевает одновременный поиск во входных данных большого количества образцов. Программные решения уже не справляются с этой проблемой в связи с устойчивым ростом объема сетевого трафика, количества и сложности атак. Поэтому все большее распространение получают аппаратные решения с использованием реконфигурируемых устройств на базе ПЛИС типа FPGA, которые сочетают в себе близкую к аппаратной производитель-ность с гибкостью программного обеспечения. На сегодня наиболее распространены три подхода к построению аппаратных схем множественного распознавания, работа которых основана на использовании: ассоциативной памяти, фильтра Блума и конечных автоматов. Каждый из подходов имеет свои преимущества и недостатки. Эффективное построение все более сложных сигнатурных средств технической защиты информации, которые бы отвечали требованиям оптимального функционирования в зависимости от внешних условий, невозможно без всестороннего анализа свойств и специфических черт каждого из подходов. В этом исследовании с целью повышения эффективности создаваемых на базе ПЛИС средств информационной безопасности проанализированы преимущества и недостатки третьего из перечисленных подходов. На основе анализа мирового опыта использования конечных автоматов также исследованы особенности их реализации на ПЛИС, возникающие проблемы и пути их решения.Протидія загрозам інформаційної безпеки потребує вживання заходів різного плану – організаційних, технічних, криптографічних тощо. Мережеві системи виявлення вторгнень, антивіруси, та інші засоби технічного захисту, робота яких заснована на використанні сигнатур, мають вирішувати в реальному часі обчислювально складну задачу множинного розпізнавання рядків, яка на відміну від одиночного розпізнавання має метою одночасний пошук у вхідних даних великої кількості зразків. Програмні рішення вже не впорюються з цією проблемою через сталий зріст об’єму мережевого трафіку, кількості та складності атак. Тому все більшого поширення набувають апаратні рішення з використанням реконфігуровних пристроїв на базі ПЛІС типу FPGA, які поєднують в собі близьку до апаратної продуктивність із гнучкістю програмного забезпечення. На сьогодні найбільш поширеними є три підходи щодо побудови апаратних схем множинного розпізнавання, робота яких заснована на використанні: асоціативної пам’яті, фільтра Блума та скінченних автоматів. Кожен с підходів має свої власні переваги та вади. Ефективна побудова все більш складних сигнатурних засобів технічного захисту інформації, яки б відповідали вимогам оптимального функціонування в залежності від зовнішніх умов, неможлива без всебічному аналізу властивостей та специфічних рис кожного з підходів. У цьому дослідженні з метою підвищення ефективності створюваних на базі ПЛІС засобів захисту інформації проаналізовані переваги та недоліки третього з перелічених підходів. На основі аналізу світового досвіду використання скінченних автоматів також досліджені особливості їх реалізації на ПЛІС, проблеми, що виникають, та шляхи їх вирішенн

    Implémentations logicielle et matérielle de l'algorithme Aho-Corasick pour la détection d'intrusions

    Get PDF
    RÉSUMÉ Ce travail propose des méthodes et architectures efficaces pour l’implémentation de l’algorithme Aho-Corasick. Cet algorithme peut être utilisé pour la recherche de chaînes de caractères dans un système de détection d’intrusion, tels que Snort, pour les réseaux informatiques. Deux versions sont proposées, une version logicielle et une version matérielle. La première version développe une implémentation logicielle pour des processeurs à usage général. Pour cela, de nouvelles implémentations de l'algorithme tenant compte des ressources mémoire et de l’exécution séquentielle des processeurs ont été proposées. La deuxième version développe de nouvelles architectures de processeurs particularisés pour FPGA. Elles tiennent compte des ressources de calcul disponibles, des ressources mémoire et du potentiel de parallélisation à grain fin offert par le FPGA. De plus, une comparaison avec une version logicielle modifiée est effectuée. Dans les deux cas, les performances et les compromis pour la sélection de différentes structures de données de nœuds en mémoire ont été analysés. Une sélection de paramètres est proposée afin de maximiser la fonction objective de performance qui combine le nombre de cycles, la consommation mémoire et la fréquence d’horloge du système. Les paramètres permettent de déterminer lequel des deux ou des trois types de structures de données de nœuds (selon la version) sera choisi pour chaque nœud d’une machine à états. Lors de la validation, des scénarios de test utilisant des données variées ont été utilisés afin de s'assurer du bon fonctionnement de l'algorithme. De plus, les contenus des règles de Snort 2.9.7 ont été utilisés. La machine à états a été construite avec environ 26×103 chaînes de caractères qui sont toutes extraites de ces règles. La machine à états contient environ 381×103 nœuds. La contribution générale de ce mémoire est de montrer qu’il est possible, à travers l’exploration d’architectures, de sélectionner des paramètres afin d’obtenir un produit mémoire × temps optimal. Pour ce qui est de la version logicielle, la consommation mémoire diminue de 407 Mo à 21 Mo, ce qui correspond à une diminution de mémoire d’environ 20× par rapport au pire cas avec seulement un type de nœud. Pour ce qui est de la version matérielle, la consommation mémoire diminue de 11 Mo à 4 Mo, ce qui résulte en une diminution de mémoire d’environ 3× par rapport à la version logicielle modifiée. Pour ce qui est du débit, il augmente de 300 Mbps pour la version logicielle modifiée à 400 Mbps pour la version matérielle.----------ABSTRACT This work proposes effective methods and architectures for the implementation of the Aho-Corasick algorithm. This algorithm can be used for pattern matching in network-based intrusion detection systems such as Snort. Two versions are proposed, a software version and a hardware version. The first version develops a software implementation in C/C++ for general purpose processors. For this, new implementations of the algorithm, considering the memory resources and the processor’s sequential execution, are proposed. The second version develops an architecture in VHDL for a specialized processor on FPGA. For this, new architectures of the algorithm, considering the available computing resources, the memory resources and the inherent parallelism of FPGAs, are proposed. Furthermore, a comparison with a modified software version is performed. For both cases, we analyze the performance and cost trade-off from selecting different data structures of nodes in memory. A selection of parameters is used in order to maximize de performance objective function that combines the cycles count, the memory usage and the system’s frequency. The parameters determine which of two or three types of data structures of nodes (depending on the version) is selected for each node of the state machine. For the validation phase, test cases with diverse data are used in order to ensure that the algorithm operates properly. Furthermore, the Snort 2.9.7 rules are used. The state machine was built with around 26×103 patterns which are all extracted from these rules. The state machine is comprised of around 381×103 nodes. The main contribution of this work is to show that it is possible to choose parameters through architecture exploration, to obtain an optimal memory × time product. For the software version, the memory consumption is reduced from 407 MB to 21 MB, which results in a memory improvement of about 20× compared with the single node-type case. For the hardware version, the memory consumption is reduced from 11 MB to 4 MB, which results in a memory improvement of about 3× compared with the modified software version. For the throughput, it increases from 300 Mbps with the modified software version to 400 Mbps with the hardware version
    corecore