Как я нашел криптографический бэкдор в крупнейшем даркнет-рынке: разбираем кражу $12 миллионов через уязвимость ECDSA

Криптографическая уязвимость Evolution Marketplace: Анализ кражи Исследование безопасности ECDSA подписей крупнейшего даркнет-рынка

Криптографическая уязвимость Evolution Marketplace: Анализ кражи Исследование безопасности ECDSA подписей крупнейшего даркнет-рынка

Object-Relational Mapping (ORM) — технология, призванная «поженить» реляционную природу SQL-баз (PostgreSQL, MySQL, SQLite и т.п.) с объектной моделью языков программирования. Она настолько популярна, что её пытаются реализовать даже в необъектных языках — например, в Go или Erlang.
Если в Java без ORM действительно неудобно, то в экосистеме Node.js (и TypeScript в частности) ситуация принципиально иная. И ORM здесь — зачастую избыточная абстракция. В большинстве случаев рациональнее обойтись компактным SQL-билдером который сильно упрощает построение запросов, оставляя над ними полный контроль, и который совсем не занимается управлением объектами. Почему в Node.js ORM почти не даёт преимуществ...

У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.
На определённом этапе мы выросли до Redis Cluster из пяти нод – и он всё равно задыхался по памяти. JSON-объекты раздувались в разы относительно полезных данных, и мы платили за тонны пустоты — буквально деньгами и деградацией.
Я посчитал сколько весят реально полезные данные и получил цифру, от которой понял, что так жить больше нельзя.

OpenAI официально ограничила доступ для российских пользователей, но это не значит, что дорога к передовым технологиям искусственного интеллекта для нас закрыта. Напротив, сегодня получить доступ к ChatGPT 5 стало даже проще, чем когда-либо — без необходимости искать стабильный VPN или заводить зарубежные карты.
На смену сложным схемам пришли удобные агрегаторы нейросетей, которые решают все технические вопросы разом. В этой статье мы разберемся, как легально и без лишних хлопот подключиться к ChatGPT 5, а также раскроем весь спектр его возможностей на практических примерах.

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века
Мы обучили свою OCR-модель распознавать дореформенную кириллицу, нестандартные почерки и сложные сканы. Всё — на собственных данных, с нуля. В статье — как мы это сделали и ссылки на репозиторий с кодом.

Всем привет! Сегодня на обзоре Скелетная анимационная система, её организация и упорядочивание.
Скелетная анимация в 3D - это инструмент для лучшего погружения в повествование.
Часто ли вам приходилось задаваться вопросом: как сделать скелетную систему для 3D? Как организовать данные, как удобнее? Возможно, есть какие-то желания, которые при реализации хотелось бы учесть. Именно таким вопросом я задался, каким-то вечером. И так я начал изучать, что и как сделать. Но всё глубже погружаясь в какие-то туториалы, я обращал внимание на то, как организован код, и всё ускользало, как сквозь пальцы. Казалось бы, вот код, но он как бисер, рассыпан по многочисленным файликам какого-то обзорщика. Так же в какой-то момент, я уже точно знал, как я хочу, чтобы выглядел код, какой мне бы хотелось. Конечно, не совсем так. Узнал о том, какой я хочу код, после некоторых тестов... В общем, предлагаю взглянуть на то, как я смог реализовать анимационную систему в моём стиле. Добро пожаловать в эту статью, кому интересно рассмотреть какие-то нюансы с первых строк кода.

Началось все весьма прозаично, клиент позвонить к нам в техподдержку и спросил «а как бы мне поставить ваш софт но в другую схему БД». Собственно вопрос проще некуда — мы писали на спринге, а значит лезем в application.yml и ставим схему. Но, клиент не из тупых и уже это попробовал — не сработало.
Начинаем разбираться что сломалось и кто виноват. Первым делом ДевОпс повторяет кульбиты клиента и выдает простой вердикт: «В 151 миграции лажа». Я открываю и: «батюшки родный, да это же лосенок явное указание схемы!»

Хостинг — рынок конкурентный. Чтобы выделиться, нужно не только предлагать пользователям качественные сервисы, но и грамотно их продвигать. BILLmanager предоставляет провайдерам целый арсенал маркетинговых инструментов: от CRM с сегментацией клиентов до email-рассылок, реферальных программ и рекламных механизмов.
Но сегодня поговорим об одном из ключевых маркетинговых инструментов платформы — скидках и акциях. Функциональные возможности BILLmanager позволяют запускать промоакции любой сложности: от простых скидок на тарифы до многоуровневых акций с промокодами и сегментированием аудитории. Причем все это — без сторонних сервисов и интеграции, прямо в панели управления.

Продолжая тему, затронутую в статье об искусственном интеллекте и здравом смысле, хочу затронуть два принципиальных, но зачастую упускаемых из виду отличия мозга от искусственной нейронной сети. Во-первых, нейронная сеть состоит исключительно из «нейронов», а мозг – из нейронов и глиальных клеток. Оставлю здесь ссылку на интересную обзорную статью о глии, которую написала на Хабре уважаемая Василиса Белокопытова @vasilisa_b. До недавнего времени считалось, что глиальные клетки играют в мозге сугубо вспомогательную роль и функционально подобны оболочке проводов, передающих сигнал. Однако свежие исследования, в том числе, с применением искусственных нейронных сетей, привлекают всё более серьёзное внимание к астроцитам. Это небольшие звёздчатые клетки в составе глии. Они взаимодействуют как с нейронами, так и с синапсами, и вопрос о том, могут ли они передавать нейронные импульсы, рассматривался на сайте N+1 ещё около двух лет назад. Подробнее об этом — под катом.

Привет, Хабр!
Каждый, работавший с формами в Angular, рано или поздно сталкивается с ситуацией, когда стандартных полей ввода недостаточно. Хочется сделать что-то свое: например, красивый рейтинг в виде звёздочек, компонент для ввода телефона с маской или даже кастомный текстовый редактор на базе contenteditable. Однако просто создать компонент недостаточно, Angular Forms не поймет, как работать с вашим контролом без дополнительных вмешательств.

Привет, Хабр!
Делали ли вы электронную визу в Индию? А, может, в Южную Корею? Или подавались на лотерею Green Card в США? Если да, то вы точно знаете, что для заявки на все эти документы надо прикрепить фотографию определённого размера с целым набором требований...
А такое ну просто необходимо автоматизировать!
И, как можно догадаться, сайтов для автоматизации фотографий на документы просто куча. Только вот есть одна проблема: все эти сайты хотят много денег - от 5 до 12 долларов за приведение фото к нужным требованиям.
Терпеть такое я, конечно же, не стал и написал своего бота в Телеграме, который делает это всё бесплатно.
Подробности под катом!

Как говорил Альберт Эйнштейн, «наиболее необъяснимое во Вселенной – это то, что она объяснима». Но что делает Вселенную познаваемой? Почему работает научный метод? Как вообще прямоходящие кожаные мешки с обезьяньим мозгом могут что-либо узнать о физической реальности, если они всю жизнь проводят в виртуальной реальности своего сознания? Ведь всё, что нам известно о мире – продукты нашего разума. Не означает ли это, что мы никогда не сможем узнать, какова реальность на самом деле? Что мы вообще знаем, если Вселенная на 95% состоит из неведомых тёмных субстанций? Откуда мы знаем, что законы физики универсальны и постижимы человеческим разумом? Где гарантия, что законы физики изотропны в пространстве и однородны во времени? Может, они варьируются от места к месту, изменялись в прошлом или изменятся в будущем? Существует ли вычислительно более мощный компьютер, чем машина Тьюринга? Вычислима ли каждая физическая система? Является ли сама Вселенная вычислительной машиной? Каковы фундаментальные физические и логические ограничения на то, что может быть вычислено и постигнуто? Есть ли вычислительный барьер, который невозможно преодолеть, независимо от того, насколько далеко и какими способами развиваются компьютеры? Или новые типы оборудования, основанные на квантовых, релятивистских или квантово-гравитационных явлениях, могут привести к принципиально новым вычислительным парадигмам и сделать невычислимое вычислимым? В этой статье мы погрузимся в глубины теоретической информатики, чтобы выяснить, каковы фундаментальные пределы вычислимости и возможны ли в нашей Вселенной гиперкомпьютеры.

В условиях стремительных перемен в ИТ‑сфере специалистам по тестированию необходимо быть гибкими, осваивать новые подходы и непрерывно развивать лидерские и коммуникативные навыки. Это помогает оставаться конкурентоспособными вне зависимости от технологий.

