Якщо розробник, обираючи між зручністю та безпекою, вибирає зручність, він не отримає ані зручності, ані безпеки

Інженер з безпеки завантажив шкідливий скрипт у свій адмін-аккаунт 1280x1080 nice-security-engineering_exw.png
Інженер з безпеки завантажив шкідливий скрипт у свій адмін-аккаунт

Минуло лише пів року, але стрічка новин не переставала приносити нові кумедні вразливості.
Як завжди, я не акцентую увагу на системних вразливостях snapd / Rust Coreutils / Flatpak, ядрі (Copy Fail, Dirty Frag, Fragnesia, pidfd, PinTheft, GRO Frag) або AppArmor.


Якими б небезпечними вони не були - вони “умовно” пасивні, тобто за їх наявності потрібна низка факторів і активних дій зсередини чи ззовні для успішної експлуатації.

Мені набагато цікавіше стежити за поширеннями шкідливого коду в системах розповсюдження пакетів, бібліотеках та інших репозиторіях.

Тому що це стосується “активних” і безпосередніх атак, їм майже не потрібно поєднання певних факторів, після завантаження вони відразу ж вразять репозиторій розробника, далі зберуть його персональну / фінансову / авторизаційну інформацію, а після цього продовжать діяти по ланцюжку на всіх серверах, до яких у нього був доступ.

Meta-Wiki та Ололошка

Інженер з безпеки компанії Wikimedia Foundation випадково завантажив шкідливий скрипт у свій акаунт із глобальними адміністративними правами.

Компрометація Telnyx

756 тисяч завантажень на місяць.


Все як завжди:

  • *.env
  • ~/.aws/credentials
  • ~/.ssh/
  • ~/.gitconfig
  • ~/.kube/config
  • ~/.npmrc
  • ~/.docker/
  • ~/.pypirc
  • ENV:
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY
    • GOOGLE_APPLICATION_CREDENTIALS
    • NPM_TOKEN
    • TWINE_PASSWORD
  • Crypto Wallets

Компрометація LiteLLM через ланцюжок залежностей

95 млн завантажень на місяць.


Збір даних:

  • SSH keys
  • environment variables (API keys, secrets)
  • AWS/GCP/Azure/K8s credentials
  • Crypto Wallets
  • database passwords
  • SSL private keys
  • shell history
  • CI/CD configs

Компрометація elementary-data через GitHub Actions

Ураження каталогу PyPI, GitHub-репозиторія та офіційного Docker-образу.
1.1 млн завантажень на місяць.

GitHub Actions
GitHub Actions

Скрипт збирає:

  • Так все те ж саме 。^‿^。


Постійні питання

Після подібних новин у мене постійно виникають питання:

  • Що роблять ключі / токени поруч із проектом, що супроводжується?
    Хоча вести розробку за особливого бажання можна окремо від інших проектів
  • Навіщо тримати усі проекти під одним акаунтом?
  • Що під цими акаунтами взагалі роблять крипто-гаманці?

Мабуть, мені вистачить цієї та попередніх публікацій як аргументів у суперечці з колегами “Чому я так переускладнюю конфігурацію власної системи”.