Сегодня кибератаки по своим масштабам способны затмить иное “реальное” преступление. За несколько прошедших лет список жертв кибер-атак пополнился такими популярными брендами как Valve, Sony (а кто-нибудь вспомнит ещё и Ashley Madison).
Но если в упомянутых случаях утечки были не столь серьёзными (во всех случаях помогло простое обнуление пароля), то в целом за 2015 год через сеть было украдено около 1 миллиарда вполне реальных долларов, что совсем немало.
Хакеры постоянно находят новые способы обойти защиту самых разных компаний, а специалисты компаний постоянно находят способы эту защиту улучшить — замкнутый круг.
Банковская сфера, электронная коммерция, социальные сети — всё эти индустрии особенно уязвимы, когда дело касается электронной безопасности. Компании тратят миллионы долларов на усиление своей защиты, ведь потери от небольшой бреши могут быть несоизмеримо больше.
К сожалению, на сегодняшний момент киберататака — не пустой звук. Особенно если ваш бизнес нацелен на рынки развитых стран. Ниже мы привели рейтинг самых актуальных угроз в различных странах.
Как можно увидеть выше, кибератаки уверенно “лидируют” среди вполне “реальных” угроз. И если ваш проект подразумевает сохранность пользовательских данных и общий высокий уровень безопасности, логично будет задаться вопросом: а как этот уровень безопасности обеспечить? Об этом мы сегодня и поговорим!
Безопасность приложения. Как её достичь?
Мы не устаем повторять, что безопасность продукта, как и его успех, зависят от двух взаимодействующих сторон — заказчика и команды-разработчика. Есть несколько особенно важных моментов, которые следует учесть при разработке мобильных и веб приложений:
- Технологии. Команда разработчиков должна хорошо знать и понимать технологии, с которыми она работает над проектом. Знание технологий подразумевает осведомленность как о преимуществах, так и о недостатках (уязвимостях). Так, например, при использовании SQL-сервера неопытный разработчик может оставить возможность для крайне популярной уязвимости — SQL-инъекций. В одночасье по желанию злоумшыленника, все ваши данные на сервере могут быть изменены или вообще исчезнуть. Знание технологий подразумевает чёткое понимание последствий для безопасности приложения при использовании определённых решений.
- Использование готовых решений (библиотеки, фреймворки). Это помогает решить сразу две проблемы — отпадает необходимость разрабатывать какой-либо модуль с нуля, и при этом появляется возможность заметно сократить бюджет разработки приложения (в случае, если будет использовано бесплатное решение с открытым кодом). Многие современные решения (например, Spring Security) способны обеспечить высокий уровень защиты и при этом никак не увеличить стоимость проекта.
- Опытная команда разработчиков. Понятия “дешево” и “качественно” редко пересекаются. Практически такую же ситуацию можно наблюдать, если соотнести понятия “дешево” и “безопасно”. Это один из самых очевидных пунктов, но на деле не так уж и редки ситуации, когда компания пытается сэкономить на фундаментальных вещах. Также команда должна понимать специфику индустрии, для которой создается продукт.
- Грамотно очерченые требования. Приложение может быть полностью защищено от внешних угроз, но угроза может исходить и изнутри. Приложение должно иметь чётко продуманную логику. Например, должно быть точно описано то, как пользователь взаимодействует с системой, перечень доступных ему действий, а также разделение пользователей на группы с разным уровнем доступа (если необходимо).
- Правильный выбор языка для проекта. Разные языки подразумевают разный подход к проектированию приложения, разный состав команды, сроки разработки и так далее. Наиболее популярными языками для написания web-приложений являются Java и PHP. Если вы хотите узнать больше о том, какой язык выбрать для своего проекта, то в нашем блоге мы уже провели сравнение этих двух языков, расписали их преимущества и недостатки.
- QA. Проверка качества приложения не может обойти стороной вопрос безопасности. Чем выше предполагаемый уровень угрозы, тем больше тестов нужно проводить. На серьёзных проектах следует применять оба вида тестирования — ручное и автоматизированное.
Конечно, безопасность в приложении важна далеко не всегда, и порой излишняя озабоченность вопросами безопасности может просто раздуть бюджет приложения, не принеся при этом никакой пользы.
Например, если мобильное приложение не содержит в себе никакой приватной информации, или вообще не имеет связи с интернетом. В таком случае достаточно придерживаться базовых принципов написания безопасного кода.
Здесь в Smartum мы с полной серьёзностью относимся к вопросам безопасности мобильных и web-приложений. Если вам необходимо безопасное мобильное или web-приложение, мы с радостью поможем воплотить в жизнь любые ваши идеи!