Обзор — что делает эта возможность
Проверка репутации IP — это общая возможность: щёлкните по подозрительному IP-адресу источника (src_ip) в любом месте раздела «Безопасность», и сервер от вашего имени запросит данные об угрозах в AbuseIPDB, показав результат во встроенном окне. Вам не нужно покидать консоль — вы оцениваете, «насколько печально известен этот IP», прямо там, где ведёте разбор.
Ключевые особенности:
- Только проверка (чтение). Эта возможность обращается исключительно к
/api/v2/checkв AbuseIPDB. Она не отправляет жалобу и не публикует IP вовне — исходящие жалобы (международное взаимодействие) относятся к отдельной, отложенной фазе реагирования. - Шкала уверенности в злоупотреблении 0–100, а также число жалоб, количество разных заявителей, тип использования, провайдер, страна, домен, признаки Tor/белого списка и история последних жалоб — всё в нормализованном виде.
- Круговой перебор нескольких ключей. Пул ключей AbuseIPDB, зарегистрированный в разделе API репутации, расходуется по порядку; при 429 (квота исчерпана) или 401/403 (проблема с ключом) служба автоматически переключается на следующий ключ (объединение квот).
- Часовой кэш для каждого IP. Чтобы уберечь квоту бесплатного тарифа в 1000 запросов в сутки, повторные проверки одного и того же IP в пределах часа возвращают результат из кэша.
- Общий миксин. Угрозы, Обнаружения, Обзор безопасности и Блок-лист — все они переиспользуют один и тот же компонент окна.
Живая кнопка этой статьи открывает раздел «Безопасность» (
/security). Проверка репутации — не отдельная страница, а общее всплывающее окно, которое появляется, когда вы щёлкаете по значку щита с лупой (.infr-ipsym) рядом с IP или по кнопке [Проверить репутацию] на любом экране безопасности.
Когда применять
- При разборе наиболее опасных IP-адресов атакующих в разделе Угрозы — действительно ли адрес вредоносный или это известный сканер либо ботнет?
- Чтобы обосновать, представляет ли реальную угрозу нарушитель по JA3 или аномальный IP по Kitsune в разделе Обнаружения.
- Чтобы сверить внешнюю репутацию цели, прежде чем блокировать или разблокировать её в разделе Блок-лист и репутация.
- Чтобы быстро просмотреть репутацию IP из панелей ведущих угрожающих IP и нарушителей JA3 в разделе Обзор безопасности.
Устройство экрана
Окно (security/partials/abuse-modal.blade.php) отображается в одном из трёх состояний в зависимости от результата проверки.
Успех — карточка репутации
| Область | Содержимое |
|---|---|
| Шкала уверенности | Коническое кольцо 0–100 с score% по центру. Цвет тона меняется вместе с оценкой (см. таблицу вердиктов). |
| Метка вердикта | No reports (Жалоб нет) / Low risk (Низкий риск) / Elevated (Повышенный риск) / High risk (Высокий риск) |
| Признаки | Значки Tor node (is_tor) · Whitelisted (is_whitelisted) |
| Две крупные цифры | Всего жалоб · количество разных заявителей |
| Метаданные | Страна · тип использования · провайдер · домен · время последней жалобы |
| Недавние жалобы | До 6 — чипы категорий + страна заявителя + время + комментарий (не более 200 символов) |
| Отметка о проверке | Время, когда сервер выполнил запрос (checked_at) |
Оценка уверенности → тон вердикта
| Оценка | Вердикт | Тон | Значение |
|---|---|---|---|
| 0 | Жалоб нет (clean) | good | За этот период жалоб на злоупотребления нет |
| 1–24 | Низкий риск (low) | info | Единичные жалобы — справочно |
| 25–74 | Повышенный риск (elevated) | warn | Заметная история злоупотреблений |
| 75–100 | Высокий риск (high) | crit | Явный вредоносный сигнал |
Состояния «не настроено» и ошибки
- Ключ не настроен: значок предупреждения о ключе и пояснение. Воспользуйтесь кнопкой [Открыть AbuseIPDB] внизу, чтобы посмотреть напрямую на внешнем сайте.
- Проверка не удалась: исчерпана квота, сетевая ошибка и т. п. Повторите чуть позже или воспользуйтесь внешней ссылкой.
Кнопки действий внизу окна
| Кнопка | Действие |
|---|---|
| Копировать IP | Копирует IP в буфер обмена (в небезопасном контексте — запасной путь через execCommand) |
| Поиск по IP | Переход к разделу IP-соединения (/infra/traffic/ips?src_ip=…) |
| Открыть AbuseIPDB | Открывает внешний адрес abuseipdb.com/check/{ip} в новой вкладке |
| Добавить в блок-лист | Прямая ссылка с предзаполнением раздела Блок-лист (/security/blocklist?add={ip}) |
Как пользоваться
- На экране безопасности («Угрозы», «Обнаружения», «Обзор», «Блок-лист») щёлкните по значку щита с лупой или по кнопке [Проверить репутацию] рядом с IP.
- Окно открывается с индикатором загрузки, и фронтенд запрашивает проверку у сервера:
GET /security/ip-reputation?ip=203.0.113.10
- Сервер строго проверяет IP (
filter_var FILTER_VALIDATE_IP), затем выполняет запрос через AbuseIpdbService и возвращает нормализованный JSON. - Изучите шкалу, цифры и недавние жалобы. При необходимости воспользуйтесь кнопками внизу, чтобы скопировать, проследить или заблокировать адрес.
Схема ответа (нормализованная)
При успешном запросе сервер возвращает JSON, который использует окно:
{
"ok": true,
"configured": true,
"ip": "203.0.113.10",
"score": 84,
"reports": 128,
"distinct_users": 41,
"country": "CN",
"usage": "Data Center/Web Hosting/Transit",
"isp": "Example Hosting Ltd",
"domain": "example-host.net",
"is_tor": false,
"is_whitelisted": false,
"last_reported": "2026-08-12T22:14:07+00:00",
"recent": [
{ "at": "2026-08-12T22:14:07+00:00", "country": "US", "categories": [18, 22], "comment": "SSH brute-force" }
],
"checked_at": "2026-08-13 09:31:20",
"external_url": "https://www.abuseipdb.com/check/203.0.113.10"
}
При корректно обработанной ошибке:
{ "ok": false, "configured": false, "external_url": "https://www.abuseipdb.com/check/203.0.113.10" }
| Поле | Источник (AbuseIPDB) | Значение |
|---|---|---|
score |
abuseConfidenceScore | Уверенность в злоупотреблении 0–100 |
reports |
totalReports | Всего жалоб |
distinct_users |
numDistinctUsers | Количество разных заявителей |
country |
countryCode | Код страны |
usage |
usageType | Назначение (центр обработки данных / провайдер / …) |
isp / domain |
isp / domain | Провайдер · домен |
is_tor |
isTor | Признак выходного узла Tor |
is_whitelisted |
isWhitelisted | Белый список AbuseIPDB |
last_reported |
lastReportedAt | Время последней жалобы |
recent[] |
reports[] | Недавние жалобы (не более 6, комментарий обрезается до 200 символов) |
Категории жалоб (1–23)
recent[].categories — это массив числовых идентификаторов. Окно выводит подписи через языковую таблицу security.abuse.cat.
| ID | Подпись | ID | Подпись | ID | Подпись |
|---|---|---|---|---|---|
| 1 | Компрометация DNS | 9 | Открытый прокси | 17 | Подмена адреса |
| 2 | Отравление DNS | 10 | Веб-спам | 18 | Перебор паролей |
| 3 | Мошеннические заказы | 11 | Почтовый спам | 19 | Вредоносный веб-бот |
| 4 | DDoS-атака | 12 | Спам в блогах | 20 | Скомпрометированный хост |
| 5 | Перебор паролей FTP | 13 | IP-адрес VPN | 21 | Атака на веб-приложение |
| 6 | Ping of Death | 14 | Сканирование портов | 22 | SSH |
| 7 | Фишинг | 15 | Взлом | 23 | Атака на IoT |
| 8 | Мошенничество с VoIP | 16 | SQL-инъекция |
Источники данных
Эта возможность не создаёт новых таблиц. Она работает исключительно за счёт вызова внешнего API + реестра ключей + кэша.
| Компонент | Описание |
|---|---|
| API AbuseIPDB | https://api.abuseipdb.com/api/v2/check (verbose=1, maxAgeInDays=значение провайдера·по умолчанию 90). Тайм-аут 8 секунд. |
AbuseIpdbService |
Выполняет запрос, нормализует, кэширует и расходует ключи по кругу. check($ip) (с кэшем) · checkWithKey() (административная проверка одного ключа, без кэша). |
ReputationProviderService |
Единый источник истины для пула ключей. Отдаёт активные строки infr_reputation_provider, упорядоченные по priority·id, с кэшем на 30 с, предоставляет rotated() для кругового перебора и откатывается к .env ABUSEIPDB_KEY, если не зарегистрировано ни одного ключа. |
infr_reputation_provider |
Таблица реестра нескольких ключей AbuseIPDB (миграция 000733). Ключи хранятся как secret_enc (Crypt, только на запись) — в браузер они никогда не возвращаются. Управление ведётся в разделе API репутации. |
| Кэш | Ключ Cache — infr:sec:abuse:{ip}, TTL 3600 с (1 час). Счётчик кругового перебора — infr:reputation:rr. |
config/services.php |
abuseipdb.key (=.env ABUSEIPDB_KEY) · abuseipdb.max_age_days (по умолчанию 90). Используется только как запасной вариант, когда нет ни одного зарегистрированного ключа. |
Схема ротации ключей и переключения при сбое
check(ip)
├ cache hit? → return
└ miss → iterate providers.rotated()
key#1 → 200? → normalize·cache·return
→ 429/401/403 → fail over to next key (secret never printed)
key#2 → …
all fail → { ok:false, error:"http_429"|"unreachable" }
Зарегистрируйте несколько ключей бесплатного тарифа — их квоты объединятся. Когда один ключ исчерпает суточную квоту и вернёт 429, служба автоматически перейдёт к следующему; командам с высокой нагрузкой по расследованиям стоит зарегистрировать 2–3 ключа в разделе API репутации.
Права доступа
- Конечная точка проверки
GET /security/ip-reputation: поскольку это чистый запрос на чтение, здесь нет ни повторного подтверждения с повышением прав, ни записи в журнал аудита. Она находится за разделом меню «Безопасность» (min_req 2), поэтому фактически доступна сотрудникам безопасности (staff=5) и выше. Наружу ничего не публикуется, так что это не разрушительное действие. - Некорректный IP: при неуспешной проверке
filter_varвозвращается HTTP 422{"ok":false,"message":"invalid_ip"}. - Управление ключами API репутации: создание, чтение, изменение и удаление, живой тест и перетаскивание приоритета для
infr_reputation_providerдоступны только администратору (admin=10, level≥5) и записываются в аудит. Ключи хранятся в зашифрованном виде, и при редактировании их можно только заменить или очистить. - Секреты не утекают: ключи API никогда не попадают в ответы или тела ошибок (ошибки фиксируются лишь в виде строки
http_STATUS).
Устранение неполадок и часто задаваемые вопросы
В окне написано, что ключ API не настроен
В infr_reputation_provider не зарегистрировано ни одного ключа, а .env ABUSEIPDB_KEY пуст. Добавьте ключ AbuseIPDB в разделе API репутации или задайте ABUSEIPDB_KEY=YOUR_KEY в .env. Пока этого не сделано, пользуйтесь кнопкой [Открыть AbuseIPDB], чтобы посмотреть на внешнем сайте.
Постоянно появляется сообщение о неудачной проверке
- 429 (квота исчерпана): возможно, вы израсходовали 1000 запросов в сутки на бесплатном тарифе. Зарегистрируйте дополнительные ключи, чтобы объединить квоты, или повторите попытку на следующий день.
- 401/403 (проблема с ключом): ключ просрочен, введён с ошибкой или отключён. Проверьте его с помощью [Живой тест] в разделе API репутации.
- Сеть (unreachable): убедитесь, что исходящие соединения к
api.abuseipdb.com(443) с хоста консоли не заблокированы.
Только что заблокированный IP по-прежнему показывает низкую оценку
Результаты кэшируются для каждого IP на 1 час (infr:sec:abuse:{ip}). Если нужно свежее значение, повторите запрос не более чем через час. Кэш существует именно для того, чтобы беречь вашу бесплатную квоту.
Можно ли отсюда пожаловаться на IP в AbuseIPDB?
Нет. Эта возможность работает только на чтение. Отправка жалоб (международное взаимодействие) относится к отдельной, отложенной фазе реагирования — здесь наружу ничего не публикуется.
Я вижу только 6 недавних жалоб
На этапе нормализации сохраняются лишь 6 последних (MAX_REPORTS=6). Полную историю смотрите на внешнем сайте по кнопке [Открыть AbuseIPDB].
Это IP из белого списка или внутренней сети, но кнопка проверки скрыта
На экранах безопасности IP-адреса зарегистрированных экземпляров (вашей собственной сети) помечаются значком Internal, а кнопка репутации скрывается (SecurityScope) — так удаётся избежать путаницы, когда метки направления от Suricata указывают наш собственный сервер как «источник». Определения внутренних сетей задаются в разделе Операционная политика.
Связанные материалы
- Управление API репутации — реестр нескольких ключей AbuseIPDB, круговой перебор, живой тест
- Угрозы — проверка репутации IP во время разбора сущностей угроз IDS
- Обнаружения · JA3 — проверка репутации нарушителей JA3 и аномальных IP
- Блок-лист и репутация — блок-лист + сверка репутации + прямая ссылка на блокировку
- Обзор безопасности — воронка защиты и ведущие угрожающие IP
- Белый список — освобождение от блокировки и автоматическое внесение в белый список по невиновности srct
