Проверка входных данных как метод противодействия атакам на приложения.

Правила:

1) все входные данные зловредны, пока не доказано обратное

2) проверку корректности данных следует выполнять при каждом пересечении имени границы между ненадежной и доверенной среды

Границы доверенного кода:

Рис.1

3) при проверки входных данных следует пропускать только корректные данные, все остальное отбрасывать

if (str1==str2)

Регулярные выражение – набор символов, которые можно сравнить со строкой, чтобы определить удовлетворяет ли формат строки определенным требованиям.

Пример на шарп:

If (Regex.IsMMatch(“^\d {5}$”, str))

// ^ - начало строки, срока повторяется 5 раз, а потом конец строк

//good

Else

// bad

Пример: 12345 – удовлетворяет, а 1234 – нет, так как не пять символов

36. Влияние сообщений об ошибках на защищённость программы.

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

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/event log/Application/My Application

Using namespace System.Diagnostics;

….

EventLogEntryType type=EventLogEntryType.Error;

EventLog myLog=new EventLog(“Application”);

myLog.Source = “My Application”;

….

myLog.WriteEntry(“Exception:”+Message,type,eventide,category”);

37. Атака типа «Отказ в обслуживании».

6.3.9 DoS атаки (Denial of Service)

Наиболее часто встречающиеся dos атаки:

1) атаки, вызывающие крах приложения или ОС

2) атаки, вызывающие перегрузку процесса. Цель: заставить приложение зависнуть

3) атаки, вызывающие нехватку памяти

4) атаки, вызывающие нехватку ресурсов

38. Способы защиты программного обеспечения: Регистрационные коды.

5.4 способы защиты ПО от несанкционированного тиражирования

5.4.1 регистрационные коды

#define

#ifdef

#ifndef

#else

#endif

#define FULLVERSION

#ifdef FULLVERSION

/* код полной версии*/

#else

/* код демо-версии*/

#endif

Все методы проверки правильности кодов можно условно разделить на три категории:

1) алгоритмические, основанные на принципе черного ящика

2) алгоритмический, основанный на математически сложной задачи. Не нуждаются в сокрытии реализации

3) табличный метод – генерируется коды и оформляются в виде таблицы. Недостаток: таблица занимает много место

39. Способы защиты программного обеспечения: Привязка к носителям информации.

5.4.2 привязка к носителям inf

Программа не может работать без имеющегося оригинального диска.

1) Защищаемая программа проверяет:

Проверка входных данных как метод противодействия атакам на приложения. - student2.ru метку диска

Проверка входных данных как метод противодействия атакам на приложения. - student2.ru серийный номер

Проверка входных данных как метод противодействия атакам на приложения. - student2.ru

2) Незначительных изменений параметров диска на него можно записать больше данных, чем при обычной записи

3) При записи оригинального диска отклониться от стандартной записи на диск

4) Внесение нарушений в область данных диска, которые приводят к ошибкам чтения

40. Способы защиты программного обеспечения: Аппаратные ключи.

5.4.3 аппаратные ключи

классификация аппаратных ключей:

1) с памятью: имеют определенное число ячеек, с которых можно считывать и записывать

2) с неизвестным алгоритмам: на ней основывается секретность. Недостаток: Сущ, возможность табличного эмулятора

3) с известным алгоритмом

4) с программируемым алгоритмом

41. Способы защиты программного обеспечения: Протекторы.

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

Недостатки использования протекторов:

1) вызывают дополнительный расход памяти и замедляют работу программ.

2) Защищаемая программа может работать нестабильно

5.5 избыточная защита приложений

последствия применения избыточной защиты:

1) неудобство для пользователей (пример, слишком длинные регистрационные коды…)

2) снижение производительности. Вызвано дополнительными проверками

3) сбой в системе защиты

Наши рекомендации