Установка Osquery в Ubuntu
Osquery пакеты недоступны в репозитории Ubuntu по умолчанию, поэтому перед его установкой мы должны добавить Osquery репозиторий apt, выполнив следующую команду в терминале.
[электронная почта защищена]: ~ $ echo "deb [arch = amd64] https: // pkg.osquery.io / deb deb main »|sudo tee / etc / apt / sources.список.d / osquery.список
Теперь мы импортируем ключ подписи, выполнив следующую команду в терминале.
[электронная почта защищена]: ~ $ sudo apt-key adv --keyserver keyserver.убунту.ком--возвратные ключи 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
После импорта ключа подписи обновите свою систему, выполнив следующую команду в терминале.
[электронная почта защищена]: ~ $ sudo apt-get updateТеперь установите Osquery выполнив следующую команду
[электронная почта защищена]: ~ $ sudo apt-get install osqueryПосле установки Osquery, Теперь нам нужно проверить, правильно ли он установлен, выполнив следующую команду
[электронная почта защищена]: ~ $ osqueryi --versionЕсли он дает следующий вывод, значит, он установлен правильно
Использование Osquery
Теперь, после установки, мы готовы к использованию Osquery. Выполните следующую команду, чтобы перейти в интерактивную подсказку оболочки
[электронная почта защищена]: ~ $ osqueryi
Получать помощь
Теперь мы можем запускать запросы на основе SQL для получения данных из операционной системы. Мы можем получить помощь по поводу Osquery выполнив следующую команду в интерактивной оболочке.
osquery> .помощь
Получение всех таблиц
Как упоминалось ранее, Osquery предоставляет данные из операционной системы в виде реляционной базы данных, поэтому все данные в ней хранятся в виде таблиц. Мы можем получить все таблицы, выполнив следующую команду в интерактивной оболочке
osquery> .столы
Как мы видим, выполнив приведенную выше команду, мы можем получить кучу таблиц. Теперь мы можем получать данные из этих таблиц, выполняя запросы на основе SQL.
Листинг информации обо всех пользователях
Мы можем увидеть всю информацию о пользователях, выполнив следующую команду в интерактивной оболочке
osquery> ВЫБРАТЬ * ИЗ пользователей;Приведенная выше команда отобразит gid, uid, описание и т. Д. всех пользователей
Мы также можем извлекать только релевантные данные о пользователях, например, мы хотим видеть только пользователей, а не другую информацию о пользователях. Выполните следующую команду в интерактивной оболочке, чтобы получить имена пользователей
osquery> ВЫБРАТЬ имя пользователя ИЗ пользователей;Приведенная выше команда покажет всех пользователей в вашей системе
Точно так же мы можем получить имена пользователей вместе с каталогом, в котором находится пользователь, выполнив следующую команду.
osquery> ВЫБРАТЬ имя пользователя, каталог ОТ пользователей;
Точно так же мы можем запросить столько полей, сколько захотим, выполнив аналогичные команды.
Также мы можем получить все данные о конкретных пользователях. Например, мы хотим получить всю информацию о корневом пользователе. Мы можем получить всю информацию о корневом пользователе, выполнив следующую команду.
osquery> ВЫБРАТЬ * ОТ пользователей ГДЕ username = "root";
Мы также можем получить конкретные данные из определенных полей (столбцов). Например, мы хотим получить идентификатор группы и имя пользователя root. Выполните следующую команду, чтобы получить эти данные.
osquery> SELECT username, gid FROM users WHERE username = "root"
Таким образом мы можем запросить все, что захотим, из таблицы.
Список всех процессов
Мы можем перечислить первые пять процессов, запущенных в ubuntu, выполнив следующую команду в интерактивной оболочке
osquery> SELECT * FROM процессов LIMIT 5;
Поскольку в системе работает много процессов, мы отобразили только пять процессов с помощью ключевого слова LIMIT.
Мы можем найти идентификатор процесса определенного процесса, например, мы хотим найти идентификатор процесса mongodb, поэтому мы запустим следующую команду в интерактивной оболочке
osquery> ВЫБРАТЬ pid FROM процессов WHERE name = "mongod";
Поиск версии Ubuntu
Мы можем найти версию нашей системы Ubuntu, выполнив следующую команду в интерактивной оболочке
osquery> SELECT * FROM os_version;Он покажет нам версию нашей операционной системы
Проверка сетевых интерфейсов и IP-адресов
Мы можем проверить IP-адрес, маску подсети сетевых интерфейсов, выполнив следующий запрос в интерактивной оболочке.
osquery> SELECT интерфейс, адрес, маска FROM interface_addressesГДЕ интерфейс НЕ НРАВИТСЯ "% lo%";
Проверка авторизованных пользователей
Мы также можем проверить пользователей, вошедших в систему в вашей системе, запросив данные из таблицы logged_in_users. Выполните следующую команду, чтобы найти пользователей, вошедших в систему.
osquery> SELECT user, host, time FROM logged_in_users WHERE tty NOT LIKE '-';
Проверка системной памяти
Мы также можем проверить общий объем памяти, свободную память, кешированную память и т. Д. запустив некоторую команду на основе SQL в интерактивной оболочке. Чтобы проверить общий объем памяти, выполните следующую команду. Это даст нам общий объем памяти системы в байтах.
osquery> ВЫБРАТЬ memory_total FROM memory_info;
Чтобы проверить свободную память вашей системы, выполните следующий запрос в интерактивной оболочке
osquery> ВЫБРАТЬ memory_free FROM memory_info;Когда мы запускаем указанную выше команду, она дает нам свободную память, доступную в нашей системе
Мы также можем проверить кешированную память системы с помощью таблицы memory_info, выполнив следующий запрос.
osquery> выберите кэширование из memory_info;
Список групп
Мы можем найти все группы в вашей системе, выполнив следующий запрос в интерактивной оболочке
osquery> ВЫБРАТЬ * ИЗ групп;
Отображение портов прослушивания
Мы можем отобразить все порты прослушивания нашей системы, выполнив следующую команду в интерактивной оболочке
osquery> ВЫБРАТЬ * ИЗ прослушивающих_портов;
Мы также можем проверить, прослушивает ли порт или нет, выполнив следующую команду в интерактивной оболочке
osquery> ВЫБРАТЬ порт, адрес FROM listen_ports WHERE port = 27017;Это даст нам результат, как показано на следующем рисунке
Заключение
Osquery очень полезная программная утилита для поиска любой информации о вашей системе. Если вы уже знакомы с запросами на основе SQL, то их очень легко использовать для вас, или если вы не знаете о запросах на основе SQL, то я изо всех сил старался показать вам некоторые основные запросы, которые полезны для поиска данных. Вы можете найти любые данные из любой таблицы, выполнив аналогичные запросы.