Финансовая сфера

Банковское обозрение


12.01.2021 FinSecurityFinTechАналитика
Пять причин для банков перейти на OpenJDK с поддержкой в России

В ноябре 2020 года правительство России внесло в Госдуму новый законопроект с поправками к КоАП, который коснется банков и их должностных лиц. Он предусматривает штрафы до 500 тыс. рублей за каждый случай нарушения требований безопасности критических информационных инфраструктур (КИИ), срок давности при этом составляет один год


Подавляющее большинство банковских КИИ спроектировано с использованием Java-компонентов. Эта современная практика промышленной разработки, позволяющая строить сложные системы, не изменится еще десятилетия. Среда исполнения Java используется в ДБО, процессинге карт, скоринге, микросервисной архитектуре, популярность которой активно растет, на рабочих станциях десятков тысяч сотрудников банков.

При этом в 2019 году лицензирование Java радикально изменилось: компания Oracle перестала предоставлять бесплатные сборки Java SE для коммерческого использования. Таким образом, обновления безопасности больше не доступны публично. Для применения Java SE в промышленных банковских системах теперь требуется коммерческая подписка. А с момента последнего публичного обновления Java SE 8 в 2019 году уже устранено более 40 уязвимостей в версии JDK 8 (Java Development Kit) и вышли JDK 9, JDK 10, JDK 11, JDK 12, JDK 13, JDK 14 и JDK 15.

На практике это означает, что банки должны выбрать один из трех путей.

Варианты поддержки и развития КИИ на Java после отмены публичных обновлений

  1. использовать версии Java SE (Oracle JDK), которые предоставлялись бесплатно, не имея доступа к обновлениям безопасности и улучшениям функциональности;
  2. приобрести коммерческую лицензию и поддержку Oracle;
  3. искать альтернативного поставщика Java-дистрибутива и перейти на OpenJDK с его поддержкой 24х7.

Первый путь как небезопасный уже отклонили НСПК, Сбербанк, ЦБ РФ, ВТБ. Он может привести к эксплуатации уязвимостей, закрытых в следующих (платных) версиях, необходимости использовать совместимые (старые) версии сторонних библиотек (Spring, Angular, Lombok и т.д.), в которых также возможны «дыры», и накоплению legacy-кода, усложняющего поддержку и снижающего эксплуатационные характеристики систем.

Выбор открытого ПО с поддержкой команды, вышедшей из Oracle и входящей в топ-5 мировых лидеров OpenJDK, может стать оптимальным вариантом, так как обеспечивает необходимое качество и надежность по более низкой цене. Однако существуют опасения, которые мешают банкам пользоваться благами открытого ПО. Мы хотим развенчать эти мифы.

Опасение 1. OpenJDK, как любое открытое ПО, не защищен от уязвимостей

Мы часто слышим, что в очередном проекте с открытым исходным кодом исправлен ряд уязвимостей. По факту объем патчей указывает на то, что огромное сообщество неравнодушных людей непрерывно проверяет открытый код и быстро устраняет ошибки. Обилие «дыр» в безопасности — наиболее распространенное заблуждение об open source. Проприетарный софт и языки программирования, наоборот, менее прозрачны. В случае OpenJDK существует Vulnerability Group — команда, ответственная за выявление и исправление проблем безопасности. С уверенностью можно сказать, что последние релизы OpenJDK намного безопаснее для коммерческих систем, чем лицензированные до 2019 года, но устаревшие сборки Oracle JDK.

Опасение 2. OpenJDK проигрывает в производительности Oracle JDK

С точки зрения производительности JVM (Java Virtual Machine) различий нет, а одинаковая скорость работы подтверждена авторитетными Java-бенчмарками (SPECjbb, SPECjvm) и микробенчмарками, зашитыми в код OpenJDK.

Опасение 3. Функциональность OpenJDK не идентична Oracle JDK

Большинство версий после Java 8 функционально не различаются. Текущие релизы OpenJDK и Oracle JDK идентичны с точки зрения кода. Однако JDK 8 содержит несколько технологий, которые отсутствуют в OpenJDK (и постепенно бэкпортируются). В таблице представлены все важные характеристики среды исполнения Java, включая альтернативные инструменты, способные заменить функции Oracle JDK 8.

Опасение 4. OpenJDK не позволяет избежать зависимости от поставщика (вендор-лока)

Побывав клиентами Oracle, компании боятся привязки к новому поставщику OpenJDK, а зря. Можно в полной мере пользоваться средой исполнения Java без какого-либо участия ее разработчика. Достаточно на этапе выбора это проверять. Например, BellSoft гарантирует полное отсутствие вендор-лока, предоставляя пользователям так называемые чистые (без дополнительного функционала) билды и внося все исправления со своей стороны в основную ветвь OpenJDK.

