Анализ кода банковских приложений —
от доверия к осознанности и ГОСТу
Актуальность тематики защищенности приложений говорит сама за себя: по данным Positive Technologies каждое исследованное в 2018 году банковское приложение обладало рисками несанкционированного доступа к личным данным клиентов, банковской тайне и потенциально позволяло злоумышленнику осуществлять мошеннические операции и кражу денежных средств. Ключевая причина этого — ошибки бизнес-логики систем и уязвимости кода.
На фоне растущей активности киберпреступников банковские организации все чаще задаются вопросом о возможности оперативного и автоматизированного анализа уязвимостей своих приложений. А в последнее время нередко возникает и вопрос соответствия требованиям ОУД4 ГОСТ 15408-3. Связано это со скорым (с 1 января 2020 года) вступлением в силу соответствующих положений Банка России. Однако многие до сих пор не до конца представляют, как проводить анализ приложения, какие проверки необходимо выполнить, какие уязвимости при этом должны анализироваться и что является подтверждением проведенного анализа для регулятора.
Авторы статьи:
Содержание |
Доверие по ГОСТу
ГОСТ 15408 (он же — «Критерии оценки защищенности информационных технологий», он же — «Общие Критерии» или Common Criteria) предполагает, что разработчик защищенной информационной системы (или отдельного средства защиты, так как обычно этот стандарт используется только в их разработке) заявляет, что:
1. реализовал в ней определенный набор функций безопасности;
2. эти функции действительно работают;
3. нарушитель не может их отключить или обойти.
В правдивости этих обещаний потенциальный разработчик приложения обычно и пытается убедить своего потребителя, интересы которого представляет независимый оценщик (скажем, испытательная лаборатория системы сертификации). При этом его убедительность вполне измерима и определяется оценочным уровнем доверия (ОУД) — комплексом мер, которые должны быть реализованы во всем жизненном цикле разработки, чтобы исключить ошибки и уязвимости на уровне разработки.
На первом (низшем) уровне доверия разработчику вполне достаточно описать эти функции в пользовательской документации (то есть потребитель вынужден верить на слово), а вот на наивысшем ОУД он должен, помимо прочего, описать работу всех заявленных функций безопасности в какой-то формальной нотации (в виде блок-схем, UML-диаграмм и т.п.) и доказать оценщику, что исходный код в точности соответствует этому описанию.
Четвертый уровень можно считать средним, сбалансированным. И одним из свидетельств, которым разработчик подтверждает корректность своих заявлений на этом уровне, является предоставление оценщику исходного кода. Одна из мер доверия, которая проверяется на ОУД4 — анализ уязвимостей, мера доверия AVA_VAN.3, определенная в ч. 3 ГОСТ 15408.
Если перевести эти требования на общечеловеческий язык, то разработчик должен:
- описать архитектуру подсистемы безопасности своего продукта (мера доверия ADV_ARC.1). В описании должно быть продемонстрировано, что функции безопасности его продукта невозможно обойти, т.е. что в нем нет архитектурных уязвимостей;
- написать функциональную спецификацию своего продукта (мера доверия ADV_FSP.4). В ней должен быть описан весь API, связанный с реализацией функций безопасности, назначение каждой функции API, способ ее использования, ее параметры, а также описание всех (вообще всех) ошибок, сообщения о которых могут появляться в интерфейсе или в логах, причем с разблюдовкой: вот эти ошибки — результат некорректного срабатывания функций безопасности, а вот эти — не связаны с безопасностью по вот такой причине;
- описать разделение своего продукта на подсистемы, а каждой подсистемы — на отдельные модули (мера доверия ADV_TDS.3). Для каждого модуля, в котором реализуются функции безопасности, должно быть описано, какие функции API он реализует. Для каждой функции безопасности должно быть расписано что-то вроде диаграммы взаимодействия UML — через какие модули и через какие функции API этих модулей идут пути исполнения кода при выполнении функций безопасности;
- передать оценщику всю эту документацию и исходный код продукта.
При этом у оценщика тоже есть ряд обязательств, в частности:
- убедиться, что документация полна и соответствует исходному коду;
- проверить, нет ли для этого продукта уже известных уязвимостей;
- провести анализ документации на предмет потенциальных архитектурных уязвимостей;
- провести анализ исходных кодов на предмет потенциальных 0-day;
- верифицировать все найденные потенциальные уязвимости, проверив вероятность их эксплуатируемости.
Если оценщик обнаруживает уязвимости такого типа, продукт и документация отправляются на доработку, а оценка повторяется после устранения уязвимостей.
Как видно из описания, анализ уязвимостей — это большой объем работы по анализу архитектурных уязвимостей и уязвимостей кода. Кстати, при сертификации в системе ФСТЭК проводится точно такая же работа, но она — лишь часть сертификационных испытаний: анализ уязвимостей на ОУД4 — это примерно 1/3 трудозатрат испытательной лаборатории на полноценную сертификацию продукта.
Анализ уязвимостей как обязанность
Как видно из описания, ГОСТ ничего не говорит о том, как именно должны выявляться уязвимости: например, нужно ли проводить для этого динамический анализ кода или достаточно только статики? Такая неопределенность в способах поиска потенциальных уязвимостей не устраивает ЦБ, поэтому «встроенные» требования ГОСТ 15408-3 по анализу уязвимостей расширены в проекте профиля защиты, который сейчас рассматривается в ТК122. Изменения существенны:
- анализ уязвимостей должен проводить разработчик. Оценщик проверяет, что этот анализ разработчиком действительно проводится, а также выполняет независимый анализ уязвимостей, чтобы убедиться, что разработчик не халтурит. Такой подход не избавляет разработчика от самостоятельного анализа уязвимостей;
- добавлены примечания, в которых подробно описано, какими именно способами должны выявляться уязвимости. В частности, прямо указана необходимость проведения статического и динамического анализа исходного кода;
- верификация уязвимостей (она обычно проводится в лабораторных условиях) заменена полноценным тестированием на проникновение в реальных условиях эксплуатации. Требования к тестированию на проникновение взяты из РС БР ИББС 2.6, тем самым переведя описанную там процедуру тестирования на проникновения из рекомендованной в обязательную;
- описаны требования к отчетам об анализе уязвимостей. Именно такими отчетами разработчик (или банк) будет подтверждать аудиторам факт самостоятельного проведения анализа уязвимостей.
В чем принципиальное отличие? «Чистый» ОУД4 позволял относиться к анализу уязвимостей, как к работе, которую должен выполнить сторонний эксперт. С момента утверждения профиля защиты ЦБ усиливает требования ОУД4, заставляя разработчиков встраивать анализ уязвимостей в жизненный цикл разработки банковских приложений. Напрямую это касается только собственной разработки платежных приложений банками и некредитными финансовыми организациями, но косвенно — создает и потребительское давление на разработчиков АБС и систем ДБО: финансовая организация не может использовать в платежном процессе приложение, разработчик которого не проводит самостоятельный анализ уязвимостей.
ОУД 4: что есть что?
В состав мер доверия входит анализ уязвимостей, требования к нему для ОУД4 определены в компоненте доверия AVA_VAN.3. В соответствии с ним оценщик (лицо, которое проводит анализ уязвимостей) должен проделать следующую работу:
- изучить по открытым источникам, есть ли в компонентах ПО известные уязвимости;
- изучить документацию на программный продукт и его исходный код, попытаться на их основе выявить еще неизвестные уязвимости;
- для выявленных известных и неизвестных уязвимостей убедиться, что ими невозможно воспользоваться.
Исследование считается успешным, если уязвимости не найдены или если ими невозможно воспользоваться (средства защиты при этом в расчет не принимаются). Обязательным условием анализа уязвимостей на этом уровне доверия является исследование исходных кодов. ГОСТ не определяет, какими именно способами должен проводиться поиск неизвестных уязвимостей, поэтому для формального соответствия достаточно статического анализа кода.
Анализ кода может инициироваться как самим банком, так и разработчиком ПО. ГОСТ и нормативные документы не регламентируют, что именно является подтверждением соответствия, поэтому для формального соответствия достаточно отчета об исследовании.
Задача анализа непростая и, очевидно, она будет еще сложнее, если ее выполнять без автоматизированных средств инспекции кода – анализаторов защищённости, имеющих в своем арсенале возможность выполнения вышеописанных функций. И совсем нетривиальной она становится, если мы говорим об инспекции кода на всех этапах жизненного цикла разработки ПО и о встраивании такого рода средств в системы Continuous Integration / Continuous Delivery, реализуя тем самым концепцию безопасной разработки программного обеспечения (SDL — Security Develoment Life Cycle).
Соответствие ОУД4 «на автомате»
Полностью уповать на анализаторы защищенности, возлагая на них весь объем задач, которые нужно решить в ходе анализа по требованиям ОУД4, нельзя. Например, тот же самый анализ документации на предмет потенциальных архитектурных уязвимостей должен сделать именно оценщик («руками»), а не анализатор защищенности в автоматизированном режиме. Но чем больше задач выполняет непосредственно анализатор кода, тем легче становится сам процесс анализа.
PT Application Inspector (PT AI) – анализатор защищенности, предназначенный для выявления уязвимостей и ошибок в приложениях, поддерживающий процесс безопасной разработки. Он имеет в своем арсенале различные движки анализа: поиск уязвимых библиотек, динамический и статический анализы кода. То есть в продукт «зашиты» технологии, позволяющие искать как известные, так и неизвестные уязвимости (т.н. уязвимости «нулевого дня», 0-day), а по результатам своей работы анализатор выдает отчет в удобном формате, который и будет для аудитора являться свидетельством того, что анализ уязвимостей проводился.
В идеале и вовсе стоит провести два сканирования: первичное, по результатам которого отображаются найденные в коде приложения уязвимости, и повторное, которое подтвердит, что найденные при первичном сканировании уязвимости устранены. И вот в этом случае особенную ценность приобретает имеющаяся у PT AI возможность сканирования только измененных участков кода приложения, что существенно экономит время при выполнении повторного сканирования.
И еще одна важная особенность PT AI в контексте анализа по требованиям ОУД4: он позволяет генерить эксплойты (тестовые запросы) для проверки и верификации найденных уязвимостей. Выражаясь языком требований ОУД4, эксплойты позволяют убедиться, что найденными уязвимостями можно воспользоваться.
Таким образом, PT AI решает задачу автоматизации процесса анализа по требованиям ОУД4, а в зависимости от частоты сканирования и объема кода, можно выбрать PT AI в Desktop’ном исполнении или в исполнении Enterprise. Первый решает классическую задачу приемки кода (то есть удобен для разовых проверок). Второй незаменим, когда кода много (поток) и сканировать его приходится почти постоянно. Последний, кстати, идеален для встраивания в среду разработки (CI/CD) и построения процесса безопасной разработки (SDL).
Вывод
При оценке и анализе приложения на соответствие требованиям ОУД4 значительно облегчает задачу использование специализированных средств, автоматизирующих процесс анализа. Одним из них является PT Application Inspector, который позволяет выполнить большинство проверок на соответствие требованиям ОУД4, провести всеобъемлющий анализ уязвимостей банковского приложения. И, что немаловажно, сформировать отчет, подтверждающий, что анализ на наличие уязвимостей проводился (уязвимости при первичном сканировании найдены, даны рекомендации по их устранению, а при повторном сканировании уязвимости устранены). Отчеты по результатам первичного и повторного сканирования снимают многие вопросы, возникающие у аудитора, и сокращают время самих проверок.
Как именно приводить в соответствие свои банковские приложения: самостоятельно «ручным» способом, приглашать стороннюю организацию или пользоваться автоматизированными инструментами, – выбор за организацией. Однако очевидно, что использование инструмента, позволяющего автоматизировать этот процесс, ощутимо облегчает жизнь и экономит время как организации, так и самих аудиторов.
Смотрите также
Контроль и блокировки сайтов
- Цензура в интернете. Мировой опыт
- Цензура (контроль) в интернете. Опыт Китая
- Цензура (контроль) в интернете. Опыт России, Роскомнадзор, ГРЧЦ
- Закон о регулировании Рунета
- Национальная система фильтрации интернет-трафика (НаСФИТ)
- Как обойти интернет-цензуру дома и в офисе: 5 простых способов
- Блокировка сайтов в России
- Ревизор - система контроля блокировки сайтов в России
Анонимность
- VPN и приватность (анонимность, анонимайзеры)
- СОРМ (Система оперативно-розыскных мероприятий)
- Государственная система обнаружения, предупреждения и ликвидации последствий компьютерных атак (ГосСОПКА)
- Ястреб-М Статистика телефонных разговоров
Критическая инфраструктура
- Цифровая экономика России
- Электронное правительство России
- Информационная безопасность цифровой экономики России
- Защита критической информационной инфраструктуры России
- Закон О безопасности критической информационной инфраструктуры Российской Федерации
- Автономный интернет в России
- Национальная биометрическая платформа (НБП)
- Единая биометрическая система (ЕБС) данных клиентов банков
- Биометрическая идентификация (рынок России)
- Каталог решений и проектов биометрии
- Единая сеть передачи данных (ЕСПД) для госорганов (Russian State Network, RSNet)
- Сеть передачи данных органов государственной власти (СПДОВ)
- Единая сеть электросвязи РФ
- Единый портал государственных услуг (ФГИС ЕПГУ)
- Гособлако - Государственная единая облачная платформа (ГЕОП)
- Госвеб Единая платформа интернет-порталов органов государственной власти
Импортозамещение
- Импортозамещение в сфере информационной безопасности
- Обзор: Импортозамещение информационных технологий в России
- Главные проблемы и препятствия импортозамещения ИТ в России
- Преимущества замещения иностранных ИТ-решений отечественными
- Основные риски импортозамещения ИТ
- Импортозамещение информационных технологий: 5 "За" и 5 "Против"
- Как импортозамещение ИТ сказалось на бизнесе иностранных вендоров? Взгляд из России
- Как запуск реестра отечественного ПО повлиял на бизнес российских вендоров
- Какие изменения происходят на российском ИТ-рынке под влиянием импортозамещения
- Оценки перспектив импортозамещения в госсекторе участниками рынка
Информационная безопасность и киберпреступность
- Киберпреступность в мире
- Требования NIST
- Глобальный индекс кибербезопасности
- Кибервойны, Кибервойна России и США
- Киберпреступность и киберконфликты : Россия, ФСБ, Национальный координационный центр по компьютерным инцидентам (НКЦКИ), Центр информационной безопасности (ЦИБ) ФСБ, Управление К БСТМ МВД России, МВД РФ, Министерство обороны РФ, Росгвардия
- Киберпреступность и киберконфликты : Украина
- Киберпреступность и киберконфликты : США, Пентагон, ЦРУ, АНБ, NSA Cybersecurity Directorate, ФБР, Киберкомандование США (US Cybercom), Министерства обороны США, NATO, Department of Homeland Security, Cybersecurity and Infrastructure Security Agency (CISA)
- Киберпреступность и киберконфликты : Европа, ENISA, ANSSI
- Информационная безопасность во Франции
- Tactical Edge Networking (военный интернет)
- Киберпреступность и киберконфликты : Израиль
- Киберпреступность и киберконфликты : Иран
- Киберпреступность и киберконфликты : Китай
- Как США шпионили за производством микросхем в СССР
- Безопасность в интернете
- Угрозы безопасности общения в мобильной сети
- Безопасность в социальных сетях
- Информационная безопасность в банках
- Мошенничество с банковскими картами
- Взлом банкоматов
- Обзор: ИТ в банках 2016
- Политика ЦБ в сфере защиты информации (кибербезопасности)
- Потери организаций от киберпреступности
- Потери банков от киберпреступности
- Тренды развития ИТ в страховании (киберстрахование)
- Кибератаки
- Обзор: Безопасность информационных систем
- Информационная безопасность
- Информационная безопасность в компании
- Информационная безопасность в медицине
- Информационная безопасность в электронной коммерции
- Информационная безопасность (мировой рынок)
- Информационная безопасность (рынок России)
- Главные тенденции в защите информации
- ПО для защиты информации (мировой рынок)
- ПО для защиты информации (рынок России)
- Pentesting (пентестинг)
- ИБ - Средства шифрования
- Криптография
- VPN - Виртуальные частные сети
- Управление инцидентами безопасности: проблемы и их решения
- Системы аутентификации
- Закон о персональных данных №152-ФЗ
- Защита персональных данных в Евросоюзе и США
- Расценки пользовательских данных на рынке киберпреступников
- Джекпоттинг_(Jackpotting)
- Вирус-вымогатель (шифровальщик)
- WannaCry (вирус-вымогатель)
- Petya/ExPetr/GoldenEye (вирус-вымогатель)
- Вредоносная программа (зловред)
- APT - Таргетированные или целевые атаки
- DDoS и DeOS
- Атаки на DNS-сервера
- DoS-атаки на сети доставки контента, CDN Content Delivery Network
- Как защититься от DDoS-атаки. TADетали
- Ханипоты (ловушки для хакеров)
- Руткит
- Fraud Detection System (fraud, фрод, система обнаружения мошенничества)
- Каталог Антифрод-решений и проектов
- Как выбрать антифрод-систему для банка? TADетали
- Security Information and Event Management (SIEM)
- Каталог SIEM-решений и проектов
- Чем полезна SIEM-система и как её внедрить?
- Для чего нужна система SIEM и как её внедрить TADетали
- Системы обнаружения и предотвращения вторжений
- Отражения локальных угроз (HIPS)
- Защита конфиденциальной информации от внутренних угроз (IPC)
- Фишинг, Фишинг в России, DMARC, SMTP
- Троян
- Ботнет Боты
- Backdoor
- Черви Stuxnet Regin
- Флуд (Flood)
- Предотвращения утечек информации (DLP)
- Скимминг (шимминг)
- Спам, Мошенничество с электронной почтой
- Звуковые атаки
- Антиспам программные решения
- Классические файловые вирусы
- Антивирусы
- ИБ : средства защиты
- Система резервного копирования
- Система резервного копирования (технологии)
- Система резервного копирования (безопасность)
- Межсетевые экраны