8 инструментов с открытым кодом для тестирования безопасности сайта


Оглавление (нажмите, чтобы открыть):

Российские сайты взламывают с помощью инструмента тестирования безопасности браузеров

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

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

Среди российских ресурсов, взломанных с помощью BeEF, — сайты посольства одной из стран Ближнего Востока в РФ, организации по управлению внешней торговлей, компании по развитию бизнеса за рубежом и форум разработчиков игр.

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

«Легальные инструменты с открытым исходным кодом, предназначенные изначально для проведения тестов на проникновение, и раньше применялись для проведения целевых атак, но теперь это стало трендом. Фреймворк BeEF особенно популярен среди самых разных кибергруппировок по всему миру. Сотрудникам отделов безопасности следует обратить на это внимание, чтобы принять меры для защиты организаций от атак данного типа», — предупреждает Курт Баумгартнер, ведущий антивирусный эксперт «Лаборатории Касперского».

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

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

Основные цели тестирования безопасности

  1. Обеспечение безопасности онлайн-транзакций
  2. Защита конфиденциальной информации от несанкционированного доступа
  3. Минимизация риска утраты, искажения или хищения данных
  4. Увеличение сопротивления DoS-атакам

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

Результаты тестирования безопасности

Мы стремимся обеспечить ясность результатов и процессов тестирования для наших клиентов. Вы получите:

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

Аудит защищенности бизнес приложений

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

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

Когда следует проводить аудит приложений?

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

Типы приложений требующих проведения аудита безопасности

SAP-системы – обеспечение защищенности корпоративных систем управления ресурсами предприятия (ERP-систем) является одной из важнейших задач служб информационной безопасности современных компаний.

СУБД Oracle – анализ защищенности корпоративных сетей все чаще показывает, что в целом уровень безопасности заметно возрос, однако ряду проблем до сих пор не уделяется должного внимания. Одна из них – это защищенность корпоративных систем управления базами данных (СУБД).

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

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

Интеграционные шины (Enterprise Service Bus, ESB) позволяют реализовать обмен данными как между внутренними системами, такими как ERP или АБС, так и между компаниями-партнерами.

Встроенные системы (Embedded) – компьютерные системы, предназначенные для выполнения определенных специфичных задач.

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

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

Пример группы тестов аудита безопасности сайта/веб-приложения

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

Configuration Management Testing – т естирование настроек системы. На данном этапе производится поиск уязвимых компонентов серверного ПО и выявление небезопасных настроек хостинга.

Authentication/Authorization bypass – т естирование механизмов аутентификации и авторизации. На данном этапе производится проверка возможности получения нелегитимного доступа к компонентам системы через обход механизмов аутентификации и авторизации.


Session Management Testing – т естирование механизмов управления сессиями. Проверяется возможность фиксации сессии (Session Fixation), подделки межсайтовых запросов (Сross Site Request Forgery) и др.

Business Logic Testing – т естирование механизмов логики приложения. На данном этапе проводится анализ уязвимых мест в логике веб приложения, например, возможность совершить действие без соответствующего на то разрешения, проведения двойных транзакций (Race Condition)).

Data Val >естирование механизмов проверки входных данных. Проверяется возможность внедрения произвольного кода (SQL Injection, XML Injection, XSS, Code Injection, B/H/S overflows) через очевидные и неочевидные точки входа в приложение.

Insecure File Uploading – н ебезопасная загрузка файлов на сервер. На данном этапе проводится проверка на возможность загрузки файлов, содержащих код (включая вредоносный), который, впоследствии, может быть выполнен на сервере.

Виды уязвимостей программного обеспечения

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

  • XSS (Cross-Site Scripting) – это вид уязвимости программного обеспечения (Web приложений), при которой, на генерированной сервером странице, выполняются вредоносные скрипты, с целью атаки клиента.
  • XSRF / CSRF (Request Forgery) – это вид уязвимости, позволяющий использовать недостатки HTTP протокола, при этом злоумышленники работают по следующей схеме: ссылка на вредоносный сайт установливается на странице, пользующейся доверием у пользователя, при переходе по вредоносной ссылке выполняется скрипт, сохраняющий личные данные пользователя (пароли, платежные данные и т.д.), либо отправляющий СПАМ сообщения от лица пользователя, либо изменяет доступ к учетной записи пользователя, для получения полного контроля над ней.
  • Code injections (SQL, PHP, ASP и т.д.) – это вид уязвимости, при котором становится возможно осуществить запуск исполняемого кода с целью получения доступа к системным ресурсам, несанкционированного доступа к данным либо выведения системы из строя.
  • Server-S > – это вид уязвимости, использующий вставку серверных команд в HTML код или запуск их напрямую с сервера.
  • Authorization Bypass – это вид уязвимости, при котором возможно получить несанкционированный доступ к учетной записи или документам другого пользователя

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

  • Контроль доступа – определяет проблемы, связанные с несанкционированным доступом пользователей к информации и функциям в зависимости от предоставленной роли. Тестирование конфигурации ролевой модели.
  • Аутентификация – позволяет удостовериться в отсутствии возможности обойти процедуру регистрации и авторизации; убедиться в корректности управления пользовательскими данными, исключить возможность получения информации о зарегистрированных пользователях и их учетных данных.
  • Валидация входных значений – используется для проверки алгоритмов обработки данных, включая некорректные значения, прежде, чем на них будет ссылаться приложение.
  • Криптография – обнаруживает проблемы, связанные с шифрованием, дешифрованием, подписью, верификацией подлинности, в том числе включая уровень сетевых протоколов, работу с временным файлами и cookies.
  • Механизмы обработки ошибок – включает проверку системных ошибок приложения на отсутствие факта раскрытия информации о внутренних механизмах безопасности (например, посредством демонстрации исключений, программного кода).
  • Конфигурация сервера – ищет в многопоточных процессах ошибки, связанные с доступностью значений переменных для совместного использования другими приложениями и запросами.
  • Интеграция со сторонними сервисами – позволяет убедиться в невозможности манипуляции данными, передаваемыми между приложением и сторонними компонентами, например, платежными системами или соцсетями.
  • Проверка устойчивости к Dos/DDos атакам – проверяет способность приложения обрабатывать незапланированно высокие нагрузки и большие объемы данных, которые могут быть направлены на выведение приложения из строя.

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

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

AnnaDavydova

Перевожу для codeby

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

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

Information Security Squad

Интересный отчет Symantec показывает, что 76% отсканированных веб-сайтов имели вредоносное ПО.

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

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

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

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

Существует два типа сканера.

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

Acunetix
Detectify
Qualys

Open Source / Бесплатные — вы можете загружать и выполнять проверку безопасности по требованию.