Опасение 5. На OpenJDK сложно мигрировать с Oracle JDK

Оба дистрибутива являются реализациями одной Java-спецификации, поэтому переход практически не требует усилий программистов. IT-команде достаточно прямо сейчас скачать контейнер с образом OpenJDK, например Liberica JDK, изменить одну(!) строку кода — и пользоваться базовой сборкой.

Национальная система платежных карт (НСПК) в числе первых на финансовом рынке протестировала возможности OpenJDK для КИИ и готова делиться опытом. Оператор платежной системы «Мир» перешел на открытое ПО с поддержкой от компании BellSoft, выбрав Java-дистрибутив Liberica JDK в качестве платформы для своих систем процессинга, клиринга и программы лояльности. Прогрессивная среда исполнения Java обеспечивает безопасное обслуживание более 82 млн карт 153 российских банков. Владимир Трояновский, директор департамента IT НСПК, отмечает: «Мы постоянно разрабатываем инновационные решения, поэтому нам необходим надежный технологический партнер для поддержки систем высокой доступности, работающих на Java. Мы выбрали российскую компанию BellSoft, инженерная экспертиза которой поможет нам обеспечить максимальную безопасность и надежность наших программ и операций».

С подходом НСПК солидарны в банках. В Альфа-Банке Java используется в слое бизнес-логики почти во всех системах мобильного банкинга и интернет-банкинга, в системах для сотрудников в отделениях и многих других. «Вопросы безопасности главным образом решаются грамотным архитектурным проектированием и построением безопасного процесса разработки. Как пример — никакой дистрибутив Java не спасет, если в приложении нет ролевой модели. Опыт НСПК вполне релевантен банкам», — считает Павел Дерендяев, руководитель центра компетенций Java департамента цифровых решений Альфа-Банка. С ним согласен Дмитрий Корчев, архитектор Московского кредитного банка: «Мы, как и все компании сейчас, нацелены на переход на использование open source ПО. Конечно, опыт НСПК нам близок, понятен, и мы придерживаемся такой же политики».

Сравнение функциональности Oracle JDK и OpenJDK (на примере Liberica JDK)

Функционал

Liberica JDK

Oracle JDK

Лицензия, безопасность, соответствие стандартам

Основан на OpenJDK, соответствие стандарту Java SE подтверждено тестами TCK

Да

Да

Обновления системы безопасности 4 раза в год

Да

Да

Производительность наравне с Oracle Java SE

Да

Да

Версии с долговременной поддержкой (8, 11) и «функциональные» релизы (12, 13, 14, 15)

Да

Да

Платформы и установка

Windows x86 (64 bit), macOS, Linux x86 (64 bit), Linux ARM (64 bit)

Да

Да

Windows x86 (32 bit), Linux x86 (32 bit), Linux ARM (32 bit), Solaris x86 (64 bit)

Да

Только в JDK 8

Alpine Linux x86 (64 bit, musl)

Да

Нет

Solaris Sparc

JDK 8, 11

JDK 8, 11

Установщики на Windows\ Mac\ Linux

MSI\ DMG,PKG\ DEB, RPM, TAR.GZ

EXE\ DMG\ DEB,RPM, TAR.GZ

Разнообразные типы сборок

Lite, Standard, Full, JDK/JRE

Standard, Server JRE/JRE/JDK

Репозитории Linux (yum, apt)

Да

Нет

Инструменты

JDK Flight Recorder, JDK Mission Control

JDK 8, JDK 11

JDK 8, JDK 11

OpenJFX (JavaFX), Open Web Start (Java Web Start)

JDK 8, 11

Только в JDK 8

Графический рендерер

Marlin в JDK 8, 11

Ductus в JDK 8, Marlin в JDK 11

Графический рендерер шрифтов

Freetype в JDK 8, 11

T2K в JDK 8, Freetype в JDK 11

Коммерческая поддержка

Поддержка 24х7х365 (реагирование в течение часа по SLA)

Да

Да

Внеплановые критические исправления (независимо от OpenJDK)

Да

Да

Жизненный цикл коммерческой поддержки

2031 для Java SE

2026 для JavaFX

2030 для Java SE

2025 для JavaFX

Инженерный ресурс на выявление первопричины и исправление багов (независимо от OpenJDK)

Да

Да

 

Досье «Б.О»

Liberica JDK — это прогрессивная среда разработки и исполнения Java для IT-профессионалов. Ее разработчик BellSoft входит в топ-5 мировых лидеров OpenJDK вместе с Oracle, RedHat, SAP и Google. Это дает возможность заказчикам получать исправления безопасности синхронно с Oracle JDK, поддерживать максимально возможную безопасность Java-приложений и реализовывать передовые тренды, такие как микросервисы. Liberica JDK включена в реестр российского ПО, допущена ФСБ для использования с сертифицированными криптографическими средствами. В арсенале BellSoft почти 200 человеко-лет разработки Java и OpenJDK. Среди клиентов на поддержке — НСПК, 1C, группа «М.Видео — Эльдорадо», VMware, JetBrains и др.

 

Как банки используют Java в рамках КИИ

OpenJDK-версия включена в целевой технологический стек новой сервисной платформы банка

Михаил Хасин, заместитель руководителя департамента IT-архитектуры Банка ВТБМихаил Хасин, заместитель руководителя департамента IT-архитектуры Банка ВТБ

Open source версия Java (на базе OpenJDK) включена в целевой технологический стек новой сервисной платформы банка. Кроссплатформенная совместимость Java, а также эффективное управление многозадачностью внутри JVM (Java virtual machine) позволяют создавать высоконагруженные масштабируемые сервисы, которые реализуют необходимый для наших клиентов функционал.

В дальнейшем в первую очередь мы планируем развивать сервисы, разработанные на нашем целевом технологическом стеке.

Java — это наш сегодняшний и завтрашний день

Александр Тараторин, директор по информационным технологиям РосбанкаАлександр Тараторин, директор по информационным технологиям Росбанка

Java в Росбанке используется очень широко и разнообразно. Фактически в каждом подразделении разработки, и в бизнес-IT и в Core IT, есть приложения и системы, разработанные на Java. Это решения на базе aBPM, eLibrary, SGCheck, ORMTool. Общекорпоративная система документооборота также полностью написана на Java. В рознице на Java разрабатывается приложение для осуществления активных операций в рамках обслуживания клиентов сотрудниками отделения. А в депозитарном бизнесе Java главным образом используется в различных интеграционных сервисах, например для взаимодействия АСДУ — Swift, АСДУ — ИКБ.

Приоритетами при выборе системы или платформы для нас являются скорость разработки, стабильность и масштабируемость решения, а в последнее время — открытость и распространенность технологии. С учетом этих факторов Java — проверенное решение. Разработчики на данном стеке достаточно хорошо распространены по всему миру, и найти их — не такая большая проблема. Особенно сейчас, когда у нас открылась возможность набирать сотрудников на «удаленку» по всей стране и даже за рубежом.

Java появилась в середине 90-х и очень быстро получила признание огромного числа разработчиков как изначально многоплатформенное решение для широкого круга задач. Это предопределило тот факт, что именно Java стала наиболее распространенным, активно развивающимся языком программирования с большим количеством библиотек, open source, большим community, наличием удобных средств для быстрой разработки надежного кода, исчерпывающими средствами диагностики. И до сегодняшнего дня Java остается одной из относительно простых, проверенных временем и в то же время современных технологий.

Конечно, планы по развитию и поддержке прежде всего диктуют требования бизнеса. Мы в первую очередь избавляемся от Legacy-систем, а решения на базе Java как раз в числе тех, которые приходят им на смену. Поэтому, в целом, Java — это наш сегодняшний и ближайший завтрашний день.

Объем применения стека Java во всем ландшафте банка растет

Виктор Цветков, старший эксперт управления технологических платформ РайффайзенбанкаВиктор Цветков, старший эксперт управления технологических платформ Райффайзенбанка

Говоря о Java как об экосистеме, уместно напомнить, что в нее входят как язык программирования Java, так и Java Virtual Machine (JVM) — среда исполнения для кода, написанного на разных языках программирования (ЯП), не только на Java. Минимум половина нашего ландшафта в разной степени использует элементы этой экосистемы.

Говоря о спектре решаемых задач, можно перечислить почти все бизнес-сегменты банка: здесь и ДБО, и процессинг, и кредитные конвейеры, и многочисленные бэк-офисные системы. К разным нашим системам выставлены разные нефункциональные требования. Это зависит от ряда факторов: критичности для бизнеса, средней и пиковой нагрузки, количества и типа интеграций с другими системами и многих других. Современная Java-экосистема содержит достаточное количество зрелых инструментов, позволяющих реализовать эти требования. Безусловно, стоит выделить яркий тренд последних пяти — семи лет, связанный с микросервисной архитектурой. Применение этого архитектурного шаблона поставило перед разработчиками много новых задач, в решении которых сообщество уже сегодня накопило ценный опыт и собрало полезные инструменты.

Java — очень зрелый и крайне широко распространенный набор технологий. Это значит, что при решении любой задачи общего характера к услугам разработчика уже представлен широкий набор инструментов, фреймворков, библиотек, серверов приложений и прочего, как проприетарных, так и открытых. В общем случае разработчику нужно только описать свою бизнес-логику, а вся инфраструктурная обвязка современного промышленного приложения уже написана и многократно протестирована. Многочисленное комьюнити сильно облегчает поиск решения в сложных ситуациях, а также упрощает наем специалистов. Кроме того, банковская предметная область очень сложна в части бизнес-логики, и для ее описания лучше всего подходят сильно типизированные языки, к числу которых относятся Java, Kotlin и Scala. Типобезопасность языка позволяет существенно уменьшить количество потенциальных ошибок в сложной бизнес-логике.

