Обновить
2
0.1
mxr@mxr

Пользователь

Отправить сообщение

Анонимная сеть Hidden Lake: переход на постквантовую криптографию

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели6.2K

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

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

Читать далее

Qt-шные прокси-модели и их друзья

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели1.4K

Разрабатывая приложения на Qt или PyQt/PySide2 вы рано или поздно столкнетесь с необходимостью создания собственной реализации QAbstractItemModel и/или QAbstractProxyModel. Я хочу рассказать про одну конкретную проблему, с которой я столкнулся, разрабатывая прокси-модель с возможностью группировки объектов дерева.

Читать далее

Атаки на веб-кэширование. Отравление кэша: теория и практика

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.7K

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

В этой статье мы рассмотрим атаки обмана и отравления кэша, сконцентрировавшись на последнем: проследим историю возникновения и развития уязвимости, поговорим про кэш-движки и связанные с ними последние CVE. Также попробуем разобраться, как следует искать отравление кэша на реальных целях. Распишем методологию пентеста, оценим риски и последствия эксплуатации, обозначим общие подходы к защите.

Читать далее

Дизайн и реализация виртуальной машины CPython

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели5.3K

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

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

Читать далее

Правила файрволов не так уж и безобидны

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели4.7K

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

Под давлением ИТ отдела о важности задачи и горящих сроках, уверений, что вся работа стоит только из‑за запретов службы ИБ, вы выясняете, что сервер принадлежит компании разработчиков. И открываете доступ к данному серверу на брандмауэре. Чем это грозит? Рассказываем.

Читать далее

Inertia 2.0: Новые возможности для разработчиков

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.7K

На конференции Laracon Тэйлор Отвел, создатель популярного PHP-фреймворка Laravel, представил Inertia.js версии 2.0 — самое крупное обновление с момента запуска этого пакета. Новая версия приносит множество полезных функций, которые значительно упростят разработку приложений на Laravel и Inertia.js.

Читать далее

Простая нейронная сеть на C++

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели18K

Всем привет!

При помощи нейронной сети решил проблему классификации фигур на изображениях размера 7 на 7 пикселей. Задача решалась в рамках студенческой лабораторной работы. Статья приводится в качестве руководства для решения подобных академических задач.

Читать далее

C++ с точки зрения Rust-разработчика: достоинства и недостатки

Время на прочтение8 мин
Охват и читатели10K

Я профессионально программирую на Rust и, признаться, немного этот язык продвигаю. Поэтому можете себе представить глубину моего расстройства, когда моя младшая сестрёнка, почти не умеющая программировать, обратилась ко мне и попросила научить её C++. Я попытался её отговорить, сказав, что однажды она будет сидеть за отладкой ошибок сегментирования, вооружившись Valgrind и вспоминать этот наш разговор, размышляя, а где же она свернула не туда. Но она оказалась ещё упрямее меня и настаивала: хочу выучить язык программирования, которым действительно пользуются люди.

Я не притрагивался к C++ с тех пор, как ещё в старших классах разрабатывал игры на Cocos2D-X, но решил, что сохранившихся у меня туманных воспоминаний о «правиле трёх» (или сколько там было? Пять? Ноль?) и прочих подобных материях будет более чем достаточно, чтобы решить такую задачу. Оказалось, что и мне требуется кое-что подучить, но я с удовольствием узнал, что существует большая аудитория, с которой можно поделиться этими знаниями. Почти любую концепцию из C++ легко понять, если объяснить её в ключе «о, эта как та штука из Rust».

Притом, что C++ местами несимпатичен, этот язык по-своему красив. Я и так это знал, но, когда взялся заново учиться C++, мне стало только яснее: если Rust в какой-то степени и превосходит C++ (допустим, вы верите, что это так), то лишь потому, что сам Rust стоял на плечах такого гиганта как C++.

Так что мы потратили пару недель, проштудировав серию руководств по OpenGL от ютубера под ником TheCherno (кстати, сама серия отличная). Две недели спустя нам удалось на экране единственный статичный голубой квадратик. Я уже стал опасаться, а не начнёт ли моя сестра сомневаться, стоило ли таким образом изучать разработку игр и пытаться изобразить что-нибудь на C++. Так что тогда я решил, что следует отбросить руководства господина Черно и взяться за разработку игры всерьёз.

Читать далее

Nuclei Fu

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели1.7K

Привет, Хабр! Меня зовут Станислав Савченко, я ведущий эксперт базы знаний в CyberOK. За последний год в Nuclei было несколько крупных обновлений, которые принесли множество фич, таких как кодовая вставка, использование javascript в шаблонах, управление запросами через flow, внедрение подписи шаблонов и пр. Сегодня хотелось бы рассказать о возможных атаках на Nuclei, а именно о клиентских атаках, которые стали доступны благодаря этим нововведениям.

Читать далее

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Время на прочтение9 мин
Охват и читатели130K
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →

Auth service без библиотек

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.3K

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

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

Для кого эта статья: для тех, кто начинает осваивать методы аутентификации и авторизации в веб приложениях и хочет понять, как все устроено. Я намеренно избегал использования комплексных библиотек и фреймворков, чтобы на пальцах разобраться, какие методы нужны в Auth сервисе и как их использовать.

Читать далее

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

Время на прочтение5 мин
Охват и читатели4K

• Существует ли предрасположенность к многозадачности? 
• Как многозадачность влияет на эффективность? 
• Что рекомендуют специалисты? 

Читать далее

Gitea и ее безопасность

Время на прочтение4 мин
Охват и читатели7.1K