В предыдущей части мы обсудили общие аспекты ИТ Архитектуры, и подробно затронули такой ее слой, как архитектура Данных, которая охватывает все многообразие бизнес-информации предприятия, знания о потоках ее распределения, сборе, обработке и использовании, представляемой в виде различных моделей данных.
Теперь обратимся к слою Приложений, который соотнесет используемые данные и правила их обработки с компьютерными программами, для их хранения, получения и преобразования в ходе автоматизированного выполнения бизнес-процессов.
Архитектура прикладных решений (ESA –Enterprise Solution Architecture) — это организационный дизайн всего программного приложения, включая все подкомпоненты и внешние приложения, интерфейсы для их взаимодействия, а также их поведения в рамках сотрудничества структурных элементов.
Используются этот инструмент для описания модели того, как приложение будет обеспечивать жизненный цикл необходимых бизнес-процессов, соответствующих бизнес-архитектуре предприятия. Архитектура приложений покрывает достаточно широкую область, начиная с идентификации прикладных систем необходимых предприятию для выполнения бизнес-процессов, и захватывает такие аспекты, как проектирование, разработку (или приобретение) и интеграцию прикладных систем в комплексные решения.
Потому для упрощения восприятия, как правило, разделяют две основные области ее применимости:

Помните времена, когда браузеры были простыми? Нажимаешь на ссылку — страница загружается, может, заполняешь форму, и всё. Теперь ситуация изменилась: ИИ-браузеры вроде Comet от Perplexity обещают сделать всё за вас — кликать, печатать, думать и даже выбирать.
Но вот неожиданный поворот: этот «умный» ассистент, который помогает вам в интернете, может выполнять приказы самих сайтов, от которых должен вас защищать. Недавний провал безопасности Comet — не просто позорный случай, а учебник по тому, как не нужно строить ИИ-продукты.

Почему ИИ-агенты в реальных задачах за пределами академических экспериментов до сих пор часто наступают на хорошо знакомые грабли: путаются в деталях, не удерживают цель при длинных рассуждениях и теряют контекст использования инструментов?
Неожиданная идея решения проблемы пришла в недавнем исследовании DeepAgent. Кажется, что дело вовсе не в размере модели и не в промтах для ее использования. Ключом к прогрессу явилась связная логика рассуждений на протяжении всей задачи. Агент не просто каждый раз делает привычный сценарий с паузой: «обдумал-предпринял действие» - а ведет мысль по длинному связнму сценарию, сам выбирает какой памятью ему пользоваться и когда применять нужные инструменты.
В этом обзоре: что меняется в поведении агента, когда у него появляется возможность связанно использовать различные инструменты на протяжении всей задачи, какие методы используются и как это приближает нас к по-настоящему автономному ИИ.

Привет! Меня зовут Анатолий, я ведущий разработчик в ITFB Group, и сегодня я хочу рассказать о том, как можно превратить скучные тесты в главного специалиста по продукту.
Знакомо: ваши JUnit-тесты проходят, CI/CD зелёный, все довольны. Но тут приходит бизнес-аналитик и спрашивает: "А этот сценарий проверяет, что будет, если клиент с рейтингом 700 запросит 10 миллионов?"
Вы начинаете лихорадочно копаться в коде, пытаясь найти тот самый @Test... А что если бы ответ на этот вопрос лежал не в глубинах Java-кода, а в красивом, читаемом файле, который понятен всем — от тимлида до заказчика?

В любой компании рано или поздно встаёт вопрос: как писать код так, чтобы его было удобно поддерживать и масштабировать? Одни решают эту задачу через процессы и правила, другие — через инструменты и платформенные команды. Но если присмотреться, платформенный подход возникает почти везде, даже там, где формально нет платформы.
Меня зовут Дима Салахутдинов, я тимлид платформенной команды в Купере, автор телеграм-канала «Стафф-инженер», и в этой статье я расскажу, какие принципы лежат в основе платформенной разработки, как они помогают снижать издержки и почему единые инструменты важнее бесконечных споров о том, какой фреймворк лучше.

Пошаговый разбор с метафорами, формулами и лайфхаками, которые спасут ваш fit()
Привет, хабровчане! В мире ML градиентный спуск это двигатель внутреннего сгорания: он везде, он работает, но мало кто заглядывает под капот, а ведь именно он превращает случайные веса в модель, которая угадывает котиков, переводит тексты и генерирует картинки.
Вы запускаете model.fit() - и через 100 эпох у вас есть результат, но как именно нейросеть «находит выход» из хаоса параметров? Почему иногда она перепрыгивает минимум, а иногда зависает в тупике? И как настроить learning_rate, чтобы не ждать до пенсии?
Полный разбор с нуля, с формулами и примерами. Давайте разберём по полочкам, чтобы было понятно даже новичку.

Привет, Хабр! Конструкции вроде 2>&1 и &> встречаются повсюду — в мануалах, скриптах, инструкциях. Их используют постоянно, но редко понимают до конца. Почему ошибки продолжают появляться в терминале, хотя, казалось бы, должны уходить в файл? Почему конвейер передаёт только часть вывода?
В статье разберём всё от базового синтаксиса до работы с tee и /dev/null - каждая часть будет разобрана и показана на практических примерах.