Ene qsi loki hal что это
Важно! Сканер LOKI может вызывать ложные срабатывания антивирусов. Это связано с тем, что сканер представляет собой скомпилированный скрипт Python, который реализует функции, которые используются в скомпилированном вредоносном коде.
О программе
LOKI – бесплатный и открытый IOC сканер для опытных пользователей и IT-специалистов, позволяющий выявить угрозы безопасности, активное заражение системы, а также компрометацию данныхЧто нового
Новое в версии 0.44.2 (29.09.2021):
Системные требования
Исполняемый файл для Windows скомпилирован с помощью PyInstaller 2.1 и должен запускаться как приложение x86 в системах на базе x86 и x64.
Полезные ссылки
Подробное описание
LOKI – бесплатный консольный сканер с открытым исходным кодом, позволяющий выявить заражение системы, подозрительные объекты и признаки компроментации или взлома компьютера и сети.
Сканер LOKI использует различные методы проверки и обнаружения вредоносных программ. Проверяются имена файлов и процессов, их полные пути и хэши, а затем сверяются по базам известных вредоносных файлов и по сигнатурам Yara.
Анализ системы с помощью сканера LOKI позволяет выявить наличие в системе программного обеспечения, которое может использоваться злоумышленниками для эксплуатации уязвимостей и кражи данных. Также, сканер выявляет бэкдоры в системе, файлы дампа хешей или паролей, наличие скрытых исполняемых файлов и многого других подозрительных объектов.
LOKI IOC Scanner в первую очередь предназначен для опытных пользователей и специалистов по компьютерной безопасности, которые регулярно проверяют компьютеры и сети на наличие угроз безопасности и уязвимостей.
Полученный отчет о сканировании покажет зелёные, жёлтые или красные строки результатов. Проанализировав результаты сканирования, можно вручную проверить подозрительные файлы на VirusTotal или найти информацию о них в интернете.
Возможности LOKI
- Поиск угроз по хэшам MD5 / SHA1 / SHA256.
- Проверка файлов и процессов по сигнатурам Yara.
- Анализ файловой системы на наличие программ для взлома и эксплуатации уязвимостей.
- Анализ файлов с регулярными выражениями в имени.
- Анализ поведения запущенных процессов.
- Анализ активных сетевых подключений.
- Анализ нестандартных сетевых портов.
- Анализ пользователей системы.
- Проверка целостности важных системных файлов.
- Текстовый файл журнала всех событий.
Оценка пользователей
Другие программы
Dr.Web CureIt!
Бесплатная утилита для анализа и лечения системы
HitmanPro
Поиск и удаление вирусов, шпионских программ и угроз нулевого дня
Рекомендуем
Собираем логи с Loki
Мы в Badoo постоянно мониторим свежие технологии и оцениваем, стоит ли использовать их в нашей системе. Одним из таких исследований и хотим поделиться с сообществом. Оно посвящено Loki — системе агрегирования логов.
Loki — это решение для хранения и просмотра логов, также этот стек предоставляет гибкую систему для их анализа и отправки данных в Prometheus. В мае вышло очередное обновление, которое активно продвигают создатели. Нас заинтересовало, что умеет Loki, какие возможности предоставляет и в какой степени может выступать в качестве альтернативы ELK — стека, который мы используем сейчас.
Что такое Loki
Grafana Loki — это набор компонентов для полноценной системы работы с логами. В отличие от других подобных систем Loki основан на идее индексировать только метаданные логов — labels (так же, как и в Prometheus), a сами логи сжимать рядом в отдельные чанки.
Прежде чем перейти к описанию того, что можно делать при помощи Loki, хочу пояснить, что подразумевается под «идеей индексировать только метаданные». Сравним подход Loki и подход к индексированию в традиционных решениях, таких как Elasticsearch, на примере строки из лога nginx:
Традиционные системы парсят строку целиком, включая поля с большим количеством уникальных значений user_id и item_id, и сохраняют всё в большие индексы. Преимуществом данного подхода является то, что можно выполнять сложные запросы быстро, так как почти все данные — в индексе. Но за это приходится платить тем, что индекс становится большим, что выливается в требования к памяти. В итоге полнотекстовый индекс логов сопоставим по размеру с самими логами. Для того чтобы по нему быстро искать, индекс должен быть загружен в память. И чем больше логов, тем быстрее индекс увеличивается и тем больше памяти он потребляет.
Подход Loki требует, чтобы из строки были извлечены только необходимые данные, количество значений которых невелико. Таким образом, мы получаем небольшой индекс и можем искать данные, фильтруя их по времени и по проиндексированным полям, а затем сканируя оставшееся регулярными выражениями или поиском подстроки. Процесс кажется не самым быстрым, но Loki разделяет запрос на несколько частей и выполняет их параллельно, обрабатывая большое количество данных за короткое время. Количество шардов и параллельных запросов в них конфигурируется; таким образом, количество данных, которое можно обработать за единицу времени, линейно зависит от количества предоставленных ресурсов.
Этот компромисс между большим быстрым индексом и маленьким индексом с параллельным полным перебором позволяет Loki контролировать стоимость системы. Её можно гибко настраивать и расширять в соответствии с потребностями.
Loki-стек состоит из трёх компонентов: Promtail, Loki, Grafana. Promtail собирает логи, обрабатывает их и отправляет в Loki. Loki их хранит. А Grafana умеет запрашивать данные из Loki и показывать их. Вообще Loki можно использовать не только для хранения логов и поиска по ним. Весь стек даёт большие возможности по обработке и анализу поступающих данных, используя Prometheus way.
Описание процесса установки можно найти здесь.
Поиск по логам
Искать по логам можно в специальном интерфейсе Grafana — Explorer. Для запросов используется язык LogQL, очень похожий на PromQL, использующийся в Prometheus. В принципе, его можно рассматривать как распределённый grep.
Интерфейс поиска выглядит так:
Сам запрос состоит из двух частей: selector и filter. Selector — это поиск по индексированным метаданным (лейблам), которые присвоены логам, а filter — поисковая строка или регэксп, с помощью которого отфильтровываются записи, определённые селектором. В приведенном примере: В фигурных скобках — селектор, все что после — фильтр.
Из-за принципа работы Loki нельзя делать запросы без селектора, но лейблы можно делать сколь угодно общими.
Селектор — это key-value значения в фигурных скобках. Можно комбинировать селекторы и задавать разные условия поиска, используя операторы =, != или регулярные выражения:
Фильтр — это текст или регэксп, который отфильтрует все данные, полученные селектором.
Есть возможность получения ad-hoc-графиков по полученным данным в режиме metrics. Например, можно узнать частоту появления в логах nginx записи, содержащей строку index:
Полное описание возможностей можно найти в документации LogQL.
Парсинг логов
Есть несколько способов собрать логи:
- С помощью Promtail, стандартного компонента стека для сбора логов.
- Напрямую с докер-контейнера при помощи Loki Docker Logging Driver.
- Использовать Fluentd или Fluent Bit, которые умеют отправлять данные в Loki. В отличие от Promtail они имеют готовые парсеры практически для любого вида лога и справляются в том числе с multiline-логами.
Обычно для парсинга используют Promtail. Он делает три вещи:
- Находит источники данных.
- Прикрепляет к ним лейблы.
- Отправляет данные в Loki.
В настоящий момент Promtail может читать логи с локальных файлов и с systemd journal. Он должен быть установлен на каждую машину, с которой собираются логи.
Есть интеграция с Kubernetes: Promtail автоматически через Kubernetes REST API узнаёт состояние кластера и собирает логи с ноды, сервиса или пода, сразу развешивая лейблы на основе метаданных из Kubernetes (имя пода, имя файла и т. д.).
Также можно развешивать лейблы на основе данных из лога при помощи Pipeline. Pipeline Promtail может состоять из четырёх типов стадий. Более подробно — в официальной документации, тут же отмечу некоторые нюансы.
Покажу на примере обработки обычных nginx-логов, как можно парсить логи при помощи Promtail.
Собирать логи будем с докер-контейнеров, которые можно найти по пути /var/lib/docker/containers/<container_id>/<container_id>-json.log
В docker-compose.yml настраиваем Promtail и указываем путь до конфига:
Добавляем в promtail.yml путь до логов (в конфиге есть опция "docker", которая делает то же самое одной строчкой, но это было бы не так наглядно):
При включении такой конфигурации в Loki будут попадать логи со всех контейнеров. Чтобы этого избежать, меняем настройки тестового nginx в docker-compose.yml — добавляем логирование поле tag:
Правим promtail.yml и настраиваем Pipeline. На вход попадают логи следующего вида:
Извлекаем из входящего JSON поля stream, attrs, attrs.tag (если они есть) и кладём их в extracted map.
Если удалось положить поле tag в extracted map, то при помощи регэкспа извлекаем имена образа и контейнера.
Назначаем лейблы. Если в extracted data будут обнаружены ключи image_name и container_name, то их значения будут присвоены соотвестующим лейблам.
Отбрасываем все логи, у которых не обнаружены установленные labels image_name и container_name.
Для всех логов, у которых image_name равен nginx.promtail.test, извлекаем из исходного лога поле log и кладём его в extracted map с ключом row.
Очищаем входную строку регулярными выражениями и вытаскиваем nginx virtual host и строку лога nginx.
Парсим nginx-лог регулярными выражениями.
Разбираем request_url. С помощью регэкспа определяем назначение запроса: к статике, к фоткам, к API и устанавливаем в extracted map соответствующий ключ.
При помощи условных операторов в Template проверяем установленные поля в extracted map и устанавливаем для поля request_type нужные значения: photo, static, API. Назначаем other, если не удалось. Теперь request_type содержит тип запроса.
Меняем output. Теперь в Loki уходит очищенный nginx-лог из extracted map.
После запуска приведённого конфига можно увидеть, что каждой записи присвоены метки на основе данных из лога.
Нужно иметь в виду, что извлечение меток с большим количеством значений (cardinality) может существенно замедлить работу Loki. То есть не стоит помещать в индекс, например, user_id. Подробнее об этом читайте в статье “How labels in Loki can make log queries faster and easier”. Но это не значит, что нельзя искать по user_id без индексов. Нужно использовать фильтры при поиске («грепать» по данным), а индекс здесь выступает как идентификатор потока.
Визуализация логов
Loki может выступать в роли источника данных для графиков Grafana, используя LogQL. Поддерживаются следующие функции:
- rate — количество записей в секунду;
- count over time — количество записей в заданном диапазоне.
Добавляем Loki как data source с типом Prometheus и дописываем URL /loki:
И можно делать графики, как в том случае, если бы мы работали с метриками из Prometheus:
Я думаю, что расхождение в функциональности временное и разработчики в будущем это поправят.
Метрики
Добавляем ещё одну секцию в promtail.yml:
Опция позволяет определять и обновлять метрики на основе данных из extracted map. Эти метрики не отправляются в Loki — они появляются в Promtail /metrics endpoint. Prometheus должен быть сконфигурирован таким образом, чтобы получить данные, полученные на этой стадии. В приведённом примере для request_type=“api” мы собираем метрику-гистограмму. С этим типом метрик удобно получать перцентили. Для статики и фото мы собираем сумму байтов и количество строк, в которых мы получили байты, чтобы вычислить среднее значение.
Более подробно о метриках читайте здесь.
Открываем порт на Promtail:
Убеждаемся, что метрики с префиксом promtail_custom появились:
Настраиваем Prometheus. Добавляем job promtail:
И рисуем график:
Таким образом можно узнать, например, четыре самых медленных запроса. Также на данные метрики можно настроить мониторинг.
Масштабирование
Loki может быть как в одиночном режиме (single binary mode), так и в шардируемом (horizontally-scalable mode). Во втором случае он может сохранять данные в облако, причём чанки и индекс хранятся отдельно. В версии 1.5 реализована возможность хранения в одном месте, но пока не рекомендуется использовать её в продакшене.
Чанки можно хранить в S3-совместимом хранилище, для хранения индексов — использовать горизонтально масштабируемые базы данных: Cassandra, BigTable или DynamoDB. Другие части Loki — Distributors (для записи) и Querier (для запросов) — stateless и также масштабируются горизонтально.
На конференции DevOpsDays Vancouver 2019 один из участников Callum Styan озвучил, что с Loki его проект имеет петабайты логов с индексом меньше 1% от общего размера: “How Loki Correlates Metrics and Logs — And Saves You Money”.
Сравнение Loki и ELK
Размер индекса
Для тестирования получаемого размера индекса я взял логи с контейнера nginx, для которого настраивался Pipeline, приведённый выше. Файл с логами содержал 406 624 строки суммарным объёмом 109 Мб. Генерировались логи в течение часа, примерно по 100 записей в секунду.
Пример двух строк из лога:
При индексации ELK это дало размер индекса 30,3 Мб:
В случае с Loki это дало примерно 128 Кб индекса и примерно 3,8 Мб данных в чанках. Стоит отметить, что лог был искусственно сгенерирован и не отличался большим разнообразием данных. Простой gzip на исходном докеровском JSON-логе с данными давал компрессию 95,4%, а с учётом того, что в сам Loki посылался только очищенный nginx-лог, то сжатие до 4 Мб объяснимо. Суммарное количество уникальных значений для лейблов Loki было 35, что объясняет небольшой размер индекса. Для ELK лог также очищался. Таким образом, Loki сжал исходные данные на 96%, а ELK — на 70%.
Потребление памяти
Если сравнивать весь стек Prometheus и ELK, то Loki «ест» в несколько раз меньше. Понятно, что сервис на Go потребляет меньше, чем сервис на Java, и сравнение размера JVM Heap Elasticsearch и выделенной памяти для Loki некорректно, но тем не менее стоит отметить, что Loki использует гораздо меньше памяти. Его преимущество по CPU не так очевидно, но также присутствует.
Скорость
Loki быстрее «пожирает» логи. Скорость зависит от многих факторов — что за логи, как изощрённо мы их парсим, сеть, диск и т. д. — но она однозначно выше, чем у ELK (в моём тесте — примерно в два раза). Объясняется это тем, что Loki кладёт гораздо меньше данных в индекс и, соответственно, меньше времени тратит на индексирование. Со скоростью поиска при этом ситуация обратная: Loki ощутимо притормаживает на данных размером более нескольких гигабайтов, у ELK же скорость поиска от размера данных не зависит.
Поиск по логам
Loki существенно уступает ELK по возможностям поиска по логам. Grep с регулярными выражениями — это сильная вещь, но он уступает взрослой базе данных. Отсутствие range-запросов, агрегация только по лейблам, невозможность искать без лейблов — всё это ограничивает нас в поисках интересующей информации в Loki. Это не подразумевает, что с помощью Loki ничего нельзя найти, но определяет флоу работы с логами, когда вы сначала находите проблему на графиках Prometheus, а потом по этим лейблам ищете, что случилось в логах.
Интерфейс
Во-первых, это красиво (извините, не мог удержаться). Grafana имеет приятный глазу интерфейс, но Kibana гораздо более функциональна.
Плюсы и минусы Loki
Из плюсов можно отметить, что Loki интегрируется с Prometheus, соответственно, метрики и алертинг мы получаем из коробки. Он удобен для сбора логов и их хранения с Kubernetes Pods, так как имеет унаследованный от Prometheus service discovery и автоматически навешивает лейблы.
Из минусов — слабая документация. Некоторые вещи, например особенности и возможности Promtail, я обнаружил только в процессе изучения кода, благо open-source. Ещё один минус — слабые возможности парсинга. Например, Loki не умеет парсить multiline-логи. Также к недостаткам можно отнести то, что Loki — относительно молодая технология (релиз 1.0 был в ноябре 2019 года).
Заключение
Loki — на 100% интересная технология, которая подходит для небольших и средних проектов, позволяя решать множество задач агрегирования логов, поиска по логам, мониторинга и анализа логов.
Мы не используем Loki в Badoo, так как имеем ELK-стек, который нас устраивает и который за много лет оброс различными кастомными решениями. Для нас камнем преткновения является поиск по логам. Имея почти 100 Гб логов в день, нам важно уметь находить всё и чуть-чуть больше и делать это быстро. Для построения графиков и мониторинга мы используем другие решения, которые заточены под наши нужды и интегрированы между собой. У стека Loki есть ощутимые плюсы, но он не даст нам больше, чем у нас есть, и его преимущества точно не перекроют стоимость миграции.
И хотя после исследования стало понятно, что мы Loki использовать не можем, надеемся, что данный пост поможет вам в выборе.
I was looking for something on my pc the other day and when i accessed: This Pc > Local Disk (C:) > Program Files. i noticed there is a file named 'ENE' which iv never seen before, its 3.86MB in size and was created on 24/8/19.
Inside it is 3 files with weird titles:
Aac_ENE RGB HAL
The first file (Aac_ENE RGB HAL) contains 2 more files inside:
The x64 then contains two items the type refers to them as Application extension
The x84 contains the same:
The Second File (Aac_ENE_EHD HAL) Contains just 4 Application extension only:
The Third File (Aac_ENE_EHD_M2_HAL) also contains just 4 Application extensions:
And thats it, i dont think i can open these Application extension things even if i was to click on them but they mean nothing to me, i tried deleting the file but it normally presents the popup that it cannot be deleted because it is in use.
I do look after my pc, i never do anything or download anything that might be dodgy i generally only play PC games and i have Malwarebytes installed as well as Avast ainti virus and neither have picked up on anything bad.
The last time these files where classed as 'modified' was 24/8/19, should i be worried about anything?
Что такое HAL и чем отличается от драйвера?
Если я правильно понял, то:
Драйвер предоставляет некий интерфейс для доступа к железу.
HAL предоставляет унифицированный интерфейс для доступа к железу.
В случае с драйвером может понадобиться еще и программа от производителя для работы.
В случае с HAL подойдет любая программа, так как команды у HAL одинаковы для данного типа устройств.
HAL промежуточный уровень между пользовательскими приложениями и драйверами устройств, предоставляемы ОС. Благодаря HAL приложениям не нужно, например, для чтения файла указывать номер блока /сектора/головки для чтения с диска, а достаточно указать имя файла.
HAL предоставляет стандартный интерфейс работы с оборудованием пользовательским приложениям, а так же интерфейсы для драйверов.
Т.е. доступ к оборудованию в современных ОС происходит по следующей схеме:
Пользовательское приложение <-> HAL <-> драйвер устройства <-> устройство
Обычно до HAL есть еще слой абстракции, а то и не один.
а есть ссылка, где можно где-то увидеть примеры исходников HAL?
HAL это часть ядра ОС, поэтому можете начать изучать исходники ядра линукс. Только вряд ли вы там найдете разделение, что вот это HAL, а вот это уже не HAL. Да и слова этого в исходниках то же нет, скорее всего.
Читайте также: