Акела промахнулся! В смысле, Интел обосрался

StrangerR
Уже с Приветом
Posts: 38016
Joined: 14 Dec 2006 20:13
Location: USA

Re: Акела промахнулся! В смысле, Интел обосрался

Post by StrangerR »

Serguei666 wrote: 12 Jan 2018 03:53 ...
Тогда ничего ценного на компе не хранить или вообще от компа избавится. Нет процессора - нет проблемы
Из лекции которую я читал администрации президента в России в примерно 93м году:
- нет проблем с абсолютной защитой. Делаем на раз-два-три
* взяли сервер, выключили
* положили в сейф
* закрыли дверку.
Идеально защищенный сервер.


Проблема не в защите, проблема в ДОСТУПЕ. И чем больше его требуется тем сложнее.

Слабость например AWS супротив всего этого в том, что они дают доступ ВСЕМ. И если на одном хосте встретятся хакер и банк, то не факт, что хакер до банка не доберется, через ихнюю криворукую виртуализацию. Не давали бы доступ хакеру, не было бы проблемы. Не давали бы доступ с улицы в банк, никто бы банки не грабил (наш дата центр в Канаде был в бывшем золотохранилище. В общем, там 4 человека могут неделю от партизан отстреливаться...). Ну и так далее.

(Кстати, поэтому AwS держит отделные зоны для гавермента. Без физического пересечения с народом с улицы, так сказать. )
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Акела промахнулся! В смысле, Интел обосрался

Post by ALV00 »

StrangerR wrote: 12 Jan 2018 05:11 Это учитывая стоимость переноса - возможно. А так ни один дурак сегодня и смотреть не будет на такие решения если с нуля.
Интересно, а на чем бы сейчас стали делать систему, подобную Visa? При том что eventual data consistency - неприемлемо.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Акела промахнулся! В смысле, Интел обосрался

Post by ALV00 »

Dmitry67 wrote: 06 Jan 2018 20:19 Поправлю
Данные разумеется НЕ предоставляются. Вы что думаете, в партии дураки сидят?

Но прочитанное значение попадает в кэш. Этого тоже мало для атаки: вы можете читать память, но не можете читать кэш directly. Но: с помощью хитрости, которая замеряет время доступа к памяти, можно понять, есть ли данные в кеше. Это позволяет извлекать данные по одному биту за тест.
Не по биту, а все таки по байту а то и по два. Делается так:
- Обнуляем кэш
- Делаем косвенное чтение, где чужая ячейка используется как адрес, но обращение идет к своей ячейке. (Значение попадает в кеш)
- Сканируем свою память, замеряя время чтения, и находим, по какому адресу прочиталось быстрее других. Адрес = значение чужой ячейки.
Хорошая статья на тему
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Акела промахнулся! В смысле, Интел обосрался

Post by Dmitry67 »

Кстати, у нас все железо обязательно меняется раз в три года
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Акела промахнулся! В смысле, Интел обосрался

Post by flip_flop »

Dmitry67 wrote: 12 Jan 2018 06:00 Кстати, у нас все железо обязательно меняется раз в три года
Вот! И это правильно!
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Акела промахнулся! В смысле, Интел обосрался

Post by Dmitry67 »

flip_flop wrote: 12 Jan 2018 11:00
Dmitry67 wrote: 12 Jan 2018 06:00 Кстати, у нас все железо обязательно меняется раз в три года
Вот! И это правильно!
Влад, а какого года у вас железо?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Акела промахнулся! В смысле, Интел обосрался

Post by flip_flop »

Dmitry67 wrote: 12 Jan 2018 11:09
flip_flop wrote: 12 Jan 2018 11:00
Dmitry67 wrote: 12 Jan 2018 06:00 Кстати, у нас все железо обязательно меняется раз в три года
Вот! И это правильно!
Влад, а какого года у вас железо?
Такого обращения я не ожидал :) Вопрос ко мне? Или риторически я подвернулся, а вопрос таки к Владу?

Я в принципе могу ответить, но, наверное, надо таки дождаться Влада.
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Акела промахнулся! В смысле, Интел обосрался

Post by mskmel »

ALV00 wrote: 12 Jan 2018 05:10 Смех смехом, а Visa до сих пор процессирует платежи на MF. Утверждают, что это лучшее решение для их объема транзакций.
Работает - не трогай. Тем более IBM инвестирует и развивает платформу. Могу наврать, но 40% прибыли IBM всё еще делают на МФ.
У кого-то должно быть очень много денег, стальные ХХХ и серьёзные причины для того чтобы взять и переписать.
Серьёзной причиной может стать отсутствие людей которые согласны это учить, т.к. текущие специалисты уходят на пенсию.
мухобой
Уже с Приветом
Posts: 1104
Joined: 11 Apr 2015 17:10

Re: Акела промахнулся! В смысле, Интел обосрался

Post by мухобой »

ALV00 wrote: 12 Jan 2018 05:45
Dmitry67 wrote: 06 Jan 2018 20:19 Поправлю
Данные разумеется НЕ предоставляются. Вы что думаете, в партии дураки сидят?

Но прочитанное значение попадает в кэш. Этого тоже мало для атаки: вы можете читать память, но не можете читать кэш directly. Но: с помощью хитрости, которая замеряет время доступа к памяти, можно понять, есть ли данные в кеше. Это позволяет извлекать данные по одному биту за тест.
Не по биту, а все таки по байту а то и по два. Делается так:
- Обнуляем кэш
- Делаем косвенное чтение, где чужая ячейка используется как адрес, но обращение идет к своей ячейке. (Значение попадает в кеш)
- Сканируем свою память, замеряя время чтения, и находим, по какому адресу прочиталось быстрее других. Адрес = значение чужой ячейки.
Хорошая статья на тему
ещё одна
https://habrahabr.ru/post/346078/
мухобой
Уже с Приветом
Posts: 1104
Joined: 11 Apr 2015 17:10

Re: Акела промахнулся! В смысле, Интел обосрался

Post by мухобой »

ALV00 wrote: 12 Jan 2018 05:45 Делается так:
- Обнуляем кэш
- Делаем косвенное чтение, где чужая ячейка используется как адрес, но обращение идет к своей ячейке. (Значение попадает в кеш)
- Сканируем свою память, замеряя время чтения, и находим, по какому адресу прочиталось быстрее других. Адрес = значение чужой ячейки.
Хорошая статья на тему
Насколько я понял не совсем так, не "Адрес = значение чужой ячейки", значение найденное в массиве быстрее других, и есть искомое значение, расположенное по адресу, который мы ранее "атаковали".
Собственно, суть атаки то очень проста и достаточно красива:


Сбрасываем кэш процессора.

Code: Select all

char userspace_array[256*4096];
for (i = 0; i < 256*4096; i++) {
_mm_clflush(&userspace_array[i]);
}
Читаем интересную нам переменную из адресного пространства ядра, это вызовет исключение, но оно обработается не сразу.

Code: Select all

const char* kernel_space_ptr = 0xBAADF00D;
char tmp = *kernel_space_ptr;
Спекулятивно делаем чтение из массива, который располагается в нашем, пользовательском адресном пространстве, на основе значения переменной из пункта 2.

Code: Select all

char not_used = userspace_array[tmp * 4096];
Последовательно читаем массив и аккуратно замеряем время доступа. Все элементы, кроме одного, будут читаться медленно, а вот элемент, который соответствует значению по недоступному нам адресу — быстро, потому что он уже попал в кэш.

Code: Select all

for (i = 0; i < 256; i++) {
if (is_in_cache(userspace_array[i*4096])) {
    // Got it! *kernel_space_ptr == i
}
}
Таким образом, объектом атаки является микроархитектура процессора, и саму атаку в софте не починить.
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Акела промахнулся! В смысле, Интел обосрался

Post by zVlad »

