April 13, 2022

Анализируем pull requestы на github (История про Archway Torii gentx мультиаккинг)

Клонируем репозиторий себе

git clone https://github.com/archway-network/testnets

Переходим в папку репозитория чтобы начать работать с ним

cd testnets

Получаем все пулл реквесты

git fetch origin +refs/pull/*/head:refs/remotes/origin/pr/*

Выгружаем содержимое всех пулл реквестов в файл

git ls-remote origin 'pull/*/head'|awk '{print $1}'|xargs git show >pull_requests

Теперь все пулл реквесты сохранены в файле pull_requests, можно анализировать

Выдернем все ip адреса, которые содержатся в gentx и сохраним их в файл all_ip:

grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" pull_requests|sort > all_ip

Общее количество ip адресов (количество строк в файле)

wc -l all_ip

Выведем топ по количеству повторов (когда много разных gentx было создано на одном сервере)

uniq -c all_ip|grep -E "[0-9]{2,}\s"|sort -n

Количество адресов из диапазонов локальных сетей

grep -E '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.127\.)' all_ip| wc -l

Аккаунты github отправившие пуллреквесты (сохраним в файл github_users)

grep -E "Author:\s" pull_requests|sort> github_users

Топ аккаунов по количеству отправленных пулреквестов с одного акка

uniq -c github_users|grep -E "[0-9]{2,}\sA"|sort -n

Дата создания аккаунта (если ничего не покажет, значит аккаунт заблокирован)

curl -s https://api.github.com/users/<имя пользователя> |grep -E "created_at"

Предлагайте свои идеи и способы визуализации, дополню)