Pull to refresh
26
0
Геннадий Махметов @FurryCat

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

Send message

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

Reading time 18 min
Views 39K
simple science

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

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

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

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

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

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

— ?!

О статье


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

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

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

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

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

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

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

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

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

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

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

Misuse Cases

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

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

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

Читать дальше →
Total votes 35: ↑29 and ↓6 +23
Comments 24

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity