logo

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

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

CTO в Jiji

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

Онлайн-курс "Computer Vision" від robot_dreams.
Опануйте основи машинного навчання та комп'ютерного зору, щоб з нуля будувати, тренувати та покращувати нейронні мережі. А ще — навчати системи розпізнавати об’єкти в режимі реального часу. .
Про курс

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

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

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

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

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

Онлайн-курс "Computer Vision" від robot_dreams.
Опануйте основи машинного навчання та комп'ютерного зору, щоб з нуля будувати, тренувати та покращувати нейронні мережі. А ще — навчати системи розпізнавати об’єкти в режимі реального часу. .
Про курс

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

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

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

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

  • управление; 
  • дизайн;
  • Онлайн-курс "Golang для розробників" від robot_dreams.
    Вивчіть мову Golang від Google, щоб створювати продуктивний і надійний бекенд, опанувати паралелізм та перейти до високооплачуваної ніші розробки. .
    Детальніше про курс
  • реализация; 
  • верификация; 
  • операции. 

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

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

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

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

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

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

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

Онлайн-курс “Комерційний директор” від Laba.
Поглибте знання в управлінні фінансами, логістиці, звітності та роботі з ринком, аби збільшити частку компанії на ньому. Досвід та фідбек від генерального директора Miele в Україні. .
Детальніше про курс

После технического аудита в 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). Моделируйте угрозы — лучше избежать ошибок при проектировании задачи, чем исправлять их в продакшене.

Онлайн-курс "PR. Basis" від Skvot.
Дізнайся нюанси різних сфер і обрери свою. У результаті навчання — матимеш стратегію бренду у портфоліо для старту кар'єри. Інсайтами та досвідом ділиться експертка, яка 9+ років у піарі. .
Детальніше про курс

Моделированием угроз должны заниматься разработчики и архитекторы. Если у них нет такого опыта, придется начать с обучения и попыток строить модели. Не будет лишним пройти тренинг по анализу архитектурных рисков, почитать 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.

Онлайн-курс "Google Cloud Platform" від robot_dreams.
Навчіться розгортати, масштабувати та керувати застосунками в GCP для створення надійної та безпечної інфраструктури під менторством архітектора з 20-річним досвідом в ІТ. .
Детальніше про курс

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

Топ-5 самых популярных блогеров сентября

Всего просмотровВсего просмотров
35
#1
Всего просмотровВсего просмотров
35
Всего просмотровВсего просмотров
27
#2
Всего просмотровВсего просмотров
27
Всего просмотровВсего просмотров
22
#3
Всего просмотровВсего просмотров
22
Career Consultant в GoIT
Всего просмотровВсего просмотров
21
#4
Всего просмотровВсего просмотров
21
Всего просмотровВсего просмотров
18
#5
Всего просмотровВсего просмотров
18
Рейтинг блогеров
Онлайн-курс "PR. Basis" від Skvot.
Дізнайся нюанси різних сфер і обрери свою. У результаті навчання — матимеш стратегію бренду у портфоліо для старту кар'єри. Інсайтами та досвідом ділиться експертка, яка 9+ років у піарі. .
Детальніше про курс

Самые обсуждаемые статьи

Топ текстов

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

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

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