Sentry програма для захисту від брутфорсу

Codeby web-security - новий курс від Codeby Security School

Пропонуємо до вашої уваги новий курс від командиThe Codeby - "Тестування Веб-Додатків на проникнення з нуля".Загальна теорія, підготовка робочого оточення, пасивний фазинг та фінгерпринт, Активний фазинг, Вразливості, Пост-експлуатація, Інструментальні засоби, Social Engeneering та багато іншого.Детальніше .

sentry - ця абревіатура означає "safe and effective protection against bruteforce attacks", тобто безпечний та ефективний захист від брутфорсингу (ssh, FTP, SMTP та інші).

Опис sentry

Безпечна

Для запобігання випадковим блокуванням Sentry веде білий список IP, які з'єдналися більш ніж 3 рази і хоча б один раз успішно. Тепер більше ніколи ваш колега зі склерозом за офісним роутером NAT не буде заблокований з вашої системи. Та й вашого адміна, чий кривий скрипт невдало намагався залогуватися 12 разів на 2 секунди, більше не спіткає така доля.

Sentry включає підтримку додавання IP у фаєрвол. Включено підтримку для IPFW, PF, ipchains. Підтримка фаєрвола по дефолту відключена. Це тому, що правила фаєрволу можуть закрити існуючу сесію(и) для хоста (важливо для користувачів IPFW). Додайте IP в білий список (з'єднайтеся 3 або більше разів або використовуйте whitelist) перед включенням опції фаєрвола.

Sentry має дуже просту базу даних для відстеження IP. Завдяки цьому системному адміністратору дуже просто її переглядати і змінювати, у тому числі з використанням шелл команд і скриптів. Перегляньте розділ Приклади.

Sentry написано на perl, який встановлений скрізь, де є sshd. Немає жодних залежностей.Встановлення та розгортання максимально прості.

Sentry підтримує блокування спроб з'єднання з використанням різних TCP Wrapper та кількох популярних фаєрволів. Можна легко покращити sentry для підтримки додаткових списків блокування.

Sentry була написана для захисту демона SSH, але використовується з іншими демонами. Як це вже описувалося, головна платформа, що використовується для атаки, це мережа з ботів, що складається з персональних комп'ютерів з високошвидкісними Інтернет-з'єднаннями. Ці роботи використовуються для виконання SSH атак, а також для розсилки спаму. Блокування ботів запобігає безлічі векторів атак.

Стиль програмування в sentry робить простим вставку коду для додаткової функціональності.

Ефективна

Головна мета Sentry - це мінімізувати ресурси, які атакуючий може вкрасти, це досягається споживанням самої програми мінімальної кількості ресурсів. Більшість додатків для блокування брутфорсу (denyhosts, fail2ban, sshdfilter) потрібно запускати як демони, що стежать за хвостом файлу лога. Це вимагає від інтерпретатора мови завжди бути запущеним, споживаючи щонайменше 10MB RAM. Поодинока залізниця, на якій безліч віртуальних серверів, втратить сотні мегабайт для захисту демонами.

Sentry використовує ресурси тільки тоді, коли з'єднання зроблено.

Paranoid - курс від Codeby Security School

Представляємо вашій увазі курс від командиcodeby - "Комплекс заходів щодо захисту персональних даних, анонімності в інтернеті і не тільки" Детальніше .

При гіршому сценарії ресурси будуть витрачатися при першому підключенні IP, оскільки буде задіяний інтерпретатор perl. Для більшості з'єднань, Sentry буде додавати мітки до файлу, статтіна наявність іншого файлу та виходити.

Як тільки IP доданий в чорний список за порушення, будь-то з tcpd або фаєрволом, ресурси, що споживаються, зведуть практично до нуля.

Sentry не найефективніша програма для складання звітів. Концепція "один файл на IP" - чудовий мінімалістичний варіант для ведення логів, чорних списків, але практично будь-яка база даних покаже кращу продуктивність для складання звітів. Потрібно прочекати кілька секунд для виконання команди із ключем—report.

Установка Sentry

Запуск Sentry:

Запуск sentry вперше виконає:

  • створення бази даних sentry
  • встановлення perl скрипту
  • запросить вас відредагувати /etc/hosts.allow, вставивши туди два рядки, що його включать.

Оновлення Sentry

Простий спосіб

Складні спосіб

Завантажте, як написано вище.

Знайдемо всі існуючі відмінності в налаштуванні

Конспект з Sentry

Аргументи Sentry

blacklistdeny - відхилити всі майбутні з'єднання

whitelistwhitelist - прийняти всі майбутні з'єднання, видалити IP з чорних списків і додати імунітет від наступних тестів при підключенні.

delistremove — видалити IP із білих та чорних списків. Це корисно для тестування роботи sentry.

connectregister — з'єднання на один IP. Цей метод вестиме список спроб і їх час.

update — перевіряє наявність останньої версії sentry і оновлює, якщо доступні оновлення.

Як все відбувається?

Коли приходить підключення, метод підключення зробить запис у журналі про спробу та її час. Якщо IP в білому або чорному списках, то програманегайно завершить свою роботу.

Далі sentry перевірить, чи не траплявся на очі цей IP більше трьох разів. Якщо це так, то будуть перевірені логи для з'ясування успішності, провальності, "пустощів" (naughty) спроб з цього IP. Якщо є успішні спроби входу, IP додається до білого списку і програма завершується.

Якщо немає успішних спроб входу, і це «пустотливий» (naughty) IP, то він додається до чорного списку. Якщо немає успішних та «пустотливих» спроб, але виконано більше 10 спроб з'єднання, IP заноситься в чорний список.

Безпечна угода з гарантом Сodeby