Pull to refresh
2
0.1

User

Send message

Безопасность на высоте: как защищать API сегодня

Level of difficultyMedium
Reading time10 min
Views4.8K

К 2030 году количество используемых в мире API составит около 2 миллиардов. Это в 8 раз больше, чем в 2018 году. Рост числа открытых точек увеличивает количество уязвимостей, угроз и прогнозируемых атак. По оценкам экспертов, к 2026–2027 годам рост прогнозируемых атак на API составит 156% от сегодняшнего состояния.

Меня зовут Денис Кириллов, я главный архитектор решения Platform V SOWA в СберТехе. Сегодня я хотел бы рассказать о лучших практиках защиты API в современном мире. Эта тема довольно обширная, поэтому я разделил её на два материала. В первой статье рассмотрим принципы безопасности API, спецификации API и как они влияют на безопасность. Поговорим о проверке объектов на соответствие спецификации и о том, как она помогает снизить риски из списка Тор-10 API Security Risks.

Во второй статье расскажу о проблемах валидации API и совместном использовании механизмов валидации и WAF. Выясним, почему необходим отдельный компонент, который реализовывал бы функцию безопасности по отношению к API. И рассмотрим возможности продукта Platform V SOWA, который мы создали для решения этих задач.

Материал будет полезен специалистам в области информационной безопасности, сопровождения и разработки.

Читать далее

Может ли Orange PI 5 Plus с 32 ГБ памяти заменить домашний/офисный ПК?

Level of difficultyEasy
Reading time40 min
Views32K
Orange Pi 5 Plus 32GB

Производительность ARM процессоров каждый год увеличивается и все ближе к x86 процессорам. Компания Apple давно отказалась от процессоров Intel в пользу процессоров собственной разработки на ARM архитектуре. Но домашний/офисный ПК это не только процессор, но и софт, драйвера, и подключение любых устройств из коробки. Компания Shenzhen Xunlong Software вначале 2023 г. выпустила одноплатный компьютер Orange PI 5 Plus на базе высокопроизводительного процессора Rockchip RK3588 с 32 ГБ ОЗУ и возможностью подключения NVMe SSD дисков. По техническим характеристикам такой одноплатный компьютер сопоставим с домашним/офисным ПК. Проверим на сколько комфортно работать за таким одноплатником, смотреть YouTube, видео, и конечно же поиграем, установим Steam от Valve. Но самое главное оценим работу системы «из коробки» т.е. без танцев с бубном. Вначале рассмотрим характеристики Orange PI 5 Plus, затем процессор Rockchip RK3588, установку и настройку системы, подключение периферийных устройств, и посмотрим, на сколько хорош Linux на ARM для домашнего использования. В итоге рассмотрим какие существуют преграды замены текущих x86 систем на ARM.
Читать дальше →

Экономика хостера — не, она устроена не так, и зачем действительно мы запускали спутник

Reading time10 min
Views7.5K

Я тут иногда рассказываю про то, как устроен хостинг в блоге VDS-хостинга (знаю, для многих это уже неожиданно), а вы часто спрашиваете, почему у меня волосы на груди окрасились зачем нужны промотарифы за 40 и 130 рублей. И ещё:

  • Зачем хостинг запускает свой спутник.
  • Дидосим ли мы клиентов, чтобы продать им услугу DDoS-защиты.
  • Сколько мы тратим на рекламу.

Волосы на груди у меня окрасились, потому что я пролил на них ракетный окислитель.

  • На рекламу и маркетинг мы тратим 11,21% от общих расходов.
  • Софт — 15,79%.
  • Дата-центры — 11,36%.
  • ФОТ — 10,24%.
  • Железо — 9,62% + кредиты в разных формах на него — 18,97% (я видел отчётность Хетзнера, у них кредитная нагрузка выше).
  • IP-адреса — 5,91%.
  • Налоги — 5,75% (иногда здесь тоже короткий кредит, чтобы не вынимать сумму из оборота).

Возможно, неожиданным для вас будет то, что лицензии на ПО стоят примерно столько же, сколько аренда места в ЦОДах по миру, и что айпишники вообще-то занимают существенную долю затрат хостера.

Сейчас объясню.
Читать дальше →

Игрушечный ботнет на JavaScript под BitBurner

Level of difficultyEasy
Reading time12 min
Views3.8K

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

Мы не станем вредить, а вирус напишем в компьютерной игре BitBurner. Писать вирусы - плохо, но изучать - интересно.

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

Читать далее

Небезопасная десериализация в PHP: Как создать собственный эксплойт

Level of difficultyMedium
Reading time14 min
Views7.2K

Привет, Хабр! Сегодня мы познакомимся с уязвимостями небезопасной десериализации в PHP, научимся писать эксплойты для эксплуатации уязвимости в рамках тестирований на проникновение и попробуем себя в анализе кода.

Читать далее

Как мы построили отказоустойчивую open-source-инфраструктуру для управления пользовательскими Linux-устройствами

Level of difficultyHard
Reading time14 min
Views9.2K

Всем привет! Меня зовут Владислав, я руководитель направления развития пользовательских Linux-систем в Т-Банке. Мы работаем над проектом Linux Desktop. 

Проект зародился во времена блокировки иностранного софта. Нам нужен был опенсорсный продукт, который никуда не исчезнет и на закроется. Но прежде чем развивать Linux Desktop, в компании нужно было выбрать систему управления конфигурациями, которая сможет выдержать больше 15 000 хостов. А еще построить инфраструктуру, которая будет отказоустойчивой и не рассыпаться, если один из ЦОДов упадет.

Расскажу, как мы создали инфраструктуру, которая контролирует системы безопасности, магазин приложений, конфигурации ядра и многое другое. А еще такая инфраструктура — запасной аэродром, если вдруг придется отказаться от западного вендора.

Читать далее

Как справляться с негативными эмоциями и почему брать их под контроль — плохая идея?

Level of difficultyEasy
Reading time5 min
Views18K

Вряд ли вы любите испытывать тревогу, страх, злость, зависть или обиду. Хочется научиться управлять своими эмоциями, вот только эмоции — не тележка в супермаркете и управляться с ними не так просто. Поговорим о том, как сделать эмоции своими союзниками и использовать себе во благо.

Читать далее

Обход OTP и захват панели администратора через Header Injection

Reading time3 min
Views4.2K

Самое лучшее для исследователя в области баг-баунти, — это знания, который предоставляет сам процесс анализа.

Если помимо работы инженером в области безопасности вы занимаетесь баг-баунти в свободное время, всегда старайтесь применять полученные знания в своей основной работе, внедряя соответствующие механизмы защиты. Кроме того, делитесь своими находками с сообществом информационной безопасности через блоги и публикации.

Целью атаки стала платформа онлайн-образования, на которой была реализована аутентификация через OTP (одноразовый пароль). Когда речь идёт о входе с использованием OTP, первое, что приходит в голову: «Как это обойти?».

Сначала я попытался использовать метод перебора (brute force) и обнаружил, что была реализована защита с ограничением частоты запросов на основе IP-адреса. Это означает, что изменение IP-адреса клиента или IP-адреса, представляемого серверу, может помочь обойти это ограничение и продолжить перебор OTP.

Читать далее

Как работают файловые системы Linux-контейнеров

Level of difficultyEasy
Reading time4 min
Views22K

Откуда у контейнера берётся файловая система? Чтобы разобраться, инженер Google Михал Питр воспроизвёл действия Docker и создал файловую систему своими руками. От полноценной реализации его результат отличается тем, что в нём не используется пространство имён для дополнительной изоляции. 

Под катом — перевод, который поможет разобраться, как именно Docker создаёт новую файловую систему с помощью OverlayFS.

Читать далее

Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

Level of difficultyEasy
Reading time5 min
Views28K

В начале карьеры мне тоже казалось, что каждый разработчик должен следовать строгим правилам и рекомендациям. Я думал, что чем больше знаний, тем лучше результат. В итоге, передо мной открывался целый мир идеальных паттернов, архитектур и сложных решений. Но со временем я понял: важно не только читать и понимать теорию, но и уметь применить её в реальной жизни. И что ещё важнее — делать, а не спорить.

В этой статье я расскажу о своих ошибках, которые я допустил, пытаясь быть слишком «правильным». Как я заморачивался с кэшированием, пытался сделать универсальные компоненты и топил проект в лишних сложностях. Эти ошибки научили меня одному: не всегда нужно гнаться за идеальностью.

Давайте посмотрим, как я заморачивался с вещами, которые в итоге только усложнили задачу, и что из этого получилось.

Читать далее

Катастрофическое падение производительности из-за hyperthreading

Reading time4 min
Views29K

Недавно я писал статью - что такое 50% cpu? На системах с hyperthreading 50% cpu по метрикам означает, что большая часть ресурсов сервера уже использована. То есть cpu>50% - это уже "желтая зона", и мы ожидаем замедление всего, чего можно. Но я никогда не думал до экспериментов, что падение может быть столь катастрофическим.

Для экспериментов я использую MSSQL. Если вы не связаны с базами, прочитайте первую часть по диагонали до выводов.

Читать далее

Использование Redis в Go

Level of difficultyEasy
Reading time6 min
Views8.3K

Redis — хранилище из семейства нереляционных (NoSQL) баз данных. Redis является очень быстрым хранилищем данных благодаря своей архитектуре in-memory. Он идеально подходит для задач, требующих быстрого доступа к данным, таких как кэширование, очереди сообщений, сессионная информация и многое другое. Go также известен своей высокой производительностью за счет компиляции в машинный код и эффективного управления памятью.

Читать далее

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Level of difficultyEasy
Reading time17 min
Views13K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

Docker + Laravel + RoadRunner = ❤

Reading time8 min
Views33K

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


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


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →

23 000 $ за обход аутентификации, загрузку файлов и произвольную перезапись файлов

Reading time6 min
Views15K

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

Предположим, что целью является test.com.

Начав тестирование программы, я нашел способ обхода пользовательского интерфейса административной панели. Цель использует JSON Web Token (JWT) в качестве механизма аутентификации. Я уделил немало времени, чтобы разобраться и выявить возможные уязвимости на объектах программы, использующих JWT.

При входе на основной сайт test.com, для обычного пользователя генерируется JWT.

После изучения работы цели я начал собирать данные:

Читать далее

Немного про Тайм-менеджмент или «спасите от насилия менеджера Василия»

Level of difficultyEasy
Reading time4 min
Views16K

Как только вы становитесь Руководителем проектов, да и не только проектов – вообще любым руководителем - список ваших дел начинает расти. Вам больше не ставят задачи в любимой джире по одной, где оценил - сделал. Не. Задачи начинают лететь в вольном формате и неограниченном количестве.

Вы договорились по пяти задачам на сроки готовности? – вам прилетело еще 5, более срочных. Потом еще пара. И еще одна, напоследок, от Генерального. А сделать надо все, от вас ждут.

Это очередная статья посвященная софтскилам и лайфхакам, о которых руководителям не рассказывают на курсах по менеджменту. Если вам интересна эта и подобные темы – подписывайтесь на мой ТГ канал «Морковка спереди, морковка сзади» и читайте другие статьи здесь, на Хабре.

Классическое желание новичка – это сделать все, что дали. «Я же хороший, я же должен показать, что меня не зря сделали менеджером, я должен все успеть». Ничего, что для этого надо задержаться до 9ти, разок можно 😊

Читать далее

Docker + Laravel = ❤

Reading time10 min
Views86K

laravel-in-docker


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

В данной статье я расскажу о своём опыте "заворачивания" Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.


"А в чём, собственно, сложность?" — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:


  • "Использую докер для локальной разработки. Ставлю laradock и беды не знаю". Круто, но как обстоят дела с автоматизацией и запуском на production?
  • "Собираю один контейнер (монолит) на базе fedora:latest (~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри". Тоже отлично, прост в запуске, но как на счёт идеологии "один контейнер — один процесс"? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа?
  • "Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь". Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?

Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно "слинковав" контейнеры, или использовать продуктовый вариант docker-compose.yml как отправную точку.
Читать дальше →

Мой первый и неудачный опыт поиска торговой стратегии для Московской биржи

Level of difficultyHard
Reading time17 min
Views6.1K

Когда закончил писать механизм своего торгового робота обнаружил, что самое главное всё таки не сам механизм, а стратегия, по которой этот механизм будет работать.

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

Первый и самый важный вопрос - при помощи чего проводить тесты торговой стратегии на исторических данных? В какой программе или при помощи какой библиотеки создавать стратегию и потом прогонять её на истории?

Раз мой торговый робот создан в среде исполнения JavaScript Node.js, то и тесты в идеале должны проводится на чём-то схожем. Но забегая немного вперёд скажу что получилось по другому - Python пришёл на помощь.

Разбираюсь и ищу 📈

Приватность и безопасность в интернете с Web3: что нужно знать каждому

Level of difficultyEasy
Reading time6 min
Views3K

Цель статьи - привести простой и понятный пример применения Web3 на примере работы социальных сетей.

Читать далее

Безопасность во Frontend или как пройти все круги Данте

Level of difficultyMedium
Reading time10 min
Views2K

Здравствуйте. Сегодня обсудим безопасность, безопасную разработку и как получать документы, подтверждающие, что ваш продукт безопасен. Возникает резонный вопрос: зачем это вообще нужно? Ну, так как текущие реалии диктуют свои условия. И речь даже не о сложившейся геополитической ситуации в мире. А о том, что все больше и больше желающих получить то, что им не принадлежит. Будь то персональные данные, деньги, имущество, аккаунты игр (да-да, это тоже стоит денег), и в общем всё, что не прибито гвоздями.


Многие скажут, что на фронте всё безопасно, и что я сгущаю краски. Так как весь исполняемый код, по факту, находится у клиента в браузере. Отчасти соглашусь, но напомню, что фронт является дверью в бэк, а как мы все знаем, любая дверь, так или иначе, может быть открыта.


Следует помнить, что не всем подходит просто сказать: “У нас всё безопасно. Доверяйте нам!” Может, кому-то открою тайну, но бизнес так не работает. Бизнес хочет подтверждения безопасности. А это значит, получения сертификата соответствия в надлежащих органах, что само по себе отдельный вид девиации, но об этом позже.


Тема большая, неоднозначная. Постараюсь захватить как можно меньше от других частей систем (бек, тестирования, БД и т.д.). Но напоминаю, что безопасность — это комплексное мероприятие, в чем вы убедитесь позже, а сейчас по пунктам.

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

Information

Rating
4,453-rd
Registered
Activity

Specialization

Information security architect
Lead
From 15,000 $
Negotiation
C++
Qt
OOP
Linux
PHP
SQL
Nginx
High-loaded systems
Designing application architecture