Не все из них смогут охватить широкий спектр уязвимостей, таких как коммерческий.

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

1. Arachni

Arachni — высокопроизводительный сканер безопасности, построенный на основе Ruby для современных веб-приложений.

Он доступен в двоичном формате для Mac, Windows и Linux.

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

Он выполняет активные и пассивные проверки.


Windows, Solaris, Linux, BSD, Unix
Nginx, Apache, Tomcat, IIS, Jetty
Java, Ruby, Python, ASP, PHP
Django, Rails, CherryPy, CakePHP, ASP.NET MVC, Symfony

Некоторые из обнаруженных уязвимостей:

NoSQL / Blind / SQL / Code / LDAP / Command / XPath injection
Подделка запросов межсайтовый скриптинг
Обход пути
Включение локального / удаленного файла
Разделение ответа
Межсайтовый скриптинг
Неопределенные перенаправления DOM
Раскрытие исходного кода

2. XssPy

Сканер уязвимостей XSS (межсайтовый скриптинг) на основе python используется многими организациями, включая Microsoft, Stanford, Motorola, Informatica и т.д.

XssPy by Faizan Ahmad — умный инструмент. Вместо того, чтобы просто проверять домашнюю страницу или страницу, она проверяет всю ссылку на веб-сайтах.

XssPy также проверяет субдомен.

3. w3af

w3af, проект с открытым исходным кодом, начатый еще в конце 2006 года, основан на Python и доступен для Linux и ОС Windows. w3af способен обнаруживать более 200 уязвимостей, включая OWASP top 10.

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

CSV
HTML
Консоль
Текст
XML
Эл. адрес

Он построен на архитектуре плагина, и вы можете проверить все доступные плагины.

4. Nikto

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

Nikto выполняет всесторонний тест на более чем 6500 предметов риска.

Он поддерживает HTTP-прокси, SSL, с аутентификацией NTLM и т. д.

И может определять максимальное время выполнения для каждого целевого сканирования.

Nikto также доступен в Kali Linux.

5. Wfuzz

Wfuzz (Web Fuzzer) — это инструмент оценки приложений для тестирования на проникновение.

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

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

6. OWASP ZAP

ZAP (Zet Attack Proxy) — один из известных инструментов тестирования на проникновение, который активно обновляется сотнями добровольцев во всем мире.

Это кросс-платформенный Java-инструмент, который может работать даже на Raspberry Pi.

ZIP находится между браузером и веб-приложением для перехвата и проверки сообщений.

Некоторым из следующих функций ZAP, которые следует упомянуть.

Fuzzer
Автоматический и пассивный сканер
Поддержка нескольких языков сценариев
Принудительный просмотр

7. Wapiti

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

Это не проверка безопасности исходного кода, а скорее проверка блэк боксов.

Он поддерживает методы GET и POST HTTP, прокси HTTP и HTTPS, несколько аутентификаций и т. д.

8. Vega

Vega разработан Subgraph, многоплатформенное программное обеспечение, написанное на Java, для поиска XSS, SQLi, RFI и многих других уязвимостей.

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

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

9. SQLmap

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

Он работает с Python 2.6 или 2.7 на любой ОС. Если вы хотите найти SQL-инъекцию и использовать базу данных, то sqlmap будет полезен как никогда.

10. Grabber

Это небольшой инструмент, основанный на Python, делает несколько вещей достаточно хорошо.

Некоторые из функций Grabber:


Анализатор исходного кода JavaScript
Межсайтовый скриптинг, SQL-инъекция, слепое внедрение SQL
Тестирование PHP-приложений с использованием PHP-SAT

11. Golismero

Фреймворк для управления и запуска некоторых популярных инструментов безопасности, таких как Wfuzz, DNS recon, sqlmap, OpenVas, анализатор роботов и т. д.).

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

12. OWASP Xenotix XSS

Xenotix XSS OWASP — это расширенная инфраструктура для поиска и использования межсайтовых скриптов.

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

13. Metascan

Сканер по поиску уязвимостей веб-приложений от отечественных разработчиков

Тестирование безопасности: изнутри и снаружи

ИНТРО

Добрый день, товарищи!

Сегодня мы поговорим о тестировании безопасности веб-приложений. Сам я инженер по тестированию, по образованию – специалист по информационной безопасности, а по жизни – параноик.

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

1. СНАРУЖИ

Ни для кого не секрет, что количество сетевых атак неуклонно растет. Каждый день их совершается около 1000, подсчитать же их число за год практически невозможно (это наглядно видно из статьи Стива Моргана). Атакам подвергаются самые разные сетевые ресурсы – от сайта местного провайдера до федерального размера ( агентурной ) торговой сети суши и атомных станций. Можно даже посмотреть на интерактивную карту кибератак в режиме онлайн.

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

Давайте рассмотрим безопасность подробнее, ведь «в действительности все не так, как на самом деле» (с).

1.1 Что же такое тестирование? А тестирование безопасности? А тестирование безопасности веб-приложения или веб-сервера (нужное подчеркнуть)?

Тестирование – это процесс достижения совершенства. А тестирование безопасности – процесс достижения совершенства в открытом космосе при условии, что с Вашим скафандром что-то не так �� Но если вернуться на Землю, то тестирование безопасности веб-приложения – это попытка найти все те места, в которых могли допустить ошибку разработчики или просто не предусмотреть / забыть (подчеркните ваш случай).

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

1.2 Для чего все это нужно? Почему так много компаний заинтересовано в проведении тестирования безопасности?

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

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

Существуют компании, которые уже взломали, и компании, которые еще не взломали. На практике это вопрос времени. Правильные компании, которые тратят на безопасность значительную часть прибыли, – это нормальный порядок вещей для всего цивилизованного мира. В нашей стране, к сожалению, пока к этому не пришли, считая, что «хата наша с краю» студент-старшекурсник вполне способен настроить одну «циску» и запретить доступ к внутренним ресурсам извне (мол, «денег нет, но вы держитесь»). Ведь мы не привыкли тратить деньги на свою безопасность: бюджет отделов по информационной безопасности (ИБ) обычных компаний только сокращается. А ведь ежегодный ущерб от атак насчитывает более 85 млрд. $. С другой стороны, многие адекватные компании (читай, иностранные) формируют собственный штат по информационной безопасности, другие многие нанимают специалистов на аутсорс, немногие запускают программы баг-баунти, где любой желающий может принять участие в поиске уязвимостей. Безусловно, все они хотят сохранить свои доходы и свою репутацию.

1.3 На что и на кого ориентировано тестирование безопасности? Кто получит выгоду от этого в первую очередь?

Конечно же, безопасность в первую очередь ориентирована на $ ☺. Кто говорит, что это не так, – нагло врет вам в лицо :).

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

2. ИЗНУТРИ

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

2.1 Как тестирование безопасности выглядит изнутри? Чем руководствуется инженер? Как выставляет приоритеты?

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

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

К сожалению, некоторые курсы по тестированию безопасности / анализу защищенности / аудиту безопасности в интернете внушают, что достаточно пройтись по веб-приложению каким-нибудь сканером безопасности – и все готово! Отчет есть, уязвимости – вот они! Что же еще вам нужно? Но не стоит быть таким наивным. Большинство уязвимостей ищется и находится именно вручную, при внимательном изучении. Они могут быть совершенно несложными, но автоматические сканеры пока еще не способны их обнаружить.

2.2 Несколько слов об OWASP TOP 10.

Классификацией векторов атак и уязвимостей занимается сообщество OWASP (Open Web Application Security Project) – международная некоммерческая организация, сосредоточенная на анализе и улучшении безопасности программного обеспечения.

OWASP (https://www.owasp.org/) составил список из 10-и самых опасных уязвимостей, которым могут быть подвержены интернет-ресурсы. Сообщество обновляет и пересматривает этот список раз в три года, поэтому он содержит актуальную информацию. Последнее обновление было сделано 2020 году («Огласите весь список, пожалуйста!» (с)):

    • Внедрение кода;
    • Некорректная аутентификация и управление сессией;
    • Утечка чувствительных данных;
    • Внедрение внешних XML– сущностей (XXE);

    • Нарушение контроля доступа;
    • Небезопасная конфигурация;
    • Межсайтовый скриптинг;
    • Небезопасная десериализация;
    • Использование компонентов с известными уязвимостями;
    • Отсутствие журналирования и мониторинга.

2.3 Методика тестирования. GuidLine от OWASP.

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

Итак, весь процесс тестирования состоит из двух этапов:

    • Пассивный, во время которого тестировщик пытается понять логику приложения и «играет» с ним. Могут использоваться инструменты для сбора информации. Например, с помощью HTTP прокси можно изучить все HTTP-запросы и ответы. В конце данного этапа тестировщик должен понимать все точки входа приложения (HTTP-заголовки, параметры, куки и пр.).
    • Активный. Во время данного этапа тестировщик проводит тесты в соответствии с методологией. Все тесты разбиты на одиннадцать подразделов:
    • сбор информации;
    • тестирование конфигурации;
    • тестирование политики пользовательской безопасности;
    • тестирование аутентификации;
    • тестирование авторизации;
    • тестирование управления сессией;
    • тестирование обработки пользовательского ввода;
    • обработка ошибок;
    • криптография;
    • тестирование бизнес-логики;
    • тестирование уязвимостей на стороне пользователя.

2.4 Переход к технической стороне вопроса. Инструментарий – ручной или автоматизированный? Какой для чего?

Какие инструменты используются для анализа безопасности? Оценив объемы бедствия, следует сбежать рассмотреть существующие инструменты. Конечно же, главные Ваши аргументы против несправедливости в сетевых именах – это глаза и мозг �� На самом же деле, добрые люди разработали огромный инструментарий – начиная от специализированных скриптов, «заточенных» для какой-то одной конкретной цели, и заканчивая целыми комбайнами — готовыми выжать максимальные выводы из минимума вводных. К сожалению, часто такой результат оказывается лже-срабатыванием. Как правило, инженер по тестированию при выборе инструментов основывается на приоритетах: что важнее – время или область покрытия? Современные разработчики довели автоматизацию до небывалых высот, поэтому можно смело следовать принципу Парето: 80% работы скармливать автоматизированным анализаторам, а все оставшееся «проходить руками». Но, честно говоря, результаты автоматизированных средств все равно придется изучать и проверять.

Приведем небольшой список категорий инструментов:

    • сканеры веб-уязвимостей;;
    • инструменты для эксплуатации уязвимостей;

    • инструменты криминалистики;
    • сканеры портов;
    • инструменты мониторинга трафика;
    • отладчики;
    • руткит детекторы;
    • инструменты шифрования;
    • инструменты для брутфорса.

2.5 Откуда же возникают все эти уязвимости?

Из-за разгильдяйства разработчиков. Из-за невнимательности. Из-за халтуры. Из-за лени. Из-за-за…

Но чаще всего уязвимости возникают из-за неопытности. Не все разработчики представляют себе, как злоумышленник будет атаковать их продукт. Некоторые считают, что достаточно экранировать кавычку («’») в пользовательском вводе или спастись «magic_quotes» – и можно будет избежать SQL-инъекции. Отсюда и получается, что превентивные меры мы принимаем, а что делать дальше – не знаем. И WAF’ы нас не спасут.

АУТРО

В качестве заключения:

Человек – существо несовершенное. Ему свойственно ошибаться. Но каждая ошибка – это повод двигаться вперед. Люди разрабатывают информационные системы, и эти системы, подобно творцам, такие же несовершенные. Поэтому каждая ошибка, каждая уязвимость – это шаг на долгом пути к совершенству.

Chronicles of Inspiring Testing

All sides of my imagination for Testing

Инструменты для тестирования безопасности

Обеспечение должной безопасности веб-приложений — это очень важная, актуальная и не простая задача, с которой сталкиваются все команды, разрабатывающие соотвествующие продукты. Думать о безопасности следует начинать как можно раньше. Тестирование безопасности обеспечивает обратную связь команде о состоянии продукта. Согласно ISO 9126 тестирование безопасности является частью функционального тестирования. SWEBOK определяет тестирование безопасности как проверку того, что программное обеспечение защищено от внешних атак: в частности, включает проверки конфиденциальности, целостности и доступности систем и их данных. Решить эту непростую задачу помогают автоматизированные инструменты тестирования, направленные на поиск уязвимостей продукта.

Тестирование безопасности в автоматизированном режиме обладает следующими основными преимуществами:

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

ВАЖНО: автоматизация не заменяет человеческого участия в процессе: результаты, полученные в результате выполнения автоматизированных тестов, необходимо оценить с критической точки зрения и проанализировать для принятия дальнейших решений.

Web Application Attack and Audit Framework(w3af)

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

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

SkipFish

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

  • Высокая скорость работы (до 2000 запросов в секунду).
  • Простота в использовании.
  • Отчет с результатами тестирования в формате html.
  • Длительное время сканирования.

SQLMap

SQLMap бесплатный сканер с открытым исходным кодом, главная задача которого — автоматизированный поиск и эксплуатация SQL-инъекций. Основной особенностью сканера является эксплуатация найденной уязвимости, кроме того это:

  • поддержка 5 основных классов SQL-инъекций: boolean-based blind, time-based blind, error-based, UNION query, stacked queries.
  • поддержка различных баз данных: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB and Informix.
  • возможность сделать дамп БД.
  • Генерируемых отчет в html-формате: используем python-скрипт в командной строке SQLMap: «/tmp/scan_out.txt»

Полный список особенностей и основной сценарий работы можно посмотреть в статье (на русском). Полезная статья об использовании SQLMap на owasp.org.

Acunetix Web Vulnerability Scanner

Acunetix платный автоматизированный сканер безопасности web-приложений (есть бесплатная десктопная версия на 14 дней, также доступна бесплатная веб-версия). Ищет множество уязвимостей, включая SQL-инъекции, межсайтовый скриптинг и слабые пароли. Особенности работы сканера:

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

Nikto


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

Для геренации отчета с результатами тестирования в формате html используем команду:

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

Burp Suite

Burp Suite — это платная (бесплатная содержит ограниченный функционал) мощная платформа для тестирования безопасности веб-приложений как в ручном так и автоматизированном режимах с интуитивно понятным интерфейсом, включает инструменты по созданию карты веб-приложения, изменения запросов, фаззинга и т.д. Является одним из самых популярных инструментов тестирования безопасности, как говорится «его рекомендуют друзьям». Основной функционал представлен в следующих модулях:

  • Proxy — перехватывающий прокси-сервер, работающий по протоколу HTTP(S) в режиме man-in-the-middle. Требуется также прописать прокси в целевом браузере, а для перехвата запросов по HTTPS установить сертификаты безопасности.
  • Spider — паук, собирающий в автоматическом режиме информацию о об архитектуре веб-приложения.
  • Scanner — автоматический сканер уязвимостей, который доступен только в professional версии.
  • Intruder — утилита, позволяющая в автоматическом режиме производить атаки различного вида, с возможностью загрузки пользовательских файлов. Возможно проведение таких атак как: подбор пароля, перебор идентификаторов, фаззинг и т.д.
  • Repeater — позволяет изменять и отправлять повторно отдельные запросы и получать ответы для дальнейшего анализа.
  • Sequencer — инструмент, используемый для генерации случайных непредсказуемых данных.
  • Decoder — полезный инструмент для ручного или автоматизированного де/кодирования данных приложения.
  • Comparer — удобная утилита для выявления различий в данных.

Среди особенностей стоит отметить:

  • возможность обнаружения большого числа разнообразных уязвимостей.
  • поддержку ряда веб-технологии: REST, JSON, AJAX и SOAP,
  • возможность тестирования безопасности мобильный приложений платформы iOS (Burp Suite Mobile Assistant).
  • Отчет содержит не только список проверок, но и рекомендации по устранению уязвимостей.

Документация по Burp Suite на английском. Основной сценарий работы включая установку, настройку и запуск можно посмотреть тут и обзорная статья на Хабре.

OWASP ZAP

OWASP Zed Attack Proxy Project (ZAP) — один из самых известных инструментов для тестирования безопасности веб-приложений. Является бесплатным кросс-платформенным, простым в использовании, мультиязычным (переведен на множество языков) инструментом с открытым исходным кодом. Включает в себя: перехватывающий прокси, активный и пассивный сканеры, поддержку веб-сокетов, поддержку аутентификаций и сессий, поддержку большого кол-ва скриптовых языков и т.д.

Список всей необходимой документации доступен здесь. OWASP ZAP является один из самых активных проектов OWASP

Netsparker

Netsparker платный инструмент для поиска уязвимостей для всех типов веб-приложений, таких как SQL Injection и Cross-Site Scripting (XSS). Есть как десктопное так и облачное решение Netsparker Cloud. Очень прост в использовании, следует указать только адрес целевого ресурса, логин и пароль пользователя, под которым выполнять аутентификацию, а также выбрать скорость тестирования. Отчет о ходе тестирования отображается в реальном времени. Также инструмент анализирует структуру веб-сайта на предмет раскрытия служебной информации, такой как резервные копии данных, отладочные веб-скрипты, скрытые каталоги и т.д. Среди особенностей стоит отметить:

  • Полная поддержка HTML 5.
  • Поддержка AJAX / JAVASCRIPT.
  • Поддержка веб-ресурсов, использующих механизм защиты ANTI-CSRF TOKEN.
  • По результатам тестирования оценивается состояние продукта, предоставляется подробная информация о найденных уязвимостях.

Документация на английском тут.

MindMap основного сценария использования сканеров.

Итоги

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

Благодарности

Хочу выразить благодарность Веселину Андрею за помощь в подготовки материалов, а также проведенное тестирование безопасности наших веб-приложений. Также хочу поблагодарить Хлебухова Александра и Ивакина Дмитрия за дельные замечания. Спасибо всем большое)

