Я студент IT, и сейчас я учусь на третьем курсе университета. До сих пор мы изучали множество предметов, связанных с компьютерами в целом (программирование, алгоритмы, компьютерная архитектура, математика и т. Д.).
Я очень уверен, что никто не может узнать все о безопасности, но уверен, что есть «минимальные» знания, которые должен знать каждый программист или студент IT, и мой вопрос: что это за минимальные знания?
Можете ли вы предложить некоторые электронные книги или курсы, или что-нибудь может помочь начать с этого пути?
Ответы:
Принципы, о которых следует помнить, если вы хотите, чтобы ваши приложения были безопасными:
В Интернете есть несколько отличных книг и статей о защите ваших приложений:
Обучите своих разработчиков лучшим правилам безопасности приложений
Кодовая блокировка (платная)
Инновации в сфере безопасности (платно)
Компас безопасности (платно)
OWASP WebGoat (бесплатно)
источник
Правило № 1 безопасности для программистов: не бросайте свои собственные
Если вы сами не являетесь экспертом по безопасности и / или криптографом, всегда используйте хорошо разработанную, хорошо протестированную и зрелую платформу, платформу или библиотеку безопасности, чтобы выполнить работу за вас. Эти вещи потратили годы на обдумывание, исправление, обновление и проверку как экспертов, так и хакеров. Вы хотите получить эти преимущества, а не отвергать их, пытаясь изобрести велосипед.
Это не значит, что вам не нужно ничего узнавать о безопасности. Вам, безусловно, нужно знать достаточно, чтобы понять, что вы делаете, и убедиться, что вы используете инструменты правильно. Однако, если вы когда-нибудь начнете писать свой собственный алгоритм криптографии, систему аутентификации, дезинфицирующее средство ввода и т. Д., Остановитесь, сделайте шаг назад и запомните правило № 1.
источник
Каждый программист должен знать, как писать код эксплойта.
Не зная, как эксплуатируются системы, вы случайно останавливаете уязвимости. Знать, как исправлять код, абсолютно бессмысленно, если только вы не знаете, как проверять исправления. Безопасность - это не просто мысленные эксперименты, вы должны быть научными и проверять свои эксперименты.
источник
Безопасность - это процесс, а не продукт.
Кажется, многие забывают об этом очевидном факте.
источник
Я предлагаю ознакомиться с CWE / SANS TOP 25 самых опасных ошибок программирования . Он был обновлен в 2010 году с обещанием регулярных обновлений в будущем. Версия 2009 доступна также.
С http://cwe.mitre.org/top25/index.html
источник
Хорошим начальным курсом может быть курс MIT по компьютерным сетям и безопасности . Одна вещь, которую я хотел бы предложить, это не забывать о конфиденциальности. Конфиденциальность, в некотором смысле, действительно является основой безопасности и не часто рассматривается в технических курсах по безопасности. В этом курсе, посвященном этике и закону, вы можете найти некоторые материалы о конфиденциальности .
источник
Команда веб-безопасности в Mozilla составила замечательное руководство , которое мы соблюдаем при разработке наших сайтов и сервисов.
источник
Важность безопасных значений по умолчанию в платформах и API:
источник
Вы должны знать о трех. Аутентификация, Авторизация, Аудит. Классическая ошибка состоит в том, чтобы аутентифицировать пользователя, не проверяя, авторизован ли пользователь на выполнение какого-либо действия, поэтому пользователь может просматривать личные фотографии других пользователей, что и сделала ошибка диаспоры. Многие, многие другие забывают об аудите, вам нужно в защищенной системе определить, кто, что и когда сделал.
источник
источник
Я бы добавил следующее:
Понять, как работают разные векторы атаки:
Вы можете легко Google для всего этого. Это даст вам хорошую основу. Если вы хотите увидеть уязвимости веб-приложений, есть проект под названием google gruyere, который показывает, как использовать работающее веб-приложение.
источник
когда вы создаете какое-либо предприятие или какое-либо собственное программное обеспечение, вы должны просто думать как хакер. поскольку мы знаем, что хакеры также не являются экспертами во всем, но когда они обнаруживают любую уязвимость, они начинают копаться в ней, собирая информацию обо всех и, наконец, атака на наше программное обеспечение. Поэтому для предотвращения таких атак мы должны следовать некоторым хорошо известным правилам, таким как:
Вы можете найти больше ресурсов безопасности по следующим ссылкам:
для получения дополнительной информации Google о потоках безопасности вашего поставщика приложений.
источник
источник
Для получения общей информации о безопасности я настоятельно рекомендую прочитать Брюса Шнайера . У него есть веб-сайт, его криптограмма , несколько книг и он дал много интервью .
Я также познакомился бы с социальной инженерией (и Кевином Митником ).
Для хорошей (и довольно интересной) книги о том, как в реальном мире проявляется безопасность, я бы порекомендовал отличное (хотя и немного устаревшее) «Яйцо с кукушкой» Клиффа Столла.
источник
Также не забудьте проверить список 10 лучших OWASP для классификации всех основных векторов атак / уязвимостей.
Об этих вещах интересно читать. Умение думать как злоумышленник научит вас думать о том, как вы пишете свой собственный код.
источник
Соль и хэши пароли ваших пользователей. Никогда не сохраняйте их в виде открытого текста в вашей базе данных.
источник
Просто хотел поделиться этим для веб-разработчиков:
руководство по безопасности для разработчиков
https://github.com/FallibleInc/security-guide-for-developers
источник