Откуда берутся эти IP-адреса CloudTrail?

Настройка 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.

Оцените статью
devanswers.ru
Добавить комментарий