RU168346U1 - Устройство выявления уязвимостей - Google Patents
Устройство выявления уязвимостей Download PDFInfo
- Publication number
- RU168346U1 RU168346U1 RU2016125045U RU2016125045U RU168346U1 RU 168346 U1 RU168346 U1 RU 168346U1 RU 2016125045 U RU2016125045 U RU 2016125045U RU 2016125045 U RU2016125045 U RU 2016125045U RU 168346 U1 RU168346 U1 RU 168346U1
- Authority
- RU
- Russia
- Prior art keywords
- module
- vulnerability
- call graph
- syntax tree
- vulnerabilities
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Полезная модель относится к компьютерной технике, а более конкретно к области информационной безопасности, и предназначена для выявления уязвимостей в исходных текстах компьютерных программ.Техническим результатом, на достижение которого направлено заявляемое устройство, является снижение вероятности ложных срабатываний при обнаружении уязвимостей в компьютерных системах, что в свою очередь приводит к повышению точности выявления уязвимостей в компьютерных системах.Устройство выявления уязвимостей, содержащее модуль построения абстрактного синтаксического дерева, соединенный с модулем построения графа вызовов, который соединен с модулем проведения локального анализа функций, соединенным с модулем проверки на наличие дефекта и блок памяти, соединенный с модулями построения абстрактного синтаксического дерева, построения графа вызовов, проведения локального анализа функций и модулем проверки на наличие уязвимости, модуль проверки на наличие уязвимости, осуществляет сравнение признаков данных функций и операций с признаками, указанными в правилах для проверки на уязвимости, которые хранятся в блоке памяти, при этом совпадение этих признаков свидетельствует о наличии уязвимости. 1 ил.
Description
Полезная модель относится к компьютерной технике, а более конкретно к области информационной безопасности, и предназначена для выявления уязвимостей в исходных текстах компьютерных программ.
Из уровня техники известна система для определения программных закладок (патент РФ №114799 на полезную модель, кл. G06F 21/00, опубл. 2012 г), содержащая блоки лексического, синтаксического и сигнатурного анализа, предназначенная для автоматического составления описания объектов на естественном языке, а также для обнаружения новых или потенциально опасных конструкций кода.
Из уровня техники также известны система и метод обнаружения дефектов в компьютерной программе с помощью анализа потока управления и анализа потока данных (патент США US 7900193 (B1) на изобретение, кл. G06F 9/44, опубл. 2011 г), использующая граф потока управления и граф потока данных для определения потенциально опасных конструкций кода.
Также известно устройство, проводящее статический анализ безопасности системного кода (заявка KHP CN 103793652 A на изобретение, кл. G06F 21/57, опубл. 2014 г), использующее абстрактное синтаксическое дерево, анализ потока данных и анализ потока управления для определения потенциально опасных конструкций кода.
Недостатками вышеперечисленных технических решений являются их сложность и повышенная вероятность обнаружения ложных потенциально вредоносных объектов.
Техническим результатом, на достижение которого направлено заявляемое устройство, является снижение вероятности ложных срабатываний при обнаружении уязвимостей в компьютерных системах, что в свою очередь приводит к повышению точности выявления уязвимостей в компьютерных системах.
Технический результат достигается за счет того, что устройство выявления уязвимостей содержит модуль построения абстрактного синтаксического дерева, соединенный с модулем построения графа вызовов, который соединен с модулем проведения локального анализа функций, соединенным с модулем проверки на наличие дефекта, и блок памяти, соединенный с модулями построения абстрактного синтаксического дерева, построения графа вызовов, проведения локального анализа функций и модулем проверки на наличие уязвимости, модуль проверки на наличие уязвимости осуществляет сравнение признаков данных функций и операций с признаками, указанными в правилах для проверки на уязвимости, которые хранятся в блоке памяти, при этом совпадение этих признаков свидетельствует о наличии уязвимости.
Устройство выявления уязвимостей производит анализ потоков данных, состоящий в анализе изменений данных в конструкциях компьютерной программы. При этом отслеживаются изменения признаков данных функций и операций компьютерной программы.
Признак данных - это такой атрибут данных, который может привести к уязвимости, если такие данные передаются в чувствительную точку программы.
Чувствительная точка - программная конструкция, выполнение которой чувствительно к одному из признаков и может привести к уязвимости.
Признаками данных являются:
- Загрязненность. Если данные, передаваемые в функцию не проверяются, то такие данные являются загрязненными.
- Константность. Если данным присваивается постоянное значение, то такие данные являются константными.
- Состояние выделенной памяти. Память для данных может быть не выделена, выделена и освобождена.
Могут быть использованы при анализе потоков данных и другие признаки данных.
Как упоминалось ранее, наличие определенного признака может привести к уязвимости.
Так наличие такого признака, как загрязненность, может потенциально привести к инъекции кода. Константность может свидетельствовать о «зашитых» в код паролях. А признак «состояние выделенной памяти» может свидетельствовать об ошибках в работе с памятью.
Все вышеуказанные уязвимости могут быть использованы злоумышленником для проведения атак на информационные системы, поэтому крайне важно исследовать исходные тексты программ на наличие данных дефектов.
На фигуре 1 показано устройство выявления уязвимостей, состоящее из модуля построения абстрактного синтаксического дерева (1), модуля построения графа вызовов (2), модуля проведения локального анализа функций (3), модуля проверки на наличие уязвимости (4) и блока памяти (5).
Модуль построения абстрактного синтаксического дерева осуществляет лексический и синтаксический анализ входных данных.
Во время лексического анализа осуществляется распознавание и выделение лексем из входной последовательности символов.
Далее полученный набор лексем в результате синтаксического анализа преобразуются в абстрактное-синтаксическое дерево, т.е. в ориентированное дерево, в котором внутренние вершины сопоставлены с операторами языка программирования, а листья - с соответствующими операндами.
Абстрактное-синтаксическое дерево записывается в блок памяти для хранения и использования в дальнейшей обработке.
Модуль построения графа вызова на основе полученного абстрактного-синтаксического дерева формирует граф вызова - ориентированный граф, отображающий вызовы между функциями в компьютерной программе.
Граф вызова, также как и абстрактное-синтаксическое дерево, записывается в блок памяти для хранения и использования в дальнейшей обработке.
Модуль проведения локального анализа функции производит локальный анализ функции для каждого начального узла графа вызова, а также определяет признаки аргументов функции.
Локальный анализ проводится с целью определения чувствительных точек в узлах графа вызова. Определение чувствительных точек происходит путем сравнения узлов графа вызова с сигнатурами чувствительных точек, хранящимися в блоке памяти.
При нахождении чувствительной точки, информация об этом поступает в модуль проверки на наличие уязвимости, который осуществляет сравнение признаков данных в этой чувствительной точки с признаками, указанными в правилах проверки на уязвимости. При совпадении признаков принимается решение о найденной уязвимости.
Правила для проверки на уязвимости перед началом работы устройства выявления уязвимостей записываются в блок памяти.
Модули устройства выявления уязвимостей могут быть выполнены на цифровых микросхемах, при этом могут быть использованы микроконтроллеры, блок флэш-памяти.
Claims (1)
- Устройство выявления уязвимостей, содержащее модуль построения абстрактного синтаксического дерева, соединенный с модулем построения графа вызовов, который соединен с модулем проведения локального анализа функций, соединенным с модулем проверки на наличие уязвимости, и блок памяти, соединенный с модулями построения абстрактного синтаксического дерева, построения графа вызовов, проведения локального анализа функций и модулем проверки на наличие уязвимости, при этом модуль построения абстрактного синтаксического дерева осуществляет лексический и синтаксический анализ входных данных путем распознавания и выделения лексем из входной последовательности символов, преобразование полученного набора лексем в абстрактное-синтаксическое дерево; модуль построения графа вызова на основе полученного абстрактного-синтаксического дерева формирует граф вызова, отображающий вызовы между функциями; модуль проведения локального анализа функции определяет чувствительные точки в узлах графа вызова путем сравнения узлов графа вызова с сигнатурами чувствительных точек, хранящимися в блоке памяти, и при нахождении чувствительной точки, информация об этом поступает в модуль проверки на наличие уязвимости; модуль проверки на наличие уязвимости осуществляет сравнение признаков данных функций и операций в этой чувствительной точке с признаками, указанными в правилах проверки на уязвимости, которые хранятся в блоке памяти, при этом совпадение этих признаков свидетельствует о наличии уязвимости.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016125045U RU168346U1 (ru) | 2016-06-23 | 2016-06-23 | Устройство выявления уязвимостей |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016125045U RU168346U1 (ru) | 2016-06-23 | 2016-06-23 | Устройство выявления уязвимостей |
Publications (1)
Publication Number | Publication Date |
---|---|
RU168346U1 true RU168346U1 (ru) | 2017-01-30 |
Family
ID=58451038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016125045U RU168346U1 (ru) | 2016-06-23 | 2016-06-23 | Устройство выявления уязвимостей |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU168346U1 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297580A (zh) * | 2021-05-18 | 2021-08-24 | 广东电网有限责任公司 | 基于代码语义分析的电力信息系统安全防护方法及装置 |
CN116989838A (zh) * | 2023-09-27 | 2023-11-03 | 苏州中电科启计量检测技术有限公司 | 一种基于语法树的仪表计量检测校准方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7900193B1 (en) * | 2005-05-25 | 2011-03-01 | Parasoft Corporation | System and method for detecting defects in a computer program using data and control flow analysis |
RU114799U1 (ru) * | 2011-12-29 | 2012-04-10 | Закрытое Акционерное Общество "Научно-Производственное Объединение "Эшелон" ЗАО "НПО "Эшелон" | Система для определения программных закладок |
RU2454714C1 (ru) * | 2010-12-30 | 2012-06-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов |
CN103793652A (zh) * | 2012-10-29 | 2014-05-14 | 广东电网公司信息中心 | 一种基于静态分析的应用系统代码安全扫描装置 |
RU2543960C1 (ru) * | 2013-08-29 | 2015-03-10 | Открытое акционерное общество "Концерн "Системпром" | Способ определения уязвимых функций при автоматизированной проверке веб-приложений на наличие уязвимостей |
-
2016
- 2016-06-23 RU RU2016125045U patent/RU168346U1/ru active IP Right Revival
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7900193B1 (en) * | 2005-05-25 | 2011-03-01 | Parasoft Corporation | System and method for detecting defects in a computer program using data and control flow analysis |
RU2454714C1 (ru) * | 2010-12-30 | 2012-06-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов |
RU114799U1 (ru) * | 2011-12-29 | 2012-04-10 | Закрытое Акционерное Общество "Научно-Производственное Объединение "Эшелон" ЗАО "НПО "Эшелон" | Система для определения программных закладок |
CN103793652A (zh) * | 2012-10-29 | 2014-05-14 | 广东电网公司信息中心 | 一种基于静态分析的应用系统代码安全扫描装置 |
RU2543960C1 (ru) * | 2013-08-29 | 2015-03-10 | Открытое акционерное общество "Концерн "Системпром" | Способ определения уязвимых функций при автоматизированной проверке веб-приложений на наличие уязвимостей |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297580A (zh) * | 2021-05-18 | 2021-08-24 | 广东电网有限责任公司 | 基于代码语义分析的电力信息系统安全防护方法及装置 |
CN113297580B (zh) * | 2021-05-18 | 2024-03-22 | 广东电网有限责任公司 | 基于代码语义分析的电力信息系统安全防护方法及装置 |
CN116989838A (zh) * | 2023-09-27 | 2023-11-03 | 苏州中电科启计量检测技术有限公司 | 一种基于语法树的仪表计量检测校准方法及系统 |
CN116989838B (zh) * | 2023-09-27 | 2023-12-26 | 苏州中电科启计量检测技术有限公司 | 一种基于语法树的仪表计量检测校准方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Spain: security patch analysis for binaries towards understanding the pain and pills | |
KR101568224B1 (ko) | 소프트웨어 취약점 분석방법 및 분석장치 | |
TWI553503B (zh) | 產生候選鈎點以偵測惡意程式之方法及其系統 | |
CN109525556B (zh) | 一种用于确定嵌入式系统固件中协议漏洞的轻量级方法及系统 | |
US9141806B2 (en) | Mining source code for violations of programming rules | |
US8539593B2 (en) | Extraction of code level security specification | |
US11048798B2 (en) | Method for detecting libraries in program binaries | |
US8572747B2 (en) | Policy-driven detection and verification of methods such as sanitizers and validators | |
US20180278635A1 (en) | Apparatus, method, and computer program for detecting malware in software defined network | |
CN109101815B (zh) | 一种恶意软件检测方法及相关设备 | |
US20240121261A1 (en) | Automated Security Analysis of Software Libraries | |
CN101159732A (zh) | 基于数据流分析的恶意攻击检测方法 | |
CN115391230A (zh) | 一种测试脚本生成、渗透测试方法、装置、设备及介质 | |
RU168346U1 (ru) | Устройство выявления уязвимостей | |
US11868465B2 (en) | Binary image stack cookie protection | |
US9171168B2 (en) | Determine anomalies in web application code based on authorization checks | |
CN110874475A (zh) | 漏洞挖掘方法、漏洞挖掘平台及计算机可读存储介质 | |
CN112817877A (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
JP7235126B2 (ja) | バックドア検査装置、バックドア検査方法、及びプログラム | |
US20230141948A1 (en) | Analysis and Testing of Embedded Code | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
Harzevili et al. | Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet? | |
CN111143851B (zh) | 适用于操作系统内核对象地址泄露的检测方法及系统 | |
CN109271781B (zh) | 一种基于内核的应用程序获取超级权限行为检测方法与系统 | |
Cai et al. | A smart fuzzing approach for integer overflow detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM9K | Utility model has become invalid (non-payment of fees) |
Effective date: 20200624 |
|
NF9K | Utility model reinstated |
Effective date: 20210513 |