Как стать автором
Обновить
0
0

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

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

White-Box Cryptography: Расшифровываем эту белую коробку

Время на прочтение8 мин
Количество просмотров3.2K

В этой статье мы рассмотрим основные подходы к реализации White-Box Cryptography (WBC) и атаки.

На данный момент есть WBC для различных видов алгоритмов: симметричного и асимметричного шифрования, электронной подписи и других. Здесь изучим только WBC для алгоритмов симметричного шифрования (т.е. AES, DES).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Анализ трафика телеметрической информации Android смартфона

Время на прочтение4 мин
Количество просмотров19K

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

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

В данной статье рассматривается вопрос о том, какую конкретно информацию смартфон передает на серверы вендоров.

Интересненько
Всего голосов 60: ↑60 и ↓0+60
Комментарии33

Охота за багами: как прокачаться этичному хакеру, чтобы больше зарабатывать на поиске уязвимостей

Время на прочтение5 мин
Количество просмотров8.7K

Мы расспросили шестерых прокачанных багхантеров, на счету которых сотни обнаруженных уязвимостей в системах известных компаний (в том числе с присвоенными CVE) и которые одними из первых присоединились к The Standoff 365 Bug Bounty, о том, какие ресурсы помогают им прокачивать навыки в offensive security и оперативно узнавать о новых ресерчах, техниках и эксплойтах. Надеемся, подборки Circuit, Ustinov, Zctym92, Fi5t, Impact и еще одного исследователя, пожелавшего сохранить инкогнито, помогут обнаружить те самые баги, которые принесут вам солидное денежное вознаграждение, признание комьюнити и публичную благодарность от известных компаний.

Подробнее
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Знакомство с тестированием в Python. Ч.1

Время на прочтение14 мин
Количество просмотров95K
Всем доброго!

От нашего стола к вашему... То есть от нашего курса «Разработчик Python», несмотря на стремительно приближающий Новый год, мы подготовили вам интересный перевод о различных методах тестирования в Python.

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

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

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


Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии16

Подборка материалов по мобильной безопасности «Awesome Mobile Security»

Время на прочтение18 мин
Количество просмотров8.4K

Привет, Хабр!

Меня зовут Юрий Шабалин, я один из основателей компании "Стингрей Технолоджиз" (входит в группу компаний Swordfish Security), мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android.

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Патчим процессы в Linux на лету при помощи GDB

Время на прочтение11 мин
Количество просмотров15K
Техники перехвата функций в Linux хорошо известны и описаны в интернете. Наиболее простой метод заключается в написании динамической библиотеки с «функциями-клонами» и использовании механизма LD_PRELOAD для переопределения таблицы импорта на этапе загрузки процесса.

Недостаток LD_PRELOAD в том что необходимо контролировать запуск процесса. Для перехвата функций в уже работающем процессе или функций отсутствующих в таблице импорта можно использовать «сплайсинг» — запись команды перехода на перехватчик в начало перехватываемой функции.

Также известно, что в Python имеется модуль ctypes позволяющий взаимодействовать с данными и функциями языка Си (т.е. большим числом динамических библиотек имеющих Си интерфейс). Таким образом ничто не мешает перехватить функцию процесса и направить её в Python метод обёрнутый в С-callback с помощью ctypes.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии6

Ontol: 58 бесплатных онлайн-курсов по кибербезопасности, криптографии и blockchain от лучших университетов мира

Время на прочтение4 мин
Количество просмотров24K
image

Реклама платных курсов лезет из всех щелей, но мало кто знает, что есть тонны бесплатных онлайн-курсов и, порой, более качественных, чем платные.

Предлагаю вашему вниманию 58 бесплатных онлайн-курсов от ведущих университетов мира. (Если есть чем дополнить — пишите в личку или комментарии)
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии0

Доступно о криптографии на эллиптических кривых

Время на прочтение37 мин
Количество просмотров242K
image


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

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

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

В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
Читать дальше →
Всего голосов 127: ↑125 и ↓2+123
Комментарии72

Windows: достучаться до железа

Время на прочтение11 мин
Количество просмотров54K

Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено... Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!

Читать далее
Всего голосов 175: ↑174 и ↓1+173
Комментарии90

Как работать с JIT

Время на прочтение6 мин
Количество просмотров23K

enter image description here


В некоторых внутренних системах для быстрого поиска по большому битовому массиву мы в Badoo используем JIT. Это очень интересная и не самая известная тема. И, чтобы исправить такую досадную ситуацию, я перевел полезную статью Элая Бендерски о том, что такое JIT и как его использовать.

Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии8

Обман обманщиков: форк-бомба нового уровня

Время на прочтение4 мин
Количество просмотров62K
Сразу предупреждаю: не копируйте примеры кода из этой статьи и не запускайте их в своей командной оболочке.
Есть люди, которые развлекают себя жестокими шутками над новичками, обманом подводя их к запуску разрушительных инструкций в командной оболочке.



Часто это принимает форму грубо замаскированных команд, вроде той, что показана ниже. Её запуск приведёт к выполнению в текущей директории команды rm -rf *, которая всё удалит. Вот эта команда:

$(echo cm0gLXJmICoK | base64 -d)

