Pull to refresh
9
0
Send message

Эксплуатируем переполнение буфера в простом TCP-сервере

Level of difficulty Hard
Reading time 6 min
Views 1.8K

Привет всем бинарщикам и людям, которые хотят попрактиковаться с эксплуатацией уязвимости переполнения буфера. Мы для своего киберполигона придумываем различные сценарии атак и насыщаем его различными мисконфигурациями и многочисленным уязвимым ПО для тренировок «синих» и «красных». И рассматриваемое ПО в данной статье, как раз одно из таких. В этой статье мы разберем весь процесс от идентификации уязвимости до получения обратной оболочки со скомпрометированного хоста.

Специально для этого примера я скомпилировал уязвимый TCP‑сервер, который принимает подключения через порт 3301 (Цикада?).

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 5

Открываем Adobe Flash в Docker в 2024-м

Level of difficulty Easy
Reading time 3 min
Views 4.1K

Шарился я тут в по Интернету в поисках видео событий 15-летний давности и нашел что-то вроде искомого, но никак не смог посмотреть - требовался Adobe Flash. Погуглил я как мне открыть это видео, но рабочих вариантов не нашел. "Ладно" - подумал я: "Challenge accepted". А нам с читателем лишняя возможность потренироваться в создании Docker-контейнеров.

Дисклеймер: использование устаревших версий браузера и самого Flash-плагина несёт потенциальную угрозу безопасности. Используйте этот метод на свой страх и риск.

Итак, начнём с того, что поддержка Flash-плагина была выпилена в Chromium начиная с версии 89. То есть нам нужно что-то где есть более ранняя версия. Это что-то - это Ubuntu 18.04 - там 65я версия, если без апдейтов,а с апдейтами 112-я. В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен. И так, поехали - создаём Dockerfile

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 35

Как в git работает HEAD

Level of difficulty Easy
Reading time 5 min
Views 10K

Недавно я провела в Mastodon опрос о том, насколько мои читатели уверены в том, что они хорошо понимают работу HEAD в Git. Результаты (на основании примерно 1700 голосов) меня немного удивили:

10% — 100%

36% — достаточно сильно уверен

39% — уверен в некоторой степени

15% — представления не имею

Меня удивило, что люди не уверены в своём понимании: я-то считала, что HEAD — это довольно простая тема.

Обычно, когда остальные, в отличие от меня, считают какую-то тему запутанной, причина заключается в какой-то скрытой сложности, которую я не учитываю. И в дальнейших обсуждениях выяснилось, что HEAD действительно чуть сложнее, чем я считала!

Читать далее
Total votes 26: ↑23 and ↓3 +20
Comments 21

Pgpool-II

Level of difficulty Easy
Reading time 6 min
Views 4K

Привет, Хабр!

Pgpool-II позволяет юзерам PostgreSQL управлять пулами соединений БД, реализовывать репликацию данных между серверами БД. Pgpool-II работает как прокси-сервер между клиентскими приложениями и серверами PostgreSQL, перехватывая запросы от клиентов и направляя их к соответствующим серверам БД согласно настроенным правилам и политикам.

Pgpool-II также поддерживает множественные режимы репликации, включая репликацию на уровне строки и репликацию на уровне транзакций. Репликация на уровне строки позволяет синхронизировать изменения данных между серверами в реальном времени, в то время как репликация на уровне транзакций сосредотачивается на синхронизации транзакций целиком.

Читать далее
Total votes 14: ↑11 and ↓3 +8
Comments 3

Инструкция по SCA: генерация SBOM, инструменты, отличия

Reading time 11 min
Views 961

Анализ сторонних компонентов ПО становится всё более актуальным в свете увеличения числа уязвимостей в открытом исходном коде. Популярные репозитории содержат более 20 тысяч потенциально опасных пакетов. Сегодня мы поговорим о спецификации SBOM (Software Bill of Material), обсудим, в каких сферах она используется, какими форматами представлена и какое применение находит в информационной безопасности, в частности, в рамках SCA-анализа.

Эта статья будет интересна как специалистам ИБ, так и разработчикам, желающим сделать свой продукт безопаснее.

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 1

Основные возможности кластеризации Patroni в PostgresSQL

Level of difficulty Easy
Reading time 5 min
Views 3.8K

Patroni – опенсоурсный инструмент, с которым можно подключить аварийное управление для кластеров Постгресе. Т.е можно автоматически преключать работу на резервный сервер в случае сбоя основного.

Patroni может интегрироваться с различными системами распределенной конфигурации, включая etcd, ZooKeeper, Consul и Kubernetes.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 2

Управление загрузкой с помощью PostgreSQL и pg_headerkit

Level of difficulty Easy
Reading time 4 min
Views 2.9K

Привет, Хабр!

Supabase – это крутой open-source аналог Firebase, с его помощью можно организовать крутые штуки вроде ограничения скорости запросов.

Supabase – это инструмент, который дает возможность создавать масштабируемые серверные решения, используя PostgreSQL. С его помощью можно легко управлять базами данных, аутентификацией, хранением данных и реальным временем, но без всяких vendor lock-ins.

Rate Limiting контролирует поток запросов, чтобы ваш сервер не ушел в нокаут от перегрузки. Это спасает сервера от DDOS-атакти помогает обеспечить более равномерное распределение ресурсов среди пользователей.

Читать далее
Total votes 12: ↑9 and ↓3 +6
Comments 0

Personal (jesus) стенд — решаем проблему тестовых контуров в компании

Level of difficulty Medium
Reading time 9 min
Views 2.3K

Всем привет, меня зовут Захаров Антон, и я DevOps-инженер в компании Bimeister! Весь свой опыт  я получил в этой компании, за 5 лет прошел путь от эникея до того, кем я работаю сейчас (большое спасибо коллегам!). Я расскажу, как на базе своих серверов и внутренних ресурсов мы создаем персональные стенды для разработки и тестирования нашего приложения.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 0

Оптимизация DevOps: Как персональные стенды и Grafana улучшают разработку и мониторинг

Level of difficulty Medium
Reading time 8 min
Views 8.6K

Всем привет, меня зовут Зуев Алексей, и я работаю DevOps-инженером в компании Bimeister! Сегодня я расскажу вам о том, как мы облегчаем жизнь нашим разработчикам и как разработчик может отследить состояние своего микросервиса в namespace Kubernetes. Основная цель этой статьи - описать, как мы пришли к дашборду для персональных стендов разработчиков.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 5

Разработка простого DNS сервера на Go, согласно RFC

Level of difficulty Medium
Reading time 7 min
Views 11K

Привет, Хабр!

В этой статье я хочу рассказать о своем опыте создания DNS сервера. Разрабатывал я его "чисто повеселиться", при разработке будем придерживаться спецификации RFC.

Читать далее
Total votes 42: ↑39 and ↓3 +36
Comments 10

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Level of difficulty Easy
Reading time 26 min
Views 32K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее
Total votes 128: ↑128 and ↓0 +128
Comments 96

Настройка PostgreSQL под Linux

Level of difficulty Easy
Reading time 10 min
Views 102K

Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать высококвалифицированных администраторов, которые будут администрировать все эти open-source системы.

На наших бизнес-приложениях, использующих в качестве СУБД PostgreSQL, работают 70% крупнейших розничных сетей в Беларуси. Во всех из них одновременно работают от 500 до 1500 пользователей. В приложениях реализованы практически все основные процессы розничных сетей (демо, чтобы оценить сложность). Размер баз данных на данный момент составляет от 2 до 4ТБ. И все они работают практически со стандартными настройками PostgreSQL на одиночных серверах без какой-либо кластеризации. При этом даже в самых загруженных серверах есть еще значительный резерв по ресурсам для дальнейшего увеличения нагрузки без потребности в кластеризации.

Да, конечно же, многое зависит от запросов к СУБД, и несколькими кривыми запросами можно положить весь сервер. Однако, точно также можно положить и Oracle, и MSSQL. Да, платформа lsFusion, на которой написаны наши приложения, делает много различных оптимизаций запросов конкретно под PostgreSQL. Но вручную SQL-запросы можно оптимизировать еще лучше.

В этой статье я полностью опишу все настройки PostgreSQL (и немножко ОС), которые мы делаем на наших системах. Кроме того, мы специально стараемся не изменять те настройки, которые не дают видимого изменения в производительности, чтобы потом не гадать, почему в одном окружении есть проблема, а в другом - нет.

Читать далее
Total votes 44: ↑41 and ↓3 +38
Comments 16

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Level of difficulty Medium
Reading time 8 min
Views 19K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 1

Высокодоступные кластеры PostgreSQL с Patroni: Ваша очередь протестировать сценарии отказов

Level of difficulty Easy
Reading time 15 min
Views 9.9K

