Выполнение аудита безопасности вашего кода: основы
Опубликовано: 2021-10-01Безопасность важна, и она важна как никогда в наши дни. С ростом кибератак многие люди серьезно относятся к аудиту безопасности своего кода. В этом сообщении блога мы обсудим, что влечет за собой аудит безопасности и как вы можете выполнить его в своем собственном коде!
Общие методы
1) Статический анализ
Статический анализ - это процесс изучения кода без его выполнения. Это дает много преимуществ, в том числе возможность определять потенциальные уязвимости еще до их развертывания!
Вы можете проводить статический аудит безопасности с помощью таких инструментов, как Brakeman и Peepcode. Эти инструменты ищут распространенные проблемы в приложениях Ruby on Rails, такие как атаки с использованием SQL-инъекций, недостатки межсайтового скриптинга (XSS), ошибки фиксации сеанса и т. Д.
Вы также можете использовать эти типы инструментов при выполнении аудита вручную, просматривая файлы исходного кода вашего приложения в поисках определенных строк или команд, которые могут указывать на проблему.
Примечание. Статический анализ НЕ следует использовать отдельно, поскольку при выполнении вручную с помощью команд grep / findstr возникает слишком много ложных срабатываний. Обычно он говорит вам только то, что вы уже знаете, а не то, чего вы не знаете.
Преимущества статического анализа кода
- Выявляет потенциальные недостатки безопасности на ранней стадии, что экономит время и деньги в будущем.
- Обеспечивает хорошую отправную точку для дальнейшей ручной проверки кода.
- Дает общий обзор вашей кодовой базы.
- Может быть автоматизирован с помощью инструментов.
Недостатки статического анализа кода
- Требуется много времени для запуска, если не использовать инструменты автоматизации.
- Неточно при использовании в среде выполнения.
- Автоматизированные инструменты могут отлично подходить для автоматизации повторяющихся задач, но они могут поддерживать не все языки программирования.

2) Динамический анализ
Динамический анализ - это процесс запуска кода и отслеживания того, что он делает. Это дает вам лучшее представление о том, как ваше приложение взаимодействует со своей средой, что может выявить потенциальные недостатки в системе.
Вы можете использовать такие инструменты, как Brakeman и WebInspect (для веб-приложений), чтобы идентифицировать распространенные уязвимости на этом этапе, а также использовать предопределенные наборы правил, которые охватывают несколько типов атак, таких как внедрение SQL или межсайтовый скриптинг (XSS).
Вы также можете отслеживать такие вещи, как заголовки, отправленные вашим сервером, файлы cookie, используемые для сеансов и т. Д. Важно отметить, что эти движки не могут найти все! Однако они всегда улучшаются, поэтому следите за их обновлениями / примечаниями к выпуску на Github.
Преимущества динамического анализа кода
- Он работает в среде выполнения.
- Вы можете обнаружить ложноотрицательные результаты в своем статическом анализе кода.
- Изучите анализ в сравнении с живыми приложениями.
Недостатки динамического анализа кода
- Найти уязвимости в коде - непростая задача. На это нужно время и терпение, но это можно сделать, приложив достаточно усилий!
- Автоматизированные инструменты динамического анализа кода подвержены ложным срабатываниям и отрицаниям.
- Они дают ложное чувство безопасности.

Важность проведения аудита безопасности
Теперь, когда вы лучше понимаете, что такое аудит безопасности, давайте посмотрим, почему он важен. Причин несколько:
- Предотвращение повреждений из-за атаки или взлома вашего приложения. Вы можете предотвратить подобные вещи, используя инструменты, упомянутые выше в этом сообщении в блоге! Это не будет идеально, но поможет!
- Избегайте штрафов за нарушение политик / правил, таких как GDPR (Общие правила защиты данных). Подобные штрафы могут привести к прекращению вашей деятельности, если не будут обработаны должным образом.
- Держите клиентов счастливыми, когда они видят, что их данные защищены от несанкционированного доступа с помощью методов шифрования и т. Д. Клиенты хотят душевного спокойствия, зная, что их данные в безопасности.
- Сохранение конкурентоспособности на рынке с подходом «безопасность прежде всего» всегда будет выгодно, если все будет сделано правильно. Аудиты безопасности должны выполняться не только для прохождения аудита, но и потому, что это правильно для вашего приложения и бизнеса / клиентов!
- Вы также можете помочь другим разработчикам в проведении аудита безопасности их кода, опубликовав свои результаты публично, чтобы они знали, какие проблемы вы обнаружили при их аудите (если таковые имеются). Это помогает улучшить общее качество программного обеспечения для всех приложений, поскольку эти инструменты имеют открытый исходный код и доступны для бесплатной загрузки. Достаточно одного человека, чтобы найти что-то не так, прежде чем другие тоже начнут это замечать!

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

Сначала вы должны одитировать низко висящий плод. К ним относятся:
- Выйдите из системы и войдите в систему как администратор или суперпользователь, чтобы учетные данные нигде не кэшировались (файл журнала, история браузера и т. Д.).
- Запустите любые учетные записи администратора по умолчанию, которые поставляются с вашим приложением, поскольку они будут общедоступными, если оставить их без изменений, например / admin / users.
- Проверьте надежность пароля на основе отраслевых стандартных правил, установленных NIST (Национальный институт стандартов и технологий) (при использовании Rails он встроен в Devise).
По теме: Advanced Secure Shell: 6 вещей, которые можно сделать с помощью SSH.

FAQs
Какие проблемы возникают в веб-приложениях чаще всего?
SQL-инъекция, межсайтовый скриптинг (XSS), фиксация сеанса, небезопасные прямые ссылки на объекты и т. Д.
Есть ли контрольный список, который я могу использовать при проведении аудита безопасности?
Да, есть! Перейдите в OWASP (Open Web Application Security Project) и загрузите их контрольный список для выполнения аудитов безопасности.
Какие хорошие ресурсы для изучения безопасности веб-приложений?
OWASP, OWASP Top Ten Project, SANS (SysAdmin, Audit, Network) Security Reading Room и т. Д.
Сколько времени у меня уйдет на выполнение собственного аудита безопасности?
Это зависит от сложности вашего приложения, но обычно вы можете пройти через все низко висящие плоды за пару дней или меньше, в зависимости от сложности.
Есть ли момент, когда я должен отдать эту работу по аудиту безопасности на аутсорсинг или вместо этого нанять консультанта из-за сложности моих веб-приложений?
Если это занимает слишком много времени или если вы никогда раньше не проводили такого рода аудит, возможно, имеет смысл рассмотреть вопрос о найме специалиста. Это также хорошая идея, если ваше приложение слишком сложное для вас.
Вывод
В заключение, выполнение аудитов безопасности важно для обеспечения качества кода и защиты от несанкционированного доступа. Также важно отметить, что эти инструменты НЕ идеальны, поэтому вам всегда следует дополнительно выполнять ручные тесты на проникновение!
Если вы запускаете свой сайт на Joomla, то, возможно, вас заинтересует наш список из 20 советов по безопасности, обеспечивающих надежную защиту от хакеров!
