RU168346U1 - Устройство выявления уязвимостей - Google Patents

Устройство выявления уязвимостей Download PDF

Info

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
Application number
RU2016125045U
Other languages
English (en)
Inventor
Алексей Сергеевич Марков
Валентин Леонидович Цирлов
Андрей Анатольевич Фадин
Денис Фаилевич Варин
Original Assignee
Закрытое Акционерное Общество "Научно-Производственное Объединение "Эшелон"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое Акционерное Общество "Научно-Производственное Объединение "Эшелон" filed Critical Закрытое Акционерное Общество "Научно-Производственное Объединение "Эшелон"
Priority to RU2016125045U priority Critical patent/RU168346U1/ru
Application granted granted Critical
Publication of RU168346U1 publication Critical patent/RU168346U1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing 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)

  1. Устройство выявления уязвимостей, содержащее модуль построения абстрактного синтаксического дерева, соединенный с модулем построения графа вызовов, который соединен с модулем проведения локального анализа функций, соединенным с модулем проверки на наличие уязвимости, и блок памяти, соединенный с модулями построения абстрактного синтаксического дерева, построения графа вызовов, проведения локального анализа функций и модулем проверки на наличие уязвимости, при этом модуль построения абстрактного синтаксического дерева осуществляет лексический и синтаксический анализ входных данных путем распознавания и выделения лексем из входной последовательности символов, преобразование полученного набора лексем в абстрактное-синтаксическое дерево; модуль построения графа вызова на основе полученного абстрактного-синтаксического дерева формирует граф вызова, отображающий вызовы между функциями; модуль проведения локального анализа функции определяет чувствительные точки в узлах графа вызова путем сравнения узлов графа вызова с сигнатурами чувствительных точек, хранящимися в блоке памяти, и при нахождении чувствительной точки, информация об этом поступает в модуль проверки на наличие уязвимости; модуль проверки на наличие уязвимости осуществляет сравнение признаков данных функций и операций в этой чувствительной точке с признаками, указанными в правилах проверки на уязвимости, которые хранятся в блоке памяти, при этом совпадение этих признаков свидетельствует о наличии уязвимости.
RU2016125045U 2016-06-23 2016-06-23 Устройство выявления уязвимостей RU168346U1 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 Открытое акционерное общество "Концерн "Системпром" Способ определения уязвимых функций при автоматизированной проверке веб-приложений на наличие уязвимостей

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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