Dmitry67 wrote: 12 Jan 2018 11:09
flip_flop wrote: 12 Jan 2018 11:00
Dmitry67 wrote: 12 Jan 2018 06:00 Кстати, у нас все железо обязательно меняется раз в три года
Вот! И это правильно!
Влад, а какого года у вас железо?
Походу вопрос ко мне. По разному было. И через два года меняли и через три. Сейчас у нас пятилетний контракт. Железо мэйнфрэйм лизуется, не покупается.
Последнее время популярен upgrade, когда из предыдущего карты ввода-вывода переносятся в новый. Экономия, понимаешь.

zBC12 у нас, 2013 год.
Last edited by zVlad on 12 Jan 2018 17:31, edited 1 time in total.
мухобой
Уже с Приветом
Posts: 1104
Joined: 11 Apr 2015 17:10

Re: Акела промахнулся! В смысле, Интел обосрался

Post by мухобой »

Прочитал статью, кажется фигня, чувак всё перепутал в своих примерах. Но в целом идея ясна - при невалидном действии данные всё таки попадают в кеш, и далее мы можем их косвенно узнать
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Акела промахнулся! В смысле, Интел обосрался

Post by zVlad »

mskmel wrote: 12 Jan 2018 15:33
ALV00 wrote: 12 Jan 2018 05:10 Смех смехом, а Visa до сих пор процессирует платежи на MF. Утверждают, что это лучшее решение для их объема транзакций.
Работает - не трогай. Тем более IBM инвестирует и развивает платформу. Могу наврать, но 40% прибыли IBM всё еще делают на МФ.
У кого-то должно быть очень много денег, стальные ХХХ и серьёзные причины для того чтобы взять и переписать.
Серьёзной причиной может стать отсутствие людей которые согласны это учить, т.к. текущие специалисты уходят на пенсию.
Не думаю что кто-то стал бы упираться, мол не хочу учиться, если с учебой связано трудоустройство. Только с совсем тухлыми, зазомбированными мозгами можно отказываться учить мэйнфрэймы и их системы.
Кроме того последнее время много сделано такого что и учить то не надо. Программирование на Java для WAS for zOS ничем не отличается мало чем отличается от того же для Линукс. Для администрирования zOS понаписано разных gui-ев, zVM и вовсе администрируется, наверное, как и любып другие виртуальные визоры.
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Акела промахнулся! В смысле, Интел обосрался

Post by mskmel »

zVlad wrote: 12 Jan 2018 17:25
mskmel wrote: 12 Jan 2018 15:33 Серьёзной причиной может стать отсутствие людей которые согласны это учить, т.к. текущие специалисты уходят на пенсию.
Программирование на Java для WAS for zOS ничем не отличается мало чем отличается от того же для Линукс.
Вопрос не в администрировании, а в разработке софта на коболе, который скорее всего используется в Visa. Не думаю что выпускники ВУЗов горят желанием учить этот архаизм.

Когда начинается переход на Java, то не понятно зачем надо WAS в наши то дни. А если не надо WAS, то и за Z нет смысла платить, т.к. экономии на лицензиях больше нет, а производительность х86 на доллар сильно выше. То что я вижу\видел jvm грузящие тысячи ядер, т.е. сотни VMs 12vCPU\120GB.

IBM посчитали 32 IFLs ~= 240 х86. Если приложение использует 2400 ядер х86, то надо 320IFLs (столько в один Z и не влезет ведь) и где-то 24TB памяти. Стоит это будет 10ки М$, на х86 это до 1М$ влезет и даже скорее всего поместится в одну стойку с парой свитчей.
zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Акела промахнулся! В смысле, Интел обосрался

Post by zVlad »

mskmel wrote: 12 Jan 2018 17:59 .

IBM посчитали 32 IFLs ~= 240 х86. Если приложение использует 2400 ядер х86, то надо 320IFLs (столько в один Z и не влезет ведь) и где-то 24TB памяти. Стоит это будет 10ки М$, на х86 это до 1М$ влезет и даже скорее всего поместится в одну стойку с парой свитчей.
У Вас есть перед глазами приложение на х86 с 2400 ядрами?

Return to “Вопросы и новости IT”