Магелланова ошибка: Buffer overrun или кругосветная экспедиция средствами SQLite FTS

Как-то обошли на Хабре недавнюю Magellan-ошибку и связанные с ней уязвимости, попробую исправить это упущение.

Немного истории

  • 1 Ноября 2018 в Chromium прилетел баг-репорт за номером 900910: «Multiple issues in SQLite via WebSQL.» Об ошибке сообщает Wenxiang Qian из Tencent Blade Team.
  • 5 Ноября 2018 ошибку закрывают в ядре библиотеки SQLite (FTS3), где она собственно и живет чуть не со времен создания модуля, т.е. с ноября 2009-го года.
  • 28 Ноября 2018 оно вливается в Chromium
  • Чуть позже Tencent Blade Team публикует сообщение об ошибке, дав ей название Magellan, особенно не раскрывая при этом подробностей, и указав, что публикация готовых эксплойтов и PoC пока не планируется.
  • Через неделю в интернете полно PoC, крэшащих Chrome, Electron dev-framework и т.п. Доказательств и каких-либо других сведений, что уязвимость использовалась в злонамеренных целях по прежнему нет.
  • DRH, подтвердил подозрения на Hacker News, что уязвимость имеет место (как минимум если допускается исполнение «чужого» SQL-запроса, или SQL Injection подобного сценария).

Что может быть подвержено уязвимости?

Потенциально, все устройства и программы, использующие SQLite (с включенным FTS) или использующие или на нем базирующиеся приложения (как например Chromium). Степень насколько они могут быть затронуты и эффект возможного «поражения» зависят от того, найден ли подходящий вектор атаки.

Немного подробнее о Magellan SQLite BUG

Читать дальше →
Магелланова ошибка: Buffer overrun или кругосветная экспедиция средствами SQLite FTS
Source: habrahabr

[Перевод] Удивительная производительность параллельных алгоритмов C++17. Миф или Реальность?

Добрый вечер!

От нашего курса «Разработчик C++» предлагаем вам небольшое и интересное исследование про параллельные алгоритмы.

Поехали.

С появлением параллельных алгоритмов в C++17, вы с легкостью можете обновить свой “вычислительный” код и получить выгоду от параллельного выполнения. В этой статье, я хочу рассмотреть STL алгоритм, который естественным образом раскрывает идею независимых вычислений. Можно ли ожидать 10-кратного ускорения при наличии 10-ядерного процессора? А может больше? Или меньше? Поговорим об этом.

Введение в параллельные алгоритмы

Читать дальше →
[Перевод] Удивительная производительность параллельных алгоритмов C++17. Миф или Реальность?
Source: habrahabr

Верификация фотографий в ритейле с помощью Computer vision

Вступление

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

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

Обычно банки решают эту задачу с помощью верификации фотографии – сотрудники офиса просматривают фотографии и пытаются выявить недостоверные изображения.
Мы захотели попробовать автоматизировать процесс и решить задачу с помощью нейросетей.
Читать дальше →
Верификация фотографий в ритейле с помощью Computer vision
Source: habrahabr

Роскомнадзор планирует внедрить новую систему блокировок стоимостью 20 млрд рублей


Источник изображения: ВладТайм

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

Стало известно, что новая система построена на технологии DPI (глубокий анализ пакетов). Оборудование такого типа анализирует трафик, выделяя из него пакеты, которые характерны для тех либо иных сайтов и приложений, после чего блокирует нежелательный трафик.
Читать дальше →
Роскомнадзор планирует внедрить новую систему блокировок стоимостью 20 млрд рублей
Source: habrahabr

Настройка Jira под ваши нужды. Синхронизация команд в потоке проектов

В предыдущей статье я рассказал, какие надстройки для Jira мы сделали, чтобы рабочий флоу стал максимально удобным, а тикет — исчерпывающе информативным. В сегодняшней статье мы решим другую задачу.

Дано:

  • вы разрабатываете и поддерживает сложный программный продукт, работающий на нескольких клиентах;
  • у вас несколько инженерных команд (бекенд, IT Ops, iOS, Android, веб и т. д.), которые работают независимо друг от друга с отдельными беклогами;
  • у вас несколько продуктовых направлений, то есть, грубо говоря, один продуктовый менеджер ведёт несколько проектов по своему направлению, другой менеджер — по своему;
  • ваши инженерные команды функциональны, то есть они не выделены на отдельные продуктовые направления, а решают задачи всех юнитов сразу, обслуживая определённую часть технологического стека;
  • и, конечно, вы используете Jira!

Читать дальше →
Настройка Jira под ваши нужды. Синхронизация команд в потоке проектов
Source: habrahabr

Jira против хаоса в разработке: как не терять задачи

В предыдущей статье я рассказал, какие надстройки для Jira мы сделали, чтобы рабочий флоу стал максимально удобным, а тикет — исчерпывающе информативным. В сегодняшней статье мы решим другую задачу.

Дано:

  • вы разрабатываете и поддерживает сложный программный продукт, работающий на нескольких клиентах;
  • у вас несколько инженерных команд (бекенд, IT Ops, iOS, Android, веб и т. д.), которые работают независимо друг от друга с отдельными беклогами;
  • у вас несколько продуктовых направлений, то есть, грубо говоря, один продуктовый менеджер ведёт несколько проектов по своему направлению, другой менеджер — по своему;
  • ваши инженерные команды функциональны, то есть они не выделены на отдельные продуктовые направления, а решают задачи всех юнитов сразу, обслуживая определённую часть технологического стека;
  • и, конечно, вы используете Jira!

Читать дальше →
Jira против хаоса в разработке: как не терять задачи
Source: habrahabr

Исправляем опечатки в поисковых запросах

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

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

Может показаться, что мы отказали пользователю в его мечте о вертикальной реальности, но на самом деле буква К просто стоит на клавиатуре рядом с буквой У.

В этой статье мы разберём один из классических подходов к исправлению опечаток, от построения модели до написания кода на Python и Go. И в качестве бонуса — видео с моего доклада «”Очки верткальной реальности”: исправляем опечатки в поисковых запросах» на Highload++.
Читать дальше →
Исправляем опечатки в поисковых запросах
Source: habrahabr

[Из песочницы] Предиктивное поведение веб-интерфейса

image

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

Читать дальше →
[Из песочницы] Предиктивное поведение веб-интерфейса
Source: habrahabr

Проверка проекта LibrePCB с помощью PVS-Studio внутри Docker контейнера

PVS-Studio and Docker Container

Это классическая статья о том, как наша команда проверила открытый проект LibrePCB с помощью статического анализатора кода PVS-Studio. Однако статья интересна тем, что проверка осуществлялась внутри Docker контейнера. Если вы использует контейнеры, то надеемся, что статья продемонстрирует ещё один простой способ встроить анализатор в процесс разработки.
Читать дальше →
Проверка проекта LibrePCB с помощью PVS-Studio внутри Docker контейнера
Source: habrahabr