Настройка CloudTrail необходима для понимания активности AWS API ваших пользователей: что произошло, кем и откуда. Одним из полей в журналах событий является IP-адрес источника. Но это не говорит вам о том, откуда в мире происходят эти действия с AWS API. В этом посте мы покажем, как использовать Steampipe с плагинами AWS и ipstack для обогащения событий CloudTrail информацией о местоположении.
Как и в предыдущих постах, мы будем использовать AWS CloudShell для быстрого запуска, который использует ваши учетные данные AWS. Запустите свой собственный CloudShell в учетной записи с информацией о CloudTrail и следуйте дальше!
Установка
Сначала установите Steampipe:
sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/turbot/steampipe/main/install.sh)"
Затем установите плагин AWS:
steampipe plugin install aws
А затем плагин ipstack:
steampipe plugin install ipstack
Найдите группу журнала CloudTrail CloudWatch
Действия, выполняемые пользователем, ролью или службой AWS, записываются как события в CloudTrail. Эти события могут быть отправлены в группу журналов CloudWatch, чтобы облегчить мониторинг. В Steampipe есть связанная таблица, которая считывает данные о событиях CloudTrail из группы журналов CloudWatch, настроенной на регистрацию событий в журнале.
Теперь, когда Steampipe и плагины установлены, вы можете запустить steampipe query
и написать SQL-запросы, которые ссылаются на таблицы, предоставленные плагинами AWS
и ipstack
. Для начала давайте запросим таблицу aws_cloudtrail_trail
, чтобы найти CloudTrail и связанную с ним группу журналов CloudWatch, которую мы будем использовать в этом примере:
$ steampipe query
Welcome to Steampipe v0.15.0
For more information, type .help
> select
name,
region,
log_group_arn,
latest_delivery_time
from
aws_cloudtrail_trail
+-----------------------+-----------+----------------------+----------------------------------------------------------+
| name | region | latest_delivery_time | log_group_arn |
+-----------------------+-----------+----------------------+----------------------------------------------------------+
| cloudtrail-for-devto | us-east-1 | 2022-07-06T20:38:09Z | arn:aws:logs:us-east-1:810361751552:cloudtrail-cwg-devto |
+-----------------------+-----------+----------------------+----------------------------------------------------------+
Список IP-адресов в журнале
Теперь давайте просмотрим IP-адреса источников в этом журнале:
select
source_ip_address
from
aws_cloudtrail_trail_event
where
log_group_name = 'cloudtrail-cwg-devto'
and source_ip_address ~ '^d+.d+' -- filter ipv4 addresses
+-------------------+
| source_ip_address |
+-------------------+
| 104.53.216.85 |
| 82.102.17.180 |
| 89.248.165.99 |
| 107.170.20.63 |
| 212.102.58.164 |
+-------------------+
Геолокация IP-адресов
Наконец, давайте соединим эти адреса с ipstack_ip
, чтобы узнать, откуда они исходят:
with addrs as (
select
a.source_ip_address::inet
from
aws_cloudtrail_trail_event a
where
a.log_group_name = 'cloudtrail-cwg-devto'
and a.source_ip_address ~ '^d+.d+' -- filter ipv4 addresses
)
select
a.source_ip_address as ip,
i.continent_name,
i.country_name,
i.region_name,
i.city
from
addrs a
join
ipstack_ip i
on
a.source_ip_address = i.ip
+-----------------+----------------+----------------+-------------------+------------+
| ip | continent_name | country_name | region_name | city |
+-----------------+----------------+----------------+-------------------+------------+
| 104.53.216.85 | North America | United States | California | Windsor |
| 82.102.17.180 | Europe | Spain | Madrid | Madrid |
| 89.248.165.99 | Europe | Netherlands | North Holland | Diemen |
| 107.170.20.63 | North America | United States | New York | Manhattan |
| 157.230.162.15 | North America | United States | California | Palo Alto |
| 212.102.58.164 | North America | United States | Illinois | Chicago |
+-----------------+----------------+----------------+-------------------+------------+
Другие способы обогащения IP-адресов в журналах
Плагин Net может обеспечить обратный поиск DNS, плагин AbuseIPDB ищет вредоносную активность, связанную с IP-адресами, а плагин Shodan сканирует уязвимости, которые можно использовать. Вы можете использовать ту же технику, которая показана здесь, с этими другими плагинами — отдельно или в комбинации — для дальнейшего обогащения IP-адресов, захваченных в ваших журналах AWS CloudTrail.