Расширения базового функционала

Модели воздействия программных закладок на компьюторы

1. Модель «перехват»: Внедряется в ПЗУ, системное или прикладное программное обеспечение и сохраняет всю или выбранную информацию, вводимую с внешних устройств в систему или выводимую на эти устройства в скрытую области памяти локальной или удаленной информационной системы.

Данная модель может быть двухступенчатой:

· на первом этапе сохраняются только имена и начала файла;

· на втором этапе накопленные данные анализируются злоумышленником, и выбирается нужная информация для принятия решения о конкретных объектах дальнейшей атаки.

Данная модель может быть эффективно использована, например, при атаке на защищенную WinNT . После старта WinNT, на экране появляется приглашение – нажать Ctrl+Alt+Delete. После их нажатия загружается динамическая библиотека MSGINA.DLL, осуществляющая прием паролей и выполнение процедуры аутентификации. Если злоумышленник заменяет библиотеку MSGINA.DLL на нужную ему библиотеку (для этого необходимо просто добавить специальную строку в реестр ОС WinNT и указать местоположение свой библиотеки), то модифицируется ввод и проверка пароля, т.е. подсистема контроля за доступом.

2. Модель «искажение».Программные закладки изменяют информацию, которая записывается в память системы, либо подавляет (инициирует) возникновение ошибочных ситуаций в ИС.

Можно выделить статическое и динамическое искажение

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

Специалисты ФАПСИ выявили ПЗ: злоумышленник изменил в исполняемом .exe модуле проверки ЭЦП. строку «Подпись не корректна» на строку «Подпись корректна». В результате перестали фиксироваться документы с неверной ЭЦП, а, следовательно, стало возможно вносить любые изменения в электронные документы уже после того, как их подписания ЭЦП.

Динамическое искажение заключается в изменении каких-либо параметров системы или прикладных процессов при помощи заранее активированных закладок.

Динамическое искажение можно условно разделить на: искажение на входе, когда на обработку попадает уже искаженная информация; искажение на выходе, когда искажается информация, отображаемая для восприятия человеком, или предназначенная для работы других программ.

Практика показала, что именно программы реализации ЭЦП особенно подвержены влиянию ПЗ типа «динамическое искажение». Существует 4 способа воздействия ПЗ на ЭЦП:

1.Искажение входной информации – ПЗ изменяет поступивший на подпись документ.

2.Искажение результата проверки истинности ЭЦП (вне зависимости от результатов проверки цифровую подпись объявляют истинной).

3.Навязывание длины электронного документа – программе ЭЦП предъявляется документ меньшей длины, чем на самом деле, и в результате подпись ставится только под частью исходного документа.

4.Искажение самого алгоритма цифровой подписи.

В рамках модели «искажение» реализуются такие ПЗ, действия которых основано на инициировании или подавлении сигнала о возникновении ошибочных ситуаций в ИС, тех которые приводят к отличному от нормального завершению исполняемой программы.

