Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Обзор моделей распространения программного обеспечения.




Модели распространения:

1) бесплатные программы или Freeware

2) почти бесплатные программы (cardware, mailware, donationware)

3) программы, показывающие рекламы (adware)

4) коммерческие программы

5) почти работоспособные программы (Demoware Trialware, Nagware)

6) условно-бесплатные программы (Shareware)

29. Атака типа «Переполнение буфера».

5.3 методы противодействия атакам

Основные причины, по которым создаются уязвимые приложения:

1) при проектировании приложения не учитывается, что они могут подвергнуться атакам

2) большинство разработчиков не обучено написанию защищенного кода

3) разработчики – люди, а людям свойственно ошибаться

6.3.1 переполнение буфера

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

Один из наиболее распространенных типов переполнения буфера является – переполнение стека.

Пример:

С:\еуые Hello

Main (int arg c, char * argv[])

{

Sub(argv[1]);

}

Void sub(const char * input) {

Char buf[10];

Buf input address retun     Стек  
Strcpy(buf,input);}

 
 

 

 


Хакер: с:\tast Hello-aaaaaaaa0066ACB1

 
 

 

 


Другими распространенными типами переполнения буфера являются:

1) переполнение динамической кучи

2) ошибки индексации массива

3) ошибки в строках форматирования

4) несовпадение размеров буфера при использовании кодировок юникод и ANSI.

Способ борьбы с переполнением буфера является выполнение след рекомендаций по написанию кода:

1) функция должна всегда завершаться корректно, даже если она получит данные, которые она не ожидала получить

2) строки должны обрабатываться безопасно: нужно проверять на NULL строку источник и строку приемки; строка источник должна заканчиваться символом NULL; длина строки источника не должна превышать длину буфера, выделенного под строку приемки

30. Атака типа «SQL-инъекция».

6.3.2 sql инъекция

Атаки этого типа подразумевают вставку sql команды в качестве значения параметра запроса к БД, в результате чего изменяется логика корректного sql выражения.

Пример:

String sql=”select * from client where name=’ ”+name+ “ ‘ “

String sql=”select * from client where name=’Blake’

“Blake’ or 1=1 --

Тогда

String sql=”select * from client where name=’Blake’ or 1=1 --‘

 

“Blake’ drop table client --“

String sql=”select * from client where name=’Blake’ drop table client --‘

 

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

 

Меры противодействия для безопасной работы с БД.

Включение в ковычки.

Blake’’…

String sql=”select * from client where name=’+name+’ or age=”+age;

name=’Blake” or 1=1--‘ or age=35;

“35 shutdown” (подставиться вместо age)

Char(0x27)

 

Средства номер 2: Хранимые процедуры

String sql=”exec spGetName ‘ “ +name+…

Blake ‘ or 1= --

Exec spGetName ‘Blako’ or 1=1 (не выполниться)

Blake’ drop table client (выполниться)

Пример хранимых процедур:

Create procedure spMyProc @ input varchar(128)

as exec(@input)

 

Средства которые дают защиту:

1) никакие подключения к СУБД под учетной записью админа, использование учетной записи админа-нарушение (позволяет запускать программу ОС xp_cmdshell); для безопасных подключений к БД необходимо создавать специальную учетную запись к БД, имеющую лишь е привилегии на чтении, запись и обновление соответствующих данных, которые необходимы для работы приложений; можно использовать встроенный в ОС механизм авторизации и аутентификации

2) построение параметризованных sql выражений: переложить проверку данных на СУБД

select count (*) from client

where name=? and pwd=?

3) Создание безопасных хранимых процедур: использование хранимых процедур дает след преимущества: возможность ограничении пользовательских привилегий так, чтобы пользователи могли запускать только хранимые процедуры; возможность дополнительной проверки данных; использание параметров при вызове хранимой процедуры снижает риск успешного проведение атаки со вставкой sql кода; в случае когда код приложения попадает злоумышл, с помощью процедур можно скрыть часть логики приложении и структуру БД.





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 1051 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Стремитесь не к успеху, а к ценностям, которые он дает © Альберт Эйнштейн
==> читать все изречения...

2206 - | 2159 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.