Привет, Хабр! Это Саша Бардаш, главный архитектор интеграционных платформ в МТС Диджитал. В прошлый раз я рассказывал о пяти книгах, которые стоит почитать начинающему ИТ-архитектору. Большое спасибо всем, кто читал. Были интересные комментарии на тему, какие еще книги почитать — кое-что из этого я добавил в свою новую подборку. Итак, под катом пять книг, которые будут интересны уже более опытным ИТ-архитекторам. Что ж, поехали!
Penetration Tester
Основы Docker: контейнеризация, Dockerfile и Docker Compose. Часть 2
Привет, Хабр! Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.
В этом материале речь пойдёт о том, что помогает избежать конфликтов зависимостей и проблем с изоляцией, возникающих при запуске нескольких приложений на одном сервере. Для решения этих задач используются технологии контейнеризации, которые позволяют создавать изолированные окружения для приложений, устраняя проблемы совместимости и упрощая процесс развёртывания. Рассмотрим, как работает контейнеризация и какие инструменты помогают сделать её максимально эффективной.
Kiisu — плата, совместимая с Flipper Zero
Все началось с того, что я забыла ключ о ворот во двор и вспомнила свою прошлогоднюю идею сделать что‑то, похожее на Флиппер, но компактнее, чтобы всегда носить его с собой. В прошлом году до реализации не дошли руки, а вот в этом — дошли.
Приглашаю под кат, чтобы посмотреть, что получилось и обсудить, как можно сделать ещё лучше :)
Руководство от ненавистника Kubernetes: как использовать эту технологию
Пол Батлер, инженер-программист и создатель Jamsocket, уверяет, что Kubernetes — это как сложный, но увлекательный пазл: его можно ненавидеть, но без него не обойтись. Мы перевели его статью, в которой он рассказал, какие ресурсы K8s использует с удовольствием, а от каких предпочитает держаться подальше. В этом руководстве ненавистника вы найдете ценные советы, как извлечь максимум пользы из Kubernetes.
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:
Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже
Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать
Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.
Пример 1: запуск программы, написанном на компилируемом языке (Go): в полной статье
Пример 2: Запуск скрипта PHP без OPCache и JIT
В интерпретируемых языках подразумевается, что при запуске программы будет осуществляться выполнение машинного кода не сразу. В случае PHP — запускается именно исходный код.
Это означает, что при каждом запуске программы система должна проанализировать исходный код и преобразовать его в понятный код для процессора (т.е. в машинный код).
Вот схематично представил всю последовательность работы PHP скрипта без включенных OPCache и JIT (каждый из них по отдельности рассмотрим в следующих двух примерах).
У нас привычный «исходный код» PHP (файл hello-world.php
):
<?php echo "Hello world";
Опять идем по порядку, рассмотрим какие процессы происходят запустив команду:
php hello-world.php
Процесс №1 — Компиляция в байт-код
Сначала исходный код обрабатывается Zend Compiler — это PHP компилятор. Первый из двух основных компонентов Zend Virtual Machine.
В отличие от рассмотренного выше компилятора Go:
задача PHP компилятора — преобразовать исходный код не в машинный код, а в код-посредник - байт-код;
процесс компиляции происходит при каждом запуске программы (вместо лишь единоразового - до запуска программы, как в примере с Go)
В случае PHP этот байт-код назвали PHP OPCode.
Байт-код — является более низко-уровневым, чем исходный код. Он содержит набор команд для интерпретатора (об интерпретаторе в следующем пункте). Байт-код не может выполняться процессором напрямую.
Чтобы посмотреть результат работы компилятора — сам байт-код — выполним команду:
php -d opcache.opt_debug_level=0x20000 -d opcache.enable_cli=1 hello-world.php
Получим:
$_main: ; (lines=3, args=0, vars=0, tmps=1) ; (after optimizer) ; /hello-world.php:1-2 0000 EXT_STMT 0001 ECHO string("Hello World") 0002 RETURN int(1)
Вначале видим $_main:
— обозначает, что следующие строки относятся к функции main
. Появление такой функции в байт-коде для глобальной области видимости PHP — занятная историческая особенность, дошедшая из других языков;
Следующие 3 строки начинаются на ;
— так обозначаются комментарии. Одна из целей — для дебаг-информации;
Последние 3 строки — непосредственно код нашего приложения, который будет выполняться виртуальной машиной в следующем шаге.
Процесс №2 — Выполнение байт-кода
BPMN 2.0 универсальный подход при построении диаграмм
Я написал этот гайд для использования аналитиками в компании (мы интегратор решений 1С в медицине), как настольная шпаргалка и некий базовый «стандарт унификации» формируемых диаграмм данного типа.
Полезно будет как тем, кто только делает первые шаги к стандартизации своего подхода при описании логики бизнес-процессов так и тем, кто уже имеет опыт применения данной нотации.
Многие пользователи диаграмм, создаваемых аналитиком зачастую не готовы читать схемы, содержащие большое кол-во элементов, виды которых нужно знать и понимать. Для описания бизнес-процессов из опыта в большинстве случаев достаточно элементов нотации, описанных здесь.
Книги по Linux для начинающих и профессионалов: выбираем лучшее
В этой подборке — книги по Linux. В большинстве своём они предназначены для специалистов, но есть что почитать и новичку. Мы постарались собрать самые разные книги — для системных администраторов, разработчиков и обычных пользователей. Всё самое интересное — под катом.
Книжная полка DevOps-инженера
Всем привет! Решил накидать книжных полезняшек для тех, кто любит DevOps или движется в этом направлении. Книги поделил по темам: сначала базовый уровень, потом архитектура, методологии, ну и всё остальное. В общем, от и до.
Я Сергей Задорожный, руководитель отдела платформенных решений банка «Центр-инвест» и один из авторов курса «DevOps для эксплуатации и разработки» от Яндекс Практикума. Раньше занимался написанием бэкендов на Java и Kotlin, потом занялся архитектурой, выстраиванием процессов, а сейчас заношу DevOps-практики в финтех-энтерпрайз.
Обзор криминалистических артефактов Windows
При расследовании инцидентов информационной безопасности на хостах под управлением Windows, специалистам приходится искать свидетельства и доказательства вредоносной активности. В типичной ситуации аналитик сталкивается с физическим диском или его образом, содержащим множество артефактов операционной системы, которые не всегда легко интерпретировать. Иногда стандартный набор артефактов может не обеспечить полный ответ на вопрос: «Что произошло в системе?». Например, если настройки аудита неправильно настроены, то необходимые события в журналах безопасности могут не записаться, или злоумышленник может успеть очистить наиболее популярные артефакты, или данные в процессе сбора или передачи могут повредиться.
В данной статье предлагается наиболее полный список источников, которые могут быть полезны для выявления следов вредоносной активности, и, кратко, в виде шпаргалки показывает где их находить и чем анализировать.
Как работает интернет
Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.
Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.
Контейнеры, разминаем мозги под Kubernetes – разговоры у костра
Привет, друзья! Разговоры у вечернего костра, у палатки, у реки, в спокойный, тихий вечер и в располагающей к технической честности и объективности атмосфере, а не «у пепелища дата-центра», как некоторым может показаться! 😊 Приготовьтесь погрузиться в захватывающую историю, как, но, важнее, почему мы сознательно пришли к активному использованию контейнеров и «доросли» до внедрения Kubernetes в высоконагруженном проекте «BI-конструктор». Но про Kubernetes в посте не будет не слова, будет только про контейнеры, но мы подготовим мозг к следующему посту, уже исключительно про Kubernetes, но тоже максимально доступно. Однако, я буду все рассказывать очень простыми (иногда техническими) словами, без ныряния в многоуровневый мат, уж простите. Я убежден, что когда ты все прочувствовал и выстрадал умом и сердцем, то сможешь этот опыт передать доступно и понятно другим, а когда сам не понимаешь, о чем говоришь, то и остальных просто запутаешь. И еще один момент – технических картинок и графиков по теме тоже не будет, они вызывают головную боль от растекания абстракций и их легко найти самостоятельно и в конце я дам рецепт где. Но, даже без них, не сомневайтесь, вы все поймете с первого раза. Итак, наливайте кофе, насыпайте попкорн, кладите в карман таблетку от головной боли (иногда будет сложно, но ради вашего же блага) и ныряйте «под кат».
Как бороться с микроменеджментом в ИТ (и нужно ли)
Осознание, что ты микроменеджер, приходит не сразу, и чаще всего только после фидбэка от подчинённых. А фидбэк этот бьёт обухом по голове, когда у сотрудников заканчивается терпение. Стоит один раз с утра спросить, как дела, из лучших побуждений предложить свою помощь, повторить это ценное предложение часа через три, подстраховать уверенного мидла или сеньора, чтобы он вдруг ощутил, что с ним обращаются как со школьником, — и вот обратная связь от коллег помогает узнать о себе что-то новое.
Даже если вы искренне хотите помочь и облегчить жизнь окружающим, микроменеджмент не перестаёт быть микроменеджментом и всё так же раздражает сотрудников.
Перевод статьи «Injecting Java in-memory payloads for post-exploitation»
В марте Synacktiv описали способы эксплуатации небезопасной десериализации в приложениях, написанных на Java. Позже, команда красных автора столкнулась с Java-приложениями, в которых были обнаружены другие уязвимости, приводящие к исполнению кода. А уже в этой статье автор представил несколько приемов, которые использовались для внедрения полезной нагрузки в память на примере широко известных приложений.
Ну а мы, авторы telegram-канала AUTHORITY, перевели эту статью на русский.
Безопасность CI/CD
Обычно, когда начинается разговор о DevSecOps, все сразу вспоминают о необходимости встраивать в конвейер SAST, DAST, SCA инструменты, проводить различные тесты на безопасность приложения и регулярно сканировать работающее в продуктивной среде решение.
Но при этом не стоит забывать и о необходимости обеспечивать безопасность самого конвейера CI/CD. В сегодняшней статье мы рассмотрим обеспечение безопасности конвейера, построенного на основе Jenkins. Но сначала рассмотрим краткое описание этого решения, что Jenkins из себя представляет и для чего используется.
Уязвимости Laravel, технология Cookieless и Kerberos-лапша, или Рассказ о том, как мы IDS Bypass 5 решали
Вот и прошли два месяца с окончания Positive Hack Days Fest 2. Несмотря на то что он уже второй год как городской киберфестиваль, все привычные активности остались. Один из конкурсов — IDS Bypass — мы провели в юбилейный, пятый раз. Подводим его итоги и делимся райтапом.
Немного статистики:
В этом году участвовало 172 человека! В прошлом году нас было 138.
Хотя бы 1 задание решило 24 человека.
А все 7 заданий пытались взломать более 5000 раз.
С момента публикации задания будут доступны еще пару недель — вы можете попробовать свои силы тут, бот в закрепе.
Карантин! Инфицируем .NET-сборки как настоящий APT
Привет, Хабр! Меня зовут Миша, я работаю ведущим экспертом по тестированию на проникновение в команде CICADA8 Центра инноваций МТС Future Crew. Недавно я занимался исследованием ранее неизвестных и просто любопытных способов закрепления в системах Windows. Я обратил внимание на одну особенность — в Windows очень много .NET-сборок. Как атакующие могут использовать их в своих целях против вас? Давайте разбираться.
Я сделал небольшой экскурс в прекрасный мир C#. Вы увидите, как злоумышленники прямо инфицируют сборки, принудительно добавляют в них импорты, внедряются с помощью AppDomain Manager, делают бэкдор через .NET-компилятор и Module Initializer.
Attention! Я рассказываю это все не для того, чтобы вы пошли взламывать чужие системы, а даю возможность увидеть, где и как злоумышленники могут закрепиться. Понимание принципов атаки позволяет быстро находить ее источник и реагировать на угрозу. Предупрежден — значит вооружен.
Как использовать S3-хранилище в Kubernetes: руководство с примерами
S3 — не самое быстрое хранилище и подходит не для всех задач. Но это отличный вариант, если нужно организовать надежное и масштабируемое пространство для данных большого объема. По этой причине S3 часто используют в качестве хранилища для приложений, развернутых в Kubernetes.
Привет, Хабр! Меня зовут Филипп, я DevOps-инженер в Selectel. В своей обзорной статье хочу разобрать, какие есть решения для работы с объектным хранилищем из K8s. Соберу тестовый стенд из кластера Managed Kubernetes и покажу, как установить и настроить нужные компоненты через Terraform. Начинаем!
Как мы управляем секретами в Банки.ру: Vault HashiCorp и мечта об одной безопасной кнопке
Привет! Меня зовут Лев, я руководитель интеграционной разработки в финансовом маркетплейсе Банки.ру.
Больше года назад мы начали переход на микросервисную архитектуру. Секретов становилось всё больше: пароли, токены, сертификаты, ключи. А управлять ими было всё сложнее. Количество команд давно перевалило за несколько десятков, а интеграций с партнерами, которые также защищены секретами, — за сотню.
Перед нами появилась задача выстроить удобную и безопасную структуру хранения и управления секретами. В этой статье поделюсь нашим опытом и расскажу:
1. В чем заключалась проблема в управлении секретами, как мы её решили и как могли бы улучшить этот процесс.
2. Какие способы хранения секретов существуют и как их можно интегрировать.
3. Как можно реализовать хранение через Vault.
4. Что такое политики доступа и как они применяются к структурам секретов.
5. Варианты реализации, которые наилучшим образом подходят для нашей конкретной ситуации.
Аутентификация в SPA приложении через OpenAM используя OAuth2/OIDC
Данная статья будет полезна разработчикам браузерных (SPA) приложений, которые хотят настроить аутентификацию пользователей. Для аутентификации будет использоваться OAuth2/OIDC протокол c PKCE. В качестве сервера аутентификации будет использоваться сервер управления аутентификации с открытым исходным кодом OpenAM.
K8S для начинающих. Первая часть
Технологический прогресс не стоит на месте, особенно если это касается области IT. Еще в 2014 году, когда Google открыл исходный код проекта Kubernetes, который вобрал в себя лучшее из Borg и Omega - внутренних систем Google, его мало кто знал и использовал. Но прошло 7 лет и K8S (он же Kubernetes) стал успешным open-source проектом, который используется по всему миру. В большинстве компаний инфраструктура построена на K8S - от маленьких проектов до огромных кластеров и облаков, которые обеспечивают бесперебойную доступность сервисов. Давайте коснемся Kubernetes и расскажем, как им пользоваться на практике. Но сначала надо спросить, а что такое этот ваш Kubernetes и для чего он собственно нужен. Подойдет ли он для ваших проектов.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность