Учебники

Тестирование безопасности — Краткое руководство

Тестирование безопасности — Обзор

Тестирование безопасности очень важно для защиты системы от вредоносных действий в сети.

Что такое тестирование безопасности?

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

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

  • Конфиденциальность — защищает от разглашения информации непреднамеренным получателям.

  • Целостность — позволяет передавать точную и правильную информацию от отправителей к получателям.

  • Аутентификация — проверяет и подтверждает личность пользователя.

  • Авторизация — определяет права доступа к пользователям и ресурсам.

  • Доступность — обеспечивает готовность информации по требованию.

  • Безотказность — гарантирует, что отправитель или получатель не получит отказа в отправке или получении сообщения.

Конфиденциальность — защищает от разглашения информации непреднамеренным получателям.

Целостность — позволяет передавать точную и правильную информацию от отправителей к получателям.

Аутентификация — проверяет и подтверждает личность пользователя.

Авторизация — определяет права доступа к пользователям и ресурсам.

Доступность — обеспечивает готовность информации по требованию.

Безотказность — гарантирует, что отправитель или получатель не получит отказа в отправке или получении сообщения.

пример

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

  • Войдите в веб-приложение, используя действительные учетные данные.

  • Выйдите из веб-приложения.

  • Нажмите кнопку НАЗАД браузера.

  • Убедитесь, что вас попросили снова войти в систему или вы можете вернуться на страницу входа снова.

Войдите в веб-приложение, используя действительные учетные данные.

Выйдите из веб-приложения.

Нажмите кнопку НАЗАД браузера.

Убедитесь, что вас попросили снова войти в систему или вы можете вернуться на страницу входа снова.

Тестирование безопасности — процесс

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

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

Тест на проникновение — рабочий процесс

Тест на проникновение включает в себя четыре основных этапа —

Эти четыре шага повторяются несколько раз, что идет рука об руку с обычным SDLC.

Процесс тестирования безопасности

Тестирование безопасности — вредоносное ПО

Вредоносное программное обеспечение (вредоносное ПО) — это любое программное обеспечение, которое частично и полностью контролирует систему злоумышленнику / создателю вредоносного ПО.

Malwares

Различные формы вредоносных программ перечислены ниже —

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

  • Червь — червь — это тип вредоносного ПО, который оставляет свою копию в памяти каждого компьютера на своем пути.

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

  • Рекламное программное обеспечение. Рекламное программное обеспечение, также известное как бесплатное программное обеспечение или программное обеспечение, является бесплатным компьютерным программным обеспечением, которое содержит коммерческую рекламу игр, панелей инструментов рабочего стола и утилит. Это веб-приложение, которое собирает данные веб-браузера для таргетинга рекламных объявлений, особенно всплывающих окон.

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

  • Руткит . Руткит — это программное обеспечение, используемое хакером для получения доступа уровня администратора к компьютеру / сети, который устанавливается с помощью украденного пароля или путем использования уязвимости системы без ведома жертвы.

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

Червь — червь — это тип вредоносного ПО, который оставляет свою копию в памяти каждого компьютера на своем пути.

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

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

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

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

Предупредительные меры

Следующие меры могут быть приняты, чтобы избежать присутствия вредоносного ПО в системе:

  • Убедитесь, что операционная система и приложения обновлены с помощью исправлений / обновлений.

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

  • При загрузке из Интернета всегда проверяйте, что вы устанавливаете. Не просто нажмите кнопку ОК, чтобы закрыть всплывающие окна. Проверьте издателя перед установкой приложения.

  • Установите антивирусное программное обеспечение.

  • Убедитесь, что вы регулярно сканируете и обновляете антивирусные программы.

  • Установите брандмауэр.

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

Убедитесь, что операционная система и приложения обновлены с помощью исправлений / обновлений.

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

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

Установите антивирусное программное обеспечение.

Убедитесь, что вы регулярно сканируете и обновляете антивирусные программы.

Установите брандмауэр.

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

Anti-Malware Software

Следующее программное обеспечение помогает удалить вредоносные программы из системы —

  • Microsoft Security Essentials
  • Защитник Microsoft Windows
  • AVG Internet Security
  • Spybot — поиск и уничтожение
  • Avast! Home Edition для личного пользования
  • Panda Internet Security
  • MacScan для Mac OS и Mac OS X

Тестирование безопасности — основы протокола HTTP

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

Протокол HTTP

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

По сути, HTTP — это протокол связи на основе TCP / IP, который используется для доставки таких данных, как файлы HTML, файлы изображений, результаты запросов и т. Д. Через Интернет. Он обеспечивает стандартизированный способ связи компьютеров друг с другом. Спецификация HTTP определяет, как запрашиваемые данные клиентов отправляются на сервер, и как серверы отвечают на эти запросы.

Основные характеристики

Существует три основных функции, которые делают HTTP простым, но мощным протоколом.

  • HTTP без установления соединения — HTTP-клиент, т. Е. Браузер инициирует HTTP-запрос. После выполнения запроса клиент отключается от сервера и ожидает ответа. Сервер обрабатывает запрос и повторно устанавливает соединение с клиентом для отправки ответа обратно.

  • HTTP не зависит от носителя — данные любого типа могут отправляться по протоколу HTTP, если и клиент, и сервер знают, как обрабатывать содержимое данных. Это необходимо как для клиента, так и для сервера, чтобы указать тип контента, используя соответствующий MIME-тип.

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

HTTP без установления соединения — HTTP-клиент, т. Е. Браузер инициирует HTTP-запрос. После выполнения запроса клиент отключается от сервера и ожидает ответа. Сервер обрабатывает запрос и повторно устанавливает соединение с клиентом для отправки ответа обратно.

HTTP не зависит от носителя — данные любого типа могут отправляться по протоколу HTTP, если и клиент, и сервер знают, как обрабатывать содержимое данных. Это необходимо как для клиента, так и для сервера, чтобы указать тип контента, используя соответствующий MIME-тип.

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

HTTP / 1.0 использует новое соединение для каждого обмена запросами / ответами, тогда как соединение HTTP / 1.1 может использоваться для одного или нескольких обменов запросами / ответами.

Архитектура

Следующая диаграмма показывает очень простую архитектуру веб-приложения и показывает, где находится HTTP —

Архитектура HTTP

Протокол HTTP — это протокол запроса / ответа, основанный на архитектуре клиент / сервер, где веб-браузер, роботы, поисковые системы и т. Д. Действуют как клиенты HTTP, а веб-сервер выступает в качестве сервера.

  • Клиент — клиент HTTP отправляет запрос на сервер в форме метода запроса, URI и версии протокола, после чего следует сообщение, подобное MIME, содержащее модификаторы запроса, информацию о клиенте и возможный контент тела через соединение TCP / IP.

  • Сервер — HTTP-сервер отвечает строкой состояния, включая версию протокола сообщения и код успеха или ошибки, за которым следует MIME-подобное сообщение, содержащее информацию о сервере, метаинформацию объекта и возможное содержимое тела объекта.

Клиент — клиент HTTP отправляет запрос на сервер в форме метода запроса, URI и версии протокола, после чего следует сообщение, подобное MIME, содержащее модификаторы запроса, информацию о клиенте и возможный контент тела через соединение TCP / IP.

