• Однажды на пентесте, или Как все сломать при помощи уролога и Роскомнадзора


      Эта статья написана по мотивам очень удачного пентеста, который пару лет назад провели специалисты Group-IB: случилась история, претендующая на экранизацию в Болливуде. Сейчас, наверное, последует реакция читателя: «О, очередная пиар-статья, опять эти рисуются, какие они хорошие, еще не забудьте купить пентест». Ну с одной стороны, так и есть. Однако есть еще ряд мотивов, почему появилась эта статья. Хотелось показать, чем именно занимаются пентестеры, насколько эта работа может быть интересной и нетривиальной, какие забавные обстоятельства могут складываться на проектах и самое главное — показать живой материал с реальными примерами.
      Читать дальше →
    • Вечный сервер — как избавиться от ежемесячных платежей за хостинг



        — На вашем счету недостаточно средств для продления услуги. Вся ваша работа за 10 лет будет уничтожена в течение 2 рабочих дней.


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

        В статье мы расскажем как избавиться от регулярных платежей на содержание хостинга, доменных имен, SSL-сертификатов. И как сделать максимально автономный сервер, который переживет зомби-апокалипсис.
        Читать дальше →
      • Пять знаменитых цитат о программировании с объяснениями

        • Перевод


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

        Эту статью я посвятил разбору нескольких из своих любимых высказываний, касающихся программирования. Единственным критерием, по которому я производил отбор, было требование, чтобы цитате сравнялось не менее двадцати лет. Потому что это только устаревшие технологии быстро становятся непригодными к использованию, тогда как древние заповеди наших предков-программистов долго сохраняют актуальность.
        Читать дальше →
        • +11
        • 8,5k
        • 8
      • Функциональное программирование — то, что вам (наверно) рассказывали. Если вы слушали

          Мне нравятся разговоры на тему «мне раньше в школе/институте/родители говорили, а теперь я узнал». Если по счастливой случайности я оказываюсь хоть немного компетентен в обсуждаемом вопросе, то такие разговоры обычно сводятся к одному из трех вариантов: «где вообще ты раньше слышал такую чушь?» (если собеседник прав), «а с чего ты взял, что это так?» (если он не прав) и «ты прав, только это не противоречит тому, что тебе говорили раньше» (в подавляющем большинстве случаев). Нравятся такие разговоры мне по следующей причине: обычно их инициатор не обременен излишним предварительным знанием вопроса, что в некоторых случаях позволяет ему указать на некоторые моменты, которые принимались как очевидные, на самом деле таковыми не являясь. И одной из тем для подобных бесед оказалось функциональное программирование.

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

          Насколько это соответствует истине?
          Читать дальше →
        • Snoop Project невероятный инструмент интернет разведки, которого пользователи рунета ждали так долго — доступен

            image

            На Github-e выложен OSINT-инструмент, заточенный (в том числе) для поиска %username по СНГ локации


            UPD.
            Если вам до боли знаком такой софт, как namechk или spiderfoot, то «Snoop Project» вас явно порадует, он даёт «им» фору вместе взятым и это не желтый заголовок «Статья вечерняя» — это реальная «forensic-работа» по цифровым следам в киберпространстве…
            Читать дальше →
          • Зависимые типы в Haskell: почему это будущее разработки программного обеспечения

            • Перевод


            В Serokell мы занимаемся не только коммерческими проектами, но стараемся изменить мир к лучшему. Например, работаем над улучшением главного инструмента всех хаскелистов – Glasgow Haskell Compiler (GHC). Мы сосредоточились на расширении системы типов под впечатлением от работы Ричарда Айзенберга "Зависимые типы в Haskell: теория и практика".


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

            Читать дальше →
          • Забудьте о гомоморфном шифровании: теперь у нас есть функциональное шифрование

            • Перевод


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

            Давайте сегодня с вами посмотрим на то, что такое ФШ, разберём пару примеров и то, чем оно отличается от полностью гомоморфного шифрования (ПГШ).

            Давайте для начала определимся, что мы имеем в виду, говоря про ФШ. Совсем недавно, в 2010 году, Дэн Боне, Амит Сахай и Брент Уотерс формализовали понятие ФШ. Примерно ФШ можно описать так: это схема шифрования с публичным ключом, где разные ключи для расшифровки позволяют пользователю узнавать об определённых функциях зашифрованных данных.
            Читать дальше →
            • +23
            • 9,7k
            • 4
          • Быстрый поиск источника нежелательных мутаций свойства объекта

            Привет! Cегодня расскажу, как можно с помощью отладчика решить, на мой взгляд, нетривиальную проблему JavaScript.

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

            Часто такое поведение искажает данные пользователя, приводит к ошибкам и является нежелательным.

            Поиск источника таких нежелательных изменений свойств может занять долгое время: так программа может быть уже большой и состоять из сотни тысяч инструкций.
            Читать дальше →
          • Почему я отказался от Google Maps API

            • Перевод
            TL;DR Недавние изменения в модели ценообразования, мягко говоря, безумны.

            Когда я в 2012 году запустил NUKEMAP, у Google Maps были просто потрясающие программные интерфейсы. Абсолютно лучшие API для создания картографических мэшапов на JavaScript, практически бесплатные, с активным сообществом разработчиков, которое регулярно добавляло новые функции. На самом деле создавалось впечатление, что компания заинтересована в людях, которые используют их продукт для создания крутых, полезных инструментов.


            Старые версии NUKEMAP: слева оригинальная версия от марта 2005 года на скриншотах MapQuest (она была чрезвычайно ограничена и никогда не публиковалась), полностью на PHP. Я разработал её для личного пользования и обучения. Справа переделанный NUKEMAP от 2012 года на Google Maps API и Javascript.

            Сегодня изменилось почти всё. В кодовую базу API практически перестали добавлять реально полезные функции (многие классные фичи были удалены или тихо устарели; добавляемые новые функции, как правило, инкрементальные или примитивные). Это действительно весьма примечательный факт, поскольку на свой собственный веб-сайт Google Maps они добавили много классных штук, например, режим 3D. Но в API их не портировали.
            Читать дальше →
          • Изучение нейтрино привело к неожиданному открытию в математике

            • Перевод

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




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

            Формула «выглядела слишком хорошо, чтобы быть правдой», сказал Тао, профессор из Калифорнийского университета в Лос-Анджелесе, лауреат Филдсовской премии, один из ведущих математиков мира. «Нечто настолько короткое и простое уже давно должно было оказаться в учебниках, — сказал он. – Поэтому сначала я подумал – нет, этого не может быть».

            А потом он подумал ещё немного.
            Читать дальше →
          • Новое достижение в криптографии — факторизация 795-битного числа RSA

              2 декабря 2019 года в рассылке по теории чисел nmbrthry@listserv.nodak.edu сообщили о факторизации числа RSA-240 (240 десятичных знаков, 795 бит). Это новое достижение в криптографии и теории чисел и очередное выполненное задание из списка RSA Factoring Challenge.

              Вот число и его множители:

              RSA-240 = 124620366781718784065835044608106590434820374651678805754818788883289666801188210855036039570272508747509864768438458621054865537970253930571891217684318286362846948405301614416430468066875699415246993185704183030512549594371372159029236099
              = 509435952285839914555051023580843714132648382024111473186660296521821206469746700620316443478873837606252372049619334517
              * 244624208838318150567813139024002896653802092578931401452041221336558477095178155258218897735030590669041302045908071447

              Исходя из текущего тренда можно примерно представить, когда будут взломаны RSA-1024 (309 десятичных знаков) и RSA-2048 (617 знаков).
              Читать дальше →
              • +10
              • 7,4k
              • 7
            • Фрактальное сжатие изображений

              • Перевод
              image

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

              К моему удивлению, репозиторий оказался довольно популярным, поэтому я решил обновить код и написать статью, объясняющую его и теорию.
              Читать дальше →
              • +18
              • 5,9k
              • 5
            • Функциональное программирование — это не то, что нам рассказывают

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



                Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


                int Factorial(int n)
                {
                    Log.Info($"Computing factorial of {n}");
                    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
                }

                чем ужасные императивные программы вроде


                int Factorial(int n)
                {
                    int result = 1;
                    for (int i = 2; i <= n; i++)
                    {
                        result *= i;
                    }
                    return result;
                }

                Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

                Читать дальше →
              • Применение зашифрованных данных для машинного обучения без их расшифровки

                • Перевод
                • Tutorial

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

                Здесь можно скачать пакет, реализующий всю магию, а здесь находится код, который рассматривается в статье.
                Читать дальше →
                • +53
                • 8,9k
                • 6
              • Прямой VPN-туннель между двумя компьютерами находящимися за NAT провайдеров с использованием UDP hole punching

                Статья о том, как мне удалось организовать прямой (точка-точка) VPN-туннель между двумя компьютерами, каждый из которых находился за NAT'ом провайдеров, при помощи VPS и простых скриптов, используя стандартные утилиты Linux, без каких-либо настроек сетевого оборудования.
                Читать дальше →
              • Обсуждаем PostgREST — open source веб-сервер на Haskell

                  Рассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.

                  Читать дальше →
                  • +13
                  • 5,1k
                  • 4
                • Фундаментальная ловушка единственной значимой метрики

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

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


                    В последние годы мобильные трояны активно вытесняют трояны для персональных компьютеров, поэтому появление новых вредоносных программ под старые добрые «тачки» и их активное использование киберпреступниками, хотя и неприятное, но все-таки событие. Недавно центр круглосуточного реагирования на инциденты информационной безопасности CERT Group-IB зафиксировал необычную фишинговую рассылку, за которой скрывалась новая вредоносная программа для ПК, сочетающая в себе функции Keylogger и PasswordStealer. Внимание аналитиков привлекло то, каким образом шпионская программа попадала на машину пользователя — с помощью популярного голосового мессенджера. Илья Померанцев, специалист по анализу вредоносного кода CERT Group-IB рассказал, как работает вредоносная программа, чем она опасна, и даже нашел ее создателя — в далеком Ираке.
                    Читать дальше →
                    • +14
                    • 14,3k
                    • 7
                  • Ваш выход, граф: как мы не нашли хороший сетевой граф и создали свой



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

                      Графовый анализ сетевой инфраструктуры (сетевой граф) стал первым внутренним инструментом, который мы встроили во все публичные продукты компании. Прежде чем создавать свой сетевой граф, мы проанализировали многие подобные разработки на рынке и не нашли ни одного продукта, который бы удовлетворял нашим собственным потребностям. В этой статье мы расскажем о том, как мы создавали сетевой граф, как его используем и с какими трудностями столкнулись.

                      Дмитрий Волков, CTO Group-IB и глава направления киберразведки
                      Читать дальше →
                      • +12
                      • 3,6k
                      • 2
                    • Вывод модели динамической системы дискретного фильтра Калмана для произвольной линейной системы

                      Фильтр Калмана (ФК) является оптимальным линейным алгоритмом фильтрации параметров динамической линейной системы при наличии неполных и зашумленных наблюдений. Этот фильтр находит широкое применение в технических системах управления до оценок динамики изменения макроэкономических ситуаций или общественного мнения.

                      Данная статья ставит себе целью познакомить читателя со стандартным подходом к переходу от непрерывной модели динамической системы, описываемой системой произвольных линейных дифференциальных уравнений к дискретной модели.
                      Читать дальше →
                      • +11
                      • 3,1k
                      • 9