Программные закладки в бизнес-приложениях

Автор работы: Пользователь скрыл имя, 11 Июня 2011 в 21:31, реферат

Описание

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

Работа состоит из  1 файл

Программные закладные устройства (закладки) как способ несанкционированного доступа.docx

— 35.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С Предприятие», которая в подавляющем большинстве  случаев дорабатывается под конкретное предприятие и его бизнес-процессы. Существует множество типизированных отраслевых версий этого ПО, разрабатываемых  партнерами 1С, а также тысячи частных  программистов, имеющих свои наработки  в области конкретной отраслевой экспертизы.

    Другим  примером является интегрированная  автоматизированная система управления SAP R/3, в которой имеется проприетарный внутренний язык программирования высокого уровня ABAP/4. Этот встроенный язык реализует работу с внутренними структурами данных, интерфейсом пользователя SAP R/3 (транзакции и отчёты), работу с интерфейсами загрузки/выгрузки данных. Аналогичный по сути проприетарный внутренний язык программирования, называемый PeopleCode, используется в системах HRMS и CRM от Oracle (бывший PeopleSoft).

    Для расширения или изменения базового функционала в более массовых бизнес-приложениях также используются специальные языки программирования. Например, к ним относится язык LotusScript, используемый в IBM Lotus Software, и VBScript, используемый в таких бизнес-приложениях как Microsoft Exchange Server. С помощью них может осуществляться доступ к данным в этих приложениях, а также различные операции с ними.

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

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

    Это приводит к тому, что программисты расширений для бизнес-приложений получают практически неконтролируемый кредит доверия в своих компаниях. Их работу никто ровным счетом не контролирует.

    Заказная  разработка ПО

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

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

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

    Если  разработанное на заказ ПО будет  использоваться в качестве информационных систем для обработки персональных данных (ИСПДн), то в соответствие с ФЗ №152 потребуется ее сертификация с обязательным предоставлением на экспертизу исходных кодов. Но даже в этом случае отсутствие НДВ вам будет гарантироваться лишь номинально. Не говоря уже про установленные в будущем всевозможные заплатки и обновления, частота которых никем точно не будет контролироваться.

    Ну  и последнее, на чем стоит остановиться в качестве примеров, иллюстрирующих масштаб и проникновении угрозы программных закладок – это просто огромное количество самых различных  бизнес-приложений, написанных полностью  или имеющих компоненты на языках Java и С# (основной язык разработки приложений для платформы Microsoft .NET). Особенность этих языков состоит в том, что исходного код программы транслируется в байт-код на стороне пользователя при помощи JVM или .NET Framework. Таким образом, в код программы может быть достаточно просто добавлена программная закладка. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Примеры использования программных закладок

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

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

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

    В России

    В России наиболее известным случаем  использования программных закладок является афера программиста ОАО "Акционерный  капитал", реестродержателя акций ОАО «Татнефть», похитившего в 2005 году с помощью специально разработанного программного модуля 110 тысяч акций ОАО «Татнефть» на 5,7 млн руб и осужденного за это на пять с половиной лет (Источник).

    Мошенники "одалживали" акции ОАО «Татнефть», снимая их со счетов, прокручивали на ММВБ, после чего возвращали, оставляя себе прибыль. Для этого в компьютерной программе Kapital, проводящей операции с ценными бумагами, программист-инсайдер создал специальную папку. В ней был файл-модуль с функцией Take CB. Она выбирала из базы данных владельцев акций "Татнефти" физических лиц, имевших не меньше 300 акций. Затем со счета каждого из них она переводила по 100 акций на свои счета. Затем ценные бумаги перемещались на ММВБ. Доходы, полученные от операций на бирже, перечислялись на карточные счета в казанском филиале банка "Зенит". Эти счета были также зарегистрированы на подставных лиц, которые снимали с них деньги и передавали мошенникам.

Информация о работе Программные закладки в бизнес-приложениях