Про атаку на драйверы GPU слышу давно, спасибо за освещение этой темы на Хабре. Было бы интересно почитать более подробный разбор этой темы - какие версии ядра Linux подверженны, примеры кода выполнения атаки.
Вообще, если вдуматься, драйверы современных GPU на столько обьемные (и закрытые), что дыр там может быть просто бесконечное число. Ставить любое, не тобой написанное, приложение на смартфон небезопасно априори, защиты нет и быть не может.
Еще один интересный момент - WebGL. Подозреваю, что через этот API любое Web приложение может осуществить аналогичную атаку на GPU. Что слышно на этот счет ?
Да, Вы правы. xterm, kconsole, xfce4-terminal - это всё эмуляторы терминала работающие с последовательной линией, хоть и виртуальной. Сетевой эмулятор терминала это Telnet и SSH клиенты.
А Вы не ощущаете ? Одна и та же фраза ходит по кругу по сто раз. Статью можно ужать до трех предожений. И автор не раскрыл как всё же устроены "all-optical" элементы типа NAND, NOR, мультиплексор MUX2 и ячейка двухпортовой SRAM. Без этой информации статья - просто ведро воды.
Upd: достаточно MUX2 и SRAM, всё остальное выражается через эти два базовых элемента.
В целом, статья хорошая, но неподготовленного читателя может легко запутать. :-)
Краткий словарь терминов:
Терминал - физическое устройство с RS-232 интерфейсом (мы говорим о символьных терминалах). Редкий зверь в современно мире.
Эмулятор терминала - программная реализация терминала исполняемая где-то на другой машине подключенной к хосту либо через последовательный интерфейс (cu, minicom, terraterm), либо по сети через TCP соединение. В подавляющем большинстве случаев мы имеем дело именно с последним вариантом (xterm, kconsole, xfce4-terminal).
Виртуальный терминал - программный эмулятор терминала встроенный внутрь ядра современных Unix-подобных ОС, позволяющий работать с системой используя клавиатуру и видео-монитор подключенные непосредственно к хосту. Виртуальный терминал прикидывается стандартным терминалом и подключается к системе на виртуаальное последовательное устройство. Это то, к чему мы имеем доступ по Ctrl+Alt+F1, Ctrl+Alt+F2 и т.д.
Консоль - отдельная терминальная линия, на которую ядро ОС выдает системные сообщения. В современных Unix-подобных системах виртуальный терминал с номером ноль (Ctrl+Alt+F1) используется в том числе и в качестве консоли. То есть с этого виртуального терминала можно традиционно залогиниться в систему, одновременно на него система будет выдавать свои аварийные и прочие служебные сообщения.
В ОС Linux с консоли можно подавать специальные последовательности символов для управления ядром ОС путем нажатия Alt+SysRq+commandkey, где commandkey - клавиша с кодом команды:
‘k’ – Kills all the process running on the current virtual console.
’s’ – This will attempt to sync all the mounted file system.
‘b’ – Immediately reboot the system, without unmounting partitions or syncing.
‘e’ – Sends SIGTERM to all process except init.
‘m’ – Output current memory information to the console.
‘i’ – Send the SIGKILL signal to all processes except init
‘r’ – Switch the keyboard from raw mode (the mode used by programs such as X11), to XLATE mode.
’s’ – sync all mounted file system.
‘t’ – Output a list of current tasks and their information to the console.
‘u’ – Remount all mounted filesystems in readonly mode.
‘o’ – Shutdown the system immediately.
‘p’ – Print the current registers and flags to the console.
‘0-9′ – Sets the console log level, controlling which kernel messages will be printed to your console.
‘f’ – Will call oom_kill to kill process which takes more memory.
‘h’ – Used to display the help. But any other keys than the above listed will print help.
Чтобы разрешить эту фичу, необходимо сначала собрать ядро с опцией CONFIG_MAGIC_SYSRQ (в файле конфигурации ядра .config), потом ввести команду:
echo "1" > /proc/sys/kernel/sysrq
Либо собрать ядро с опциями CONFIG_MAGIC_SYSRQ и CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE. На сколько мне известно, в большинстве дистрибутивов Linux ядро поставляется с включенной опцией CONFIG_MAGIC_SYSRQ.
А что в современных ВУЗах больше не преподают ТАУ ?
Реализация PID регулятора на Си занимает 10 строк кода, PID на Verilog - чуть поболее. Но вопрос был не про PID, а про его автоподстройку. И тут уже требуется мат аппарат.
У большинства заводов и совхозов не было своих машин, ленты там писать было попросту нечем!!! Там ставили перфоратор и специально обученая девочка дырявила карты. Потом всё это дело свозилось на ИВЦ, перегонялось на ленты, как-то обрабатывалось и отправлялось в ГИВЦ. Одна из задач нашего ИВЦ была как раз в сборе этих данных. Под закат организовали модемный доступ (собсно моя BBS этим и занималась).
Да, и еще. Перфокарты использовались не только для программ, но и для ввода данных. К нам на ИВЦ люди таскали колоды перфокарт с заводов и главков (статистика) на обработку.
Так темпы развития были совсем иные, и в ВУЗ отправляли технику по принципу "на тебе боже что людям не гоже", списанную с какого нибудь заводского ИВЦ. А кто преподавателей переучивать будет ? Это же целая система!
То есть прошло каких-то 34 года и Вам пригодились полученные в ВУЗе знания. Это большая редкость - многие посто не доживают до такого момента. :-)
Мне немного приходилось сталкиваться с обработки сигналов и некоторыми другими областями математики. Но каждый раз я просто открывал Википедию, потом читал статьи на Хабре, потом смотрел чужой код, потом писал свой. Это типичная практика современного программиста.
До нас "за Уралом" всё докатывалось с некоторым опозданием. Но подозреваю, что перфокарты были в ходу лишь потому, что людей так обучили несколькими годами ранее. Машины у нас были вполне современные (наш отдел эксплуатировал ЕС-1066). Но, сути это не меняет. Представьте, что человека 5 лет учили Фортрану на зеленом терминале со всей спецификой большой машины, где нет ни дискет, ни иных пресональных носителей ифнормации, где всё системное ПО берется из неотокуда (потому что оператор вовремя подмонтировал нужные тома). И тут он приходит руководить кружком программирования, где стоят 8-ми битные ПЭВМ совершенно непонятной архитектуры, с неизвестной системой команд и с полным отсутствием системного и любого другого ПО. Из языков - только Бейсик (Фокал на БК, Рапира на Агате). А главное - МЕТОДИЧКИ нет! ;-) Это как с Луны на Марс попасть.
В ВУЗе в котором я учился, кстати, стояла ЕС-1022, но её выключили как раз в год моего поступления, а в дисплейные залы (их стали называть классами только лет пять спустя) завезли персоналки Искра-1030. Так что у нас учили перфорировать бумагу вплоть до 1994 года.
Мне частично пригодились знания полученные на курсе ТОЭ, "Электроника" и "Микропроцессорная техника". Весь матан прошел по жизни мимо меня.
С другой стороны, нейронные сети базируются именно на тензорном исчислении. На тех самых матрицах. И эти институтские знания оказались для меня вдруг очень даже востребованы еще лет 7 тому назад.
Вы непосредтсвенно программируете алгоритмы инферренса или обучения ? Тогда снимаю шляпу.
Заявку подал.
Всяких "хахаряшек" у меня в хозяйстве - хоть отбавляй, а вот книжки - они вечны. Их можно детям или студентам давать почитать. :)
Следующим шагом автор вспомнит про R1,5 и R2 сигнализацию. Только вот Астериск вряд ли поможет с этим.
Я, пожалуй, возьму книжки. ;)
Про атаку на драйверы GPU слышу давно, спасибо за освещение этой темы на Хабре. Было бы интересно почитать более подробный разбор этой темы - какие версии ядра Linux подверженны, примеры кода выполнения атаки.
Вообще, если вдуматься, драйверы современных GPU на столько обьемные (и закрытые), что дыр там может быть просто бесконечное число. Ставить любое, не тобой написанное, приложение на смартфон небезопасно априори, защиты нет и быть не может.
Еще один интересный момент - WebGL. Подозреваю, что через этот API любое Web приложение может осуществить аналогичную атаку на GPU. Что слышно на этот счет ?
Да, Вы правы. xterm, kconsole, xfce4-terminal - это всё эмуляторы терминала работающие с последовательной линией, хоть и виртуальной. Сетевой эмулятор терминала это Telnet и SSH клиенты.
Вопрос интерфейса с CP/M и её наследниками мы здесь не рассматриваем. ;)
А Вы не ощущаете ? Одна и та же фраза ходит по кругу по сто раз. Статью можно ужать до трех предожений. И автор не раскрыл как всё же устроены "all-optical" элементы типа NAND, NOR, мультиплексор MUX2 и ячейка двухпортовой SRAM. Без этой информации статья - просто ведро воды.
Upd: достаточно MUX2 и SRAM, всё остальное выражается через эти два базовых элемента.
В целом, статья хорошая, но неподготовленного читателя может легко запутать. :-)
Краткий словарь терминов:
Терминал - физическое устройство с RS-232 интерфейсом (мы говорим о символьных терминалах). Редкий зверь в современно мире.
Эмулятор терминала - программная реализация терминала исполняемая где-то на другой машине подключенной к хосту либо через последовательный интерфейс (cu, minicom, terraterm), либо по сети через TCP соединение. В подавляющем большинстве случаев мы имеем дело именно с последним вариантом (xterm, kconsole, xfce4-terminal).
Виртуальный терминал - программный эмулятор терминала встроенный внутрь ядра современных Unix-подобных ОС, позволяющий работать с системой используя клавиатуру и видео-монитор подключенные непосредственно к хосту. Виртуальный терминал прикидывается стандартным терминалом и подключается к системе на виртуаальное последовательное устройство. Это то, к чему мы имеем доступ по Ctrl+Alt+F1, Ctrl+Alt+F2 и т.д.
Консоль - отдельная терминальная линия, на которую ядро ОС выдает системные сообщения. В современных Unix-подобных системах виртуальный терминал с номером ноль (Ctrl+Alt+F1) используется в том числе и в качестве консоли. То есть с этого виртуального терминала можно традиционно залогиниться в систему, одновременно на него система будет выдавать свои аварийные и прочие служебные сообщения.
В ОС Linux с консоли можно подавать специальные последовательности символов для управления ядром ОС путем нажатия Alt+SysRq+commandkey, где commandkey - клавиша с кодом команды:
‘k’ – Kills all the process running on the current virtual console.
’s’ – This will attempt to sync all the mounted file system.
‘b’ – Immediately reboot the system, without unmounting partitions or syncing.
‘e’ – Sends SIGTERM to all process except init.
‘m’ – Output current memory information to the console.
‘i’ – Send the SIGKILL signal to all processes except init
‘r’ – Switch the keyboard from raw mode (the mode used by programs such as X11), to XLATE mode.
’s’ – sync all mounted file system.
‘t’ – Output a list of current tasks and their information to the console.
‘u’ – Remount all mounted filesystems in readonly mode.
‘o’ – Shutdown the system immediately.
‘p’ – Print the current registers and flags to the console.
‘0-9′ – Sets the console log level, controlling which kernel messages will be printed to your console.
‘f’ – Will call oom_kill to kill process which takes more memory.
‘h’ – Used to display the help. But any other keys than the above listed will print help.
Чтобы разрешить эту фичу, необходимо сначала собрать ядро с опцией CONFIG_MAGIC_SYSRQ (в файле конфигурации ядра .config), потом ввести команду:
echo "1" > /proc/sys/kernel/sysrqЛибо собрать ядро с опциями CONFIG_MAGIC_SYSRQ и CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE. На сколько мне известно, в большинстве дистрибутивов Linux ядро поставляется с включенной опцией CONFIG_MAGIC_SYSRQ.
Более подробно про Magic Keys: https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
"Hope, this helps". Как говорят французы. ;)
А что в современных ВУЗах больше не преподают ТАУ ?
Реализация PID регулятора на Си занимает 10 строк кода, PID на Verilog - чуть поболее. Но вопрос был не про PID, а про его автоподстройку. И тут уже требуется мат аппарат.
Какие нафиг мегабайты ? Тогда слова такого не знали.
Вы правы, к IT я не имею никакого отношения и не хочу иметь.
У большинства заводов и совхозов не было своих машин, ленты там писать было попросту нечем!!! Там ставили перфоратор и специально обученая девочка дырявила карты. Потом всё это дело свозилось на ИВЦ, перегонялось на ленты, как-то обрабатывалось и отправлялось в ГИВЦ. Одна из задач нашего ИВЦ была как раз в сборе этих данных. Под закат организовали модемный доступ (собсно моя BBS этим и занималась).
Видео на тему: https://www.youtube.com/watch?v=hoOo0q7vcos
Меня никто не переучивает. Я просто игнорирую всю эту происходящую вокруг пургу.
Fusion 360 хорош всем, кроме того, что он Windows Only.
Да, и еще. Перфокарты использовались не только для программ, но и для ввода данных. К нам на ИВЦ люди таскали колоды перфокарт с заводов и главков (статистика) на обработку.
Написать я могу за одну ночь, но сначала надо понять что это за метод.
Так темпы развития были совсем иные, и в ВУЗ отправляли технику по принципу "на тебе боже что людям не гоже", списанную с какого нибудь заводского ИВЦ. А кто преподавателей переучивать будет ? Это же целая система!
То есть прошло каких-то 34 года и Вам пригодились полученные в ВУЗе знания. Это большая редкость - многие посто не доживают до такого момента. :-)
Мне немного приходилось сталкиваться с обработки сигналов и некоторыми другими областями математики. Но каждый раз я просто открывал Википедию, потом читал статьи на Хабре, потом смотрел чужой код, потом писал свой. Это типичная практика современного программиста.
До нас "за Уралом" всё докатывалось с некоторым опозданием. Но подозреваю, что перфокарты были в ходу лишь потому, что людей так обучили несколькими годами ранее. Машины у нас были вполне современные (наш отдел эксплуатировал ЕС-1066). Но, сути это не меняет. Представьте, что человека 5 лет учили Фортрану на зеленом терминале со всей спецификой большой машины, где нет ни дискет, ни иных пресональных носителей ифнормации, где всё системное ПО берется из неотокуда (потому что оператор вовремя подмонтировал нужные тома). И тут он приходит руководить кружком программирования, где стоят 8-ми битные ПЭВМ совершенно непонятной архитектуры, с неизвестной системой команд и с полным отсутствием системного и любого другого ПО. Из языков - только Бейсик (Фокал на БК, Рапира на Агате). А главное - МЕТОДИЧКИ нет! ;-) Это как с Луны на Марс попасть.
В ВУЗе в котором я учился, кстати, стояла ЕС-1022, но её выключили как раз в год моего поступления, а в дисплейные залы (их стали называть классами только лет пять спустя) завезли персоналки Искра-1030. Так что у нас учили перфорировать бумагу вплоть до 1994 года.
Мне частично пригодились знания полученные на курсе ТОЭ, "Электроника" и "Микропроцессорная техника". Весь матан прошел по жизни мимо меня.
Вы непосредтсвенно программируете алгоритмы инферренса или обучения ? Тогда снимаю шляпу.