Как защитить веб-приложение: основные советы, инструменты, полезные ссылки

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

Если задаться целью, уязвимость в приложении найдётся. В отчете о хакерских атаках на сайты за 2020 год эксперты Google сообщили о том, что количество взломанных ресурсов увеличилось на 32% по сравнению с 2015 годом, и это не предел. Помните об этом и отбросьте заблуждения о неприступности своих веб-ресурсов, когда планируете работы по информационной безопасности.

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

Советы по защите веб-приложения от хакеров

Используйте инструменты для анализа защищенности

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

Ниже приведена подборка бесплатных инструментов.

Приложения и фреймворки

  • OpenVAS сканирует узлы сети на наличие уязвимостей и позволяет управлять уязвимостями.
  • OWASP Xenotix XSS Exploit Framework сканирует ресурс на возможность эксплуатации XSS-уязвимостей.
  • Approof от Positive Technologies проверяет конфигурацию веб-приложения, сканирует на наличие уязвимых компонентов, незащищенных чувствительных данных и вредоносного кода.

Онлайн-сервисы


  • SecurityHeaders.io проверяет на наличие и корректность заголовков ответа сервера, отвечающих за безопасность веб-приложения.
  • Observatory by Mozilla сканирует ресурс на наличие проблем безопасности. Кроме своих результатов, при выборе соответствующей опции, собирает и добавляет к отчету аналитику со сторонних сервисов анализа защищённости.
  • One button scan сканирует на наличие уязвимостей компоненты ресурса: DNS, HTTP-заголовки, SSL, чувствительные данные, используемые сервисы.
  • CSP Evaluator проверяет правильность составления политики безопасности содержимого (CSP) и устойчивость к XSS.
  • SSL Server Test выполняет анализ SSL-конфигурации веб-сервера.
  • ASafaWeb проверяет на наличие распространённых уязвимостей конфигурации сайтов, написанных на ASP.NET.
  • Snyk сканирует JavaScript, Ruby и Java-приложения на наличие уязвимостей и, при необходимости, исправляет проблемы безопасности. Интегрируется с GitHub репозиторием для проведения автоматической проверки и оповещает о найденных уязвимостях.

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

