RU2711041C1 - Software analysis method based on absence of undeclared functionalities - Google Patents

Software analysis method based on absence of undeclared functionalities Download PDF

Info

Publication number
RU2711041C1
RU2711041C1 RU2019114830A RU2019114830A RU2711041C1 RU 2711041 C1 RU2711041 C1 RU 2711041C1 RU 2019114830 A RU2019114830 A RU 2019114830A RU 2019114830 A RU2019114830 A RU 2019114830A RU 2711041 C1 RU2711041 C1 RU 2711041C1
Authority
RU
Russia
Prior art keywords
software
studied
files
compiled
information
Prior art date
Application number
RU2019114830A
Other languages
Russian (ru)
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 RU2019114830A priority Critical patent/RU2711041C1/en
Application granted granted Critical
Publication of RU2711041C1 publication Critical patent/RU2711041C1/en

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Abstract

FIELD: information security.SUBSTANCE: in the software analysis method for the absence of undeclared functionality, a separate workstation is pre-allocated for analysis of the analyzed SW, the synchronization of the system time with astronomical time is disabled at the given work station, a time service is simulated on a given workstation, on which a channel for synchronizing time of the environment of operation of the analyzed SW is closed, after which the process of functioning of the analyzed SW is simulated. Based on analysis of information intercepted and stored during simulation, suspicious functional objects are detected, including "logic bomb" type program implants.EFFECT: high reliability of results of monitoring the absence of undeclared functional capabilities in the software due to detection of program implants such as "logical bomb".1 cl, 1 dwg

Description

Изобретение относится к вычислительной технике, а именно к информационным вычислительным системам и сетям, и может быть использовано для защиты информационных ресурсов рабочих станций и серверов, их компонентов, программ или данных от несанкционированного доступа к ним, а также при анализе исходного кода программного обеспечения (ПО), в том числе при проведении сертификационных испытаний программного обеспечения на отсутствие недекларированных возможностей.The invention relates to computer technology, namely to information computer systems and networks, and can be used to protect the information resources of workstations and servers, their components, programs or data from unauthorized access to them, as well as when analyzing the source code of software (software ), including during certification testing of software for the absence of undeclared capabilities.

Толкование терминов, используемых в заявке:Interpretation of terms used in the application:

недекларированные (функциональные) возможности - функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации (Руководящий документ «Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей», утв. Гостехкомиссией России 04.06.1999, далее - РД НДВ);undeclared (functional) capabilities - software features that are not described or do not correspond to those described in the documentation, the use of which may violate the confidentiality, accessibility or integrity of the processed information (Guidance document “Protection against unauthorized access to information. Part 1. Information security software “Classification by the level of control of the absence of undeclared opportunities”, approved by the State Technical Commission of Russia on 06.06.1999, hereinafter referred to as the NDV RD);

программные закладки - преднамеренно внесенные в ПО функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций ПО, приводящих к нарушению конфиденциальности, доступности или целостности обрабатываемой информации (РД НДВ);software bookmarks - functional objects intentionally introduced into the software that, under certain conditions (input data), initiate the execution of software functions not described in the documentation that lead to a violation of the confidentiality, accessibility, or integrity of the processed information (NDV);

логическая бомба (англ. logic bomb) - функциональный объект, который запускается при определенных временных или информационных условиях для осуществления вредоносных действий (Танненбаум Э., Бос X. Современные операционные системы. 4-е изд. - СПб.: - Питер, 2015);logic bomb (born logic bomb) is a functional object that is launched under certain temporary or informational conditions for carrying out malicious actions (Tannenbaum E., Bos X. Modern operating systems. 4th ed. - St. Petersburg: Peter, 2015) ;

функциональный объект - элемент программы, осуществляющий выполнение действий по реализации законченного фрагмента алгоритма программы. В качестве функциональных объектов могут выступать процедуры, функции, ветви, операторы и т.п. (РД НДВ);functional object - a program element that performs actions to implement a complete fragment of a program algorithm. Functional objects can be procedures, functions, branches, operators, etc. (RD NDV);

CWE - общий перечень дефектов безопасности. Предназначен для разработчиков и специалистов по обеспечению безопасности ПО. Он представляет собой официальный реестр или словарь общих дефектов безопасности, которые могут проявиться в архитектуре, проектировании, коде или реализации ПО, и могут быть использованы злоумышленниками для получения несанкционированного доступа к системе. Данный перечень был разработан в качестве универсального формального языка для описания дефектов безопасности ПО, а также в качестве стандарта для измерения эффективности инструментов, выявляющих такие дефекты, и для распознавания, устранения и предотвращения эти дефектов (Common Weakness Enumeration: офиц. сайт.URL: https://cwe.mitre.org/about/faq.htm);CWE is a general list of security defects. Designed for developers and software security professionals. It is an official registry or a dictionary of common security defects that can occur in the architecture, design, code or implementation of software, and can be used by attackers to gain unauthorized access to the system. This list was developed as a universal formal language for describing software security defects, and also as a standard for measuring the effectiveness of tools that identify such defects and for recognizing, eliminating, and preventing these defects (Common Weakness Enumeration: official site. URL: https : //cwe.mitre.org/about/faq.htm);

фактический маршрут выполнения скомпилированных файлов (функциональных объектов) - последовательность фактически выполняемых функциональны объектов при определенных условиях (входных данных) (РД НДВ);the actual execution route of compiled files (functional objects) is a sequence of actually executed functional objects under certain conditions (input data) (NDV RD);

среда функционирования - набор системного и прикладного ПО, включая стандартную службу времени, которое установлено и используется на рабочей станции для обеспечения работоспособности исследуемого ПО и проведения его анализа.functioning environment - a set of system and application software, including the standard time service, which is installed and used on a workstation to ensure the operability of the studied software and its analysis.

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

а) описание аналоговa) description of analogues

