Hack The Planet. Детектіф-бах-бах
Субота, 30 Березень 2024 18:19Чуваки протягом двох років послідовно і методично втілювали зловісний план по створенню бекдору, який дозволяв би ssh на майже усі Лінукс-системи у світі.
Коротше, Hack The Planet.
Повинно було спрацювати точнісінько у самий розпал передвиборчої боротьби у США. Соўпадєніє? — нє ду…!
Провалилися тільки тому, що якийсь ботан¹ помітив, що ssh працює на 500ms довше, ніж зазвичай, і жере high CPU.
Keywords: OpenSSH, liblzma5, xz-utils, CVE-2024-3094



В інтернетах також пишуть, що цей «китаєць» водить шашні з цапським ігорєм павловим (автором 7-zip).
А його подільник, який залив комміт на vcpkg, на твіторі фоловить winrar і лайкав кримнашистські дописи у 2014-му.
Technologist vs spy: the xz backdoor debate
Backdoor found in widely used Linux utility breaks encrypted SSH connections
Everything I Know About the Xz Backdoor
YCombinator
backdoor in upstream xz/liblzma leading to ssh server compromise
FAQ on the xz-utils backdoor
¹) насправді, провідний програміст в Microsoft, який розробляв якийсь свій хоббі-продукт
Коротше, Hack The Planet.
Повинно було спрацювати точнісінько у самий розпал передвиборчої боротьби у США. Соўпадєніє? — нє ду…!
Провалилися тільки тому, що якийсь ботан¹ помітив, що ssh працює на 500ms довше, ніж зазвичай, і жере high CPU.
Keywords: OpenSSH, liblzma5, xz-utils, CVE-2024-3094



В інтернетах також пишуть, що цей «китаєць» водить шашні з цапським ігорєм павловим (автором 7-zip).
А його подільник, який залив комміт на vcpkg, на твіторі фоловить winrar і лайкав кримнашистські дописи у 2014-му.
Чтиво:
Timeline of the xz open source attackTechnologist vs spy: the xz backdoor debate
Backdoor found in widely used Linux utility breaks encrypted SSH connections
Everything I Know About the Xz Backdoor
YCombinator
backdoor in upstream xz/liblzma leading to ssh server compromise
FAQ on the xz-utils backdoor
¹) насправді, провідний програміст в Microsoft, який розробляв якийсь свій хоббі-продукт
Підписатися на RSS
...
Дата: Субота, 30 Березень 2024 18:03 (UTC)...
Дата: Субота, 30 Березень 2024 18:36 (UTC)Тим більше, якщо вразливіть ретельно прихована: ви ж читали, та падлюка засунула саму вразливість у бінарник, який, тіпа, використовувався під час юніт-тестів. Але насправді, билд-скрипт виколупував той бінарник і підсовував у список для компіляції.
...
Дата: Субота, 30 Березень 2024 18:59 (UTC)...
Дата: Субота, 30 Березень 2024 19:11 (UTC)А ще gcc.
А
mov eax, [esp+42]— годі й казати! взагалі корінь зла! :)...
Дата: Субота, 30 Березень 2024 20:07 (UTC)...
Дата: Субота, 30 Березень 2024 20:18 (UTC)Шкідлива програма тримала свій шкідливий код у бінарному файлі, який ніби-то призначався для юніт-тестів. Ну, типу, беремо файл із випадковими байтами і переконуємося, що це не zip, і код правильно визначає, що це — не zip, а фігня.
А юніт-тест переконується в тому, що на битий zip — правильна реакція.
Поруч лежать інші файли, де справжній zip, їх теж, у рамках юніт-тестування, розпаковуємо і переконуємося, що програма їх правильно розпізнаЄ, як zip, і здатна розпакувати.
А насправді, в «битому» файлі зашифрований, власне, шкідливий код.
Головна ідея — що цей шкідливий код прикидається, що він просто дані для юніт-тесту.
Колега пожартував, що юніт-тести — корінь всіх проблем.
Хоча, звісно, юніт-тести — це інструмент розробника, він не може бути шкідливим. Що програміст в нього вкладе — то й буде.
А я, у відповідь, пожартував, що у такому випадку, gcc (компілятор C) теж шкідливий.
А особливо шкідливою я назвав першу-ліпшу, яка під руку потрапила, інструкцію процесора. Бо і її можна використовувати на шкоду.
Доповідь закінчив. :)
...
Дата: Субота, 30 Березень 2024 20:38 (UTC)Я не справжній зварювальник, лише маску знайшов, тому поняття не маю, що це таке.
З юніт тестами я чого про них погано думаю: не раз і не два я бачив ситуації, коли програмісти думають, що "90% каверадж юніт тестами -- значить у нас все правильно", виправдовуючи анекдот про мереживного програміста на стрільбищі, який відстрелив собі палець і кричить, що проблеми на вашому кінці, у мене все вилітає.
Але найгірше, що 100% айтішного начальства 100% переконане, що поки нема юніт тестів, усе погано, зате як тільки є -– добре. Тратять весь свій і твій ресурс на фігню, а потім переживають, чого це у них юніт тести працюють, а проект валиться. Тому що життя, блін, ширше, ніж вузенький спектр задач, для яких вони, справді, потрібні.
...
Дата: Субота, 30 Березень 2024 21:06 (UTC)> Я не справжній зварювальник, лише маску знайшов, тому поняття не маю, що це таке.
Перша-ліпша асемблерна команда, яка спала на думку. Бо її теж можна використовувати на шкоду комусь.
Десь читав вислів, не можу найти точного формулювання і джерела.
Але суть така: як тільки-но будь-яка метрика стає ціллю, вона стає скомпрометованою.
Бо завжди знайдеться умнік, який вигадає спосіб легко отримати формальне число цієї метрики.
Тобто, як тільки (ref. 1980s) вас починають хвалити за lines of code (LOC), з'являються індуси, які замість i+=5 пишуть:
i = i+1;
i = i+1;
i = i+1;
i = i+1;
i = i+1;
Як тільки ви починаєте гнатися за coverage (хвалити за 90% і сварити за 50%) — всьо, щітай піздєц, всім твоїм юніт-тестам — грош ціна. Навіть тим 50%, що так-сяк написані.
Я великий фан юніт-тестування, єслішо.
Мої тести майже завжди мають більше LOC, ніж основний код.
Виправив багу — напиши на неї тест. Краще взагалі TDD, якщо фреймворк дозволяє.
І все таке інше.
Тести — не панацея, але інструмент. Ним можна вміти/хотіти користуватися, а можна — ні.
— інтеграційні тести, це називається. «ваш кінець» і «їхній кінець» можуть бути протестовані, а інтеграція — ніт.
— валиться, тому що ще є функціональні, інтеграційні тести — і їх теж треба (1) писати, (2) оновлювати разом з кодом; (3) максимально включати до CI/CD.
...
Дата: Субота, 30 Березень 2024 21:50 (UTC)... перестає бути хорошою метрикою. Закон Ґудхарта.
На попередній роботі я тратив більшу половину свого часу і здоровля, переконуючи інших в тому, що вони кажуть фігню, і ця фігня уже півстоліття називається ось так от. Може, того я там і не затримався. (Не затримався я тому, що не зумів впоратися з завданням "порахуй, наскільки та фігня, яку ми не зробили, не фігня, але так щоби цифри були хороші, бо фігові цифри нам не подобаються")
Тести -- хороший спосіб тестувати *код*, але далеко не завжди -- хороший спосіб тестувати логіку в перетворенні даних. Мій начальник все хотів, аби я написав юніт тести для своїх SQL-запитів. Я чесно сказав, що поняття не маю, як писати юніт тексти в сіквелі, і чи вони бувають. Мені сказали, тоді пиши все те ж саме на Скалі через Спарк... тому, що в скалі є юніт тести.
Повбивавби. Я з того часу відчуваю нездорову ксенофобію на австралійський акцент
...
Дата: Неділя, 31 Березень 2024 04:10 (UTC)— точно, дякую.
— Все так. Але можна заходити з кількох боків. Я ось нещодавно в один проєкт писав тест на те, що в зібраному insallation bundle PDF-документація містить секції 1…28. Бо збірочний скрипт умовно додає або не додає певні секції, і за певних умов була помилка.
...
Дата: Неділя, 31 Березень 2024 16:30 (UTC)Та звичайно. Я ж бідкаюся не про існування тих чи інших тестів чи правил взагалі, а про практику, коли ті чи інші правила роблять надо універсальними або абсолютиують їх цінність. Я вже колись писав, і ще раз напишу.
Універсальних і абсолютних правил/принципів/законів/тверджень не існує. (Рекурсія доречна.)
...
Дата: Вівторок, 2 Квітень 2024 06:17 (UTC)...
Дата: Субота, 30 Березень 2024 20:31 (UTC)- або ім"я програмістки чи дівчини програміста
- або (що імовірніше) кодова назва проекту (з захоплення планети)
Ну і одразу видно, хто це зробив ...
...
Дата: Субота, 30 Березень 2024 20:41 (UTC)...
Дата: Неділя, 31 Березень 2024 04:14 (UTC)...
Дата: Неділя, 31 Березень 2024 22:03 (UTC)Де там таке пишуть?
За посиланням Lasse Collin (оригінальний мейнтейнер xz, не китаєць) пише, що у нього нема часу та натхнення розвивати проект, тому він розглядає варіант запросити додаткових мейнтейерів, наприклад отого китайця, тому що він там щось покращував, ну або може хтось тупо форкне і буде своє робити, але при цьому важливо не наробити дурниць і несумісні речі випускати як новий формат, тому що xz вже підтримується іншим софтом, 7-zip, і взагалі про будь-які зміни та розширення формату краще повідомляти його девелоперу (щоб він ці фічі і у себе підримував).
...
Дата: Понеділок, 1 Квітень 2024 06:24 (UTC)Отакої, я думав, що автор 7zip з України.
...
Дата: Понеділок, 1 Квітень 2024 06:40 (UTC)Перепрошую за гівноджерело
...
Дата: Понеділок, 1 Квітень 2024 06:49 (UTC)пічалька.