Спекулятивное исполнение

Вот как вы думаете, современные процессоры, встретив в коде условный переход типа if () {} else {}, какую ветвь кода выполняют?

Правильный ответ: обе.

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

Только вот с выбрасыванием есть… эффекты. Которыми можно злоупотребить. Именно отсюда растут ноги туевой хучи эксплойтов типа Spectre, Meltdown, и прочих радостей. Теперь с эффектами засветились процессоры AMD.

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

https://www.bleepingcomputer.com/news/security/new-inception-attack-leaks-sensitive-data-from-all-amd-zen-cpus/

Когда же всё это починят? Да никогда. Убирание спекулятивного исполнения стоит огромного падения в производительности. Поэтому оно с нами будет как минимум до тех пор, пока память типа SRAM не будет стоить как обычная оперативка RAM.

Микрософтовская болталка

Я, признаться, ожидал лучшего. Она даёт фактически неверные ответы и работает дольше, чем ЧатЖПТ. Сначала ищет ответы в своих бингах, а потом резюмирует найденное. Вот, вопрос из теории музыки — в чём разница между нонаккордами C9 и Cadd9:

Болталка попыталась меня уверить, что в Cadd9 тоже есть септима, только она большая (B), а не малая (Bb). А вот шЫш, не было там никогда септимы. Cadd9 — это очень красивый аккорд с добавленной ноной (D).

При этом оно даёт ссылки с документами, в которых английским по белому написано, что септимы там нет. Я ему написал, что оно неправо. Извинилось.

Цирк с конями на нейронной тяге.

Протокол HTTP и политика

У людей, делавших протокол http, всё же было чувство юмора.

Помимо уже всем известных кодов ошибок 404 или 403 есть ошибки с забавными кодами. Например, есть ошибка HTTP 418 I’m a teapot (я чайник).

Смысл этой ошибки, на первый взгляд, созданной чисто ради хохмы, всё же есть. Ошибка вылетает, если сервер считает, что его используют не по назначению. Официальное описание: “любая попытка заварить в чайнике кофе вместо чая должна вызывать ошибку 418 Я Чайник.” Вебдевы иногда используют эту ошибку внутри софта, когда, например, есть несколько серверов, и один из них обслуживает один класс клиентов, а другой — всех остальных, и запрос случайно приходит не на тот сервер.

Немного другой смысл у более зловещей ошибки HTTP, 451. Цифра 451 — это отсылка к Рею нашему Брэдбери, романе-дистопии “451 по Фаренгейту”, про тоталитаризм, где запрещённые книги сжигают вместе с домами, где они были найдены.

Я раньше эту ошибку никогда не видел. Но с началом известных событий в Восточной Европе — дожил, увидел и её.

Жаль ЖЖ. Но альтернатива как-то не высвечивается, во всяком случае, не для международных пользователей.

Про законы робототехники

У Айзека Азимова много написано про то, что три закона робототехники — это замечательно, но даже такие три простые правила можно интерпретировать по-разному. В одном из рассказов, не вспомню сейчас в каком, закон первый, т.е. “робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред” — был интерпретирован роботом как “людей надо нежно связать и запереть, чтобы они не причинили себе вред”. Что он незамедлительно и сделал.

А ныне ВВС США сделали симуляцию дрона, управляемого ИИ, который уничтожал системы вражеской ПВО. Прежде чем отбомбиться, ИИ запрашивал разрешения у оператора, который мог запретить уничтожение конкретно этого расчёта ПВО. Ньюанс в том, что за каждую уничтоженную систему ПВО искуственному интеллекту начислялись очки. Кончилось тем, что ИИ отбомбился… по оператору дрона, чтобы тот не выпендривался, и не мешал ИИ набирать эти самые очки.

https://www.theregister.com/2023/06/02/ai_drone_simulation/

“Гигабайт” слегка обосрался

Как интересно. У компьютеров с системной платой “Гигабайт” есть автоматическое обновление прошивки, которое запускается при каждой загрузке компьютера и обращается к одному из следующих ресурсов:

http://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4
https://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4
https://software-nas/Swhttp/LiveUpdate4

При обнаружении обновлений оно их сгружает и выполняет с системными привилегиями.

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

Да, воспользоваться этой уязвимостью не сказать, чтобы было сильно просто — потребуется доступ к сети организации. Но сам факт того, что сгружатель может скачивать всякую фигню, никак не проверяя то, что он скачивает, довольно позорный. Я был лучшего мнения о программистах “Гигабайт”.

https://eclypsium.com/blog/supply-chain-risk-from-gigabyte-app-center-backdoor/

PS: Обновления для Windows, кстати, тоже скачиваются по простому http — это сделано для того, чтобы создавать меньшую нагрузку на серверы компании. Но Винда проверяет хеш каждого скачанного обновления — а уж сами хеши передаются по защищённому каналу.

PPS: У меня MSI 🙂

Про отнимание работы искуственным интеллектом

В комментах к записи про замену продавцов машинами вполне справедливо указали, что не только работникам торговли стоит опасаться конкуренции со стороны ИИ. Я думаю, наличие того же Адобе Светлячка, результатами которого я недавно делился, или Микрософт Дизайнера могут серьёзно подкосить индустрию иллюстраторов.

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

А какие у нас работы требуют лицензирования? Например, работа архитектора, врача, электрика, сантехника. И если представить себе робота-сантехника сложновато, то вот с врачом всё действительно будет непросто. Лицензия это же не просто разрешение. Это ещё и определённая гарантия качества и кнут со стороны государства — если врач серьёзно накосячит и дальше попрёт как бык на ворота, его могут лишить лицензии заниматься врачебной практикой, а это конец карьере.

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

