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

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

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

Новая техника атак на основе Meltdown. Использование спекулятивных инструкций для детектирования виртуализации

Время на прочтение4 мин
Количество просмотров10K
Атака Meltdown открыла новый класс атак на процессоры, использующий архитектурные состояния для передачи информации. Но спекулятивное исполнение, которое было впервые применено для атаки в Meltdown, позволяет не только выполнить код со снятием ограничений, но и узнать определенные детали работы процессора. Мы нашли новый способ реализации атаки с использованием архитектурных состояний. Он позволяет детектировать виртуализацию, опираясь на то, как процессор выбирает, отправлять инструкции на спекулятивное исполнение или нет. Мы сообщили о данном способе в Intel, и 21 мая 2018 года было выпущено оповещение об уязвимостях «Q2 2018 Speculative Execution Side Channel Update», в котором присутствует наша уязвимость CVE-2018-3640 или Spectre Variant 3a.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии12

Как на самом деле работает протокол Биткоин

Время на прочтение28 мин
Количество просмотров211K
(Замечательное объяснение принципов работы сети Bitcoin авторства Michael Nielsen. Много текста, немного картинок. Обо всех корявостях перевода — в личку, буду исправлять по мере обнаружения)

Много тысяч статей было написано для того, чтобы объяснить Биткоин — онлайн, одноранговую (p2p) валюту. Большинство из этих статей поверхностно рассказывают суть криптографического протокола, опуская многие детали. Даже те статьи, которые «копают» глубже, часто замалчивают важные моменты. Моя цель в этой публикации — объяснить основные идеи, лежащие в протоколе Биткоин в ясной, легкодоступной форме. Мы начнем с простых принципов, далее пойдем к широкому теоретическому пониманию, как работает протокол, а затем копнем глубже, рассматривая сырые (raw) данные в транзакции Биткоин.
Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии18

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

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

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

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

Меня попросили взломать программу на собеседовании. Часть 2

Время на прочтение10 мин
Количество просмотров71K
Это перевод второй части публикации «Меня попросили взломать программу на собеседовании». Оригинальный текст можно найти здесь.

Предисловие


Привет, ребята. Если вы не знаете, что означает «Часть 2», пожалуйста прочитайте Часть 1.
Для начала я хотел бы поблагодарить всех прочитавших первую часть, поскольку в итоге я получил массу отличных отзыв.

Так же я бы хотел устранить некоторые недопонимания:
  1. Я более не работаю на данную компанию, я переехал в Барселону;
  2. Я проходил данное интервью почти год назад;
  3. Программы я взламывал в облаке ($5 тариф, да, вы угадали компанию), поэтому я не считаю, что использование root@'a является проблемой — я могу пересоздать новую среду за пару секунд. В итоге я все же переключился на пользователя eren@, так как gdb не принимал рутовые инит файлы.
  4. Не забудьте прочитать окончание статьи — вам обязательно понравится!

Поехали


На этот раз мы будем работать не с дверью, а с ядерной ракетой.
Читать дальше →
Всего голосов 83: ↑71 и ↓12+59
Комментарии38

CVE-2014-6271, CVE-2014-7169: удалённое выполнение кода в Bash

Время на прочтение1 мин
Количество просмотров56K
image
Сегодня были опубликованы детали об уязвимости в Bash.
Вкратце, Bash позволяет экспортировать функции как переменные окружения:

$ myfunc() { echo "Hello"; }
$ export -f myfunc
$ env | grep -A1 ^myfunc
myfunc=() {  echo "Hello"
}


Уязвимость состоит в том, что если после тела функции (после последнего символа "}") добавить ещё какую-нибудь команду, и экспортировать её — она будет выполнена при вызове дочернего интерпретатора:
Читать дальше →
Всего голосов 78: ↑77 и ↓1+76
Комментарии64

NSA ищет новых сотрудников, сообщив об этом зашифрованным твитом

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


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

Тем не менее, организация функционирует, и закрывать ее никто не собирается. Более того, NSA планирует нанять новых сотрудников. Об этом свидетельствует твит, опубликованный вчера в официальном твиттер-аккаунте агентства.

Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии20

Уязвимость в ядре Linux, позволяющая получить локальный root

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

Уязвимость позволяет локальному пользователю повысить привилегии до root.
Уязвимые версии ядра c 2.6.31-rc3 по 3.15-rc5.
CVE-2014-0196

Проблема вызвана ошибкой в функции n_tty_write (drivers/tty/n_tty.c), в которой некорректно обрабатывалась ситуация доступа к виртуальному терминалу при использовании флагов «LECHO & !OPOST», что позволяло пользователю инициировать повреждение областей памяти ядра.

В одном из четырех случаев использование эксплоита вызывает крах ядра.

Эксплоит работает только на ядрах >= v3.14-rc1, т.к. в нем добавили:
tty: Halve flip buffer GFP_ATOMIC memory consumption

git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=acc0f67f307f52f7aec1cffdc40a786c15dd21d9
На который опирается эксплоит.
Читать дальше →
Всего голосов 94: ↑89 и ↓5+84
Комментарии52

Алгоритм решения задачи о рюкзаке ( версия 2, исправленная)

Время на прочтение5 мин
Количество просмотров133K
Ниже приведен алгоритм точного решения целочисленной задачи о рюкзаке. Предлагаемый алгоритм требует меньше вычислительных ресурсов и возможно несколько проще алгоритма динамического программирования (ДП).

Причина побудившая автора к публикации


Первая версия описания алгоритма было послана мною в институт математики им. С. Л. Соболева Сибирского отделения РАН, откуда был прислан ответ что указанный алгоритм известен давно. Цитирую:
Одно из его первых упоминаний в книге Кереллера Nemhauser, Ullman, Discrete dynamic programming and capital allocation, Management Science, 15 p. 494-505, 1969.
Тем не менее я решил ознакомить сообщество с алгоритмом, т.к. в известных мне учебниках по дискретной математике я его не обнаружил (возможно плохо искал). В первой версии алгоритма была ошибка, указанная мне пользователем wataru. За это ему большое спасибо. Я постарался эту ошибку устранить. До алгоритма я дошел самостоятельно, так что надеюсь ничьих прав не нарушаю. Возможно кому нибудь описание будет интересно и пригодится.
Читать дальше →
Всего голосов 65: ↑48 и ↓17+31
Комментарии32

Информация

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