Известен аналог - система контроля отсутствия недекларированных возможностей в программном обеспечении (Пат. 2434265 Российская Федерация, МПК G06F 11/00. Система контроля отсутствия недекларированных возможностей в программном обеспечении [Текст] / Минаков В.А., Мирошников В.В., Бурушкин А.А.; заявитель и правообладатель Федеральное государственное учреждение «Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю». - №2010129013/08; заявл. 13.07.2010; опубл. 20.11.2011. Бюл. №32), которая заключается в том, что сохраняют исходные тексты исследуемого ПО, устанавливают контрольные точки в файлы, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, дополнительно осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций, осуществляют корректировку результатов перехвата информации о найденных потоках управления исследуемого ПО, пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО с помощью интерактивного взаимодействия с экспертами, после чего выдают итоговые результаты [4].A well-known analogue is a system for monitoring the absence of undeclared capabilities in software (Pat. 2434265 Russian Federation, IPC G06F 11/00. System for monitoring the absence of undeclared capabilities in software [Text] / Minakov VA, Miroshnikov VV, Burushkin A .A .; applicant and rightholder Federal State Institution “State Research and Development Testing Institute for Technical Protection of Information Problems of the Federal Service for Technical and Export Control.” - No.2012929013 / 08; fil. 13.07. 2010; published on November 20, 2011, Bulletin No. 32), which consists in saving the source texts of the studied software, setting breakpoints in files, as well as procedures and functions of the source texts of the tested software, compiling the source files of the tested software, launching the compiled files of the software under investigation are processed, process requests from compiled files and to them from other executable files, intercept and store information about the found control flows of the software under investigation, intercept and save information about found control points of the compiled source files of the studied software, intercept and save information about the actual routes of the compiled source files of the studied software, additionally search for potentially dangerous software constructs in the source files of the studied software on the basis of a pre-formed list of potentially dangerous software constructs, make corrections the results of intercepting information about the found control flows software, the passed control points of the compiled files of the studied software source files, the actual routes of the compiled files of the studied software source files, the search for potentially dangerous software constructs in the source files of the studied software using interactive interaction with experts, after which they give the final results [4].

Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет сигнатурного анализа исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций, а также за счет анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО. При этом из виду упускается то, что программные закладки типа «логическая бомба» могут отсутствовать в предварительно сформированном перечне потенциально опасных программных конструкций, а также не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО.The disadvantage of this system is the low reliability of the results of monitoring the lack of undeclared functionality in the software due to the possibility of skipping software bookmarks of the "logical bomb" type. The absence of undeclared features is controlled by a signature analysis of the source texts of the software under study on the basis of a pre-formed list of potentially dangerous software constructs, as well as by analysis of information intercepted and stored during the execution of compiled files of the software under study. At the same time, it is overlooked that program bookmarks of the “logical bomb” type may not be in the pre-formed list of potentially dangerous program structures, and also may not appear during the execution of compiled files of the software under study.

Известен аналог - система анализа программного обеспечения на отсутствие недекларированных возможностей (Пат. 2622622 Российская Федерация, МПК G06F 21/00, G06F 21/50, G06F 11/30, G06F 12/16. Система анализа программного обеспечения на отсутствие недекларированных возможностей [Текст] / Горюнов М.Н., Мельников П.В., Закалкин П.В., Воробьев С.А., Анисимов Д.В., Петров К.Е.; заявитель и правообладатель Федеральное государственное казенное военное образовательное учреждение высшего образования «Академия федеральной службы охраны Российской Федерации» (Академия ФСО России). - №2016110533; заявл. 22.03.2016; опубл. 16.06.2017. Бюл. №17), которая заключается в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, устанавливают контрольные точки в файлы, процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют корректировку результатов перехвата информации о найденных потоках управления исследуемого ПО, пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО с помощью интерактивного взаимодействия с экспертами, после чего выдают итоговые результаты [5].A known analogue is a software analysis system for the absence of undeclared capabilities (Pat. 2622622 Russian Federation, IPC G06F 21/00, G06F 21/50, G06F 11/30, G06F 12/16. Software analysis system for the lack of undeclared capabilities [Text] / Goryunov M.N., Melnikov P.V., Zakalkin P.V., Vorobev S.A., Anisimov D.V., Petrov K.E .; applicant and copyright holder Federal State Treasury Military Educational Institution of Higher Education "Academy Federal Security Service of the Russian Federation ”(Academy of FSO R Russia) .- №2016110533; claimed 03.22.2016; publ. 06.16.2017. Bull. No. 17), which consists in the fact that they save the source files of the studied software, fix the initial state of the source files of the studied software, check the redundancy source codes of the studied software, analyze and systematize the contextual information, set control points to files, procedures and functions of the source texts of the studied software, compile the source files of the studied software, run compiled files of the studied P Oh, they process requests from compiled files and to them from other executable files, intercept and save information about found control flows of the investigated software, intercept and save information about the passed control points of the compiled source files of the studied software, intercept and save information about the actual execution routes compiled source files of the investigated software; in addition, they search for potentially dangerous software constructs in source files texts of the investigated software on the basis of a pre-formed list of potentially dangerous software structures and their testing, adjust the results of intercepting information about the found control flows of the studied software, the passed control points of the compiled source files of the studied software, the actual paths of the compiled files of the studied software, search and testing of potentially dangerous software constructs in the source files of the investigated Software using interactive interaction with experts, after which they give the final results [5].

Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет анализа и систематизации контекстной информации, а также за счет сигнатурного анализа исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО. При этом из виду упускается то, что контекстная информация может не содержать сведений об имеющихся программных закладках типа «логическая бомба», а также указанные программные закладки могут отсутствовать в предварительно сформированном перечне потенциально опасных программных конструкций и не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО. б) описание ближайшего аналога (прототипа)The disadvantage of this system is the low reliability of the results of monitoring the lack of undeclared functionality in the software due to the possibility of skipping software bookmarks of the "logical bomb" type. The absence of undeclared features is controlled by analyzing and systematizing the contextual information, as well as by analyzing the source code of the analyzed software on the basis of a pre-formed list of potentially dangerous software constructs and analyzing the information intercepted and stored during the execution of the compiled files of the tested software. At the same time, it is overlooked that contextual information may not contain information about available program bookmarks of the “logical bomb” type, and also these program bookmarks may not be in the pre-formed list of potentially dangerous program structures and may not appear during the execution of compiled files of the software under study. b) a description of the closest analogue (prototype)

Наиболее близким по технической сущности к предлагаемому способу является система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов (Пат. 2675210 Российская Федерация, МПК G06F 21/00. Система анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов [Текст] / Горюнов М.Н., Мельников П.В., Закалкин П.В., Воробьев С.А., Анисимов Д.В., Петров К.Е.; заявитель и правообладатель Федеральное государственное казенное военное образовательное учреждение высшего образования «Академия федеральной службы охраны Российской Федерации» (Академия ФСО России). - №2018103834; заявл. 31.01.2018; опубл. 17.12.2018. Бюл. №35), заключающаяся в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, выявляют массивы бинарных данных и сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют экспертную корректировку результатов перехвата информации о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО, осуществляют экспертную оценку влияния функциональных объектов исследуемого ПО на программные и программно-технические средства защиты информации, после чего выдают итоговые результаты [6].The closest in technical essence to the proposed method is a software analysis system for the absence of potentially dangerous functional objects (Pat. 2675210 Russian Federation, IPC G06F 21/00. Software analysis system for the absence of potentially dangerous functional objects [Text] / Goryunov M.N ., Melnikov P.V., Zakalkin P.V., Vorobev S.A., Anisimov D.V., Petrov K.E .; applicant and copyright holder Federal State Treasury Military Higher Education Institution “Academ Federal Security Service of the Russian Federation ”(Academy of the Federal Security Service of Russia). - No. 2018103834; declared January 31, 2018; published December 17, 2018. Bull. No. 35), which consists in the fact that they save the source files of the investigated software, record the initial state source files of the studied software, check the redundancy of the source texts of the studied software, analyze and systematize the context information, identify the binary data arrays and compare them with the binary data arrays coming from the binary data arrays repository, set control points to the source files, as well as the procedures and functions of the sources of the studied software, compile the source files of the studied software, run the compiled files of the studied software, process requests from other executable files to them, intercept and save information about the found control flows of the investigated software, intercept and save information about the passed control points of the compiled source files of the studied software, intercept and save information about the actual paths of the execution of compiled source files of the software under investigation; in addition, they search for potentially dangerous software structures in the source files of the studied software on the basis of a pre-formed list of potentially dangerous software designs and carry out expert corrections of the results of intercepting information about the passed control points of the compiled source files texts of the studied software, about the actual routes of compilers data source files of the studied software, search and testing of potentially dangerous software designs in the source files of the studied software, carry out an expert assessment of the impact of the functional objects of the studied software on software and software and hardware information protection, and then give the final results [6].

Недостатком указанной системы является низкая достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО ввиду возможности пропуска программных закладок типа «логическая бомба». Контроль отсутствия недекларированных возможностей осуществляется за счет анализа и систематизации контекстной информации, сигнатурного анализа исходных текстов исследуемого ПО (поиск CWE-уязвимостей) на основе базы CWE-уязвимостей, анализа информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО, а также при помощи выявления функционала, нацеленного на нарушение работы механизмов защиты среды функционирования на основе репозитория массивов бинарных данных. При этом из виду упускается то, что контекстная информация может не содержать сведений об имеющихся программных закладках типа «логическая бомба», а также указанные программные закладки могут отсутствовать в базе CWE-уязвимостей, репозитории массивов бинарных данных и не проявиться в процессе выполнения скомпилированных файлов исследуемого ПО.The disadvantage of this system is the low reliability of the results of monitoring the lack of undeclared functionality in the software due to the possibility of skipping software bookmarks of the "logical bomb" type. The absence of undeclared capabilities is controlled by analyzing and systematizing contextual information, signature analysis of the source code of the software under study (search for CWE vulnerabilities) based on the database of CWE vulnerabilities, analysis of information intercepted and stored during the execution of compiled files of the studied software, as well as using identifying a functional aimed at disrupting the protection of the functioning environment based on the repository of binary data arrays. At the same time, it is overlooked that contextual information may not contain information about available program bookmarks of the “logical bomb” type, and also these program bookmarks may not be in the database of CWE vulnerabilities, repositories of binary data arrays and may not appear during the execution of the compiled files of the investigated BY.

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

а) технический результат, на достижение которого направлено изобретениеa) technical result, the achievement of which the invention is directed

Целью настоящего изобретения является повышение достоверности результатов контроля отсутствия недекларированных функциональных возможностей в ПО за счет обеспечения выявления программных закладок типа «логическая бомба», которые могли бы сработать в течение планируемого срока эксплуатации исследуемого ПО, путем применения специального способа выявления указанных программных закладок, заключающегося в моделировании процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации.The aim of the present invention is to increase the reliability of the results of monitoring the absence of undeclared functional capabilities in software by ensuring the identification of software bookmarks of the "logical bomb" type, which could work during the planned life of the software under study, by using a special method for identifying these program bookmarks, which consists in modeling the functioning of the investigated software during the planned term of its operation.

б) совокупность существенных признаковb) a set of essential features

Технический результат достигается тем, что в известной системе анализа программного обеспечения на отсутствие потенциально опасных функциональных объектов, заключающейся в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, выявляют массивы бинарных данных и сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют экспертную корректировку результатов перехвата информации о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО, осуществляют экспертную оценку влияния функциональных объектов исследуемого ПО на программные и программно-технические средства защиты информации, после чего выдают итоговые результаты. В предлагаемом способе предварительно выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем, имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО, а также осуществляют моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации путем запуска скомпилированных файлов исследуемого ПО и циклического выполнения всех декларированных в документации к исследуемому ПО функциональных возможностей, при этом на каждой итерации цикла: обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления, о пройденных контрольных точках, о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО, при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования ПО по установленному правилу и переходят к следующей итерации цикла, после завершения цикла, т.е. завершения моделирования планируемого срока эксплуатации исследуемого ПО, осуществляют анализ информации, перехваченной и сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, включая функциональные объекты, реализующие недекларированные функциональные возможности типа «логическая бомба».The technical result is achieved by the fact that in the well-known software analysis system for the absence of potentially dangerous functional objects, namely that they save the source files of the investigated software, fix the initial state of the source files of the studied software, check the redundancy of the source texts of the studied software, analyze and systematization of contextual information, identify arrays of binary data and compare them with arrays of binary data coming from the repository binary data, set breakpoints in the source files, as well as the procedures and functions of the source texts of the studied software, compile the source files of the studied software, run the compiled files of the tested software, process requests from other executable files, intercept and save them information about the found control flows of the investigated software, intercept and save information about the passed control points of the compiled source files of the studied software, they intercept and save information about the actual routes of the compiled files of the analyzed software source files; in addition, they search for potentially dangerous software structures in the source files of the studied software on the basis of a pre-formed list of potentially dangerous software structures and test them, carry out expert corrections of the results of intercepting information about the passed control points of the compiled source files of the investigated software, about the fact iCal routes execution of compiled source files of the test software, research and testing of potentially dangerous software designs in the source file of the test software, carry out expert evaluation of the impact of the functional entities of the test software on software and software and hardware protection of information, and then give the final results. In the proposed method, a separate workstation is preliminarily allocated for analysis of the studied software, the ability to synchronize the system time with astronomical time is turned off at this workstation, the time service is imitated on this workstation, which closes the time synchronization channel of the investigated software functioning environment, and the process is also simulated functioning of the studied software during the planned term of its operation by running compiled files of the studied software and the cycle execution of all functionalities declared in the documentation for the software under study, and at each iteration of the cycle: they process requests from compiled files and to them from other executable files, intercept and store information about the found control flows, about passed control points, and about actual routes executing compiled files of the software under study, using the simulated time service, shift the time point of the software functioning environment according to the established rule and proceed to the next iteration of the cycle, after the completion of the cycle, i.e. completion of the simulation of the planned life of the investigated software, they analyze the information intercepted and stored during the execution of the cycle, and identify suspicious functional objects, including functional objects that implement undeclared functionalities such as “logical bomb”.

Реализованный в прототипе подход к выявлению недекларированных функциональных возможностей в исходных текстах ПО заключается в анализе и систематизации контекстной информации, сигнатурном анализе исходных текстов исследуемого ПО (поиск CWE-уязвимостей) на основе базы CWE-уязвимостей, анализе информации, перехваченной и сохраненной в процессе выполнения скомпилированных файлов исследуемого ПО, а также при помощи выявления функционала, нацеленного на нарушение работы механизмов защиты среды функционирования на основе репозитория массивов бинарных данных. При этом из виду упускается то, что программные закладки типа «логическая бомба» могут не эксплуатировать уязвимости среды функционирования и не быть нацеленными на нарушение работы механизмов защиты среды функционирования, вследствие чего могут отсутствовать в базе CWE-уязвимостей и в репозитории массивов бинарных данных. Кроме того, программные закладки типа «логическая бомба» срабатывают при выполнении некоторого условия, в частности, при наступлении определенной злоумышленником даты. Подобное условие может не выполниться в процессе выполнения скомпилированных файлов исследуемого ПО на этапе контроля отсутствия недекларированных функциональных возможностей, вследствие чего подобная программная закладка не будет выявлена. Также контекстная информация, содержащаяся в исходных текстах исследуемого ПО, может не содержать сведений об имеющихся программных закладках типа «логическая бомба».The prototype approach to identifying undeclared functionality in the source code of the software consists in analyzing and systematizing contextual information, signature-based analysis of the source code of the software under study (search for CWE vulnerabilities) based on the database of CWE vulnerabilities, analysis of information intercepted and stored during compiled files of the software under investigation, as well as by identifying functional aimed at disrupting the protection mechanisms of the functioning environment based on the mass repository in binary data. At the same time, it is overlooked that software bookmarks of the “logical bomb” type may not exploit vulnerabilities of the functioning environment and may not be aimed at disrupting the protection mechanisms of the functioning environment, as a result of which they may be absent in the database of CWE vulnerabilities and in the repository of binary data arrays. In addition, software bookmarks of the “logical bomb” type are triggered when a certain condition is fulfilled, in particular, when a date is determined by an attacker. Such a condition may not be fulfilled during the execution of compiled files of the studied software at the stage of monitoring the absence of undeclared functionality, as a result of which a similar program bookmark will not be detected. Also, the contextual information contained in the source texts of the software under investigation may not contain information about the available program bookmarks of the “logical bomb” type.

Вредоносный характер программных закладок типа «логическая бомба» заключается в том, что, не оказывая непосредственно деструктивного воздействия на среду выполнения или обрабатываемую информацию, при наступлении определенной даты или по прошествии некоторого промежутка времени они могут инициировать загрузку и запуск дополнительных программных модулей, которые, в свою очередь, будут нести в себе функционал, направленный оказание на нарушение конфиденциальности, доступности и целостности обрабатываемой информации или деструктивного воздействия на среду функционирования исследуемого ПО. Помимо этого, программные закладки типа «логическая бомба», будучи запущенными в определенное время или с определенной периодичностью, могут нанести ущерб функционированию ПО или среде его функционирования за счет выполнения корректных с точки зрения безопасности, но некорректных с точки зрения штатного функционирования ПО действий, например, путем периодического аварийного завершения программы, отключения отдельных функциональных возможностей и других действий, влияющих на работу ПО.The malicious nature of logic bookmark-type bookmarks is that, without directly affecting the runtime or processed information, they can initiate the download and launch of additional program modules when a certain date or after a certain period of time has passed in turn, they will carry functionality aimed at violating the confidentiality, accessibility and integrity of the processed information or destructively on the environmental impact of the test operation of the software. In addition, program bookmarks of the “logical bomb” type, when launched at a certain time or at a certain frequency, can damage the functioning of the software or its functioning environment by performing actions that are correct from the point of view of security but incorrect from the point of view of the regular functioning of the software, for example , by periodically crashing the program, disabling certain functionalities and other actions that affect the operation of the software.

Сопоставительный анализ заявляемого решения с прототипом показывает, что предлагаемый способ отличается от известного тем, что применяют специальный способ выявления недекларированных функциональных возможностей типа «логическая бомба», заключающийся в моделировании процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации. Для этого выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем, имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО, осуществляют моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации при помощи запуска скомпилированных файлов и циклического выполнения всех декларированных в документации к исследуемому ПО функциональных возможностей, при этом на каждой итерации цикла: обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления, о пройденных контрольных точках, о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО, при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования ПО по установленному правилу и переходят к следующей итерации цикла, после завершения цикла, т.е. завершения моделирования планируемого срока эксплуатации исследуемого ПО, осуществляют анализ информации, перехваченной и сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, включая реализующие недекларированные функциональные возможности типа «логическая бомба».A comparative analysis of the proposed solution with the prototype shows that the proposed method differs from the known one in that they use a special method for identifying undeclared functional capabilities of the “logical bomb” type, which consists in modeling the functioning of the software under study during the planned term of its operation. To do this, a separate workstation is selected for analysis of the software under study, the ability to synchronize the system time with astronomical time is turned off at this workstation, the time service is imitated on this workstation, to which the channel for synchronizing the time of the operating environment of the studied software is closed, the process of the studied software is simulated in the course of the planned term of its operation by running compiled files and cyclic execution of all declared in the document mentions to the software under investigation of the functionalities, at each iteration of the cycle: they process requests from compiled files and to them from other executable files, intercept and save information about the found control flows, about passed control points, about the actual execution routes of the compiled files of the studied software , using the simulated time service, they shift the time points of the software functioning environment according to the established rule and proceed to the next iteration of the cycle, after cycle completion, i.e. completion of the simulation of the planned life of the investigated software, they analyze the information intercepted and stored during the execution of the cycle, and identify suspicious functional objects, including those that implement undeclared functionality like the “logical bomb”.

в) причинно-следственная связь между признаками и техническим результатомc) a causal relationship between the signs and the technical result

Путем выделения для анализа исследуемого ПО отдельной рабочей станции, отключения у данной рабочей станции возможности синхронизации системного времени с астрономическим временем, имитации на данной рабочей станции службы времени, замыкания на нее канала синхронизации времени среды функционирования исследуемого ПО и моделирования процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации создают условия срабатывания программных закладок типа «логическая бомба», благодаря чему выявляют указанные программные закладки на этапе анализа перехваченной и сохраненной при выполнении скомпилированных файлов информации.By allocating a separate workstation for analysis of the software under study, disabling the ability to synchronize system time with astronomical time at this workstation, simulating the time service on this workstation, closing the channel for synchronizing the time of the environment of functioning of the studied software, and simulating the functioning of the studied software during the planned the term of its operation creates the conditions for triggering software bookmarks of the type “logical bomb”, due to which these prog frame bookmarks at the stage of analysis of information intercepted and stored during the execution of compiled files.

Благодаря новой совокупности существенных признаков в способе реализована возможность выявления недекларированных функциональных возможностей типа «логическая бомба», тем самым повышена достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО.Thanks to the new set of essential features in the method, it is possible to identify undeclared functionalities of the “logical bomb” type, thereby increasing the reliability of the results of monitoring the absence of undeclared functional capabilities in software.

Доказательства соответствия заявленного изобретения условиям патентоспособности «новизна» и «изобретательский уровень».Evidence of compliance of the claimed invention with the conditions of patentability "novelty" and "inventive step".

Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».The analysis of the prior art made it possible to establish that analogues that are characterized by a combination of features that are identical to all the features of the claimed technical solution are absent, which indicates the compliance of the claimed method with the condition of patentability “novelty”.

Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обуславливающих тот же технический результат, который достигнут в заявленном способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».Search results for known solutions in this and related fields of technology in order to identify features that match the distinctive features of the claimed object from the prototype showed that they do not follow explicitly from the prior art. The prior art also did not reveal the fame of the distinctive essential features that determine the same technical result, which is achieved in the claimed method. Therefore, the claimed invention meets the condition of patentability "inventive step".

Краткое описание чертежейBrief Description of the Drawings

На фигуре представлена схема последовательности действий, реализующих заявленный способ.The figure shows a sequence diagram of actions that implement the claimed method.

Осуществление изобретенияThe implementation of the invention

Указанный технический результат достигается за счет того, что моделируют процесс функционирования исследуемого ПО в течение планируемого срока его эксплуатации, для чего выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем и имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО.The specified technical result is achieved due to the fact that they simulate the functioning of the investigated software during the planned term of its operation, for which they select a separate workstation for analysis of the studied software, disable the ability to synchronize system time with astronomical time at this workstation and simulate it at this workstation the time service, which closes the time synchronization channel of the environment of functioning of the investigated software.

Перед непосредственно моделированием процесса функционирования ПО сохраняют на рабочей станции файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации в исходных текстах исследуемого ПО, выявляя возможные описания недекларированных функциональных возможностей и соответствующие им функциональные объекты ФОКНТ, выявляют массивы бинарных данных в исходных текстах исследуемого ПО, сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, и выявляют бинарные вставки ФОБВ, осуществляют поиск потенциально опасных программных конструкций ФОПОК в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО и компилируют файлы исходных текстов исследуемого ПО.Before directly simulating the functioning of the software, the source files of the software under study are stored on the workstation, the initial state of the source files of the studied software is recorded, the redundancy of the source texts of the studied software is checked, the contextual information in the source texts of the studied software is analyzed and systematized, revealing possible descriptions of the undeclared functional opportunities and corresponding functional objects CST FD, detect arrays of binary data in the outcome s texts of the test software, compare them with arrays of binary data coming from the repository binary data arrays, and detect binary insertion FD BV is searched potentially hazardous programming constructs FD SSV in the source files of the test software-based preformed list of potentially hazardous programming constructs and testing them, set breakpoints in the source files, as well as the procedures and functions of the sources of the software under study, and compile the source files kst of the studied software.

Затем осуществляют непосредственно моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации.Then, they directly simulate the functioning of the investigated software during the planned term of its operation.

Моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации проводится с целью имитации условий, при которых сработает тот или иной функциональный объект исследуемого ПО, реализующий недекларированные функциональные возможности типа «логическая бомба», тем самым позволит себя обнаружить, и заключается в установке начальной точки времени, запуске скомпилированных файлов исследуемого ПО и циклическом выполнении всех декларированных в документации к нему функциональных возможностей, при этом после выполнения каждой итерации цикла при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования по заданному правилу и выполняют следующую итерацию цикла.The simulation of the functioning of the investigated software during the planned term of its operation is carried out in order to simulate the conditions under which one or another functional object of the studied software will work, which implements undeclared functional capabilities of the "logical bomb" type, thereby allowing itself to be detected, and consists in setting the starting point time, running the compiled files of the software under study and cyclic execution of all the functionalities declared in the documentation for it, while m after each iteration of the cycle using a simulated time service carry out a shift of the time point of the operating environment according to a given rule and perform the next iteration of the cycle.

Сдвиг точки времени среды функционирования осуществляется по следующему правилу.The shift of the time point of the operating environment is carried out according to the following rule.

Пусть ТОС - начальная точка времени среды функционирования, равная началу планируемого периода функционирования исследуемого ПО, N=ТмаксОС - период времени, равный количеству суток, в течение которого необходимо гарантировать, что ни одна из возможных недекларированных возможностей исследуемого ПО типа «логическая бомба» не сработает, ТмаксОС. Тогда правило сдвига точки времени среды функционирования будет выглядеть следующим образом:Let T OS be the initial point in time of the operating environment equal to the beginning of the planned period of functioning of the software under study, N = T max -T OS is the time period equal to the number of days during which it is necessary to guarantee that none of the possible undeclared capabilities of the studied software of type logical bomb "will not work, T max > T OS . Then the rule for shifting the time point of the operating environment will look like this:

Ti=Ti-1+С=ТОС+i*С,Ti = Ti -1 + C = T OS + i * C,

где Ti - точка времени среды функционирования на текущей итерации, Ti=[TOC.. Тмакс], i - порядковый номер текущей итерации, i=[0..N), С -интервал времени, равный одним суткам, Т0ОС.where T i is the time point of the functioning environment at the current iteration, T i = [T OC .. T max ], i is the serial number of the current iteration, i = [0..N), C is the time interval equal to one day, T 0 = T OS .

На каждой итерации цикла обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления MПУi о пройденных контрольных точках МКТi о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО MTPi.At each iteration of the cycle, requests from compiled files are processed and from other executable files to them, they intercept and save information about the found control flows M ПУi about the passed control points M Кi about the actual execution paths of the compiled files of the studied software M TPi .

