Как надо (и как не надо) сопровождать вашу систему, GIT и пакеты
good_admin_and_his_server_exw.jpg
Стандартная ситуация, у вас есть основной рабочий компьютер, на котором у вас три разных проекта.
Один проект на nodejs, второй продакшн на python, а третий ваш личный “pet project”, тоже на python.
А ещё у вас в этой же системе личная+рабочая почта, ну и, скажем, браузер и клиент-банк.
И это всё под вашим пользователем.
Ну не под рутом же! ¯\_(ツ)_/¯
Всё вполне обычно. У многих вполне технически грамотных разработчиков таких проектов могут быть десятки и десятки ключей для ssh или git серверов.
Пример с популярным фреймворком PyTorch
Вполне обыденно Вы пишете свой код, время от времени коммитите, и тут в ваш уютный pet-project с AI прилетает обновление torchtriton.
А после этого из вашей системы улетают следующие наборы данных, в соответствии с основной функцией бинарника, которая делает следующее:
- Сбор системной информации:
nameservers из /etc/resolv.confhostname из gethostname()текущий логин из getlogin()текущая рабочая директория из getcwd()переменные окружения
- Чтение следующих файлов:
/etc/hosts/etc/passwdПервые 1,000 файлов из $HOME/*$HOME/.gitconfig$HOME/.ssh/*
Обновление прилетело, конфедициальные данные - улетели.
Скомпрометировано не только всё под вашей учётной записью (и, возможно, системой), но и по цепочке всё, чем вы управляли, куда коммитили, куда подключались.