Как стать автором
Обновить

Комментарии 158

Да здравствуют быдлодевайсы! Производители всевозможных говноайфонов страстно жаждут, чтобы всё стало так, как в этой тупой статье. Чтобы девайс мог выполнять 3 фиксированных функции, а быдло жрало и не пыталось запустить на девайсе какие-либо полезные программы.
Мсье любитель свистелок и перделок?
Девайс должен выполнять свою задачу и делать это хорошо. Поддержка новых прикольных рингтонов и версия AngryBirds for nuclear warheads для этого не обязательны.
Мсье идиот.
Для мсье возможность просто скачать с инета и запустить программу на собственном компе — «свистелки и перделки».
Конечно, копирасты были бы вне себя от счастья, если бы программы были бы намертво привязаны к железу.
Дело в том, что архитектура с фиксированной программой вовсе не обязательно означает невозможность смены программы и ее жесткую привязку к «железу». Самая интересная разновидность этой архитектуры — как раз с возможностью произвольной замены пользователем фиксированной программы — полной или частичной замены. Об этом пойдет речь в одном из следующих выпусков. Так что «копирасты» не имеют отношения к этому.
> Самая интересная разновидность этой архитектуры — как раз с возможностью произвольной замены пользователем фиксированной программы — полной или частичной замены.

Такая архитектура годится для мигалки светодиодиком на каком-нибудь восьмибитнике.

Современная нормальная операционная система должна, скажем, загружать и выгружать драйвера. Вставил ты девайс в USB — система нашла нужный драйвер и подгурзила. Если нужного модуля нету — подсосала из репозитория.

Операционная система должна уметь обновлять компоненты. Линух даже может обновить ведро без перезагрузки! Ваша гарвардская архитектура сосёт.

Попробуй понять главное. Программное обеспечение компа — это по своей сути данные. Даже названия software и hardware явно отражают это. Soft=мягкий, т.е. тут вся суть в отсутствии какой бы то ни было фиксации.
Указанный Вами подход доминирует в большинстве компаний.

Безусловно, их системные администраторы вправе доверять программному обеспечению право самостоятельного принятия решений о самомодификации. Более того, они вправе не видеть связь между таким решением и сложившейся к лету 2011 года ситуацией, когда даже представители военного департамента США публично заявляют, что отныне главную угрозу видят именно со стороны компьютеров (см. ссылку в статье).

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

Если он передал часть своих полномочий программе — это его решение. И он за него отвечает. После принятия такого решения программа начинает самостоятельно скачивать и устанавливать то, что считает нужным. Самомодифицируемость на уровне hardware усугубляется самомодифицируемостью на уровне системного и прикладного ПО.
Что еще за самомодифицируемость на уровне hardware? O_o
Самомодифицируемость программ :) Самомодифицируемость программ, предусмотренная на уровне hardware. Она усугубляется самомодифицируемостью программ, предусмотренной на уровне системного и прикладного ПО.

У Вас отличное чувство юмора :)
Т.е. под это ваше определение подпадают все виртуальные машины, генерящие машинный код на лету, а так же компиляторы, как класс… драйверы… сама концепция метапрограммирования, разумеется… и Лисп!

Так?
Мы говорим о гораздо более низком уровне. Об уровне hardware. На этом уровне процессор, начиная с первого такта, выбирает команду из памяти и выполняет ее.

Мы не говорим о каком-либо определенном наборе команд. Мы не говорим о процессорах ARM или x86. Мы не используем понятия «операционная система», «драйверы» или «компиляторы». Поймите, пожалуйста: это совершенно другой, гораздо более низкий уровень.

Что касается realtime-генерации и последующего запуска низкоуровневого кода на основе каких-либо данных (заметьте, что компиляция еще не означает запуска), то она не противоречит требованиям безопасности при условии, что те данные, на основе которых строится низкоуровневый код, верифицированы (утверждены) человеком. Что требует определенной процедуры.
Тысячу дохлых китов мне в жо, и не говорите что я не умею мыслить абстракциями. Но можно посмотреть на образец, хотя бы экспериментальный чип, кусок вшивого кремния?
Вас интересуют чипы с архитектурой, отличной от фон-неймановской?

Ищите на рынке то, что Вам нужно. Промышленность производит сотни моделей микроконтроллеров, процессоров, одночиповых компьютеров, чипсетов и т.п. Мы не предоставляем рекомендации о приобретении конкретных моделей, марок, брендов. Это блог, а не каталог товаров.
Э нет. Мне не нужен дурацкий микроконтроллер, умеющий управлять каким-то манипулятором. Более того, меня совершенно не интересует архитектура как таковая.

Мне нужен ПОЛНОЦЕННЫЙ ПК, полноценный это такой, который умеет все то же, что и существующие сегодня, и который не подвержен вирусам. Хотя бы прототип. Покажете?
Присоединяюсь к просьбе.
Читайте статьи внимательнее. Там все написано.

Если Вы все-таки хотите получить ответ здесь, не читая статью, пожалуйста: в статье говорится о том, что таких компьютеров, какие Вы хотите, не выпускают. Их нет. Сфера информационной безопасности переживает системный кризис. Тема статьи — именно отсутствие компьютеров определенного класса.

Позвольте на этом тему закрыть.
>в то время как спроса на компьютеры с аналогичной функциональностью на основе альтернативных архитектур практически нет.

Как можно утверждать, что нет спроса, если нет предложения? Можно утверждать, что спрос есть, даже если нет предложения. Но то, что люди не приходят в магазины и не спрашивают «а что-нибудь на гарвардской архитектуре у вас есть?» не значит, что нет спроса. Более того, подавляющему большинству вообще не важна архитектура, важны функциональность, удобство, надежность, безопасность и т. п.
Только надежности и безопасности таки нет. Есть с грехом пополам функциональность и более или менее — удобство. Настолько, насколько мы к нему привыкли.
Тут скорее дело в совместимости. Придумают новый формат картинок, обновится ICQ, твиттер перейдет на HTML5 — будете менять девайс?
Из-за внезапного появления на рынке нового товара (продукта) неразумно менять не только hardware, но и software.

Зачем же потребителю прилагать усилия, чтобы подстроиться под производителя? :) Его товар (например, новое предложение от Twitter) настолько ценен?

Если товар действительно очень ценен и потребитель готов приложить усилия, чтобы под него подстроиться, он вносит соответствующие изменения в software. Так сказать, меняет одну перфоленту в своем механическом пианино на другую, чтобы соответствовать текущей моде светского общества :)
Одно из преимуществ неймановской архитектуры — универсальность и легкость смены (а то и параллельная работа) текущей программы. Как в рамках жестких архитектур я смогу одновременно хотя бы читать хабр, слушать музыку и скачивать новый фильм?

Появление на рынке нового продукта позволяет мне буквально одним кликом установить софт для его обработки, не лишаясь возможности доступа к данным для старого софта и самого этого софта. Я добавляю новый софт, а не удаляю старый и записываю новый. В рамках жёстких архитектур мне это будет доступно?
Нет, не будет. Перепрограммирование компьютера (в пользовательских терминах — установка нового софта) в архитектуре со строго фиксированной программой при разумной практической реализации такого компьютера, видимо, требует следующих действий:

1. перезагрузка;
2. инициация перепрограммирования (тот самый «один клик», который Вы имеете в виду);
3. опционально и очень желательно — ввод кода («серийного номера»), подтверждающего как пользователю, так и операционной системе, что устанавливается именно та программа, которую хочет установить пользователь (а не модифицированную тайно от него).

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

Это полный ппц. Перепрошивать комп, как последний китайский роутер? Это же каким надо быть извращенцем?!

> К необходимости ввода серийного номера и перезагрузки для установки программы люди давно привыкли, так что ничего по сути не меняется.

Щито?!!!

Винде, в которой на каждый клик требуется перезагрузка, давно пора в корзину. А «серийный номер» (cd-key) это вообще пережиток хз какой эпохи. Сейчас сидюков уже у многих нету, а для передачи информации используются p2p-протоколы.

> Перепрограммирование компьютера (в пользовательских терминах — установка нового софта)

Термин «перепрограммирование памяти» относится к ПЗУ. К счастью, пока что мы не дожили до такого дибильного маразма чтобы код в компе хранился в ПЗУ. Так что, всё таки, установка софта.
Перепрошивать комп, как последний китайский роутер? Это же каким надо быть извращенцем?!

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

А «серийный номер» (cd-key) это вообще пережиток хз какой эпохи

а электронные подписи для софта — тоже пережиток?
>К необходимости ввода серийного номера и перезагрузки для установки программы люди давно привыкли, так что ничего по сути не меняется.