Найденные потоки управления МПУ представляют собой множество векторов функциональных объектов [ФО1..ФОk], k=[1..K], K - количество функциональных объектов в исследуемом ПО, которые расположены в порядке передачи управления от одного функционального объекта к другому.The found control flows M PU are a set of vectors of functional objects [ФО 1 .. ФО k ], k = [1..K], K is the number of functional objects in the software under study, which are located in the order of transfer of control from one functional object to another .

Пройденные контрольные точки Мкт представляют собой множество векторов [КТ1..КТр], р=[1..Р], Р - количество контрольных точек, установленных в исходных текстах исследуемого ПО.The passed control points Mct are a set of vectors [CT 1 .. CT p ], p = [ 1 .. P ], P is the number of control points set in the source texts of the investigated software.

Фактические маршруты выполнения скомпилированных файлов исследуемого ПО МТР представляют собой множество векторов [ФО1..ФОk], k=[1..K], K - количество функциональных объектов в исследуемом ПО, функциональные объекты в которых расположены в порядке их выполнения. При этом вектора функциональных объектов, представляющие фактические маршруты выполнения, могут не совпадать с векторами функциональных объектов, представляющими потоки управления.The actual execution paths of the compiled files of the software under investigation М ТР are the set of vectors [ФО 1 .. ФО k ], k = [1..K], K is the number of functional objects in the studied software, the functional objects in which are arranged in the order of their execution. In this case, the vectors of functional objects representing actual execution routes may not coincide with the vectors of functional objects representing control flows.

После завершения выполнения всех итераций цикла осуществляют анализ информации, сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, т.е. объектов, потенциально реализующих недекларированные функциональные возможности, в том числе типа «логическая бомба».After completing all iterations of the loop, they analyze the information stored during the loop and identify suspicious functional objects, i.e. objects that potentially implement undeclared functionality, including the logic bomb type.

Анализ указанной информации осуществляют выполнением следующих функций:The analysis of this information is carried out by performing the following functions:

FПУ(MПУi,MПУi-1)=ФOПУi - функция выявления подозрительных функциональных объектов на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации, ФОПУi - множество подозрительных функциональных объектов, выявленных на основе анализа потоков управления, перехваченных и сохраненных на i-й итерации;F ПУ (M ПУi , M ПУi-1 ) = ФО ПУi - the function of detecting suspicious functional objects based on the analysis of control flows intercepted and stored at the i-th iteration, ФО ПУi - a lot of suspicious functional objects identified on the basis of the analysis of control flows, intercepted and stored at the i-th iteration;

FКT(MКТi,MКТi-1)=ФOКТi - функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации, ФОКТi - множество подозрительных функциональных объектов, выявленных на основе анализа пройденных контрольных точек, перехваченных и сохраненных на i-й итерации;F КТ (M КТi , M КТi-1 ) = ФО КТi - the function of detecting suspicious functional objects based on the analysis of passed control points intercepted and stored at the i-th iteration, ФО КТi - a lot of suspicious functional objects identified based on the analysis of passed control points intercepted and stored at the i-th iteration;

FTP(MTPi,MTPi-1)=ФOTPi - функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации, ФОТРi - множество подозрительных функциональных объектов, выявленных на основе анализа фактических маршрутов выполнения скомпилированных файлов, перехваченных и сохраненных на i-й итерации.F TP (M TPi , M TPi-1 ) = Ф TPi - function to identify suspicious functional objects based on the analysis of the actual execution paths of compiled files intercepted and stored at the ith iteration; ФО TPi - many suspicious functional objects identified on the basis of analysis actual execution paths of compiled files intercepted and stored on the i-th iteration.

При этом i=[1..N].Moreover, i = [1..N].

Функция выявления подозрительных функциональных объектов на основе анализа потоков управления FПУ(MПУi,MПУi-1) работает следующим образом. Каждому вектору множества МПУi-1 ставится в соответствие равный ему вектор множества MПУi. Между векторами множества МПУi, для которых не был найден равный вектор множества MПУi-1, выявляются отличия в виде набора соответствующих функциональных объектов ФОПУ, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.The function of identifying suspicious functional objects based on the analysis of control flows F ПУ (M ПУ i, M ПУi-1 ) works as follows. Each vector of set M PUi-1 is associated vector set equal to it PUi M. Between the vectors of the set M ПУi , for which an equal vector of the set M ПУi-1 has not been found, differences are revealed in the form of a set of corresponding functional objects of the ПО ПУ , which are further considered suspicious, i.e. potentially implementing undeclared functionality, and saved for subsequent expert analysis.

Функция выявления подозрительных функциональных объектов на основе анализа пройденных контрольных точек FКТКТiКТi-1) работает следующим образом. Каждому вектору множества MКTi-1 ставится в соответствие равный ему вектор МКТi. Между векторами множества MКTi, для которых не был найден равный вектор множества МКТ-i, выявляются отличия в виде набора соответствующих контрольных точек, после чего определяются функциональные объекты ФОКТ, в которых были установлены выявленные контрольные точки, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.The function of identifying suspicious functional objects based on the analysis of passed control points F CT (M CTi , M CTi-1 ) works as follows. Each vector of the set M KTi-1 is associated with an equal vector M KTi . Between the vectors of the set M CTI , for which an equal vector of the set M CT-i was not found, differences are revealed in the form of a set of corresponding control points, after which the functional objects of the CT CT are determined, in which the identified control points were established, which are then considered suspicious, those. potentially implementing undeclared functionality, and saved for subsequent expert analysis.

Функция выявления подозрительных функциональных объектов на основе анализа фактических маршрутов выполнения скомпилированных файлов FTP(MTPi,MTPi-1) работает следующим образом. Каждому вектору множества MTPi-1 ставится в соответствие равный ему вектор множества МТРi. Между векторами множества MTPi, для которых не был найден равный вектор множества MTPi-1, выявляются отличия в виде набора соответствующих функциональных объектов ФОТР, которые далее рассматриваются как подозрительные, т.е. потенциально реализующие недекларированные функциональные возможности, и сохраняются для последующего экспертного анализа.The function of identifying suspicious functional objects based on the analysis of the actual execution paths of the compiled files F TP (M TPi , M TPi-1 ) works as follows. Each vector of the set M TPi-1 is associated with an equal vector of the set M TPi . Between the vectors of the set M TPi , for which an equal vector of the set M TPi-1 has not been found, differences are revealed in the form of a set of corresponding functional objects of the TS TP , which are further considered suspicious, i.e. potentially implementing undeclared functionality, and saved for subsequent expert analysis.

