Опубликовано: 15.12.2007
В рубриках: Чего ожидать в будущем. Автор: admin

Основное преимущество исследователя перед разработчиком — неограни­ченность времени. В распоряжении разработчика есть период с момента за­пуска проекта и до момента выхода готовой программы. Этот период может длиться 2 недели, а может 3 года. Но именно за это время необходимо про­думать и реализовать все необходимые средства защиты.

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

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

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

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

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

Опубликовано: 15.12.2007
В рубриках: Чего ожидать в будущем. Автор: admin

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

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

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

Поскольку хороших универсальных решений не бывает, ограничим класс программных продуктов, для которых будет проводиться реконструкция протокола. Исследуемая программа должна удовлетворять следующим тре­бованиям:

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

О программа выполняется под одной из версий 32-битовой операционной системы Windows на процессоре х86. Это также не очень сильно сужает область возможного применения, ведь большинство персональных ком­пьютеров сейчас имеют именно такую конфигурацию. К тому же почти все эвристики могут быть адаптированы к другим операционным систе­мам и аппаратным платформам;

       исполняемый модуль, подвергаемый анализу, не запакован и не зашиф­рован. Если это не так, распаковку необходимо выполнить до того, как приступать к исследованиям;

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

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

   программа создана и распространяется с соблюдением всех законов, па­тентов и лицензий, под действие которых она попадает.

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

Инструменты можно классифицировать по-разному. Например, на пассив­ные и активные.

Пассивные инструменты не оказывают никакого воздействия ни на саму исследуемую программу, ни на ее окружение. Активные инструменты, на­оборот, взаимодействуют с программой во время ее выполнения. Из этого следует два важных замечания:

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

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

Активные инструменты, в свою очередь, могут использоваться только для протоколирования (мониторинга) хода выполнения программы или для яв­ного воздействия на ход выполнения программы: подмены данных, исправ­ления результатов проверки условий и т. д.

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

Еще один способ классификации инструментов — по области применения, т. е. что именно подвергается исследованию:

       исполняемый код;

       ресурсы приложения; дисковые файлы;

 

       записи в реестре;

       информация в оперативной памяти; информация, получаемая от устройств ввода; информация, посылаемая на устройства ввода;

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

Опубликовано: 15.12.2007
В рубриках: Интернет — кладезь информации. Автор: admin

Как правило, любая система защиты до того, как становится достаточно по­пулярной, чтобы привлечь интерес исследователей, проходит весьма длин­ный путь развития. И очевидно, что большинство продуктов при переходе к следующей версии изменяется в сторону усложнения. Ведь сначала разра­ботчики создают защиту в таком виде, в котором они считают ее работоспо­собной. Но, столкнувшись с некоторыми типами атак, которые не были предусмотрены в существующей версии, программисты включают в код но­вые элементы защиты.

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

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

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

Именно с помощью The Wayback Machine иногда удается получить инфор­мацию, которая сначала была опубликована разработчиками какой-нибудь программы, а затем удалена. Ведь Wayback Machine хранит копии 30 милли­ардов интернет-страниц, собранных с 1996 года.

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

Раньше The Wayback Machine позволяла производить поиск только по адре­сам страниц, но не по их содержимому. Зато для каждого адреса показыва­лось, когда была сохранена копия страницы и отличалась ли она от преды­дущей версии. Но сейчас в рамках Wayback Machine появился сервис Recall (находящийся пока в стадии бета-тестирования), позволяющий выполнять полноценный текстовый поиск по     миллиардам сохраненных страниц.

Опубликовано: 15.12.2007
В рубриках: Кому это нужно. Автор: admin

Когда перед аналитиком ставится задача провести исследование определен­ного программного комплекса, необходимо с чего-то начать. Разумеется, можно сразу вооружиться отладчиком и дизассемблером и попытаться вникнуть во все детали, но для современных программ такой подход мало­пригоден — уж слишком велик их объем.

Однако очень много полезной информации об исследуемой программе мо­жет быть найдено в Интернете. Главное — знать, что, где и как искать.