Сервер — HTTP-сервер отвечает строкой состояния, включая версию протокола сообщения и код успеха или ошибки, за которым следует MIME-подобное сообщение, содержащее информацию о сервере, метаинформацию объекта и возможное содержимое тела объекта.

HTTP — недостатки

  • HTTP не является полностью защищенным протоколом.

  • HTTP использует порт 80 в качестве порта по умолчанию для связи.

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

  • Для использования HTTP не требуется шифрование / цифровые сертификаты.

HTTP не является полностью защищенным протоколом.

HTTP использует порт 80 в качестве порта по умолчанию для связи.

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

Для использования HTTP не требуется шифрование / цифровые сертификаты.

Протокол Http Подробности

Чтобы понять HTTP-протокол, нажмите на каждую из приведенных ниже ссылок.

Параметры HTTP

HTTP сообщения

HTTP-запросы

HTTP-ответы

Методы HTTP

Коды состояния HTTP

Поля заголовка HTTP

HTTP Security

Тестирование безопасности — Основы протокола HTTPS

HTTPS (протокол передачи гипертекста по протоколу Secure Socket Layer) или HTTP по SSL — это веб-протокол, разработанный Netscape. Это не протокол, а результат наложения HTTP поверх SSL / TLS (Secure Socket Layer / Transport Layer Security).

Короче говоря, HTTPS = HTTP + SSL

Когда требуется HTTPS?

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

Протокол Https, используемый в следующих сценариях —

  • Банковские сайты
  • Платежный шлюз
  • Торговые сайты
  • Все страницы входа
  • Приложения электронной почты

Основы работы HTTPS

  • Открытый ключ и подписанные сертификаты требуются для сервера по протоколу HTTPS.

  • Клиент запрашивает страницу https: //

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

  • В ответ клиент выбирает способ подключения, а клиент и сервер обмениваются сертификатами для проверки подлинности своих удостоверений.

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

  • Для размещения соединений https сервер должен иметь сертификат открытого ключа, который включает информацию о ключе с проверкой личности владельца ключа.

  • Почти все сертификаты проверяются третьей стороной, так что клиенты уверены, что ключ всегда защищен.

Открытый ключ и подписанные сертификаты требуются для сервера по протоколу HTTPS.

Клиент запрашивает страницу https: //

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

В ответ клиент выбирает способ подключения, а клиент и сервер обмениваются сертификатами для проверки подлинности своих удостоверений.

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

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

Почти все сертификаты проверяются третьей стороной, так что клиенты уверены, что ключ всегда защищен.

Архитектура HTTP

Тестирование безопасности — Кодирование и декодирование

Что такое кодирование и декодирование?

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

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

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

Кодировка URL

URL-адреса могут отправляться только через Интернет с использованием набора символов ASCII, и в некоторых случаях URL-адрес содержит специальные символы, кроме символов ASCII, его необходимо кодировать. URL-адреса не содержат пробелов и заменяются знаком плюс (+) или% 20.

Кодировка ASCII

Браузер (на стороне клиента) закодирует ввод в соответствии с набором символов, используемым на веб-странице, а набор символов по умолчанию в HTML5 — UTF-8.

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

