AbuseIPDB - проверка репутации IP - 2026
AbuseIPDB — это централизованная база данных репутации IP-адресов, предназначенная для сбора, хранения и предоставления информации о вредоносной активности, связанной с IPv4 и IPv6 адресами. Сервис позволяет системным администраторам, вебмастерам и специалистам по информационной безопасности проверять IP-адреса на причастность к атакам, спаму, сканированию портов и другим видам злоупотреблений, а также самостоятельно отправлять репорты о замеченной активности. Проект основан на принципах краудсорсинга: сообщество собирает и верифицирует данные, формируя глобальную базу знаний об угрозах.
История и назначение
AbuseIPDB был создан как ответ на потребность в простом, открытом и доступном инструменте для проверки репутации IP-адресов в реальном времени. В отличие от коммерческих закрытых баз данных, AbuseIPDB предлагает бесплатный порог входа с возможностью масштабирования через платные подписки.
Основные цели сервиса:
- предоставление API для автоматизированной проверки IP-адресов;
- сбор репортов от участников сообщества о вредоносной активности;
- формирование confidence score — небинарной оценки вероятности злонамеренности адреса;
- интеграция с системами обнаружения вторжений, в первую очередь с Fail2Ban.
API v2
AbuseIPDB предоставляет REST API версии 2 (v2), которое является основным способом программного взаимодействия с базой данных. API поддерживает форматы JSON и plaintext, использует HTTP-методы GET, POST и DELETE.
Аутентификация
Для работы с API требуется ключ доступа (API key), который выдаётся после регистрации аккаунта на сайте. Ключ передаётся в HTTP-заголовке:
-H "Key: YOUR_OWN_API_KEY"
Также допускается передача ключа в query-параметре key, но использование заголовка является рекомендованным способом.
Эндпоинты
API v2 включает семь основных эндпоинтов:
CHECK — проверка IP-адреса
Эндпоинт GET /api/v2/check принимает один IP-адрес (IPv4 или IPv6) и возвращает полную информацию о его репутации.
curl -G https://api.abuseipdb.com/api/v2/check \ --data-urlencode "ipAddress=118.25.6.39" \ -d maxAgeInDays=90 \ -d verbose \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json"
Параметры запроса:
| Поле | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ipAddress | Да | — | IPv4 или IPv6 адрес для проверки |
| maxAgeInDays | Нет | 30 | Максимальный возраст репортов в днях (1–365) |
| verbose | Нет | false | При включении возвращает полные репорты с комментариями |
Пример ответа:
{
"data": {
"ipAddress": "118.25.6.39",
"isPublic": true,
"ipVersion": 4,
"isWhitelisted": false,
"abuseConfidenceScore": 100,
"countryCode": "CN",
"countryName": "China",
"usageType": "Data Center/Web Hosting/Transit",
"isp": "Tencent Cloud Computing (Beijing) Co. Ltd",
"domain": "tencent.com",
"hostnames": [],
"isTor": false,
"totalReports": 1,
"numDistinctUsers": 1,
"lastReportedAt": "2018-12-20T20:55:14+00:00",
"reports": [
{
"reportedAt": "2018-12-20T20:55:14+00:00",
"comment": "Invalid user oracle from 118.25.6.39",
"categories": [18, 22],
"reporterId": 1,
"reporterCountryCode": "US",
"reporterCountryName": "United States"
}
]
}
}
Поле abuseConfidenceScore (0–100) является ключевым показателем репутации: чем выше значение, тем с большей вероятностью IP-адрес используется для вредоносной активности. Поле isWhitelisted указывает на наличие адреса в белых списках AbuseIPDB, но разработчики рекомендуют полагаться именно на confidence score как на более тонкий инструмент.
Возможные значения поля usageType:
- Commercial
- Organization
- Government
- Military
- University/College/School
- Library
- Content Delivery Network
- Fixed Line ISP
- Mobile ISP
- Data Center/Web Hosting/Transit
- Search Engine Spider
- Reserved
REPORTS — репорты IP-адреса
Эндпоинт GET /api/v2/reports возвращает постраничный список репортов для указанного IP-адреса.
curl -G https://api.abuseipdb.com/api/v2/reports \ --data-urlencode "ipAddress=176.111.173.242" \ -d page=5 \ -d perPage=25 \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json"
Параметры запроса:
| Поле | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ipAddress | Да | — | IPv4 или IPv6 адрес |
| maxAgeInDays | Нет | 30 | Максимальный возраст репортов |
| page | Нет | 1 | Номер страницы |
| perPage | Нет | 25 | Количество записей на странице (макс. 200) |
Ответ включает поля: total (общее количество репортов), page, perPage, lastPage, nextPageUrl, previousPageUrl и массив results с деталями каждого репорта.
BLACKLIST — чёрный список
Эндпоинт GET /api/v2/blacklist позволяет скачать список IP-адресов, отфильтрованных по минимальному уровню уверенности в их вредоносности.
curl -G https://api.abuseipdb.com/api/v2/blacklist \ -d confidenceMinimum=90 \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json"
Поддерживается вывод в формате plaintext (параметр plaintext), фильтрация по стране (countryCode), по версии IP (ipVersion), а также ограничение количества записей (limit). Для платных подписок доступна настройка количества IP в выдаче до 100 000–500 000.
REPORT — отправка репорта
Эндпоинт POST /api/v2/report используется для отправки репорта о вредоносном IP-адресе.
curl https://api.abuseipdb.com/api/v2/report \ -H "Accept: application/json" \ -H "Key: YOUR_OWN_API_KEY" \ --data-urlencode "ip=118.25.6.39" \ --data-urlencode "comment=SSH brute-force attack detected" \ -d "categories=18,22"
Параметры:
| Поле | Обязательный | Описание |
|---|---|---|
| ip | Да | IPv4 или IPv6 адрес |
| categories | Да | Список ID категорий через запятую |
| comment | Нет | Комментарий с описанием активности |
Категории злоупотреблений (ID 1–23):
| ID | Название | Описание |
|---|---|---|
| 1 | DNS Compromise | Изменение DNS-записей с целью перенаправления трафика |
| 2 | DNS Poisoning | Фальсификация кэша DNS-сервера |
| 3 | Fraud Orders | Мошеннические заказы |
| 4 | DDoS Attack | Участие в распределённых атаках типа «отказ в обслуживании» |
| 5 | FTP Brute-Force | Подбор паролей FTP |
| 6 | Ping of Death | Чрезмерно большой IP-пакет |
| 7 | Phishing | Фишинговые сайты и/или email |
| 8 | Fraud VoIP | Мошенничество через IP-телефонию |
| 9 | Open Proxy | Открытый прокси-сервер, релей или выходной узел Tor |
| 10 | Web Spam | Спам в веб-форумах/комментариях |
| 11 | Email Spam | Спам по электронной почте |
| 12 | Blog Spam | Спам в блогах |
| 13 | VPN IP | IP-адрес VPN-сервера |
| 14 | Port Scan | Сканирование портов |
| 15 | Hacking | Попытка взлома |
| 16 | SQL Injection | SQL-инъекции |
| 17 | Spoofing | Подмена отправителя (спуфинг) |
| 18 | Brute-Force | Атаки подбора паролей (SSH, FTP, SIP, SMTP, RDP и веб-логины) |
| 19 | Bad Web Bot | Вредоносные веб-боты |
| 20 | Exploited Host | Скомпрометированный хост |
| 21 | Web App Attack | Атаки на веб-приложения |
| 22 | SSH Abuse | Злоупотребление SSH |
| 23 | IoT Targeted | Атаки, нацеленные на IoT-устройства |
CHECK-BLOCK — проверка подсети
Эндпоинт GET /api/v2/check-block принимает подсеть в нотации CIDR и возвращает агрегированные данные по всем IP в указанном диапазоне.
curl -G https://api.abuseipdb.com/api/v2/check-block \ --data-urlencode "network=127.0.0.1/24" \ -d maxAgeInDays=15 \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json"
Максимальный размер сети зависит от тарифного плана:
| Параметр | Free | Basic | Premium |
|---|---|---|---|
| network | до /2 | до /20 | до /16 |
| maxAgeInDays | до 30 | до 60 | до 365 |
BULK-REPORT — массовая отправка репортов
Эндпоинт POST /api/v2/bulk-report позволяет загрузить CSV-файл с множеством IP-адресов для одновременной отправки репортов.
curl https://api.abuseipdb.com/api/v2/bulk-report \ -F csv=@report.csv \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json" \ > output.json
Формат CSV: каждая строка содержит IP, категории и опциональный комментарий.
CLEAR-ADDRESS — удаление своих репортов
Эндпоинт DELETE /api/v2/clear-address позволяет удалить все собственные репорты для указанного IP-адреса.
curl -X DELETE https://api.abuseipdb.com/api/v2/clear-address \ --data-urlencode "ipAddress=118.25.6.39" \ -H "Key: YOUR_OWN_API_KEY" \ -H "Accept: application/json"
Ответ возвращает количество удалённых репортов.
Лимиты и тарифные планы
API имеет дневные лимиты на количество запросов к каждому эндпоинту. Лимиты различаются в зависимости от типа аккаунта.
| Эндпоинт | Free | Webmaster | Supporter | Basic ($25/мес) | Premium ($99/мес) |
|---|---|---|---|---|---|
| check | 1 000 | 3 000 | 5 000 | 10 000 | 50 000 |
| reports | 100 | 500 | 1 000 | 5 000 | 25 000 |
| blacklist | 5 | 10 | 20 | 100 | 500 |
| report | 1 000 | 3 000 | 1 000 | 10 000 | 50 000 |
| check-block | 100 | 250 | 500 | 1 000 | 5 000 |
| bulk-report | 5 | 10 | 20 | 100 | 500 |
| clear-address | 5 | 10 | 20 | 100 | 500 |
При превышении дневного лимита API возвращает HTTP-статус 429 Too Many Requests. Бесплатный аккаунт даёт 1 000 проверок и репортов в день навсегда. Все платные планы включают 30-дневный бесплатный пробный период.
Обработка ошибок
API возвращает стандартные HTTP-статусы:
- 200 — успешный запрос;
- 401 — неавторизованный доступ (неверный или отсутствующий API-ключ);
- 402 — превышение лимита параметров (например, слишком большая подсеть для CHECK-BLOCK);
- 422 — необрабатываемый запрос (неверные параметры);
- 429 — превышение дневного лимита запросов.
Ответ с ошибкой имеет структуру:
{
"errors": [
{
"detail": "Описание ошибки",
"status": 422
}
]
}
Интеграция с Fail2Ban
AbuseIPDB имеет встроенную интеграцию с Fail2Ban — популярной системой обнаружения и блокировки атак. В дистрибутив Fail2Ban включён файл конфигурации abuseipdb.conf, который позволяет автоматически отправлять репорты в AbuseIPDB при срабатывании ban-действия.
Пример конфигурации actionban для Fail2Ban:
actionban = curl --fail 'https://api.abuseipdb.com/api/v2/report' \
-H 'Accept: application/json' \
-H 'Key: YOUR_ABUSEIPDB_API_KEY' \
--data-urlencode 'comment=<matches>' \
--data-urlencode 'ip=<ip>' \
--data 'categories=18,22'
При миграции с API v1 на v2 необходимо учесть:
- параметр category переименован в categories;
- API-ключ рекомендуется передавать через HTTP-заголовок;
- IPv6-адреса необходимо URL-кодировать из-за наличия двоеточий;
- в запросе должен присутствовать заголовок Accept: application/json.
Безопасность и CORS
API поддерживает Cross-Origin Resource Sharing (CORS), что позволяет выполнять запросы напрямую из браузера при разработке клиентских приложений. При передаче API-ключа через заголовки запроса обеспечивается его защита от перехвата в публичных сетях.
Резюме
AbuseIPDB представляет собой зрелый и функциональный сервис для проверки репутации IP-адресов, построенный на краудсорсинговой модели сбора данных. API v2 покрывает все основные сценарии: проверку одиночных адресов и подсетей, получение списка репортов, загрузку чёрных списков, отправку репортов (в том числе массовую) и управление собственными данными. Наличие бесплатного тарифа, интеграция с Fail2Ban и гибкая система категорий делают AbuseIPDB одним из наиболее доступных и практичных инструментов для повседневной работы специалиста по информационной безопасности.
