Анализ кода банковских приложений —
от доверия к осознанности и ГОСТу
Актуальность тематики защищенности приложений говорит сама за себя: по данным Positive Technologies каждое исследованное в 2018 году банковское приложение обладало рисками несанкционированного доступа к личным данным клиентов, банковской тайне и потенциально позволяло злоумышленнику осуществлять мошеннические операции и кражу денежных средств. Ключевая причина этого — ошибки бизнес-логики систем и уязвимости кода.
На фоне растущей активности киберпреступников банковские организации все чаще задаются вопросом о возможности оперативного и автоматизированного анализа уязвимостей своих приложений. А в последнее время нередко возникает и вопрос соответствия требованиям ОУД4 ГОСТ 15408-3. Связано это со скорым (с 1 января 2020 года) вступлением в силу соответствующих положений Банка России. Однако многие до сих пор не до конца представляют, как проводить анализ приложения, какие проверки необходимо выполнить, какие уязвимости при этом должны анализироваться и что является подтверждением проведенного анализа для регулятора.
Авторы статьи:
Содержание |
Доверие по ГОСТу
ГОСТ 15408 (он же — «Критерии оценки защищенности информационных технологий», он же — «Общие Критерии» или Common Criteria) предполагает, что разработчик защищенной информационной системы (или отдельного средства защиты, так как обычно этот стандарт используется только в их разработке) заявляет, что:
1. реализовал в ней определенный набор функций безопасности;
2. эти функции действительно работают;
3. нарушитель не может их отключить или обойти.
В правдивости этих обещаний потенциальный разработчик приложения обычно и пытается убедить своего потребителя, интересы которого представляет независимый оценщик (скажем, испытательная лаборатория системы сертификации). При этом его убедительность вполне измерима и определяется оценочным уровнем доверия (ОУД) — комплексом мер, которые должны быть реализованы во всем жизненном цикле разработки, чтобы исключить ошибки и уязвимости на уровне разработки. TAdviser выпустил Гид по российским операционным системам
На первом (низшем) уровне доверия разработчику вполне достаточно описать эти функции в пользовательской документации (то есть потребитель вынужден верить на слово), а вот на наивысшем ОУД он должен, помимо прочего, описать работу всех заявленных функций безопасности в какой-то формальной нотации (в виде блок-схем, 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, провести всеобъемлющий анализ уязвимостей банковского приложения. И, что немаловажно, сформировать отчет, подтверждающий, что анализ на наличие уязвимостей проводился (уязвимости при первичном сканировании найдены, даны рекомендации по их устранению, а при повторном сканировании уязвимости устранены). Отчеты по результатам первичного и повторного сканирования снимают многие вопросы, возникающие у аудитора, и сокращают время самих проверок.
Как именно приводить в соответствие свои банковские приложения: самостоятельно «ручным» способом, приглашать стороннюю организацию или пользоваться автоматизированными инструментами, – выбор за организацией. Однако очевидно, что использование инструмента, позволяющего автоматизировать этот процесс, ощутимо облегчает жизнь и экономит время как организации, так и самих аудиторов.
Смотрите также
Контроль и блокировки сайтов
- Цензура в интернете. Мировой опыт
- Цензура (контроль) в интернете. Опыт Китая, Компьютерная группа реагирования на чрезвычайные ситуации Китая (CERT)
- Цензура (контроль) в интернете. Опыт России, Политика Роскомнадзора по контролю интернета, ГРЧЦ
- Запросы силовиков на телефонные и банковские данные в России
- Закон о регулировании Рунета
- Национальная система фильтрации интернет-трафика (НаСФИТ)
- Как обойти интернет-цензуру дома и в офисе: 5 простых способов
- Блокировка сайтов в России
- Ревизор - система контроля блокировки сайтов в России
Анонимность
- Даркнет (теневой интернет, DarkNet)
- VPN и приватность (анонимность, анонимайзеры)
- VPN - Виртуальные частные сети
- СОРМ (Система оперативно-розыскных мероприятий)
- Государственная система обнаружения, предупреждения и ликвидации последствий компьютерных атак (ГосСОПКА)
- Ястреб-М Статистика телефонных разговоров
Критическая инфраструктура
- Цифровая экономика России
- Электронное правительство России
- Информационная безопасность цифровой экономики России
- Защита критической информационной инфраструктуры России
- Закон О безопасности критической информационной инфраструктуры Российской Федерации
- Основы государственной политики РФ в области международной информационной безопасности
- Доктрина информационной безопасности России
- Стратегия национальной безопасности России
- Соглашение стран СНГ в борьбе с преступлениями в сфере информационных технологий
- Автономный интернет в России
- Киберполигон России для обучения информационной безопасности
- Национальная биометрическая платформа (НБП)
- Единая биометрическая система (ЕБС) данных клиентов банков
- Биометрическая идентификация (рынок России)
- Каталог решений и проектов биометрии
- Единая сеть передачи данных (ЕСПД) для госорганов (Russian State Network, RSNet)
- Статья:Единая система программной документации (ЕСПД).
- Сеть передачи данных органов государственной власти (СПДОВ)
- Единая сеть электросвязи РФ
- Единый портал государственных услуг (ФГИС ЕПГУ)
- Гособлако - Государственная единая облачная платформа (ГЕОП)
- Госвеб Единая платформа интернет-порталов органов государственной власти
Импортозамещение
- Импортозамещение в сфере информационной безопасности
- Обзор: Импортозамещение информационных технологий в России
- Главные проблемы и препятствия импортозамещения ИТ в России
- Преимущества замещения иностранных ИТ-решений отечественными
- Основные риски импортозамещения ИТ
- Импортозамещение информационных технологий: 5 "За" и 5 "Против"
- Как импортозамещение ИТ сказалось на бизнесе иностранных вендоров? Взгляд из России
- Как запуск реестра отечественного ПО повлиял на бизнес российских вендоров
- Какие изменения происходят на российском ИТ-рынке под влиянием импортозамещения
- Оценки перспектив импортозамещения в госсекторе участниками рынка
Информационная безопасность и киберпреступность
- Киберпреступность в мире
- Требования NIST
- Глобальный индекс кибербезопасности
- Кибервойны, Кибервойна России и США, Кибервойна России и Великобритании, Кибервойна России и Украины
- Locked Shields (киберучения НАТО)
- Киберпреступность и киберконфликты : Россия, Кибервойска РФ, ФСБ, Национальный координационный центр по компьютерным инцидентам (НКЦКИ), Центр информационной безопасности (ЦИБ) ФСБ, Следственный комитет при прокуратуре РФ, Управление К БСТМ МВД России, МВД РФ, Министерство обороны РФ, Росгвардия, ФинЦЕРТ
- Число киберпреступлений в России, Русские хакеры
- Киберпреступность и киберконфликты : Украина, Киберцентр UA30, Национальные кибервойска Украины
- Национальный центр по защите данных системы здравоохранения Норвегии (HelseCERT)
- CERT NZ
- CERT-UZ Отдел технической безопасности в структуре государственного унитарного Центра UZINFOCOM
* Регулирование интернета в Казахстане, KZ-CERT
- Киберпреступность и киберконфликты : США, Пентагон, ЦРУ, АНБ, NSA Cybersecurity Directorate, ФБР, Киберкомандование США (US Cybercom), Министерства обороны США, NATO, Department of Homeland Security, Cybersecurity and Infrastructure Security Agency (CISA)
- Информационная безопасность в США
- Как США шпионили за производством микросхем в СССР
- Киберпреступность и киберконфликты : Европа, ENISA, ANSSI, Joint Cyber Unit, National Cyber Force
- Стратегия кибербезопасности ЕС
- Регулирование интернета в странах Евросоюза
- Информационная безопасность в Германии
- Информационная безопасность во Франции
- Информационная безопасность в Греции
- Информационная безопасность в Австралии
- Tactical Edge Networking (военный интернет)
- Киберпреступность и киберконфликты : Израиль
- Киберпреступность и киберконфликты : Иран
- Киберпреступность и киберконфликты : Китай
- Информационная безопасность в Китае
- Импортозамещение информационных технологий в Китае
- Киберпреступность и киберконфликты : КНДР
- Информационная безопасность в Молдавии
- Информационная безопасность в Японии
- Безопасность в интернете
- Безопасность интернет-сайтов
- Безопасность программного обеспечения (ПО)
- Безопасность веб-приложений
- Безопасность мессенджерах
- Угрозы безопасности общения в мобильной сети
- Безопасность в социальных сетях
- Киберзапугивание (кибербуллинг, киберсталкинг)
- Информационная безопасность в банках
- Информационная безопасность в судах
- CERT-GIB Computer Emergency Response Team - Group-IB
- Мошенничество с банковскими картами
- Взлом банкоматов
- Обзор: ИТ в банках 2016
- Политика ЦБ в сфере защиты информации (кибербезопасности)
- Потери организаций от киберпреступности
- Потери банков от киберпреступности
- Тренды развития ИТ в страховании (киберстрахование)
- Кибератаки
- Threat intelligence TI киберразведка
- Число кибератак в России и в мире
- Кибератаки на автомобили
- Обзор: Безопасность информационных систем
- Информационная безопасность
- Информационная безопасность в компании
- Информационная безопасность в медицине
- Информационная безопасность в электронной коммерции
- Информационная безопасность в ритейле
- Информационная безопасность (мировой рынок)
- Информационная безопасность (рынок России)
- Информационная безопасность на Украине
- Информационная безопасность в Белоруссии
- Главные тенденции в защите информации
- ПО для защиты информации (мировой рынок)
- ПО для защиты информации (рынок России)
- Pentesting (пентестинг)
- ИБ - Средства шифрования
- Криптография
- Управление инцидентами безопасности: проблемы и их решения
- Системы аутентификации
- Закон о персональных данных №152-ФЗ
- Защита персональных данных в Евросоюзе и США
- Расценки пользовательских данных на рынке киберпреступников
- Буткит (Bootkit)
- Уязвимости в ПО и оборудовании
- Джекпоттинг_(Jackpotting)
- Вирус-вымогатель (шифровальщик), Ramsomware, WannaCry, Petya/ExPetr/GoldenEye, CovidLock, Ragnar Locker, Ryuk, EvilQuest Вредонос-вымогатель для MacOS, Ransomware of Things (RoT), RegretLocker, Pay2Key, DoppelPaymer, Conti, DemonWare (вирус-вымогатель), Maui (вирус-вымогатель), LockBit (вирус-вымогатель)
- Защита от программ-вымогателей: существует ли она?
- Big Brother (вредоносная программа)
- MrbMiner (вирус-майнер)
- Защита от вирусов-вымогателей (шифровальщиков)
- Вредоносная программа (зловред)
- APT - Таргетированные или целевые атаки
- Исследование TAdviser и Microsoft: 39% российских СМБ-компаний столкнулись с целенаправленными кибератаками
- DDoS и DeOS
- Атаки на DNS-сервера
- DoS-атаки на сети доставки контента, CDN Content Delivery Network
- Как защититься от DDoS-атаки. TADетали
- Визуальная защита информации - Визуальное хакерство - Подглядывание
- Ханипоты (ловушки для хакеров)
- Руткит (Rootkit)
- Fraud Detection System (fraud, фрод, система обнаружения мошенничества)
- Каталог Антифрод-решений и проектов
- Как выбрать антифрод-систему для банка? TADетали
- Security Information and Event Management (SIEM)
- Threat intelligence (TI) - Киберразведка
- Каталог SIEM-решений и проектов
- Чем полезна SIEM-система и как её внедрить?
- Для чего нужна система SIEM и как её внедрить TADетали
- Системы обнаружения и предотвращения вторжений
- Отражения локальных угроз (HIPS)
- Защита конфиденциальной информации от внутренних угроз (IPC)
- Спуфинг (spoofing) - кибератака
- Фишинг, Фишинг в России, DMARC, SMTP
- Сталкерское ПО (программы-шпионы)
- Троян, Trojan Source (кибератака)
- Ботнет Боты, TeamTNT (ботнет), Meris (ботнет)
- Backdoor
- Черви Stuxnet Regin Conficker
- EternalBlue
- Рынок безопасности АСУ ТП
- Флуд (Flood)
- Предотвращения утечек информации (DLP)
- Скимминг (шимминг)
- Спам, Мошенничество с электронной почтой
- Социальная инженерия
- Телефонное мошенничество
- Звуковые атаки
- Warshipping (кибератака Военный корабль)
- Антиспам программные решения
- Классические файловые вирусы
- Антивирусы
- ИБ : средства защиты
- Система резервного копирования
- Система резервного копирования (технологии)
- Система резервного копирования (безопасность)
- Межсетевые экраны