Артем Бачевский. Інтерв'ю з керівником з розвитку IT-систем у відділі Application Security «Сбербанк-Технологій»

  1. INFO
  2. Артем Бачевский, керівник напрямку з розвитку IT-систем у відділі Application Security

З цієї бесіди ти дізнаєшся, чим саме займається дочірня IT-компанія Ощадбанку «Сбербанк-Технології», які Telegram-канали варто читати Application Security фахівця і чому під час навчання не можна забувати про практику. З цієї бесіди ти дізнаєшся, чим саме займається дочірня IT-компанія Ощадбанку «Сбербанк-Технології», які Telegram-канали варто читати Application Security фахівця і чому під час навчання не можна забувати про практику

INFO

«Сбербанк-Технології» (СберТех) - дочірня IT-компанія Ощадбанку, заснована в 2011 році. Все почалося з команди з 500 чоловік. В основному це були IT-фахівці Ощадбанку, які перейшли працювати в окрему IT-структуру.

На сьогоднішній день штат СберТеха становить близько 11 тисяч чоловік в шістнадцяти містах Росії. У цих містах зосереджені ключові центри розробки, в яких збираються регіональні команди IT-фахівців: Москва, Санкт Петербург, Новосибірськ, Іннополіс і так далі.

СберТех займається розробкою і впровадженням ПО, а також підтримкою існуючих ІТ-систем Ощадбанку. На даний момент Ощадбанк є єдиним клієнтом компанії.

На даний момент Ощадбанк є єдиним клієнтом компанії

Артем Бачевский, керівник напрямку з розвитку IT-систем у відділі Application Security

Розкажіть, чим займається СберТех, над якими проектами ви зараз працюєте?

В даний час ключовим проектом є розробка нової технологічної платформи для Ощадбанку. Вона трансформує бізнес-модель в екосистему. Ця екосистема забезпечить надання послуг нефінансового характеру, підключення партнерів і підрядників, зможе обробляти великі обсяги даних за короткий час, дозволить мати високу продуктивність систем.

Давайте трохи докладніше зупинимося на послуги нефінансового характеру. Про які проекти йдеться?

Такі проекти існують вже зараз, так як екосистема розвивається з 2016 року. Повний перехід на нову технологічну платформу планується до 2020 року. Сбербанк прагне піти від надання тільки фінансових послуг і активно обростає партнерами. Наприклад, «Сбербанк-Нерухомість» (ТОВ «Центр нерухомості від Ощадбанку» входить до групи компаній Ощадбанку. - Прим. Ред.), «Сбербанк-Страхування», інтернет-сервіс з пошуку лікарів DocDoc і так далі. Таким чином, здійснюється трансформація в екосистему. Аналогічним шляхом йдуть такі компанії, як Alibaba, Amazon, WeChat.

«Екосистема» та «технологічна платформа» - це красиві слова, але хочеться почути більше конкретики. В чому полягає суть вашої платформи, що саме ви розробляєте і чому ці технології видатні?

Нова платформа складається з трьох ключових програм.

Платформа підтримки розвитку бізнесу - універсальний інструмент для створення бізнес-додатків. Банк повинен перетворитися в Marketplace, який об'єднує низку інструментів для досягнення цілей своїх клієнтів. Для цього необхідний фундамент - нова платформа: Швидка, гнучка, надійна і відкрита, здатна змінюватися в реальному часі. У розробці застосовуються новітні технології розподілених обчислень в пам'яті і роботи додатків з великими обсягами даних в реальному часі - In Memory Data Grid.

Програма «Фабрика даних» покликана підвищити рівень якості, достовірності та доступності даних для аналізу. Співробітники банку зможуть повноцінно займатися аналізом і інтерпретацією даних без додаткових трудовитрат на їх збір і вивірку. Big Data забезпечує роботу з супермассівамі даних для монетизації інформації та поведінкового аналізу клієнтів і співробітників, для коригування стратегій роботи з різними сегментами.

Єдина фронтальна система - крос-функціональна платформа, власна розробка Ощадбанку. Інструменти платформи забезпечують безшовний крос-канальний досвід для всіх продуктів і сервісів. Технологічний стек дозволяє підтримувати високу продуктивність, надійність і безпеку роботи користувачів. Крім того, за рахунок власного API ЕФС дозволяє партнерам заходити в систему, так само як і інтегруватися зі сторонніми майданчиками.

Крім того, за рахунок власного 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 це будуть практики безпечної розробки веб-додатків, тому що в цій сфері дуже багато замикається на безпеки інтернету.

Припустимо, в контексті 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 і ефективну взаємодію з командами.

Про які проекти йдеться?
В чому полягає суть вашої платформи, що саме ви розробляєте і чому ці технології видатні?
Артем, розкажіть, чим займається ваш підрозділ?
Яким чином побудована дана інфраструктура, ви згадали SDL?
Скільки приблизно годин навчання в рік виходить у ваших розробників?
Як ви вважаєте, яка на сьогодні роль навчання?
Кожен день з'являється щось нове, як за цим встигати?
Що потрібно робити фахівця, щоб завжди «залишатися на вістрі»?
Розкажіть про ваші тренінгах та awareness, як це відбувається?
Яке завдання у такого змагання?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: