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

«JavaScript вездесущ. Куда бы вы ни посмотрели, что-то было создано, по крайней мере частично, с использованием JavaScript. JavaScript настолько прост в изучении и использовании, что существует множество легко подключаемых библиотек с открытым исходным кодом, таких как jQuery, React.js и фреймворки, такие как Backbone.js, Angular.js и Ember.js.

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

По данным Statista, более трех миллиардов человек имеют доступ к Интернету во всем мире, что дает кибер-ворам очень большой пруд для ловли рыбы. Только в прошлом году было обнаружено, что почти миллиард Android-телефонов можно взломать с помощью всего одного SMS. Кроме того, серьезной проблемой для банков становятся так называемые мошеннические магазины приложений. Слегка измененные версии популярных приложений, часто доступные бесплатно, все чаще появляются на смартфонах. В некоторых случаях эти приложения позволяют украсть пароли мобильного банкинга или перенаправить текстовые сообщения, содержащие коды доступа.

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

Одна проблема связана с принудительным подключением к Интернету; если вы разрабатываете приложение, которое хотите работать в автономном режиме, то это невозможно. Еще одним соображением является производительность. Вызовы сервера требуют времени. Не проблема для простых приложений, но для высокопроизводительных приложений, таких как игры, чрезмерная задержка может испортить работу пользователя.

Часто возникает вопрос: «Почему я не могу просто зашифровать свой код JavaScript?» На первый взгляд кажется отличным решением, но оно не совсем так работает. Вы можете зашифровать файлы, но тогда они будут бесполезны для браузера. Вам нужно будет расшифровать их, чтобы сделать их доступными для чтения в браузере, что вернет вас к исходной точке.
Следует иметь в виду, что на сегодняшний день организации в значительной степени полагаются на решения для обеспечения безопасности конечных точек для защиты клиентской части, однако такие решения, как антивирус, имеют низкий показатель успеха — около 40 процентов. Если мы учтем, что приложение включает в себя как серверную, так и клиентскую стороны, и что решение на стороне клиента не обязательно должно обеспечивать безопасность конечной точки, то мы понимаем, что каждое клиентское приложение имеет свою собственную систему маскировки и защиту.

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

Из-за повсеместного распространения HTML5 и JavaScript все больше и больше логики приложения переносится с серверной стороны на клиентскую. Это требует от разработчиков уделять больше внимания безопасности. Приложения должны быть защищены комплексно.
Дополнительный уровень безопасности позволяет приложению стать самозащитным, гарантируя, что оно сможет обнаружить любое вмешательство и заставить код нарушить выполнение программы. Кроме того, если вам требуются уведомления в режиме реального времени, вы можете использовать настройки, чтобы предупредить вас, если ваше приложение подвергается взлому или используется в другой среде или в другую дату, чем та, которую вы определили.

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

Первоначально опубликовано в SC Magazine UK 20 января 2017 г.