Компания Avast открыла исходные тексты декомпилятора машинного кода RetDec

Производитель антивирусного ПО Avast открыл исходные тексты декомпилятора машинного кода RetDec, на протяжении семи лет применяемого для анализа исполняемых файлов. Код открыт под лицензией MIT. Поддерживается сборка для Linux и Windows.

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

Продукт позволяет выполнять декомпиляцию независимо от целевой платформы, операционной системы и формата исполняемого файла. В том числе RetDec предоставляет расширенные алгоритмы и эвристические механизмы для декодирования и реконструкции приложений, даже при применении авторами вредоносного ПО техник запутывания кода и борьбы с декомпиляцией. Машинный код преобразуется в промежуточное представление LLVM, которое затем транслируется в высокоуровневые исходные тексты, в представлении похожем на Си или Python.

Основные возможности RetDec:

  • Поддержка форматов файлов ELF, PE, Mach-O, COFF, AR, Intel HEX или просто обработка произвольных кусков машинного кода;
  • Поддержка архитектур (только 32-разрядные): Intel x86, ARM, MIPS, PIC32 и PowerPC;
  • Статический анализ исполняемых файлов с выводом детальной информации;
  • Определение компилятора и упаковщика, использованных для сборки рассматриваемого исполняемого файла;
  • Декодирование машинных инструкций;
  • Удаление статически связанного библиотечного кода, выявляемого по сигнатурам;
  • Извлечение и применение отладочной информации в форматах DWARF и PDB;
  • Реконструкция языковых идиом;
  • Определение и реконструкция иерархии классов C++ (RTTI, vtable);
  • Декодирование символьной информации из бинарных файлов, добавляемой компиляторами C++ (GCC, MSVC, Borland);
  • Реконструирование функций, типов и высокоуровневых конструкций;
  • Встроенный дизассемблер;
  • Формирование вывода в виде читаемых высокоуровневнеых исходных текстов. Поддерживается генерация вывода в виде, похожем на C или Python;
  • Генерация графа потока выполнения, графа вызовов и различной статистики;
  • Наличие плагина для IDA, выполняющий декомпиляцию файлов непосредственно из дизассемблера.

Источник: [ссылка]

Релиз systemd 236

Леннарт Поттеринг представил релиз системного менеджера systemd 236. Из новшеств можно отметить поддержку формата дискового шифрования LUKS2, новые опции /etc/fstab (x-systemd.makefs, x-systemd.growfs), возможность использования Tmpfiles.d в пользовательском каталоге, поддержку привязки не только каталогов через «machinectl bind», серию новых настроек для unit-файлов.

Основные изменения:

  • Добавлена поддержка формата шифрования дисков LUKS2, примечательного упрощённой системой управления ключами, возможностью использования секторов большого размера (4096 вместо 512, снижает нагрузку при расшифровке), символьными идентификаторами разделов (label) и средствами резервирования метаданных с возможностью их автоматического восстановления из копии в случае выявления повреждения. Для использования LUKS2 требуется сборка с библиотекой libcryptsetup2;
  • В /etc/fstab добавлена обработка опций монтирования x-systemd.makefs и x-systemd.growfs, которые позволяют организовать форматирование ФС перед монтированием (действует только если раздел не отформатирован) или изменение размера ФС до границ блочного устройства после монтирования (действует только если ФС меньше размера раздела). Возможность изменения размера поддерживается только для ext4 и btrfs;
  • Каталог с настройками Tmpfiles.d теперь можно использовать в пользовательской конфигурации (~/.config/user-tmpfiles.d/). Для запуска настроек из ~/.config/user-tmpfiles.d/ в systemd-tmpfiles добавлена опция «—user», которая применяется в systemd-tmpfiles-setup.service и systemd-tmpfiles-clean.service для каждого сеанса пользователя;
  • В unit-файлы и настройки tmpfiles.d добавлена поддержка новых спецификаторов «%»: «%S» для определения базовой директории (например, /var/lib для системного контекста или $XDG_CONFIG_HOME для контекста пользователя), %C для директории с кэшем (/var/cache или $XDG_CACHE_HOME) и %L для директории с логами (/var/log или $XDG_CONFIG_HOME/log/);
  • В «machinectl bind» добавлена возможность применения привязки (bind mount) не только директорий, но и обычных файлов, устройств, fifo и сокетов;
  • В bootctl добавлена команда «list» для вывода списка доступных элементов загрузочного меню;
  • В systemd-firstboot добавлена возможность установки начальной раскладки клавиатуры;
  • Добавлена настройка LogLevelMax для задания максимального уровня лога, под которым любые процессы сервиса могут отправлять логи (все сообщения с более низким приоритетом будут отбрасываться);
  • Добавлена настройка LogExtraFields для включения дополнительных полей, которые будут прикрепляться ко всем записям в логе, генерируемом любым процессом, связанным с текущим unit-файлом;
  • Добавлены настройки StandardInputData и StandardInputText, а также опция StandardInput=data, которые могут применяться для определения текстовых или бинарных данных, которые нужно передать запускаемым процессам сервиса через стандартный ввод (данные кодируются прямо в директиве);
  • Настройки StandardInput, StandardOutput и StandardError теперь могут применяться для связывания stdin/stdout/stderr запускаемого процесса напрямую с файлом или сокетом AF_UNIX при помощи опции «file:»;
  • В unit-файлах появилась новая настройка CollectMode, при помощи которой можно управлять логикой работы сборщика мусора. Например, данная опция может применяться для активации чистки юнитов, которые не удалось запустить автоматически. В systemd-run и systemd-mount данная функциональность доступна через новую опцию «-G»;
  • В дополнение к FailureAction в юниты также добавлена настройка SuccessAction для определения действия, запускаемого на этапе завершения работы успешно выполненного юнита. Например, может потребоваться выполнять определённую работу внутри контейнера при его остановке;

  • В правилах networkd теперь можно использовать новые опции IncomingInterface и OutgoingInterface для настройки входящего и исходящего сетевых интерфейсов;
  • В systemd-networkd добавлена поддержка сетевых устройств «vxcan»;
  • В networkd добавлен флаг RequiredForOnline, который учитывается в systemd-wait-online при определении сетевой доступности системы;
  • В systemd-resolved добавлена возможность регистрации сервисов DNS-SD в локальной сети при помощи MulticastDNS;
  • В реализации DNSSEC из systemd-resolved добавлена поддержка RFC 8080 (ключи и цифровые подписи Ed25519);
  • В systemd-resolve добавлен набор опций «—set-dns», «—set-domain», «—set-llmnr», «—set-mdns», «—set-dnssec», «—set-nta» и «—revert» для динамического изменения настроек DNS, привязанных к сетевым интерфейсам;
  • В systemd-nspawn добавлена опция «—network-namespace-path», которую можно использовать для присоединения контейнера к существующему пространству имён через передачу пути к файлу «netns»;
  • В systemd-resolved добавлена поддержка файла /run/systemd/resolve/stub-resolv.conf, на который рекомендовано ставить символическую ссылку с /etc/resolv.conf. В новом файле настроен резолвинг через 127.0.0.53 (systemd-resolved) и включены динамически определяемые домены для поиска, позволяющие добиться более корректного определения имён DNS в программах не использующих локальный DNS API, такой как NSS;
  • В systemd-networkd реализация сервера для анонса маршрутов IPv6 (Router Advertisment) теперь может опционально анонсировать DNS-сервер и информацию о домене;
  • В DHCPv6-клиент networkd добавлена поддержка опции FQDN (RFC 4704);
  • Находящийся в каталоге modprobe.d файл, обеспечивающий переопределение параметров модуля bonding.ko для корректного управления интерфейсом bond0 из systemd-networkd, расширен установкой опции «numdummies=0» для модуля dummy.ko, препятствующей автоматическому созданию интерфейса dummy0 (все интерфейсы dummy должны быть явно заданы);

  • Запрещено применять неизвестные спецификаторы ‘%’ в файлах конфигурации unit-ов и в tmpfiles.d. Все символы процента, за которыми следуют буквы или цифры, не связанные со спецификаторами, теперь должны экранироваться в форме ‘%%’ (выражения вида «size=5%» и «size=5%,foo=bar» остаются допустимы, но «LABEL=x%y%z» приведёт к выводу ошибки);
  • Устанавливаемый udev тег «uaccess» больше не применяется к устройствам /dev/kvm и /dev/dri/renderD* для которых теперь по умолчанию выставляются права доступа 0666. Устройство /dev/dri/renderD*, как и /dev/kfd, теперь будет принадлежать группе «render»;
  • В systemd-timesyncd.service, systemd-journal-gatewayd.service и systemd-journal-upload.service включена опция «DynamicUser=yes» (при каждом запуске для сервиса создаётся новый пользователь с идентификатором из диапазона 61184..65519), которая требует добавления «nss-systemd» в /etc/nsswitch.conf для корректного сопоставления UID;
  • В journalctl добавлен параметр «—output-fields» для ограничения числа полей, выводимых в режимах verbose и JSON;
  • В systemd-timesyncd добавлены настройки «RootDistanceMaxSec», «PollIntervalMinSec» и «PollIntervalMaxSec» для установки максимально допустимой задержки при выборе серверов синхронизации времени и задания интервалов опроса;
  • В systemctl добавлена опция «—dry-run» для отображения планируемых действий без их фактического выполнения. В настоящее время опция пока поддерживается только в командах shutdown и sleep;
  • В обработчик настройки ConditionSecurity добавлена поддержка определения модулей TOMOYO;
  • Применяемые в unit-файлах секции «[Install]» теперь допустимо использовать и в файлах замены настроек из каталогов *.d;
  • В настройке SystemCallFilter теперь можно указывать значение «errno» для каждого системного вызова, например «SystemCallFilter=~uname:EILSEQ»;
  • В systemd-analyze добавлен параметр «calendar» для проверки и тестирования спецификаций календарного времени в настройках OnCalendar таймеров.