O_o кто привык?
Я помню 98-я что ли винда перезагружалась 3 раза в процессе установки, и переодически просила перезагрузиться после установки новых программ.
Я тоже помню, но давно от этого отвык.
Люди. Пользователи.

В частности, 40 миллионов пользователей домашних и корпоративных продуктов BitDefender по всему миру. В частности, несколько десятков миллионов пользователей других антивирусных брендов. В частности, несколько сотен миллионов пользователей продуктов Microsoft, Oracle, IBM, Adobe, etc.

Но в данном контексте речь идет не о «серийном номере», а о КОДЕ. О коде идентификации целостности ПО. Упрощенно говоря, это контрольная сумма, хэш. Мы обсуждаем вопросы теории информационной безопасности. О целостности файла (в т.ч. после его передачи по каналу связи) принято судить по определенным стандартам (от MD5 до SHA-512). С точки зрения пользователя, ввод кода мало отличается от ввода «серийного номера». Но код, основанный на хэш-алгоритме, подтверждает, что файл не был тайно модифицирован.
Сейчас, по-моему, даже под Windows даже установка драйверов не требует перезагрузки.

Хэшами тоже пользуюсь, пускай чаще всего и неявно (софт их сам проверяет), но когда явно, то я их не ввожу а сравниваю вывод двух программ.
Я заметил, что фон-неймановскую архитектуру обажают хаять все, кому не лень.
Вы бы хоть задумались, что это именно то, что без неё невозможно было бы создание современных мощных операционных систем, которые могут быстро загружать и выгружать программы и модули.
Возможность работать с программами, как с данными позволяет создавать очень мощные и удобные системы.

А неспособность авторов виндузов создать нормальную систему безопасности к недостаткам архитектуры относить не надо.
Позволю себе спросить… А сколько удобных, мощных операционных систем было написано разработчиками концепции гарвардской архитектуры?
Нисколько, полагаю
Ну что вы, именно эти ваши «мощные операционные системы» позволяют быстро загружать и выгружать вирусы. Без них мир был бы гораздо лучше и безопаснее.
А «вирус» — такая же точно прога, как wmkeeper или асечка. Операционная система не делает различия. И правильно не делает.
Комп должен загружать всё, что я хочу.
Верно. Компьютер должен запускать все, что Вы хотите. Лично Вы.

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

Подумайте, какую архитектуру должен иметь такой компьютер? Это не так сложно, как может показаться сначала.
А мой комп и так запускает только то, что я хочу.
Из этого утверждения следует, что Вы специалист. Именно это мы и утверждаем: фон-неймановская архитектура создана профессионалами для профессионалов.

А если перед Вами задача разработать компьютер, обладающий перечисленными свойствами, но — для массового применения неквалифицированными пользователями?
А зачем им комп. Для решения задач «невалифицированного пользователя» вполне достаточно калькуляторов, игровых приставок, мобильных телефонов, музыкальных центров, зомбоящиков и прочих быдлодевайсов. Для интернета щас появились хромбуки — с позволения сказать, компы, которые кроме браузера ничего не умеют запускать. Всё для щастья неквалифицированных пользователей.

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

Если у меня будет задача разработать проц, я выберу имеющуюся архитектуру. Она практически идеальна. Поверь, было немало напредумано говноархитектур с сегментированным адресным пространством. С отдельным адресным пространством для кода и данных, etc. И вся эта хрень, к счастью, отправилась на свалку. И не зря. Сейчас даже те системы, которые на самом деле имеют отдельные ПЗУ для кода и ОЗУ для данных, как правило, имеют общее линейное логическое адресное пространство, в котором и хранятся данные и из которого выполняется код. А для безопасности существует защищённый режим, маска rwx на страничках памяти, etc. А если кодер не может всё это корректно юзать, это проблема софта а не архитектуры.

Видно, что ты не сталкивался с такими «архитектурами», которые превозносишь. Немножко бы потрахался с этим адом, и дурь бы сразу из головы вылетела…
А, собственно, почему компьютер не должен быть вправе сам принимать решения? Вы, люди, несовершенны во многим отношениях…
Потому что компьютером, устройство которого позволяет программно модифицировать собственную программу, с большой вероятностью в итоге будут управлять не только несовершенные люди, но и не являющиеся его владельцами. Чужие. Через Сеть.

В одном случае программу может изменить только тот, кто имеет к компьютеру физический доступ. Предположительно, — владелец.

В другом случае программу можно изменить программно, т.е. дистанционно. Физического доступа не требуется.

Что надежнее?

В обоих случаях действия по перепрограммированию предпринимает несовершенный человек. Но в первом случае круг несовершенных людей, имеющих возможность перепрограммирования, ограничивается теми, кто имеет к компьютеру физический доступ. Во втором случае круг людей, теоретически имеющих возможность перепрограммирования — все население Земли.
> В одном случае программу может изменить только тот, кто имеет к компьютеру физический доступ. Предположительно, — владелец.

А если это виртуалка на облачке? Нука, раскажи, как мне получить к ней физический доступ?

> Что надежнее?

Надёжнее корректное разделение прав пользователей и приложений, использование правильно настроенного фаервола.

Если у тебя такая важная система, юзай аппаратный фаервол.

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

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

И, внезапно!, никому кроме тебя, система никакого доступа никогда не даст.
Я предполагаю, что сама концепция облачных public вычислений противоречит идее автора. Правда непонятно, как в таком случае быть корпоративному сектору. Как быть с облачной виртуализацией? На свалку? А что взамен? Безопасность требует жертв, ага :-D
Вам нравится запускать на своем компьютере вирусы? О.о
Ламота такая ламота. Хочешь чтобы комп запускал тока то что одобрено ЗОГ? Дождётесь. :(
Простите, кем одобрено?
Мало ссылок в статье, добавьте больше.
С помощью переполнения стека можно выполнить произвольный код даже если данные не являются исполняемыми, а код изменяемым. Его просто придется компоновать из частей фиксированной программы. Эта техника давно уже используется вирусописателями, из-за того что в современных ОС нельзя так просто перезаписать код и исполнить данные.
Читайте внимательнее. Во-первых, в статье прямо рекомендуется использовать аппаратно изолированную область стека. Разумеется, неисполняемую. Во-вторых, вирус обладает не большей возможностью скомпоновать нужный ему код «из отрывков других произведений», чем кинорежиссер — скомпоновать осмысленный фильм исключительно методом монтажа чужих фильмов. Хорошего здоровья у такого вируса уже не будет :) В-третьих, и это главное, в среде с фиксированной программой и неисполняемыми данными вирус сделать ничего не может, поскольку не может там появиться.
Касательно вирусов — вы очень сильно заблуждаетесь
В вычислительном устройстве с абсолютно фиксированной программой никаких вирусов быть не может. Вы полагаете, это утверждение является ложным?

В конечном итоге, это вопрос определения вируса, верно? В зависимости от определения, указанное утверждение может быть как ложным, так и истинным. Каково Ваше определение?
Нет, я считаю, что утверждение «вирус, скомпонованый из кусоков подписаного кода не может быть опасным». Соверменные вирусы вполне могут так жить и они вполне опасны.
Где именно они будут жить, если программа (последовательность команд в памяти) неизменна, что гарантируется на аппаратном уровне?
Вы что никогда про Return-Oriented Programming не читали?
Вряд ли можно утверждать, что стек вызовов (тем более, единственный на всю вычислительную систему) — это неотъемлемое свойство любой (произвольной) вычислительной системы как таковой.
НЛО прилетело и опубликовало эту надпись здесь
Существуют технологии, которыми можно обеспечить практически неограниченную гибкость при архитектуре с фиксированной программой. В частности, их использование в некоторой степени доступно даже системным администраторам — если, конечно, компания не жалеет денег на безопасность.

В большинстве случаев речь идет о той или иной степени эмуляции жесткой архитектуры, лишающей компьютерную инфраструктуру бизнеса свойства автопрограммируемости. Мы расскажем об этом.
Не жалеет денег на безопасность — обтекаемая фраза. Насколько должны вырасти расходы средней размеры компании, производящей прикладной софт, например? С оборотом порядка, скажем, 10-50 миллионов долларов в год.
По сравнению с чем должны вырасти расходы, по Вашему мнению?

Расходы компании снижаются, а не растут, если она не жалеет денег на информационную безопасность.

Об экономических механизмах ИБ мы обязательно расскажем.

Не уходите от ответа. По сравнению с тем, сколько такая компания тратит сегодня, сейчас.
Тратит на инф. безопасность, в процентах от оборота, от чистой прибыли, от операционной прибыли, в абсолютных цифрах наконец.
При правильном подходе к информационной безопасности расходы будут чуть меньшими, чем «сегодня, сейчас», как Вы формулируете.

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

