log4j ?

Dec. 24th, 2021 01:04 pm
malyj_gorgan: (Default)
[personal profile] malyj_gorgan
Слухайте, а хтось може в парі абзаців пояснити, що то таке сабж і з чим його їдят? Дідько з нею, з його vulterability'ею, я хочу зрозуміти, чим був такий хороший чи зручний чи потрібний сам log4j, що та вульнерабіліті виявилася такою проблємною? Тільки пояснити так, на хлопский розум, без відсилань в непотрібні абревіатури.
Дякую!

Date: 2021-12-31 02:23 am (UTC)
From: [personal profile] mprotsenko
що кожен метод повинен мати лише той мінімум функцій/прав, який йому потрібен

І як нам визначити, який саме об'єм прав (а) має тий, чи інший метод, і (б) якій об'єм йому потрібен?

Якщо б це було тривіальною задачею в складних системах... Можна розібрати хоча б на прикладі вишепроцитованої вразливості в iMessage.


  [IMGIFUtils copyGifFromPath:toDestinationPath:error]



Що в цьому коді вказує на потенційну ескалацію функціональності?




Чи, наприклад, контекст та організований логінг - необхідні, так? Хтось може сказати - а давайте все ліпити (включно з повним контекстом) в stdout, а sidecar вже збере і розбереться, що треба залишити.

І іноді цій підхід може працювати. А іноді - створювати ще більші вразливості (хоча б тому, що повний контекст та inter-process communication це вже небезпечно, небезпечніше, ніж це робити всередині процесу).

І тому практики integration/deployment за межами critical safety infrastructure важливіші за ідеальний код (хоча б тому, що ідеальний код не можливий принципово, а значить, нам треба вчитись щось робити з неідеальним кодом).

Але, ці практики звучать просто - і навіть відчуваються просто коли вже втілені. А саме втілення дуже складне, бо воно не про 0 та 1, не про алгоритми, не про формальні методи, а про взаємодію людей.
Edited Date: 2021-12-31 02:28 am (UTC)

Date: 2021-12-31 05:22 pm (UTC)
From: [personal profile] mprotsenko
(Неодноразово досліджений) прикол як раз в тому, що класичні "обмежувальні" практики (те ж саме "жорстке розділення QA та developers", "жорстке розділення SRE та developers", "code freeze", "security through obscurity") як раз приводять до гірших результатів - від безпеки до бізнес-результатів.

(Це, звісно, в умовах "типового" software development задач - є купа edge cases де ці практики є корисними.)




Що до людей, які вміють, не хочуть чи не мають можливості - це дуже класне питання, яке починається з incentives. Якщо, наприклад, cost-saving менеджер каже "be your own QA" - то можна розробнику розраховувати на бонус за вдосконалення testing pipeline чи скорочення часу виконання тестів на годину? Відповідь на це питання проводить чітку межу між компаніями (чи командами в компанії).

Бо incentives define behavior - якщо за такі практики менеджмент підтримує працівників, то більшість людей активно починає вчитися, хотіти, та шукати можливість. Не все, але більшість.





А що до нестачі інструментального контролю - я погоджусь. Але не в сенсі "тримати та не пущати", а в сенсі саме instruments.

- Штурман, приборы!
- Триста!
- Что триста?
- А что приборы?


Менеджмент coding/integration/deployment practices як раз починається з вимірів того, що в тебе відбувається в цих місцях. А з цим, як правило, дуже сумно - хоча усі інструменти є на ринку, в Гугл найматися, щоб їх використовувати - вже не треба.

Date: 2021-12-31 07:51 pm (UTC)
From: [personal profile] mprotsenko
Exactly! Все правда, і те, що джерелом таких проблем найчастіше є менеджмент, і те, що інженери, в принципі, самі винні, що ведуться, можуть і не вестися.

А що вони можуть зробити, якщо менеджер вирішує звільняти SRE та QA - що є антіпатерном, навіть в компаніях, де девелопери самі займаються тестуванням?

Сказали своє фу менеджменту, менеджмент їх не послухав, що далі? Далі залишається єдина можливість - перейти через дорогу в компанію з більш адекватним менеджментом, що вони і роблять, ні?

А тут починаються сумні реалії життя: абстрактно все вимірювати і грамотно організовувати було би класно, але коли у тебе 2/3 команди пішло, нікого нормального найняти не виходить, менеджмент, який до цього докотився, уже помінявся... а ти сидиш в новорічний вечір перед проектом, який тріщить по швах і думаєш, що "блін, якби у них була хоч пара к'юеїв, вони би до цього не допустили"

Класична проблема:

- В тебе ж сокира тупа!
- Та нема коли точити, рубати треба!

Але ж проблема в тому, що якщо не почати щось робити - ані з retention, ані з hiring, ситуація краще не стане.

Бо навіщо йти працювати, там де бардак та проблеми, якщо можна піти туди, де нема бардаку та проблем?

Як кажуть: "You can change the organization or you can change the organization."




В мене є підозра, що саме це буде примушувати індустрію сепаруватися на окремі прошарки - в одному треш і угар, в іншому адекватні (хоча і неідеальні) практики, і перетинатися ці два світи не будуть.
Edited Date: 2021-12-31 08:12 pm (UTC)

Date: 2021-12-31 08:03 pm (UTC)
From: [personal profile] mprotsenko
Я в індустрію попав, коли замість засилля класичних практик почало ставатися засилля заборони класичних практик.

Якщо ми вже почали звертатися до медичних аналогій, то гірше за відсутність лікування може бути тільки невміле та часткове лікування: хоч software engineering взяти, хоч бактеріальну інфекцію.

Profile

malyj_gorgan: (Default)
malyj_gorgan

June 2025

S M T W T F S
12 345 67
89 1011 121314
15161718192021
22232425262728
2930     

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 18th, 2025 06:00 am
Powered by Dreamwidth Studios