Источник: [ссылка]

Выпуск KDE Applications 17.12

Состоялся релиз набора KDE Applications 17.12, включающего подборку пользовательских приложений, адаптированных для работы с KDE Frameworks 5. Набор KDE Applications пришёл на смену приложениям из состава KDE SC, которые теперь развиваются в рамках отдельного цикла разработки, не привязанного к веткам KDE, и выпускаются по новой схеме нумерации версий. Информацию о наличии Live-сборок с новым выпуском можно получить на данной странице.

Основные новшества:

  • С kdelibs4 на использование KDE Frameworks 5 переведены музыкальный проигрыватель JuK, менеджер загрузки KGet, интерфейс микширования звука KMix, утилиты Sweeper и KMouth, редактор раскладки картинок KImageMapEditor и компонент Zeroconf-ioslave;
  • Добавлен новый пакет ksmtp с реализацией библиотеки для отправки сообщений по SMTP;
  • В файловом менеджере Dolphin появилась возможность сохранения результатов поиска и обращения к ним через отдельный ярлык в боковой панели. Также добавлена опция для ограничения поиска только каталогами, без вывода файлов. Упрощено переименование файлов — двойной клик на имени приводит к появлению поля для редактирования. На странице с информацией о файле появились сведения о дате модификации и изначальном URL, с которого был загружен файл. Для навигации по мультимедийным файлам предложены столбцы с жанром, битрейтом и датой выхода композиции;
  • В просмотрщике документов Okular добавлена поддержка разметки Markdown, проведена адаптация для экранов с высокой плотностью пикселей (HiDPI) и обеспечен показ медленно загружаемого документа по частям, по мере доступности. Также реализована опция для отправки документа на email;
  • В просмотрщике изображений Gwenview появилась возможность открытия и выделения изображений в файловом менеджере, увеличено качество масштабирования, улучшена навигация при помощи клавиатуры, добавлена поддержка форматов FITS и Truevision TGA, реализована защита от случайного удаления изображений при нажатии клавиши Delete (для удаления теперь нужно обязательно выделить изображение);
  • В видеоредакторе Kdenlive сокращено потребление памяти при работе с проектами, включающими большое число файлов. Улучшены предлагаемые по умолчанию прокси-профили, решена проблема с переходом на секунду вперёд при обратном воспроизведении;
  • В программе для работы с архивами Ark улучшена поддержка формата zip на базе библитеки libzip;
  • В текстовый редактор Kate включён новый плагин для предпросмотра документа в финальном виде, после применения доступных плагинов KParts (Markdown, SVG, Dot graph, Qt UI);
  • В программе для анализа патчей Kompare добавлено контекстное меню, действующее в области отображения изменений, предоставляющее опции для быстрого выполнения действий, связанных с навигацией и внесением изменений;
  • Проведена модернизация кода компонентов набора Kontact. Улучшено отображение зашифрованных сообщений. Добавлена поддержка MIME-типа text/pgp и Apple Wallet Pass. В KMail обновлена поддержка Microsoft Exchange, добавлена поддержка Nylas Mail и улучшен импорт из Geary через akonadi-import-wizard. Появилась возможность выбора отдельной папки IMAP в настройках работы во время отпуска, обеспечен вывод предупреждения при повторком открытии почты и несовпадении идентификатора или транспорта доставки;
  • Игра KTuberling портирована для платформы Android. Завершён перевод игр Kolf, KsirK и Palapeli на KDE Frameworks 5;
  • Исправлено 110 ошибок в Kontact Suite, Ark, Dolphin, Gwenview, K3b, Kate, Kdenlive, Konsole, Okular, Umbrello и других приложениях.
  • Прекращена поставка приложений, использующих Qt4 и kdelibs4 и не переведённых на Qt5 и KDE Frameworks 5. Из набора исключены приложения для которых не проводится работа по портированию: kopete, blogilo, kppp, kscd, kremotecontrol, klinkstatus, jovie, kfilereplace и kaccessible. Из набора также вышло приложение KStars, разработчики которого приняли решение развивать его в качестве многоплатформенного проекта, не привязанного к циклу разработки KDE.

    Источник: [ссылка]

Федеральное агентство по связи США отменяет правила сетевого нейтралитета

Федеральное агентство по связи США (FCC) проголосовало за отмену ранее установленных правил в отношении соблюдения сетевого нейтралитета, запрещавших платное повышение приоритета, блокирование доступа и ограничение скорости обращения к контенту и сервисам, распространяемым на законных основаниях.

Из 5 имеющих право голоса членов комиссии FCC, два, представляющих демократическую партию, выступали за сохранение сетевого нейтралитета, а другие два участника, выдвинутые республиканской партией, настаивали на отмене сетевого нейтралитета. Итоговым стал голос руководителя FCC, который проголосовал за отмену правил, устанавливающих сетевой нейтралитет. Представители Mozilla, EFF и других правозащитных организаций намерены добиться отмены принятого решения в Конгрессе США (Конгресс должен утвердить решение FCC) и через суд.

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

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

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

Источник: [ссылка]

Выпуск проекта TrueOS 17.12, пришедшего на смену PC-BSD

Состоялся третий стабильный выпуск проекта TrueOS, в котором используется окружение рабочего стола Lumina, файловая система ZFS и система инициализации OpenRC. Размер установочного iso-образа 2.8 Гб.

При разработке TrueOS используется rolling-модель и FreeBSD Current в качестве основы. При этом проектом поддерживаются две ветки: UNSTABLE с самыми свежими версиями программ и STABLE с отстающими по времени, но полностью протестированными выпусками программ. После прохождения дополнительного тестирование в STABLE ветку переносятся исправления, связанные с устранением серьёзных ошибок. Исключение сделано для рабочего стола Lumina и конфигуратора SysAdm, которые переносятся в STABLE ветку сразу после формирования новых выпусков, не дожидаясь общего шестимесячного цикла переноса обновлений.

Для установки и обновления всех частей системы, включая компоненты базовой системы, применяется пакетный менеджер pkg. Обновления могут устанавливаться как автоматически, так и в ручном режиме. Новую версию TrueOS также можно поставить в отдельный zpool, не нарушая работу уже установленной системы, что позволяет провести обновление с PC-BSD/FreeBSD без очистки диска с сохранением всей пользовательской информации. Из особенностей TrueOS также можно отметить применение LibreSSL вместо OpenSSL, графический конфигуратор SysAdm на базе Qt c возможностью удалённого управления, наличие свежих графических драйверов.

Ключевые новшества TrueOS 17.12:

  • Подготовлено более 1100 сервисов OpenRC для пакетов, находящихся в репозитории;
  • Значительно сокращено время загрузки, чего удалось добиться благодаря переработке сервисов OpenRC для FreeBSD;
  • Поставка отдельный установочных образов для серверов и рабочих столов. Сборки для серверов поставляются с текстовым инсталлятором, а для рабочих столов с графическим;
  • Возможность установки серверного TrueOS под управлением гипервизора Bhyve;
  • Компоненты FreeBSD обновлены до кодовой базы 12.0-CURRENT по состоянию на 4 декабря, а порты FreeBSD синхронизированы по состоянию на 30 ноября;
  • Рабочий стол Lumina обновлён с версии 1.3.0 до выпуска 1.4.1;
  • В дисплейный менеджер PCDM добавлена поддержка одновременного использования нескольких графических сеансов;
  • Для управления внешними накопителями задействован сервис automounter. Подключенные устройства отображаются на рабочем столе через создание ярлыка *.desktop в каталоге /media. Фактическое монтирование производится только при первом обращении к устройству. При прекращении активности устройство автоматически отмонтируется. Интегрирована поддержка разнообразных файловых систем (UFS, EXT, FAT, NTFS, ExFAT и т.п.);
  • Система обновления до нового релиза переведена на активируемый бэкенд установки обновлений, для запуска которого требуется нажать на кнопку Update Now в SysAdm, Lumina или PCDM. Промежуточные обновления по-прежнему выполняются автоматически по умолчанию (изменить поведение можно в Update Manager);
  • Кроме Lumina 1.4.1 доступны рабочие столы KDE 4.14.3, MATE 1.18.0, GNOME 3.18.0, Cinnamon 2.4.6, Xfce 4.12 и LXDE 1.0;
  • Обновлены версии программ, в том числе Libreoffice 5.3.7, Firefox 57.0.1 и 52.5.0, Chromium: 61.0.3163.11, Palemoon 27.6.2, QupZilla 2.1.2 (Qt5), Seamonkey 2.49.1, Python 3.6, Ruby 2.4, Perl 5.27, Rust 1.22.1, Go 1.9.2, Clang 3.8, LLVM 5.0.0, GCC 7.2.0, Puppet 5.3.3, Ansible 2.4.2.0, Salt 2017.7.2, Nginx 1.13.7, Git 2.15.1, GitLab 10.1.4, Subversion 1.9.7.

Источник: [ссылка]