Себестоимость ИБ — менее 1% расходов. Основные средства в компаниях этого сегмента уходят на зарплату (до 80% расходов). Дорого обходится маркетинг. Чуть дешевле, но тоже дорого — квадратные метры офиса, бухгалтерия, PR, программное обеспечение (не то, которое пишется, а то, на котором работают). А информационная безопасность — совсем недорого на фоне перечисленного.
Это сейчас так. А что будет с переходом на машины вашей архитектуры? как изменятся расходы на софт, на аппаратное обеспечение, на серверы / десктопы разработчиков?
Такого перехода, скорее всего, в ближайшие 10 лет не будет (если только за разработку безопасного универсального компьютера не возьмется какое-либо государство — для обеспечения собственной инфраструктуры и независимости как от импорта, так и от хакеров).

Системный администратор организации должен учиться самостоятельно эмулировать не подверженные самопроизвольному изменению системы из имеющихся в его распоряжении компонентов — от сотен выпускаемых промышленностью микроконтроллеров до стандартных системных блоков со стандартным ПО на основе Linux или Windows. Палитра весьма велика.
> Системный администратор организации должен учиться самостоятельно эмулировать не подверженные самопроизвольному изменению системы из имеющихся в его распоряжении компонентов

1. В компе ничего не меняется самопроизвольно!!! Всё происходит ровно так, как заложил программист, с точностью до бита.

2. Возможность изменения исполняемого кода — не единственная причина проблем с безопасностью (и далекооо не основная). Даже если хакер потеряет возможность произвести удалённое выполнение кода, останется ещё немало возможностей.

А чтобы система оставалась защищённой, админ должен иметь возможность _легко_ обновлять, патчить и отлаживать скрипты и софт.

Поэтому никакой здравомыслящий админ, который дружит со своей головой никогда не будет делать того, о чём ты говоришь.
Запрет фон-неймановской архитектуры = полный запрет скриптовых языков. До свиданья, javascript, php, python, ruby, perl, etc; до свиданья, компиляция в байт-код, прощай java, прощайте виртуальные машины.

Здравствуй, каменный век.
Нет, это вовсе не так :) Читайте наши следующие выпуски.

Фиксированная архитектура — это не догма, а ориентир, эталон. Вроде эталона метра или эталона килограмма. От нее можно и даже нужно иногда отступать, как мы все отступаем от эталона, отмеряя метр на глазок. Но специалист по ИБ должен отчетливо понимать: что из себя представляет эталон, насколько можно отклоняться от эталона в каждом конкретном случае и к каким последствиям в системе это приведет.

Для разных частей компьютерной инфраструктуры нужна разная степень приближения к эталону — абсолютной, физической невозможности подмены программы вирусом.
Я ни слова не понял из того, что Вы написали.
Есть вполне конкретная задача — интерпретировать данные как код, например, js-файл.
Как эта ваша «фиксированная архитектура» может чем-то помочь?
Интерпретировать данные как код вы можете и без применения архитектуры с фиксированной программой. Эта архитектура — средство иллюстрации математически идеального случая безопасной вычислительной системы. В такой системе никакая программа не может быть запущена без явного разрешения, внешнего по отношению к системе. Это правило соблюдается строго и независимо от того, состоит ли программа из машинных кодов (выполняемых физическим процессором) или же из высокоуровневых, скриптовых команд (выполняемых программно реализованным процессором).

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

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

Такое определение свойства безопасной системы Вас устраивает?
Не, его можно усовершенствовать:
идеально безопасная система — лежащая в сейфе и выключенная.
И не только скриптовые языки сюда попадают, но и конфигурационные файлы. Как только программы получают право править свои настройки или настройки других программ, тут же запускается механизм накопления ошибок.
Да, верно. Право программы менять собственный конфигурационный файл — это еще не беда. А право программы менять конфигурационные файлы других программ делает систему весьма далекой от соответствия требованиям безопасности.

Только обратите внимание, пожалуйста, что термин «программы» (в значении нескольких отдельных программ) применим к более высокому уровню системы, чем тот, который мы на данный момент рассматриваем. Мы пока говорим о самом низком, физическом уровне, на котором у традиционного процессора нет понятия нескольких разных программ: он исполняет такт за тактом одну-единственную программу, начиная с первой команды, на которую подается управление.
А мне кажется, разницы нет, на каком уровне рассматривать систему. Принцип один и тот же везде — данные всегда влияют на исполнение кода (и это, вообще, нормально). То, как конкретно они влияют, зависит от конкретного кода. Если данные могут нарушить нормальное исполнение кода, то злоумышленник может специально подготовить такие данные, чтобы программа начала исполнять то, что он хочет.

Иными словами, у вас может быть сколь угодно защищённая процессорная архитектура, но если исполняемый в ней код реализует какую-то виртуальную машину, то в ней отлично могут поселиться вирусы.
А что в линуксах и мак оси появились вирусы?
Да, к сожалению. Linux меньше подвержен вирусам не потому, что сама система настолько замечательна. А потому, что в Linux-среде несравненно выше средний уровень квалификации пользователя. Это главная причина.

Не забывайте, что Великий Червь Морриса появился в среде Unix. Классическая ошибка переполнения буфера, например, свойственна языку С. А это традиционный язык Unix и Linux.

Вирусы для Mac пишут все чаще. Их уже много. Популярность этой среды растет, поэтому цель становится все более привлекательной для хакеров.
> в Linux-среде несравненно выше средний уровень квалификации пользователя

Чисто засчёт того что линухи да фряхи повсюду стоят на серваках? А что, если посчитать _только_ домашних юзеров, юзающих какую-нить убунточку? Окажется что не так уж и выше. Эмо-девочки, далёкие от IT, которым достаточно, чтобы комп мог выходить в инет, да воспроизводить музычку с фильмами вполне себе могут выбрать, скажем, убунту. А вот продвинутые юзеры часто оказываются привязаны к винде (специальный софт, игры, etc.). Так что может быть в 90гг линухи и были тока уделом сисадминов, щас это нифига не так.

> Linux меньше подвержен вирусам не потому, что сама система настолько замечательна.

По крайней мере, система безопасности в линухах — очень проста, надёжна и удобна. В отличие от прорвы настроек в политиках безопасности NT, которые надо курить несколько лет, чтобы легко находить проблемы в настройках безопасности. Можно случайно переткнуть какую нить настройку в винде и система окажется абсолютно открыта для любого. И хрен ты найдёшь и исправишь эту проблему без многолетнего опыта (или переустановки системы).

> Это главная причина.

Главная причина в том, что популярные дистрибутивы линуха _по умолчанию_ полностью корректно настроены в плане безопасности и обновлений (и не только).

> Не забывайте, что Великий Червь Морриса появился в среде Unix.

Ололололо. Ну а когда появился Unix?

> Вирусы для Mac пишут все чаще. Их уже много.

Пока что это «вирусы», которые просят их скачать и установить, введя админский пароль. Да «трояны», которые вручную устанавливаются сотрудниками техподдержки. Как авир, ты должен знать классическое определение вируса. Как не стыдно.
1. UNIX появился в 1969 году, за два десятилетия до Великого червя.

2. Система безопасности Linux и в самом деле проста и удобна. И в последнее время в самом деле все чаще продаются компьютеры на основе Linuх, используемые эмо-девочками. И в самом деле ОС Microsoft при установке по умолчанию разрешает слишком многое, т.е. после установки с дистрибутива приходится сначала выполнить работу по настройке безопасности, а только потом продавать компьютер эмо-девочкам.

Windows — система для профессионалов. Вы правы: сразу после установки она представляет собой лишь полуфабрикат, который еще не готов к эксплуатации и требует настройки. И это обязанность производителя компьютера. Каждый производитель настраивает компьютер так, как считает нужным для соблюдения интересов своих клиентов.

OEM-производитель приобретает у Microsoft дистрибутив операционной системы — сырье, из которого изготавливает свой продукт — компьютер для эмо-девочек. Если он делает это некачественно, забывая о создании системы безопасности — это вопрос к такому производителю.

У эмо-девочки есть возможность перед покупкой компьютера обратиться за консультацией к знакомому ИТ-специалисту, верно? И тогда ответственность за выбор OEM-производителя, продающего компьютеры только после качественной настройки, будет лежать уже на консультанте. В Европе, США, Японии консалтинг распространен очень широко.

