Прикольный баг

Забав­ный баг обна­ру­жи­ли в про­шив­ках неко­то­рых моде­лей хепеш­ных твёр­до­тель­ни­ков. После того, как диск отра­бо­та­ет свы­ше 32768 часов, он навеч­но отклю­ча­ет­ся, теряя все дан­ные. Насколь­ко пони­маю, свя­за­но это с невер­ной интер­пре­та­ци­ей 16-бит­но­го чис­ла, пред­став­лю­ще­го собой атри­бут S.M.A.R.T. Power-on Hours. Оно долж­но было интер­пре­ти­ро­вать­ся как без­зна­ко­вое, а интер­пре­ти­ру­ет­ся как зна­ко­вое. Так что когда стар­ший бит из нуля ста­нет еди­нич­кой — про­шив­ка будет счи­тать, что диск был вклю­чён ОТРИЦАТЕЛЬНОЕ коли­че­ство часов и от таких ново­стей выпа­дет в оса­док.

Те же, поди, про­грам­ми­сты писа­ли, что рас­ко­ло­ти­ли спус­ка­е­мый аппа­рат об Марс из-за того, что кто-то забыл пере­ве­сти футы в мет­ры.

Ну чо, попатчимся?

Крип­то­гра­фи­че­ские сопро­цес­со­ры (TPM) про­из­вод­ства STM и Intel име­ют уяз­ви­мость, исполь­зуя кото­рую мож­но выта­щить из сопро­цес­со­ра клю­чи шиф­ро­ва­ния. В том чис­ле — и уда­лён­но, по сети, т.к. крип­то­гра­фи­че­ский сопро­цес­сор исполь­зу­ет­ся в том чис­ле при уста­нов­ле­нии TLS сес­сии. Потре­бу­ет­ся, прав­да, быст­рая сеть, т.к. воз­мож­ность ата­ки силь­но зави­сит от раз­ни­цы во вре­ме­ни меж­ду посыл­ка­ми команд.

У меня сопро­цес­сор про­из­вод­ства Infineon, так что нуж­ды пат­чить­ся у меня нет. Вла­дель­цы чипов Nuvoton тоже могут выдох­нуть.

Про­смот­реть инфор­ма­цию о про­из­во­ди­те­ле cопро­цес­со­ра на Вин­де мож­но при помо­щи ути­ли­ты tpm.msc. IFX — это Infineon. Про дру­гих не знаю.

https://www.zdnet.com/article/tpm-fail-vulnerabilities-impact-tpm-chips-in-desktops-laptops-servers/

Ну, а вла­дель­цы облач­ных сер­ве­ров сего­дня спо­ют и спля­шут — нас-то это не каса­ет­ся. За это мы и любим облач­ные тех­но­ло­гии.

Прелесть

AMD сно­ва на высо­те.

Вкрат­це — в мик­ро­ко­де про­цес­со­ров АМД есть ошиб­ка, из-за кото­рой встро­ен­ный хард­вер­ный гене­ра­тор слу­чай­ных чисел раз за разом выда­ёт 0xFFFFFFFF. Это, разу­ме­ет­ся, при­во­дит к серьёз­ней­шим дырам в без­опас­но­сти для паке­тов, кото­рые исполь­зу­ют маш­код RDRAND. Что­бы почи­нить, надо сгру­жать обнов­ле­ние для БИОСА (!) мате­рин­ской пла­ты (!!), кото­рое обно­вит мик­ро­код про­цес­со­ра (!!!). Нет, про­сто пой­ти на сайт АМД и ска­чать обнов­ле­ние низ­зя, что вы, это бы было слиш­ком про­сто.

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

Надо, прав­да, ска­зать, что часто это была вина самих вла­дель­цев, кото­рые поку­па­ли АМД не пото­му, что он был луч­ше, а пото­му, что эти про­цес­со­ры были дешев­ле. Ну, и заод­но эко­но­ми­ли ещё на всём осталь­ном — на мате­рин­ской пла­те, на памя­ти, и даже на бло­ке пита­ния (не надо ржать, неустой­чи­вая рабо­та ком­пью­те­ра как пра­ви­ло на хре­но­вость пита­ния и ука­зы­ва­ет). Полу­ча­лось в резуль­та­те гов­но из серии «на грош пята­ков». И рабо­та­ло точ­но так же.

