RU2624554C1 - Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы - Google Patents
Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы Download PDFInfo
- Publication number
- RU2624554C1 RU2624554C1 RU2016118865A RU2016118865A RU2624554C1 RU 2624554 C1 RU2624554 C1 RU 2624554C1 RU 2016118865 A RU2016118865 A RU 2016118865A RU 2016118865 A RU2016118865 A RU 2016118865A RU 2624554 C1 RU2624554 C1 RU 2624554C1
- Authority
- RU
- Russia
- Prior art keywords
- tool
- hidden
- processes
- name
- values
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title abstract 2
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000000694 effects Effects 0.000 abstract description 23
- 239000000126 substance Substances 0.000 abstract 1
- 239000011230 binding agent Substances 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012882 sequential analysis Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Stored Programmes (AREA)
Abstract
Изобретение относится к области обнаружения скрытого программного обеспечения в вычислительных системах, работающих под управлением POSIX-совместимых операционных систем, например Solaris, Android и др. Техническим результатом является повышение защищенности вычислительной системы. Раскрыт способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы, причем операционная система, помимо ядра, включает следующие программные средства: 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе, 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе, 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state, 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств; при этом способ заключается в том, что получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе; получают с помощью 2-го средства количество запущенных процессов в вычислительной системе; получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса; выполняют с помощью 4-го средства для каждого процесса, список которых получен с помощью 3-го средства, следующие действия: сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов; сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов; сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов; предоставляют отчет о наличии скрытых приложений и процессов; удаляют из вычислительной системы выявленные скрытые приложения.
Description
Область техники, к которой относится изобретение
Предлагаемое изобретение относится к вычислительной технике и, в частности, к способам обнаружения скрытого программного обеспечения в вычислительных системах, работающих под управлением POSIX-совместимых операционных систем, например Solaris, Android и др.
Уровень техники
В современных вычислительных системах, работающих под управлением POSIX-совместимых операционных систем (ОС), возможно появление программ, предназначенных для сокрытия в системе определенных объектов либо активностей (руткитов). Чаще всего такая активность связана с работой вредоносного программного обеспечения (ПО). Сокрытию, как правило, подвергаются ключи реестра (например, отвечающие за автозапуск объектов), файлы, процессы в памяти зараженного компьютера, сетевая активность.
Существуют решения, направленные на обнаружение процессов или активностей в вычислительной системе и способные выявлять скрытые процессы, но не уведомлять об этом пользователя.
Так, например, в составе ОС Android имеются штатные программные средства Activity Manager, Package Manager и Procfs [1, 2, 3].
Activity Manager является системным вызовом, обрабатывающим все активности, запущенные в системе. Простые приложения состоят из одной активности. Более сложные приложения могут иметь несколько окон, т.е. они состоят из нескольких активностей, которыми надо уметь управлять и которые могут взаимодействовать между собой. Работает Activity Manager следующим образом: после запроса пользователя на запуск приложения, например, нажатием на соответствующую иконку в меню, срабатывает onClick() событие, вызывающее метод startActivity() у объекта Activity Manager. Поскольку приложение не может напрямую вызвать обработчик, оно формирует и отправляет запрос на Binder, который, в свою очередь, перенаправляет запрос на Service Manager и отправляет обработчик приложению. Таким образом, использование Activity Manager дает возможность контролировать список запущенных приложений, их имена и идентификаторы процессов.
Недостатком Activity Manager является возможность использование фоновых процессов, не имеющих активностей, что позволяет обойти контроль.
Package Manager работает следующим образом: информация об установленном приложении записывается в XML файл [4], затем Package Manager контролирует этот файл, добавляя и удаляя строки по мере установки и удаления пакетов. Получение списка процессов происходит путем чтения файла. Таким образом, использование Package Manager дает возможность контролировать список установленных приложений, а также просмотреть имя приложения, состояние и набор предоставленных приложению разрешений.
Недостатком Package Manager является возможность модификация XML файла, что также позволяет обойти контроль.
Программа Proсfs позволяет получить доступ к информации о системных процессах, обрабатываемых в ядре ОС. При запуске Procfs создает двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их идентификатором - pid. Также на верхнем уровне располагается ссылка на директорию, соответствующую процессу, выполняющему запрос; ссылка может иметь различное имя в различных ОС.
Недостатком Procfs является возможность модификация прошивки с целью внесения приложения в список системных, что позволяет обеспечить сокрытие приложения.
Описанные способы приняты за прототип.
Раскрытие изобретения
Техническим результатом является повышение защищенности вычислительной системы.
Для этого предлагается способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы, причем операционная система, помимо ядра, включает следующие программные средства:
- 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе,
- 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе,
- 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state,
- 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств;
способ, заключающийся в том, что
- получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе;
- получают с помощью 2-го средства количество запущенных процессов в вычислительной системе;
- получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса;
- выполняют с помощью 4-го средства для каждого процесса, список которых получен с помощью 3-го средства, следующие действия:
○ сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
○ сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
○ сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов;
- предоставляют отчет о наличии скрытых приложений и процессов.
Для работы способа необходимо обеспечить наличие в системе четырех средств:
- 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе,
- 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе,
- 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state,
- 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств.
В основе способа лежит последовательный анализ полей каждого из приложений, список которых получен при помощи механизма, используемого в штатном программном средстве типа Proсfs.
Опытным путем установлено, что приложения, которые были установлены неофициальным путем (в обход официальных центров дистрибуции), имеют нулевое значение статуса groups. Механизм Procfs позволяет определить значение этого статуса. В случае, если значение статуса groups равно нулю - приложение считается скрытым, а факт сокрытия заносится в отчет.
Механизм Package Manager отслеживает установленные приложения. Если приложение было удалено - то есть отсутствует в списках Package Manager - оно не должно встретиться в Procfs. Для определения необходимо сравнить значения статусов name и uid.
В случае, если значения статусов name и uid существуют и совпали - приложение считается скрытым, а факт сокрытия заносится в отчет.
Activity Manager отслеживает запущенные активности. На этом этапе происходит две проверки:
- во-первых, запущенное приложение должно быть установлено, следовательно, имеет uid, что может быть проверено путем сравнения пары name-uid, полученной с помощью механизма Activity Manager, с парой name-uid, полученной с помощью механизма procfs;
- во-вторых, запущенное приложение должно иметь активность, следовательно, имеет pid и состояние «Running», что может быть проверено путем сравнения группы name-pid-state, полученной с помощью механизма Activity Manager с группой name-pid-state, полученной с помощью механизма Procfs.
В случае если хотя бы одна из проверок неуспешна (т.е. соответствующие поля не совпали или хотя бы одно из них не определено), то приложение считается скрытым, а факт сокрытия заносится в отчет.
Таким образом, предложенный способ позволяет выявить скрытые приложения, которые известными способами не могут быть выявлены, и, при необходимости, предпринять меры по удалению (нейтрализации) этих приложений, что повышает защищенность вычислительной системы.
Осуществление изобретения
Реализация предложенного способа может быть осуществлена в вычислительной системе, работающей под управлением любой POSIX-совместимой ОС, например Solaris, Android и др.
Рассмотрим осуществление способа на примере ОС Android 4.2.
В качестве 1-го средства, способного определять количество инсталлированных приложений в вычислительной системе, может быть использована штатная программа Activity Manager.
В качестве 2-го средства, способного определять количество запущенных процессов в вычислительной системе, может быть использована штатная программа Package Manager.
В качестве 3-го средства, способного определять для процессов статусы pid, name, uid, groups, state, может быть использована штатная программа Procfs.
Для подготовки к использованию предлагаемого способа необходимо сформировать 4-е средство, позволяющее сравнивать результаты работы 1-го, 2-го и 3-го средств. Это средство представляет собой программу, которую, зная ее назначение и выполняемые функции, может сформировать специалист в области программирования (программист). Подготовленное 4-е средство после сформирования устанавливается (инсталлируется) в вычислительную систему.
Затем вычислительная система начинает работу в обычном режиме. В ходе ее работы
- получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе,
- получают с помощью 2-го средства количество запущенных процессов в вычислительной системе,
- получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса.
Получение сведений осуществляется 4-м средством путем выполнения запросов ко всем остальным средствам. Все полученные сведения передаются в 4-е средство и образуют текущий список (таблицу).
После этого выполняют с помощью 4-го средства для каждого процесса из текущего списка следующие действия:
○ сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
○ сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
○ сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов.
В результате формируется отчет (например, в виде текстового файла), в котором будут содержаться сведения о скрытых приложениях и процессах в вычислительной системе. Этот отчет может предоставляться администратору вычислительной системы и/или пользователям по выбору.
Реализацию способа можно производить в ходе работы вычислительной системы однократно, в заданные моменты времени или, что более предпочтительно, периодически.
В общем случае, отчет может содержать перечень скрытых приложений и процессов. В этом случае администратор вычислительной системы и/или пользователь, имеющий достаточную квалификацию, будет осведомлен о наличии потенциально вредоносных программ в системе и может, при необходимости, предпринять меры по удалению (нейтрализации) этих приложений и процессов одним из известных методов. Если же отчет пустой, то работа вычислительной системы может продолжаться в обычном режиме.
Источники информации
1. Google Inc. Activity [Электронный ресурс] - Режим доступа к ресурсу: http://developer.android.com/reference/android/app/Activity.html (дата обращения: 27.04.2016).
2. Google Inc. PackageManager [Электронный ресурс] - Режим доступа к ресурсу: http://developer.android.com/reference/android/content/pm/PackageManager.html (дата обращения: 27.04.2016).
3. Devyn С. Johnson. Procfs and the Proc Directory [Электронный ресурс] - Режим доступа к ресурсу: http://www.linux.org/threads/procfs-and-the-proc-directory.4928 (дата обращения: 27.04.2016).
4. Ketan Parmar. In Depth: Android Package Manager and Package Installer. [Электронный ресурс] - Режим доступа к ресурсу: https://dzone.com/articles/depth-android-package-manager (дата обращения: 27.04.2016).
Claims (15)
- Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы, причем операционная система, помимо ядра, включает следующие программные средства:
- 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе,
- 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе,
- 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state,
- 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств;
- способ, заключающийся в том, что
- получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе;
- получают с помощью 2-го средства количество запущенных процессов в вычислительной системе;
- получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса;
- выполняют с помощью 4-го средства для каждого процесса, список которых получен с помощью 3-го средства, следующие действия:
- сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
- сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
- сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов;
- предоставляют отчет о наличии скрытых приложений и процессов;
- удаляют из вычислительной системы выявленные скрытые приложения.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016118865A RU2624554C1 (ru) | 2016-05-17 | 2016-05-17 | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016118865A RU2624554C1 (ru) | 2016-05-17 | 2016-05-17 | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2624554C1 true RU2624554C1 (ru) | 2017-07-04 |
Family
ID=59312484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016118865A RU2624554C1 (ru) | 2016-05-17 | 2016-05-17 | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2624554C1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2700185C1 (ru) * | 2018-07-27 | 2019-09-13 | Закрытое акционерное общество "Перспективный мониторинг" | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016339A1 (en) * | 2006-06-29 | 2008-01-17 | Jayant Shukla | Application Sandbox to Detect, Remove, and Prevent Malware |
RU98613U1 (ru) * | 2010-05-18 | 2010-10-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система обнаружения скрытых ресурсов в системе |
US8266698B1 (en) * | 2009-03-09 | 2012-09-11 | Symantec Corporation | Using machine infection characteristics for behavior-based detection of malware |
RU2462747C2 (ru) * | 2007-01-25 | 2012-09-27 | Майкрософт Корпорейшн | Защита ресурсов операционной системы |
RU2583714C2 (ru) * | 2013-12-27 | 2016-05-10 | Закрытое акционерное общество "Лаборатория Касперского" | Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы |
-
2016
- 2016-05-17 RU RU2016118865A patent/RU2624554C1/ru active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016339A1 (en) * | 2006-06-29 | 2008-01-17 | Jayant Shukla | Application Sandbox to Detect, Remove, and Prevent Malware |
RU2462747C2 (ru) * | 2007-01-25 | 2012-09-27 | Майкрософт Корпорейшн | Защита ресурсов операционной системы |
US8266698B1 (en) * | 2009-03-09 | 2012-09-11 | Symantec Corporation | Using machine infection characteristics for behavior-based detection of malware |
RU98613U1 (ru) * | 2010-05-18 | 2010-10-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система обнаружения скрытых ресурсов в системе |
RU2583714C2 (ru) * | 2013-12-27 | 2016-05-10 | Закрытое акционерное общество "Лаборатория Касперского" | Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2700185C1 (ru) * | 2018-07-27 | 2019-09-13 | Закрытое акционерное общество "Перспективный мониторинг" | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3039608B1 (en) | Hardware and software execution profiling | |
US10397261B2 (en) | Identifying device, identifying method and identifying program | |
US8484739B1 (en) | Techniques for securely performing reputation based analysis using virtualization | |
JP6644001B2 (ja) | ウイルス処理方法、装置、システム、機器及びコンピュータ記憶媒体 | |
US10235520B2 (en) | System and method for analyzing patch file | |
CN103559446B (zh) | 一种基于安卓系统的设备的动态病毒检测方法和装置 | |
JP6176622B2 (ja) | マルウェアの検出方法 | |
US20140053267A1 (en) | Method for identifying malicious executables | |
US20130239214A1 (en) | Method for detecting and removing malware | |
US20140259169A1 (en) | Virtual machines | |
Ferrand | How to detect the cuckoo sandbox and to strengthen it? | |
RU2014115456A (ru) | Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
CN1818876A (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
Hammad et al. | Determination and enforcement of least-privilege architecture in android | |
WO2012078349A1 (en) | Automatic correction of program logic | |
KR101503827B1 (ko) | 절대 경로 관리를 통한 악성 프로그램 검사 시스템 | |
WO2021194370A1 (ru) | Способ и система принятия решения о необходимости автоматизированного реагирования на инцидент | |
RU2624554C1 (ru) | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы | |
US20170171224A1 (en) | Method and System for Determining Initial Execution of an Attack | |
JP2005234661A (ja) | アクセスポリシ生成システム、アクセスポリシ生成方法およびアクセスポリシ生成用プログラム | |
CN117744082A (zh) | 操作系统中恶意软件的检测方法及装置、存储介质 | |
Daghmehchi Firoozjaei et al. | Parent process termination: an adversarial technique for persistent malware | |
RU2700185C1 (ru) | Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы | |
US9372992B1 (en) | Ensuring integrity of a software package installer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD4A | Correction of name of patent owner |