Как стать автором
Обновить
26
0
Геннадий Махметов @FurryCat

Безопасность в разработке программ

Отправить сообщение

Безопасность приложения: это почти просто

Время на прочтение18 мин
Количество просмотров39K
simple science

— Дай мне справку, что моя программа безопасна.

— Нет проблем! А что ты для этого делал?

— Э… Ну… Это… Ничего…

— А почему ты тогда думаешь, что она безопасна?

— Ну, ты проверь!

— Нет проблем! Все удовольствие будет стоить X0000 долларов.

— ?!

О статье


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

Первая ее часть посвящена безопасному программированию.

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

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

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

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

Внимание! Статья большая и подразумевает внимательное прочтение.

Подтверждаю свою готовность внимательно прочитать многабукаф
Всего голосов 30: ↑22 и ↓8+14
Комментарии22

Есть ли серебрянная пуля анализа уязвимостей

Время на прочтение9 мин
Количество просмотров2.6K
В комментариях к моей предыдущей статье amarao задал мне очень хороший вопрос. Он спрашивал, как именно, пользуясь какими правилами, мы ищем уязвимости в программном обеспечении. Приведу часть этого вопроса:
По каким алгоритмам, по каким правилам? Или это всё на наитии «а я знаю что такое mim!»? В этом случае метод не описывает ровным случаем ничего где-то — подумал, где-то нет.

Этим вопросом amarao, вольно или невольно, привлекает внимание к проблеме объективности при оценке уязвимости программного обеспечения, насколько эта оценка зависит, или не зависит, от эксперта, ее проводящего. Вопрос является очень важным, и поэтому часто возникает как у специалистов по безопасности, так и у наших клиентов.
Действительно, если мы не имеем возможности объективно оценить безопасность предлагаемых нам продуктов, то как мы можем выбрать из них один, наилучшим образом удовлетворяющий нашим потребностям? Все производители, естественно, будут клясться, что именно их продукт — самый безопасный из когда-либо созданных. Более того, каждый из них, возможно, будет в это верить, причем, верить с полным на то основанием.
Кажется, что оценка программного обеспечения независимыми компаниями — например, сертификация — может решить эту проблему. Но если не существует объективного средства анализа, то, как мы можем проверить качество самой оценки? Ведь оценка программного продукта в этом случае — сама по себе продукт, услуга.
Несмотря на то, что эти вопросы обсуждаются достаточно часто, я не видел однозначного ответа на них. Но за время моей работы в этой области у меня сложились определенные представления о возможностях современных методик.
В этой статье я хочу проиллюстрировать следующую свою мысль: сегодня не существует алгоритма поиска уязвимостей, который бы гарантировал объективную оценку безопасности. Поэтому доверие к продукту может основываться только на репутации экспертов, проводивших его оценку, и на опыте его эксплуатации (по сути, на репутации взломщиков, которые пытались преодолеть защиту).
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии15

Misuse Cases

Время на прочтение8 мин
Количество просмотров1.4K
В своей предыдущей статье «Что такое безопасность» я писал о безопасности программного обеспечения. В ней я постарался проиллюстрировать два утверждения.
Первое утверждение состоит в том, что безопасность является нефункциональным свойством программы, и определяется не тем, что программа делает, а тем, чего она не делает.
Второе утверждение, очень тесно связанное с первым, состоит в том, что «функции безопасности» являются антифункциями: они отбирают возможности у пользователей, которые не должны иметь доступа к некоторой функциональности программного обеспечения.
В частности, это означает, что функции безопасности, как одно из средств достижения этой самой безопасности, нельзя описывать теми же самыми методами, которыми описывается «обычная», основная функциональность. Для этой цели должны быть использованы другие подходы. К настоящему времени для решения этой задачи было предложено несколько методов. Одним из самых популярных из них является метод вариантов злоупотребления — misuse cases, — которому и посвящена данная статья.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии13

Что такое безопасность

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

Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии24

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность