logo

Украинская компания запустила в Африке доску объявлений, которой пользуются 11 млн человек: как разработчикам удалось сделать продукт безопасным

Николай Зорин BLOG

CTO в Jiji

Genesis запустил Jiji в Нигерии в конце 2014 года. Это онлайн-доска объявлений вроде OLX в Украине. На сегодня у Jiji 11 млн пользователей в пяти странах Африки. На маркетплейсе выставляют товары 1 млн продавцов, всего на ресурсе 5 млн активных объявлений, а Gross Merchandise Value — $10 млрд.

CTO Jiji Николай Зорин рассказывает, как его команда справилась с главной болью нигерийского онлайн-рынка — отсутствием безопасности — и за 6 лет снизила количество скама на 95%.

Запуск в Нигерии

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

Сейчас в Нигерии даже есть аналог европейского регламента о защите персональных данных — NDPR (Nigeria Data Protection Regulation), который вступил в силу в январе 2019. Это показывает, что цифровая отрасль страны не стоит на месте.

С другой стороны, мы слышали о легендарных нигерийских скамерах, которые пишут «доверчивым американцам» сообщения с просьбами помочь им получить «миллионное наследство». Почти сразу мы выяснили, что мошенники пишут не только, скажем, американцам, но и активно используют все доступные платформы, чтобы «разводить» своих сограждан. Более того, потеря денег — не самое страшное, что может случиться. Вполне реально стать жертвой киднеппинга или террористов Boko Haram.

Нашим главным препятствием стало мошенничество. Ведь люди не будут пользоваться сервисом, если не доверяют ему. То, что мы усилили безопасность и снизили количество конверсий по фейковым объявлениям на Jiji до 1%, очень помогло нам вытеснить конкурентов с рынка. Но я забегаю сильно вперед.

Как найти слабые места в проекте

Мы используем OWASP SAMM. Эта модель содержит базу знаний и документаций, которая помогает оценить текущий уровень информационной безопасности продукта и построить цикл безопасной разработки.

OWASP SAMM позволяет получить анализ проекта по пяти направлениям: 

  • управление; 
  • дизайн;
  • Онлайн-курс UI/UX designer від Mate academy.
    UI/UX designer відповідає за зручність та естетику сайтів і додатків - після закінчення курсу ви отримаєте добреоплачувану спеціальність. Працевлаштування гарантуємо. .
    Отримати знижку на курс
  • реализация; 
  • верификация; 
  • операции. 

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

Как мы менялись

Через два месяца после запуска у нас был сайт, несколько тысяч пользователей и сто тысяч объявлений. Деплой происходил в наполовину ручном режиме — скриптом Ansible. Мы знали об XSS, SQL Injection и шифровании, но требований к безопасности как таковых не было.

Наша оценка SAMM на старте — ноль по всем пунктам. Можно ли (и нужно ли) стартовать с лучшим результатом? Да, но это может замедлить вас на старте, потому что, кроме разработки продукта (который может не прожить и года), вы будете тратить время на улучшение безопасности.

Сразу договоритесь с продакт-оунером о приоритетах и целях, чтобы все понимали, что и зачем делается. Для проверки проекта можно начать с OWASP Application Security Verification Standard (ASVS) и постараться соответствовать требованиям ASVS Level 1.

В конце 2016-го мы получили первое письмо от «белого» хакера про XSS-уязвимость нашего сайта. И хотя исправление проблемы было тривиальным, стало понятно, что безопасность нужно улучшать дальше. Высокий уровень скама в Нигерии ясно говорил о том, что мошенники готовы искать и эксплуатировать уязвимости на сайте.

В 2017 году мы вспомнили об OWASP Top Ten. Следуя их рекомендациям, провели пару встреч с программистами и обсудили, как лучше не делать. Скрипты для деплоя, CI, инфраструктура были все еще на ручном управлении. Но оценка по SAMM стала уже 0,5 — благодаря тестам и автоматизации деплоя. Нашей целью стало превратить цикл разработки обычного ПО в цикл разработки безопасного ПО.

Психологічний профорієнтаційний тест для IT-фахівців від Hillel IT School.
Пройдіть психологічний профорієнтаційний тест для IT-фахівців щоб дізнатися ваші сильні сторони, вподобання і інтереси і з'ясувати, яка IT-спеціальність вам підходить.
Пройти тест

После технического аудита в 2018 году мы обратились к OWASP ASVS. Так в Jira появилась куча новых задач с меткой «security»:

Список задач. Источник: Jiji

Внутренний аудит — дело скучное: открываете таблицу с требованиями ASVS и идете по пунктам, выбирая актуальные для вашего проекта, внедряете, а затем проверяете результат. Дойдя до конца списка, начинаете все сначала.

В 2019 году мы достигли соответствия по 92 пунктам. В 2020-м дошли до 144. В последней редакции ASVS — 287 пунктов. Цель не в том, чтобы соответствовать всем — некоторые позиции актуальны только для американских госучреждений и медицинских компаний. Нужно понять, какие показатели важны именно для вашего бизнеса. 

Что изменилось

Как изменилась оценка по SAMM?

Сейчас лучше всего дела обстоят с Implementation (Secure Build, Secure Deployment), Operations (Environment Management, Operational Management) и Design (Secure Architecture).

Что можно быстро улучшить?

Думаем заняться Education and Guidance — информации о безопасной разработке очень много, начиная с той же OWASP и заканчивая онлайн-курсами.

Кого и чему будем обучать?

Начнем с Secure Development Lifecycle: расскажем продакт-менеджерам, программистам и тестировщикам о моделировании угроз. Есть надежда, что это поможет всем говорить о безопасности системы на одном языке и принимать осознанные решения еще на этапе проектирования.

Результат оценки Jiji по SAMM на апрель 2021 года. Источник: Jiji

Что бы я делал, если бы начинал проект с нуля сегодня?

Не экономил бы на DevOps — управлять инфраструктурой и делать деплой должен человек, который в этом действительно разбирается.

Требованиями по безопасности тоже лучше заниматься с самого начала. Если в команде нет такого специалиста, пользуйтесь тем, что предлагает OWASP. Применяйте не только Top Ten, но и OWASP ASVS — он поможет начать думать про полезные вещи и может подсказать, как делать их правильно.

Запускайте CI как можно раньше и напишите тесты безопасности — XSS на основных страницах, проверка зависимостей (npm-check для JavaScript, safety check для Python). Моделируйте угрозы — лучше избежать ошибок при проектировании задачи, чем исправлять их в продакшене.

Англійська для початківців від Englishdom.
Для тих, хто тільки починає вивчати англійську і хоче вміти використовувати базову лексику і граматику.
Реєстрація на курс

Моделированием угроз должны заниматься разработчики и архитекторы. Если у них нет такого опыта, придется начать с обучения и попыток строить модели. Не будет лишним пройти тренинг по анализу архитектурных рисков, почитать Threat Modeling: Designing for Security Адама Шостака или посмотреть одно из его выступлений

Что с мошенниками?

Количество конверсий по скамерским объявлениям на платформе снизилось до 1%. В 2015 году их было больше 15%. Кража и перепродажа аккаунтов перестала быть проблемой благодаря алгоритмам борьбы со скамом и улучшению безопасности. Кроме того, ежегодный аудит на соответствие NDPR помогает поддерживать документацию и политики работы с персональными данными в актуальном виде.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Основи Web дизайну від Hillel IT School.
Цей онлайн-курс з основ веб-дизайну дозволить вам опанувати мистецтво створення ефективних та привабливих інтерфейсів для вебсайтів і застосунків. Ви оволодієте ключовими принципами UX/UI дизайну, створюватимете дизайн-макети та прототипи, розроблятимете адаптивні інтерфейси для різних пристроїв, готуючись до професійної кар'єри в галузі веб-дизайну.
Дізнатися більше

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: