ru:https://highload.today/blogs/ukrainskaya-kompaniya-zapustila-v-afrike-dosku-obyavlenij-kotoroj-polzuyutsya-11-mln-chelovek-kak-razrabotchikam-udalos-sdelat-produkt-bezopasnym/ ua:https://highload.today/uk/blogs/ukrainskaya-kompaniya-zapustila-v-afrike-dosku-obyavlenij-kotoroj-polzuyutsya-11-mln-chelovek-kak-razrabotchikam-udalos-sdelat-produkt-bezopasnym/
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 позволяет получить анализ проекта по пяти направлениям: 

  • управление; 
  • дизайн;
  • Онлайн-курс "Режисура та візуальний сторітелінг" від Skvot.
    Перетворюй свої ідеї на сильні історії в рекламі, кліпах чи кіно Досвідом ділиться режисер, продюсер та власник продакшену, який 10+ років у професії.
    Детальніше про курс
  • реализация; 
  • верификация; 
  • операции. 

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

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

Через два месяца после запуска у нас был сайт, несколько тысяч пользователей и сто тысяч объявлений. Деплой происходил в наполовину ручном режиме — скриптом 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.
Станьте універсальним аналітиком, опанувавши 20+ інструментів для роботи з будь-яким продуктом.
Дізнатись більше про курс

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

Онлайн-курс "Android Developer" від robot_dreams.
Курс для всіх, хто хоче навчитися розробляти застосунки для Android з нуля, створити власний пет-проєкт для портфоліо та здобути професію, актуальну наступні 15–20 років.
Програма курсу і реєстрація

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

Курс Front-end с нуля від Web Academy.
Почніть кар'єру веб-розробника через декілька місяців інтенсивної підготовки у колі однодумців та підтримки тренера. Знижка у розмірі 10% доступна при використанні промокоду "ITC". .
Реєстрація на курс

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

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

PHP Developer в ScrumLaunch
Всего просмотровВсего просмотров
2434
#1
Всего просмотровВсего просмотров
2434
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
113
#2
Всего просмотровВсего просмотров
113
Career Consultant в GoIT
Всего просмотровВсего просмотров
95
#3
Всего просмотровВсего просмотров
95
CEO & Founder в Trustee
Всего просмотровВсего просмотров
94
#4
Всего просмотровВсего просмотров
94
Рейтинг блогеров

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

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

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