После завершения анализа информации, сохраненной в процессе выполнения цикла, устанавливают контрольные итерации, соответствующие следующим точкам времени:After the analysis of the information stored during the execution of the cycle is completed, control iterations are set corresponding to the following time points:

Imm=32*m, m=[1..N/32] - контрольные итерации, соответствующие месячному периоду работы исследуемого ПО, m - натуральное число;Im m = 32 * m, m = [1..N / 32] - control iterations corresponding to the monthly period of the studied software, m - natural number;

Ikk=93*k, k=[1..N/93] - контрольные итерации, соответствующие квартальному периоду работы исследуемого ПО, k - натуральное число;Ik k = 93 * k, k = [1..N / 93] - control iterations corresponding to the quarterly period of the investigated software, k - natural number;

Igg=366*g, g=[1..N/366] - контрольные итерации, соответствующие годовому периоду работы исследуемого ПО, g - натуральное число.Ig g = 366 * g, g = [1..N / 366] - control iterations corresponding to the annual period of operation of the investigated software, g - natural number.

Группируют выявленные подозрительные функциональные объекты в соответствии с установленными контрольными итерациями:Group the identified suspicious functional objects in accordance with the established control iterations:

Figure 00000001
Figure 00000001

j=[Imm-1..Imm] - множества подозрительных функциональных объектов, выявленных в течение месячного периода работы исследуемого ПО;j = [Im m-1 ..Im m ] - the set of suspicious functional objects identified during the one-month period of the investigated software;

Figure 00000002
множества подозрительных функциональных объектов, выявленных в течение квартального периода работы исследуемого ПО;
Figure 00000002
many suspicious functional objects identified during the quarterly period of the investigated software;

Figure 00000003
множества подозрительных функциональных объектов, выявленных в течение годового периода работы исследуемого ПО.
Figure 00000003
many suspicious functional objects identified during the annual period of the investigated software.

После завершения группировки подозрительных функциональных объектов формируют совокупность данных о результатах моделирования процесса функционирования исследуемого ПО и поиска подозрительных функциональных объектов на предыдущих этапахAfter the grouping of suspicious functional objects is completed, a set of data is generated on the results of modeling the process of functioning of the investigated software and the search for suspicious functional objects at the previous stages

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

включающую выявленные и сгруппированные подозрительные функциональные объекты, а также результаты поиска потенциально опасных конструкций ФОПОК, анализа и систематизации контекстной информации ФОКНТ, выявления бинарных вставок ФОБВ и подвергают ее экспертному анализу с целью установления того, что выявленные подозрительные функциональные объекты действительно реализуют недекларированные функциональные возможности, в том числе типа «логическая бомба». Затем среди функциональных объектов ФОБВ производится выявление функциональных объектов, взаимодействующих со средствами защиты информации, производится их анализ на предмет наличия функционала, деструктивного по отношению к средствам защиты информации, после чего принимается окончательное решение о наличии недекларированных функциональных возможностей в исследуемом ПО, в том числе типа «логическая бомба».including identified and grouped suspicious functional objects, as well as the results of a search for potentially dangerous constructs of the SQF DF , analysis and systematization of context information of the CST CFT , the identification of binary inserts of the DF BO and subject it to expert analysis in order to establish that the identified suspicious functional objects actually implement undeclared functional opportunities, including the type of "logical bomb." Then, among the functional objects of the financial index , the identification of functional objects interacting with information protection means is carried out, their analysis is carried out for the presence of a functional destructive with respect to information protection means, after which the final decision is made on the presence of undeclared functionality in the studied software, including type of "logical bomb."

Таким образом, предлагаемый способ обеспечивает выявление программных закладок типа «логическая бомба», которые могли бы сработать в течение планируемого срока эксплуатации исследуемого ПО, за счет чего повышается достоверность результатов контроля отсутствия недекларированных функциональных возможностей в ПО и достигается поставленный технический результат.Thus, the proposed method provides the identification of software bookmarks of the type “logical bomb” that could work during the planned life of the investigated software, thereby increasing the reliability of the results of monitoring the absence of undeclared functionality in the software and achieving the technical result.

Claims (1)

