Может ли быть вредоносное ПО в файлах Python / Javascript, которые я приобрел?

#security

#Безопасность

Вопрос:

Недавно я приобрел код django-react от fiverr. Я не слишком много знаю о веб-разработке. Возможно, это просто паранойя, но возможно ли, что в таких файлах может быть какое-то вредоносное ПО. И что, если я запущу сервер, что-то может случиться с компьютером, на котором я его запускаю?

Ответ №1:

Короткий ответ, возможно ли, чтобы файлы HTML, PY, JS и т.д. Содержали вредоносный контент, да. Если вы запустите этот сервер на ПК, может ли какой-либо вредоносный контент причинить вред компьютеру, на котором он запускается, да.

Хорошо, итак, это страшная сторона этого. Давайте рассмотрим вопрос немного более объективно. Давайте подумаем о том, как эти файлы могут содержать вредоносный контент, и, что более важно, что вы можете с этим поделать.

  1. Автор намеренно написал вредоносный код в файлы

Конечно, это возможно, но, на мой взгляд, маловероятно. Люди, производящие вредоносное ПО, ищут отдачу от вложенного времени. Написание решения для вашего запроса на fiverr и включение вредоносного контента — это огромная инвестиция с минимальной отдачей.

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

Если вы хотите проверить наличие проблем в коде, я бы использовал статический анализатор кода (например, Fortify) и тест на проникновение.

  1. Автор включил модуль с открытым исходным кодом, содержащий вредоносный контент

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

Хорошей новостью здесь является то, что вам довольно легко проверить наличие известных проблем. Например, поскольку у вас есть файлы JS, я предполагаю, что существует зависимость от npm, вы можете использовать npm-audit для проверки зависимостей на предмет рекомендаций по безопасности.

В общем, на вашем месте я бы начал с того, что убедился, что зависимости, используемые кодом, не содержат каких-либо существенных рекомендаций по безопасности. Затем, если система достаточно критична, я бы использовал инструмент статического анализа кода (например, Fortify) для проверки пользовательского кода. Наконец, всегда полезно для общедоступной системы провести хороший тест на проникновение.

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