HTML 5.2 получил статус рекомендованного стандарта

Консорциум W3C объявил о придании набору спецификаций HTML 5.2 статуса рекомендованного стандарта, а также опубликовал первый черновой вариант следующей версии стандарта — HTML 5.3. Ранее действующая спецификация HTML 5.1 объявлена устаревшей.

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

Ключевые изменения:

  • Добавлена поддержка API Payment Request, который позволяет организовать быстрое совершение платежей при помощи кредитной карты, без необходимости повторного ручного ввода типовой информации, такой как данные о плательщике, номер карты (для подтверждения вводится CVC-код) и адрес доставки;
  • Система внешних браузерных плагинов (Plugin API) объявлена устаревшей, все новые технологии, например, средства интеграции с устройствами виртуальной реальности, предлагается развивать в составе штатных Web-платформ;
  • Определение тега main изменено для обеспечения поддержки современных адаптивных методов вёрстки, например, можно указывать несколько тегов main в документе;
  • Тег style теперь можно использовать внутри тега body;
  • Добавлен тег dialog, позволяющий формировать диалоговые окна и управлять ими через JavaScript API;
  • Интегрирована поддержка JavaScript-модулей, определённых в спецификации ECMAScript 2015. Для загрузки модулей можно использовать тег «script» с флагом «type=module», а для экспорта и импорта модулей в JavaScript доступны операторы export и import;
  • Добавлена поддержка спецификации Content Security Policy Level 3 (CSP) и возможность использования определённого в ней атрибута nonce в теге link, через который можно передать одноразовое значение для определения факта загрузки и применения внешнего ресурса, указанного в теге link. Реализована возможность определения правил CSP для блокирования inline-элементов;
  • Добавлен атрибут ReferrerPolicy, позволяющий контролировать какие данные будут передаваться в заголовке Referrer для элементов a, area, img и iframe. Например, same-origin — заполнять только для того же домена, strict-origin — всегда отправлять обрезанным, strict-origin-when-cross-origin — отправлять обрезанным на другие хосты;
  • Добавлена поддержка Presentation API для организации передачи содержимого экрана на другие устройства. Например, при открытии сайта на смартфоне можно организовать показ презентации на телевизоре. Для разрешения применения Presentation API следует использовать значение allow-presentation в атрибуте sandbox в iframe;
  • Тег div теперь может быть дочерним элементом тега dl;
  • Производителям браузеров предписано улучшить поддержку email-адресов, содержащих символы национальных алфавитов (подобные адреса должны корректно отображаться в теге input с типом email);
  • Для ссылок добавлена поддержка атрибута noreferrer, позволяющего организовать переход по ссылке без передачи Referrer;
  • Добавлена поддержка методов registerContentHandler(), isContentHandlerRegistered() и isProtocolHandlerRegistered();
  • В интерфейс HTMLElement добавлена поддержка IDL-атрибута innerText;
  • Определён специальный URL «about:html-kind» для определения вида трека через URL в MP4;
  • URL «data:» теперь должен обрабатываться как не связанный с текущей страницей (отдельный origin);
  • Прекращена поддержка тегов keygen, menu и menuitem, атрибута showModalDialog, а также атрибута inputmode для текстовых данных в теге input.

Источник: [ссылка]

Сравнение качества кода Firebird, MySQL и PostgreSQL в анализаторе PVS-Studio (реклама)

Компания СиПроВер опубликовала результаты сравнения качества кода СУБД Firebird, MySQL и PostgreSQL, проведённого по результатам проверки при помощи продукта PVS-Studio, позволяющего выявить ошибки, дефекты и потенциальные уязвимости на основе статического анализа кода.

Если рассматривать все выданные анализатором предупреждения, то результат проверки выглядит следующим образом:

СУБД

Высокий уровень достоверности предупреждений

Средний уровень достоверности

Низкий уровень достоверности

Всего

Firebird

156

680

1045

1881

MySQL

902

1448

2925

5275

PostgreSQL

611

1432

1576

3619

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

При рассмотрении числа предупреждений по отношению к количеству строк кода, Firebird и PostgreSQL показали примерно одинаковые результаты (у PostgreSQL много предупреждений в автосгенерированном коде). В MySQL число предупреждений немного выше, но не существенно. Другая ситуация наблюдается при попытке ручной проверки типовых предупреждений. Например, MySQL присвоено 3 штрафных балла за проблемы затирания приватных данных, 1 штрафной балл за отсутствие проверки валидности указателя, возвращаемого malloc, 3 штрафных балла за использование потенциально нулевого указателя, 2 балла за подозрительное использование элементов перечислений, 2 балла за неверное вычисление размера блока памяти и 2 балла за пропущенное ключевое слово throw.

