Как создавать безопасное программное обеспечение как для мобильных устройств, так и для настольных компьютеров
Опубликовано: 2019-03-06В современном мире вопросы безопасности привлекают больше внимания, чем когда-либо. Различные хакеры и мошенники начали процветать с появлением криптовалют, которые стоят сотни и тысячи долларов за монету. Конфиденциальные данные знаменитостей, банковские реквизиты, информация о денежных переводах или новых технологиях — онлайн-мошенники получают выгоду от всего, потому что люди склонны игнорировать ключевые меры защиты.
Однако рыба воняет с головы вниз. Без надлежащих функций безопасности, разработанных разработчиками программного обеспечения, невозможно защитить ваши данные на стороне клиента. Учитывая тот факт, что мобильные устройства становятся все более популярными из-за постоянно расширяющихся функциональных возможностей, в то время как настольные/веб-платформы остаются самыми популярными, мы хотим узнать, как авторы могут сделать свои продукты совместимыми и безопасными. В последнем разделе вы найдете советы для пользователей.
Безопасность в двух словах
Во-первых, давайте различать безопасность приложений и программное обеспечение безопасности. Эти термины могут показаться синонимами, но они относятся к разным аспектам, где первое определение относится к общей безопасности выпущенного продукта, а второе охватывает этапы как после развертывания, так и перед развертыванием.
По сути, программные приложения — это простые инструменты, которые помогают пользователям взаимодействовать с данными либо с помощью мобильных гаджетов, либо с помощью настольных платформ. Скажем, если вы хотите проверить медицинскую карту или получить информацию о своих недавних транзакциях, гораздо удобнее использовать смартфон или веб-сайт больницы/банка вместо того, чтобы звонить или посещать эти места.
Проблема в том, что программное обеспечение не распознает типы данных, классифицированные по его конфиденциальности. Без запрограммированных вручную категорий и доступа приложения не смогут отличить ваше имя от номеров CVV/CVC вашей кредитной карты. Следовательно, важно начать строить правильную систему безопасности с самых первых этапов разработки. Вот несколько советов по этому процессу:
- Выполните безопасное кодирование.
- Классифицировать данные и установить требования авторизации.
- Найдите ошибки и избавьтесь от них.
- Оценивайте безопасность на каждом этапе разработки.
- Проверяйте надежность сторонних материалов.
- Расскажите разработчикам о методах мошенничества.
- Требуйте 2FA от сотрудников.
- Регулярно обновляйте программное обеспечение после его выпуска.
Известные проблемы безопасности
Практически невозможно создать надежно защищенное приложение, не понимая, насколько мобильные и настольные платформы уязвимы для хакеров. Проще говоря, существует несколько традиционных подходов к взлому устройств с разной архитектурой, поэтому предлагаем проверить их прямо сейчас. Эти моменты должны помочь на этапе проектирования, когда вы планируете наилучшие меры безопасности как для мобильных, так и для настольных продуктов.
Смартфоны и планшеты
Мобильный образ жизни предполагает наличие мобильных устройств. Таким образом, многие люди сейчас переносят свои основные данные с компьютеров на смартфоны или, по крайней мере, синхронизируют информацию между двумя платформами. В итоге получаем еще одну точку, где мошенники могут получить доступ к ценным данным. Технически есть три уязвимых аспекта:
- Аппаратная часть устройства.
- Сам софт.
- Публичные сети.
Например, воры могут легко украсть ваш телефон в толпе, рутировать его и получить доступ ко всему внутри системы. Аппаратное обеспечение также может быть сфальсифицировано, если вы покупаете гаджеты у неофициальных дистрибьюторов. Помимо этого слабого места, известно, что хакеры взламывают смартфоны и планшеты через незащищенные общедоступные сети Wi-Fi. Наконец, ничего не стоит устанавливать вредоносное ПО через обычную игру или мультимедийное приложение, если оно загружено из неофициального магазина.
Интернет и рабочий стол
Как браузеры, так и загруженное программное обеспечение обычно работают одинаково, если им требуется подключение к Интернету. Здесь приложение действует как сторона клиента, которая отправляет запросы и получает результаты, в то время как основная база данных (и интерфейсы, если вы используете браузер для навигации по веб-сайтам) находится на подключенном сервере. Таким образом, вызовы безопасности можно разделить на три части:
- Сторона клиента.
- На стороне сервера.
- Процесс обмена данными.
Самая опасная проблема связана с устаревшим программным обеспечением, поскольку онлайн-мошенники могут легко взломать старые интерфейсы, которые больше не защищены обновленными системами. Кроме того, кеширование страниц, плохие службы шифрования и адреса/конфиденциальная информация, раскрываемая файлами cookie, являются потенциальными слабыми звеньями, которыми могут воспользоваться хакеры.

Разработка безопасного программного обеспечения
Теперь вопрос: как создать надежную систему для обеих платформ, если у них такие разные недостатки? Как правило, есть три подхода. Вы можете выбрать наиболее подходящий, но обязательно взвесьте плюсы и минусы каждого примера.
Мобильный И Рабочий стол
В этом случае разработчики должны создавать два продукта (для мобильных платформ и для браузеров/десктопов) отдельно друг от друга. Приложения не взаимосвязаны и не синхронизированы, поэтому будьте готовы к большим затратам как по деньгам, так и по времени, ведь вашей команде придется вкладывать в два раза больше ресурсов. В результате будут выпущены два отдельных приложения, каждое из которых имеет собственную защиту, разработанную специально для целевых платформ.
Мобильный С настольным компьютером
Этот вариант обеспечивает запуск высокоадаптивного сайта, поэтому он будет корректно отображать все элементы для веб-пользователей и мобильных пользователей. В результате вы получаете единую платформу только с одним слабым местом, основанным на веб-уязвимостях, описанных выше. Тем не менее, конечный продукт будет менее функциональным, чем родные мобильные платформы, контент будет загружаться медленнее, а общие функции будут ограничены.
Мобильный ПЛЮС Рабочий стол
Вместо создания отдельных проектов или разработки веб-сайта с совместимостью с мобильными устройствами есть наиболее эффективный и безопасный вариант. Этот подход используют различные команды, включая разработчиков Diceus.com. Требуется создать единую серверную платформу, но установить поверх нее две разные клиентские системы.
Например, базовое программное обеспечение может быть реализовано с использованием RESTful API, который поддерживает масштабируемую архитектуру как для мобильных устройств, так и для настольных компьютеров. Кроме того, React.js — хороший выбор для веб-интерфейса, а фреймворки Xamarin или Cordova удовлетворят потребности мобильных кроссплатформенных разработчиков.
Переходя к мерам безопасности, есть несколько проверенных временем методов для мобильного компьютера:
- Обеспечьте первоклассное шифрование. Для веб-версий необходимо иметь настоящую технологию шифрования, которая предотвращает взлом.
- Включите обнаружения. Вы сможете обнаружить вредоносное ПО в любое время, если интерфейсные системы имеют прочную связь с серверной платформой.
- Включите самозащиту. Приложения могут использовать функции времени выполнения, такие как отказ от неактивных сеансов или уведомления об ошибках.
- Регулярно тестируйте программное обеспечение. Используйте SAST для тестирования кода, DAST для приложений и инфраструктур и IAST для проверки данных.
- Обновление и поддержка продуктов. Поскольку мошенники изобретают новые атаки, лучше быстро реагировать новыми защитными мерами.
Описанная модель разработки является наиболее сбалансированной по ресурсам, возможностям и безопасности. Вам нужно создать и защитить три точки (один back-end и два front-end) вместо четырех элементов отдельных продуктов, но вы получаете примерно тот же функционал.
Пользовательская защита
В конце концов, не забывайте о безопасности на стороне клиента. Разработчики могут создать наилучшую систему, но халатность пользователей все портит. При использовании определенного программного обеспечения, независимо от его типа, помните о гигиене Интернета: не доверяйте подозрительным электронным письмам, дважды проверяйте сертификаты шифрования веб-сайтов, используйте антивирусы и т. д. Всегда включайте 2FA, чтобы получать дополнительные коды подтверждения через SMS или приложения для аутентификации. Используйте инструменты биометрической идентификации, такие как отпечатки пальцев или распознавание лиц для смартфонов и планшетов.
В целом защитить данные несложно, когда и разработчики, и пользователи знают, как это сделать. Хакеры потеряли бы работу, если бы все мы строго следовали правилам безопасности.
Есть какие-нибудь мысли по этому поводу? Дайте нам знать внизу в комментариях или перенесите обсуждение в наш Twitter или Facebook.
Рекомендации редакции:
- Интервью со Стью Граббсом, генеральным директором компании Lightstream, занимающейся потоковым программным обеспечением.
- 10 разработчиков программного обеспечения, за которыми стоит следить в 2019 году
- 5 самых популярных поставщиков игрового программного обеспечения
- Вот крупнейшие и самые успешные поставщики программного обеспечения для iGaming.
- Может ли ваше антивирусное программное обеспечение замедлять скорость вашего интернета?