Из этой беседы ты узнаешь, чем именно занимается дочерняя IT-компания Сбербанка «Сбербанк-Технологии», какие Telegram-каналы стоит читать Application Security специалисту и почему во время обучения нельзя забывать о практике.
«Сбербанк-Технологии» (СберТех) — дочерняя IT-компания Сбербанка, основанная в 2011 году. Все началось с команды из 500 человек. В основном это были IT-специалисты Сбербанка, которые перешли работать в отдельную IT-структуру.
На сегодняшний день штат СберТеха составляет около 11 тысяч человек в шестнадцати городах России. В этих городах сосредоточены ключевые центры разработки, в которых собираются региональные команды IT-специалистов: Москва, Санкт Петербург, Новосибирск, Иннополис и так далее.
СберТех занимается разработкой и внедрением ПО, а также поддержкой существующих ИТ-систем Сбербанка. На данный момент Сбербанк является единственным клиентом компании.
Расскажите, чем занимается СберТех, над какими проектами вы сейчас работаете?
В настоящее время ключевым проектом является разработка новой технологической платформы для Сбербанка. Она трансформирует бизнес-модель в экосистему. Эта экосистема обеспечит оказание услуг нефинансового характера, подключение партнеров и подрядчиков, сможет обрабатывать большие объемы данных за короткое время, позволит иметь высокую производительность систем.
Давайте чуть подробнее остановимся на услугах нефинансового характера. О каких проектах идет речь?
Такие проекты существуют уже сейчас, так как экосистема развивается с 2016 года. Полный переход на новую технологическую платформу планируется до 2020 года. Сбербанк стремится уйти от предоставления только финансовых услуг и активно обрастает партнерами. К примеру, «Сбербанк-Недвижимость» (ООО «Центр недвижимости от Сбербанка» входит в группу компаний Сбербанка. — Прим. ред.), «Сбербанк-Страхование», интернет-сервис по поиску врачей DocDoc и так далее. Таким образом, осуществляется трансформация в экосистему. Аналогичным путем идут такие компании, как Alibaba, Amazon, WeChat.
«Экосистема» и «технологическая платформа» — это красивые слова, но хочется услышать больше конкретики. В чем заключается суть вашей платформы, что именно вы разрабатываете и почему эти технологии выдающиеся?
Новая платформа состоит из трех ключевых программ.
Платформа поддержки развития бизнеса — универсальный инструмент для создания бизнес-приложений. Банк должен превратиться в Marketplace, объединяющий самые разные инструменты для достижения целей своих клиентов. Для этого необходим фундамент — новая платформа: масштабируемая, гибкая, надежная и открытая, способная изменяться в реальном времени. В разработке применяются новейшие технологии распределенных вычислений в памяти и работы приложений с большими объемами данных в реальном времени — In Memory Data Grid.
Программа «Фабрика данных» призвана повысить уровень качества, достоверности и доступности данных для анализа. Сотрудники банка смогут полноценно заниматься анализом и интерпретацией данных без дополнительных трудозатрат на их сбор и выверку. Big Data обеспечивает работу с супермассивами данных для монетизации информации и поведенческого анализа клиентов и сотрудников, для корректировки стратегий работы с разными сегментами.
Единая фронтальная система — кросс-функциональная платформа, собственная разработка Сбербанка. Инструменты платформы обеспечивают бесшовный кросс-канальный опыт для всех продуктов и сервисов. Технологический стек позволяет поддерживать высокую производительность, надежность и безопасность работы пользователей. Кроме того, за счет собственного API ЕФС позволяет партнерам заходить в систему, равно как и интегрироваться со сторонними площадками.
Теперь давайте поговорим о безопасности. Артем, расскажите, чем занимается ваше подразделение?
Наше подразделение занимается Application Security — безопасностью приложений. Отдел сравнительно молодой, ему около двух с половиной лет.
Наша главная обязанность — обеспечение безопасности приложений. В основном это критические для банка автоматизированные системы, но также в нашу область ответственности попадают все новые мобильные и mission critical разработки.
Сейчас в отделе работает пятнадцать человек. Условно их можно разделить на три команды: команда тестирования на проникновение, мобильный пентест и внутренняя разработка. В команде собрались сотрудники с разным техническим бэкграундом, в основном это различные сферы ИБ, но также есть ребята из IT-менеджмента и разработки. Вместе с коллегами из Сбербанка мы повышаем защищенность разрабатываемых АС, поддерживаем разумный компромисс между потребностями бизнеса, удобством пользователей и постоянно растущими рисками в сфере разработки ПО.
Всего этого мы добиваемся благодаря сильной экспертизе сотрудников Сбербанка и СберТеха, а также зрелому и фундаментальному SDL (Secure Development Lifecycle), который учитывает современные тенденции и подходы (Agile & DevOps) в области разработки ПО.
Команда веб-пентестеров занимается реализацией различных практик, разбором их результатов и проведением самого пентеста. Команда мобильного пентеста занимается тем же самым, но для мобильных приложений. Мобильных приложений в банке немало, это не только «Сбербанк-Онлайн», еще есть «Бизнес-Онлайн», корпоративные сервисы и так далее.
Каким образом построена данная инфраструктура, вы упомянули SDL?
Мы стараемся строить инфраструктуру таким образом, чтобы коллеги, которые находятся «в контексте кода», помогали нам в разборе результатов сканов, ревью кода и написании правил для SAST (static application security testing). В рамках инициативы беспрерывной поставки ценности для клиента мы обеспечиваем безопасность приложений, внося контекст Sec в DevOps, который строится в Сбербанке и СБТ, а без привлечения команд это попросту невозможно.
Очень хорошо себя зарекомендовала практика вовлечения разработчиков через секьюрити-чемпионов. Секьюрити-чемпионы — это сотрудники в командах разработки, заинтересованные в профессиональном развитии в области ИБ для повышения защищенности АС, снижения риска возникновения уязвимостей. Достигается это посредством повышения уровня компетенции команд разработки АС в вопросах обеспечения ИБ, тиражирования практик разработки защищенных приложений, сокращения длительности жизненного цикла дефекта ИБ.
Также мы регулярно проводим различные awareness-программы и тренинги. Раз в квартал у нас проходит общий awareness для всех желающих. У нас существует тренинг по погружению в безопасную разработку на Java. Дело в том, что это целевой язык программирования в банке, поэтому фокус на нем. Точно такие же целевые погружения существуют для Android и iOS.
Сколько примерно часов обучения в год получается у ваших разработчиков?
В сфере безопасности порядка сорока часов в год.
Как вы считаете, какова на сегодня роль обучения? Каждый день появляется нечто новое, как за этим успевать?
Мы обучаем азам и не стремимся сразу сделать из слушателей экспертов в области кибербезопасности. На данном этапе достаточно вовлечь их в тему и заложить базовые знания. Допустим, в контексте Java это будут практики безопасной разработки веб-приложений, потому что в этой сфере очень многое замыкается на безопасности веба.
Что нужно делать специалисту, чтобы всегда «оставаться на острие»?
Как минимум, рекомендую подписаться на тематические Telegram-каналы, чтобы оставаться в тренде и понимать свои интересы в профессии. Лично я читаю HackerNews, «Хабрахабр» и «Хакер». Можно форкать что-то на GitHub, пробовать, оценивать и затем, возможно, внедрять. Необязательно погружаться в тему максимально глубоко, но точно нужно постоянно пробовать что-то новое.
Также, на мой взгляд, хорошей практикой является участие в различных CTF и bug bounty программах. В CTF можно приобрести некоторые скиллы, а bug bounty позволяет легально «пощупать» безопасность интересных систем.
Конечно, учиться — это хорошо, но на одном только обучении, на мой взгляд, далеко не уедешь. Ведь без практики обучение ничего не стоит, а за любым реальным опытом в первую очередь стоит именно реальная работа.
Вы совершенно правы. Расскажите о ваших тренингах и awareness, как это происходит?
Мы стараемся внедрять различные активности и геймифицировать процессы для разработки. Например, на конференции ZeroNights 2017 мы представили капча-CTF. Это было интересное состязание, где каждый челлендж — это капча с логической или программной ошибкой в реализации. Мы предложили участникам конференции найти эти уязвимости, которые позволяют решать множество капч за короткое время.
Задача была проста: требовалось «решить» двадцать капч за десять секунд, по сути их не решая. Участники не должны набирать все это руками, они должны были, допустим, реализовать SQL-инъекцию, чтобы от введенного значения ничего не зависело. Например, в одном из заданий капчу можно было решить вероятностно — если все время вбивать ответ «5», то с вероятностью 25% капча будет пройдена.
Какая задача у такого соревнования? Мало кто сегодня реализует капчи самостоятельно. Ведь есть готовая и относительно надежная reCAPTCHA, (если она правильно реализована), но можно ошибиться во внедрении этого механизма. Если кто-то все же решит реализовать собственную капчу, то участие в таком соревновании оставит гораздо меньше шансов на появление уязвимостей, так как многие ошибки человек мог увидеть во время состязания. К тому же эти проблемы применимы не только к капчам: существует множество других механизмов, где можно допустить схожие ошибки.
Существует ли в СберТехе централизованное обучение, к примеру программистов обучают?
У всех сотрудников есть возможности учиться: внешние (курсы и мероприятия), внутренние (митапы, хакатоны, регулярный обмен опытом внутри команд и отделов). На митапах выступают внутренние и внешние эксперты: например, один из последних был посвящен квантовым вычислениям совместно с IBM.
Каждый сотрудник может записаться на любой доступный курс. Правда, есть своего рода «отчетность» — нужно поделиться с коллегами полученными знаниями на воркшопе, но это только плюс, на мой взгляд. У сотрудников есть доступ к Виртуальной школе Корпоративного университета Сбербанка — порталу для дистанционного обучения и развития. Это база знаний в формате видеолекций и практических заданий на разные темы: от языков программирования до soft skills.
Для студентов и начинающих специалистов СберТех проводит бесплатные школы по мобильной разработке на iOS и Android, Java и BPM. Лучших студентов по итогам обучения мы приглашаем на работу.
Перейдем к практике и вашему стеку. Расскажите, из чего он состоит.
Мы стараемся находить уязвимости как можно раньше, поэтому используем SAST (static application security testing) и DAST (dynamic application security testing) с момента написания первой строчки кода. На базе одного популярного SAST-продукта строим решение, которое добавляет Security в DevOps для множества разрабатываемых в СберТехе автоматизированных систем. Сейчас мы внедряем OWASP ZAP в DevSecOps, что позволит нам разрабатывать еще более безопасные и надежные приложения.
Также мы занимаемся поиском известных уязвимостей в публичных компонентах. Для этого была создана утилита, которая агрегирует результаты работы других подобных инструментов (OWASP dependency check, Retire.js), а также проводит сканирование исходного кода, вычленяя из него используемые компоненты, которые затем проверяются по публичным базам уязвимостей (NIST, CVEdetails).
В результате ручного разбора багов у нас накопился определенный набор данных с экспертной оценкой, и мы обучили модель (столь хайповое сейчас машинное обучение), которая определяет шанс уязвимости быть true positive. Эта модель очень помогает, ведь она как минимум занимается ранжированием. Допустим, у OWASP dependency check очень низкий false positive rate, но он дает очень мало результатов. У нашей утилиты false positive rate выше, но благодаря ранжированию и гораздо большему количеству результатов мы иногда вылавливаем уязвимости, которые ранее не обнаруживались другими инструментами.
Для систем, где это применимо, мы используем фаззинг — строим для всех систем модель нарушителя, модель угроз. Также проводим ревью кода, а именно его критических участков. И конечно, мы проводим тестирование на проникновение.
Мы не оставляем разработчиков наедине с багами, а полностью проходим с ними жизненный цикл бага, консультируем по устранению, тестируем после правки.
И еще немного расскажу о разработке внутри нашего отдела. В какой-то момент мы поняли, что управление SDL-процессом невозможно без Secure Apllication Lifecycle Manager. С учетом определенной специфики банка (множество автоматизированных систем, в каждой из которых свой «зоопарк» технологий и практик) было очевидно, что нужно писать что-то свое.
Поэтому мы создали продукт, в котором сосредоточены все процессы внедрения SDL и поддержания непрерывности процессов, управления потоками данных (ИБ и смежных). Он хранит все накопленные в результате различных практик данные и позволяет управлять ими, автоматически «накатывать» какие-то действия для их гладкого тиражирования. Также он распределяет баги по различным issue-трекерам, предоставляет интерфейсы для разбора багов по нашим инструментам. Все это обеспечивает построение SDL и эффективное взаимодействие с командами.
Читайте также
Последние новости