В 1996 году шведский программист Даниэль Стенберг опубликовал первую версию консольной программы для работы с удалёнными ресурсами (URL). Точнее, технически это была не первая версия, но первая под новым названием — cURL.
Тогда, наверное, мало кто мог подумать, что обращаться по URL-адресам, отправлять запросы и скачивать файлы станет настолько востребованным. Сегодня cURL (если точнее, то libcurl) присутствует фактически на любом устройстве, подключённом к интернету, а неделю назад Стенберг отпраздновал 25-летие своего проекта.
На Хабре очень интересный перевод авторского пересказа событий за все эти годы. Даниэлю было 27 лет, когда он написал простенькую консольную утилиту, которой пользовался едва ли десяток людей. А сейчас ему 52, в программе уже 155 тысяч строк кода, а пользуются ей миллиарды (хоть даже и не знают об этом). За это время он женился, сменил кучу работ, завёл двоих детей, заслужил титул второго лучшего разработчика Швеции и даже косвенно поучаствовал в посадке зонда на Марс (о чём в его профиле на Гитхабе есть специальная плашка). Стенберг даже получал угрозы убийством из-за того, что его софт применялся хакерами в атаках и краже денег.
Вот как вышло — шалость, можно сказать, удалась. Простенький хобби-проект молодого студента стал одним из столпов, на которых зиждется информационная эра. Не сказать, что в cURL есть что-то особенное, просто так вышло, что именно его автор первым задумался о необходимости удобной коммуникации с серверами в сети. Не написал бы он, написал бы кто-нибудь другой. Что не умаляет его заслуг и аккуратного подхода к разработке и улучшению программы на протяжении стольких лет.
Кто знает, может быть, кто-нибудь из вас сейчас сидит и пишет маленький хобби-проект, которым через четверть века станет пользоваться весь мир?
#dev
• На хабре есть очень хороший лонгрид по Docker, в котором описаны механизмы контейнеризации + примеры, эксперименты и реализация. Подойдет новичкам, кто хотел погрузиться в данную тему.
• Краткое содержание:
➡Chroot как первый популярный механизм, с помощью которого можно изолировать процесс в контексте файловой системы;
➡Namespaces как механизм, представляющий собой прослойку между желанием процесса получить ресурс и самим ресурсом;
➡Cgroups как ещё один механизм изоляции процессов, но только уже в контексте физических ресурсов системы;
➡OverlayFS как способ экономить место за счёт хитрой работы с файловыми системами контейнеров. Самое главное, поняли почему Docker слоёный пирог :);
➡Стандарт OCI как вещь, на которой держится вся современная контейнерная инфраструктура и утилиту runC, являющуюся эталонной реализацией OCI.
➡Читать статью [33 min].
#Docker
#docker
🐳
Docker & Kubernetes: The Practical Guide
Learn Docker, Docker Compose, Multi-Container Projects, Deployment and all about Kubernetes from the ground up!
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
👣 Docker Escape.
• Очень крутой и содержательный урок (вебинар) про различные методы, которые злоумышленник может использовать для побега из контейнера Docker, а ещё мы разберем необходимые шаги для успешного побега на понятных примерах. Также обсудим причины возникновения таких уязвимостей и разберём, какие меры можно принять, чтобы предотвратить побег из контейнеров по следующим сценариям:
➡SYS_ADMIN;
➡SYS_PTRACE;
➡SYS_MODULE;
➡DAC_READ_SEARCH;
➡DAC_OVERRIDE;
➡docker soсket.
➡️https://youtu.be/biC3TO7OELY
➡️https://github.com/aleksey0xffd/docker-escape
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻Attacking Docker.
• Статья включает в себя описание актуальных методов атак на Docker, описание различных уязвимостей и неправильных конфигураций, слабых мест в различных компонентах и другую полезную информацию:
- Privileged Container;
- Exposed Container APIs;
- Container Escape;
- Container Image Tampering;
- Insecure Container Configuration;
- Denial-of-Service (DoS);
- Kernel Vulnerabilities;
- Shared Kernel Exploitation;
- Insecure Container Orchestration;
- Insecure Container Images;
- References.
#Docker
👩💻 Docker guide.
• Ловите полезную и объемную (50 страниц) шпаргалку по Docker, которая содержит примеры различных команд и их пояснение.
• К слову, у авторов этого материала есть еще множество различных шпаргалок, в основном для разработчиков, но может быть кто-нибудь из Вас найдет для себя полезный материал: https://www.jsmastery.pro/resources?category=all
#Docker