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

Аудитория

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

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

Аргумент

Мы рассмотрим два основных ресурса для изучения безопасности:

Мы также представим два новых инструмента для тестирования приложений:

Эти инструменты будут представлены в контексте OWASP Juice Shop, поэтому описание их использования см. В соответствующем разделе.

Безопасный кодовый воин

Secure Code Warrior - это веб-сайт, предлагающий банк информации о различных уязвимостях, а также функцию «тренировочной площадки», которая позволяет вам опробовать некоторые из ваших новых знаний на реальном коде!

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

Щелкнув ссылку, вы попадете на экран, показанный выше, и мы сможем приступить к выполнению своих задач.

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

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

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

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

Магазин соков OWASP

Магазин сока OWASP немного сложнее (и, на мой взгляд, немного веселее). Наиболее краткое описание инструмента предоставлено самими разработчиками:

OWASP Juice Shop - наверное, самое современное и сложное небезопасное веб-приложение! Его можно использовать в тренингах по безопасности, ознакомительных демонстрациях, CTF и в качестве подопытного кролика для инструментов безопасности! Juice Shop включает в себя уязвимости из всей десятки лучших по OWASP, а также множество других недостатков безопасности, обнаруженных в реальных приложениях!

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

Внутри Juice Shop нас встречает наша первая задача - найти скрытое табло. Форматы задач основаны на исследовании сайта в поисках уязвимостей. Открыв исходник страницы, я смог решить первое задание.

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

Первая задача, которую мы рассмотрим подробно, - дать одному из их продуктов обзор без звезд. Для этого мы также представим инструмент Burp Suite. Burp Suite самого высокого уровня - это набор инструментов кибербезопасности, используемых для тестирования на проникновение. Для нашего использования я загрузил версию сообщества и настроил ее как прокси для Firefox, чтобы перехватывать запросы.

Запустив инструмент, мы видим, что прокси запущен на 127.0.0.1:8080, перенаправляя запросы браузера через этот адрес, мы можем перехватывать их в инструменте.

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

При этом мы можем видеть запросы, отправляемые с сайта через наш прокси Burp Suite.

Затем мы можем изменить этот запрос на нулевой рейтинг, переслать его и решить задачу.

Теперь мы переходим от Burp Suite к OWASP Zed Attack Proxy (ZAP), сканеру веб-приложений, который мы можем использовать для поиска уязвимостей в Juice Shop.

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

Введя корневой URL-адрес в приложение, мы можем проиндексировать ряд страниц, содержащихся на сайте Juice Shop. Это особенно полезно при поиске случайно открытых конечных точек.

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

Вывод

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