В свою очередь, PostgreSQL получил лишь 3 штрафных балла за использование потенциально нулевого указателя, а Firebird получил 1 штрафной балл за подозрительное использование элементов перечислений, 2 балла за вызов неверного оператора освобождения памяти и 1 балл за использование потенциально нулевого указателя. В итоге, меньше всего штрафных баллов получил PostgreSQL — 3, на втором месте Firebird — 4 и худший результат показал MySQL — 13 штрафных баллов.

С учётом того, что в PostgreSQL выявлено достаточно много предупреждений в автосгенерированном коде, а отрыв в один бал от Firebird вызван проблемой среднего уровня достоверности, решено поделить первое место между PostgreSQL и Firebird.

Источник: [ссылка]

Выпуск дистрибутива для создания сетевых хранилищ FreeNAS 11.1

Подготовлен релиз FreeNAS 11.1, дистрибутива для быстрого развёртывания сетевого хранилища (NAS, Network-Attached Storage). Дистрибутив основан на кодовой базе FreeBSD, отличается интегрированной поддержкой ZFS и возможностью управления через веб-интерфейс, построенный с использованием Python-фреймворка Django. Для организации доступа к хранилищу поддерживается FTP, NFS, Samba, AFP, rsync и iSCSI, для повышения надежности хранения может применяться программный RAID (0,1,5), для авторизации клиентов реализована поддержка LDAP/Active Directory. Установочный iso-образ (620 Мб) подготовлен только для архитектуры x86_64.

Основные изменения:

  • Кодовая база синхронизирована с FreeBSD 11.1, обновлены драйверы и добавлена поддержка процессоров Intel Xeon Scalable и AMD Ryzen, а также систем хранения HBA 9400-91;
  • Добавлена возможность импорта и экспорта данных в облачные системы. Поддерживаются режимы синхронизации (резервное копирование), перемещения (исходные данные удаляются) и копирования только изменившихся данных между локальной системой и такими облачными провайдерами, как Amazon S3 (Simple Storage Services), Backblaze B2 Cloud, Google Cloud и Microsoft Azure;
  • Увеличена производительности OpenZFS при обработке нескольких снапшотов и работе с большими файлами;
  • Предоставлена возможность управления приоритетом операций перестроения (resilver) данных (например, операции можно сделать более приоритетными в определённые часы для снижения рисков, связанных с перестроением массива на дисках большой емкости);
  • Добавлена начальная поддержка запуска контейнеров Docker, а также средств для автоматического развёртывания приложений в контейнерах и графического инструментария для управления контейнерами Docker;
  • Обновлён новый экспериментальный web-интерфейс на базе фреймворка Angular, который пока находится на стадии бета-тестирования. По сравнению с прошлым выпуском добавлена возможность выбора тем оформления и расширены доступные функции. По своим возможностям новый интерфейс пока отстаёт от предлагаемого по умолчанию, но в следующем выпуске планируется достичь паритета в функциональности.

    Источник: [ссылка]

Релиз эмулятора QEMU 2.11.0

Доступен релиз проекта QEMU 2.11. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 2.11 внесено более 2000 изменений от 165 разработчиков.

Ключевые улучшения, добавленные в QEMU 2.11:

  • В VFIO-устройствах проброса доступа к GPU NVIDIA (p2p DMA) добавлена экспериментальная поддержка технологии NVIDIA GPUDirect Cliques;
  • Добавлен эмулятор TPM (Trusted Platform Module);
  • Улучшена поддержка запуска гостевых систем на базе Hyper-V поверх гипервизора KVM, добавлена возможность использования более 64 виртуальных CPU на гостевую систему Hyper-V;
  • Добавлено новое устройство pcie-pci-bridge для проброса PCIe через PCI, поддерживающее горячее подключение устройств, SHPC и способное выступать в качестве замены i82801b11 DMI для PCI bridge;
  • Увеличена производительности при использовании интегрированной поддержки формата шифрованных разделов LUKS на блочных устройствах;
  • Добавлено системное руководство qemu-block-drivers;
  • Предоставлена возможность горячего подключения watchdog-устройств и указания watchdog-действий во время работы;
  • В графическом интерфейсе улучшена поддержка работы VNC через Websockets и задействована БД keycodemapdb для сопоставления скэнкодов с кодами символов;
  • В эмулятор архитектуры ARM добавлена поддержка эмуляции плат Smartfusion2, увеличена производительность проброса PCI с использованием INTx, улучшена поддержк Xen для гостевых систем на базе архитектуры AArch64;
  • В эмулятор архитектуры OpenRISC добавлена экспериментальная поддержка многопроцессорных систем (SMP);
  • В эмуляторе архитектуры PowerPC налажена работа различных типов Mac-систем и добавлена поддержка виртуальных режимов SMT;
  • В эмуляторе архитектуры s390 появилась поддержка устройств virtio-input-ccw и virtio-gpu-ccw, горячего подключения CPU через новый интерфейс device_add и экспериментальная поддержка полной эмуляции нескольких потоков vcpu;
  • В эмулятор архитектуры SPARC добавлена эмуляция адаптера sunhme (Happy Meal Ethernet) и обеспечено использование мостов Simba PCI для более качественного соответствия топологии Ultra 5 PCI.