ASCII Условное обозначение замена
<32 Кодировать с% xx, где xx — шестнадцатеричное представление символа.
32 пространство + или% 20
33 ! % 21
34 « % 22
35 # % 23
36 $ % 24
37 % % 25
38 & % 26
39 % 27
40 ( % 28
41 ) % 29
42 * *
43 + % 2B
44 , % 2C
45
46 , ,
47 / % 2F
48 0 0
49 1 1
50 2 2
51 3 3
52 4 4
53 5 5
54 6 6
55 7 7
56 8 8
57 9 9
58 : % 3A
59 ; % 3B
60 > % 3C
61 знак равно % 3D
62 > % 3E
63 ? % 3F
64 @ % 40
65
66 В В
67 С С
68 D D
69 Е Е
70 F F
71 г г
72 ЧАС ЧАС
73 я я
74 J J
75 К К
76 L L
77 M M
78 N N
79 О О
80 п п
81 Q Q
82 р р
83 S S
84 T T
85 U U
86 В В
87 W W
88 Икс Икс
89 Y Y
90 Z Z
91 [ % 5B
92 \ % 5C
93 ] % 5D
94 ^ % 5E
95 _ _
96 ` % 60
97
98 б б
99 с с
100 d d
101 е е
102 е е
103 г г
104 час час
105 я я
106 J J
107 К К
108 L L
109 м м
110 N N
111 о о
112 п п
113 Q Q
114 р р
115 s s
116 T T
117 U U
118 v v
119 вес вес
120 Икс Икс
121 Y Y
122 Z Z
123 { % 7B
124 | % 7C
125 } % 7D
126 ~ % 7E
127 % 7F
> 127 Кодировать с% xx, где xx — шестнадцатеричное представление символа

Тестирование безопасности — криптография

Что такое криптография?

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

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

Зашифрованный открытый текст известен как зашифрованный текст, а процесс возврата зашифрованных данных обратно в обычный текст известен как дешифрование .

  • Наука анализа и взлома защищенной связи известна как криптоанализ. Люди, которые выполняют то же самое, также известны как злоумышленники.

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

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

  • Существуют некоторые криптографические методы, с помощью которых даже миллиард компьютеров, выполняющих миллиард проверок в секунду, не может расшифровать текст.

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

Наука анализа и взлома защищенной связи известна как криптоанализ. Люди, которые выполняют то же самое, также известны как злоумышленники.

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

Следовательно, для расшифровки зашифрованных сообщений требуется соответствующий инструмент декодирования.

Существуют некоторые криптографические методы, с помощью которых даже миллиард компьютеров, выполняющих миллиард проверок в секунду, не может расшифровать текст.

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

Как работает шифрование?

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

Следовательно, зашифрованные данные полностью зависят от пары параметров, таких как надежность криптографического алгоритма и секретность ключа.

Криптографические методы

Симметричное шифрование. Обычная криптография, также известная как традиционное шифрование, — это метод, при котором для шифрования и дешифрования используется только один ключ. Например, DES, Triple DES алгоритмы, MARS от IBM, RC2, RC4, RC5, RC6.

Асимметричное шифрование — это криптография с открытым ключом, которая использует пару ключей для шифрования: открытый ключ для шифрования данных и закрытый ключ для дешифрования. Открытый ключ публикуется людям, сохраняя секретный ключ в секрете. Например, RSA, алгоритм цифровой подписи (DSA), Elgamal.

Хеширование — хеширование — это одностороннее шифрование, которое создает закодированный вывод, который не может быть обращен или, по крайней мере, не может быть легко изменен. Например, алгоритм MD5. Используется для создания цифровых сертификатов, цифровых подписей, хранения паролей, проверки сообщений и т. Д.

Тестирование безопасности — та же политика происхождения

Политика единого происхождения (SOP) является важной концепцией в модели безопасности веб-приложений.

Что такое политика единого происхождения?

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

  • Домен
  • протокол
  • порт

пример

Причиной такого поведения является безопасность. Если у вас есть try.com в одном окне, а gmail.com — в другом, то вы НЕ хотите, чтобы скрипт из try.com открывал или изменял содержимое gmail.com или выполнял действия в контексте gmail от вашего имени.

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

  • http://website.com
  • http://website.com/
  • http://website.com/my/contact.html

Ниже приведены веб-страницы другого происхождения.

  • http://www.site.co.uk (другой домен)
  • http://site.org (другой домен)
  • https://site.com (другой протокол)
  • http://site.com:8080 (другой порт)

Исключения из той же политики происхождения для IE

У Internet Explorer есть два основных исключения из SOP.

  • Первый связан с «Доверенными зонами». Если оба домена находятся в зоне с высоким уровнем доверия, политика Same Origin не применяется полностью.

  • Второе исключение в IE связано с портом. IE не включает порт в политику Same Origin, поэтому http://website.com и http://wesite.com:4444 рассматриваются как имеющие одинаковое происхождение, и никакие ограничения не применяются.

Первый связан с «Доверенными зонами». Если оба домена находятся в зоне с высоким уровнем доверия, политика Same Origin не применяется полностью.

Второе исключение в IE связано с портом. IE не включает порт в политику Same Origin, поэтому http://website.com и http://wesite.com:4444 рассматриваются как имеющие одинаковое происхождение, и никакие ограничения не применяются.

Тестирование безопасности — Cookies

Что такое печенье?

Файл cookie — это небольшой фрагмент информации, отправляемый веб-сервером для хранения в веб-браузере, чтобы впоследствии он мог быть прочитан браузером. Таким образом, браузер запоминает определенную личную информацию. Если хакер получает информацию о cookie-файлах, это может привести к проблемам с безопасностью.

Свойства куки

Вот некоторые важные свойства куки —

  • Обычно это небольшие текстовые файлы с заданными идентификаторами, которые хранятся в каталоге браузера вашего компьютера.

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

  • Когда пользователь снова просматривает тот же веб-сайт, данные, хранящиеся в cookie, отправляются обратно на веб-сервер, чтобы уведомить веб-сайт о предыдущих действиях пользователя.

  • Куки-файлы неизбежны для веб-сайтов, которые имеют огромные базы данных, нуждаются в логинах, имеют настраиваемые темы.

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

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

Когда пользователь снова просматривает тот же веб-сайт, данные, хранящиеся в cookie, отправляются обратно на веб-сервер, чтобы уведомить веб-сайт о предыдущих действиях пользователя.

Куки-файлы неизбежны для веб-сайтов, которые имеют огромные базы данных, нуждаются в логинах, имеют настраиваемые темы.

Содержание куки

Файл cookie содержит следующую информацию:

  • Имя сервера, с которого был отправлен файл cookie.
  • Время жизни куки.
  • Значение — обычно случайно сгенерированный уникальный номер.

Типы печенья

  • Сеансовые файлы cookie — это временные файлы cookie, которые стираются, когда пользователь закрывает браузер. Даже если пользователь снова входит в систему, для этого сеанса создается новый файл cookie.

  • Постоянные файлы cookie — эти файлы cookie остаются на жестком диске, если пользователь не удалит их или не истечет срок их действия. Срок действия Cookie зависит от того, как долго они могут длиться.

Сеансовые файлы cookie — это временные файлы cookie, которые стираются, когда пользователь закрывает браузер. Даже если пользователь снова входит в систему, для этого сеанса создается новый файл cookie.

Постоянные файлы cookie — эти файлы cookie остаются на жестком диске, если пользователь не удалит их или не истечет срок их действия. Срок действия Cookie зависит от того, как долго они могут длиться.

Тестирование Cookies

Вот способы проверить куки —

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

  • Коррупция файлов cookie. Еще одно тестирование, которое необходимо выполнить, — это испортить файлы cookie. Чтобы сделать то же самое, нужно найти местоположение файла cookie сайта и вручную отредактировать его с помощью поддельных / недействительных данных, которые можно использовать для доступа к внутренней информации из домена, которая, в свою очередь, затем может быть использована для взлома сайта.

  • Удаление файлов cookie — удалите все файлы cookie для веб-сайта и проверьте, как веб-сайт реагирует на него.

  • Кросс-браузерная совместимость. Также важно проверить, правильно ли записываются файлы cookie во всех поддерживаемых браузерах с любой страницы, на которой записываются файлы cookie.

  • Редактирование файлов cookie. Если приложение использует файлы cookie для хранения информации для входа в систему, в качестве тестера мы должны попытаться изменить пользователя в файле cookie или адресной строке на другого действительного пользователя. Редактирование куки не должно позволять вам войти в другую учетную запись пользователя.

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

Коррупция файлов cookie. Еще одно тестирование, которое необходимо выполнить, — это испортить файлы cookie. Чтобы сделать то же самое, нужно найти местоположение файла cookie сайта и вручную отредактировать его с помощью поддельных / недействительных данных, которые можно использовать для доступа к внутренней информации из домена, которая, в свою очередь, затем может быть использована для взлома сайта.

Удаление файлов cookie — удалите все файлы cookie для веб-сайта и проверьте, как веб-сайт реагирует на него.

Кросс-браузерная совместимость. Также важно проверить, правильно ли записываются файлы cookie во всех поддерживаемых браузерах с любой страницы, на которой записываются файлы cookie.

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

Просмотр и редактирование файлов cookie

Современные браузеры поддерживают просмотр / редактирование информации о куки в самом браузере. Существуют плагины для Mozilla / Chrome, с помощью которых мы можем успешно выполнить редактирование.

  • Редактировать плагин cookie для Firefox

  • Изменить этот плагин cookie для Chrome

Шаги должны быть выполнены, чтобы отредактировать куки —

  • Загрузите плагин для Chrome здесь

  • Отредактируйте значение cookie, просто открыв плагин «edit this cookie» из Chrome, как показано ниже.

Загрузите плагин для Chrome здесь

Отредактируйте значение cookie, просто открыв плагин «edit this cookie» из Chrome, как показано ниже.

Тестирование Печенья

Тестирование безопасности — взлом веб-приложений

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

Веб-приложение — методологии PenTesting

При разработке модели атаки можно учитывать следующие стандарты.

Среди следующего списка OWASP является наиболее активным, и есть ряд участников. Мы сосредоточимся на методах OWASP, которые каждая команда разработчиков учитывает перед разработкой веб-приложения.

PTES — стандарт выполнения испытаний на проникновение

OSSTMM — Руководство по методологии тестирования безопасности с открытым исходным кодом

Методы тестирования OWASP — открытый протокол безопасности веб-приложений

OWASP Top 10

Команда Open Web Application Security Protocol выпустила 10 самых уязвимых мест, которые в последние годы были более распространены в сети. Ниже приведен список недостатков безопасности, которые более распространены в веб-приложениях.

OWASP Top 10

Приложение — Руки На

Чтобы понять каждый из методов, давайте поработаем с примером приложения. Мы проведем атаку на «WebGoat», J2EE-приложение, которое разработано явно с недостатками безопасности для целей обучения.

Полная информация о проекте webgoat может быть найдена по адресу https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project . Чтобы загрузить приложение WebGoat, перейдите по адресу https://github.com/WebGoat/WebGoat/wiki/Installation-(WebGoat-6.0) и перейдите в раздел загрузок.

Чтобы установить загруженное приложение, сначала убедитесь, что у вас нет приложения, работающего на порту 8080. Его можно установить с помощью одной команды — java -jar WebGoat-6.0.1-war-exec.jar. Для более подробной информации, посетите WebGoat Installation

После установки мы должны иметь доступ к приложению, перейдя по адресу http: // localhost: 8080 / WebGoat / attack, и страница отобразится, как показано ниже.

OWASP Top 10

Мы можем использовать учетные данные гостя или администратора, как показано на странице входа.

Веб прокси

Чтобы перехватить трафик между клиентом (браузером) и сервером (система, в которой в нашем случае размещено приложение Webgoat), нам нужно использовать веб-прокси. Мы будем использовать Burp Proxy, который можно загрузить с https://portswigger.net/burp/download.html.

Достаточно скачать бесплатную версию пакета burp, как показано ниже.

BURP Suite Скачать.

Настройка Burp Suite

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

BURP Suite Скачать.

Шаг 1 — Приложение установлено на порт 8080, а Burp установлен на порт 8181, как показано ниже. Запустите пакет Burp и выполните следующие настройки, чтобы подключить его к порту 8181, как показано ниже.

BURP Suite Скачать.

Шаг 2 — Мы должны убедиться, что Burp прослушивает порт # 8080, на котором установлено приложение, чтобы пакет Burp мог перехватывать трафик. Эти настройки должны быть выполнены на вкладке области действия Burp Suite, как показано ниже.

BURP Suite Скачать.

Шаг 3 — Затем настройте параметры прокси браузера, чтобы прослушивать порт 8181 (порт Burp Suite). Таким образом, мы настроили веб-прокси для перехвата трафика между клиентом (браузером) и сервером (веб-сервером), как показано ниже —

BURP Suite Скачать.

Шаг 4 — Снимок конфигурации показан ниже с помощью простой диаграммы рабочего процесса, как показано ниже

BURP Suite Скачать.

Тестирование безопасности — инъекция

Техника внедрения состоит из внедрения запроса SQL или команды, используя поля ввода приложения.

Веб-приложение — инъекция

Успешная инъекция SQL может читать, изменять конфиденциальные данные из базы данных, а также может удалять данные из базы данных. Это также позволяет хакеру выполнять административные операции с базой данных, такие как отключение СУБД / удаление баз данных.

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

SQL-инъекция

Примеры

Приложение использует ненадежные данные при построении следующего уязвимого вызова SQL —

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Руки вверх

Шаг 1 — Перейдите в область SQL-инъекций приложения, как показано ниже.

SQL-инъекция

Шаг 2. Как указано в упражнении, мы используем String SQL Injection для обхода аутентификации. Используйте SQL-инъекцию, чтобы войти в систему как босс («Невилл») без использования правильного пароля. Убедитесь, что профиль Невилла можно просмотреть и все функции доступны (включая Поиск, Создать и Удалить).

Шаг 3 — Мы введем SQL-код таким образом, чтобы мы могли обойти пароль, отправив параметр как «a» = «a» или 1 = 1

SQL-инъекция

Шаг 4 — После использования, мы можем войти как Невилл, который является Администратором, как показано ниже.

SQL-инъекция

Предотвращение SQL-инъекций

Есть много способов предотвратить внедрение SQL. Когда разработчики пишут код, они должны убедиться, что они обрабатывают специальные символы соответственно. OWASP предлагает чит-листы / методы профилактики, которые, безусловно, являются руководством для разработчиков.

  • Использование параметризованных запросов
  • Экранирование всех вводимых пользователем данных
  • Включить наименьшие привилегии для базы данных для конечных пользователей

Тестирование сломанной аутентификации

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

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

2. Сломанные ошибки аутентификации и Mgmt сессии

пример

An e-commerce application supports URL rewriting, putting session IDs in the URL −

http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop

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

Руки вверх

Шаг 1 — Войдите в Webgoat и перейдите в раздел «Недостатки управления сессиями». Давайте обойдем аутентификацию, подделав cookie. Ниже приведен снимок сценария.

2. Сломанные ошибки аутентификации и Mgmt сессии

Шаг 2 — Когда мы регистрируемся, используя учетную запись webgoat / webgoat, мы находим из Burp Suite, что идентификатор JSESSION равен C8F3177CCAFF380441ABF71090748F2E, а AuthCookie = 65432ubphcfx при успешной аутентификации.

2. Сломанные ошибки аутентификации и Mgmt сессии

2. Сломанные ошибки аутентификации и Mgmt сессии

Шаг 3 — Когда мы входим в систему с использованием аспекта / аспекта учетных данных, мы обнаруживаем в Burp Suite, что идентификатор JSESSION равен C8F3177CCAFF380441ABF71090748F2E, а AuthCookie = 65432udfqtb при успешной аутентификации.

2. Сломанные ошибки аутентификации и Mgmt сессии

Шаг 4 — Теперь нам нужно проанализировать паттерны AuthCookie. Первая половина «65432» является общей для обеих аутентификаций. Следовательно, теперь мы заинтересованы в анализе последней части значений authcookie, таких как — ubphcfx для пользователя webgoat и udfqtb для аспектного пользователя соответственно.

Шаг 5 — Если мы внимательно посмотрим на значения AuthCookie, последняя часть имеет ту же длину, что и имя пользователя. Следовательно, очевидно, что имя пользователя используется с некоторым методом шифрования. После проб и ошибок / механизмов грубой силы мы обнаруживаем, что после изменения имени пользователя, webgoat; в итоге мы получаем taogbew, а затем символ перед алфавитом используется в качестве AuthCookie. то есть ubphcfx.

Шаг 6 — Если мы передадим это значение cookie и посмотрим, что произойдет. После аутентификации в качестве пользовательского веб-шлюза измените значение AuthCookie, чтобы высмеивать пользователя Алису, найдя AuthCookie для того же самого, выполнив шаг 4 и шаг 5.

2. Сломанные ошибки аутентификации и Mgmt сессии

2. Сломанные ошибки аутентификации и Mgmt сессии

Предотвращающие Механизмы

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

  • Разработчики должны убедиться, что они избегают ошибок XSS, которые можно использовать для кражи идентификаторов сеансов.

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

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

Тестирование межсайтовых сценариев

Межсайтовый скриптинг (XSS) происходит всякий раз, когда приложение берет ненадежные данные и отправляет их клиенту (браузеру) без проверки. Это позволяет злоумышленникам выполнять вредоносные сценарии в браузере жертвы, что может привести к перехвату пользовательских сеансов, порче веб-сайтов или перенаправлению пользователя на вредоносные сайты.

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

3. межсайтовый скриптинг

Типы XSS

  • Сохраненный XSS — сохраненный XSS, также известный как постоянный XSS, возникает, когда пользовательский ввод хранится на целевом сервере, таком как база данных / форум сообщений / поле комментариев и т. Д. Затем жертва может извлечь сохраненные данные из веб-приложения.

  • Отраженный XSS — отраженный XSS, также известный как непостоянный XSS, возникает, когда пользовательский ввод немедленно возвращается веб-приложением в сообщении об ошибке / результате поиска или вводом, предоставленным пользователем как часть запроса, и без постоянного сохранения данных, предоставленных пользователем. ,

  • Основанный на DOM XSS — Основанный на DOM XSS является формой XSS, когда источник данных находится в DOM, приемник также находится в DOM, и поток данных никогда не покидает браузер.

Сохраненный XSS — сохраненный XSS, также известный как постоянный XSS, возникает, когда пользовательский ввод хранится на целевом сервере, таком как база данных / форум сообщений / поле комментариев и т. Д. Затем жертва может извлечь сохраненные данные из веб-приложения.

Отраженный XSS — отраженный XSS, также известный как непостоянный XSS, возникает, когда пользовательский ввод немедленно возвращается веб-приложением в сообщении об ошибке / результате поиска или вводом, предоставленным пользователем как часть запроса, и без постоянного сохранения данных, предоставленных пользователем. ,

Основанный на DOM XSS — Основанный на DOM XSS является формой XSS, когда источник данных находится в DOM, приемник также находится в DOM, и поток данных никогда не покидает браузер.

пример

Приложение использует ненадежные данные в конструкции без проверки. Специальные символы должны быть экранированы.

http://www.webpage.org/task/Rule1?query=try

Злоумышленник изменяет параметр запроса в своем браузере на —

http://www.webpage.org/task/Rule1?query=<h3>Hello from XSS"</h3>

Руки вверх

Шаг 1 — Войдите в Webgoat и перейдите в раздел межсайтовых скриптов (XSS). Давайте выполним атаку по сохраненным межсайтовым сценариям (XSS). Ниже приведен снимок сценария.

3. xss

Шаг 2 — В соответствии со сценарием, давайте войдем в систему как Tom с паролем ‘Tom’, как указано в самом сценарии. Нажмите «Просмотр профиля» и войдите в режим редактирования. Поскольку Том является злоумышленником, давайте вставим Java-скрипт в эти поля редактирования.

<script> 
   alert("HACKED")
</script> 

3. xss

Шаг 3 — Как только обновление закончится, Том получает окно с сообщением «взломан», что означает, что приложение уязвимо.

3. xss

Шаг 4. Теперь в соответствии со сценарием нам нужно войти в систему как jerry (HR) и проверить, не влияет ли на jerry внедренный скрипт.

3. xss

Шаг 5 — После входа в систему как Джерри, выберите «Том» и нажмите «Просмотр профиля», как показано ниже.

3. xss

При просмотре профиля Тома из учетной записи Джерри, он может получить то же сообщение.

3. xss

Шаг 6 — Это окно сообщения является только примером, но фактический злоумышленник может выполнить гораздо больше, чем просто отобразить окно сообщения.

Профилактические механизмы

  • Разработчики должны убедиться, что они избегают всех ненадежных данных на основе контекста HTML, такого как тело, атрибут, JavaScript, CSS или URL-адрес, в который помещаются данные.

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

Разработчики должны убедиться, что они избегают всех ненадежных данных на основе контекста HTML, такого как тело, атрибут, JavaScript, CSS или URL-адрес, в который помещаются данные.

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

Небезопасные прямые ссылки на объекты

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

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

небезопасный прямой объект реф

пример

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

String sqlquery = "SELECT * FROM useraccounts WHERE account = ?";
PreparedStatement st = connection.prepareStatement(sqlquery, ??);
st.setString( 1, request.getParameter("acct"));
ResultSet results = st.executeQuery( );

Злоумышленник изменяет параметр запроса в своем браузере, указывая на Admin.

http://webapp.com/app/accountInfo?acct=admin

Руки вверх

Шаг 1 — Войдите в Webgoat и перейдите к разделу «Недостатки контроля доступа». Цель состоит в том, чтобы получить файл tomcat-users.xml, перейдя по пути, в котором он находится. Ниже приведен снимок сценария.

1. небезопасный прямой объект ref1

Шаг 2. Путь к файлу отображается в поле «текущий каталог» — C: \ Users \ имя пользователя $ \. Extract \ webapps \ WebGoat \ lesson_plans \ en, и мы также знаем, что файл tomcat-users.xml хранится в C: \ xampp \ tomcat \ conf

Шаг 3 — Нам нужно пройти весь путь из текущего каталога и перейти от C: \ Drive. Мы можем сделать то же самое, перехватывая трафик с помощью Burp Suite.

2 небезопасный прямой объект реф

Шаг 4 — Если попытка успешна, отображается файл tomcat-users.xml с сообщением «Поздравляем. Вы успешно завершили этот урок».

2 небезопасный прямой объект реф

Профилактические механизмы

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

  • Разработчики должны использовать только одного пользователя или сеанс для косвенных ссылок на объекты.

  • Также рекомендуется проверять доступ перед использованием прямой ссылки на объект из ненадежного источника.

Разработчики должны использовать только одного пользователя или сеанс для косвенных ссылок на объекты.

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

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

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

security_misconfiguration

пример

Вот некоторые классические примеры неправильной настройки безопасности:

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

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

  • Серверы приложений обычно поставляются с примерами приложений, которые недостаточно защищены. Если его не удалить с рабочего сервера, это может привести к компрометации вашего сервера.

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

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

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

Руки вверх

Шаг 1 — Запустите Webgoat и перейдите в раздел небезопасной конфигурации, и давайте попробуем решить эту проблему. Снимок того же приведен ниже —

security_misconfiguration1

Шаг 2 — Мы можем попробовать столько вариантов, сколько сможем придумать. Все, что нам нужно, чтобы найти URL файла конфигурации, и мы знаем, что разработчики следуют некоторому соглашению об именах для файлов конфигурации. Это может быть что угодно, что перечислено ниже. Обычно это делается с помощью техники BRUTE.

  • web.config
  • конфиг
  • appname.config
  • конф

Шаг 3 — Попробовав различные варианты, мы находим, что « http: // localhost: 8080 / WebGoat / conf » успешен. Следующая страница отображается в случае успешной попытки:

security_misconfiguration1

Профилактические механизмы

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

  • Убедитесь, что принята мощная архитектура приложения, которая обеспечивает эффективное и безопасное разделение между компонентами.

  • Это также может минимизировать вероятность этой атаки, запуская автоматическое сканирование и периодически проводя аудит.

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

Убедитесь, что принята мощная архитектура приложения, которая обеспечивает эффективное и безопасное разделение между компонентами.

Это также может минимизировать вероятность этой атаки, запуская автоматическое сканирование и периодически проводя аудит.

Тестирование безопасности — раскрытие конфиденциальных данных

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

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

sensitive_data_exposture

пример

Вот некоторые из классических примеров неправильной настройки безопасности:

  • Сайт просто не использует SSL для всех аутентифицированных страниц. Это позволяет злоумышленнику отслеживать сетевой трафик и похищать файл cookie сеанса пользователя, чтобы захватить сеанс пользователя или получить доступ к его личным данным.

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

Сайт просто не использует SSL для всех аутентифицированных страниц. Это позволяет злоумышленнику отслеживать сетевой трафик и похищать файл cookie сеанса пользователя, чтобы захватить сеанс пользователя или получить доступ к его личным данным.

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

Руки вверх

Шаг 1 — Запустите WebGoat и перейдите в раздел «Небезопасное хранение». Снимок того же отображается ниже.

insecure_storage_1

Шаг 2 — Введите имя пользователя и пароль. Настало время изучить различные методы кодирования и шифрования, которые мы обсуждали ранее.

Профилактические механизмы

  • Рекомендуется не хранить конфиденциальные данные без необходимости и должны быть очищены как можно скорее, если это больше не требуется.

  • Важно убедиться в том, что мы используем надежные и стандартные алгоритмы шифрования и используем правильное управление ключами.

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

Рекомендуется не хранить конфиденциальные данные без необходимости и должны быть очищены как можно скорее, если это больше не требуется.

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

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

Отсутствует контроль доступа на уровне функций

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

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

missing_fn_level_access_control

пример

Вот классический пример отсутствия контроля доступа на уровне функций —

Хакер просто форсирует целевые URL. Обычно для доступа администратора требуется проверка подлинности, однако, если доступ к приложению не подтвержден, пользователь, не прошедший проверку подлинности, может получить доступ к странице администратора.

' Below URL might be accessible to an authenticated user
http://website.com/app/standarduserpage

' A NON Admin user is able to access admin page without authorization.
http://website.com/app/admin_page

Руки вверх

Шаг 1 — Давайте войдем в систему как менеджер аккаунта, сначала пройдя по списку пользователей и их привилегиям доступа.

missing_fn_level_access_control1

Шаг 2 — Попробовав различные комбинации, мы можем обнаружить, что Ларри имеет доступ к менеджеру аккаунта ресурса.

missing_fn_level_access_control1

Профилактические механизмы

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

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

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

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

Подделка межсайтовых запросов (CSRF)

CSRF-атака заставляет аутентифицированного пользователя (жертву) отправлять поддельный HTTP-запрос, включая cookie-файл сеанса жертвы, уязвимому веб-приложению, что позволяет злоумышленнику заставить браузер жертвы сгенерировать запрос так, чтобы уязвимое приложение воспринимало как законные запросы от жертва.

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

CSRF

пример

Вот классический пример CSRF —

Шаг 1. Допустим, уязвимое приложение отправляет запрос на изменение состояния в виде простого текста без какого-либо шифрования.

http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243

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

<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#" 
   width = "0" height = "0" />

Руки вверх

Шаг 1 — Давайте выполним подделку CSRF, внедрив скрипт Java в изображение. Снимок проблемы указан ниже.

csrf1

Шаг 2 — Теперь нам нужно смоделировать передачу в изображение 1×1 и заставить жертву нажать на нее.

csrf2

Шаг 3 — После отправки сообщения оно отображается, как показано ниже.

csrf3

Шаг 4 — Теперь, если жертва щелкает следующий URL-адрес, выполняется передача, которую можно найти, перехватив действие пользователя с помощью пакета burp. Мы можем увидеть перевод, заметив его в сообщении Get, как показано ниже —

csrf3

Шаг 5 — Теперь при нажатии кнопки «Обновить» отображается отметка об окончании урока.

Профилактические механизмы

  • CSRF можно избежать, создав уникальный токен в скрытом поле, которое будет отправлено в теле HTTP-запроса, а не в URL-адресе, который более подвержен уязвимости.

  • Принуждение пользователя к повторной аутентификации или доказательство того, что они являются пользователями, для защиты CSRF. Например, CAPTCHA.

CSRF можно избежать, создав уникальный токен в скрытом поле, которое будет отправлено в теле HTTP-запроса, а не в URL-адресе, который более подвержен уязвимости.

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

Компоненты с уязвимостями

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

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

using_components_with_known_vulnerabilities

пример

В следующих примерах используются компоненты с известными уязвимостями:

  • Злоумышленники могут вызывать любой веб-сервис с полным разрешением, не предоставив идентификационный токен.

  • Удаленное выполнение кода с уязвимостью внедрения языка выражений представлено в Spring Framework для приложений на основе Java.

Злоумышленники могут вызывать любой веб-сервис с полным разрешением, не предоставив идентификационный токен.

Удаленное выполнение кода с уязвимостью внедрения языка выражений представлено в Spring Framework для приложений на основе Java.

Профилактические механизмы

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

  • Постоянно обновляйте все компоненты, такие как общедоступные базы данных, списки рассылки проекта и т. Д.

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

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

Постоянно обновляйте все компоненты, такие как общедоступные базы данных, списки рассылки проекта и т. Д.

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

Непроверенные перенаправления и пересылки

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

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

unvalidated_redirects_and_forwards

пример

Вот некоторые классические примеры непроверенных перенаправлений и переадресаций:

  • Допустим, у приложения есть страница — redirect.jsp, которая принимает параметр redirectrul . Хакер добавляет вредоносный URL, который перенаправляет пользователей, которые выполняют фишинг / устанавливают вредоносное ПО.

Допустим, у приложения есть страница — redirect.jsp, которая принимает параметр redirectrul . Хакер добавляет вредоносный URL, который перенаправляет пользователей, которые выполняют фишинг / устанавливают вредоносное ПО.

http://www.mywebapp.com/redirect.jsp?redirectrul=hacker.com
  • Все веб-приложения используются для перенаправления пользователей в разные части сайта. Чтобы добиться того же, некоторые страницы используют параметр, чтобы указать, куда следует перенаправить пользователя в случае успешной операции. Злоумышленник создает URL-адрес, который проходит проверку контроля доступа приложения, а затем перенаправляет злоумышленника на административные функции, к которым у злоумышленника нет доступа.

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

http://www.mywebapp.com/checkstatus.jsp?fwd=appadmin.jsp

Профилактические механизмы

  • Лучше избегать использования перенаправлений и форвардов.

  • Если это неизбежно, то это должно быть сделано без привлечения пользовательских параметров при перенаправлении адресата.

Лучше избегать использования перенаправлений и форвардов.

Если это неизбежно, то это должно быть сделано без привлечения пользовательских параметров при перенаправлении адресата.

AJAX Security

Асинхронный Javascript и XML (AJAX) — один из новейших методов, используемых для разработки порядка веб-приложений, чтобы обеспечить богатый пользовательский опыт. Поскольку это новая технология, существует множество проблем безопасности, которые еще предстоит решить, и ниже приведены несколько проблем безопасности в AJAX.

  • Поверхность атаки больше, так как есть больше входных данных для защиты.

  • Он также раскрывает внутренние функции приложений.

  • Неспособность защитить информацию аутентификации и сеансы.

  • Существует очень узкая грань между клиентской и серверной сторонами, следовательно, есть вероятность совершения ошибок безопасности.

Поверхность атаки больше, так как есть больше входных данных для защиты.

Он также раскрывает внутренние функции приложений.

Неспособность защитить информацию аутентификации и сеансы.

Существует очень узкая грань между клиентской и серверной сторонами, следовательно, есть вероятность совершения ошибок безопасности.

пример

Вот пример для AJAX Security —

В 2006 году червь заразил почтовую службу Yahoo, использующую XSS и AJAX, которая воспользовалась уязвимостью при обработке событий загрузки Yahoo Mail. Когда было открыто зараженное письмо, червь выполнил свой JavaScript, отправив копию всем контактам Yahoo зараженного пользователя.

Руки вверх

Шаг 1 — Нам нужно попытаться добавить больше вознаграждений к разрешенному набору вознаграждений, используя внедрение XML. Ниже приведен снимок сценария.

xml_injection

Шаг 2 — Убедитесь, что мы перехватываем как запрос, так и ответ, используя Burp Suite. Настройки такие же, как показано ниже.

burp_settings

Шаг 3 — Введите номер счета, указанный в сценарии. Мы сможем получить список всех наград, на которые мы имеем право. Мы имеем право на 3 награды из 5.

xml_injection1

Шаг 4 — Теперь давайте нажмем «Отправить» и посмотрим, что мы получим в ответном XML. Как показано ниже, три награды, которые мы имеем право, передаются нам в виде XML.

xml_injection2

Шаг 5 — Теперь давайте отредактируем эти XML и добавим еще две награды.

xml_injection3

Шаг 6 — Теперь все награды будут отображаться пользователю для их выбора. Выберите те, которые мы добавили, и нажмите «Отправить».

xml_injection4

Шаг 7 — Появляется следующее сообщение: «* Поздравляю. Вы успешно завершили этот урок».

Профилактические механизмы

Клиентская сторона —

  • Используйте .innerText вместо .innerHtml.
  • Не используйте eval.
  • Не полагайтесь на логику клиента для безопасности.
  • Избегайте написания кода сериализации.
  • Избегайте динамического построения XML.
  • Никогда не передавайте секреты клиенту.
  • Не выполняйте шифрование в коде на стороне клиента.
  • Не выполняйте логику, влияющую на безопасность, на стороне клиента.

Сторона сервера —

  • Используйте защиту CSRF.
  • Избегайте написания кода сериализации.
  • Сервисы могут вызываться пользователями напрямую.
  • Избегайте сборки XML вручную, используйте фреймворк.
  • Избегайте сборки JSON вручную, используйте существующий фреймворк.

Тестирование безопасности — веб-сервис

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

Руки вверх

Шаг 1 — Перейдите в область веб-сервисов Webgoat и перейдите к сканированию WSDL. Теперь нам нужно получить данные кредитной карты другого номера счета. Снимок сценария, как указано ниже.

web_services

Шаг 2 — Если мы выберем имя, вызов функции ‘getFirstName’ будет выполнен через запрос SOAP xml.

web_services1

Шаг 3 — Открыв WSDL, мы видим, что существует метод для получения информации о кредитной карте, а также «getCreditCard». Теперь давайте изменим входные данные, используя набор Burp, как показано ниже —

web_services2

Шаг 4 — Теперь давайте изменим входные данные, используя набор Burp, как показано ниже —

web_services3

Шаг 5 — Мы можем получить информацию о кредитной карте других пользователей.

web_services4

Профилактические механизмы

  • Поскольку сообщения SOAP основаны на XML, все переданные учетные данные должны быть преобразованы в текстовый формат. Следовательно, нужно быть очень осторожным при передаче конфиденциальной информации, которая должна быть всегда зашифрована.

  • Защита целостности сообщения путем реализации таких механизмов, как контрольная сумма, применяемая для обеспечения целостности пакета.

  • Защита конфиденциальности сообщений. Асимметричное шифрование применяется для защиты симметричных сеансовых ключей, которые во многих реализациях действительны только для одного сеанса связи и впоследствии отбрасываются.

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

Защита целостности сообщения путем реализации таких механизмов, как контрольная сумма, применяемая для обеспечения целостности пакета.

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

Тестирование безопасности — переполнение буфера

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

пример

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

   ...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

Руки вверх

Шаг 1 — Нам нужно войти в систему с именем и номером комнаты, чтобы получить доступ в Интернет. Вот снимок сценария.

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

Шаг 2 — Мы также включим «Показать скрытые поля формы» в Burp Suite, как показано ниже —

buffer_overflow1

Шаг 3 — Теперь мы отправляем ввод в поле имени и номера комнаты. Мы также пытаемся ввести довольно большое число в поле номера комнаты.

buffer_overflow2

Шаг 4 — Скрытые поля отображаются, как показано ниже. Мы нажимаем принять условия.

buffer_overflow3

Шаг 5 — Атака успешна, так что в результате переполнения буфера она начала читать соседние ячейки памяти и отображается для пользователя, как показано ниже.

buffer_overflow4

Шаг 6 — Теперь позвольте нам войти, используя отображаемые данные. После регистрации отображается следующее сообщение:

buffer_overflow4

Профилактические механизмы

  • Проверка кода
  • Обучение разработчиков
  • Инструменты компилятора
  • Разработка безопасных функций
  • Периодическое сканирование

Тестирование безопасности — отказ в обслуживании

Атака отказа в обслуживании (DoS) — это попытка хакеров сделать сетевой ресурс недоступным. Обычно он прерывает хост, временный или неопределенный, который подключен к Интернету. Эти атаки обычно нацелены на службы, размещенные на критически важных веб-серверах, таких как банки, шлюзы оплаты кредитными картами.

Симптомы DoS

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

Руки вверх

Шаг 1 — Запустите WebGoat и перейдите в раздел «Отказ в обслуживании». Снимок сценария приведен ниже. Мы должны войти в систему несколько раз, нарушив максимальный размер пула потоков БД.

DOS

Шаг 2 — Сначала нам нужно получить список действительных логинов. Мы используем SQL-инъекцию в этом случае.

dos1

Шаг 3 — Если попытка успешна, то она отображает все действительные учетные данные для пользователя.

dos3

Шаг 4 — Теперь войдите в систему с каждым из этих пользователей по крайней мере в 3 различных сеансах, чтобы сделать успешную DoS-атаку. Поскольку мы знаем, что соединение с БД может обрабатывать только два потока, при использовании всех входов в систему он создаст три потока, что сделает атаку успешной.

dos4

Профилактические механизмы

  • Выполните тщательную проверку ввода.

  • Избегайте операций с высокой загрузкой процессора.

  • Лучше отделить диски с данными от системных дисков.

Выполните тщательную проверку ввода.

Избегайте операций с высокой загрузкой процессора.

Лучше отделить диски с данными от системных дисков.

Тестирование безопасности — выполнение вредоносных файлов

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

пример

Некоторые из классических примеров включают в себя —

  • Загрузите файл .jsp в веб-дерево.
  • Загрузите .gif для изменения размера.
  • Загрузите огромные файлы.
  • Загрузите файл, содержащий теги.
  • Загрузить файл .exe в веб-дерево.

Руки вверх

Шаг 1 — Запустите WebGoat и перейдите к разделу «Вредоносный файл». Снимок сценария приведен ниже —

malacious_file_execution

Шаг 2 — Чтобы завершить этот урок, нам нужно загрузить guest.txt в указанном выше месте.

Шаг 3 — Давайте создадим файл jsp так, чтобы файл guest.txt создавался при выполнении jsp. Именование jsp не играет никакой роли в этом контексте, так как мы выполняем содержимое файла jsp.

<HTML> 
   <% java.io.File file = new 
      java.io.File("C:\\Users\\username$\\.extract\\webapps\\WebGoat\\mfe_target\\guest.txt"); 
      file.createNewFile(); %> 
</HTML>

Шаг 4 — Теперь загрузите файл JSP и скопируйте расположение ссылки там же после загрузки. Загрузка ожидает изображение, но мы загружаем jsp.

malacious_file_execution1

Шаг 5 — Перейдя к файлу jsp, пользователь не получит никаких сообщений.

Шаг 6 — Теперь обновите сеанс, в который вы загрузили файл jsp, и вы получите сообщение «Поздравляем. Вы успешно завершили урок».

malacious_file_execution2

Профилактические механизмы

  • Защищайте веб-сайты, используя разрешения веб-сайтов.
  • Принять контрмеры для безопасности веб-приложений.
  • Понимать встроенные учетные записи пользователей и групп в IIS 7.0.

Тестирование безопасности — Инструменты автоматизации

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

Инструменты с открытым исходным кодом

Некоторые инструменты тестирования безопасности с открытым исходным кодом, как дано —

S.No. Имя инструмента
1

Zed Attack Proxy

Предоставляет автоматические сканеры и другие инструменты для выявления недостатков безопасности.

https://www.owasp.org

2

OWASP WebScarab

Разработано в Java для анализа запросов Http и Https.

https://www.owasp.org/index.php

3

OWASP Мантра

Поддерживает многоязычную среду тестирования безопасности

https://www.owasp.org/index.php/OWASP_Mantra_-_Security_Framework

4

Отрыжка прокси

Инструмент для перехвата и Modyfying трафика и работает с работой с пользовательскими сертификатами SSL.

https://www.portswigger.net/Burp/

5

Firefox Tamper Data

Используйте tamperdata для просмотра и изменения заголовков HTTP / HTTPS и параметров публикации

https://addons.mozilla.org/en-US

6

Инструменты веб-разработчика Firefox

Расширение Web Developer добавляет различные инструменты для веб-разработчиков в браузер.

https://addons.mozilla.org/en-US/firefox

7

Редактор файлов cookie

Позволяет пользователю добавлять, удалять, редактировать, искать, защищать и блокировать куки

https://chrome.google.com/webstore

Zed Attack Proxy

Предоставляет автоматические сканеры и другие инструменты для выявления недостатков безопасности.

https://www.owasp.org

OWASP WebScarab

Разработано в Java для анализа запросов Http и Https.

https://www.owasp.org/index.php

OWASP Мантра

Поддерживает многоязычную среду тестирования безопасности

https://www.owasp.org/index.php/OWASP_Mantra_-_Security_Framework

Отрыжка прокси

Инструмент для перехвата и Modyfying трафика и работает с работой с пользовательскими сертификатами SSL.

https://www.portswigger.net/Burp/

Firefox Tamper Data

Используйте tamperdata для просмотра и изменения заголовков HTTP / HTTPS и параметров публикации

https://addons.mozilla.org/en-US

Инструменты веб-разработчика Firefox

Расширение Web Developer добавляет различные инструменты для веб-разработчиков в браузер.

https://addons.mozilla.org/en-US/firefox

Редактор файлов cookie

Позволяет пользователю добавлять, удалять, редактировать, искать, защищать и блокировать куки

https://chrome.google.com/webstore

Специальные наборы инструментов

Следующие инструменты могут помочь нам определить определенный тип уязвимости в системе:

S.No. Ссылка на сайт
1

DOMinator Pro — Тестирование для DOM XSS

https://dominator.mindedsecurity.com/

2

OWASP SQLiX — SQL-инъекция

https://www.owasp.org/index.php

3

Sqlninja — SQL-инъекция

http://sqlninja.sourceforge.net/

4

SQLInjector — SQL-инъекция

https://sourceforge.net/projects/safe3si/

5

sqlpowerinjector — SQL-инъекция

http://www.sqlpowerinjector.com/

6

SSL Digger — Тестирование SSL

https://www.mcafee.com/us/downloads/free-tools

7

THC-Hydra — пароль грубой силы

https://www.thc.org/thc-hydra/

8

Брут — пароль грубой силы

http://www.hoobie.net/brutus/

9

Ncat — пароль грубой силы

https://nmap.org/ncat/

10

OllyDbg — тестирование переполнения буфера

http://www.ollydbg.de/

11

Spike — тестирование переполнения буфера

https://www.immunitysec.com/downloads/SPIKE2.9.tgz

12

Metasploit — тестирование переполнения буфера

https://www.metasploit.com/

DOMinator Pro — Тестирование для DOM XSS

https://dominator.mindedsecurity.com/

OWASP SQLiX — SQL-инъекция

https://www.owasp.org/index.php

Sqlninja — SQL-инъекция

http://sqlninja.sourceforge.net/

SQLInjector — SQL-инъекция

https://sourceforge.net/projects/safe3si/

sqlpowerinjector — SQL-инъекция

http://www.sqlpowerinjector.com/

SSL Digger — Тестирование SSL

https://www.mcafee.com/us/downloads/free-tools

THC-Hydra — пароль грубой силы

https://www.thc.org/thc-hydra/

Брут — пароль грубой силы

http://www.hoobie.net/brutus/

Ncat — пароль грубой силы

https://nmap.org/ncat/

OllyDbg — тестирование переполнения буфера

http://www.ollydbg.de/

Spike — тестирование переполнения буфера

https://www.immunitysec.com/downloads/SPIKE2.9.tgz

Metasploit — тестирование переполнения буфера

https://www.metasploit.com/

Коммерческие инструменты для тестирования Black Box

Вот некоторые из коммерческих инструментов тестирования черного ящика, которые помогают нам выявлять проблемы безопасности в разрабатываемых нами приложениях.

S.No Инструмент
1

NGSSQuirreL

https://www.nccgroup.com/en/our-services

2

IBM AppScan

https://www-01.ibm.com/software/awdtools/appscan/

3

Веб-сканер уязвимостей Acunetix

https://www.acunetix.com/

4

NTOSpider

https://www.ntobjectives.com/products/ntospider.php

5

SOAP UI

https://www.soapui.org/Security/getting-started.html

6

Netsparker

https://www.mavitunasecurity.com/netsparker/

7

HP WebInspect

http://www.hpenterprisesecurity.com/products

NGSSQuirreL

https://www.nccgroup.com/en/our-services

IBM AppScan

https://www-01.ibm.com/software/awdtools/appscan/

Веб-сканер уязвимостей Acunetix

https://www.acunetix.com/

NTOSpider

https://www.ntobjectives.com/products/ntospider.php

SOAP UI

https://www.soapui.org/Security/getting-started.html

Netsparker

https://www.mavitunasecurity.com/netsparker/

HP WebInspect

http://www.hpenterprisesecurity.com/products

Бесплатные анализаторы исходного кода

S.No Инструмент
1

OWASP Orizon

https://www.owasp.org/index.php

2

OWASP O2

https://www.owasp.org/index.php/OWASP_O2_Platform

3

SearchDiggity

https://www.bishopfox.com/resources/tools

4

FXCop

https://www.owasp.org/index.php/FxCop

5

лубок

http://splint.org/

6

благодеяние

https://www.cs.berkeley.edu/~daw/boon/

7

W3af

http://w3af.org/

8

Flawfinder

https://www.dwheeler.com/flawfinder/

9

FindBugs

http://findbugs.sourceforge.net/

OWASP Orizon

https://www.owasp.org/index.php

OWASP O2

https://www.owasp.org/index.php/OWASP_O2_Platform

SearchDiggity

https://www.bishopfox.com/resources/tools

FXCop

https://www.owasp.org/index.php/FxCop

лубок

http://splint.org/

благодеяние

https://www.cs.berkeley.edu/~daw/boon/

W3af

http://w3af.org/

Flawfinder

https://www.dwheeler.com/flawfinder/

FindBugs

http://findbugs.sourceforge.net/

Коммерческие анализаторы исходного кода

Эти анализаторы изучают, обнаруживают и сообщают о слабых местах исходного кода, которые подвержены уязвимостям —

Parasoft C / C ++ test

https://www.parasoft.com/cpptest/

HP Fortify

http://www.hpenterprisesecurity.com/products

AppScan

http://www-01.ibm.com/software/rational/products

Veracode

https://www.veracode.com

Armorize CodeSecure

http://www.armorize.com/codesecure/

GrammaTech

https://www.grammatech.com/