Опубликовано: 15.12.2007

За разработку своей защиты имеет смысл браться в трех случаях, когда:

   система защиты разрабатывается как коммерческий проект;

существующие средства защиты не способны обеспечить необходимую функциональность;

   существующие средства защиты не подходят по соображениям безопас­ности.

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

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

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

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

Опубликовано: 15.12.2007

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

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

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

торе не видно ни пароля, ни самих данных.

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

Может получиться и по-другому. Иногда человек, перед которым ставят за­дачу реализовать, например, цифровую подпись, обращается к поисковой системе Google, находит криптографическую библиотеку с подходящей ли­цензией и использует реализованный в ней механизм подписи “как есть”. С чувством хорошо выполненного долга он сдает работу и очень сильно удивляется, когда даже стойкий криптографический алгоритм не смог пре­дотвратить

Защита информации это такая область, где нельзя быть специалистом частично. Если в других отраслях возможность применения 90 % сущест­вующих технологий приводит к результату, который на 10 % хуже идеаль­ного, то в защите информации проценты не играют никакой роли. Полу­ченное решение будет или защищенным, или незащищенным.

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

Как было рассказано в предьгдущих главах, криптографии, опирающейся на методы, имеющие математическое обоснование стойкости, обычно доста­точно для обеспечения секретности, но уже не хватает для обеспечения БИУТ А еще существуют ситуации, в которых оказываются неприменимы даже методы защиты, основанные на принципе “черного ящика”. И в таких ситуациях на помощь может прийти стеганография.

Стеганография позволяет скрыть сам факт передачи сообщения. Для этого используется так называемый стеганографический контейнер, в котором пе­редаваемое сообщение размещается таким образом, чтобы его было очень трудно извлечь или разрушить.

В качестве стеганографического контейнера может выступать почти все что угодно: газетная заметка, точка в конце предложения, картинка и даже лист белой бумаги. Главное — чтобы существовал способ незаметно разместить в этом контейнере некоторый объем информации.

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

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

Опубликовано: 15.12.2007
В рубриках: Особенности реализации DRM. Автор: admin

Компанией Infraworks, занимающейся вопросами борьбы с воровством ин- теллектуальной собственности, была разработана технология    (на привязи), которую сами разработчики предпочитают называть не DRM, a DPP Digital Property Protection (защита цифровой собственности). Воз- можно, разница между DPP и DRM это всего лишь игра терминов, по- зволяющая не бояться обвинений в нарушении патентов на системы DRM. Во всяком случае, у DRM и DPP очень много общего.

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

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

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

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

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

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

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

   COM (Component Object Model, модель компонентных объектов);

   Data Сору (сообщениеWM_COPYDATA);

   DDE (Dynamic Data Exchange, динамический обмен данными);

       File Mapping (файлы, отображаемые в память); О Mailslots (почтовые ящики);

       Pipes (каналы);

       RPC (Remote Procedure Call, удаленный вызов процедур).


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

Разработчики InTether были поставлены в известность относительно най­денной уязвимости, и в последней версии программы используется понятие “trusted applications” — приложения, которым разрешено открывать защи­щенные документы.

Но, скорее всего, проблема осталась, ведь, например, Microsoft Word должен оказаться в списке “trusted applications” для DOC-файлов. Но Word позволя­ет выполнять программы, написанные на VBA (Visual Basic for Applications). А средствами VBA можно читать и записывать файлы, обращаться к СОМ-объектам, вызывать функции из динамически загружаемых библиотек и де­лать многое другое. Следовательно, с большой вероятностью отыщется и простой в реализации способ использования одного из механизмов цессного взаимодействия (Interprocess communication, 1PC).

Хорошо было бы запретить выполнение всех видов в IPC в приложении, открывшем защищенный документ, но такой метод вряд ли позволит дос­тичь желаемого результата. Ведь многие современные программы активно средства IPC, и их блокировка, скорее всего, приведет к потере работоспособности.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 

  • Наши друзья: