Ловушки сторонних библиотек

  • Ловушки сторонних библиотек

Сегодня поговорили о недавней уязвимости в сторонней библиотеке логов, которая может быть использована с низким порогом для удаленного выполнения команд. Библиотека логов и удаленная команда кажутся совершенно не связанными, но излишние сторонние библиотеки повсюду.

Чем больше кода я читаю, тем сильнее ощущаю, что уровень многих открытых исходных кодов очень низок, независимо от количества звезд, которое у них есть. Звезды представляют потребности, а не уровень разработки.

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

Если нет сильного контроля над коммитами, качество кода трудно гарантировать.

Чем больше кода, тем больше увеличивается поверхность атаки

Хотя повторное изобретение колеса нехорошо, потребности продукта - это колеса детской коляски, колесо из пластика не сломается, установка колеса самолета только увеличивает поверхность атаки и стоимость обслуживания. Поэтому, если нужны только колеса детской коляски, не нужно использовать большие ресурсы для маленьких задач.

Высокая стоимость обслуживания, сторонние библиотеки требуют специальных процессов и персонала для обслуживания. Тестовая платформа Huawei с модификацией привела к сбою тестов при обновлении компилятора, обновление тестовой платформы и компилятора приводит к конфликтам, при обслуживании требуется много времени для продолжения модификаций. Как участник я глубоко понимаю трудности модификации сторонних библиотек. Если модифицированная функция может быть объединена обратно в открытый исходный код, это еще нормально, но инвазивная разработка для своих потребностей приводит к трудностям в обслуживании.

Huawei создала серию процессов для сторонних библиотек, можно сказать, что препятствия огромны.

Порог строго ограничен, добавление сторонних библиотек требует оценки эксперта 18 уровня и министра 20 уровня, в основном только известные сторонние библиотеки могут быть использованы.

Все сторонние библиотеки помещаются в папку thirdparty, при полной компиляции CI сравнивает с исходным репозиторием, строго запрещая инвазивные изменения.

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

Трудно найти министра для решения таких дел, когда процесс очень сложен, он на самом деле劝ует вас не делать этого.

Следует сохранять недоверчивое отношение к сторонним библиотекам и верить в разработку своих людей.