Способ анализа программного обеспечения на отсутствие недекларированных функциональных возможностей, заключающийся в том, что сохраняют файлы исходных текстов исследуемого ПО, фиксируют исходное состояние файлов исходных текстов исследуемого ПО, осуществляют проверку избыточности исходных текстов исследуемого ПО, проводят анализ и систематизацию контекстной информации, выявляют массивы бинарных данных и сравнивают их с массивами бинарных данных, поступающими из репозитория массивов бинарных данных, устанавливают контрольные точки в файлы исходных текстов, а также процедуры и функции исходных текстов исследуемого ПО, компилируют файлы исходных текстов исследуемого ПО, запускают на выполнение скомпилированные файлы исследуемого ПО, обрабатывают запросы к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления исследуемого ПО, перехватывают и сохраняют информацию о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, перехватывают и сохраняют информацию о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, помимо этого осуществляют поиск потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО на основе предварительно сформированного перечня потенциально опасных программных конструкций и их тестирование, осуществляют экспертную корректировку результатов перехвата информации о пройденных контрольных точках скомпилированных файлов исходных текстов исследуемого ПО, о фактических маршрутах выполнения скомпилированных файлов исходных текстов исследуемого ПО, поиска и тестирования потенциально опасных программных конструкций в файлах исходных текстов исследуемого ПО, осуществляют экспертную оценку влияния функциональных объектов исследуемого ПО на программные и программно-технические средства защиты информации, после чего выдают итоговые результаты, отличающийся тем, что предварительно выделяют для анализа исследуемого ПО отдельную рабочую станцию, отключают у данной рабочей станции возможность синхронизации системного времени с астрономическим временем, имитируют на данной рабочей станции службу времени, на которую замыкают канал синхронизации времени среды функционирования исследуемого ПО, а также осуществляют моделирование процесса функционирования исследуемого ПО в течение планируемого срока его эксплуатации путем запуска скомпилированных файлов исследуемого ПО и циклического выполнения всех декларированных в документации к исследуемому ПО функциональных возможностей, при этом на каждой итерации цикла: обрабатывают запросы из скомпилированных файлов и к ним со стороны других исполняемых файлов, перехватывают и сохраняют информацию о найденных потоках управления, о пройденных контрольных точках, о фактических маршрутах выполнения скомпилированных файлов исследуемого ПО, при помощи сымитированной службы времени осуществляют сдвиг точки времени среды функционирования ПО по установленному правилу и переходят к следующей итерации цикла, после завершения цикла, т.е. завершения моделирования планируемого срока эксплуатации исследуемого ПО, осуществляют анализ информации, перехваченной и сохраненной в процессе выполнения цикла, и выявление подозрительных функциональных объектов, включая функциональные объекты, реализующие недекларированные функциональные возможности типа «логическая бомба».A method of analyzing software for the absence of undeclared functionality, which consists in saving the source files of the studied software, fixing the initial state of the source files of the tested software, checking the redundancy of the source texts of the tested software, analyzing and systematizing the context information, revealing arrays of binary data and compare them with arrays of binary data coming from the repository of arrays of binary data, set control points and into source files, as well as procedures and functions of the source codes of the studied software, compile the source files of the studied software, run compiled files of the studied software, process requests from other executable files to them, intercept and save information about the found control flows of the studied The software intercepts and stores information about the passed control points of the compiled source files of the studied software, intercepts and stores information about the actual ma the execution paths of the compiled files of the analyzed software source files, in addition, they search for potentially dangerous software designs in the source files of the studied software on the basis of a pre-formed list of potentially dangerous software structures and test them, carry out expert adjustments to the results of intercepting information about the passed control points of the compiled source files investigated software, about the actual execution paths of compiled files similar texts of the studied software, search and testing of potentially dangerous software designs in the source files of the studied software, carry out an expert assessment of the influence of the functional objects of the studied software on the software and software and hardware information protection, then give the final results, which are differentiated in advance analyzing the software under study a separate workstation, disable at this workstation the ability to synchronize system time with astronomical time it, they simulate at this workstation a time service on which the channel for synchronizing the time of the environment of functioning of the investigated software is closed, and also simulate the functioning of the studied software during the planned term of its operation by running compiled files of the tested software and cyclic execution of all declared in the documentation for the studied Functionality software, at the same time at each iteration of the cycle: they process requests from compiled files and to them from others These executable files intercept and store information about the found control flows, about passed control points, about the actual execution paths of the compiled files of the software under investigation, using the simulated time service, shift the time point of the software functioning environment according to the established rule and proceed to the next iteration of the cycle, after cycle completion i.e. completion of the simulation of the planned life of the investigated software, they analyze the information intercepted and stored during the execution of the cycle, and identify suspicious functional objects, including functional objects that implement undeclared functionalities such as “logical bomb”.
RU2019114830A 2019-05-14 2019-05-14 Software analysis method based on absence of undeclared functionalities RU2711041C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019114830A RU2711041C1 (en) 2019-05-14 2019-05-14 Software analysis method based on absence of undeclared functionalities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019114830A RU2711041C1 (en) 2019-05-14 2019-05-14 Software analysis method based on absence of undeclared functionalities

Publications (1)

Publication Number Publication Date
RU2711041C1 true RU2711041C1 (en) 2020-01-14

Family

ID=69171321

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019114830A RU2711041C1 (en) 2019-05-14 2019-05-14 Software analysis method based on absence of undeclared functionalities

Country Status (1)

Country Link
RU (1) RU2711041C1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012862A (en) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 Verification method of compiler based on contrast of logical structures of control flow graphs
US9172720B2 (en) * 2013-08-30 2015-10-27 Bank Of America Corporation Detecting malware using revision control logs
RU2622622C1 (en) * 2016-03-22 2017-06-16 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) System to analyse software for absence of undeclared capabilities
RU2675210C1 (en) * 2018-01-31 2018-12-17 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) System of analysis of software in the absence of potentially hazardous functional objects
RU2679175C1 (en) * 2015-06-12 2019-02-06 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Method of behavioral detection of malicious programs using a virtual interpreter machine
US20190050569A1 (en) * 2010-04-08 2019-02-14 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050569A1 (en) * 2010-04-08 2019-02-14 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware
CN102012862A (en) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 Verification method of compiler based on contrast of logical structures of control flow graphs
US9172720B2 (en) * 2013-08-30 2015-10-27 Bank Of America Corporation Detecting malware using revision control logs
RU2679175C1 (en) * 2015-06-12 2019-02-06 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Method of behavioral detection of malicious programs using a virtual interpreter machine
RU2622622C1 (en) * 2016-03-22 2017-06-16 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) System to analyse software for absence of undeclared capabilities
RU2675210C1 (en) * 2018-01-31 2018-12-17 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) System of analysis of software in the absence of potentially hazardous functional objects

Similar Documents

Publication Publication Date Title
Zhu et al. Fuzzing: a survey for roadmap
Stuckman et al. The effect of dimensionality reduction on software vulnerability prediction models
CN110287693B (en) Automatic buffer overflow vulnerability detection method based on symbol execution path pruning
CN111859380A (en) Zero false alarm detection method for Android App vulnerability
Girol et al. Not all bugs are created equal, but robust reachability can tell the difference
Gerasimov et al. Anxiety: A dynamic symbolic execution framework
Ma et al. Control flow obfuscation using neural network to fight concolic testing
Hoffmann et al. ARMORY: fully automated and exhaustive fault simulation on ARM-M binaries
Zaazaa et al. Dynamic vulnerability detection approaches and tools: State of the Art
US9176846B1 (en) Validating correctness of expression evaluation within a debugger
RU2711041C1 (en) Software analysis method based on absence of undeclared functionalities
Gao et al. Deep Learning-Based Hybrid Fuzz Testing.
Alshaer et al. Microarchitecture-aware fault models: Experimental evidence and cross-layer inference methodology
Kazemi et al. An in-depth vulnerability analysis of risc-v micro-architecture against fault injection attack
US20140325658A1 (en) Method and System for Simulating the Effects of an Attack on a Computer Code
RU2675210C1 (en) System of analysis of software in the absence of potentially hazardous functional objects
Liu et al. Automated Crash Analysis and Exploit Generation with Extendable Exploit Model
Girol et al. Introducing robust reachability
Scherer et al. I/o interaction analysis of binary code
Deshpande et al. StackBERT: Machine Learning Assisted Static Stack Frame Size Recovery on Stripped and Optimized Binaries
German et al. Air vehicle software static code analysis lessons learnt
Fattahi et al. Introduction to SinJAR (a New Tool for Reverse Engineering Java Applications) andTracing I tsMaliciousActions Using Hidden Markov Models
Li et al. Release: Generating exploits using loop-aware concolic execution
Backman A brief tour on control-flow protection
Adhikari A Toolbase for Evaluating Software Protection Techniques against Symbolic Execution Attacks