В ближайшие месяцы мы более подробно рассмотрим результаты зимнего Обзора экосистемы JavaScript, опроса более 16 000 разработчиков, проведенного npm в сотрудничестве с Node.JS Foundation и JS Foundation. Наша первая тема - Безопасность, а точнее, как разработчики воспринимают безопасность кода, который они пишут, и открытого исходного кода, который они используют. Чтобы прочитать о методологии этого опроса, нажмите здесь.

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

Таковы некоторые из выводов опроса более 16 000 разработчиков, проведенного npm в сотрудничестве с Node.js Foundation и JS Foundation. Мы задали много вопросов (спасибо всем, кто ответил на все 54!) И получили огромное количество удивительных выводов из этих данных.

Удовлетворены ли мы своей безопасностью?

97% респондентов используют открытый исходный код, поэтому один из наших первых вопросов был: Беспокоитесь ли вы о том, безопасен ли открытый исходный код, который вы используете? Очевидно, мы знали, что некоторые люди были, но оказалось, 77% респондентов обеспокоены. Остальные 23% предположительно относятся к очень доверчивым типам.

Очевидно, что простая озабоченность безопасностью не означает, что вы думаете, что открытый исходный код небезопасен; это просто означает, что вы хотите знать. Поэтому мы также спросили людей, удовлетворены ли они доступными им методами оценки безопасности и качества их открытого исходного кода. Результаты не были хорошими новостями:

В целом 52% респондентов недовольны инструментами, которые у них есть для оценки безопасности и качества открытого исходного кода. Интересно, что это число меньше, но не равно нулю среди людей, которые говорят, что их не беспокоит безопасность своего открытого исходного кода. Поскольку группа «безразличных к безопасности» составляет 23% всех респондентов, это означает, что 7% сообщества JavaScript считают, что инструменты для оценки безопасности с открытым исходным кодом недостаточно хороши, но они все еще не заботится о безопасности. Мы назвали их группой DGAF, что, я уверен, означает «оптимистичные».

Более половины разработчиков JavaScript считают, что имеющиеся у них инструменты для оценки безопасности и качества открытого исходного кода недостаточно хороши. Это тревожно! Но мы обнаружили кое-что интересное, когда задали им одну и ту же пару вопросов, но на этот раз об их собственном коде, а затем сравнили два набора ответов.

87% респондентов заявили, что их беспокоит безопасность кода, который они написали сами, по сравнению с только 77%, которые заявили то же самое об открытом исходном коде. Подавляющее большинство обеспокоено безопасностью в обоих случаях, но это несоответствие говорит о том, что разработчики JavaScript больше доверяют безопасности открытого исходного кода, чем сами себе, чтобы писать безопасный код. Если вы в это верите, то это сильный стимул для внедрения открытого исходного кода в первую очередь.

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

Отношение к безопасности меняется с опытом

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

Первым признаком этого было то, что мы разделили наших пользователей по длительности использования JavaScript на группы от менее одного года (6% респондентов) до более десяти лет (19%). Результатом стал удивительно стабильный прогресс:

81% респондентов с опытом работы более 10 лет заявили, что их беспокоит безопасность открытого исходного кода, который они используют, по сравнению с 72% в новейшей группе.

Учитывая, что чем дольше вы используете JavaScript, тем больше заботитесь о его безопасности, стоит спросить, отталкивает ли это со временем людей от языка. Но свидетельств этому нет. Мы спросили разработчиков, намерены ли они в следующие 12 месяцев использовать JavaScript больше, меньше или примерно в таком же количестве. 95% респондентов сказали больше или примерно то же самое, и этот процент вообще не изменился по группам, разделенным по опыту.

То, что кажется движущей силой роста осознания безопасности, - это просто общее повышение тщательности и профессионализма по мере того, как разработчик набирается опыта. Мы задали разработчикам ряд вопросов об инструментах и ​​методах работы, и мы снова разделили их на группы по опыту, и мы выявили четкую закономерность:

Сравнивая наиболее опытную группу с последней опытной группой снова, самая опытная группа была:

  • С большей вероятностью будут использовать среду тестирования (от 87% до 57%)
  • С большей вероятностью будут использовать линтер (от 90% до 75%)
  • С большей вероятностью будут участвовать в проверке кода (от 79% до 50%)
  • С большей вероятностью будет проходить внешний аудит кода (от 26% до 9%)
  • С большей вероятностью будут использовать автоматическое сканирование на предмет недостатков безопасности в коде (от 53% до 27%)

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

В частности, последние 3 практики все связаны с безопасностью. Объединив ответы, мы смогли измерить, сколько людей используют ту или иную форму анализа безопасности в своем открытом исходном коде (ответы для их собственного кода следовали аналогичной схеме). Подавляющее большинство делало это как в наименее опытных, так и в наиболее опытных группах, но в наиболее опытной группе это было колоссальные 85%.

Выводы

Все эти данные позволяют сделать довольно четкие выводы:

  • Лучшие практики, такие как тестирование, линтинг, проверка кода и сканирование безопасности, являются признаком опытного разработчика.
  • Существенное большинство разработчиков JavaScript озабочены безопасностью как кода, который они пишут, так и открытого исходного кода, который они используют.
  • Но разработчики больше доверяют безопасности открытого исходного кода, чем своей собственной.
  • Разработчики недовольны доступными им вариантами защиты своего кода.

В последнее время npm вкладывает больше ресурсов в улучшение безопасности. В октябре мы ввели двухфакторную аутентификацию для учетных записей npm. В марте более 8 миллиардов загрузок пакетов - 43% всех загрузок пакетов в этом месяце - приходились на пакеты, принадлежащие учетным записям, защищенным двухфакторной аутентификацией. Это огромный шаг вперед в обеспечении безопасности и надежности кода в реестре, но еще многое предстоит сделать. Будьте на связи.