Пару недель назад (перевод статьи от 2021 г.) мы с Джобином (Jobin) сделали небольшую презентацию в рамках Percona Live Online с названием, подобным теме этой статьи: "PostgreSQL HA с Patroni: Сценарии отказов и способы восстановления кластера после них". Мы развернули 3-узловую среду PostgreSQL на имеющемся у нас оборудовании и решили "ломать" ее различными способами: отключали от интернета и электропитания кабели, “убивали” основные процессы, пытаясь насытить процессоры. Всё это происходило при постоянной записи и чтении данных из PostgreSQL. Идея заключалась в том, чтобы посмотреть, как Patroni справится с отказами и будет управлять кластером, продолжая обеспечивать работу. Это была интересная демонстрация!

Читать далее
Total votes 16: ↑15 and ↓1 +14
Comments 7

Keycloak — больно не будет

Level of difficulty Hard
Reading time 17 min
Views 28K

Привет! Меня зовут Алексей, я DevOps-инженер компании Nixys. «Как правильно и своевременно предоставлять и отнимать доступ у различных сотрудников?» — этот вопрос беспокоит всех. Особую важность эта задача приобретает, когда продукт начинает быстро расти — если ваш штат регулярно меняется, вопросы безопасности данных и работоспособности системы должны стоять на особом контроле.

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 5

Представляем nxs-data-anonymizer — удобный инструмент для анонимизации баз данных

Level of difficulty Easy
Reading time 8 min
Views 2.9K

Привет, Хабр! 

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

Не секрет, что разработка даже небольшого проекта тесно связана с инфраструктурой, поскольку любая программа требует наличия определённого окружения. Часто таких окружений требуется несколько — одно под прод, а остальные — под разные нужды, например, тестирование. Иногда эти среды даже могут быть динамическими — когда вместе с новым бранчем создаётся окружение, в котором запускается разрабатываемая версия приложения и всё необходимое для неё, а после того как бранч вливается в main, эта среда и все её данные удаляется. 

И вот как раз о данных (а точнее о базах данных) в таких средах и хотелось бы поговорить. А именно — где и как их взять, как сделать их максимально приближенными к боевым и как защититься от их утечки. Для решения этих задач мы в Nixys используем собственный инструмент — nxs-data-anonymizer. Хотим поделиться им с вами.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 2

Модуль Terraform для Proxmox LXC

Level of difficulty Medium
Reading time 9 min
Views 11K

Всем привет, я не блогер и не люблю писать посты и блоги, пока.

Решил найти решение для Terraform и Proxmox. После не долгих поисков нашёл провайдер под названием terraform-provider-proxmox. Так как на русском документации не было ни где, решил перевести документацию о ресурсах на русский язык как мог. Думаю что кому ни будь будет полезно и избавит от дополнительного труда.

Дальше
Total votes 15: ↑14 and ↓1 +13
Comments 5

Как мы боролись с овербукингом Kubernetes-кластеров

Reading time 10 min
Views 9K

Привет! Меня зовут Александр Лебедев, я SRE в Samokat.tech. Мы строим надёжную платформу для сервисов быстрой доставки и в зону ответственности моей команды входят поддержка Kubernetes-кластеров и управление их ресурсами.

Под катом история о том, как мы пришли к своему варианту resource management через борьбу с овербукингом по CPU.

Читать далее
Total votes 25: ↑24 and ↓1 +23
Comments 5

Рациональный подход к декомпозиции систем на модули или микросервисы. Практика

Level of difficulty Hard
Reading time 12 min
Views 4.7K

В своём прошлом посте я рассказал теорию своего подхода к декомпозиции систем на модули. Теперь пришло время проверить её на практике.

Кэмп - реальный проект, который стоил семизначную сумму для заказчика, выполнялся командой из 12 человек (включая двух бакэндеров) и сейчас запущен в промышленную эксплуатацию. Суммарно на выполнение проекта было затрачено 5500 человеко/часов, из которых 950 - на бакенд.

Что из этого получилось?
Total votes 12: ↑9 and ↓3 +6
Comments 2

Рациональный подход к декомпозиции систем на модули или микросервисы

Level of difficulty Hard
Reading time 13 min
Views 6.2K

Чего от разработки ПО хотят разработчики, продакты и владельцы бизнеса?

Одного и того же - побольше дофаминчика (гормон счастья), поменьше кортизольчика (гормон стресса). Притом источники и дофамина, и кортизола у них одни и те же. Дофамин вырабатывается, когда фичи выпускаются в срок и без багов, а кортизол - когда сроки срываются и вылазят баги и регрессии. Бизнесу будет ближе финансовая версия — срыв сроков и баги очевидным образом приводят к увлечению стоимости разработки. Что приводит к выбросу кортизола уже у владельцев.

Как обеспечить высокий уровень дофамина?
Total votes 13: ↑13 and ↓0 +13
Comments 7

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, DevOps
Middle