Объем применения стека Java во всем ландшафте банка растет, а своевременное отслеживание инноваций и значимых изменений в этой области, оценка их применимости и потенциала — неотъемлемая часть наших RnD-процессов.

Мы предъявляем высокие требования к безопасности Java-систем

Антон Шевченко, директор информационных технологий Банка ДОМ.РФАнтон Шевченко, директор информационных технологий Банка ДОМ.РФ

Java занимает центральное место в IT-ландшафте Банка ДОМ.РФ и группы компаний в целом, включена в целевой стек технологий, на ее основе разрабатываются все новые информационные системы, внедряемые группой компаний.

В настоящий момент Java используется в таких ключевых системах, как кредитный конвейер Банка ДОМ.РФ, ДБО физических и юридических лиц, автоматизированная система проектного финансирования, расширенное банковское сопровождение, цифровая платформа ипотечных ценных бумаг, интеграционный слой, а также API АБС. Мы предъявляем высокие требования к безопасности указанных систем, все они классифицированы как mission critical и business critical.

На базе Java в Банке ДОМ.РФ автоматизированы ключевые направления бизнеса, в рамках которых идет непрерывное внедрение новых продуктов. Их разработка и адаптация под потребности банка будут вестись также за счет активного применения Java при дальнейшем формировании IT-ландшафта. С организационной точки зрения разработка соответствует принципам Joint Development и будет включать в себя запуск смешанных команд из штатных специалистов и сотрудников фирм-подрядчиков, формирование компетенций по критическому функционалу в штате группы компаний, хранение исходных кодов и документации в системе хранения версий ПО и wiki группы компаний, развертывание конвейера CI/CD в инфраструктуре группы компаний, контроль над ним штатными специалистами. С архитектурной точки зрения планируется применять микросервисный подход там, где его еще нет, а также развивать его в системах, в которых он уже есть.

Микросервисная архитектура — это уже стандартный подход при развитии систем

Сергей Гаврилин, руководитель департамента «Цифровой банкинг» Банка УРАЛСИБСергей Гаврилин, руководитель департамента «Цифровой банкинг» Банка УРАЛСИБ

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

Немаловажную роль при выборе программной платформы Java сыграли:

  • универсальность — обширный инструментарий, большое количество решений по различным направлениям, фронтальные и бэкэнд-решения;
  • кроссплатформенность — независимость от операционных систем и «железа»;
  • популярность — наличие большого рынка специалистов, широкого сообщества, множества информационных и образовательных ресурсов;
  • активное и постоянное развитие.

Большая часть сервисов ориентирована на внешние взаимодействия банка со своими клиентами и клиентами партнеров через публичные каналы в режиме доступности 24х7, поэтому к ним предъявляются высокие требования в вопросах безопасности (внешней и внутренней), бесперебойности (резервирование и распределение по центрам обработки данных с общей доступностью 99% и выше) и производительности (включая возможность автоматического масштабирования на базе платформ виртуализации и контейнеризации). Использование при развитии систем микросервисной архитектуры — это уже стандарт для организаций, практикующих гибкие подходы в разработке и независимые поставки изменений.

Java-разработчики — одни из самых любознательных и перспективных

Виталий Трепыхалин, директор по развитию бэк-офисных систем Московского кредитного банкаВиталий Трепыхалин, директор по развитию бэк-офисных систем Московского кредитного банка

Java включена в согласованный на архитектурном комитете технологический стек банка и является основой систем и сервисов совершенно разных направлений. Это и карточный процессинг, и телеграм-боты, и организация внутренних процессов, и ПО для каналов, фронт-офиса и бэк-офиса. Весь middle-слой реализуется с использованием Camunda BPM. И, конечно, интеграция в банке также на Java. Мы используем WSO2 Integrator, WSO2 Stream Processor.

С 2015 года Java применяется в кредитном конвейере. Нам важна кроссплатформенность приложений, написанных на Java, и в последнее время у нас ориентир на использование Linux в качестве ОС.

Мы планируем привести все приложения корпоративного блока к единой архитектуре на Java-стеке. Продолжим использование и перевод БП, требующих оркестрации на BPM Camunda. Для нас важно, что системы соответствуют требованиям безопасности, бесперебойности, производительности и реализуют инновационные методы разработки. У нас принят курс на постепенный переход на микросервисную архитектуру. Мы постоянно развиваемся, часто пробуем новые фреймворки и методы. Java-разработчики — одни из самых любознательных и перспективных в этом плане.






Сейчас на главной

ПЕРЕЙТИ НА ГЛАВНУЮ