14 ноября в 18:30, Витебск, беcплатно

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

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

Если автоматической проверки мало, попытайтесь вручную взломать свой ресурс, изменяя значения POST и GET запросов. Здесь может помочь отладочный прокси-сервер (например, Fiddler), так как он перехватывает значения HTTP запросов между браузером и сервером. Уделите отдельное внимание формам — попробуйте обойти валидацию, чтобы внедрить XSS-инъекцию.

Если на сайте есть страницы, которые доступны только после аутентификации, попробуйте выдать себя за другого пользователя. Для этого измените параметры URL (например, ID пользователя) или значения Cookie.

Защитите пользовательские данные с помощью HTTPS

HyperText Transfer Protocol Secure (HTTPS) — расширение HTTP, которое поддерживает шифрование и защищает данные пользователей при передаче в Интернете. HTTPS гарантирует целостность и конфиденциальность взаимодействия с сервером. В марте этого года популярность HTTPS достигла переломного момента, и вскоре его использование станет «нормой», а не исключением, как это было раньше.

Используйте HTTPS, если пользователи передают на сервер личные данные: информацию о кредитной карте, персональные данные и даже адреса посещённых страниц. Если при отправке данных с формы авторизации устанавливаются cookie-файлы, которые потом отправляются при каждом запросе к серверу, злоумышленник может получить их и подделать запрос к серверу. В результате он перехватит сессию пользователя. Чтобы предотвратить это, используйте HTTPS на всех страницах сайта.

Это просто: SSL-сертификат генерируется бесплатно (например, на Let’s Encrypt), для большинства платформ созданы инструменты автоматического получения и установки сертификата. Остаётся только включить на сервере поддержку HTTPS.

Примечательно, что компания Google объявила планы о предоставлении сайтам, использующим защищённое соединение, преимущества в результатах поиска. Это пряник. Кнутом станут предупреждения о небезопасном соединении в браузерах, количество которых будет расти. HTTP уходит в прошлое, поэтому самое время перейти на HTTPS.

Если HTTPS уже настроен, хорошей практикой считается использование HTTP Strict Transport Security (HSTS) — заголовка ответа сервера, который запрещает для домена использование незащищённого соединения.

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

Это жизненно важно для безопасности веб-приложения. Хакеры регулярно обнаруживают и сразу же применяют новые уязвимости операционных систем и другого программного обеспечения: HTTP-серверов или систем управления контентом (CMS).

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

Если ресурс работает на базе движка стороннего производителя (CMS или форума), устанавливайте исправления безопасности сразу после выпуска. Большинство разработчиков информируют об обновлениях через рассылку или RSS-канал с описанием исправленных проблем. WordPress и Umbraco, кроме того, уведомляют о доступных обновлениях при входе в панель управления.

Многие разработчики используют менеджеры пакетов (например, Composer, NPM или RubyGems), чтобы устанавливать зависимые компоненты для приложений. В этих пакетах также обнаруживают уязвимости, поэтому следите за их обновлением. Чтобы автоматически получать уведомления о проблемах безопасности пакетов проекта, используйте инструменты вроде Gemnasium.

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

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

Если злоумышленник изменит значение parameter на ‘ OR ‘1’=’1 , запрос примет следующий вид:

Так как ‘1’ равен ‘1’ , атакующий получит доступ ко всем данным таблицы. Это позволит выполнить произвольный запрос, добавив в конец выражения SQL.

Уязвимость этого запроса легко устранить с помощью параметризации. Например, для приложения, написанного с использованием PHP и MySQLi, он выглядит так:

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

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

Например, если на странице комментариев нет проверки входных данных, злоумышленник внедряет вредоносный код JavaScript. В результате у пользователей, которые просматривают комментарий, выполняется код, и данные об авторизации из cookies-файлов отправляются атакующему.

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

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

Политика безопасности содержимого (CSP) — ещё один инструмент защиты от XSS-атак. CSP — заголовки сервера, определяющие белый список источников, откуда разрешена загрузка данных для разных типов ресурсов. Например, запрет запуска скриптов со стороннего домена или отключение функции eval() . Благодаря политикам CSP даже при внедрении вредоносного кода в страницу его выполнение становится невозможным. На официальном сайте Mozilla размещено руководство по CSP с примерами конфигураций.

Проверяйте и шифруйте пароли

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

Что касается валидации, установите ограничение на минимальную длину пароля, а также делайте проверку на совпадение с логином, e-mail и адресом сайта.

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

Контролируйте процесс загрузки файлов

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

Даже если установлено ограничение на тип (например, только изображения), относитесь к загружаемым пользователями файлам с подозрением. Расширение или MIME-тип легко подделать, чтение заголовка или использование функций проверки размера изображения не дают 100% гарантии, в большинство форматов изображений возможно внедрить код PHP, который будет выполнен на сервере.

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

Способы ограничения доступа:

  • переименовывать или изменять расширения файлов при загрузке;
  • изменять разрешения, например, на chmod 0666 ;
  • создать файл .htaccess (см. пример ниже), который откроет доступ только к указанным типам файлов.

Более безопасный способ –– запретить прямой доступ к загружаемым файлам, разместив их, например, вне папки корня сайта. Однако в этом случае потребуется создать скрипт (или обработчик HTTP в .NET), чтобы извлекать файлы из закрытой части и выдавать пользователю.

Меры защиты веб-приложений для владельцев собственных серверов:

  1. Настройте межсетевой экран, в том числе на блокировку неиспользуемых портов.
  2. При наличии доступа к серверу из локальной сети создайте демилитаризованную зону (DMZ), открыв доступ из внешнего мира только к портам 80 и 443.
  3. При отсутствии доступа к серверу из локальной сети используйте защищённые методы (SFTP, SSH и др.) для передачи файлов и управления сервером извне.
  4. Если возможно, выделите отдельный сервер для баз данных, который не будет напрямую доступен из внешнего мира.
  5. Отграничьте физический доступ к серверу.

Следите за сообщениями об ошибках

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

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

Проверяйте входящие данные

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

Распределяйте права доступа к файлам

Разрешения файла (file permissions) определяют КТО и ЧТО может с ним делать.

В *nix системах у файлов 3 варианта доступа, которые представляются в виде цифр:

  • «Read» (4) — чтение содержимого файла;
  • «Write» (2) — изменение содержимого файла;
  • «Execute» (1) — выполнение программы или скрипта.

Чтобы установить множественные разрешения, достаточно сложить их числовые значения:

  • «Чтение» (4) + «запись» (2) = 6;
  • «Чтение» (4) + «запись» (2) + «выполнение» (1) = 7.

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

  • «Owner» (владелец) — создатель файла (изменяем, но может быть только один);
  • «Group» (группа) — группа пользователей, которые получают разрешения;
  • «Others» (прочие) — остальные пользователи.

Установка владельцу прав доступа на чтение и запись, группе — на чтение, прочим — запрет доступа выглядит так:

Программы для взлома и пентестинга

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

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

Программы для взлома и пентестинга

  • MISP — Malware Information Sharing Platform, платформа для совместного использования информации о вредоносном программном обеспечении. Она помогает распространять информацию об уязвимостях, которая может использоваться специалистами по ИБ и исследователями вирусов.
  • Buttercup — кроссплатформенный менеджер паролей с открытым исходным кодом, основанный на Node.js. Поможет сохранить ваши пароли в надежном месте.
  • Anchore — инструмент для анализа состояния и безопасности контейнеров, а также для управления ими. Имеет достаточно много функций кроме сканирования безопасности;
  • Lynis — инструмент для аудита безопасности операционных систем на базе Linux, Mac OS или Unix. Позволяет провести углубленную проверку состояния.
  • osquery — этот инструмент позволяет узнать подробную информацию об операционной системе Linux, Mac OS или Windows. Он может помочь при анализе надежности архитектуры, обнаружении вторжений и проверке соответствия оригинальным файлам.
  • BetterCAP — это полноценный, модульный и очень легко расширяемый инструмент для выполнения MitM атак. Сейчас он активно разрабатывается.
  • Cyphon — это платформа для управления событиями и реагирования на входящие сообщения. Она универсальна и может использоваться для целей информационной безопасности.
  • Faraday — инструмент для совместной работы при тестировании безопасности, поддерживается интеграция с несколькими другими инструментами.
  • Nmap — это сканер безопасности, который может выполнять сканирование портов, эксплуатировать различные уязвимости сети и обнаруживать уязвимости систем.
  • Suricata — это брандмауэр и движок для обнаружения сетевых атак, который включает обнаружение вторжений (IDS), защиту от вторжений (IPS) и мониторинг сетевой безопасности (NSM).
  • Privacy Badger — расширение для браузеров, которое позволяет защитить ваши данные от различных скриптов отслеживания на веб-сайтах.
  • Social-Engineer Toolkit — инструмент с открытым исходным кодом для тестирования задач, где используется социальная инженерия.
  • THC Hydra — программа для перебора паролей путем грубой силы (brute force) в реальном времени. Инструмент работает напрямую с различными формами аутентификации, поддерживаются такие протоколы, как telnet, FTP, LDAP, SSH, SNMP, HTTP и многие другие.
  • WPScan — это набор инструментов, которые позволяют выполнять сканирование безопасности WordPress, находить уязвимости движка, искать пользователей, активные темы и плагины.
  • IVRE — программа для проведения разведки интернет трафика, использует другие инструменты для получения информации и отображает ее в веб-интерфейсе.
  • vFeed — это база данных и движок поиска информации об уязвимостях. Здесь есть база данных уязвимостей, API, а также инструменты для добавления информации в нее.
  • Hashcat — одна из самых популярных программ для взлома паролей из хэша методом перебора. Программа поддерживает разные алгоритмы, с помощью которых можно получить максимальную производительность.
  • Veil Framework — инструмент, разработанный для генерации Payload в Metasploit. Позволяет обходить защиту антивирусов.
  • Wifiphisher — это программа для выполнения автоматических фишинговых атак на Wifi точки доступа и их клиентов. Полезна для оценки безопасности.
  • FireHOL — инструмент для настройки iptables с более понятным интерфейсом. Также есть FireQOS, который реализует распределение трафика.
  • Seccubus — автоматический сканер уязвимостей, который поддерживает Nussus, OpenVAS, SSLyze, Medusa, SkipFish, OWASP ZAP, и SSLlabs.
  • pick — менеджер паролей, который работает в терминале Linux и macOS.
  • Cuckoo Sandbox — платформа для анализа вредоносных программ. Программа следит за изменениями файлов, поэтому может точно сообщить что делать программа и какие последствия это будет иметь.
  • detectem — сканер веб-приложений, который позволяет определить, какие компоненты там используются, например, JQuery, Apache и другие.
  • Vault — еще одно хранилище для хранения различных секретных данных, например, ключей или паролей.
  • Thug — инструмент мониторинга для тестирования атак на стороне клиента. Позволяет имитировать клиентское приложение, например, веб-браузер и показывает как проходит атака.
  • Decentraleyes — расширение, которое блокирует работу некоторых систем доставки контента CDN для повышения вашей безопасности.
  • SpiderFoot — это инструмент для автоматизации разведки. Позволяет собирать IP адреса, домены и сети.
  • Fail2ban — платформа для мониторинга и противодействия вторжениям. Защищает сервера от атак перебором.
  • The Sleuth Kit — инструмент для исследования образов дисков и проведения криминалистического анализа.
  • O-Saft — показывает информацию про SSL сертификаты. Позволяет тестировать SSL соединение с определенными конфигурациями и шифрами.
  • Commix — инструмент тестирования веб-приложений для обнаружения атак инъекции команды.
  • LMD — Linux Malware Detect, сканер для обнаружения вирусов и вторжений в операционных системах Linux.
  • radare2 — инструмент для реверс инженеринга файлов различных типов и форматов. Может использоваться для исследования вирусов, прошивок и других двоичных файлов.
  • YARA — помогает специалистам ИБ идентифицировать и классифицировать вирусы по определенным критериям.
  • LIEF — библиотека для анализа исполняемых файлов форматов ELF, MachO и PE. Может использоваться для реверс-инжиниринга, двоичного анализа и исследования вирусов.
  • django-guardian — расширяет систему полномочий движка django. Добавляет контроль полномочий для каждого объекта базы данных, дает более точный контроль.
  • Bro — сетевой монитор (NSM).
  • KeePassXC — кроссплатформенный менеджер паролей для хранения различной секретной информации, такой как пароли, ключи и другие данные. Графический интерфейс написан на С++.
  • DocBleach — проверяет и обезвреживает опасное содержимое в документах.
  • OpenStego — свободный инструмент для сокрытия данных в других файлах, таких как изображения или для добавления водяных знаков для них.
  • mitmproxy — инструмент, который позволяет перехватывать, просматривать, модифицировать и имитировать потоки трафика. Поддерживает работу с SSL/TLS.
  • Pocsuite — это платформа для удаленного поиска уязвимостей и тестирования на проникновение.
  • ScanSSH — инструмент для сканирования SSH на предмет открытых портов и прокси. Определяет версию и другие доступные детали.
  • SearchSploit — инструмент командной строки для поиска эксплойтов в базе данных.
  • Brakeman — статический анализатор кода для Ruby on Rails. Позволяет выявить проблемы с безопасностью.
  • Yersinia — программы для взлома сети, выполнения различных атак на уровне сети и работы с трафиком.
  • WordPress Exploit Framework (WPXF), написан на Ruby, платформа для тестирования безопасности WordPress.
  • Loki — файловый сканер для обнаружения признаков вторжения. Сравнивает файлы со своими шаблонами.
  • subuser — инструмент, который позволяет выполнять команды Linux с ограничениями. Используется только в Linux, и позволяет улучшить безопасность системы.
  • Cowrie — сервис, для эмулирования открытых портов ssh и telnet. Может использоваться для изучения методов атак и дополнительного уровня защиты в виде мониторинга.
  • SNARE — мощный инструмент для обнаружения атак, обработки потоков трафика и других задач. Преемник Glastopf.
  • ntopng — улучшенная версия ntop. Показывает использование сети, захватывает трафик и предоставляет информацию про нагрузку.
  • CAIRIS — это инструмент для моделирования безопасных систем и окружений для использования в производстве. Он помогает планировать элементы, нужные для удобства использования и анализировать риски.
  • ZAP — анализатор веб приложений, помогает найти уязвимости в веб программах, скриптах или сайтах во время разработки и тестирования.
  • jSQL Injection — это инструмент, который позволяет проверять приложения и сайты на наличие уязвимостей SQL Injection.
  • ATSCAN — это инструмент, который позволяет выполнять массовое сканирование на предмет уязвимостей с помощью поисковых систем. Обнаруженные цели уязвимы к атакам.
  • OpenSCAP — Программы для проверки систем для администраторов и специалистов ИБ.
  • Vuls — это сканер уязвимостей для Linux и FreeBSD, он написан на Go и может подключаться удаленно к системе по ssh, чтобы обнаружить уязвимости в любой программе.
  • Wireshark — очень популярный анализатор трафика, позволяет просмотреть что происходит в сети и увидеть в деталях, как работает тот или иной протокол.
  • UPX — популярный упаковщик исполняемых файлов.
  • ClamAV — антивирусный движок с открытым исходным кодом. Позволяет обнаруживать вирусы, трояны, бэкдоры, и другие виды угроз.
  • sqlmap — еще одна программа, позволяющая віполнить автоматическое сканирование на наличие SQL уязвимостей.
  • Arachni — сканер безопасности для веб-приложений.
  • mongoaudit — позволяет проводить аудит безопасности MongoDB.
  • DataSploit — это платформа разведки для обнаружения личных данных, доменов, и другой информации о целях для атаки.
  • OWTF — Offensive Web Testing Framework, платформа для тестирования веб-приложений. Большинство частей написано на Python.
  • VHostScan — это сканер сайта, который может использоваться для обнаружения всех скриптов, псевдонимов и динамических страниц.
  • Prowler — инструмент тестирования безопасности для платформы AWS. Позволяет найти проблемы в конфигурации.
  • WordPresscan — сканер безопасности для WordPress. Улучшенная версия WPScan.
  • jak — инструмент для шифрования и расшифровки секретных данных в Git репозиториях.
  • PassGen — инструмент для генерации надежных паролей.
  • SSLyze — библиотека для сканирования служб, которые используют SSL/TLS.
  • siemstress — система для отслеживания проблем с безопасностью.
  • ssh_scan — утилита для проверки конфигурации SSH сервера, разрабатываемая в Mozilla. Помогает защитить системы, использующие OpenSSH.
  • DHCPwn — инструмент для выполнения атак на DHCP.
  • RemoteRecon — инструмент, который используется после взлома для доступа к целевой системе.
  • Scirius — веб-интерфейс для управления правилами Suricata.
  • boofuzz — сканер веб-приложений, форк проекта Sulley.
  • Manticore — инструмент для двоичного анализа. Позволяет выполнять программы и тестировать их работу.
  • Kube-Bench — инструмент тестирования безопасности и производительности Kubernetes.
  • yarGen — утилита помогает составить набор правил для поиска вирусов в YARA.
  • BoopSuite — инструмент тестирования безопасности беспроводных сетей.
  • Ruler — программа для тестирования почтовых серверов, которые работают по MAPI/HTTP или RPC/HTTP.
  • jchroot — предоставляет изоляцию, похожую на chroot, но с возможностью установить более точные разрешения для доступа к системе.
  • swap_digger — помогает извлечь секретные данные из подключенного раздела подкачки в Linux.
  • eapmd5pass — позволяет выполнять атаку EAP-MD5. Для работы утилиты сначала нужно захватить нужное количество трафика.
  • TANNER — система обмена сообщениями для уведомления об атаках.
  • HoneyPy — это сервис, написанный на Python, который позволяет эмулировать работу различных служб по TCP и UDP.
  • dirsearch — инструмент для поиска секретных данных в больших архивах. Работает на основе анализа имен папок и файлов;
  • Assimilator — инструмент настройки брандмауэра. Позволяет настроить правила для проксирвоания запросов на другие типы брандмауэров.
  • Detective — помогает найти информацию, которую вам запрещено видеть. Фокусируется на утечках и уязвимостях, позволяющих получить секретные данные.
  • django-axes — это приложение для Django, которое позволяет ограничить количество попыток ввода пароля в вашем приложении.
  • HoneyPi — позволяет превратить Raspberry Pi в анализатор трафика. Это позволяет следить за всей активностью в сети.
  • MongoSanitizer — обрабатывает запросы к MongoDB, чтобы ограничить количество атак насколько это вообще возможно.
  • BleachBit — инструмент очистки системы от лишних файлов, в том числе секретных.
  • Xplico — инструмент для криминалистического анализа шаблонов трафика, из файлов pcap.
  • arping — утилита для обнаружения всех хостов в сети с помощью протокола ARP.
  • SSHsec — сканирует систему с запущенным SSH сервером, проверяет конфигурацию, ключи и группы Диффи-Хеллмана.

На завершение, небольшое видео содержащие показывающие программы информационной безопасности Kali Linux.

Выводы

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

Какие инструменты вы используете для тестирования безопасности веб-приложений?

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

Я использовал WebScarab из OWASP, но считаю его немного сложным и громоздким в использовании.

Есть ли что-нибудь еще лучше, что вы бы предложили использовать?

Вместо WebScarab попробуйте прокси-сервер Fiddler (http://www.fiddlertool.com). Гораздо удобнее.

Кроме этого, «тестирование безопасности» — очень широкий термин.
По крайней мере, у вас есть:

  • Проверка на проникновение — я использую Appscan, многие другие.
  • Обзор исходного кода/статический анализ — Fortify считается одним из лучших, я влюбился в Checkmarx (но для этого нужен парень безопасности). Дополнительная информация о вашей конкретной технологии/языке поможет вам получить более целенаправленные ответы.
  • Существуют и другие типы «тестирования безопасности», но я не знаком с другими автоматическими инструментами для этих типов.
  • В соответствии с последним моментом и более расширенным тестированием первых двух типов (PT/CR), ручное тестирование экспертом действительно является лучшим (если не самым экономичным).

У HP есть приложение для тестирования инъекций SQL под названием Scrawlr.

Fortify преуспел для нас.

Я работаю в компании, которая тестирует проникновение в веб-приложение как часть этого бизнеса. Мы используем много разных инструментов. Некоторые из них — один из инструментов Ruby для конкретных проектов или в разработанных структурах или прокси-серверах (снова Ruby). Большинство тестирования проникновения в веб-приложение выполняется с использованием webscarab, burpsuite или paros proxy. У всех есть какая-то функция ведения журнала, приличное количество мощности и недостаток или два.

Я действительно нашел webscarab самым простым в использовании. Но он не обрабатывает VIEWSTATE или делает много для поиска. Мы действительно нашли данные в VIEWSTATE, которых не должно быть, поэтому, когда мы их видим, мы склонны переключаться на другой прокси. Burpsuite — мой следующий выбор. Он обрабатывает VIEWSTATE, но интерфейс требует многого, и его результат в то время как технически более полный — он сохраняет исходные и измененные запросы/ответы — сложнее использовать.

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

tqbf имеет хорошее объяснение этого здесь.

Nikto — это сканер веб-сервера с открытым исходным кодом (GPL), который выполняет комплексные тесты против веб-серверов для нескольких элементов, в том числе более 3500 потенциально опасных файлов /CGI, версий на более чем 900 серверах и конкретных версий проблемы на более чем 250 серверах. Детали сканирования и плагины часто обновляются и могут автоматически обновляться (при желании).

Nikto не разработан как слишком скрытый инструмент. Он будет тестировать веб-сервер в кратчайшие сроки, и это довольно очевидно в файлах журналов. Тем не менее, существует поддержка методов Anti-IDS LibWhisker, если вы хотите попробовать (или проверить свою систему IDS).

Этот список также может помочь: Топ-10 сканеров уязвимостей в Интернете

CISCO Cybersecurity Essentials 2020
Контрольная работа по главе 8

В рамках кадровой политики компании физическое лицо может отказаться предоставлять информацию любой третьей стороне, кроме работодателя. Какой закон защищает конфиденциальность предоставленной личной информации?
Закон Грэмма — Лича — Блайли (GLBA)

Какие два вида информации можно найти на веб-сайте Internet Storm Center? (Выберите два варианта.)
Вакансии InfoSec
Отчеты InfoSec

Администратор учебного заведения обеспокоен раскрытием информации о студентах в результате взлома системы. Какой закон защищает данные студентов?
Закон о правах семьи на образование и неприкосновенность частной жизни (FERPA)

В компании произошло несколько инцидентов, когда пользователи загружали несанкционированное ПО, использовали запрещенные веб-сайты и личные USB-накопители. ИТ-директор хочет внедрить схему управления угрозами, исходящими от пользователей. Какие три меры могли бы использоваться для управления угрозами? (Выберите три варианта.)
Фильтрация содержимого
Отключение доступа к CD и USB
Проведение обучения по вопросам безопасности

Компания пытается снизить затраты на развертывание коммерческого программного обеспечения и рассматривает возможность использования облачных служб. Какая облачная служба будет наилучшей для размещения программного обеспечения?
ПО как услуга (SaaS)

Организация внедрила инфраструктуру частного облака. Администратору системы безопасности поручают защитить инфраструктуру от потенциальных угроз. Какие три тактики можно использовать для защиты частного облака? (Выберите три варианта.)
Отключение ping-запросов, зондирования и сканирования портов
Установка на устройства последних исправлений и обновлений для системы безопасности
Проверка входящего и исходящего трафика

В компании, которая обрабатывает информацию о кредитных картах, происходит нарушение безопасности. Какой отраслевой закон регулирует защиту данных кредитной карты?
Стандарт безопасности данных индустрии платежных карт (PCI DSS)

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

Аудитору предлагают оценить потенциальные угрозы для локальной сети компании. Какие три потенциальные угрозы может отметить аудитор? (Выберите три варианта.)
Несанкционированное сканирование портов и зондирования сети
Неправильно настроенный межсетевой экран
Открытый доступ к сетевому оборудованию

Почему для тестирования безопасности сети организации часто выбирают дистрибутив Kali Linux?
Это дистрибутив Linux с открытым исходным кодом, включающий в себя более 300 инструментов для защиты.

Какие три услуги предоставляют CERT? (Выберите три варианта.)
Разработка инструментов, продуктов и методик для анализа уязвимостей
Разработка инструментов, продуктов и методик технической экспертизы
Устранения уязвимостей программного обеспечения

Для сбора рекомендаций по защите устройств от угроз компания наняла консультанта. Какие три общие рекомендации можно выявить? (Выберите три варианта.)
Включение блокировки экрана
Отмена административных прав для пользователей
Включение автоматического антивирусного сканирования

Если лицо сознательно получает доступ к компьютеру, который связан с правительством, без разрешения, какие федеральные законы на него распространяются?
Закон о компьютерном мошенничестве (CFAA)

Что можно использовать для балльной оценки серьезности угроз в целях определения важных уязвимостей?
Национальная база данных об уязвимостях (NVD)

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

Каковы три основные категории должностей по информационной безопасности? (Выберите три варианта.)
Создающие
Наблюдающие
Определяющие

Каковы две потенциальные угрозы для приложений? (Выберите два варианта.)
несанкционированный доступ
потеря данных

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

Несанкционированные посетители вошли в офис компании и ходят по зданию. Какие две меры могут предотвратить доступ несанкционированных посетителей в здание? (Выберите два варианта.)
Регулярное проведение обучения по вопросам безопасности
Определение правил и процедур для гостей, посещающих здание

Мастер Йода рекомендует:  Величайшая программа из когда-либо написанных
Добавить комментарий