3. Если Вы считаете, что вирусов для Mac не существует, то у Вас есть возможность заработать на этом их свойстве миллиарды долларов :) Вы обладаете ключевым ноу-хау: поставляя любой заинтересованной компании компьютеры Apple, Вы можете гарантировать отсутствие вирусов? Вы готовы подписать контракт с таким обязательством? Если готовы, то Вы сможете очень хорошо заработать на этих поставках, решив проблемы множества компаний в самых разных сферах экономики.

Но если окажется, что вирусы для Mac OS все-таки существуют, придется платить неустойку, верно? Подумайте, пожалуйста. Возможно, Mac не лишен уязвимостей?..
Когда-то игры для приставок были на картриджах. Интересно, почему так получилось, что не картриджи проникли в мир софта, а наоборот, в мир приставок проникли дисковые носители данных и вытеснили их.
Представьте себе компьютер, в который нужно воткнуть картридж, чтобы запустить фотошоп, ворд или игру. А ноутбуки продавали бы с намертво вшитой операционной системой. Правда и операционная система была бы тогда не обязательна, она могла бы содержаться на картридже с софтом, у каждого картриджа своя.

Копирасты были бы поначалу довольны, но вообще-то даже игры на картриджах пиратили, так что это не панацея.
Вам может показаться это парадоксальным, но на самом деле концепция фиксированной архитектуры оставляет упомянутым Вами «копирастам» очень мало возможностей для действий. Дело в том, что системы, лишенные свойства автопрограммируемости, весьма просты и прозрачны, что делает программы легко дизассемблируемыми и повторяемыми. Возможно, именно поэтому такая архитектура невыгодна тем, кого Вы привели в пример.

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

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

Не могу припомнить не одной такой программы. Современный шутер, или навороченный текстовый редактор, или браузер ужасно сложны. Но ни один из них никак не меняет собственный код (ну разве что, может быть подгружает динамические библиотеки, но это обычно, не принципиально — можно легко всё собрать и статически, ничего это принцииально не изменит). Правда очень много сложного софта работает со скриптами. Но тут уж по другому никак не сделаешь.
Скайп меняет. Старфорс меняет. CLR дотнетовский создает исполняемые образы на лету (если проанализировать программу на IL несложно, то считать бинарный образ, существующий только в виртуальной памяти, довольно сложно. Очень многие LMS и системы защиты проприетарного софта «игрались» с собственным исполнимым кодом. Правда теперь некоторые из них крАшатся из-за нарушения DEP.
В принципе любая виртуальная машина меняет / создает исполняемый код на лету.
Если не ошибаюсь, не совсем. Например с Java. Если наблюдать, команды с какими адресами поступают на на выполнение процессору, то окажется, что все эти команды относятся к адресному пространству кода самой Java-машины. Программа на Java сама по себе не становится исполнимым кодом, а продолжает быть данными.
В Java ж нет JIT-компиляции, или по крайней мере когда-то не было?
В Java есть JIT-компиляция, причем очень давно. В самых первых версиях однако, действительно был только интерпретатор.

Насчет того, что команды относятся к адресному пространству кода самой VM — ну в любом случае, неважно, в случае интерпретатора или компилятора, JVM и загруженная ей программа работает в (общем случае) рамках одного процесса OS. И в любом случае, как компилятора так и интерпретатора, JVM, точнее процессор уже, выполняет в конечном итоге некоторые машинные коды, полученные каким-либо образом (интерпретацией отдельных байткодов или компиляцией байт-кода методов (фреймов) целиком). Так в чем принципиальная разница?
Разница в том, что множество вариантов исполнимого кода, генерируемого JIT является лишь подмножеством всевозможных вариантов программного кода.
Иными словами, если бы JVM не использовала, например, процессорные цепочечные операции, то какую бы программу на JAVA вы не написили, опкоды lodsd и stosd в ней никогда не встретятся.
Если Java в операции с массивами всегда вставляет проверку соблюдения границ, то в исполнимом коде никогда не окажется последовательность процессорных команд, представляющая «небезопасную» адресную арифметику.
Господа, взгляните на вопрос с точки зрения бизнеса. Это важнейшее качество CIO.

JVM не является для бизнеса самоцелью. Цель формулируется совершенно иначе:

— Нам нужна такая корпоративная компьютерная инфраструктура, чтобы сисадмин не приходил периодически со словами «Нас опять взломали, персональные данные клиентов утекли на сторону, но я не виноват, потому что неотъемлемое свойство JVM заключается в том, что...»

Самоцель — полностью надежные компьютеры, соответствующие задачам бизнеса, включая математически обоснованную предсказуемость поведения компьютеров в течение неограниченного периода времени (если только компания не собирается закрываться через пару лет). Поведение компьютеров не должно зависеть ни от каких посторонних лиц, даже если те очень желают управлять этим поведением через Сеть — при любых уже известных или еще не известных алгоритмах действий этих лиц.

Бизнесу нужна предсказуемость и стабильность.

С помощью каких именно архитектурных решений будет достигнута эта цель — не имеет значения.

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

В ответ на вашу аксиому нормальный CIO нормальной компании скажет: «Отлично! Это именно то, что нам нужно. Пришлите пожалуйста каталог ваших полностью надежных компьютеров, включая их цены, характеристики производительности, стоимость их обслуживания, стоимость поддержки софта под них, + сертификаты, подтверждающие их абсолютную надежность + договары и оферты, устанавливающую вашу ответственность в том случае, если она на поверку таковой не окажется».

С такой аксиомой вы можете прийти в IBM Research (впрочем, не думаю что вы их шокируете своим открытием), но не к CIO нормальной, типичной компании.
Суть работы CIO не в том, чтобы сидеть и ждать, когда ему пришлют готовое предложение о поставке нужной ему инфраструктуры.

Рассчитать и построить эту инфраструктуру — это его работа и его обязанность. И его ответственность. Именно его подпись под бумагой, где изложено его решение — это сертификат, подтверждающий надежность для владельцев (акционеров), генерального директора и остальных топ-менеджеров.

Вы похоже, начинаете троллить, или я немного не понимаю.

CIO, это менеджер прежде всего. Который рассчитывает инфраструктуру из готовых, существующих на ранке и доступных компонентов. CIO должен разбираться в том, что есть на рынке, в его плюсах и минусах, в том у кого выгоднее приобретать, сколько стоит найти в городе Н админа под это все, как договариваться о поддержке и прочем. Знать такое понятие как «фон-неймановская архитектура» ему ну совершенно ни к чему.

Ни один CIO не проектирует инфраструктуру, в которой есть квантовые компьютеры. Потому что их негде достать, их не продают на рынке.

Точно так же и у вас. Предположим, я CIO в моей компании. Что вы мне предлагаете сделать? Написать вам письмо и заказать у вас партию ваших компьютеров? Или профинансировать ваши научные исследования?

Давайте поиграем в эту игру.

Я — CIO. Умный, опытный, прагматичный CIO девелоперской, IT-шной компании средней руки. Что вы хотите, чтобы я сделал?

Это Ваше дело. Вы собираете различные точки зрения, различные материалы (включая материалы этого блога) и _самостоятельно_ принимаете решение. Читайте спецификации на ПО, изучайте возможности, которые дает Вам архитектура ARM или AMD, выбирайте операционные системы, устанавливайте инструкции для сотрудников. Ответственность — Ваша.

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

Это вы первый предложили взглянуть с точки зрения бизнеса. И вот я гляжу и спрашиваю — Да, я согласен, вы меня убедили. Я хочу компьютеры, которые принципиально неподвержены вирусам. А теперь — у вас есть КАТАЛОГ (ПРАЙС-ЛИСТ) на них? Я — CIO. Меня мало интересуют проблемы теоретической информатики, ибо я не профессор, а менеджер. Так где ваш каталог?
CIO, который не умеет самостоятельно сформировать надежную и защищенную от вирусов компьютерную систему, и спрашивает в блоге прайс-лист именно на те компьютеры, которые на Земле не выпускаются? :)

Ох, ему придется пережить разочарование и убедиться, что никто ему прайс-лист не предложит :) Придется думать и работать самому :) Придется учиться _эмуляции_ надежной архитектуры на основе того, что продается. Именно это изложено в статье, вопросы к которой Вы задаете.

Учиться. Это единственный вариант для CIO, который не умеет построить надежную систему. Никакого другого ответа не будет. Его нет. Поверьте.
Отлично. Т.е. мы приходим к тому, что поскольку ваши замечательные компьютеры в природе не существуют, все что мне остается — ставить обычные (фууу) компьютеры с Ф-Н архитектурой, ставить на них обычные ОС-ки, и потом ставить на них фаерволы / комплексы антивирусов и анти-malware software вообще (которые, как известно, представляют из себя по сути маленькие виртаальные машины, песочницы для исп. кода). Именно это и называется «эмуляция надежности на основе того, что продается».

