• Full disclosure: 0day-уязвимость побега из VirtualBox

    image


    Мне нравится VirtualBox, и он не имеет никакого отношения к причине, по которой я выкладываю информацию об уязвимости. Причина заключается в несогласии с текущими реалиями в информационной безопасности, точнее, в направлении security research и bug bounty.

    Читать дальше →
  • Самые маленькие Linux-компьютеры



      Несколько дней назад активисты движения за свободное аппаратное обеспечение выпустили вторую версию крошечного Linux-компьютера VoCore2 размером 25,6×25,6×3,0 мм, то есть с крупную монету (почти вписались по площади в квадратный дюйм). В спичечный коробок поместится примерно восемь таких компьютеров.

      Это потомок того самого VoCore, на который собирали деньги через Indiegogo. Всё-таки собрали, и проект живёт. Это абсолютно открытый компьютер, который кто угодно может собрать из указанных комплектующих (или купить плату в сборе за $17,99). Компьютер работает на прошивке OpenWrt/LEDE, то есть идеально подходит на роль портативного маршрутизатора.
      Читать дальше →
    • 1M HTTP rps на 1 cpu core. DPDK вместо nginx+linux kernel TCP/IP

        Я хочу рассказать о такой штуке как DPDK — это фреймворк для работы с сетью в обход ядра. Т.е. можно прямо из userland писать\читать в очереди сетевой карты, без необходимости в каких либо системных вызовах. Это позволяет экономить много накладных расходов на копирования и прочее. В качестве примера я напишу приложение, отдающее по http тестовую страницу и сравню по скорости с nginx.
        Читать дальше →
      • Hessian-Free оптимизация с помощью TensorFlow

          Добрый день! Я хочу рассказать про метод оптимизации известный под названием Hessian-Free или Truncated Newton (Усеченный Метод Ньютона) и про его реализацию с помощью библиотеки глубокого обучения — TensorFlow. Он использует преимущества методов оптимизации второго порядка и при этом нет необходимости считать матрицу вторых производных. В данной статье описан сам алгоритм HF, а так же представлена его работа для обучения сети прямого распространения на MNIST и XOR датасетах.

          Читать дальше →
          • +29
          • 6,3k
          • 8
        • APTSimulator — тестирование противодействия APT угрозам


             
            APT Simulator — это фреймворк для проверки защитных средств и действия по расследованию инцидентов в Windows среде, имитирующий активность нарушителя информационной системы. Это хорошая платформа для тренировки Blue Team команды для противодействия современным угрозам.

            Читать дальше →
          • Смарт-контракт ловушка в сети Ethereum

              Недавно, просматривая опубликованные смарт контракты в сети Эфириум, наткнулся на один интересный контракт с уязвимостью внутри. С первого взгляда, разработчик ошибся в коде и вы можете получить деньги контракта, но если внимательно проанализировать логику контракта, все выглядит совершенно иначе.
              Читать дальше →
            • Сверточная сеть на python. Часть 2. Вывод формул для обучения модели


                В прошлой статье мы рассмотрели концептуально все слои и функции, из которых будет состоять будущая модель. Сегодня мы выведем формулы, которые будут отвечать за обучение этой модели. Слои будем разбирать в обратном порядке — начиная с функции потерь и заканчивая сверточным слоем. Если возникнут трудности с пониманием формул, рекомендую ознакомиться с подробным объяснением (на картинках) метода обратного распространения ошибки, и также вспомнить о правиле дифференцирования сложной функции.
                Читать дальше →
              • Делаем адаптивный HTML, добавляя одну строку в CSS

                • Перевод
                image

                В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

                И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
                Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

                Рассмотрим все подробнее.
                Читать дальше →
              • Криптография русского крестьянина

                • Перевод

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

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

                Умножение методом русских крестьян


                Если вы не знали о нём раньше, то это довольно любопытный подход к умножению, который не требует запоминания таблиц умножения — для него достаточно способности удваивать и делить пополам целые числа. Не очень понятно, как он относится к русским крестьянам: похоже, так же, как «датская сдоба» к Дании. Этот метод был известен ещё древним египтянам, которые явно жили намного раньше русских крестьян.

                Общее описание метода просто, но не слишком информативно. Тем не менее, давайте начнём с него.
                Читать дальше →
              • Не было печали, апдейтов накачали

                  У меня дома используется Debian Sid. Большей частью он весьма и весьма хорош, но местами он слишком Bleeding слишком Edge. Например, когда отгружает пакеты, ломающие работоспособность системы. Вчера приехал wpasupplicant, который сломал мне wifi. Я его откатил, но в процессе я подумал, что многие пользователи не умеют этого делать. Рассказ "как откатить плохой apt-get install/upgrade" — в этом посте.


                  Ситуация


                  Мы сделали apt-get install что-то, или apt-get upgrade, или даже apt-get dist-upgrade, и после перезагрузки (или даже сразу же) обнаружили, что так нельзя. Сервис не стартует, убрана важная нам фича, кто-то падает и т.д. Мы хотим откатиться. Но вот, незадача — куда именно мы не знаем, потому что какая была версия до обновления мы не знаем.

                  Читать дальше →
                • 36 материалов о нейросетях: книги, статьи и последние исследования

                    Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

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

                    Читать дальше →
                    • +23
                    • 40,6k
                    • 8
                  • Доступно о криптографии на эллиптических кривых

                    • Перевод
                    image


                    Тем, кто знаком с криптографией с открытым ключом, наверно известны аббревиатуры ECC, ECDH и ECDSA. Первая — это сокращение от Elliptic Curve Cryptography (криптография на эллиптических кривых), остальные — это названия основанных на ней алгоритмов.

                    Сегодня криптосистемы на эллиптических кривых используются в TLS, PGP и SSH, важнейших технологиях, на которых базируются современный веб и мир ИТ. Я уже не говорю о Bitcoin и других криптовалютах.

                    До того, как ECC стала популярной, почти все алгоритмы с открытым ключом основывались на RSA, DSA и DH, альтернативных криптосистемах на основе модулярной арифметики. RSA и компания по-прежнему популярны, и часто используются вместе с ECC. Однако несмотря на то, что магия, лежащая в фундаменте RSA и подобных ей алгоритмов легко объяснима и понятна многим, а грубые реализации пишутся довольно просто, основы ECC всё ещё являются для большинства людей загадкой.

                    В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
                    Читать дальше →
                  • «Магическая константа» 0x5f3759df

                    • Перевод
                    В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

                    Вот полная реализация этого алгоритма:

                    float FastInvSqrt(float x) {
                      float xhalf = 0.5f * x;
                      int i = *(int*)&x;  // представим биты float в виде целого числа
                      i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
                      x = *(float*)&i;
                      x = x*(1.5f-(xhalf*x*x));
                      return x;
                    }

                    Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

                    image

                    Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
                    В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

                    Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
                    Читать дальше →
                  • 24-ядерный CPU, а я не могу сдвинуть курсор

                    • Перевод
                    Всё началось, как это часто бывает, когда моя машина стала подтормаживать. На рабочем компьютере Windows 10 c 24-ядерным процессором (48 потоков), который на 50% простаивал. Из 64 ГБ памяти использовалось меньше половины. Быстрый SSD тоже не особо использовался. И всё же, когда я двигал мышкой, курсор реагировал не сразу — иногда с задержкой в несколько секунд.

                    Так что я сделал то, что и всегда — записал и проанализировал трассировку событий с помощью ETW. В результате я обнаружил баг Windows 10, серьёзно влияющий на производительность завершения процессов.

                    Трассировка ETW показала, что UI зависает во многих программах. Я решил исследовать 1,125-секундное зависание в Диспетчере задач:


                    Читать дальше →
                  • 10 основных ошибок, совершаемых Django-разработчиками

                    • Перевод


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

                    Читать дальше →
                  • Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным

                      Nginx, однозначно, один из крутейших веб-серверов. Однако, будучи в меру простым, довольно расширяемым и производительным, он требует уважительного отношения к себе. Впрочем, это относится к почти любому ПО, от которого зависит безопасность и работоспособность сервиса. Признаюсь, нам нравится Nginx. В Яндексе он представлен огромным количеством инсталляций с разнообразной конфигурацией: от простых reverse proxy до полноценных приложений. Благодаря такому разнообразию у нас накопился некий опыт его [не]безопасного конфигурирования, которым мы хотим поделиться.



                      Но обо всем по порядку. Нас давно терзал вопрос безопасного конфигурирования Nginx, ведь он — полноправный кубик веб-приложения, а значит, и его конфигурация требует не меньшего контроля с нашей стороны, чем код самого приложения. В прошлом году нам стало очевидно, что этот процесс требует серьезной автоматизации. Так начался in-house проект Gixy, требования к которому мы обозначили следующим образом:

                      — быть простым;
                      — но расширяемым;
                      — с возможностью удобного встраивания в процессы тестирования;
                      — неплохо бы уметь резолвить инклюды;
                      — и работать с переменными;
                      — и про регулярные выражения не забыть.
                      Читать дальше →
                    • Атаки на сетевое оборудование с Kali Linux

                        image

                         
                        В данной статье мы рассмотрим актуальные атаки на сетевое оборудование и инструменты, доступные в популярном дистрибутиве Kali Linux для их проведения.

                        Читать дальше →
                      • MakiseGUI — бесплатная библиотека графического интерфейса для микроконтроллеров

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


                          Назвал я её MakiseGui.


                          Читать дальше →
                        • Тест Lossless-оптимизаторов изображений (PNG и JPG)

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

                            В тесте принимали участие следующие программы.

                            Для PNG:

                            1. Leanify 0.4.3 (x64)
                            2. pingo v0.79c
                            3. pinga v0.09
                            4. OptiPNG 0.7.6
                            5. pngout
                            6. PngOptimizer 2.5 (x64)
                            7. advpng aka AdvanceCOMP v1.23
                            8. ECT 0.6 (x64)
                            9. TruePNG 0.6.2.2
                            10. pngwolf-zopfli 1.1.1 (x64)

                            Для JPEG:

                            1. Leanify 0.4.3 (x64)
                            2. pingo v0.79c
                            3. ECT 0.6 (x64)
                            4. mozjpeg 3.2 (x64)
                            5. jhead 3.00
                            6. jpegoptim v1.4.4 (x64)
                            7. jpegtran
                            Читать дальше →
                          • +500 бесплатных инструментов для запуска вашего стартапа в 2017 году

                            • Перевод


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

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

                            Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
                            Читать дальше →