• { it статьи }

Безопасность приложений

Бытует мнение, что если приложение не успело еще стать популярным и не привлекло к себе внимания хакеров, значит, оно пока совершенно безопасно и не имеет никаких прорех. Всем отлично известно, как часто приходится латать дыры в безопасности систем компании Microsoft. Например на популярной платформе Steam была обнаружена весьма неприятная уязвимость: несколько дней восстановить аккаунты можно было без подтверждения кода, приходящего на почту пользователя.

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

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

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

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

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

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

Утверждать что Ваше творение неуязвимо - нелепо. Всем кода без багов и интересных проектов!

Комментировать