Но это так­же была и вина АМД, кото­рые, напри­мер, не про­да­ва­ли вме­сте в про­цес­со­ром кулер. Интел про­да­ва­ли, а АМД нет. Поэто­му фору­мы фана­тов АМД были запол­не­ны сооб­ще­ни­я­ми типа: а пло­щадь ради­а­то­ра в 130 квад­рат­ных мил­ли­мет­ров это доста­точ­но? А 40 кубов в мину­ту хва­тит? Нет, не хва­тит, надо мини­мум 45!

А вла­дель­цы Инте­лов не пари­лись и ста­ви­ли кулер, кото­рый шёл в ком­плек­те. И всё нор­маль­но рабо­та­ло иско­роп­ки.

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

АМД ещё тогда же начал сва­ли­вать с боль­ной голо­вы на здо­ро­вую — мол, изго­то­ви­те­ли мате­рин­ских плат вино­ва­ты, они не ста­вят на пла­ты тер­ми­сто­ры и защи­ту (вот ТОЧНОСТИ как в дан­ном при­ме­ре — нехай БИОС апгрей­дят, а мы белые и пуши­стые и вооб­ще не при чём). А Интел без излиш­ней зауми ста­вил защи­ту в сам про­цес­сор. Ибо нех­рен.

Потом АМД взя­лись, нако­нец, за ум, и ста­ли про­да­вать вме­сте с про­цес­со­ра­ми куле­ры. А теперь, вишь, опять пере­ста­ли:

Нет, пре­лесть же. 32‑х ядер­ная «Рязань» за почти две тыщи бак­сов, но кулер нихе­ра в постав­ку не вхо­дит. 20 дол­ла­ров сэко­но­ми­ли, молод­цы!

Касперский — прелесть

Поми­мо того, что дан­ный… кгм… про­дукт у меня регу­ляр­но под­ве­ши­вал ком­пью­тер, он, как теперь выяс­ня­ет­ся, ещё давал пре­крас­ную воз­мож­ность отсле­жи­вать поль­зо­ва­те­лей в интер­не­те. Под соусом яко­бы опре­де­ле­ния зло­на­ме­рен­но­сти посе­ща­е­мо­го веб­сай­та, с 2015 года Кас­пер­ский добав­лял на все посе­ща­е­мые стра­ни­цы неболь­шой кусо­чек джа­вас­крип­тов­ско­го кода. Не знаю, как он по резуль­та­там это­го соби­рал­ся опре­де­лять зло­на­ме­рен­ность, но скрипт, кото­рый он добав­лял, имел уни­каль­ный инди­ви­ду­аль­ный иден­ти­фи­ка­тор. А так как при таких рас­кла­дах этот скрипт тоже ста­но­вит­ся частью DOM, его содер­жи­мое ста­но­вит­ся доступ­ным ВСЕМ скрип­там на этой стра­ни­це. То-есть, любой дурак мог взять и запо­лу­чить уни­каль­ный иден­ти­фи­ка­тор поль­зо­ва­те­ля, и имен­но что зло­на­ме­рен­но исполь­зо­вать его в целях, напри­мер, под­со­вы­ва­ния рекла­мы или ещё чего поху­же.

С какой целью на самом деле всё дела­лось имен­но вот так — затруд­ня­юсь ска­зать. Но *мно­го­зна­чи­тель­но шеве­ля уса­ми* учи­ты­вая, что Евге­ний Вален­ти­но­вич закон­чил Выс­шую Шко­лу КГБ…

В‑общем, я как сва­лил с него, так с тех пор ни разу не пожа­лел.

Худший браузер

Это, конеч­но, Edge.

Уди­ви­тель­но несов­ме­сти­мая с ни чем шту­ка. Не, в фейс­бу­чек поту­пить, конеч­но, сго­дит­ся, а вот запу­лить нор­маль­ное веб-при­ло­же­ние — уже хре­нуш­ки.

Сего­дня попал в пора­зи­тель­ную ситу­а­цию — Мик­ро­соф­тов­ский бра­у­зер не смог запу­стить Мик­ро­соф­тов­ское же при­ло­же­ние — MS Teams Web App.

А в Хро­ме — с пол-пин­ка всё заве­лось. Вот такой вот нын­че Мик­ро­софт — сам с собой нево­сме­сти­мый.

Отбивательство

Блин, послед­нюю неде­лю прак­ти­че­ски все мои раз­го­во­ры на рабо­те про­ис­хо­дят так:

Тесте­ры: Вы доба­ви­ли на фаер­волл ексеп­ше­ны?
Я: А вы мне при­сла­ли спи­сок ексеп­ше­нов как я потре­бо­вал две неде­ли назад?
Тесте­ры: Вот пря­мо щас погля­дим и при­шлём!

Про­грам­ми­сты: вы уста­но­ви­ли наш новый код на веб-при­ло­же­ние?
Я: А вы его ском­пи­ли­ро­ва­ли и мне его дали, как я про­сил три неде­ли назад?
Про­грам­ми­сты: Дай­те пять минут, при­шлём!

Отдел доку­мен­та­ции: что-то мы до сих пор не видим новую базу дан­ных, кото­рую мы про­си­ли доба­вить
Я: А вы при­сла­ли мне схе­му БД кото­рую я уже вто­рую неде­лю еже­днев­но про­шу, что­бы я её доба­вил?
Отдел доку­мен­та­ции: Ну добавь­те хоть чего!
Я: Чего добав­лять-то? Тон­ну таб­лиц и тол­пу вар­ча­ров? А какой дли­ны? Сколь­ко? А индек­сы где будем делать? А про­вер­ки на уни­каль­ность? А пер­вич­ный ключ надо? А кто к это­му дол­жен иметь доступ, и какой?
Отдел доку­мен­та­ции: Мы щас поду­ма­ем.

Началь­ник: Чего-то у нас нихе­ра не рабо­та­ет!
Я: У меня все ходы запи­са­ны.
Началь­ник: Понят­но. Щас я их смо­ти­ви­рую.

А зав­тра будет, япон­ский бог, ров­но то же самое.

Вчера Линукс чинили-чинили

Ста­ви­ли на вир­ту­аль­ную машин­ку обнов­лён­ное ядро. Поста­ви­ли, обно­ви­ли граб­ли (GRUB), пере­гру­жа­ем­ся… в ста­рое ядро. Чо за нах. Стёр­ли нахер ста­рый /boot/vmlinuz, так что един­ствен­ным vmlinuz оста­лось новое ядро. Пере­гру­жа­ем­ся… в ста­рое ядро. КАК??? ОТКУДА?? Как маши­на может загру­зить­ся ядро, кото­ро­го даже на дис­ке нет? Всё пере­про­ве­ри­ли, зано­во поста­ви­ли новое ядро, пере­про­ве­ри­ли граб­ли, пере­гру­жа­ем­ся… в ста­рое ядро.

Я чуть кры­шей не поехал. Отку­да оно берёт­ся-то? Дела­ем find / ‑name «vmlinuz*». Нихе­ра, кро­ме ново­го ядра.

Нако­нец от отча­я­ния смот­рим в syslog и видим какие-то упо­ми­на­ния /dev/sda, при том, что у нас вро­де как один диск, и ОС у нас сто­ит на /dev/sdb. Выяс­ня­ем нако­нец, что к машине при­цеп­лен вто­рой диск, кото­рый нигде не смон­ти­ро­ван — но на нём, ядрё­на вошь, сто­ит vmlinuz, в кото­рый и гру­зит­ся наша вир­ту­ал­ка!

Отцеп­ля­ем диск нахер и нако­нец нор­маль­но гру­зим­ся в новое ядро.

Дав­нень­ко я не чув­ство­вал себя таким иди­о­том. Это бод­рит.

О названиях узлов

Став­лю тут хрень для уда­лён­но­го руле­ния сер­ве­ра­ми через RDP через любой бра­у­зер, под­дер­жи­ва­ю­щий HTML5. Очень удоб­но, пото­му что мож­но рулить всем хоть с теле­фо­на, хоть с маши­ны под Фрю­ник­сом. Хрень назы­ва­ет­ся Guacamole (Гуа­ка­мо­ле) — это назва­ние такой мек­си­кан­ской закус­ки (или соуса для мака­ния, это уж как назвать). Надо было как-нибудь при­ду­мать, какие име­на дать двум сер­ве­рам. При­ду­мал — назвал «аво­ка­до» и «кин­за» (два основ­ных ингри­ди­ен­та для это­го соуса). Началь­ник посме­ял­ся, но выбор одоб­рил 🙂

А вы гово­ри­те, что в систем­ном адми­ни­стри­ро­ва­ние нет полё­та фан­та­зии 🙂