Теперь-то мы пришли к одному и тому же? :)
Нет, ни в коем случае. Проблема информационной безопасности гораздо сложнее, чем может показаться с первого взгляда.

Нет и не может быть единого решения, которое годится для всех случаев. И каждое отдельное решение не может быть описано в объеме 512 байт текста. Одна только документация на проект, описывающий решение для типового узла оператора связи, занимает обычно тысячи страниц. Не считая юридически-административных аспектов.
Позвольте высказать несогласие с Вашим мнением о том, что человек, не знающий, что такое фон-неймановская архитектура, может принимать ключевые вопросы при построении компьютерной сети сколько-нибудь серьезного бизнеса. В свою очередь, если руководитель компании выбрал именно такого человека на должность CIO, за свое решение он отвечает перед владельцами (акционерами).

«Знать такое понятие как «фон-неймановская архитектура» ему ну совершенно ни к чему»? :) Вы очень верно назвали главную причину нынешней тотальной инфицированности Интернета.
Ваше право не согласиться. Мое мнение — CIO — это менеджер. Редко, КРАЙНЕ я видел людей, которые удачно совмещали в себе мощную фундаментальную научную подготовку и развитые менеджерские скилы. CIO второе важнее.
Разовью свою мысль.

Дизельные ДВС имеют много принципиальных недостатков (например, им нужно дизельное топливо, масло и пр.) Вы можете прийти к компании, владеющей парком тяжелых фур и тягачей и сказать — «ваша проблема в том, что вы используете машины с принципиально неверно спроектированными двигателями. Никакие инженерные изыски не смогут преодолеть врожденную ущербность их, скажем так, архитектуры.» Как вы думаете, что вам ответят? :)
С учетом того, что компания обратилась к Вам в качестве консультанта, поскольку машины из-за названных причин ее не устраивают? Не соответствуют интересам бизнеса?

Ответят: «Ясно. Их нам рекомендовал приобрести наш прежний исполнительный директор. Мы потратили миллион долларов, поскольку тогда не знали о недостатках. Мы не знали, что именно для наших задач нужны другие двигатели».

Обратите внимание: если при всех своих недостатках машины компанию устраивают, то вовсе нет никакого предмета для разговора.

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

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

Правильный ответ. — «Хорошо, а что предлагаете вы?» Поймите, когда прагматичный менеджер-практик видит такого консультанта — его первая мысль — «аспирант не от мира сего ищет спонсора для исследования и диссертации». Как вы его переубедите? Одним способом — показав работающую систему (хотя бы прототип, и то прототип CIO не убедит).
Повторим ответ: вместо ИТ-руководителя, не знающего, что такое фон-неймановская архитектура, следует назначить другого, который это знает.

Ключ — в квалификации, образовании, высоком уровне знаний CIO и в сфере ИТ, и в сфере менеджмента одновременно. Как минимум. Нельзя держать на ключевых должностях некомпетентных людей.

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

Главная проблема информационной безопасности имеет социальный характер. Слишком много людей считает, что ведущий ИТ-специалист организации не должен, к примеру, знать, что такое фон-неймановская архитектура :)
Очень жаль, что вы не видите разницы между Экспертом в области инф. безопасности и топ-менеджером.
CIO — это специалист, компетентный в обеих областях сразу. По возможности, с опытом работы порядка 10-20 лет. Понимаете?

Шутер, редактор или браузер — это лишь подмножества единой программы, выполняемой компьютером. На самом низком уровне — на уровне физического процессора — никаких шутеров, редакторов или браузеров нет. Процессор не рассматривает такого рода отдельные части своей единой программы как разные программы. Процессор работает с машинным кодом — с единой последовательностью команд, внутри которой очень много переходов.

Автопрограммируемость заключается в том, что одна часть этого кода (например, 10 килобайт вируса в зараженном шутере, в области памяти А) имеет возможность изменить другую часть кода (например, в редакторе, в области памяти Б).

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

Мы пока рассматриваем значительно более низкий уровень, чем уровень приложений. И даже более низкий, чем тот, на котором работает простейшая однозадачная операционная система.
Ну вот! Я-то думал, наконец адекватная статья, а нет, все свелось к какому-то бреду про Фон-Неймановскую архитектуру. Это конечно же все неверно.

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

Реальная причина уязвимости ПО в другом. Современные ОС (включая хваленый Линукс) обеспечивают изоляцию только на уровне пользователя. То есть данные Васи от Пети защищены надежно. А вот программа, запущенная Петей имеет полный доступ ко всем его данным (читай, может делать с компьютерром все что хочет). Например, она может читать его куки, сохраненные на диске, историю посещений и сохраненные пароли. Логи разговоров в мессенджерах и почтовые сообщения (там тоже часто хранятся пароли, не так ли?). Может включать режим отладки для других приложений, и читать данные (например те же пароли) из их памяти. Может логгировать все нажатия клавиш.

Проще говоря, пока современные ОС позволяют запустить из браузера или почты/IM произвольную программу. они фактически являются решетом. Учитывая постоянный рост числа пользователей ПК, большинство из которых имеет низкую квалификацию, это становится все более и более опасным.

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

Решением могло бы быть разграничение прав доступа к данным именно на уровне отдельных процессов: программа не имеет права доступа к данным другой программы, если только не: 1) та программа сама разрешила этот доступ 2) пользвоатель сам выбрал в диалоге открытия эти файлы. Также, можно ограничивать права программ без цифровой подписи автора дистрибутива. Каждая программа выполняется как бы в своей песочнице, со своей файловой системой, своими временными и конфиграционными файлами.

Уязвимость в просмотрщике PDF позволила бы максимум повредить сам просмотрщик, или исказить показываемые им файлы. не более. Но уж точно не установить вредоносное ПО скрытно от пользователя.

Такая модель доступа подходит большинству программ; для программ типа служб веб-сервера или удаленного доступа к файлам можно добавить специальную опцию, дающую им праа на доступ к определенным каталогам.

Вроде, Гугл какую-то работу в этом направлении ведет, создавая свою ОС с верифицируемой загрузкой. Но этого недостаточно. Увы, другие производители ПО отстают на десятилетия, продавая свой написанный 20 лет назад код доверчивому потребителю.

Однако, указанное решение не является полным. Даже запретив возможность вовлечения пользователя в запуск вредоносной программы, остаются технологии вроде фишинга: показать например, доверчивому пользвоателю страницу, напоминающую окно входа в социальную сеть, в которую того нетрудно убедить ввести свои логин и пароль.

Для борьбы с этой опасностью я вижу только один способ — беспарольная авторизация. Должен быть какой-то стандарт, и долны быть массово выпускаемые дешевые токены (с открытой архитектурой), которые позволяют записать в себя пару открытый ключ — закрытый ключ (а вот прочитать его назад уже не разрешают), и возможно, дополнительную информацию, вроде емайл или имени. Для входа на сайт/регистрации достатточно вставить токен и нажать на нем кнопку. На сайт сохраняется открытый ключ, а закрытый в токене используется для подписи аутентификационного сообщения. Украсть такой пароль можно только физической кражей ключа, что делает его в сотни раз безопасней существующйе устаревшей неудобной системы авторизации через вводимый (и перехватываемый, угоняемый и легко забывающийся ) пароль.

Конечно, даже если все станет идеальным, как у меня описано, хакеры придумают что-то еще… но это будут куда как менее опасные вещи, и они не смогут наносить такой урон как те же винлокеры. Сам факт существования и финансово успешного распространения этих программ говорит о том, что кое-какую недо-ОС давно пора выкинуть на свалку истории.
>> массово выпускаемые дешевые токены (с открытой архитектурой)

Чем вас не устраивают сим-карты сотовых телефонов стандарта GSM?

Более дешевого и массового решения для беспарольной аутентификации просто невозможно!
1) Они не имеют интерфейс USB, непонятно как их подключить к компьютеру.
2) Легко клонируются (то есть можно извлечь из них закрытый ключ)
3) Непонятно, как их прошивать, подключать к PC, и т.д.
Каждая программа выполняется как бы в своей песочнице, со своей файловой системой, своими временными и конфиграционными файлами.
iOS?
Не знаю, как там все устроено, но вроде вирусов там пока нет.
Это программная система. Она эмулирует взаимную изоляцию приложений программно. Без аппаратной поддержки, реализованной на уровне hardware, абсолютно надежная изоляция практически невозможна. Что, в частности, доказывает эффект джейлбрейка.