Например, для инициирования статической ошибки на устройствах хранения информации создается область, при обращении к которой (запись, чтение, форматирование) возникает ошибка, что может затруднить или блокировать некоторые нежелательные для злоумышленника действия системы или прикладных программ (например, не позволяет осуществить корректно уничтожение конфиденциальной информации на жестком диске.

При инициировании динамической ошибки для некоторой операции генерируется сообщение о ложной ошибке, например «Модем занят». Или при прочтении одного блока длиной 512 байт может установиться соответствующий флажок для того, чтобы не допустить прочтения второго и последующего блоков и в итоге подделать подпись под документом. Разновидностью программной закладки модели «искажение» являются программы, которые получили название«троянский конь» (ТК) или «троянец».

Троянец является частью другой программы с известными пользователю функциями, которая способна в тайне от него выполнять некоторые дополнительные действия с целью причинения ему определенного ущерба.

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

Троянской можно считать любую программу, которая в тайне от пользователя выполняет некоторые нежелательные для него действия: определение регистрационных номеров программного обеспечения, установленного на компьютере; досоставления списка каталогов на жестком диске и т.д. А сама троянская программа может маскироваться под текстовый редактор, сетевую утилиту или любую другую, которую пользователь пожелает установить на своем компьютере.

Троянские программы пишут программисты с целью получения доступа к конфиденциальным данным (пароли, счета и т.д) и приведения в нерабочее состояние компьютерной системы.

Примеры троянцев: Программа PC Cyborg предлагала предоставить информацию о борьбе со СПИДом, а проникнув на компьютер, отсчитывала 90 перезагрузок, а затем прятала все каталоги и шифровала файлы. Программа AOLGOLD рассылалась по e-mail в заархивированном виде с сопроводительным письмом, в котором говорилось, что ее предоставляет компания America On line (AOL – крупнейший Итернет-провайдер) для повышения качества предоставляемых услуг. В архиве был файл Install.bat, пользователь, запустивший этот файл стирал все файлы из с:\ , с:\ windows.

Такие программы пишут, как правило, подростки, одержимые страстью к разрушительству.

Есть троянские программы, написанные профессионалами, они не разрушают, а собирают информацию. Обнаруживаются они, как правило, случайно. Такие программы продаются, распространяются через Интернет. Именно через Интернет, попала троянская программа, которая обосновалась в утилите fping. При первом же запуске модифицированной утилиты в файл /etc/passwd добавлялась запись для пользователя с именем suser, который мог войти в систему и получить там права администратора.

Троянские программы можно отыскать где угодно, однако самыми подозрительными на предмет присутствия троянцев являются бесплатные или условно бесплатные программы, скачанные через Интернет или купленные на пиратских дисках.

3. Модель «уборка мусора».Работа с конфиденциальными электронными документами обычно сводится к последовательности следующих манипуляций с файлами: создание, хранение, коррекция, уничтожение. Для защиты конфиденциальной информации обычно применяется шифрование. Основная угроза исходит не от использования нестойких алгоритмов шифрования и плохих криптографических ключей, а от обыкновенных текстовых редакторов и БД, применяемых для коррекции конфиденциальных документов. Важно помнить, что при записи отредактированной информации меньшего размера в тот же файл, где хранилась исходная информация, образуются так называемые «хвостовые» кластеры, которые не подвергаются воздействию программ шифрования, но и остаются незатронутыми даже средствами гарантированного стирания и удаления.

Распространенные средства гарантированного стирания файла предварительно записывают на его место константы или случайные числа и только после этого удаляют файл стандартными методами. Однако даже такие средства оказываются бессильными против программных закладок, которые нацелены на то, чтобы увеличить количество остающихся в виде «мусора» фрагментов конфиденциальной информации. Из хвостовых кластеров можно извлечь до 80% информации, а через 10 суток – 25-40%

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

 

4. Модель «наблюдение».ПЗ встраивается в сетевое или телекоммуникационное программное обеспечение. Такое программное обеспечение всегда находится в постоянной активности, внедренная в него ПЗ можно следить за всеми процессами обработки информации и осуществлять установку или удаление других программных закладок.

.

5. Модель «компрометация». Модель типа «компрометация» позволяет получать доступ к информации, перехваченной другими ПЗ. Например, инициируется постоянное обращение к такой информации, приводящее к росту соотношения сигнал/шум . А это облегчает перехват побочных излучений данной компьютерной системы и позволяет эффективно выделять сигналы, сгенерированные закладкой из общего фона излучений, исходящих от оборудования.

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

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

Если за качество стандартных программ и бизнес-приложений своим именем отвечает производитель и при массовом использовании есть некий общественный контроль. Кроме того, многие популярные программы проходят сертификацию ФСТЭК и ФСБ РФ на отсутствие незадекларированных возможностей, что, хочется верить, также является дополнительным контролем их чистоты.

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

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

Можно выделить следующие модели действий программных закладок:

1. перехват данных:

a. перехват вывода информации на экран;

b. перехват ввода с клавиатуры;

c. перехват и обработка файловых операций;

d. копирование и пересылка конфиденциальной пользовательской информации.

2. искажение данных:

a. неадекватная реакция на команды пользователя;

b. искажение передаваемой по сети информации;

c. блокирование принимаемой или передаваемой по сети информации;

d. изменение функционала самой программы.

3. уничтожение данных:

a. уничтожение конфиденциальной пользовательской информации;

b. инициирование программных и аппаратных сбоев.

4. получение несанкционированного доступа к данным:

a. получение управления некоторой функцией в обход системы авторизации;

b. получение доступа к данным и функциям извне разрешенного периметра.

 

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

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

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

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

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

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