Автор работы: Пользователь скрыл имя, 11 Июня 2011 в 21:31, реферат
В большинстве компаний используются модифицированные или разработанные самостоятельно бизнес-приложения. При этом чистота исходного кода никак не контролируется. В таких условиях ничто не мешает программисту-инсайдеру незаметно установить скрытую программную закладку, которая будет активирована в нужный момент. Отсюда возникает существенные риски, о которых говорить пока как-то непринято.
Программные закладки в бизнес-приложениях
В большинстве компаний используются модифицированные или разработанные самостоятельно бизнес-приложения. При этом чистота исходного кода никак не контролируется. В таких условиях ничто не мешает программисту-инсайдеру незаметно установить скрытую программную закладку, которая будет активирована в нужный момент. Отсюда возникает существенные риски, о которых говорить пока как-то непринято.
Введение
В
наш век информационных технологий
уже сложно представить какое-либо
предприятие без компьютерного
оборудования, на котором используется
большое количество системного и
прикладного программного обеспечения.
Как
правило, если речь не идет об Open Source (ПО
с открытым кодом), что стоит рассмотреть
отдельно, на системном уровне от firmware
до операционных систем и различных утилит,
используется вполне стандартные приложения
и заложенный в них производителем функционал.
На этом уровне нужный функционал не создается
индивидуально, а собирается подобно кирпичному
дому из набора готовых программ и их модулей.
Что касается прикладного ПО, особенно бизнес-приложений, то здесь довольно часто требуется индивидуальная кастомизация для каждой компании, оптимальным образом изменяющая или расширяющая его базовый функционал. Каждая компания по-своему уникальна, поэтому эта уникальность и находит отражение в прикладном программном обеспечении. Например, большинство корпоративных CRM или ERP-систем индивидуально подстраиваются под конкретного заказчика, его бизнес-процессы и документооборот. Это же касается ПО для управления финансами предприятия, управленческого учета, программы автоматизации производства и т.п.
Часть
уникальных для предприятия функций
удается реализовать в рамках
базового функционала стандартного
бизнес-приложения путем изменения
настроек. Но все же, во многих индустриях
пользователям приходится дорабатывать
стандартные бизнес-приложения (благо
они позволяют это делать). Порой
приходится даже разрабатывать их практически
с нуля собственными силами или с
помощью контрактных
Если за качество стандартных программ и бизнес-приложений своим именем отвечает производитель и при массовом использовании есть некий общественный контроль. Кроме того, многие популярные программы проходят сертификацию ФСТЭК и ФСБ РФ на отсутствие незадекларированных возможностей, что, хочется верить, также является дополнительным контролем их чистоты.
В этом смысле заказные или доработанные своими силами программы никак не контролируются. Для тех, кто их использует, они становятся чем-то вроде черного ящика, что происходит в котором, знает только автор.
Таким
образом, большинство компаний используют
модифицированные или разработанные
самостоятельно приложения, никак не
контролируя чистоту исходного
кода. О рисках связанных с тем
мы расскажем в данном отчете.
В чем смысл программных закладок?
Удобным для нарушителя способом осуществления несанкционированного доступа к информации в компьютерных системах является метод алгоритмических и программных закладок.
Алгоритмическая закладка – это преднамеренное скрытое искажение части алгоритма программы, в результате чего возможно появление у программного компонента функций, не предусмотренных спецификацией и выполняющихся при определенных условиях протекания вычислительного процесса.
Программная закладка – это внесенные в программное обеспечение функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций, позволяющих осуществлять несанкционированные воздействия на информацию (ГОСТ Р 51275-99).
Важно отметить, что внедрение и работа программной закладки в компьютере носит латентный характер. Ее работа может быть очень разноплановой, все зависит от фантазии программиста, писавшего программный «жучок». Программная закладка часто исполняет роль перехватчика паролей или трафика, служит для намеренного искажения передаваемой информации и даже нарушения непрерывности бизнеса (саботажа, т.е. злонамеренного вывода информационных систем из строя).
Закладки часто существенно модифицируют данные в информационной системе, вплоть до ее уничтожения.
Таким образом, можно выделить следующие модели действий программных закладок:
1.
перехват данных:
a. перехват вывода информации на экран;
b. перехват ввода с клавиатуры;
c. перехват и обработка файловых операций;
d. копирование и пересылка конфиденциальной
пользовательской информации.
2.
искажение данных:
a. неадекватная реакция на команды пользователя;
b. искажение передаваемой по сети информации;
c. блокирование принимаемой или передаваемой
по сети информации;
d. изменение функционала самой программы.
3.
уничтожение данных:
a. уничтожение конфиденциальной пользовательской
информации;
b. инициирование программных и аппаратных
сбоев.
4.
получение
a. получение управления некоторой функцией
в обход системы авторизации;
b. получение доступа к данным и функциям
извне разрешенного периметра.
Что касается бизнес-приложений, то здесь можно выделить два наиболее вероятных вектора атаки с точки зрения целевой установки программных закладок. Первый – это расширение и кастомизация имеющегося функционала программного обеспечения. Второй – заказные разработки силами внутренних или внешних специалистов. Давайте разберем эти два варианта более подробно.
Расширения базового функционала
Во многих случаях функционал стандартных бизнес-приложений может быть расширен с помощью встроенных языков программирования или макросов. Такие доработки функционала обычно ведутся сотрудниками компании, индивидуальными разработчиками или компаниями, специализирующимися на дополнительных разработках.
Хорошим
примером здесь является российская
программная платформа «1С
Другим
примером является интегрированная
автоматизированная система управления
SAP R/3, в которой имеется
Для
расширения или изменения базового
функционала в более массовых
бизнес-приложениях также
Наряду с гибкостью и удобством такой подход к улучшению функциональности привносит в информационную систему дополнительный риск. Принимая доработку, заказчик концентрируется на функционале, а не на безопасности, считая разработчиков заведомо честными и профессиональными. Как правило, код таких разработок никем не проверяется на наличие программных ошибок и незадекларированных возможностей (НДВ). Однако сами бизнес-приложения, работающие с персональными данными, в большинстве случаев проходят обязательную сертификацию во ФСТЭК и ФСБ.
Зачастую это связано с тем, что заказной аудит кода проходит долго и стоит дорого, а расширения бизнес-приложений запускаются в работу сразу после отладки. Поскольку большинство расширений бизнес-приложений реализуются на базе интерпретируемых языков, то становится возможным запускать на исполнение не только готовые программы с собственной логикой, но даже небольшие куски кода, вплоть до одной строчки.
Это приводит к тому, что программисты расширений для бизнес-приложений получают практически неконтролируемый кредит доверия в своих компаниях. Их работу никто ровным счетом не контролирует.
Заказная разработка ПО
Стоит отдельно рассмотреть случай, когда бизнес-приложения разрабатывают специально для конкретной компании, т.е. речь идет о заказной разработке. В этом случае клиент прибегает к услугам компаний, занимающихся заказными разработками, или же самостоятельно нанимает проектную команду разработчиков.
В любом случае заказчик, которым является лицо от бизнеса, не сможет толком даже проконтролировать качество разработанного ПО, не говоря уже про чистоту исходного кода. Дополнительный же наём экспертов на эту работу существенно увеличит бюджет проекта.
В итоге получается то же самое. Клиент получает в свое распоряжение некий черный ящик с отсутствие всяческих гарантий частоты исходного кода от недокументированных возможностей.
Если разработанное на заказ ПО будет использоваться в качестве информационных систем для обработки персональных данных (ИСПДн), то в соответствие с ФЗ №152 потребуется ее сертификация с обязательным предоставлением на экспертизу исходных кодов. Но даже в этом случае отсутствие НДВ вам будет гарантироваться лишь номинально. Не говоря уже про установленные в будущем всевозможные заплатки и обновления, частота которых никем точно не будет контролироваться.
Ну
и последнее, на чем стоит остановиться
в качестве примеров, иллюстрирующих
масштаб и проникновении угрозы
программных закладок – это просто
огромное количество самых различных
бизнес-приложений, написанных полностью
или имеющих компоненты на языках
Java и С# (основной язык разработки приложений
для платформы Microsoft .NET). Особенность этих
языков состоит в том, что исходного код
программы транслируется в байт-код на
стороне пользователя при помощи JVM или
.NET Framework. Таким образом, в код программы
может быть достаточно просто добавлена
программная закладка.
Примеры использования программных закладок
С
теорией вопроса мы разобрались,
давайте теперь обратимся к практической
части и рассмотрим реальные случаи
обнаружения программных
Следует заметить, что большинство закладок изначально устанавливается программистами не для противоправных действий, а для возможности быстро и без долгих бюрократических процедур внести изменения в уже работающую программу. Однако, если имеется возможность безнаказанно и неконтролируемо поставить закладку, некоторые программисты не в состоянии избежать искушения и использовать эту возможность для собственной выгоды и во вред компании.
Всего
нами было обнаружено около 30 публичных
случаем обнаружения
В России
В
России наиболее известным случаем
использования программных
Мошенники "одалживали" акции ОАО «Татнефть», снимая их со счетов, прокручивали на ММВБ, после чего возвращали, оставляя себе прибыль. Для этого в компьютерной программе Kapital, проводящей операции с ценными бумагами, программист-инсайдер создал специальную папку. В ней был файл-модуль с функцией Take CB. Она выбирала из базы данных владельцев акций "Татнефти" физических лиц, имевших не меньше 300 акций. Затем со счета каждого из них она переводила по 100 акций на свои счета. Затем ценные бумаги перемещались на ММВБ. Доходы, полученные от операций на бирже, перечислялись на карточные счета в казанском филиале банка "Зенит". Эти счета были также зарегистрированы на подставных лиц, которые снимали с них деньги и передавали мошенникам.
Информация о работе Программные закладки в бизнес-приложениях