Обратите внимание, что наделить компьютер полезным свойством изоляции программ, одновременно лишив его множества других полезных свойств — прежде всего, возможности установить на него произвольную программу — это категорически неправильно. Как Вы уже заметили, большинство обитателей «Хабрахабра» совершенно не хочет быть лишенным этого ключевого свойства нормального компьютера.

Владелец компьютера — это царь и бог по отношению к своему компьютеру. Никто, кроме владельца, никакой производитель и никакой «магазин» не имеют права принимать решения о том, какую программу на компьютере разрешается запустить, а какую — не разрешается. Это решает только владелец. Вы согласны?

Разумный человек также, разумеется, не хочет, чтобы право доступа с привилегиями root к его собственному компьютеру имел кто-то, кроме него самого (например, сервер компании-производителя). В то время как ему самому — владельцу компьютера — компания-производитель выдавала бы лишь право доступа уровня user.

Как Вы думаете, что мешает — например, лично Вам — сделать компьютер, в котором одновременно выполняются следующие условия:

— отсутствие эффекта автопрограммируемости; система взаимной изоляции приложений;
— полный контроль (root) над компьютером со стороны владельца, т.е. Вас; возможность написать, установить, запустить произвольную программу;
— полная гарантия отсутствия у кого-либо другого не только контроля на уровне root, но и какого-либо доступа к Вашему компьютеру на уровне user.

Итак?
Согласен. Именно поэтому у меня Андроид, хотя там тоже условно песочница (виртуалка на каждую программу и запрет доступа в данные других программ), но не до такой степени. Столь универсальную для всех систему сделать нереально, но каждому достаточно своего – многим достаточно того, что есть в айфоне, и подобные ограничения их не пугают. Кстати, многозадачность уже даёт больше возможностей для программы, так ведь? Но в том же iOS лишь эмуляция многозадачности, которая реализуется минимальном риском для безопасности.
Простите, Вы уверены, что компьютеры на ОС Android поставляются потребителям с правом root?..

Вы, как владелец компьютера, имеете возможность root-доступа к его операционной системе, ко всем файлам? Вы имеете возможность установить любую программу? Записать в любое место файловой системы любой файл? Удалить любой файл?
Стоп. У меня нет компьютера на ОС Android, у меня есть смартфон на адроиде, есть комп (ноутбук) с макосью. Рут-доступ у меня есть везде (мак пока что не ограничивает в этом), и я могу поставить любую программу, записать/удалить любой файл, хоть rm -rf / выполнить. И это мне нравится, так как это моё устройство, и терпеть странные ограничения по удалению файлов я не согласен :)
Если быть честным, своему Desire я не делал S-OFF (отключение защиты системного раздела), поэтому с разделом /system работаю только в рекавери. Это и предоставляет мне полный доступ, когда он нужен, и оставляет уверенность в неизменности системы, т.к он находится в режиме read-only при нормальной работе аппарата.
Андроид подразумевает наличие рута по умолчанию, но именно производители аппаратов как конечного продукта заботятся о безопасности пользователей и ставят ограничения, которые успешно преодолеваются теми, кому это надо. Сейчас дошло до того, что SE разблокировала загрузчики в последних моделях, и HTC обещали не блокировать в следующих.
Винда, кстати, тоже бесит, говоря, какой файл можно удалять, а какой нельзя. Доходит до смешного: файл, открытый в Word, нельзя передать по bluetooth, т.к. он занят вордом. Абсурд!
Тут спор скорее идеологический. Спор о свободе пользователя в выборе удобной для себя среды.
Вы пнули «священную корову», допустив возможность такую свободу ограничить. Это как американцу сказать, что «вы — против демократии». Неважно, в каком контексте, Вы это имели ввиду.

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

Другой вопрос, когда пользователь имеет свободу от свободы отказаться, и вернуться обратно, если пожелает.
Я так вижу: свитчер «оn» — делаю что хочу, скачиваю что хочу. свитчер «off» все программы припаяны намертво, никаких «вирусов». Как переключение коробки передач: из механики в автомат.
Мы полностью одобряем приведенное Вами архитектурное решение и именно его описали в статье. В идеале программа должна быть фиксированной, но обязательно с возможностью ее замены внешними по отношению к этой программе средствами — полной или частичной замены.

Приведенный Вами пример механического переключателя совершенно правилен. В положении переключателя «0» программа компьютера является фиксированной. Но ее можно поменять произвольным образом (как перфоленту в механическом пианино), для чего требуется изменить состояние переключателя на «1». Главное, чтобы управлять этим переключателем не могла сама программа. В классической фон-неймановской среде это условие не выполняется.
Слишком узкое применение «фиксированной архитектуры».
Сильно сомневаюсь, что можно придумать на основе такой архитектуры что-то удовлетворяющее пользователя с IQ>10. Естественно, я имею в виду в приложении к универсальным задачам.
Для уникальных единичных задач это может и сгодится.

Бороться с вирусами отказываясь от гибкости существующей архитектуры. Вы меня извините, конечно, но это бред.
Целью вредоносных программ обычно является «полезное» использование зараженного компьютера в чьих-то интересах (получение с него информации, использование вычислительных мощностей).
Предположим у нас есть некая вычислительная система с фиксированной ОС и дистрибутивами на картриджах. Правообладатели захотят защитить картриджи, следовательно начнут появляться пиратские версии.
Если вычислительная система при этом будет обладать средствами внешней коммуникации и будет давать возможность доступа к пользовательским данным без привязки к конкретной программе (т.е. не будет системы типа «эти данные может читать только ОС и этот картридж»), то случится все та же волна вирусов-троянов, которые будут распространяться, например, через картриджи с пиратскими программами.
Хотя, явление типа «пробива» браузера связкой эксплоитов с дальнейшей загрузкой и выполнением вредоносного ПО возможно удастся искоренить.
Оно того стоит?

P.S. Если не будет вирусов, то на чем будут зарабатывать антивирусные компании (в т.ч. BitDefender)?
1. Очень хороший вопрос! Если вы получили программу (картридж, SIM-карту, диск, чип, файл и т.п.) из сомнительного источника, там с большой вероятностью окажется нечто нехорошее. Например, вирус. С этим простым фактом надо смириться.

Да, это очень просто — взять картридж (SIM-карту, диск, чип и т.п.) с программой, сделать его дубликат, дописав к нему свой кусочек кода и продать (подарить, подложить и т.п.) кому-либо. Но очень просто и предотвратить заражение таким путем: не принимать ничего от неизвестных или сомнительных лиц. Если незнакомый человек подойдет к вам на улице и предложит пирожок — вы согласитесь его съесть?

2. В этой гипотетической ситуации они, скорее всего, занимались бы производством какого-либо другого программного обеспечения :) Если бы на Земле не существовало картошки, то компании, ныне производящие картошку, выращивали бы, например, пшеницу, верно? :)

Кстати, обратите внимание, что проблемой вирусов сфера информационной безопасности не ограничивается.
имхо

«непредсказуемое и внешне незаметное изменение исполняемой программы»

зачастую совсем не связано с тем,

«что он подвержен вирусам»
В этой статье слишком много синего текста.
Да и вообще статья опоздала лет на 15.
Уже давно в механизмах страничной памяти можно помечать страницы, как доступные долько для чтения (что очень желательно делать со страницами команд), уже давно есть DEP (Data Execution Prevention), уже давно многие ОС и ФС поддерживают ограничения на модификацию и исполнение данных разными пользователями. С уверенностью можно сказать, что на техническом уровне нет препятствий к созданию очень-очень устойчивых к внешним атакам и внутренним ошибкам компьютеров. Другое дело, что большинство пользователей, формирующее рынок, либо вообще не обеспокоена безопасностью, либо не готова за нее ничем платить и ничем жертвовать.
Вы совершенно правы в том, что главная причина тотальной завирусованности Интернета — социальная. К этому мы и стараемся подвести читателей.

Технологии — существуют и давно отработаны. Промышленность выпускает сотни моделей процессоров, микроконтроллеров, одночиповых компьютеров и прочих полезных вещей. Общедоступны и почти бесплатны методики грамотного программирования. Технологически ничто не мешает компании любого размера — от крошечной, пользующейся услугами знакомого сисадмина, до корпорации международного масштаба — построить надежную, защищенную информационную инфраструктуру. В этом блоге мы будем подробно рассказывать, как именно это делается (прежде всего, применительно к сектору СМБ), чтобы помочь тем, кто искренне заинтересован в безопасности себя и своих клиентов.

Но слишком много компаний — не заинтересовано. Они говорят — «нас взломали», но на самом деле это означает «мы не захотели платить за качество, купили что подешевле и надеемся на авось». Топ-менеджер, принявший некомпетентные решения при формировании компьютерной инфраструктуры бизнеса, сваливает вину на неких хакеров.

Одно из лучших в истории пособий по безопасности (полностью применимое к теме информационной безопасности) — сказка «Три поросенка» :) Не приложив усилий для построения надежного дома, невозможно обеспечить его надежность.

С учетом того, что 21-й век будет тотально цифровым, мы рекомендуем организациям инвестировать в приобретение качественной компьютерной инфрастуктуры. И, разумеется, 5 лет назад, и 15, и 25 — рекомендации были точно такими же.
Но вы ж понимаете, что «безопасность» — она не сферическая и не в вакууме. Безопасность конкретного объекта, системы бизнеса. А тут уже помимо технических вопросов подмешиваются вопросы экономические, в т.ч. управление рисками. Т.к. у систем разная ценность, разная восприимчивость к угрозам, разный ущерб от реализации угроз (вы все это знаете, я скорее это пишу для тех, кто случайно прочитает нашу дискуссию). Соответственно и расходы на обеспечение различных уровней безопасности могут очень-очень отличаться, равно как и жертвы, на которые нужно идти. И во многих случаях на безопасность «плюют», не потому что совсем беспечные, а потому что прикинули и поняли, что с имеющимся бюджетом и прочими ресурсами достаточного уровня безопасности все равно не обеспечить, а раз так — нет смысла и браться за это дело.
Потому что системы безопасности сложны/дороги/накладны/неудобны/итд.
Совершенно верно! Несколько выпусков нашего блога будут посвящены именно экономическому аспекту ИБ. Это очень важная тема. При правильном подходе безопасность обходится дешево. При неправильном — многократно дороже.
> Ненадежность стандартного современного компьютера
> заключается в том, что он подвержен вирусам.
Это что же за вирусы такие, которым подвержены компьютеры? Наверное они жрут металл, не иначе.
… а, еще пластмассу и кремний
Кстати, компьютерам стали слишком часто доверять контроль производственных процессов.

Например, оператор на химическом заводе делает выводы о давлении в трубопроводе на основании показаний датчика, выведенного в интерфейс ПО под Windows. В таких условиях компьютерный вирус может сожрать слишком многое, включая человеческие жизни.
Вообще автоматизация и информатизация производственных процессов, а соответственно обеспечение безопасности этих систем — тема очень объемная. И в любом случае мне слабо верится, что единственной функциональной связью между неким выпускным клапаном и датчиком давления является цепочка датчик->контроллер->компьютер_с_виндоус->оператор->???->контроллер клапана.
К сожалению, цепочка на практическом производстве именно такова. Это относится не только к заводу, но и к банку, к медицинскому учреждению, к любому государственному институту (вроде полиции), в электростанции и так далее. Человек привык принимать решения на основании информации, которую ему выдает компьютер.

Если компьютер показывает, что давление в норме, оператор верит. Именно таким образом были разрушены вирусом урановые центрифуги Ирана. Если компьютер показывает, что автомобиль с номером 222-333 находится в розыске, то водителя арестовывают. Если в базе данных есть запись о том, что пациенту уже делали операцию удаления аппендикса, то диагноз аппендицита при острой боли в правой подвздошной области не рассматривается. Если компьютер сообщает, что вы — должник банка, то ваши дела плохи. И так далее.

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

Не компьютерам стали слишком часто доверять, а идиотам, использующим на химическом заводе Windows. Даже сейчас уже вполне очевидно, что эта операционная система — для развлечений и домашнего использования.
Вот это странно слышать. Обычно для задач, где не требуется универсальность и гибкость, но требуется абсолютная простота и надёжность, компы с роду не применяли.

Более того, вирусы — это далеко не единственная (и далеко не основная) причина возможности сбоя компа. Так что, скажем, в системе защиты реактора или в системе аварийного сброса давления даже электроники никакой как правило нет.

Если какой-нить «гений» решит применить компы в таких местах, проблема будет уже не в какой-то там архитектуре а тупо в человеческой дурости.
В статье мы дали ссылку заметку о решении мэра Лондона о переводе поездов метро под управление компьютеров. Нельзя, конечно, исключать, что это газетная утка. Но, увы, тенденции таковы, что похоже на правду.

Другой пример — финансовая сфера, банки, миллионы единичных однотипных операций с огромными деньгами. Здесь требуется надежность? Да. Здесь компьютеры «сроду не применяли»?

Верно, вирусы — не единственная причина компьютерных проблем. Но за последние 3-4 года она стремительно вышла на первое место среди всех прочих.
> В статье мы дали ссылку заметку о решении мэра Лондона о переводе поездов метро под управление компьютеров.

Сейчас выпускается не мало надёжных микроконтроллеров, специально предназначенных для использования в особенно критичных местах. При должном подходе к разработке софта и тестированию, их вполне можно юзать и для управления поездами метро.

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

Алсо не забывай про контроль и резервирование.

А журнализдам, что компьютер, что микроконтроллер, что PLC — всё в одну кучу. Какого хрена их вообще слушать?
Про что будет следующая статья?
Про BitDefender. Видно, что автора к нему несет неведомая (неведомая ли?) сила.
Вы правы :) Это и есть блог компании BitDefender :)
Понимаете, хочется ведь чего-то неожиданного в блоге компании BitDefender ))
Про формализованные определения компьютерных вирусов — математически корректные и легкие для практического применения. Что уже можно считать вирусом, а что еще нельзя? Почему для разных компьютерных систем определения вируса различаются?

Чтобы справиться с опасностью, ее надо определить предельно точно.
Кстати, готовясь читать лекции по защите информации я много размышлял, и пришел к выводу, что вирус — это довольно узкое и не совсем актуальное понятие. Вирус — это всего лишь частный случай вредоносного кода и бОльшая часть современного вредоносного кода вирусом как раз уже не является. Но мне будет интересно познакомиться и с вашим взглядом на эти вещи.
Очень трудно, практически невозможно дать строгое научное определение понятию «вредоносность».

Поэтому понятие «вирус» лучше не основывать на понятии «вредоносность».

Ноу-хау успешной антивирусной защиты заключается в существенном расширении понятия «вирус» по сравнению с теми узкими формулировками, которые обычно встречаются в учебниках. Речь идет о резком, качественном расширении понятия. Мы подробно расскажем об этом.
статья хорошая, глубокая, но:
ехал фоннейман через фоннейман. что нам на него молиться теперь? если бы за дело взялся какой-нибудь Блез Паскаль, Максвелл или Тесла мы бы сейчас, возможно имели бы «другую» модель.

о чем речь вообще? наличие/отсутствие прошитого ROM на борту микроконтроллера делает девайс фоннеймановским/нефоннеймановским? а если банки ROM сменные? и сменяются через управляющие линии изнутри микроконтроллера?
Сменность банков ROM не делает нефоннеймановскую архитектуру фоннеймановской, т.к. фоннеймановская предполагает произвольную модификацию исполнимого кода (в рамках системы команд, разумеется).
По моему автор статьи пытается подвести нас к режиму песочницы и контроля доступа, а не съесть святую корову фоннеймонского подхода.
Именно так. Кстати, аппаратно реализованная «песочница» всегда надежнее программной.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time. © Linus Torvalds
К началу 1950-х фон-неймановская архитектура начала казаться единственно возможной, а сфера ее применения — безграничной. До появления первых вирусов оставалось несколько десятилетий, и никто еще не мог себе представить кошмара, который мы сегодня видим повсюду — бесконтрольного поведения вычислительных машин. Напротив, именно полная контролируемость и предсказуемость долго считалась их ценнейшим качеством.
Ощущение, что автор писал пост этот из 2034 года, в бункере сидя под обстрелом наступающей армии терминаторов. Картину нарисовал утрированную он.
Вы хотите сказать, что фактов бесконтрольного поведения компьютеров — в том числе, в системообразующих компаниях из списка Fortune 500 — не существует? Вы хотите сказать, что Роберт Гейтс (шеф Пентагона) не говорил публично на международном форуме 4 июня 2011 года о том, что проблема стала «крайне серьезной»? C инфраструктурой Международного валютного фонда все в порядке? Акции Sony не падали? Никаких ежегодных многомиллиардных убытков мировой экономики от бесконтрольного поведения компьютеров нет?

Речь, конечно, идет о контроле над компьютерами их номинальных владельцев, а не хакеров :)

Чтобы прочувствовать убытки других, попробуйте представить себе, что не миллиард, а хотя бы 10 тысяч долларов потеряли лично Вы. Это уже можно назвать термином «кошмар» или еще нет?

С крупными убытками в результате цифровых инфекций сталкиваются очень многие компании, государственные и межгосударственные организации. И если взглянуть на происходящие события с их точки зрения, получается, что невозможность предсказать наверняка, будут ли компьютеры работать завтра — это сущий кошмар. Без преувеличения. Разве нет?
Вы хотите сказать, что фактов бесконтрольного поведения компьютеров — в том числе, в системообразующих компаниях из списка Fortune 500 — не существует? Вы хотите сказать, что Роберт Гейтс (шеф Пентагона) не говорил публично на международном форуме 4 июня 2011 года о том, что проблема стала «крайне серьезной»? C инфраструктурой Международного валютного фонда все в порядке? Акции Sony не падали? Никаких ежегодных многомиллиардных убытков мировой экономики от бесконтрольного поведения компьютеров нет?

Разумеется, это все есть. Вы безусловно правы.
НО.
Вы хотите сказать, что то, что мы наблюдаем, называется «бесконтрольное поведение компьютера»? Бесконтрольное поведение мы увидим, когда появится скайнет-подобные системы, обладающие собственным полноценным интеллектом и собственной, самоподдерживаемой, физической инфраструктурой. Системы, на которые люди (разработчики, поставщики желаза, взломщики, администраторы) не смогут НИКАК влиять. До этого еще далеко, будьте реалистичны.

Роберт Гейтс говорил о кибератаках на сервера различных государственных служб США. Они не имеют ничего общего с «бесконтрольным поведением компьютеров» — они следствие того, что сервера эти недостаточно надежно защищены и недостаточно скрыты от внешнего доступа вообще.

Акции Sony упали не потому, что ПО / железо на серверах сервисов Sony не подчиняются своим администраторам, не выполняют их команды, и ведут какую-то самостоятельную жизнь. Они упали тупо потому, что люди, отвечающие за сетевую безопасность в Sony — ИМХО, недостаточно компетентны, по сравнению с теми людьми, кто пытается эти самые системы взломать.

Мировая экономика, разумеется, теряет ежегодно миллиарды долларов из-за проблем с информационой безопасностью (заметьте, не из-за бесконтрольного поведения компьютеров!). Но прикиньте, сколько триллионов долларов эта самая экономика получают за счет использования компьютеров (в широком смысле, сюда идут сервера, персоналки, ноуты, многие смартфоны и таблеты… многое)? Компьютеров с гибкой, расширяемой архитектурой — на уровне модульности железа (IBM PC), на уровне OS (драйверы и прочее), на уровне виртуальных машин (write once, write anywhere), на уровне прикладного софта, который пишется без всякого rocket science на перфокартах, а в том виде, как сейчас?

Чтобы прочувствовать убытки других, попробуйте представить себе, что не миллиард, а хотя бы 10 тысяч долларов потеряли лично Вы. Это уже можно назвать термином «кошмар» или еще нет?

Кошмар конечно. Но если я потеряю их из-за того, что я держу на компе важную информацию в незашифрованном виде, и лазию по порносайтам без нормального антивируса (даже не антивируса, а комплексных средств защита, от фишинга и прочего), то это будет моя вина, а не фон-Неймана, не так ли?

С крупными убытками в результате цифровых инфекций сталкиваются очень многие компании, государственные и межгосударственные организации. И если взглянуть на происходящие события с их точки зрения, получается, что невозможность предсказать наверняка, будут ли компьютеры работать завтра — это сущий кошмар. Без преувеличения. Разве нет?
Невозможность предсказать наверняка, что будет работать завтра, а что нет… Знаете, это жизнь :) Каждый день я выхожу из дома, сажусь в автомобиль и еду на работу. Я не могу предсказать наверняка, доеду я или нет. И это не кошмар, если не зацикливаться на этом. Я не отказываюсь от автомобиля на этом основании, по крайней мере.
1. Вы правы в том, что главная причина неприятностей — социальная. У бизнеса нет возможностей обзавестись специалистами должного уровня. Бизнес не знает, где их раздобыть. Методика поиска хорошего ИТ-специалиста значительно менее отработана, чем, скажем, методика поиска нефти :) Эта тема будет одной из самых важных в нашем блоге.

2. Триллионы долларов от гибкости архитектуры экономика за полвека уже получила. Самое время вложить эти средства в научные разработки, чтобы попробовать разобраться, к примеру: способен ли человек раз и навсегда решить пресловутую проблему переполнения буфера? :) Пока же людям приходится возвращаться едва ли не каждую неделю. Это слишком частое попадание на одни и те же грабли, что заставляет задуматься о закономерности.

3. Почему Вы думаете, что гибкость архитектуры может быть достигнута только с помощью наделения программы свойством самомодификации (а компьютера в целом, соответственно, — свойством автопрограммируемости)? Вы уверены, что без этого свойства архитектура не может быть настолько гибкой, чтобы соответствовать потребностям экономики?
По поводу третьего пункта — я не буду доказывать вам, что чайника Рассела не существует ;) Я предлагаю вам вместо этого продемонстрировать наглядно, живой пример описываемой вами архитектуры :)
Повторим: компьютеры широкого применения с такой архитектурой не выпускаются. В обратном случае проблемы вирусов не было бы. Именно это мы стараемся сообщить читателям.

Если бы такие компьютеры кто-либо производил, вместо изучения вопросов теории и сложных работ по эмуляции безопасной архитектуры на основе имеющихся ресурсов, системному администратору любой компании достаточно было бы пойти в магазин и купить компьютеры нужной марки :)

Именно потому, что их никто не производит, системным администраторам приходится учиться их эмулировать. Для успешной эмуляции нужно хорошо разбираться в теории предметной области.
Интересно, что будет дальше. NX-бит + ro-страницы, управляемый код, mandatory access control, (чуть в другую сторону) trusted computing?
Вход в сеть по паспорту из специальных пунктов доступа. Информация в куках, биометрически идентифицирующая пользователя :) Меня уже понесло не туда что-то.
У Вас отличное чувство юмора :) Это очень хорошо сказано :) Но не исключаете ли Вы, что однажды нечто подобное, не дай Бог, случится?

И не окажется ли катализатором именно свойство определенной hardware-архитектуры, наделяющее программы (в т.ч. программы, выпускаемые 5-6 крупнейшими корпорациями планеты) свойством самомодифицируемости? Вы же хороший специалист, подумайте!
У меня если честно ощущение, что вы какой-нибудь аспирант/кандидат/доктор наук, готовящий диссертацию, научную публикацию, или что-то в этом роде, или же проводящий НИОКР по гранту на тему — «теоретические аспекты информационной безопасности на современных компьютерах».

Я прав?

Когда-то, года три назад, я присутствовал на защите кандидатской по какой-то подобной теме… ОС или какая-то песочница, в которой принципиально невозможно заразиться вирусами. Что-то пока я не слышал ничего о миллиардном IPO того изобретателя. Впрочем, может быть я не слежу за темой…
Нет :) Это блог компании BitDefender, расширяющей в настоящее время присутствие на рынке РФ.

Одна из главных проблем этого рынка — недостаточная информированность о практических методиках построения надежной (в частности, хорошо защищенной от вирусов и других внешних воздействий) информационной системы — как домашней, так и корпоративной.

Конечно же, это проблема не только России. Вирусами сегодня заражены, как минимум, десятки миллионов компьютеров по всему миру. Они формируют ботнеты и провоцируют экономический кризис. А мировая экономика и без того находится не на высоте.

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

Наша цель — способствовать повышению уровня информированности общества в этой области.
Звучит позитивно.

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

Чем не подходит такой лозунг — девайсы с прошитыми браузерами / плеерами звонилками и т.п. для казуальных пользователей, нормальньные PC — для более-менее продвинутых?
Читали ли Вы первый, пилотный выпуск?

Его вполне конкретные тезисы таковы:

— не подключайте все компьютеры к одной сети, это опасно;
— принимая решения о том, что можно доверить компьютерам, а что нельзя, помните, что они крайне ненадежны;
— помните, что цивилизация (или страна), попавшая в интернет-зависимость, оказывается легко уязвимой; ее экономику можно разрушить без ракет и солдат.

Основной тезис второго выпуска, тоже абсолютно конкретный:

— в идеале программы должны быть неизменяемыми, а данные — неисполняемыми.

Предлагаемый Вами лозунг не подходит тем, что для «продвинутых» пользователей уверенность в том, что их ПО не претерпело самопроизвольных и внешне незаметных изменений (скажем, в течение рабочего дня), еще более важно, чем для «казуальных».
Зарегистрируйтесь на Хабре , чтобы оставить комментарий