Много лет назад я наткнулся на людей, которые играли в такие игры, и решил их проучить.
Читать дальше →
Всего голосов 196: ↑195 и ↓1+194
Комментарии101

Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1/PC) для IDA Pro

Время на прочтение16 мин
Количество просмотров5.9K

Всем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.

В качестве кода, который требуется дизасемблировать, будет выступать код виртуальной машины из очень крутого хоррора, который выходил сначала на SNES, потом на PS1, PC и Wonderswan - "Clock Tower - The First Fear". В игре имеется 9 концовок (sic!), атмосфера гнетущая, а в качестве главного злодея выступает "Scissorman" (человек с руками-ножницами). Заинтересовал? Тогда добро пожаловать...

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

Асинхронное программирование (полный курс)

Время на прочтение2 мин
Количество просмотров98K

Методы асинхронного программирования


Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.

Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии17

Зависимые типы — будущее языков программирования

Время на прочтение7 мин
Количество просмотров27K
Всем привет!

Несмотря на диковинность и некоторую отвлеченность рассматриваемой сегодня темы — надеемся, что она сможет разнообразить вам выходные. В конце поста помещаем три ссылки от автора, позволяющие познакомиться с зависимой типизацией в Idris, F* и JavaScript
Читать дальше →
Всего голосов 40: ↑35 и ↓5+30
Комментарии107

Nginx. О чем не пишут в книгах

Время на прочтение9 мин
Количество просмотров45K

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

Надо же, на полках нашлось целых три книги - не полистать их было бы преступлением. Первая, вторая, третья... Ощущение, будто что-то не так. Ну вроде страниц много, текст связный, но каково содержание? Установка nginx, список переменных и модулей, а дальше docker, ansible. Открываем вторую: wget, лимиты запросов и памяти, балансировка, kubernetes, AWS. Третья: GeoIP, авторизация, потоковое вещание, puppet, Azure. Ребята, а где про то, как вообще работает nginx? На кого рассчитаны ваши книги? На состоявшегося админа, который и так знает архитектуру этого веб-сервера? Да он вроде с базовыми настройками и сам справится. На новичка, который не знает как пользоваться wget? Вы уверены, что ему знание о существовании ngx_http_degradation_module и тем паче "облака" важнее порядка прохождения запроса?

Итак. О чем не пишут в книгах.
(здесь и дальше мы говорим только о NGX_HTTP_)

Фазы обработки запроса
Всего голосов 86: ↑86 и ↓0+86
Комментарии11

M/o/Vfuscator2, безумный компилятор

Время на прочтение4 мин
Количество просмотров7.5K


Однажды один умный чувак (Кристофер Домас) читал статью другого умного чувака (Стивена Долана) про удивительную особенность архитектуры x86. Стивен ругал её за избыточность и утверждал, что набор инструкций можно сократить до одной лишь mov, потому что она Тюринг-полная. Если бы Стивен не был таким умным, в его словах можно было бы усомниться, но у Кристофера загорелись глаза: проработав двадцать лет с x86, он не слышал ни о чём подобном, и ему страшно захотелось написать компилятор, который бы переводил весь код в наборы одних лишь mov-инструкций. Так родились M/o/Vfuscator и M/o/Vfuscator2, наглядно иллюстрирующие ненормальное программирование.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии28

Процессы и потоки in-depth. Обзор различных потоковых моделей

Время на прочтение10 мин
Количество просмотров116K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Всего голосов 64: ↑62 и ↓2+60
Комментарии45

Монады в Python поподробнее

Время на прочтение10 мин
Количество просмотров15K
Доброго времени суток!

В прошлом топике я попробовал изобразить монаду Maybe средствами языка Python. В целом задача была достигнута, как мне кажется, но совсем незнакомому с тематикой человеку будет непросто понять что к чему, а главное — зачем. В этот раз попробую остановиться на монадах поподробнее, в том числе и для закрепления собственного понимания.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии18

Как я сделал веб-фреймворк без MVC — Pipe Framework

Время на прочтение9 мин
Количество просмотров7.6K

Проработав фулстек разработчиком около 10 лет, я заметил одну странность.


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


  • Codeigniter — мой первый фреймворк, MVC
  • Kohana — MVC
  • Laravel — MVC
  • Django — создатели слегка подменили термины, назвав контроллер View, а View Template'ом, но суть не изменилась
  • Flask — микрофреймворк, по итогу все равно приходящий к MVC паттерну

Конечно, с моим мнением можно поспорить, можно продолжить перечислять, однако суть не в этом.

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии15

Еще раз про разбор выражений методом рекурсивного спуска

Время на прочтение4 мин
Количество просмотров18K
Я был еще школьником, когда мне в руки попала книжка «Начальный курс C и С++» от издательства Диалог МИФИ. Именно из этой книжки я узнал об основах объектно ориентированного программирования, и она же поставила передо мной проблему, которую я довольно долго не мог разрешить. В конце её было приложение с листингом программ одна из которых называлась рекурсивный калькулятор. Это и была моя первая встреча с разбором арифметических выражений методом рекурсивного спуска. До сих пор помню те долгие часы, которые были потрачены на попытки хоть что-то понять в этом коде.

Статья предназначена прежде всего для тех, кто первый раз сталкивается с задачей разбора выражений.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии12
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность