Тестирование позволило вывести безопасность сервиса на новый уровень и защитить систему от возможных атак.
Одно из важнейших требований к сервису голосования — его безопасность. Каждый голосующий должен быть уверен, что его голос будет учтен, а организатору голосования требуется полная защита от фальсификаций.
Поэтому команда Waves Enterprise решила провести комплексное внешнее тестирование информационной безопасности недавно запущенного сервиса голосования.
«Нам важно было убедиться, что в сервисе нет уязвимостей, которые бы позволяли злоумышленникам получить доступ к конфиденциальным данным пользователей, расшифровать голоса или как-либо повлиять на ход и результаты голосования», — говорит Артем Калихов, директор по продукту Waves Enterprise.
Выбор команды тестирования
В качестве партнера по тестированию безопасности сервиса выступила компания Deteact. Главным фактором в пользу выбора Deteact стал успешный прошлый опыт сотрудничества Waves Enterprise с этой компанией.
Deteact — молодая компания, сфокусированная на анализе защищенности программного обеспечения, веб-приложений и сетевой инфраструктуры. Также команда Deteact имеет опыт аудита смарт-контрактов и решений на основе блокчейна. Основатель и генеральный директор компании Омар Ганиев работает в сфере информационной безопасности более 13 лет.
«Мы видели задачу в том, чтобы протестировать имплементацию программной части сервиса, не погружаясь глубоко в криптографию блокчейна, — рассказывает Омар Ганиев. — Большинство атак злоумышленников осуществляются именно через классический веб-интерфейс, и поэтому мы симулировали атаку системы извне с веб-интерфейсом в качестве точки входа.»
Специфика тестирования
Тесты проходили как с использованием различных инструментов, и так и в ручном режиме.
Тестирование осуществлялось по следующим направлениям:
- безопасность клиентского приложения
- уязвимость логики смарт-контрактов
- функционирование процесса голосования
- инфраструктурная безопасность (используемое ПО, библиотеки)
Весь процесс тестирования занял около трех недель. В ходе тестирования командой Deteact был обнаружен ряд уязвимостей, который был устранен разработчиками сервиса.
Результаты тестов
«Уязвимости были обнаружены не в блокчейне, а в классическом веб-приложении, в той его части, которая занимается регистрацией и хранением данных пользователей, — поясняет Омар Ганиев. — И эти уязвимости вполне типичны для веб-приложений».
«Две наиболее критичные уязвимости, которые мы выявили, — возможность утечки персональных данных пользователей и межсайтовый скриптинг, позволяющий злоумышленнику выполнять действия в приложении от имени пользователя», — добавил он.
Еще одна, менее серьезная уязвимость позволяла злоумышленнику вносить изменения в письмо с приглашением принять участие в голосовании, отправляемое организатором голосования с помощью сервиса. Также была выявлена уязвимость, потенциально позволяющая добавлять одного и того же участника голосования несколько раз.
Кроме того, компания Deteact обнаружила уязвимость, в результате которой злоумышленники могли бы провести DDOS-атаку с использованием небольших ресурсов.
После обнаружения уязвимости были устранены и перепроверены командой тестирования.
Плодотворное сотрудничество
«Взаимодействие с командой Waves Enterprise было максимально оперативным и продуктивным», — комментирует Омар Ганиев.
«Мы всегда уделяем большое внимание безопасности наших решений, и тестирование компанией Deteact помогло сделать сервис для голосования еще более надежным и защищенным от внешнего вмешательства», — подводит итог Артем Калихов. — Мы довольны сотрудничеством с Deteact и планируем обращаться к этой компании и в дальнейшем».