Главная страница
Навигация по странице:

  • Наиболее используемые биометрические атрибуты и соответствующие системы Отпечатки пальцев.

  • Радужная оболочка глаза.

  • Ввод с клавиатуры.

  • Взлом программного

  • Атаки Форматирования строк

  • Основные темы на экзамен по дисциплине "Операционные системы и среды"


    Скачать 326.86 Kb.
    НазваниеОсновные темы на экзамен по дисциплине "Операционные системы и среды"
    Дата22.06.2022
    Размер326.86 Kb.
    Формат файлаdocx
    Имя файлаTemy_na_ekzamen_OSI_1.docx
    ТипПрограмма
    #610199
    страница4 из 6
    1   2   3   4   5   6

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

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

      1. Аутентификация

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

      1. Слабые пароли

    Слабый пароль — пароль, который может быть легко угадан или подобран методом полного перебора.

      1. Одноразовые пароли

    Однора́зовый паро́ль — это пароль, действительный только для одного сеанса аутентификации. Действие одноразового пароля также может быть ограничено определённым промежутком времени.

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

      1. Аутентификация с использованием физического объекта

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

    Существует две разновидности пластиковых карт, хранящих информацию: маг­нитные карты и карты с процессором. Магнитные карты содержат около 140 байт информации, записанной на магнитной ленте, приклеенной к пластику. Эта инфор­мация может быть считана терминалом и передана на центральный компьютер. Час­то эти данные содержат пароль пользователя (например, его PIN-код), так что терминал может сам проверить подлинность пользователя без помощи головно­го компьютера. Как правило, пароль шифруется ключом, известным только банку.

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

    Однако сегодня большой объем работ в сфере безопасности проводится со смарт-картами. Большое преимущество смарт-карт перед кредитными картами состоит в том, что для использования смарт-карт не требуется соединения с банком в режиме on-line.

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

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

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

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

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

    Наиболее используемые биометрические атрибуты и соответствующие системы

    • Отпечатки пальцев. Такие сканеры имеют небольшой размер, универсальны, относительно недороги. Биологическая повторяемость отпечатка пальца составляет 10−5 %. В настоящее время пропагандируются правоохранительными органами из-за крупных ассигнований в электронные архивы отпечатков пальцев.

    • Геометрия руки. Соответствующие устройства используются, когда из-за грязи или травм трудно применять сканеры пальцев. Биологическая повторяемость геометрии руки около 2 %.

    • Радужная оболочка глаза. Данные устройства обладают наивысшей точностью. Теоретическая вероятность совпадения двух радужных оболочек составляет 1 из 1078.

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

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

    • Голос. Проверка голоса удобна для использования в телекоммуникационных приложениях. Необходимые для этого 16-разрядная звуковая плата и конденсаторный микрофон стоят менее 25 $. Вероятность ошибки составляет 2 — 5 %. Данная технология подходит для верификации по голосу по телефонным каналам связи, она более надежна по сравнению с частотным набором личного номера. Сейчас развиваются направления идентификации личности и его состояния по голосу — возбужден, болен, говорит правду, не в себе и т. д.

    • Ввод с клавиатуры. Здесь при вводе, например, пароля отслеживаются скорость и интервалы между нажатиями.

    • Подпись. Для контроля рукописной подписи используются дигитайзеры

    В то же время биометрическая аутентификация имеет ряд недостатков:

    1. Биометрический шаблон сравнивается не с результатом первоначальной обработки характеристик пользователя, а с тем, что пришло к месту сравнения. За время пути может много чего произойти.

    2. База шаблонов может быть изменена злоумышленником.

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

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

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

    6. Биометрические характеристики являются уникальными идентификаторами, но их нельзя сохранить в секрете.

      1. Взлом программного обеспечения

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

        1. Атаки, использующие переполнение буфера

        2. Атаки, использующие форматирующую строку

    Атаки Форматирования строк изменяют ход выполнения приложения, используя возможности библиотеки форматирования строк, чтобы получить доступ к другой области памяти. Дыра в безопасности возникает, когда данные, введенные пользователем, используются напрямую, как входная строка форматирования для определенных C/C++ функций (такие как, fprintf, printf, sprintf, setproctitle, syslog,…).

    Если злоумышленник передает строку форматирования, состоящую из printf символов преобразования (такие как, «%f», «%p», «%n», и т.д.), как значение параметра в веб-приложении, он может:

    • выполнить произвольный код на сервере;

    • считать значения стека;

    • стать причиной ошибки сегментации или аварийного отказа программного обеспечения.

    Пример.

    Предположим, что веб-приложение имеет некоторый параметр emailAddress, вносимый пользователем. Приложение выводит значение этой переменной, используя printf функцию:

    printf(emailAddress);

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

    Возможности использования Атаки Форматирования строк, в этом случае, могут быть следующие:

    • Прочитать данные из стека: Если выходной поток printf функции передается обратно злоумышленнику, он может прочитать значения из стека, отправляя символ преобразования «%x» (один или более раз).

    • Прочитать символьные строки из памяти процесса: Если выходной поток printf функции передается обратно злоумышленнику, он может прочитать символьные строки из произвольного места памяти, используя символ преобразования «%s» (и другие символы преобразования для того, чтобы добраться к необходимому местоположению).

    • Записать целое в определенное место памяти процесса: Используя символ преобразования «%n», злоумышленник может записать целое значение в любое место памяти (и таким образом, переписать важные программные признаки,  управляющие привилегиями доступа, переписать адреса возврата на стеке, и т.п.).

        1. Указатели на несуществующие объекты

    Третьей технологией искажения памяти является весьма популярный в преступном мире прием, называемый атакой с использованием указателей на несуществующие объекты (dangling pointer attack). В простом проявлении этой технологии разобраться совсем нетрудно, но вот создание вредоносного кода может оказаться непростой задачей. C и C++ позволяют программе распределять память под кучу, используя вызов функции malloc, при котором возвращается указатель на только что выделенную часть памяти. Позже, когда программа больше в ней не нуждается, она вызывает функцию free для освобождения памяти. Ошибка указателя на несуществующий объект происходит, когда программа случайно использует память после того, как она уже ее освободила. Рассмотрим следующий код, который дискриминирует весьма пожилых людей:

    1. int *A = (int *) malloc (128); /* выделение места под 128 целых чисел */

    2. int year of birth = read user input (); /* считывание целого числа из стандартного ввода */

    3. if (input < 1900) {

    4. printf ("Ошибка, год рождения должен быть больше 1900 \n");

    5. free (A);

    6. } else {

    7. ...

    8. /* совершение полезных действий над содержимым массива A */

    9. ...

    10. }

    11. ... /* множество других инструкций, содержащих, malloc и free */

    12. A[0] = year of birth;

    Код неверен. Не только из-за возрастной дискриминации, но также потому, что в строке 12 он может присвоить значение элементу массива A после того, как выделенная под него память уже была освобождена (в строке 5). Указатель A все еще будет вести на тот же адрес, но его дальнейшее использование уже не предполагается. Фактически память теперь уже могла быть повторно использована другим буфером (см. строку 11).

    Вопрос в следующем: что же произойдет? Код в строке 12 будет пытаться обновить содержимое памяти, которая уже больше не используется для массива A, и может изменить другую структуру данных, которая теперь находится в этой области памяти. В общем, это искажение памяти ничего хорошего не принесет, но будет еще хуже, если взломщик сможет манипулировать программой таким образом, чтобы она поместила в эту память конкретный объект кучи, где первое целочисленное значение этого объекта содержит, скажем, уровень авторизации пользователя. Это не всегда просто сделать, но есть технологии (известные как фэншуй кучи — heap feng shui), помогающие взломщикам вытаскивать такие значения. Фэншуй является древнекитайским искусством ориентации зданий, гробниц и памяти в куче благоприятным образом. Если мастер цифрового фэншуя преуспеет в своей работе, то после этого он сможет установить для уровня авторизации любое значение (впрочем, не более чем 1900).

        1. Атаки, использующие разыменование нулевого указателя

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

    Обычно такое размещение не вызывает никаких проблем. Ситуация меняется, когда взломщик получает возможность заставить ядро вызывать функции в пользовательском пространстве. Зачем ядру это делать? Понятно, что оно этого делать не должно. Но помните, мы говорили о дефектах? Ядро с дефектом может в редких и неудачных обстоятельствах случайно разыменовать нулевой указатель (NULL pointer). Например, оно может вызвать функцию, использующую указатель функции, который еще не был инициализирован. В последние годы в ядре Linux было обнаружено несколько таких дефектов. Разыменование нулевого указателя — дело грязное, поскольку обычно приводит к аварии. Результаты печальны для пользовательского процесса, поскольку программа терпит крах, но еще хуже они для ядра, поскольку при этом рушится вся система.

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

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

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

        1. Атаки, использующие переполнение целочисленных значений

    Компьютеры осуществляют целочисленные арифметические вычисления с числами фиксированной длины, составляющей обычно 8, 16, 32 или 64 разряда. Если сумма двух складываемых или перемножаемых чисел превышает максимальное отображаемое целое число, происходит переполнение. Программы на языке C не отлавливают эту ошибку, они просто сохраняют и используют неправильное значение. В частности, если переменные являются целыми числами со знаком, то результат сложения или перемножения двух положительных целых чисел может быть сохранен в виде отрицательного целого числа. Если переменные не имеют знака, результат будет положительным числом, но высшие разряды могут перейти в низшие. Рассмотрим, например, две беззнаковые 16-разрядные целочисленные переменные, каждая из которых содержит значение 40 000. Если они перемножаются, а результат сохраняется в другой беззнаковой 16-разрядной целочисленной переменной, то видимым произведением будет 4096. Разумеется, результат неверен, но этот факт не обнаруживается.

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

        1. Атаки, использующие внедрение команд
    1   2   3   4   5   6


    написать администратору сайта