opensnitch: изменение правила «process.path» для соответствия аргументам команды

#security #configuration #firewall

#Безопасность #конфигурация #брандмауэр

Вопрос:

Вступление Opensnitch

opensnitch — это инструмент безопасности с открытым исходным кодом, созданный по образцу приложения MAC OS-X. littlesnitch

Я использую на своем рабочем столе форк opensnitch Густаво Инигуэса Гойи (что является большим улучшением по сравнению с оригинальной замечательной новаторской работой Симоны Маргарителли), чтобы ограничить исходящие соединения на основе правил. Цель состоит в том, чтобы усилить безопасность исходящей сети, например, для обнаружения вредоносных программ или ограничения некоторых приложений «домашний телефон» от общения с внешним миром.

Конфигурация / правила

Правила по умолчанию, которые управляют opensnitch, создаются в соответствии /etc/opensnitchd/rules с хранятся в виде *.json файлов, по одному файлу на правило. Когда я использую пользовательский интерфейс для добавления правила, создается новый *.json файл правила.

Пример правила (урезано для краткости):

 {
  "name": "allow-always-simple-usrbinpython",
  "enabled": true,
  "action": "allow",
  "duration": "always",
  "operator": {
    "type": "simple",
    "operand": "process.path",
    "data": "/usr/bin/python",
  }
}
 

Проблема

Эти правила могут быть слишком грубыми при их настройке из пользовательского интерфейса. например, когда я разрешаю определенному сценарию, который я написал, общаться с внешним миром, и этот исполняемый файл просто записывается при python выборе executableопции и щелчкеAllow, я непреднамеренно разрешаю любому python сценарию общаться с внешним миром.

Поискав в Интернете, я смог найти хороший обзор opensnich, в котором отсутствует подробная информация о том, как указывать конъюнктивные правила непосредственно в *.json командной строке и сопоставлять их с полной командной строкой, с примерами.

Вопросы:

  • Возможно ли ограничить такое правило и разрешить запуск только определенного исполняемого скрипта (1-й аргумент /usr/bin/python )?
  • В более общем плане: каков будет синтаксис, с примером, для AND соединения в правиле и предложения для регулярного выражения -сопоставление с другими аргументами командной строки или удаленными IP-адресами или обоими?

Ответ №1:

Возможно ли ограничить такое правило и разрешить запуск только определенного исполняемого скрипта (1-й аргумент в /usr/ bin / python)?

Вы можете выбрать опцию «из этой командной строки» для фильтрации по всей команде.

введите описание изображения здесь

В более общем плане: каким будет синтаксис, с примером, для соединения AND в правиле и предложения для сопоставления регулярных выражений с другими аргументами командной строки или удаленными IP-адресами или обоими?

взгляните на документацию (возможно, вы уже это сделали… но на всякий случай):

https://github.com/gustavo-iniguez-goya/opensnitch/wiki/Rules
https://github.com/gustavo-iniguez-goya/opensnitch/wiki/Rules-editor

Например, если вы хотите выполнить фильтрацию по определенному скрипту (python):

[x] Из этой командной строки: « .*/usr/bin/dnsping.* »

введите описание изображения здесь

(Кстати, мы наконец-то вносим свой вклад в исходное репозиторий, поэтому вы можете использовать последние версии оттуда)

Комментарии:

1. Спасибо, Густаво. Также для всей вашей работы над opensnitch . С тех пор я узнал, что могу редактировать правила непосредственно из пользовательского интерфейса ( opensnitch-ui ), щелкнув rules , затем дважды щелкнув по имени правила, а затем щелкнув по маленькому белому квадратному значку (редактировать) рядом с < обратным значком. Эта многоступенчатая последовательность была для меня неочевидной. Возможно, более интуитивное поведение: двойной щелчок в любом месте строки правила ведет непосредственно к экрану редактирования для этого правила, а на экране редактирования также есть кнопка удаления правила (может быть, в этом смысл [<x reset] ? не очевидно).

2. Я согласен с arielf, мы обсуждали несколько недель назад именно для изменения этого поведения 🙂 Мы скоро это изменим.