RU2624554C1 - Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы - Google Patents

Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы Download PDF

Info

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
Application number
RU2016118865A
Other languages
English (en)
Inventor
Евгений Владимирович Андрюхин
Original Assignee
Закрытое акционерное общество "Перспективный мониторинг"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Перспективный мониторинг" filed Critical Закрытое акционерное общество "Перспективный мониторинг"
Priority to RU2016118865A priority Critical patent/RU2624554C1/ru
Application granted granted Critical
Publication of RU2624554C1 publication Critical patent/RU2624554C1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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

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)

  1. Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы, причем операционная система, помимо ядра, включает следующие программные средства:
  2. 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе,
  3. 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе,
  4. 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state,
  5. 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств;
  6. способ, заключающийся в том, что
  7. получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе;
  8. получают с помощью 2-го средства количество запущенных процессов в вычислительной системе;
  9. получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса;
  10. выполняют с помощью 4-го средства для каждого процесса, список которых получен с помощью 3-го средства, следующие действия:
  11. сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
  12. сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов;
  13. сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов;
  14. предоставляют отчет о наличии скрытых приложений и процессов;
  15. удаляют из вычислительной системы выявленные скрытые приложения.
RU2016118865A 2016-05-17 2016-05-17 Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы RU2624554C1 (ru)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2700185C1 (ru) * 2018-07-27 2019-09-13 Закрытое акционерное общество "Перспективный мониторинг" Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы

Citations (5)

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

Patent Citations (5)

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

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