Но у нас ещё есть исключительно интересный случай, в котором ИИ уже успел програть. Это опять же, попытка замены человека, чья деятельность требует лицензирования — юриста.

Подробности можно прочитать у ув. giovanni1313:

Часть первая: https://giovanni1313.livejournal.com/119149.html
Часть вторая: https://giovanni1313.livejournal.com/119504.html

TLDR; Джошуа Брудер создал весьма успешного кибер-адвоката, изначально сделанного для того, чтобы отфутболивать автомобильные штрафы, а потом раздувшего амбицию до желания использования системы аж в Верховном Суде. А другие адвокаты ему сунули в рот известно что, и положили известно что на воротник. “Данная деятельность требует лицензирования, так что ты, Джошуа Брудер, сейчас занимаешься адвокатством без лицензии. Отсидеть шесть месяцев в тюряге хочешь?” Ожидаемо, Брудер сдулся, и так многое обещающий стартап закрылся.

Хорошо это получилось? Я считаю, что нет. Но это было ожидаемо — те, кому хорошо в какой-то определённой ситуации, будут эту самую ситуацию защищать, ибо им интересно статус-кво. Просто у иллюстраторов или там стокеров в магазине в заднице не так кругло, как у Национальной Гильдии Адвокатов. Поэтому последние покамест сумели остоять статус-кво. Поглядим, надолго ли.

Фаерфоксяша, гудбай

Я очень долго использовал ФаерФокс в качестве основного браузера, но больше так не могу. И дело не в том, что он меня не удовлетворяет — он мне нравится.

Но всё большее количество сайтов с ним не работают или имеют кривую функциональность. Страницы не перелистываются или ещё что подобное. Все нынче пишут под две платформы: Хромообразное или Сафари. При всей моей неприязни к разработчикам веб-сайтов мне сложно их винить — при количестве пользователей под Фаерфоксом менее 5% сложно от них требовать писать только так, чтобы и под ним тоже работало.

Фаерфокс также исключительно криво работает под Линуксом. Вот он ничего не делая, просто будучи запущенным, отжирает серьёзный ресурс у процессора. Чего он там делает — загадка, остальные-то браузеры работают нормально! Даже Эдж работает просто замечательно. Ага, Эдж есть под Линуксом! Прикиньте, компания Микрософт выпускает версию своего браузера под Линукс. Расскажи мне это в каком-нибудь 1999 году, я бы только пальцем у виска покрутил. Однако у Микрософта нынче с Линуксом любовь — что мне нравится, так как я, наверное, процентов 25 своей работы делаю под WSL. WSL в сто раз круче, чем тот же Цыгвин, потому что пакеты ставятся по-человечески, через apt. Чтобы добавить пакет в Цыгвин, надо каждый раз setup.exe запускать. И обновляться так же. Нафиг-нафиг.

В-общем, Фаерфокс меня замумил окончательно, так что я от него избавился. Нет, я перешёл не на Хром. Хром я не люблю, как и многие другие продукты компании Гугл (например, ВЕДРОИД этот ваш богомерзский).

Я перешёл на Брейв — сиречь, форк опенсорсного Хромиума. Эдж, к слову, тоже форк Хромиума. И Эдж мне в принципе, вполне нравится — я пользуюсь им для работы, так как я уж точно знаю, что с микрософтовскими сайтами он будет работать нормально. Это был мой запасной вериант, если бы Брейв мне не понравился.

Брейв пока неплох. Без проблем втащил все мои закладки и даже историю из Фаерфокса. Сайты все работают, пока всё хорошо. Буду наблюдать.

MIDI-квест или скупой платит дважды

Кто покупает три разных MIDI говношнурка, прежде чем купить нормальный — тот я.

Современные музыкальные инструменты подключаются к компьютеру по USB, изображая интерфейс USB MIDI. И всё с этим просто и понятно.

Однако старые инструменты имеют пятиштырьковый разъём MIDI, и подключать их надо через переходники MIDI->USB. Так вот, если возьмётесь такое делать, послушайте мой добрый совет — не покупайте дешёвые. Дешманские шнурки либо не работают вовсе, либо внутри них стоит настолько простенький микроконтроллер, что он просто не успевает обрабатывать поступающие данные. Особенно это касается MIDI барабанов, где часто играется одна и та же нота, много раз за секунду (дробь).

Единственный шнурок, способный обработать MIDI сигналы моего TD10 с такой скоростью — родной Роландовский.

Я долго жадничал, потому что он сорок долларов стоит 🙁 А вот не надо было. Вот и получилось, что скупой платит дважды, прямо как в пословице.

Зато теперь можно играть на барабанах через EZDrummer на лаптопе, если нормальная звуковая карта, поддерживающая ASIO — без задержек вообще.

Дырень

Читаю описание нулевой дырки в Аутлуке и только тихо фигею.

Нет, вы подумайте сами:

1. Можно написать специальным образом сгенерированное письмо.
2. В этом письме можно указать, что уведомление об это письме должно быть индивидуальным (кастомный звуковой файл). Пользователю даже не нужно это письмо открывать.
3. Этот файл с уведомлением может быть любым.
4. В том числе — он может находится по UNC пути, к которому надо пройти по протоколу SMBv3.
5. Сервер с файлом может находится где угодно, в том числе — в интернетах, хрен знает, где.
6. При попытке прочитать файл с сервера в UNC, может возникнуть необходимость авторизоваться.
7. Чтобы авторизоваться, Винда посылает серверу NTLM хеш пароля пользователя.
8. PROFIT!!!!

Рехнуться. Какой дурдом.

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