Рано или поздно, при работе с системой контроля версий Git у разработчиков появляется необходимость в использовании веб интерфейса. Существует несколько различных решений, предоставляющих подобный функционал, разной степени “платности”, однако, у многих разработчиков пользуется популярностью решение Gitea, о безопасности которого мы и поговорим сегодня.

Читать далее

Новый подход к саппорту: как мы переизобрели поддержку в 2024 и написали об этом книгу

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.5K

Привет! На связи Паша и Даша из Timeweb Cloud. Мы руководим отделом информационной поддержки и развиваем систему чуткого саппорта 24/7/365. За последние годы мы кратно выросли и зарекомендовали себя в числе лучших на рынке. Рост спровоцировал появление новых проблем, поэтому мы решили трансформировать процессы в командах с нуля.

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

Читать далее

Интервью из мира хостинга: Сергей из ua-hosting.company

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели3.6K

Всем привет! Меня зовут Леонид, я - владелец сервиса Поиск VPS. Сегодня я представляю вашему вниманию интервью с Сергеем - руководителем ua-hosting.company. В прошлом году состоялось открытие площадки компании в американском ЦОД Iron Mountain в Нью-Джерси. Недавно для меня провели экскурсию по дата-центру, а после мы обсудили нынешние особенности работы хостинга среднего размера и некоторые отличия европейской площадки от американской.

Читать далее

Реализуем эффективный тупль с помощью C++26

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7K

Свет видел много любительских реализаций std::tuple, и реализация своих велосипедов — наверное, это действительно действенный способ обучения: вряд-ли можно сказать, что ты что-то по-настоящему понимаешь, если не можешь объяснить, как это что-то устроено.

Многие пытливые умы на протяжении десятилетий задавались вопросом: как же реализован std::tuple, как мне реализовать свой тупль (кортеж)? [1]

И немало было дано ответов на такие вопросы и написано статей ([2]). Однако я берусь утверждать, что все они имеют один фатальный недостаток! Конкретнее, они все рассматривают в основном лишь один (и при этом неэффективный) способ реализации: с помощью множественного наследования или рекурсивного инстанцирования, имеющий в свой очередь множество своих недостатков, главный из которых — неэффективное использование памяти.

В то время как современный C++ позволяет реализовать тупль гораздо проще (без обилия шаблоноты) и эффективнее.

Войти в мир эффективных реализаций туплей

Разговор с быдло-кодером

Время на прочтение18 мин
Охват и читатели4.2K

Вернемся к одному из проектов дистрибутива программной платформы SimInTeh,  который был рассмотрен в двух статьях(см. [1, 2]). Он же под именем "Управление водонагревательным котлом" включен в раздел "Лабораторные работы по библиотекам" справочной системы SimInTech. Последнее должно предъявлять к нему повышенные требования, как к примеру, поясняющему, рекламирующему те или иные стороны и возможности программной платформы. Одним словом, он должен быть идеальным ...

Только недавно одна из найденных в нем ошибок  была устранена. Но не это знаменательное событие было причиной вернуться к данной теме, а пришедшая примерно в это же время рассылка, рекламирующая возможности "новейшей российской инженерной платформы Engee". В числе прочих ее достоинств описывались включенные в платформу конечные автоматы  (КА)[3], а в видео по ссылке прослеживалась явная любовь к светофорам. Но  нагреватель в этом смысле ни чуть не хуже, а даже предпочтительнее.

Но "спусковым крючком" стал эмоциональный всплеск не самой положительной оценки данной конечным автоматам (подробнее см. [4]). Примечательно, что прозвучал он со стороны тех, кто ранее ввел этот инструментарий в свою платформу и, как можно предполагать, использует. Видимо, они лучше знают возможности своих автоматов? Но, если серьезно, то это, скорее всего, результат отмеченного "всплеска", который за истину воспринимать не стоит. Тем не менее, необходимо что-то уточнить,  чтобы учесть и такое мнение о КА. 

Итак, перед нами проект "Нагреватель" или "Управление водонагревательным котлом". Я не смог сразу найти проект в ВКПа к тем еще статьям, но, если честно, не сильно его и искал, т.к. решил, что проще создать новый. Хотелось проверить, что получится, если повторить в ВКПа автоматы, полностью аналогичные ранее созданным программным автоматам на внутреннем языке платформы SimInTech. А поскольку они были спроектированы согласно концепциям автоматного программирования, то препятствий не предполагалось. Но ... воистину - "не было этого никогда и вот опять".

Читать далее

Многопоточность в играх

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели8.7K

Современные игры щедры на обилие контента, геймплейные механики и интерактивность. На экране происходит много всего и сразу — мир живой, отзывчивый и даже без активного участия игрока жизнь в нем продолжает кипеть, и мы наблюдаем исполнение множества событий одновременно.

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

Читать далее

Чему нас НЕ учат случаи МТС, СДЭК и КБ Радуга или Имитационная Безопасность

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели22K

Утром 17 марта (2024) стали недоступны VDS‑серверы одновременно в двух датацентрах CloudMTS — в 03:30 в 1cloud.ru, в 03:45 в oblako.kz
Сервер в oblako.kz ожил 18 марта в 22:25
Сервер в 1cloud.ru ожил 23 марта в 15:40

Читать далее

Пора оставить RAID-5 в далеком прошлом

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели20K

Для ЛЛ: RAID-5 совершенно не подходит для современных массивов из дисков на 5-10 Тб по нескольким причинам.

Читать далее

Информация

В рейтинге
4 289-й
Зарегистрирован
Активность

Специализация

Архитектор информационной безопасности
Ведущий
От 15 000 $
Ведение переговоров
C++
Qt
ООП
Linux
PHP
SQL
Nginx
Высоконагруженные системы
Проектирование архитектуры приложений