суббота, 20 декабря 2014 г.

Пять шагов защиты мобильного приложения от вредоносных аттак


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

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

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

Ниже представлены пять пунктов, которыми следует руководствоваться для защиты приложений.

Переосмысление безопасности и ее интеграция в процессе разработки. Наиболее распространенные ошибки, с которыми я сталкивался – это выделение работы над безопасностью в отдельный процесс. Безопасность должна быть целостной и систематической. Пробелы часто происходят когда разработчики пытаются выполнить всю работу связанную с безопасностью на завершающем этапе разработки. Я также видел много разработчиков которые проводили отличную работу по безопасности, которая к сожалению не была достаточно эффективной ввиду того что была мало связана с остальным кодом.  
Занание основ. Изучение возможных угроз безопасности является важным начальным шагом разработки системы. Одним из бесценных ресурсов посвященный данной тематике является отчет Open Web Application Security Project (OWASP) Mobile Top 10. Он содержит описания 10 наиболее критичных угроз безопасности для мобильных приложений. Отчет обновляется каждый год поэтому обращатяс к нему следует также регулярно. Это особенно важно для новых разработчиков. Это может показаться наивным, но следуя рекомендациям OWASP вы всегда будете в курсе необходимых мер безопасности.
Использование надежных и проверенных схем защиты. Не пытайтесь изобрести колесо. Все современные операционные системы обладают NIST-сертифицированные крипто фреймворки, которые были тщательно проверены экпертами. Разработчики, создающие нечто подобное самостоятельно часто подвергают свои приложения опасности.
Защита сохраненных данных (базы данные, архивы, файлы). Обработка сохраненных данных может быть источником уязвимости, особенно если вы работчаете с конфиденциальными данными. Существует много способов для предотвращения аттак на данный вид данных, например стирание данных, как только они стали не нужны, закрытие доступа к ним, как только они перестают быть нужными для вашего окружения и реализация ассимитричного шифрования. Последнее гарантирует, что сохраненные данные защищены, так как секретные ключи, которые могут эти данные расшифровать никогда не находятся на мобильном устройстве.
Реализация проверки сертификата. Проблемы Apple которые были у iOS 7 и OS X и ошибка “неудача перехода” (goto fail) должны стать уроком для всех разработчиков. Эта ошибка пренебрегает сертификатом SSL и проверяет его подлинность. Хотя использвоание SSL важно само по себе, этого не достаточно если вы выполняете проверку своих серитфикатов. Вы должны убедится что вы осуществляете проверку источника сертификата, это позволит избежать каких-либо аттак которые могли прийти вместе с запросом.


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