Источник: [ссылка]

Проект Linaro представил ERP 17.12, дистрибутив для ARM-серверов

Разработчики проекта Linaro, занимающегося оптимизацией и улучшением поддержки архитектуры ARM в Linux и различных открытых проектах, представили выпуск эталонного дистрибутива Linaro ERP 17.12 (Enterprise Reference Platform). Целью разработки является предоставление полностью протестированной, готовой к применению и документированной открытой реализации программного окружения для промышленных серверов на базе процессоров ARM.

В состав платформы входит оптимизированное для ARM ядро Linux, пользовательский инструментарий и набор дополнительных открытых компонентов, проверенных в окружении существующих выпусков платформы. Дистрибутив собирается и тестируется для оборудования, выпускаемого участниками рабочих групп Linaro Enterprise Group и Linaro Developer Cloud, и может применяться в качестве эталонного примера для построения собственных вариантов продуктов.

В настоящее время в ERP обеспечена поддержка серверных ARM-платформ Cavium ThunderX, HiSilicon D03, HiSilicon D05, HP Proliant m400 и Qualcomm Centriq 2400. Для всех этих платформ поставляется единая универсальная сборка, не требующая применения отдельных пакетов с ядром. Установка обеспечивается сетевым инсталлятором, заимствованным из Debian 9.2 «Stretch» (размер установочного образа 46 Мб).

Предлагаемый пакет с ядром Linux основан на выпуске 4.14, в который бэкпортированы патчи, уже переданные для включения в более новые выпуски ядра и содержащие исправлений ошибок, выявленных в процессе работы по контролю качеста платформы. Ядро пригодно для использования в базовых окружениях, построенных на базе Debian и CentOS. Из дополнительных протестированных программных компонентов отмечаются Docker 1.12.6, стек Bigtop 1.2 (Hadoop 2.7.3, Spark 2.1, Hive 1.1.3), ELK 5.4.1, OpenJDK 8, Libvirt 3.8.0, QEMU 2.10 и DPDK 17.11.

Источник: [ссылка]

Выпуск графического редактора GIMP 2.9.8

Представлен новый выпуск графического редактора GIMP 2.9.8. Ветка 2.9.x отнесена к категории экспериментальных и служит основой для разработки значительного релиза GIMP 2.10. GIMP 2.9.8 станет последним промежуточным выпуском, на следующей стадии ожидается заморозка кодовой базы и переход к финальной стадии подготовки GIMP 2.10, перед которым для окончательной стабилизации планируется выпустить кандидат в релизы.

Новая ветка примечательна повсеместным переводом внутренних подсистем на фреймворк обработки изображений GEGL (Generic Graphics Library), что позволило реализовать такие возможности как использование глубины цвета в 16 и 32 бит на канал (как целочисленные, так и с плавающей точкой) и цветовые профили ICC v4, а также повысить эффективность обработки больших изображений. Из новшеств также можно отметить переработанное оформление интерфейса пользователя, поддержку форматов OpenEXR и WebP, предпросмотр применения фильтров на холсте, унификацию инструментов трансформации, задействование OpenCL для выноса обработки графики на плечи GPU, поддержка кистей от проекта MyPaint, возможность многопоточного выполнения операций в GEGL.

Основные изменения по сравнению с прошлым выпуском:

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

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

  • Добавлен фильтр Clip Warning для визуализации на фотографии областей со слишком малой или слишком большой экспозицией, на которых наблюдается пропадание деталей в тёмных или светлых местах;
  • Преобразование изображений между разными цветовыми пространствами переведено на использование библиотеки babl, если применяются ICC-профили на основе матриц. По сравнению с использованием LittleCMS 2, использование babl позволило до 5 раз ускорить выполнение преобразований;
  • Расширена поддержка работы в окружениях на базе Wayland. В дополнение к ранее добавленной возможности создания скриншотов в GNOME поверх Wayland, аналогичная возможность обеспечена и для KDE на базе Wayland. В KDE/Wayland также теперь работоспособен виджет для определения цвета точки (Color Picker). В GNOME/Wayland возможности данного виджета пока ограничены окнами GIMP;
  • По аналогии с командой Paste in Place в Inkscape реализована возможность для вставки контента из общего буфера обмена или именованных буферов обмена в то же самое место, т.е. в позицию из которой контент был изначально скопирован, а не по центру видимой области;
  • Проведена работа по улучшению пользовательского интерфейса. Виджет spinscale теперь по разному подсвечивает вертикальные части ползунка, давая понять, что положение курсора имеет значение. При изменении значений через пошаговый переключатель указатель меняет вид, позволяя плавно продолжить корректировку параметра;
  • В инструментах трансформации теперь можно нажать клавишу модификатора как до, так и после нажатия/отпускания клавиши мыши;
  • Окно с информацией о выбранном цвете в инструменте определения цвета теперь запоминает настройки режимов между сеансами;
  • Информация о вращении или перевороте холста теперь отображается в статусной строке с указанием градуса наклона или индикатора переворота. Клик на данные индикаторы приводит к открытию диалога настройки наклона или отменяет переворот холста;
  • Добавлена возможность выбора языка для отображения руководства пользователя (Interface > Help System), независимо от применяемой локали (например, когда пользователь хочет видеть интерфейс на английском, а руководство на русском языке).
  • Улучшен фильтр вейвлетного разложения (Wavelet Decompose), в котором появились опции для размещения стека разложения в отдельной группе слоёв и для добавления маски слоя к каждому слою масштабирования;
  • В плагине импорта и экспорта файлов в формате PSD налажена корректная работа с файлами Photoshop с большим уровнем вложенности групп слоёв. Также обеспечено сохранение расширенного состояния групп, позиции маски и прозрачности слоя при импорте и экспорте.
  • В плагине для поддержки формата PDF добавлена возможность загрузки файлов, защищённых паролем (пользователю выводится запрос на ввод пароля);
  • Добавлена возможность импорта файлов в формате HGT, в котором НАСА и другие космические агентства распространяют цифровые модели рельефа (Digital Elevation Model). Поддерживаются модели SRTM-1 и SRTM-3, которые импортируются как RGB-изображения в оттенках серого цвета. При желании при помощи фильтра Gradient Map можно раскрасить рельеф по своему усмотрению.

Источник: [ссылка]

Выпуск Cryptsetup 2.0

Доступен релиз набора утилит Cryptsetup 2.0, предназначенных для настройки шифрования дисковых разделов в Linux при помощи модуля dm-crypt. Поддерживается работа с разделами dm-crypt, LUKS, loop-AES и TrueCrypt с расширениями VeraCrypt. В состав также входят утилиты veritysetup и integritysetup для настройки средств контроля целостности данных на основе модулей dm-verity и dm-integrity.

В новой версии обеспечена поддержка дискового шифрования с использованием формата LUKS2, примечательного упрощённой системой управления ключами, возможностью использования секторов большого размера (4096 вместо 512, снижает нагрузку при расшифровке), символьными идентификаторами разделов (label) и средствами резервирования метаданных с возможностью их автоматического восстановления из копии в случае выявления повреждения. Поддержка ранее используемого формата LUKS1 сохранена в полном объёме с обеспечением обратной совместимости. Для преобразования из формата LUKS1 в LUKS2 реализована команда «cryptsetup convert».

В новой версии также представлена поддержка аутентифицированного дискового шифрования (Authenticated Encryption, гарантирует, что блок данных не был модифицирован обходным путём) и контроля целостности данных без шифрования на основе модуля ядра dm-integrity. Для управления модулем dm-integrity добавлена новая утилита integritysetup. Режим аутентифицированного дискового шифрования позволяет совместить защиту данных от чужих глаз и средства обеспечения целостности, как с позиции предотвращения скрытых случайных повреждений информации, так и для блокирования внесения неавторизированных изменений на дисковом уровне.

Среди других изменений:

  • Новая реализация функции хэширования паролей PBKDF (Password-Based Key Derivation Function), ориентированная на затруднение проведения параллелизированных атак по подбору пароля по словарю (не позволяет применять GPU из-за потребности в большом размере памяти для вычисления хэша).
  • Добавлена опция «—pbkdf-force-iterations», позволяющая самостоятельно выбрать уровень защиты PBKDF, балансируя между затруднением словарного подбора и потреблением ресурсов CPU/потреблением памяти/задержкой при входе.
  • Возможность использования хэш-функции Argon2 для создания ключей на основе заданного пользователем пароля.
  • Поддержка применения встроенного в ядро Linuх хранилища ключей (Kernel keyring) для передачи ключей и паролей доступа к разделу. Поддержка автоматической активации раздела по находящемуся в хранилище ключей токену.
  • Поддержка открытия разделов VeraCrypt, в которых используется Personal Iteration Multiplier (PIM).
  • Возможность запоминания выбранных для разделов флагов (например, включение TRIM).
  • Новая команда «—deferred» которая позволяет пометить устройство для удаления, но произвести удаление после того как оно перестанет использоваться (например, после отмонтирования связанного с ним разедела).

Источник: [ссылка]