Задать вопрос
KodyWiremane
@KodyWiremane
Пони, Debian, LEMP, LAN, любитель

Как найти библиотеки/софт, которому можно доверять (особо: PHP, JS)?

В настоящее время меня в основном интересует PHP на бэке и JS на фронте, поэтому в первую очередь вопрос задан в рамках этих двух языковых сред.

Сегодня ряд ЯП имеет репозитории и менеджеры пакетов. Для указанных двух это Packagist/Composer и NPM. Насколько я понимаю, аудит безопасности там носит характер пост-модерации, то есть удаление вредоносных пакетов происходит на основании репортов. В принципе, логично, кто будет за так анализировать мегатонны кода.

Вопрос в том, как в этой массе найти библиотеки, в отношении которых уверен если не в полном отсутствии дыр, то хотя бы в компетентности и благих мотивах их создателя. Я представляю себе следующую иерархию "политик безопасности в отношении заимствованного кода":

1. Писать и знать весь код самому — идеал, к которому можно стремиться;
2. Читать и знать весь код самому;
3. Следовать выбору доверенных авторитетов, использующих подход не хуже №2 (мб №3, главное рекурсию разорвать) — выбирать то же, что и эксперты, и молиться;
4. Следовать выбору большинства и выбирать популярные библиотеки — смотреть на счётчик скачиваний и молиться;
5.1. Просто использовать то, что подходит, и молиться;
5.2. Просто использовать то, что подходит, и не молиться.

Сложность №1 и №2 растёт пропорционально размерам кодовой базы, №3 требует умелого выбора экспертов и чёткого определения их доверия к конкретным библиотекам, №4 полагается больше на статистику и удачу, чем на более научные методы, №№5.х — по сути, отсутствие политики.

Соответственно, для меня №3 выглядит наиболее сбалансированным, для себя примерно накидал (→GitHub…), как это может выглядеть. Экспертами в данном случае взяты такие глыбы, как производители популярных операционных систем, веб-браузеров, регуляторы интернетов и известные веб-компании.

Хотелось бы узнать от опытных разработчиков, как обычно выглядит правильный подход к выбору библиотек, существуют ли публичные "белые списки" безопасного софта, и чьё мнение можно считать экспертным.

Спасибо за внимание.

upd: Как справедливо заметили, может быть две шкалы доверия: в отношении нечаянных уязвимостей (мастерство) и умышленных бэкдоров (порядочность)
  • Вопрос задан
  • 465 просмотров
Подписаться 4 Средний Комментировать
Ответ пользователя rPman К ответам на вопрос (6)
@rPman
Надежность бывает разная - кто то говорит об отсутствии ошибок в коде, а кому то нужна надежность от бекдоров.

Только аудит кода, личный или наемный сторонний специалист/компания, могут дать хоть какие то гарантии, все остальное:
молиться


Напоминаю пример - проект криптокошелька (кажется расширения для браузера, если не ошибаюсь для EOS) был атакован одним из разработчиков используемой библиотеки, т.е. пока проект разрабатывался все было ок, как только стал использоваться - злоумышленник добавил в код воровство приватников и после того как разработчики расширения в очередной раз выпустили обновление - потырил кучу денег.
Ответ написан