Анализ защищённости приложений

Лабораторная работа по предмету «Информатика»
Информация о работе
  • Тема: Анализ защищённости приложений
  • Количество скачиваний: 5
  • Тип: Лабораторная работа
  • Предмет: Информатика
  • Количество страниц: 8
  • Язык работы: Русский язык
  • Дата загрузки: 2015-02-25 01:48:23
  • Размер файла: 356.47 кб
Помогла работа? Поделись ссылкой
Информация о документе

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

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

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

Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет информатики и радиоэлектроники»
Кафедра интеллектуальных информационных технологий



«Проектирование защищенных систем»
Лабораторная работа № 3
«Анализ защищённости приложений»





Выполнил: Студент гр. 021702
ТелевичР.А.


Проверил: Шалев Е.Г.





МИНСК
2014
1 ЗАДАНИЕ
- Разработать приложение, которое позволяет: добавить пользователя в систему; авторизовать пользователя на основе идентификационных данных; создать, редактировать, удалить, осуществить поиск конфиденциальных данных; создать, редактировать, удалить, осуществить поиск неконфиденциальных данных, деавторизовать авторизованного пользователя.
- Выполнить анализ разработанного приложения с точки зрения: политики безопасности операционной системы; политики безопасности компонентов приложения и их взаимодействия между собой; сетевой политики безопасности; безопасности конфиденциальности данных.
- Оформить отчёт о проделанной работе. 
2 РЕЗУЛЬТАТЫ
Для выполнения лабораторной работы было разработано приложение asp.netmvc.
В приложении реализована регистрация и авторизация пользователей, возможность добавлять комментарии, а также изменять конфиденциальную информацию пользователя.
Проанализировав работу приложения, были выявлены некоторые плюсы, а также уязвимости данного приложения с точки зрения безопасности системы.
Плюсы:
- каждому пользователю выдается своя роль, относительно которой ему доступны или недоступны действия, связанные с изменением конфиденциальной информацией пользователя.
- Ограничение доступа с AuthorizeAttribute
ASP.NET MVC поставляется с атрибутом фильтрацииAuthorizeAttribute, который предоставляет простой и качественный способ для создания правил авторизации. Когда этот атрибут используется в сочетании со схемой аутентификации, он может обеспечивать подтверждение того, что только определенные пользователи имеют доступ к конкретным действиям контроллера.
Простейшее применение AuthorizeAttribute требует только аутентификации текущего пользователя:
[Authorize]
publicActionResult About()
{
return View();
}
Не аутентифицированным пользователям будет запрещен доступ к этому действию, но любому аутентифицированному пользователю доступ будет разрешен.
Чтобы ограничить действие далее, мы можем указать пользователей или роли, которые требуетAuthorizeAttribute. Эти пользователи или роли передаются в атрибут в виде списка строк, разделенных запятыми и содержащих имена пользователей или ролей с правами доступа:
[Authorize(Users = "admin")]
publicActionResult Admins()
{
returnView();
}
- защита от html-javascript.
Автоматическаявалидация ввода.
По умолчанию ASP.NET MVC автоматически проверяет данные запроса, чтобы гарантировать, что они не содержат потенциально опасной разметки. Однако это не всегда желательно. Иногда у вас будут приложения, которые требуют от пользователя ввести HTML-разметку (или другие данные, которые валидатор может принять за HTML, например, XML), поэтому такое поведение можно выключить.
[ValidateInput(false)]
publicViewResult Save(CommentInput form)
{
returnView(form);
}
Когда для него установлено значениеfalse , атрибут ValidateInputуказывает ASP.NET пропустить обычную проверку на наличие вредоносного содержимого. Без этого атрибута будет проведена валидация по умолчанию: проверка строки запроса, формы и куки на наличие вредоносного содержимого. Если этот атрибут не отменяет валидацию, пользователи, отправляющие небезопасные входные данные, увидят исключение, показанное на рисунке.

Рисунок 1 – Ошибка сервера в приложении
- Защита подделка межсайтовых запросов
Применение к действию ValidateAntiForgeryTokenAttribute требует, чтобы входные данные сопровождались специальным маркером, который гарантирует, что они поступают только от отвечающего приложения. За атрибутом обязательно должен следовать специальный вспомогательный метод HTML, который выводит маркер в форме в HTML-источнике.
В следующем коде показан атрибут, примененный к нашему уязвимому действию:
[ValidateAntiForgeryToken]
publicViewResult Save(InputModel form)
{
returnView(form);
}
В нашем представлении мы можем использовать вспомогательный метод AntiForgeryToken:
<form method="post" action="/home/save">
@Html.AntiForgeryToken()
<label for="Name">Name:</label>
@Html.TextBox("Name")
<button type="submit">Submit</button>
</form>
Когда установлены маркер и атрибут, отправленные с сайта данные, имеющие и маркер, и атрибут, будут приняты, но взломщики не смогут формулировать XSRF-атаки.
- При появлении в работе приложения исключения пользователь получить страницу с ее описанием.
Создадим исключение при работе приложения.
publicActionResult Index()
{
List<Comment> c = repository.getAllComments();
ViewBag.Comments = repository.getAllComments();
thrownewDataException();
returnView();
}
Пользователь получит следующую страницу

Рисунок 2 – Исключение при работе приложения
Asp.netmvc позволяет определить страницу, которая будет отображена при появлении того или иного исключения.

Уязвимости:
- возможность подбора пароля простым перебором неограниченное количество раз, потому что нет защиты на то, что при нескольких попытках авторизоваться, пользователь блокируется на некоторое количество времени;
- хранение паролей в открытом виде в базе данных;
- приложение самостоятельно не может гарантировать передачу данных по защищенному каналу, поэтому сервер приложений должен настроен должным образом, чтобы при работе с приложением использовался протокол SSLHTTP.

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