«Огромный дядька взмахивает кувалдой, шаг за шагом приводя винчестер в крайне неузнаваемое состояние.»
"Что это за ерунда?" – спросят многие из читателей. "Это всего лишь факт", – ответим мы вам. Наиболее эффективным способом уничтожения данных (а точнее, носителей с данными) и по сей день остается "комиссия по уничтожению данных".
В общем, вопрос уничтожения информации стоит особенно остро. Думаю, не стоит вдаваться в подробности, зачем и при каких обстоятельствах бывает необходимо уничтожить данные, так чтобы до них не смог добраться тот, кому эти данные не предназначены. Согласно мировой практике, для безвозвратного уничтожения данных носитель информации подвергается многократной перезаписи нулями или единицами в каждый байт сектора согласно стандартам по уничтожению данных. Более продвинутые техники уничтожения данных предусматривают использование специализированных аппаратных комплексов, "убивающих" данные воздействием мощного электромагнитного излучения на рабочую поверхность носителя (имеются в виду магнитные носители). В домашних условиях, в случаях критической необходимости, таким аппаратным комплексом может стать обычная микроволновая печь, однако использование прибора не по назначению может привести к трагическим последствиям.
Не секрет, что когда мы что-либо удаляем с диска, то удаляется не сам файл, а только его заголовок в таблице FAT (File Allocation Table – таблица размещения файлов) или MFT (Master File Table – для NTFS). Даже файлы, удаленные из корзины, несложно восстановить. И даже в том случае, если вы случайно отформатировали диск, это вовсе не повод расстраиваться– существует целый вагон и маленькаяте-лежка программ, призванных восстановить утраченные данные даже после команды format. Рассмотрим некоторые из программ подобного рода.
EasyRecovery
Продукты семейства EasyRecovery (рис. 7.7) представляют собой целый комплекс программ для восстановления утраченных данных и поврежденных файлов, а также диагностики жестких дисков. С помощью данного пакета возможно восстановление данных после:
♦ случайного удаления;
♦ атаки вирусов;
♦ повреждения из-за отключения или резких колебаний напряжения в электросети;
♦ ошибок в программе;
♦ проблем при создании разделов или загрузке;
♦ неправильного выключения компьютера;
♦ повреждения структуры файловой системы;
♦ форматирования носителя данных или применения на нем программы FDISK.
Рис. 7.7. Так выглядит окно EasyRecovery
Пакет включает в себя такие продукты, как базовый инструментарий EasyRecovery DataRecovery (восстанавливает недоступные, поврежденные или удаленные файлы с разделов FAT и NTFS, с жестких дисков IDE/ATA/EIDE, SCSI, дискет, ZIP и JAZ, а также с других носителей. В модуль также включена возможность восстановления документов Microsoft Word и ZIP-архивов), утилиту для восстановления локальных ящиков электронной почты EasyRecovery EmailRepair (восстанавливает поврежденные файлы почтовых программ Microsoft Outlook и Outlook Express, которые доступны, но не открываются. Пакет дает возможность вернуть удаленные электронные письма из файлов Microsoft Outlook и Outlook Express, а также восстановить поврежденные файлы Microsoft Outlook Express (DBX) и Microsoft Outlook (PST & OST), в том числе файлы Outlook, превышающие порог 2 Гбайт), инструмент EasyRecovery FileRepair (восстанавливает поврежденные документы, созданные при помощи Microsoft Office) и EasyRecovery Professional, в состав которого входит уникальный диагностический инструмент Ontrack Data Advisor, а также расширенные инструменты для восстановления утраченных данных на жестком диске. С помощью EasyRecovery Professional возможно восстановление на диске более 225 файлов различных типов, включая музыкальные MIDI-файлы, файлы звукозаписи, фильмы и многое другое. В том случае если Windows обычными способами загрузить не удается, пользователи получают возможность сделать это с предварительно созданной загрузочной дискеты.
Программа хорошо показала себя в полевых условиях и не раз выручала в критических ситуациях типа "мы уже все отформатировали".
FinalRecovery
Это хорошо зарекомендовавшая себя утилита для спасения данных. Поддерживает файловые системы FAT12, FAT16, FAT32 и NTFS, восстанавливает информацию на жестких и флоппи-дисках, которая была удалена из корзины, из командной строки и т. д. Интерфейс прост и интуитивно понятен. В отличие от EasyRecovery, эта программа не столь тяжеловесна (1,22 Мбайт), что имеет свои преимущества.
Dead Disk Doctor
Программа предназначена для полного или частичного восстановления файлов с частично нечитаемых дисков, дискет или других носителей. Она читает файл блоками по 10 Кбайт, и огда устройство (CD-ROM, например) выдает ошибку, размер блока уменьшается в 10 раз, попытка повторяется, и так до тех пор, пока блок данных не будет прочитан без ошибок. Если размер блока достигает минимума, программа пропускает один байт и начинает чтение со следующего. После удачного прочтения размер блока увеличивается в 10 раз и т. д., пока не достигнет максимума – 10 Кбайт.
«Кремация…»
Как вы уже поняли из первой части раздела, обычное удаление не гарантирует удаление в прямом смысле этого слова – стирается не сам файл, а соответствующая ему запись в таблице разделов. И даже если вы отформатировали диск – его также легко восстановить.
Для полного и безвозвратного уничтожения данных используются специальные утилиты – шредеры (от англ. shredder). Смысл их работы заключается в многократной перезаписи стираемых файлов, что гарантирует невозможность их дальнейшего восстановления. Рассмотрим некоторые из таких утилит.
Eraser. Популярнейшая программа для безвозвратного удаления файлов, директорий и чистки следов в свободной области диска методом перезаписи. Имеет несколько стандартных режимов работы (включая стандарты DoD и Гутмана) и позволяет создавать свои режимы с произвольным количеством проходов при перезаписи. Для уничтожения данных Acronis Proof Eraser использует известные национальные стандарты уничтожения информации на жестких дисках (например, Российский стандарт ГОСТ P50739-95), а также алгоритмы, разработанные авторитетными специалистами по защите информации, многократно превосходящие национальные стандарты. Программа примечательна наличием планировщика, благодаря которому процесс очистки диска полностью автоматизирован, а также freeware-распространением.
RedBut. Программа представляет собой комплексное решение для защиты информации от утечки, доступа посторонних, реализует своевременное удаление или шифрование конфиденциальной информации в экстренных случаях, заметая следы активности операционной системы и пользователя.
С помощью RedBut можно удалять указанные файлы и папки без возможности восстановления, а также зашифровывать их современными стойкими криптоалгоритмами. RedBut позволяет очистить множество следов активности системы: файлы журнала приложений Windows, данные в буфере обмена, списки недавно использованных документов, списки часто используемых программ, временные файлы приложений, удаленные файлы в Корзине, а также следы сетевой активности пользователя.
В заключение хочется привести краткое описание программы Clean Disc Security (рис. 7.8).
Приложение позволяет уничтожить данные одним из четырех вариантов.
♦ Простой вариант (перезапись случайными данными до шести проходов). Может быть полезен для домашнего использования.
♦ Вариант NIS, согласно правилам "National Industrial Security Program Operating Manual", подразумевает использование более продвинутых техник для уничтожения данных, в частности: место на диске с данными перезаписывается семью подходами, каждый из которых включает следующие операции – см. рис. 7.8.
Рис. 7.8. Окно утилиты Clean Disc Security
♦ Gutmann method – уничтожение данных методом Гутмана согласно руководству "Secure Deletion of Data from Magnetic and Solid-State Memory". Gutmann method – наиболее надежный способ уничтожения данных, применяемый, если высока вероятность использования точной аппаратуры для восстановления данных.
Как и другие программы аналогичного класса, помимо профессионального уничтожения данных, программа позволяет очистить множество следов активности системы. Скачать приложение можно по адресу http://www.diskcLeaners.com/.
Глава 8Защищенные системы – какие они?
♦ UNIX-среда
♦ Безопасность Windows Vista – взлом адекватен защите!
Как бы нам ни хотелось верить в то, что идеально защищенные системы существуют, приходится констатировать лишь то, что к защищенным системам можно только приблизиться. Можно, еще как можно.
В этой главе вы узнаете:
♦ в чем принципиальное отличие UNIX-подобных систем от систем линейки Windows в контексте обеспечения безопасности;
♦ какие из ныне существующих техник могут быть с успехом использованы для создания безопасной среды выполнения кода;
♦ насколько безопасна операционная система Windows Vista и существуют ли способы обхода новой хваленой защиты.
8.1. UNIX-среда
UNIX прост. Но надо быть гением, чтобы понять его простоту.
Краткая предыстория
Первоначально операционная система UNIX была разработана в конце 1960-х годов сотрудниками компании Bell Labs, в первую очередь Кеном Томпсоном (Kenneth Thompson), Денисом Ритчи (Dennis MacAlistair Ritchie) и Дугласом МакИлроем (Douglas McIlroy) (рис. 8.1). Уже к 1978 году система была установлена более чем на 600 персональных компьютерах, прежде всего в исследовательских институтах.
Рис. 8.1. Кен Томпсон и Денис Ритчи – создатели UNIX
В начале 1980-х годов компания AT&T, которой принадлежала Bell Labs, осознала всю ценность операционной системы UNIX, начав тем самым разработку ее коммерческой версии. Впоследствии многие компании, лицензировав UNIX-код у AT&T, успешно разработали собственные коммерческие разновидности UNIX, такие как HP-UX, AIX, Solaris, IRIX. В 1991 году Линус Товальдс (Linus Benedict Torvalds) опубликовал ядро Linux. Дистрибутивы этой системы (в частности, Red Hat и Debian), включающие ядро, утилиты GNU и дополнительное программное обеспечение, стали бешено популярны как среди любителей, так и среди профессионалов.
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых надежных и производительных серверных систем. Достаточно лишь посмотреть статистику использования операционной системы на серверах. Комментарии, как говорят, излишни.
ПРИМЕЧАНИЕ
К слову будет сказано, предположение о том, что UNIX-подобную систему трудно встретить на настольном ПК, в корне неверно. Когда фирма Apple искала основу для своей новой операционной системы, она выбрала NEXTSTEP. Данная система относится к UNIX-семейству BSD и основана на ядре Mach. Применение модификации BSD UNIX в Mac OS X делает его одной из наиболее широко используемых версий UNIX.
«Невозможно написать абсолютно качественный код», – это скажет вам любой хороший программист, особенно если речь идет о миллионах строчек программного кода. Представьте себе следующую ситуацию. Код № 1 писала одна группа программистов, код № 2 – другая. В обоих случаях над его созданием работали профессионалы, хорошо знающие свое дело. Однако первый код был на виду и дорабатывался совместными усилиями тысяч светлых голов, постоянно оттачивался и совершенствовался. Второй код был закрыт, и только лишь горстке избранных разработчиков были доступны его тексты… Конечно, в каждом из двух описанных вариантов есть свои плюсы и минусы, однако перейдем ближе к делу.
Основное концептуальное отличие UNIX от Windows – это, конечно же, открытый код. Абсолютное большинство UNIX-систем, включая популярные Linux-клоны, выпускаются по GNU General Public License, которая позволяет любому желающему копировать, изменять и распространять исходный код. Открытый код постоянно дорабатывается и совершенствуется, именно поэтому в UNIX-системах так мало уязвимостей. Этот открытый код (на то он и открытый), ко всему прочему, бесплатен.
Исходный же код Windows закрыт, именно поэтому подобный подход к безопасности часто называют "безопасность в тумане" (security through obscurity).
Из характерных особенностей организации безопасности UNIX-систем хотелось бы отметить и следующие:
♦ глубоко продуманная технология разделения прав доступа к ресурсам;
♦ каждый из процессов выполняется строго в своем адресном пространстве (Windows этим похвастаться не может);
♦ встроенные в ядро тонко конфигурируемые инструменты безопасности (к примеру, IP-Firewall (IPFW) FreeBSD);
ПРИМЕЧАНИЕ
В большинстве UNIX-подобных систем можно задействовать не один, а три (чаще всего) различных межсетевых экрана; зачем это нужно и какой выигрыш от этого можно получить – ответ, в общем, очевидный.
♦ наличие таких инструментов безопасности, как chroot (более подробно см. далее) и Jail (в BSD-системах), позволяет создать систему, устойчивую даже в случае успешной попытки взлома.
Если кому-то из читателей данный список покажется полным, смеем заверить – перечисленное является лишь верхушкой айсберга безопасности UNIX-систем.
Почему UNIX-системы так любят хакеры? Наверное, потому что UNIX – это свобода действий и прозрачность кода. Как узнать, что выполняет привычная для нас программа в Windows-среде? Интуитивно понятное пространное окно с множеством кнопок – нажимай какую хочешь, просто, как робот, бери и нажимай.
В UNIX все совсем наоборот. Не тебя контролируют, а ты. Свобода! Взял исходный код программы, подправил, как тебе надо, скомпилировал – и вот она, программа, живая и светится (рис. 8.2).
Безопасность UNIX-систем оттачивалась не одним поколением программистов. В контексте данной главы следует упомянуть о таких техниках повышения безопасности, как chroot и Jail (для BSD-систем).
Рис. 8.2. Любимый nmap…
Концепция изоляции – вариант безопасного выполнения кода
Под chroot в UNIX-подобных операционных системах подразумевается техника, позволяющая создать изолированную среду – имитацию корневого каталога файловой системы. Запущенная в такой среде любая программа будет воспринимать только указанный рабочий каталог – и «ни шагу влево». chroot затрагивает только текущий процесс и всех его потомков. Программа в такой изолированной среде не может обращаться к файлам вне этого каталога, что обеспечивает надежный способ защиты в случае компрометации программы в chroot.
К слову будет сказано, chroot-каталог может быть использован, чтобы сымитировать реальную систему с запущенными сетевыми сервисами. Такой искусственно созданный механизм безопасности может быть использован как "наживка" для взломщиков, или honeypot.
Jail, или «тюрьма», – механизм изолирования выполнения процессов в операционных системах UNIX. Системный вызов jail заключает процесс и всех его потомков в изолированную среду выполнения. Процесс, выполняющийся в jail, не имеет возможности получить доступ к тому, что не принадлежит jail. Более того, даже суперпользователь – root – не в состоянии выполнить большинство операций, которые он может выполнять снаружи от jail.
Если chroot и Jail – это инструменты безопасности, обсуждаемые в контексте UNIX-систем, то о следующем инструменте безопасности так сказать нельзя.
Виртуальная машина (от англ. virtual machine) представляет собой программную или аппаратную среду, исполняющую некоторый код. Фактически, как это и следует из названия, виртуальная машина эмулирует работу реального компьютера. Виртуальная машина, как и реальная, может иметь свою операционную систему (и даже несколько), обслуживаемую искусственно эмулированным «железом»: BIOS, ОЗУ, жесткий диск (часть места на жестком диске реального компьютера).
В контексте обеспечения безопасности применение виртуальных машин оправдано там, где высока вероятность поражения вредоносным кодом или нельзя допустить выхода из строя основной системы. Установив несколько виртуальных машин на одну реальную, можно легко и просто сымитировать локальную сеть.
В качестве примеров наиболее популярных виртуальных машин можно привести VMWare, Xen (для UNIX-подобных систем), Microsoft Virtual PC.
Live-CD представляет собой загрузочный диск, на котором имеется все необходимое для развертывания виртуальной операционной системы прямо в памяти компьютера. Live-CD может оказаться особенно полезным, когда необходимо получить доступ к файловой системе, поврежденной или инфицированной вирусом. Применение Live-CD также оправдано в нестандартных вариантах работы пользователя (например, на чужом компьютере или на компьютере без винчестера и т. д.). Примеры LiveCD – Windows LiveCD, Linux Knoppix LiveCD.
Вовсе не надо быть гением, чтобы проследить закономерность – логическую связь между вышеперечисленными техниками безопасности: в каждом из случаев выполнение кода идет в изолированной среде, не затрагивая при этом рабочую зону основной системы.