Здравствуйте, Andrei F., Вы писали:
AF>А ты покажи мне нормально работающую реализацию HIPS для винды? Я даже сомневаюсь что ее можно создать кому-то, кроме самого Microsoft.
А я даже сомневаюсь, что ее можно создать Microsoft. Это как раз то, что ты отказываешься понимать. AF>Вот с этого места — подробнее.
А куда подробнее? Пока что всё обсуждение сводится к диалогу типа такого:
AF: Давайте изобретем защиту с идентификацией расположения программы и всё такое
Оппонент: это не будет работать, потому что тогда отвалятся куча программ, которые сейчас используют то-то и то-то
AF: А для них мы оставим дырку, через которую они смогут лазать
Оппонент: тогда через дырку пролезут и злоумышленники
AF: Ну тогда мы сделаем еще одну заплатку, которая будет закрывать тех, кто пролез через эту дырку
Оппонент: тогда не смогут работать другие программы, которым нужно то-то и то-то
AF: А для них мы сделаем в заплатке лазейку
Оппонент: тогда через неё будут лазить все, кому не лень
AF: Их тоже можно отфильтровать
Оппонент: по-моему, мы ходим по кругу. Скажи сразу, где закончится это наслоение хитрых задниц, винтов, задниц с лабиринтом и так далее?
AF: Э, нет. Это потребует умственных усилий, я этим бесплатно заниматься не стану. Я забесплатно могу только на форумах трендеть.
Оппонент: Ок, тогда давай сразу предположим, что у МС тоже не хватает денег продумать твою идею за тебя.
AF: Этого не может быть, они на свои идеи миллиарды тратят, а на мою нисколько не хотят.
Оппонент: ну так ты же даже количество кругов оценить не можешь.
AF: Ну а ты как оценишь
Оппонент: А я оценю очень просто — вот есть огромный WinAPI. В нем есть масса потенциально уязвимых функций. Нет смысла защищать одну функцию, если есть дыры в остальных
AF: Ха-ха, да там почти весь WinAPI относится ко всякой ерунде типа Bitmap. Картинки тоже прикажешь защищать?
Оппонент: Да, прикажу. Потому что есть реальные уязвимости и в области картинок.
AF: Ну, так надо их закрыть
Оппонент: Тогда отвалятся программы, которые пользуются этим в легальных целях
AF: Ну, это хреновые программы.
Оппонент: А их пользователи считают наоборот. Им нравится.
AF: Ну, пусть тогда их авторы перепишут.
Оппонент: О да. Авторы будут просто щасливы всё бросить и срочно переписать свои приложения. Пользователи тоже, надо полагать, должны быть счастливы заплатить еще раз за весь установленный у них софт. Нет уж, это не сработает.
AF: Ну, тогда надо сделать изменения обратно совместимыми.
Оппонент: Ок, тогда надо включить в стоимость решения, помимо анализа каждой функции в WinAPI, и проектирования защиты обратно совместимым образом там, где она нужна, также тестирование совместимости с реальными приложениями. Надо отсортировать список используемых приложений по убыванию популярности, взять первые, к примеру, 10000, и проработать — потому что даже 10001е приложение всё еще используется большим количеством пользователей.
AF: Я всё равно не понимаю, почему это дорого. Но это вы идиоты, раз не можете мне объяснить так, чтобы я понял.
AF>Нахамить и одновременно обвинить в хамстве одним предложением — это уровень великого гуру демагогии
А то ж.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ikemefula, Вы писали:
I>Предложение AndreiF равносильно предложению поставить во все дома в городе одинаковые замки, с высоким уровнем защиты, дорогие, но одинаковые.
Твоя беда в том, что ты вообще не понимаешь вопрос, который обсуждаешь. Поэтому и аналогия получается неправильная.
Правильная аналогия такая: да, я действительно предлагаю навесить на все дома замки. Только сейчас там замков нет вообще. Вместо этого у входа каждого дома сидит привратник и пропускает всех подряд — кроме тех, кого внесли в список преступников, которых впускать нельзя Понятно, что постоянно появляются новые преступники, и базу данных преступников приходиться регулярно обновлять. Не успел вовремя обновить — опа, из дома уже всё вынесли
Здравствуйте, Andrei F., Вы писали: AF>А вот это, кстати, тоже интересный вопрос — с какого хрена они выполняются в его адресном пространстве? Наверно, тоже от большого ума разработчиков, которые решили что добавить пару пунктов в контекстное меню или показать кастомный оверлей у файла по другому никак нельзя.
Интересная стратегия — вместо того, чтобы разобраться с уже повисшими вопросами, начать задавать новые. Ох, извини, разработчики Windows Explorer образца 1994 года плохо подготовились к твоей мега-идее, которую ты изобрёл в 2009м. Заранее предупреждаю — вся индустрия хреново подготовилась к твоему появлению. Никакие волхвы не пришли с дарами к твоей колыбели, звезда не взошла и всё такое.
Поэтому всё наоборот — это твои идеи должны как-то применяться к сложившемуся положению. Не хочешь работать с легаси — велком, для новых архитектур то, что тебе надо, уже придумано в значительно более продвинутом виде. Читать про CAS и Singularity.
Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности. К тому же, уровень угроз в то время был значительно ниже; поэтому потребность держать плагины в отдельном процессе была вовсе не очевидна. Зато была готовая технология интеграции сторонних приложений — COM. Вот на нём и реализовали плагинную архитектуру експлорера. И для своего времени это было очень хорошее решение. Которое позволило получить красивую и логичную функциональность при приемлемой производительности. Так что да — это было от большого ума разработчиков. Как и внесение графики в ядро — в те времена более кошерные архитектуры выглядели просто смешно, так как для банального перетаскивания окна с отрисовкой содержимого в промежуточные моменты требовалась железка за ~20000 уе.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Неправ и топистартер и все, кто пытаются с ним спорить о возможности и необходимости реализации такой защиты. Для меня, например, очевидно, что сию переписку надо понимать так:
Топикстартер:
Что мешает Microsoft сделать защиту неизвестно чего от неизвестно чего? Например вот так и вот так. Почему они этого не сделали?
Ему отвечают навскидку:
Чтобы защитить неизвестно что неизвестно от чего необходимо ломать обратную совместимость, поэтому не катит.
Он хочет конкретики:
Да не придется ломать совместимость, если врезаться в API и там ослеживать обращения неизвестно чего к неизвестно чему.
Ему возражают:
Ну как же, если вот это неизвестно что вызовет диалог сохранения файла, то сможет сделать неизвестно что неизвестно с чем. Если ему закрыть доступ к неизвестно чему с неизвестно чем, то поломается совместимость.
И т.д. и т.п...
Очень увлекательно читать, между прочим, когда отталкиваясь от деталей реализации обсуждают возможность создания системы, которая будет защищать неизвестно какие информационные системы от неизвестно каких информационных угроз. А когда один спорящий рассуждает на уровне абстракций "identity, policy, etc.." а второй на уровне "handle, pid, etc..." читается еще более увлекательно
Может стоит сначала определиться с целью данной системы в терминах "субъекты-угрозы-риски", а уже потом спорить о том, насколько реально и целесообразно ее создавать?
Здравствуйте, Andrei F., Вы писали:
AF>Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
У меня например ВСЁ, что ставилось отдельно от самой ОС запускается не из Program Files.
Идиота, который заимплементит предлагаемый тобой функционал буду убивать медленно и с удовольствием.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Это надо будет перелопачивать весь массив кривых программ, которые писали, не думая про безопасность. Создавать профили безопасности для каждой программы, руководства для программистов писать. Гигантская работа, и вдобавок ненужная сейчас.
Компьютеры еще не настолько нужны в жизни, чтобы серьезно озаботиться о безопасности. Ну да, вирусные эпидемии, confiker сожрал наш квартальный отчет, потому мы его не сдали и т.д. Кому это интересно, кроме айтишников? Вот когда последнее ИП "Камаз Навозов" (гнилые фрукты по сниженным ценам!) будет рассчитываться через клиент-банк, а не наличкой, когда будт создана "кормовая база" для злоумышенников, тогда и начнется забота о безопасности.
Вообще говоря, невозможность создания непробиваемой защиты в операционке — это бред. Зайдите не под админом и попробуйте что-нибудь сделать с системой. Непробиваемость SeLinux доказана математически.
Любая защита может быть построена на одном из двух принципов:
1) Разрешено все, что не запрещено.
2) Запрещено все, что не разрешено.
В первом случае мы имеем бесконечную свободу действий, часть из которых надо перекрывать. Поскольку количество действий бесконечно, естественно, нельзя перекрыть все опасные. Это как раз про работу под админом.
Во втором случае и перекрывать ничего не надо, принцип наименьших привелегий в действии. И если браузеру надо сохранить файл где-то за пределами папки с конфигами, он вызовет SaveDialog, который вернет не имя файла, а handle. Как и было сделано в апплетах. Некоторым, вроде mamut'а, не мешало бы ознакомиться, прежде чем задавать якобы убийственные вопросы.
Итак:
1) Непробиваемая защита возможна.
2) Ответственность за поведение автомобиля на дороге несет водитель.
3) Спички детям не игрушка.
А посему, надо вводить ответсвенность владельцев компьютера за поведение компьютера. Штрафовать за рассылку спама и т.п. Взломали кого-то через прозрачный прокси на твоем компе? Штраф плати. И не разводи зоопарк у себя в системе. Ворд слишком сложно защитить? А мы напишем редактор на яве, правда по функциональности он будет в 10% от ворда, но норот и 5% не знает, и поэтому будет пользоваться.
Подобная инициатива, помимо прочих преимуществ, вызовет рост зарплат в IT-сфере и увеличение числа вакансий. Прежде чем протестовать, подумайте об этом.
Здравствуйте, Pzz, Вы писали: Pzz>Ребят, я с вас хренею. А вы точно программисты? Если бы вам начальство поставило такую задачку, вы сказали бы, что это невозможно?
Конечно. Вот менеджеры по распилу — сразу бы сказали что это возможно, но очень дорого. А честный инженер должен сразу объяснять, что "нет, сие решительно невозможно".
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ikemefula, Вы писали:
I>Самое главное при этом — потратить вагон времени на тестирование что бы не дай бог какй то комбинация параметров не сорвала стек или самого OpenFileDialog или стек того, кто будет выполнять маршаллинг
Короче говоря, ничего сделать нельзя потому, что нельзя, и поэтому лучше и не пытаться. Я кто думает иначе, пусть читает "програмирование виндовс для чайноков" до полного просветления.
Думаю, если бы все следовали такому подходу, мы до сих пор программировали бы наши компутеры путем перетыкания перемычек на контрольной панели
Вот черт, а я надеялся ты правда перестанешь сюда писать. Никому нельзя доверять...
>Потому, что per-application manifest — недостаточно.
Недостаточно для тотальной безопасности — это все-таки лучше, чем вообще ничего.
А от идеи загружать неуправляемые плагины в основной процесс давно пора отказываться. COM еще черт-те когда придумали.
S>Не шоустоппер???? А ничего, что 90% productivity applications использует эти "хитрые кастомизации"?
И откуда цифра 90%? С потолка, вестимо?
S>Как именно должен себя вести код винды, в случае если приложение заказывает диалог с custom template и hook function?
Создать отдельное окно в вызывающем процессе по этому шаблону и к нему прилепить хук. А это окно отобразить рядом или поверх основного диалога открытия/сохранения.
Есть конечно особо тонкие извращенцы, которые субклассируют главное окно диалога и надругиваются над ним по всякому, но здесь я предложить ничего не могу — только давать проге особое разрешение, или рубить руки разработчикам.
Хотя в чем-то ты наверно прав, внедрять систему сразу в режиме "запрещать всё" не стоит. Сначала оставить всё как есть, ограничения безопасности вводить только для тех приложений, к которым производители уже приделали манифест. Ну и конечно будет нужно провести кампанию, чтобы добровольно-принудительно их к этому склонить.
Когда-то ведь пора кончать с беспределом, когда каждому приложению разрешено творить всё что угодно.
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Потому, что всё намного сложнее, чем тут описано.
Во-первых, запись — ещё не всё. Чтение тоже нужно ограничивать, чтобы злонамеренная программа не спёрла, к примеру, твои пароли — после чего один хрен будет выполнена эскалация привилегий и защита записи не поможет.
Во-вторых, уровень per-process — тоже еще не всё. Вот есть у тебя некое приложение, которому дан уровень привилегий X. Это приложение выполняет некий скрипт, загруженный из источника Y. Внимание, вопрос: какие привилегии нужно выдать этому скрипту? X? Тогда мы имеем дыру в безопасности — все скрипты пользуются общим "профилем приложения в MyDocuments"; в итоге веб-клиент банка и малварный флеш-ролик прекрасно видят секреты друг друга. Y? Тогда расскажи мне, как технически ОС об этом узнает.
На всякий случай напомню, что для ОС, вообще говоря, достаточно мало что известно про внутреннее устройство процесса. Максимум, что ОС сможет определить — это откуда отмаплены фрагменты статически загруженных модулей (.exe и .dll). Всё, что касается динамически сгенерированного кода — неизвестная величина.
Все ссылки на AppArmor я, в некотором смысле, считаю фейком. В том смысле, что по-настоящему его еще не ломали. По-настоящему — это значит взрослого уровня трояны с применением социальной инженерии, технических штуковин, и с прибылью для взломщика. Поэтому пока что он остаётся красивой теорией. А на винду идет постоянная реальная атака, которую надо как-то сдерживать. Плохо реализованные методы защиты фактически понижают общий уровень безопасности.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Убавь немного градус понтов, а то глаз режет.
Значит, глаз такой. AF>Все опасные функции запрещены. Внутри каждой проверка — разрешено данному приложению вызывать эту функцию или нет. Если не разрешено — получай E_ACCESSDENIED. AF>Расскажи, как и что здесь можно обойти?
Я уже рассказал. Не один раз. Дупа в том, как устроен алгоритм этой проверки. Ты пока не смог нарисовать блок-схему даже для одной функции. Но считаешь, что у МС заведомо хватит денег нарисовать эти блок-схемы для всего огромного WinAPI.
Ты вот, пока тебя носом не ткнули, не хотел про битмэпы разговаривать. А теперь делаешь вид, что защита SelectObject — мой каприз.
AF>Прекрасно реализуется. Или проблема с превью — это для тебя непреодолимое препятствие?
Хреново реализуется. Ты уже придумал работоспособное решение проблемы с превью? Тогда иди в MSDN, почитай что сейчас работает в плане common dialog customization, и придумай обратно-совместимое решение для всех ручек, за которые можно там подергать — так, чтобы легальные подёргивания работали, а нелегальные — нет. Само понятие "системный диалог", на которое ты опираешься в своих задорных рассуждениях, в винде весьма размыто.
S>>Прекрасно. Как мы уже увидели, per-application manifest совершенно недостаточны. Либо весь функционал WinAPI нужно выносить в отдельные процессы AF>Бред. Зачем?
Затем, что Open Dialog, работая в твоём процессе, будет точно так же побрит, как и само приложение. Потому что он внутри использует точно такие же вызовы CreateFile, FindFirst/FindNext, как и твоё приложение. Поэтому чтобы он мог "выдать разрешение" на какой-то файл, он должен сначала сам его получить.
В твоей схеме так не работает — манифест выдаётся на всё приложение. Всё, этого достаточно, чтобы ничего не сработало. Дальше я обсуждать не буду — мы бегаем по кругу.
AF>Только те, которые не уложатся в стандартные профили. Теперь я вижу, насколько внимательно ты читал
О байт. Всё, это последний пост. В "стандартные профили", как я уже писал, уложатся не 50% приложений. А значительно меньше. Кроме того, настораживает множественное число у "стандартных профилей". Сколько их будет? Кто будет решать, какой профиль применить? Пользователь? Ну, тогда готовься к тому, что пользователь будет выбирать самый "широкий" профиль — потому, что он не понимает, чем они отличаются. Кроме того, что нужное ему приложение работает тем хуже, чем ниже профиль поставишь.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Sinclair, Вы писали:
AF>Какой, к черту, алгоритм? AF> if (!manifestAllowsDebuggingApi) AF> { AF> SetLastError(ERROR_ACCESS_DENIED); AF> return E_FAIL; AF> }
До тебя уже один товарищ показал в этом же топике точно такое же решение.
Разницы между твоим решением и его в именах переменных
у тебя manifestAllowsDebuggingApi а у него bSpecialPermission
И дальше этого ничего не ясно.
Вот прикинь, как майлварщик захочет обойти твое решение и что ему понадобится.
на каждый шаг нужно время, деньги, человеческие ресурсы.
на листочке напиши всех участников процесса — хомюзеры, домохозяйки, ит-специалисты, корпоративные всякие, вендоры софта, майлварщики, мега-гиганты вроде MS и тд и тд.
А потом посмтори, кого и как твоё решение нагружает.
Ты предложил вот мега-решение на счет плагинов в отдельном процессе,+ обрубать права на посылку сообщения в другой поток, +обрезать всякие сомнительные возможности вроде рисовать прямо в экран и save-open диалог.
Что получается.
У всех юзеров без разницы возникают проблемы с запуском приложений, которые работают сейчас.
У всех вендоров возникает проблема с переписываним и выпуском манифестов и сертификатов
мега-гиганты во первых вынуждены переписывать и тестировать, а во вторых предлагать чтото пользователям для компенсации обрезаных приложений
все игроки получают геморрой,
контора которая будет бороться с сертификатами, получает прибыль
при этом увеличивается зависимость от ЧФ, правильных настроек и тд и тд , что при сохранении уровня грамотност пользователя вобщем то уже является дырой размером со слона
Т.е. майлварщики будут продолжать заниматься тем же, чем занимаются и сейчас — поиском и использованием дыр, правда уже в других немного направлениях, например инсталяции приложений и тд.
совершенно очевидно, что защиту будут ломать и обходить всеми мыслимыми и немыслимыми путями, поскольку она будет установлена на компьютерах всех
пользователей или большинства таких.
Итого — при __идеальной__ имплементации твоих решений схема получается вроде как рабочая(но только технически, без учета ЧФ), только запустить её ну никак не получится, потому что она бьёт честных игроков рынка и плодит нахлебников вроде тех, что будут контролировать сертификаты.
При этом нельзя оценить, насколько поднимется планка для майлварщика.
Нет списка существующих дыр, нет списка обходных путей, есть только твои уверения, что все будет работать.
Здравствуйте, Mamut, Вы писали:
M>Расширение файлов я последний раз видел хз, в прошлом году, наверное
Ппц. То есть никаких расширений нет, если ты их не видишь?
M>1. Возьмем банальное приложение — Adobe Photoshop. Едиинственное ограничение для него — это не писать в системные папки. А так — куда хочу, туда и сохраняю
Сохранять — ради бога. Но удалять doc файлы ему совершенно ни к чему, например. Равно как пытаться лезть в отладочный API и делать много других грязных делишек.
Повторяю еще раз, по буквам. Приложение может писать только туда, куда ему разрешили — непосредственно этому приложению или классу однотипных приложений. Как именно разрешать — это отдельный большой вопрос, но он точно решаем. Ключевой момент — разрешение доступа на уровне приложений, а не пользователей. Доступ к опасным возможностям должен даваться отдельными категориями, а не "всё или ничего", как сейчас.
Дальше продолжать не вижу смысла.
Здравствуйте, Mamut, Вы писали:
M> и необходимо переписывать приложения, чтобы они регистрировали свои действия в системе.
при этом зловредные приложения будут регистрироваться получая все нужные привилегии себе, например хотя бы спросив пользователя разрешает ли он так зарегистрироваться и ждать что по теории вероятности из двух кнопок "Да" и "Нет" чуть меньше половины пользователей будет выбирать "Да".
Ну либо Microsoft должен сделать что-то вроде iPhone-овского iStore и разрешать устанавливать/запускать только приложения, на которые они дали свое благословение. .
Здравствуйте, Pzz, Вы писали: Pzz>Ну давайте я назову. Проверки, имеет ли право данная программа делать ту или иную операцию. Например, открывать такой-то файл на чтение.
Осталось понять, что такое "данная программа". Как отличить код процесса, загруженный из его екзешника, от кода, загруженного из кошерной DLL?
Как с достаточной надёжностью проверить стек? Как гарантировать, что злое приложение не передало в OpenFileDialog callback, который будет расположен ниже по стеку, чем OpenFileDialog, и получит все привилегии еще до того, как пользователь что-то там подтвердил?
Дорогие детишки, простого решения этой проблемы не существует. Ровно по тем же причинам, по которым не удается задавить наркоторговлю и терроризм.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
C>>Правда. Вы чем слушаете? Всего парой постов выше я говорил о Win7 и как там это работает.
AF>Если я напишу небольшую прогу, которая делает take ownership и удаляет все файлы с диска C:\ какие может, отправлю мылом коллеге, а он ее запустит из под админского аккаунта — что произойдет?
Система спросит дать ли права этой программе. Если права будут даны, то те файлы, которые возможно удалить, будут удалены. Так было, есть и будет, и не зависимо от ОС.
C>>Это не ответ на вопрос. Какие правила?
AF>Тогда должен бы понимать. Для каких путей и расширений файлов приложению можно писать в файлы и удалять, для каких — нет.
Расширений существует тысячи, путей — неограниченное фактически количество вариантов. Как пользователю задать эти права и какой пользователь захочет заниматься этим?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, criosray, Вы писали:
C>>Система спросит дать ли права этой программе. Если права будут даны, то те файлы, которые возможно удалить, будут удалены.
AF>Что спросит и какие права?
странный вопрос.
учетка — админ. Вопрос будет: запустить программу? И все. Ответ "да" сигналит о согласиит.
C>>Расширений существует тысячи, путей — неограниченное фактически количество вариантов. Как пользователю задать эти права и какой пользователь захочет заниматься этим?
AF>Портов тысячи, хостов в интернете миллионы — неограниченное фактически количество вариантов. Как пользователю задать эти права и какой пользователь захочет заниматься этим? AF>Нет, фаервол — это однозначно невозможно.
Портов 60 тыщ, используется 10. Разрешений два: пакеты внутрь или наружу.
Правила обычно простые: запрет всего, кроме трех сервисов.
На моем роутере вообще правил штук 7. Все остальное — запрет по дефолту.
А прикинь то же самое для софта на компе. Либо авторам файрвола придется набивать правила для кучи сторонних приложений в правила по дефолту. Либо юзер будет обламываться на каждом шагу.
Помню мое первое знакомство с Outpost. Поставил, запустил. Отвалились виндозные шары. Ладно, знающий чел подсказал какую настройку сменить. А комп другана вообще почти никогда нельзя было даже пропинговать из-за этого монстра.
В общем, дело на любителей. Хочешь заморачиваться — ставь и развлекайся. Втыкать ЭТО в ОСь.... Не надо!
Здравствуйте, Andrei F., Вы писали:
C>>Ну вот когда придумаете КАК решаем, тогда возвращайтесь — мы продолжим обсуждение. Пока это все пустые слова и фантазии.
AF>Вопрос всего лишь в том, как задавать правила, чтобы обеспечить максимум безопасности и минимум проблем совместимости. И здесь точно нет никаких нерешаемых проблем. AF>А обеспечить выполнение правил — элементарно.
Все еще пустые слова. Вы даже сформулировать внятно не можете что это за права и как их раздавать, и чтоб это не превратилось в UAC #2 но в сто раз более анноящее...
Здравствуйте, criosray, Вы писали:
C>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
Ребят, я с вас хренею. А вы точно программисты? Если бы вам начальство поставило такую задачку, вы сказали бы, что это невозможно?
Здравствуйте, DOOM, Вы писали:
DOO>Деньги из кармана пользователей
То-то и оно. DOO>Это же рынок — еще пока формирующийся, но достаточно быстро растущий.
Брр. Рынок чего? Средств индивидуальной защиты? Ну так если хочется иметь быстрорастущий рынок — то как бы глупо требовать от МС задавить его в зародыше выпуском своего решения.
DOO>Тут примерно та же идея — то, что другие делают как хак, MS может встроить в систему аккуратно.
Это совсем другой фиче-реквест, чем озвучен топикстартером.
DOO>Почему? Ты потенциальную прибыль оценивал?
Нет, оценивал потенциальный убыток.
S>>Я не против антивирусов, как и не против систем изоляции. Я просто отвечаю на вопрос в его оригинальной постановке — "что мешает Microsoft встроить ограничения в API". S>>Вот ровно это и мешает — предлагаемые ограничения будут мешать только хорошим. В результате, поделив прибыль на затраты, получим чистый убыток. DOO>Не ясна логика. Я с трудом берусь оценить прибыль от этого добра и уж точно не могу вот так за 5 минут оценить затраты.
Очевидно, что затраты весьма велики. То есть речь не идет о паре функций на двадцать строк каждая. Очевидно, что потенциальных улучшений — кот наплакал.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
I>>Гуглом тебя не учили пользоватьяс вероятно. Сдётся, перегрев уже необратимый.
AF>А ты уверен, что гугл проиндексировал данные пятилетней давности? Не ломайся и просто дай ссылку.
Нет, гугл специально обучили именно пятилетней давности страницы не индексировать.
Здравствуйте, Andrei F., Вы писали: AF>Ты почти ничего не прочитал и еще меньше понял.
Я всё прочитал, и понял даже больше, чем ты написал. У меня есть ответы на те вопросы, на которые ты еще не ответил, и вопросы к тем ответам, и следующий раунд ответов и вопросов тоже.
AF>Моя идея — доступ к любой опасной функции в API нужно по умолчанию запретить. Опасные здесь — это те функции, которые позволяют прочитать или записать сенситивные данные (включая документы пользователя), вмешаться в работу чужого процесса, прописаться в автозагрузку и так далее. Если тебе очень хочется — некоторые функции, которые могут позволить ввести пользователя в заблуждение, тоже можно считать опасными.
Угу. Хорошо. Пока всё понятно. Дело, конечно, не в том, чего хочется мне. А в том, чего хочется тебе. Хочешь запретить опасные функции — будь любезен придумать способы предотвращения обхода этих ограничений. Иначе это всё — только упражнения по распилу бабла (см. Нейронные Сети как Защита Кредитных Карт).
AF>Доступ в файловой системе — только к temp и папке служебных файлов, к остальным документам — по специальному разрешению пользователя. Таким разрешением можно считать использование системного диалога открыть/сохранить файл.
Это, как уже обсуждалось, плохо реализуется на практике.
AF>Доступ в реестре — только к тем веткам, которые нужны приложению для работы.
Это опять предложение вроде "порох непромокаемым". Я так тоже могу: "давайте запретим приложению доступ ко всем ресурсам, кроме нужных ему для работы". Ты включи регмон во время работы любого приложения — будешь удивлён, к скольки местам ему надо доступ. Причем значительная часть этого доступа осуществляется вообще системой, без ведома прикладного кода. Но от имени прикладного процесса. И на этот раз трюк с диалогом, который волшебным образом запоминает путь к файлу, который выбрал пользователь, не пройдет — нет там никакого диалога.
AF>Важно понимать, что доступ к каждой опасной возможности можно включать или выключать независимо для каждой возможности и каждого приложения в отдельности. Набор разрешений для каждого приложения хранится в специальном файле, который мы будем называть манифестом безопасности. Такие манифесты могут быть созданы производителем системы защиты для стандартных категорий приложений и должны покрыть процентов 50 приложений — которые были написаны по гайдлайнам.
Прекрасно. Как мы уже увидели, per-application manifest совершенно недостаточны. Либо весь функционал WinAPI нужно выносить в отдельные процессы, с которыми будет взаимодействовать приложение. Это крайне дорогостоящее решение, и в первую очередь — в тестировании. И это мы еще даже не подошли к проверке справедливости оценки в 50%. Она, надо полагать, получена по методу блондинки — "заработает/не заработает"?
AF>Также нужны vendor-defined манифесты — для более кривых программ. Здесь вероятно потребуется организация, которая будет проверять манифесты (чтобы не разрешали слишком много) и ставить цифровую подпись. AF>Приложение, которое имеет манифест одного из этих двух типов — получает красивый сертификат "Приложение повышенной безопасности", которое вывешивается на сайте производителя и коробке с продуктом, и дает производителю +50% merchant skill.
Смелая гипотеза, особенно про +50% merchant skill. Мне напомнить про т.н. Windows Logo Program? Посчитай, сколько из твоих программ имеют это Windows Logo. А для пользователя что одно, что другое — одна фигня: "какая-то финтифлюшка, выдаваемая за деньги". К Merchant Skill дают добавку более независимые штуки, типа "Editor's choice". А сертификат — +0.00050%.
AF>Приложение, у которого такого манифеста не будет — вероятно, не сможет работать. AF>Здесь понадобятся user-defined манифесты. Пользователь может вообще отключить любые ограничения, если очень доверяет производителю. Здесь хочется сделать ремарку, что если пользователь полный дурак и при этом имеет админские права, и на все вопросы отвечает "разрешить" — то защитить его систему невозможно в принципе, поэтому такую задачу мы рассматривать не будем.
Здесь хочется сделать ремарку, что 100% приложений в начале предлагаемой эпопеи попадут в эту категорию. Поэтому пользователю придется доверять производителю — что, никто не ставил неподписанные драйвера для висты? Таким образом, с самого начала мы имеем пользователей, задолбанных необходимостью наруливать невнятные права по безопасности. Поскольку квалификация среднего пользователя никак не позволяет ему отличить HKCU от HKLM, то пользователи скорее будут искать решения на форумах — типа "вот рег файл, который ставит манифест для принцесс оф зелда". Ну, а дальше мы имеем все радости жизни от системы, доверие к которой подорвано с самого начала. Поскольку пользователи так и так будут знать, что "AF Protection — унылый отстой, оно мне еще ни для одной программы манифест не нашло, там всегда нужно говорить Yes, Yes, I Agree, Ok — иначе нихрена не работает", то малварь ни секунды не задержится на входе.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Cyberax, Вы писали: C>Процесс с плугином запускается, запускает COM-сервер, регистрирует свою фабрику объектов. Затем подсистема OLE создаёт нужный объект и занимается маршаллингом вызовов.
Да? А мне тут Andrei F только что рассказывал, что достаточно флажок у CoCreateInstance в explorer.exe поменять, и всё волшебным образом заработает.
C>Но ничто не мешает: C>1) Сделать немного более легковесный механизм для плугинов (тот же стандарт ActiveX доработать, добавив поддержку out-of-proc).
О-о, начинается. Да, вот бы нам машину времени и обратно в 1989, чтобы успеть войти в совет директоров MS. И денег надо с собой взять не забыть — чтобы оплатить доработку стандарта ActiveX. Ну, и желательно не забыть диск с Visual Studio 2008, потому что средства разработки COM в 1991 году были, мягко говоря, так себе. А, ччёрт, там же еще нет нормальных машин, чтобы студия взлетела! Короче, придется брать сразу весь ноут. Вот Гейтс охренеет, когда я ему Win7 RC покажу!
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, DOOM, Вы писали:
I>>>Ну мало ли. Суди сам. Пиши сразу — ссылок, информации нет. Это по крайней мере понятно сразу. А то пишешь то про аналитику, то про фичи известные тебе а ни то другое хотя бы примерно показать не можешь.
DOO>>Ссылки есть, но я не понимаю, почему я должен тратить свое время на поиск вещей, которые ты и сам мог бы найти, было бы желание.
I>Ты слегка поторопился своим языком. I>Нет той аналитики о которой ты говорил. I>И списка фич в сервиспаках, которых больше чем разницы между XP и Vista тоже нет. I>Вот и всё.
Нет уж товарищ, Ikemefula. Если ты не знаешь, как в support.microsoft.com извлечь информацию по новым фичам каждого SP для XP — это твои проблемы. Не надо меня DoS'ить трудновыполнимыми запросами — я могу это делать только, если
1. У меня есть на это время.
2. Это реально надо тому, кто запрашивает, а не то, что кто-то шлангом прикидывается и ему надо банальные вещи доказывать.
Здравствуйте, Sinclair, Вы писали:
AF>>Причина очевидна и я уже здесь писал. Чтобы перекрыть процессу доступ к API, сторонней фирме нужно использовать перехват API и прочие злые хаки, а Microsoft — просто вставить пару строк в исходный код. S>Это вопиющая глупость. "Пару строк" малварное приложение просто скипнет, сделав прямой джамп на X байт ниже адреса точки входа в DLL. Там всё должно проверяться в кернел моде.
Лучше так — загрузить ДЛЛ к себе в память почти как обычный файл, пропатчить там нужные байты и перенастроить таблицы импорта-экспорта что бы юзалась вторая копия а не первая. Это более правильный способ, нежели джампы всякие, не требует особых усилий, потому что от джампов довольно просто защититься.
Вуаля — все в шоколаде.
Andrei.F, у тебя есть готовое решение, как защититься от этой дыры ?
Здравствуйте, Ikemefula, Вы писали:
I>Ну ты и дуб. И ежу понятно, что технически можно сделать все что угодно. Вопрос в том, как сделать так, что бы не отрубать эндузерам руки по сраку или даже по шею. I>Кроме того, вопрос в том, как это потом продвигать и как бороться с обратной совместимостью и знать с кем судиться. I>Сделать могут. Только с первым же выходом системы с тким файрволом им придется судиться со всеми крупными игроками этого рынка.
Если не ставить most restrictive mode по умолчанию — всё будет работать и ни с кем судиться не придется.
I>Потому Микрософт делает именно вот такой убогий фаервол, что бы защитить не отрубая рук и при этом не задавить рынок фаерволов.
Другим производителям это не мешает писать нормальные фаерволы, а "как не задавить конкурентов" M$ всегда интересовало в самую последнюю очередь.
Ты полный идиот или тролль. Изыди, нечистая сила.
Здравствуйте, Mamut, Вы писали:
M>Ну, малварь может взломать и само приложение и перезаписать/обновить свой профиль, расширяя полномочия именно приложения. А потом от лица приложения творить, что хочет. Или не может?
Профиль идет в пакете вместе с приложением, и ставится в папку, куда писать можно только руту — соответственно, если приложение работает без прав рута, то злоумышленник, даже в случае эксплуатации уязвимости, позволяющей выполнение произвольного кода, не сможет ни сменить профиль, ни выполнить какие-либо действия, запрещаемые профилем. В случае, если бы не было AppArmor, злоумышленник обладал бы всеми привилегиями пользователя, который запустил приложение.
KV>Может стоит сначала определиться с целью данной системы в терминах "субъекты-угрозы-риски", а уже потом спорить о том, насколько реально и целесообразно ее создавать?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Andrei F, с чем конкретно не согласен? С тем, что обсуждение любой системы лучше начинать с определения того, какую задачу она будет решать, или с высказанным мнением что у тебя нет четкого понимания с чем и зачем должна бороться такая система?
AF>Не согласен — с извращением моих слов.
Я же не приписывал их тебе, я просто озвучил как эти слова воспринимаются мной. Ты не согласен с тем, что я их воспринимаю именно так?
AF>Я написал вполне ясно, в чем смысл идеи — нужно ограничивать доступ к данным и опасным возможностям ОСи не только на уровне пользователей, но и на уровне приложений.
Т.е. объектами твоей модели разграничения доступа являются приложения. Отлично. Но операционная система не в курсе что такое "приложение". Уже упомянутый тут Symantec Antivirus или Microsoft Firewall Client, или Lotus Notes, или JRE — это приложения в терминах твоей модели? Что ты будешь делать с тем, что тот же SAV — это 7 процессов, 4 драйвера ядра и 2 системных службы? Кто будет собирать этот зоопарк в "приложение" к которому нужно применить нужную политику разграничения доступа?
Идем дальше: субъектами твоей модели являются "данные" и "опасные возможности ОСи". Сам не находишь, что эти термины несколько расплывчаты? Что такое "данные"? В начале треда ты намекнул на то, что это объекты файловой системы. И все?
То же самое с опасными "возможностями" ОС. Опасной "возможностью" ОС является является любая "возможность", для которой математически не доказано отсутствие уявзимостей в ее архитектуре и реализации. Иными словами, такими "возможностями" являются практически все "возможности" ОС. Если не согласен — озвучь, плс, свои критерии оценки "опасности" таких "возможностей". А то, что под "возможностями" могут скрываться как системные вызовы, так и (например) побочные эффекты от использования совокупности определенных вызовов в определенном порядке, говорит об охренительной сложности реализации предложенной тобой модели, обусловленной вот такими вот деталями, которые ты почему-то считаешь несущественными.
И самое главное, ты ни разу не объяснил, чем же эта модель будет лучше уже существующих (дискреционной, ролевой, мандатной и т.п. и их сочетаний). Причем походя раскритиковал последнюю, несмотря на то, что предлагаешь нечто, весьма на нее похожее.
AF>С чем и зачем должна бороться такая система ограничений — это вполне очевидно.
О да, конечно очевидно, что она должна ограничивать доступ к "данным" и "опасным возможностям" ОС на уровне "приложений", тут сложно спорить
AF>Ну или мне так казалось. Несколько человек, действительно, поняли. К моему разочарованию, их оказалось единицы.
Ты предлагаешь реализовать достаточно дорогостоящую и сложную штутку, считая что выгоды от ее внедрения будут и так всем очевидны. Это заблуждение, т.к. даже генерация идей (т.е. начальный этап) на подобную тему должна иметь под собой фундамент в виде конечной цели разработки модели в терминах "мы хотим минимизировать риски по угрозам A,B,C, на столько-то за счет того-то и того-то, угрозы D и E закроем одной из существующих моделей, а на F и G пока вообще забьем, т.к. это зона ответственности разработчиков приложений. в результате мы получим модель доступа, аналогичную мандатной, но обеспечивающую уровень безопасности на столько-то выше дискреционной и настолько-то выше мандатной, что и является целью нашей разработки".
А дискуссии на тему "почему бы не сделать вот так", без четкого понимания конечной цели, со стороны выглядят как встречи клуба анонимных фантастов.
AF>У тебя возникли какие-то сложности с пониманием, или ты просто не читал, но свое веское мнение имеешь?
А ты перестал убивать бабушек по утрам, или уже перешел на тяжелые наркотики, но по-прежнему не можешь избавиться от алкогольной зависимости?
AF>От остальных я также узнал, что:
Долго думал, почему ты написал это в ответе мне. Единственное что пришло в голову, что тебе интересно мое мнение на этот счет. Ну, ок:
AF>1. бороться с дырками вообще бесполезно — потому что чем меньше дырок, тем больше вирусов
Количество вредоносного ПО под конкретные системы линейно зависит от популярности этих систем. Степень их уязвимости тут не причем.
AF>2. бороться с дырками опять же вообще бесполезно — даже если их все закрыть, малварь будет мимикрировать под полезные приложения и с этим абсолютно ничего невозможно поделать
Не факт, что с этим надо что-то делать. Безопаность ради безопасности никому не нужна. Если проще и дешевле оставить уязвимость открытой, чем нести затраты связанные с ее устранением, то разумнее пойти первым путем.
Отсюда следует важный вывод, что безопасность — это не только закрытые "дырки", это компромис между защищенностью и кучей факторов, связанных с целесообразностью и стоимостью ее обеспечения.
AF>3. умные люди уже давно продумали все возможные варианты, поэтому сиди и не рыпайся. То, что продукт "умных людей" на редкость крив и убог — вообще не твоего ума дело.
В такой формулировке не согласен (правда, что-то я ее тут, в теме, не нашел). Но и отметать любые аргументы против твоей идеи здесь — тоже не самая разумная и перспективная лично для тебя модель поведения
AF>4. это обойдется очень-очень дорого, потому что весь софт придется целиком переписывать,
Дорого, да. Переписывать придется много, тоже да. Достаточно дорого и много, чтобы задуматься над тем "а надо ли оно вообще в такой реализации?".
AF>потому что по другому они не представляют как решить эту задачу, а значит это вообще невозможно
Склонен не согласиться с выделенным. Но, по крайней мере, имеет смысл изучить всю доступную информацию на тему "значит это вообще невозможно", т.к. безопасность в MS обеспечивают весьма умные дядьки, редко позволяющие себе столь категоричные высказывания без веских на то оснований. А здесь общаются достаточно умные дядьки, редко позволяющие себе говорить что-либо от лица умных дядек из MS, руководствуясь при этом лишь собственной фантазией.
И тетьки кстати тоже
AF>5. обеспечивать безопасность — вообще не задача ОС
В такой формулировке — именно так. И ты получил такой ответ именно потому, что сам до конца не разобрался, об обеспечении какой безопасности и от чего, ты здесь рассуждаешь.
Здравствуйте, Mamut, Вы писали:
M>А что, есть ОСи, в которых это реализовано? Или это просто «хачу, шобы МС так сделал»?
Ну например — AppArmor, очень похожая идея. Теперь, когда я дал ссылку на авторитет, мои слова уже можно начинать читать и даже немного пытаться понять?
Здравствуйте, Andrei F., Вы писали:
AF>Повторяю еще раз, по буквам. Приложение может писать только туда, куда ему разрешили — непосредственно этому приложению или классу однотипных приложений. Как именно разрешать — это отдельный большой вопрос, но он точно решаем.
Ну вот когда придумаете КАК решаем, тогда возвращайтесь — мы продолжим обсуждение. Пока это все пустые слова и фантазии.
Здравствуйте, Ikemefula, Вы писали:
I>Не существует ни одной защиты, которая бы работала без отрубания рук пользователям.
Здравствуй Капитан Очевидность! Может тогда нахер всю безопасность? Это для хоум юзера побоку вся эта безопасность, а вот корпоративному сегменту, вся эта безопасность ой как нужна, для них, собственно, ноувелл и делал аппармор. Кроме того профили софта позволяют уменьшить последствия взлома браузера, например. Но от действий установленной малвари это не спасёт, от малвари защищаются совершенно другими методами. Основная причина появления SELinux и AppArmor'а в том, что довольно сложное приложение запускать нужно с наименьшими необходимыми правами, причём даже права пользователя под которым оно запущено слишком широки, в общем случае, а всё из-за того что не всякому софту можно сделать аудит, мало того этот аудит стоит значительно дороже чем, простое описание того куда приложение может щимиться в сеть, куда сохранять файлы и что ещё может запускать. Этот периметр определяется довольно легко, это может сделать даже не имея доступа к исходникам и авторам программы.
Основная цель AppArmor-а SELinux-а уменьшить издержки на безопасность, как со стороны производителя софта, так и со стороны пользователя. Собственно чем бы от этого стало хуже винде и её пользователям для меня загадка. Ведь необязательно писать эти профайлы для каждой софтины. Ну кто, простите меня, будет пытаться использовать уязвимости слабо распространённой программы? Достаточно таких профилей для системных сервисов, всяких браузеров и, возможно, оффисов. И написать в каких-нибудь гайдлайнах что это кошерный способ сказать что ваше приложение секурно.
ЗЫ CAS же вон для дотнетовских прог зря сделали? Это ведь тоже направление на корпоративный сектор.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, DOOM, Вы писали:
DOO>Идея, на самом деле, очень простая и, как ни странно, очень действенная. Для SELinux все, что надо это неабор стандартных заготовок под весь более-менее популярный софт + мощный инструмент дизайна политик. Кстати, может это все и есть — я никогда этим вопросом плотно не занимался.
Этот SELinux привел уже к формированию стойкой привычки среди администраторов: если что-то в системе не работает, для начала проверь, не включен ли SELinux
С ним беда та, что те политики, которые прилагаются к программам, содержат в себе изрядное количество мелких ошибок. И как тестировать, тоже не очень понятно, потому что какие-то файлы программа жует всё время, их легко оттестировать, а какие-то редко, и поэтому погоняв программу разумное время, все равно нельзя быть уверенным, что все с ней хорошо. Причем не все еще программы понимают, что их SELinux послал, и программа может даже не жаловаться, а просто тихо глючить.
Здравствуйте, Andrei F., Вы писали: AF>Что-то я упустил один из шагов твоей логики... каким образом "веб-клиент банка и малварный флеш-ролик" оказались в одном процессе?
Оба работают в браузере. У них обоих origin — то место, откуда загрузился процесс браузера.
AF>Не будет осложнять. Один из плюсов моей идеи — законопослушный пользователь даже не узнает о существовании защиты, пока приложение не попытается сделать что-то неразрешенное.
Один из минусов — никакой модели нет. Есть общие соображения, которые плохо совместимы с практикой.
AF>Анекдот про японцев и туалет слышал?
Анекдоты — это в КУ. Если берешься рассуждать о безопасности, то придется ознакомиться с матчастью, а не с анекдотами.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
C>>В частности, обычному пользователю запрещено писать или изменять что-то в Program Files.
AF>Я говорил не про пользователя, а конкретную программу. Чувствуете разницу?
Нет, не чувствую. Программы выполняются под пользователем. Не знали об этом?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, gandjustas, Вы писали:
G>>Да сделали, еще начиная с XP. Завывается ACL и priveleges. Вот только под учеткой с какими правами большинство пользователей работает?
AF>Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
Угу. А теперь придумай способ гарантированного определения программы.
Особенно из глубин kernel32.dll.
AF>Значит, нужен другой sandboxing — с послаблениями.
Какими?
M>>Andrei F., правда, так и не раскрыл, в какой ОС он видел реализацию того, что он требует
AF>О боги, не перестаю удивляться, как невнимательно люди читают, но при этом все равно пишут и пишут...
Здравствуйте, criosray, Вы писали:
AF>>О боги, не перестаю удивляться, как невнимательно люди читают, но при этом все равно пишут и пишут... C>Так в какой?
не, ну разве непонятно — намек на то, что венда отстой по причине отсутствия selinux/apparmor а про "в какой" так тут (в КСВ) вообще никакого разнообразия выбора
AF> M>а) не привел ни единого аргумента, что это важно и нужно или что это лучше существующей системы (ну или хотя бы лучше разграничения прав пользователей a la linux)
AF> То, что существующая система не справляется с задачей — не аргумент?
В винде — быть может (пока) не работает. В *nix'ах работает.
AF> M>б) ты не привел примеров того, как это будет работать вообще (хотя я попросил рассказать, как это работает на примере того же AppArmor'а)
AF> Я описал достаточно, чтобы понять — если есть желание понимать. Если желания понимать нет, то я ничего не могу сделать
Да нифига ты не описал. Все, что ты сказал — это «хачу фаервол только для локальных ресурсов». Как только стали появляться вопросы про «а как ты себе это представляешь?» ты почти сразу переходишь на
Это всё суета и неважно.
Все сводится к банальному:
— есть туева хуча приложений, которая может и будет писать куда угодно, кроме системных папок. Это текстовые и графические редакторы, да и вообще редакторы всех типов — от редаторов заметок, до дизайнера электрических схем.
— есть туева хуча приложений, которые в большинстве случаев должны писать только в определенные места, а когда надо — писать кдуа угодно. Это мессенджеры всех мастей (историю — в одно место, принимаемые файлы — куда угодно), почтовики (почту — в одно место, аттачменты — куда угодно), браузеры (историю и куки — одно место, скачиваемые файлы _ куда угодно)
— есть некоторое количество приложений, которые должны сидеть в своей норке и не высовываться. Сходу не придумаю, но, думаю, такие есть.
Как это разграничить правильно — неизвестно. Потому что WriteFile — он остается функцией WriteFile для любой из трех категорий.
При этом ты утверждаешь, что такую систему разграничений можно сделать так, чтобы не ломались
существующие приложения, не меняя API системы и т.п. Как только спрашиваешь тебя — как?, начинается — вы все тупые, нифига читать не умеете, все это — суета сует
ЗЫ. Мне все еще интересно, как с этим всем справляется AppArmor.
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением?
Ничего не мешает. Только люди такое покупать не станут.
> Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению?
Эдак минимум половина софта сразу отвалится и перестанет работать.
AF>Почему они этого не сделали?
Во первых, любая защита преодолевается при наличии должного интереса.
Т.е. задача "щит и меч" не имеет решения в общем случае.
Сравнивать с AppArmor на линуксе некорректно, т.е. аудитория по кол.ву и качеству отличается радикально. Лунукс это приерно как Неуловимый Джо, хоть с защтой, хоть без неё, вирусы писать под него невыгодно.
Во вторых, безопасность или функциональность друг с другом не уживаются. Или то, или другое.
Это значит, для защитить можно только отрубая руки пользователям. Взять те же хуки — на них очень много вкусных вещей делается, про которые ты даже и не догадываешься, но пользуешь.
В третьих, безопасность увеличивает в разы время на тестирование, а стало быть это удорожание системы
В четвертых, сейчас уже поздно чтото радикально менять в этом плане.
Здравствуйте, Andrei F., Вы писали:
ДД>>Потому что это дополнительные материальные затраты, не несущие дополнительной прибыли.
AF>Как это не несущие? Надежная защита от троянцев и малвари стоит того, чтобы немного пошевелиться.
Как ты будешь проверять, что программа не имеет прав записи куда либо, кроме My Documents или определенных расширений ?
Каким то программам надо будет давать права писать куда угодно, ткие программы и будут ломаться разынми спосбами.
Например через Windows Update, инсталяторы и тд и тд. Пока на пользовательских компьютерах есть вагоны мусора, пиратские сборки и тд, с троянами бороться бессмысленно.
AF>Да и затраты невелики.
Ага, добавить еще один слой и оставить тестирование на нынешнем уровне ?
Здравствуйте, Andrei F., Вы писали:
AF> Повторяю еще раз, по буквам. Приложение может писать только туда, куда ему разрешили — непосредственно этому приложению или классу однотипных приложений. Как именно разрешать — это отдельный большой вопрос, но он точно решаем. Ключевой момент — разрешение доступа на уровне приложений, а не пользователей. Доступ к опасным возможностям должен даваться отдельными категориями, а не "всё или ничего", как сейчас.
Я так понимаю, *nix ты в глаза тоже не видел И судишь только по винде. Ты можешь внятно рассказать, чем существующая, например, в *nix'ах, модель плоха?
Здравствуйте, IID, Вы писали:
IID>То что ты хочешь называется Проактивная защита.
"Проактивной защитой" оно начало называться тогда, когда Касперский узнал о существовании mandatory access control и решил реализовать нечто подобное в своем продукте
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Потому, что если они это сделают то пойдут так далеко и надолго, как их еще никто не посылал.
Идиотизм в чистом виде.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Знаешь, от того что ты в очередной раз повторил кучу банальностей ценность AppArmor'а и SELinux'а не изменилась, из контекста взломанного приложения вредонос уже ничего особого сделать не сможет. От взлома серверов обновления и малвари юзерский комп AppArmor не может, по одной простой причине, он на это не рассчитан. Защита сервера обновлений — это дело того кто им занимается, а там сам понимаешь совершенно иные требования и возможности.
Вобщем ты можешь петь по то, что в колбасе потребности нет и те кто пользуются линуксом не интересуют взломщиков и что Виндовс лучшая пользовательская система.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Ikemefula, Вы писали:
I>Да, банальности. Для чего вводить защиту которая ничего не защищает, не ясно. I>Проще и целесообразнее отдать эту защиту на откуп антивирусным компаниям.
Тогда я тебе ещё раз повторю: эти средства снижают издержки на безопасность и у производителя софта и у пользователей, которым это надо (корпоративный сектор в частности). Давай разверну: большинство антивирей и прочих анти-... используют различные хаки, недокументированные АПИ и пр. Для них нужен нормальный АПИ, тогда их разработка будет обходится дешевле. Кроме того сами производители софта с удовольствием наклеят на коробочку наклеечку: "Повышенна безопасность" при малых затратах (описать 10-к правил). Ты понимаешь что при наличии таких механизмов снизится стоимость снижения опасности взлома?
DC>>из контекста взломанного приложения вредонос уже ничего особого сделать не сможет. I>В большинстве случаев хватит этого самого контекста и человеческого фактора.
Ну например, есть страница использующая уязвимость браузера и злоумышленник может выполнять любой код в контексте браузера с правами юзера. И теперь рассмотрим случай когда для браузера настроены политики, писать только в свои ветки реестра, читать только нужные, ограничен запуск чего бы то ни было, всякие вызовы COM и прочего, писать файлы можно. Короче Производитель постарался и настроил так, что права необходимо минимальны. Давай сценарии.
I>В том то и дело, что всего то надо изменить цепочку для взлома, что бы взломать компьютеры пользователей.
Угу, только взлом сервера обновлений значительно более дорогое удовольствие, согласись.
I>Пользователей нужно воспитывать, а не заставлять пользовать идеальную мега-защиту.
О, как . Не ослышался ли я? Кто там говорил про отрубание рук? Лучший метод, видимо, отрубить руки?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, waricom-11, Вы писали:
Pzz>>>Кому он нужен, ваш админ? Что с его помощью можно сделать приятного? Адрес на сетевом интерфейсе изгадить?
W1>>Вы совершенно не понмаете сути написанного.
Pzz>Ну как вы понимаете, такое заявление, безо всяких аргументов, делает дальнейшее продолжение конструктивной дискуссии крайне проблематичным.
Вы все же разберитесь. Админ — субъект безопасности с бесконечной свободой действий, которую перерыть не удастся по определению.
Pzz>>>Гораздо полезнее выковырнуть из вашего веб-бровсера пароль к вашему банковскому счету.
W1>>При разделении безопасности на уровне программ, и даже на уровне отдельных компонент такой фокус не пройдет.
Pzz>Вы говорите о некотором абстрактном светлом будующем, или о реальном мире, в котором работающие бровсеры можно пересчитать на пальцах одной руки, и не один из них не распилен на компоненты правильным образом?
Я говорю о реально существующих технологиях, вроде явы или дотнета. В которых таки возможны безопасные программы.
Pzz>>>Водитель ли должен отвечать за аварию, если к ней привела ошибка в конструкции тормозов?
W1>>А суд разберется.
Pzz>Автомобиль — довольно простая штука, и если он правильно обслуживается и регулярно проходит техосмотр, то можно быть почти наверняка быть уверенным, что тормоза работают у него правильно. Кроме того, в случае сомнений завсегда можно сделать экспертизу бренных останков автомобиля и выяснить, не явилась ли какая-то неисправность причиной аварии.
Pzz>В случае компьютера найти ответ будет значительно сложнее.
Для начала, автомобиль — материальный объект. С неисчислимым количеством свойств. И подверженный физическому износу. Программы же не изнашиваются, и имеют вполне определенный интерфейс.
Представьте, что к вам в дом залезли грабители. Дверь болгаркой вскрыли и влезли. Виноваты грабители.
Но если проводить аналогию с программными продуктами, дом у вас сделан из материала абсолютной прочности, и окна, и двери. Тогда, если к вам залезли — значит у вас в доме есть дырки или вы сами открыли дверь, виноваты, соответственно, вы.
Прозреваю возражения — "дом строил не я, я вообще не строитель, а баба клава-счетовод". Ну так иди, уважаемая баба Клава вместе с заслуженным дядей Петей, играй на PSP и смотри телевизор, компьютер тебе без надобности. А сел за руль — отвечай за свои действия. Спички детям не игрушка.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, waricom-11, Вы писали:
Pzz>>>Ну как вы понимаете, такое заявление, безо всяких аргументов, делает дальнейшее продолжение конструктивной дискуссии крайне проблематичным.
W1>>Вы все же разберитесь. Админ — субъект безопасности с бесконечной свободой действий, которую перерыть не удастся по определению.
Pzz>Совсем не обязательно, кстати. В венде можно выставить такие права файлу, что админ его не прочтет. А Вася Пупкин, которому принадлежит файл, прочтет. В SELinux тоже можно, только затрахаешься.
У админа есть привилегия TakeOwnership, смена владельца у объекта. Но можно это привелегию убрать. А еще админ может открыть файл как для резевного копирования и тоже проигнорировать права доступа. Это тоже можно отобрать. А еще можно свой драйвер загрузить, и прочитать напрямую с диска, минуя стэк файловой системы... короче, путей много, а разгадка одна — безблагодатность ^W, то есть я хотел сказать безграничные права админа и дизайн системы, эти права требующий.
W1>>Я говорю о реально существующих технологиях, вроде явы или дотнета. В которых таки возможны безопасные программы.
Pzz>Увы, бровсеров на дотнете еще не написано, а единственный бровсер, написанный на яве, умер сто лет назад. Выбирать-то приходится из множетсва существующих программ, а не множества программ, которые могли бы существовать.
Живой он, этот браузер HotJava. Будет необходимость — допишут.
Pzz>А говоря о технологиях, вы тем самым говорите о светлом будующем. Да, с помощью этих технологий можно (наверное) писать более безопасные программы. Наверное, через сто лет напишут
W1>>Представьте, что к вам в дом залезли грабители. Дверь болгаркой вскрыли и влезли. Виноваты грабители. W1>>Но если проводить аналогию с программными продуктами, дом у вас сделан из материала абсолютной прочности, и окна, и двери. Тогда, если к вам залезли — значит у вас в доме есть дырки или вы сами открыли дверь, виноваты, соответственно, вы.
Pzz>Ну если так рассуждать, то и в первом случае виноваты не грабители, а те, кто дверь сделал. Ибо нефига делать дверь, которую можно распилить обычной болгаркой. А грабители вообще ни в чем не виноваты.
Нэтъ (с).
В реальном мире не бывает материалов абсолютной прочности. А в мире программ — только он и есть.
Здравствуйте, dr.Chaos, Вы писали:
DC>Каких защит? Не понял о чём ты? Для .Net есть же CAS, это же можно сделать для натива.
I>> Взломы тоже удешевятся. Неужели это не понятно ?
DC>Не понятно, объясняй.
Что же тут неясного. Когда в доме все замки одинаковые, долго возиться нужно только над первым.
стоимость первого взлома увеличивается, а взлом второго и последующих по стоимости равняется нулю.
I>>Касперский в свох нтервью говорит очень просто на эту тему.
DC>Ну естественно, он продаёт заплаты для дыр, это хлеб было бы странно если б он говорил что-то иное.
Ага, ну да, лучше сразу предположить всемирный заговор, это точно всё объяснит.
I>>АПИ надо, но в для качественной работы софта, а не для повышения безопасности.
DC>Безопасность в качество не входит?
Качество это стабильность, быстродействие, расход памяти в первую очередь.
I>>Ну, то есть, ты сразу обрезал процентов 80 того, что сейчас может использовать пользователь. Очень хороший подход.
DC>А зачем пользователю использовать что-то кроме того что предусмотрел разработчик?
Разработчики уже предусмотрели слишком много. В этом и проблема.
I>>Но и здесь засада, вагон приложений использует IE, как с ними быть ?
DC>Для обычного юзера, положиться на дефолтные политики, кому надо что-то больше ужесточать их.
Конкретно, у меня будет возможность скачивать ПО из инета, тут же запускать его, инсталировать и тд и тд ?
Ты думаешь корпоративные пользователи чем то отличаются от хомюзеров ?
I>>Сейчас прокси, антивирусы более-менее нормально справляются и при этом без отрубания рук в виде запрета вызовов COM.
DC> антивирь не защищает на 100% от вирей. Фаирволл требует обучения, ты это называешь без отрубания рук?
Это минимум по сравнению с тем что хочешь предложить ты.
Кроме того у защиты антивирусами есть неустранимое преимущество перед мега-защитой от Микрософт. Ты должен понимать о чем речь.
DC>Какие именно? Настроить политики для приложении, чтоб они имели только те права которые им нужны? Вот скажи мне зачем браузеру возможность запускать произвольные исполняемые файлы или обращаться к произвольным COM-объектам? Ты объясняй, объясняй зачем большинству приложений полные юзерские права?
Не браузеру надо, а пользователю надо. Браузер поднимает те COM-объекты которые нужны пользователю и ты хочешь это запретить.
И процессы он запускает опять же те, что нужны пользователю.
Если ничего не запускать напрямую, то есть способ использовать другие процессы.
I>>Неужели ты думаешь в Микрософте сидят дураки ?
DC>Нет просто их ситуация устраивает, пипл хавает
Есть определенный спрос на функциональность софта, который тебе хочется игнорировать.
I>>Пользователя понемногу приучают думать про безопасность. Панацеи здесь нет и никогда не будет.
DC>Угу приучают сразу вырубить UAC. Или купить Каспера, который стоит доп денег и кроме того жрёт ресурсы.
Если защиту напишет Микрософт, то это будет вымогательство, потому что пользователей вынуждают это купить.
С антивирусами у пользователя есть выбор, брать дорогой, дешевый, бесплатный, опенсорсный или хоть пиратский.
Это полбеды.
Вторая часть — одна глобальная защита будет обходиться на раз.
Предложение AndreiF равносильно предложению поставить во все дома в городе одинаковые замки, с высоким уровнем защиты, дорогие, но одинаковые.
Если тебе не понятны последствия такого решения, то говорить не о чем.
Здравствуйте, Pzz, Вы писали:
W1>>У админа есть привилегия TakeOwnership, смена владельца у объекта. Но можно это привелегию убрать. А еще админ может открыть файл как для резевного копирования и тоже проигнорировать права доступа. Это тоже можно отобрать. А еще можно свой драйвер загрузить, и прочитать напрямую с диска, минуя стэк файловой системы... короче, путей много, а разгадка одна — безблагодатность ^W, то есть я хотел сказать безграничные права админа и дизайн системы, эти права требующий.
Pzz>Совсем несложно сделать систему, в которой админ не может прочитать пользовательские файлы. Достаточно их, файлы, зашифровать, а админу ключ не сказать.
Когда будет разработан мега-процессор, который сможет шифровать любое количество данных за 1 такт процессора, так и будет.
Здравствуйте, Ikemefula, Вы писали:
I>Когда будет разработан мега-процессор, который сможет шифровать любое количество данных за 1 такт процессора, так и будет.
Какие проблемы-то? Шифрование данных "на лету" не добавляет существенной латентности к большинству дисковых операций (http://www.phoronix.com/scan.php?page=article&item=ubuntu_jaunty_encrypt&num=5). А твои фантазии, как обычно, к реальности отношения не имеют.
Здравствуйте, waricom-11, Вы писали:
W1>Это надо будет перелопачивать весь массив кривых программ, которые писали, не думая про безопасность. Создавать профили безопасности для каждой программы, руководства для программистов писать. Гигантская работа, и вдобавок ненужная сейчас.
Ну что ты такое говоришь, пустяки какие — миллионы программ переписать да перенастроить, да выдоить из пользователей вагон денег для перехода на новые версии, что может быть лучше то ?
W1>Вообще говоря, невозможность создания непробиваемой защиты в операционке — это бред. Зайдите не под админом и попробуйте что-нибудь сделать с системой. Непробиваемость SeLinux доказана математически.
Почему же, возможно. Только в ряде случаев остаётся ЧФ, зависимость от которого мега-защиты усиливают, остаются баги в настройке-установке, проблемы с обновлением и самый простой — вредоносная работа безо всякого взлома.
Вот, к примеру, чем вирус отличается от аутлука или QIP ?
W1>А посему, надо вводить ответсвенность владельцев компьютера за поведение компьютера. Штрафовать за рассылку спама и т.п. Взломали кого-то через прозрачный прокси на твоем компе? Штраф плати. И не разводи зоопарк у себя в системе. Ворд слишком сложно защитить? А мы напишем редактор на яве, правда по функциональности он будет в 10% от ворда, но норот и 5% не знает, и поэтому будет пользоваться.
Ага, очень круто. Я напишу для тебя прогу, взломаю через неё банк, а сидеть ты будешь
Здравствуйте, Ikemefula, Вы писали:
Pzz>>Совсем несложно сделать систему, в которой админ не может прочитать пользовательские файлы. Достаточно их, файлы, зашифровать, а админу ключ не сказать.
I>Когда будет разработан мега-процессор, который сможет шифровать любое количество данных за 1 такт процессора, так и будет.
Ваш винчестер способен читать или писать любое количество данных за 1 такт процессора? Если да, скажите, как он называется, я такой же куплю.
Здравствуйте, Sinclair, Вы писали:
S>Если ты так в себе уверен и знаешь матчасть настолько, что готов бить канделябром несогласных, напиши здесь полную блок-схему новых действий, выполняемых в функции CreateFile. А я буду бить канделябром за каждую уязвимость в этой схеме, ок?
Заплати — напишу подробную спеку. Я надеюсь ты не думаешь, что такую сложную (как ты сам утверждаешь) работу кто-то станет делать бесплатно?
S>Приблизительно. Прикинул общее количество функций, только и всего. Возможно, какие-то из них защищать не нужно. Но система, построенная по принципу "запрещено по умолчанию" не может просто надеяться на авось — для каждой функции нужно тщательно проверить наличие уязвимостей.
Расскажи список категорий.
Кстати, интересная у тебя логика. Если в системе защиты можно найти хотя бы одну уязвимость — значит, лучше не делать защиту вообще. Гениально
Здравствуйте, Andrei F., Вы писали:
AF>Не будет осложнять. Один из плюсов моей идеи — законопослушный пользователь даже не узнает о существовании защиты, пока приложение не попытается сделать что-то неразрешенное.
Пользователь узнает это уже на этапе open-save диалог. Даже более того — при запуске многих приложений.
Здравствуйте, Sinclair, Вы писали:
S>Твоя идея вообще ни от чего не защищает. Прежде всего потому, что ты ее никак не сформулировал. Ты даже не объяснил, что именно ты собираешься идентифицировать про приложение — путь запуска екзешника? Путь, откуда фактически он был скачан? Или еще что-то? Без этих уточнений, я повторяю, твоя идея сводится к "давайте изобретем порох непромокаемым".
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Andrei F., Вы писали:
S>>>Ты просто плохо себе представляешь матчасть.
AF>>А вот за это в приличном обществе бьют канделябром по морде.
I>Здесь бьют канделябром за фантазии про open-save диалог и win32 контролы в окне Internet Explorer_Server
Да ладно тебе. Здесь (в КСВ) просто тупо бьют канделябром морды друга-друга и все
Здравствуйте, Andrei F., Вы писали:
I>>Повторяю вопрос I>>Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ?
AF>Повторяю ответ. Нет, не предлагаю.
И чем тогда твое решение лучше тех, что сейчас имеют у антивирусов ?
I>>Синклер уже сказал — стратегов пруд пруди, а хорошего сантехника днём с огнём не сыскать.
AF>Это потому что требования выставляют как для стратегов, а зарплату — как для сантхеников.
Ну так вопрос в том, как сделать, а не что сделать. Таких стратегов как ты по сто штук на каждом углу.
Здравствуйте, Ikemefula, Вы писали:
I>>>Я тоже так могу, но приходится посещать самые разны сайты и качать самый разный контент. C>>Виртуалка. I>Я уже предложил это, ты опоздал. Вероятно домохозяйки одобрят такое решение.
Одобрят. В Windows 7, особенно.
I>А моя жена, представь, ходит на форумы домохозяек и вообще всякие разные форумы, где трояны и раскидываются, ибо контингент неграмотный. I>Сравнивать домохозяйку и ИТ-специалиста тоьлко ты можешь.
Я бы лично вводил лицензирование для работы за компьютером...
Здравствуйте, Ikemefula, Вы писали:
I>Я в курсе. Она то осваивать не хочет, а я не люблю заниматься другими компами, мне своего хватает.
Ну я твою жену не знаю, вообще-то. Но если ей трудно F11 в случае проблем, при загрузке подержать, то значит она просто твоего внимания просит, а ты ей каких-то спецов наёмных подсовываешь
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
AF> I>Если нельзя похачить, значит ты обрезаешь на корню возможности этого диалога.
AF> С чего вдруг? Расскажи, какие возможности окажутся обрезаны и почему?
Например, открой фотошоп и сделай Save As. Там есть куча опций для сохранения. Выполнены с помощью расширения aka хаченья стандартного диалога.
Как только ты обрежешь функциональность этого диалога, разработчики будут пиать собственные диалоги, и идея с «единым диалогом соханения файлов» накрывается медным тазом.
Здравствуйте, Pzz, Вы писали:
Pzz>Что мешает разделить это на два диалога? Один — стандартный системный — выбирает файл (и дает право его открывать). Другой — принаджежащий программе — уже разговаривает на тему preview, форматов и т.п.
То, что авторы программ ещё не выжили из ума.
НАХРЕНА ПРЕВЬЮ ПОСЛЕ ТОГО, КАК ТЫ УЖЕ ВЫБРАЛ ФАЙЛ?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали: E>Ну давала, ну и что? Права-то всё равно были бы ограничены правами приложения...
Это кто сказал?
Фишка как раз в том, что не очень понятно, что считать правами. Ну вот, к примеру — есть такой секретный битмэп, который можно заселектить себе в девайс контекст и начать рисовать по всему экрану. Хитрым парням это предоставляет широкие возможности по закрашиванию, скажем, системного заголовка "внимание, это не настоящий логон диалог". Только недалёкие люди могут думать, что здесь можно обойтись без понятий безопасности.
E>Насколько я понимаю, топикстартер рассматривает вообще ситуацию., что кто-то выкачал какое-то не то приложение циликом. И запустил его... Так что вопрос как какой-то код запустить у злоумышленников не стоит уже...
Насколько я понимаю, топикстартер "изобрел" очень старую идею в очень сыром виде. И при этом очень обижается, когда ему на это указывают.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Ты считаешь способность изобретать чем-то плохим?
Нет, плохим считаю конкретное изобретение. А также неспособность видеть недостатки своего изобретения.
AF>Идеи в несыром виде бывают только в законченных продуктах. Да и то не во всех.
Ну, возможно стоило ознакомиться с законченными вариантами своей идеи? Или ты заранее отметаешь всё, что не ты придумал?
Ты спросил — почему не делают так-то и так-то. Тебе ответили: потому что это не работает. В зависимости от того, какие детали вкладывать в твою размытую мысль, получается один из следующих вариантов:
1. Защита ни от чего не защищает, а только затрудняет деплоймент законопослушных приложений
2. Защита защищает, но с ней несовместимы почти никакие существующие программы
3. Защита защищает, программы совместимы, но объем потребной разработки заведомо превышает доступные ресурсы
Если тебе что-то еще непонятно — спрашивай.
Лучше повежливее, потому что заниматься просвещением безграмотных — тоже работа. Которую очень легко отказаться делать.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
DOO>Ну вот это, конечно, не на пользу Windows Installer'у... DOO>Кстати, а что правда все Custom Action выполняются в внутри сервиса Windows Installer, который работает с правами системы???? Зачем тогда отдельный процесс msiexec, к которому и цепляются во время отладки Custom Action? Ты ничего не путаешь?
Да, конечно, не все внутри сервиса. Но это непринцпиально — с точки зрения идеи "проверять путь к екзешнику" оба процесса совершенно равноправны — только один работает под правами пользователя, а другой — системы.
DOO>Будем считать, что MS все это уже прошел во время проектирования UAC (правда не лучшим образом они это сделали).
Угу.
DOO>Ну сколько раз тебе говорили, что против непроходимой глупости не попрешь.
Это ты про топикстартера?
Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. Вопрос надежной идентификации application origin — совершенно отдельный и заслуживает длинного обсуждения. Пока что же нам достаточно понять, что дыра всё еще остаётся достаточно размера для просовывания в неё слона. Получается, что без, к примеру, цифровых подписей на приложения вообще ничего работать не будет. В итоге мы опять получаем геморрой для законопослушных вендоров, и открытые двери для злоумышленников.
DOO>Почитал. Идея в общем-то напрашивалась со времен создания механизма управления правами сборок
Про анализ стека прочитал? Про расширяемые наборы привилегий?
DOO>Еще раз — это работает уже давно в корпоративном секторе. Нормально работает. Просто есть соответствующие инструменты.
Есть у меня подозрение, что эти "соответствующие инструменты" работают ровно потому, что до них пока у малварщиков руки не дошли. Потому что количество инсталляций "дефолтной винды" на порядки больше, чем этой экзотики.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Сэндбокс для процесса, доходит до тебя? Сэндбокс!!
Хватит мантры повторять. Сколько ни повторяй "сэндбокс", слаще не станет. Ок, манифест, значит, запретил. А кому манифест это разрешит? Наверное, visual studio, да?
Хм. А у неё, случайно, плагинов нет, которые в адресном пространстве студии работают? Ой, есть! Отлично. Я сейчас напишу считалку количества строк в исходниках и ты сам, лично, добровольно поставишь её в студию и она получит манифест. Потому, что per-application manifest — недостаточно.
AF>Уже давно и не один раз было предложено запускать его в отдельном процессе. Ты явно вообще ничего не читал.
Я читал и даже отвечал. Тут пока только один человек в упор не понимает то, что ему пишут. И этот человек — не я. AF>Хитрые кастомизации — да, это проблема. Но это точно не showstopper.
Не шоустоппер???? А ничего, что 90% productivity applications использует эти "хитрые кастомизации"? Как именно должен себя вести код винды, в случае если приложение заказывает диалог с custom template и hook function? Выкидывать E_ACCESSDENIED? Прекрасно! То-то пользователь фотошопа будет рад, когда в ответ на Ctrl-S получит "Access Denied". Показывать вместо кастомизированного — стандартный диалог? Ну, тогда тебе нужно убедиться, что всё это вообще будет работать — приложение может ожидать вызова hookProc, и если его не произойдет, то получим undefined behavior. То есть опять имеем мучительную отладку большого количества приложений — либо массовые маты пользователей и отказ апгрейдиться на твою супертехнологию.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Cyberax, Вы писали: C>Идентичность — это НЕ субъект доступа. Это набор привиллегий, которые даны процессу.
Это какая-то новая терминология, которая рождается прямо сейчас. Давай ты будешь либо придерживаться стандартной терминологии, либо пояснять все новые трактовки старых терминов.
S>>Теперь возникает вопрос, что такое эта идентификация посредника. Топикстартер предлагает использовать путь к екзешнику, который стартовал некоторый процесс. C>А почему бы и нет? AppArmor работает точно так же. SELinux использует специальные метки, которые ставятся в расширенные свойства файла.
Копец. Я уже 11 сообщений написал про "почему нет". Вы вообще читаете что вам пишут?
C>Это всё решаемо. Самый простой способ — это выделение части кода в отдельные процессы. C>Есть ещё варианты с CAS, но они непрактичны. C>А почему нет? Фреймы передаём через какой-нибудь zero-copy IPC, их у нас много (что в Винде, что в Линуксе).
C>Вот сейчас проверил — из mplayer'а по пайпам отправил декодированный HD-поток в другой mplayer, показывающий его на экране. Разницы в загрузке процессора по сравнению с одним mplayer'ом просто нет.
Ну, может быть, может быть.
C>Затруднит. Уже один "yes" — это проблема.
В таком случае задача решения не имеет.
S>>Какой-то это убогий смысл. Ну, то есть невозможно назначить разные права разным плугинам одной программы — значит, они все будут иметь суперпозицию прав. C>Можно, и мы тебе уже сказали как — выделять плугины в процессы.
Осталось решить задачу в общем случае. То есть принудительно заставлять все DLL (или хотя бы DLL с отличающимся манифестом) грузиться в отдельные процессы и обмениваться данными через IPC. Да еще так, чтобы всё работало само собой, без ручной разметки маршалинга.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Andrei F, с чем конкретно не согласен? С тем, что обсуждение любой системы лучше начинать с определения того, какую задачу она будет решать, или с высказанным мнением что у тебя нет четкого понимания с чем и зачем должна бороться такая система?
Не согласен — с извращением моих слов.
Я написал вполне ясно, в чем смысл идеи — нужно ограничивать доступ к данным и опасным возможностям ОСи не только на уровне пользователей, но и на уровне приложений. С чем и зачем должна бороться такая система ограничений — это вполне очевидно. Ну или мне так казалось. Несколько человек, действительно, поняли. К моему разочарованию, их оказалось единицы.
У тебя возникли какие-то сложности с пониманием, или ты просто не читал, но свое веское мнение имеешь?
От остальных я также узнал, что:
1. бороться с дырками вообще бесполезно — потому что чем меньше дырок, тем больше вирусов
2. бороться с дырками опять же вообще бесполезно — даже если их все закрыть, малварь будет мимикрировать под полезные приложения и с этим абсолютно ничего невозможно поделать
3. умные люди уже давно продумали все возможные варианты, поэтому сиди и не рыпайся. То, что продукт "умных людей" на редкость крив и убог — вообще не твоего ума дело.
4. это обойдется очень-очень дорого, потому что весь софт придется целиком переписывать, потому что по другому они не представляют как решить эту задачу, а значит это вообще невозможно
5. обеспечивать безопасность — вообще не задача ОС
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Andrei F, с чем конкретно не согласен? С тем, что обсуждение любой системы лучше начинать с определения того, какую задачу она будет решать, или с высказанным мнением что у тебя нет четкого понимания с чем и зачем должна бороться такая система?
Главное это бороться, а с чем — дло десятое
SendMessage в другой процесс — запретить
Open-Save диалог — кастрировать
Привилегии — поделить
Землю — рабочим
Власть — крестьянам
Здравствуйте, Andrei F., Вы писали:
AF>От остальных я также узнал, что: AF>1. бороться с дырками вообще бесполезно — потому что чем меньше дырок, тем больше вирусов
"Потому что" это твой домысел. Дырки закрывать нужно, но это не значит, что вирусов уменьшится.
Майлварщики постоянно изучают систему и вирусов увиличивается со временем, количество дыр не можт остановить этот процесс.
AF>2. бороться с дырками опять же вообще бесполезно — даже если их все закрыть, малварь будет мимикрировать под полезные приложения и с этим абсолютно ничего невозможно поделать
Бороться надо, но нужно понимать, как майлварщики будут обходить дыру.
Вот например, борьба со спамом к чему приввела ? Траффик спама не уменьшился, фильтры его лихо сносят, в почте его относительно мало, зато и нормальные письма пропадают.
Т.е. спам не побороли, а нормальные письма еще и пропадать стали.
Вот такая борьба с дырами не нужна.
Мимикрия как ты назвал это, действительно есть и это надо учитывать.
AF>3. умные люди уже давно продумали все возможные варианты, поэтому сиди и не рыпайся. То, что продукт "умных людей" на редкость крив и убог — вообще не твоего ума дело.
Варианты действительно надо учитывать, а так же на каждый шаг учитывать расход ресурсов.
AF>4. это обойдется очень-очень дорого, потому что весь софт придется целиком переписывать, потому что по другому они не представляют как решить эту задачу, а значит это вообще невозможно
Твоя схема бьёт всех, кроме майлварщиков.
AF>5. обеспечивать безопасность — вообще не задача ОС
Задача не только ОС, но не так как ты хочешь — включил рубильник и всё в ажуре.
Здравствуйте, Sinclair, Вы писали:
S>>>Угу. Осталось посмотреть на настольную ось на основе QNX, дружелюбную для пользователя и прикладного разработчика. C>>Я примерно тогда пробовал знаменитую QNX Floppy — на один 3.5" диск помещалась ОС с графической оболочкой, поддержка Dial-up и простой браузер (!!). Вот тут скриншоты есть: http://toastytech.com/guis/qnxdemo.html Я пробовал и полную ОС, там у них Photon GUI вполне себе ничего был, наравне с остальными ОС тогда. S>Прикольно. Что ж она не выжила-то, раз она такая прикольная была? Наверное, были другие недостатки, которых не было у архитектурно ужасной win95.
Кстати говоря, сейчас под Вин95 можно спокойно бровзить по инету. Стек конечно сорвать могут, но до заражения дело вряд ли дойдет, потому что код врусов уже не может выполняться на этой системе.
Здравствуйте, Andrei F., Вы писали:
AF>А ведь про это я уже писал, точно помню Повторю еще раз — те функции, которые позволяют вмешаться в работу других процессов, или передавать данные за пределы компьютера. Всевозможные write process memory, DLL injection, хуки и тому подобное. Пытаться что-то сделать с "дырявыми" функциями — это просто нереально. Только переход на управляемый код, но это винде в ближайшие годы не светит.
Во первых, переход управляемый код как раз таки светит.
Во вторых, "Всевозможные write process memory, DLL injection, хуки и тому подобное" используются повсеместно и настолько широко, что кто то на твоём месте уже повесился бы
В третьих — дырявые функции тоже надо исправлять, потому что через них можно сделать слишком много всякой пакости.
AF>Разграничить доступ к отдельным разделам API на основе правил — это недорого и несложно, по крайней мере для MS. Не сильно сложнее, чем обычный фаервол.
Ну ты и дуб. И ежу понятно, что технически можно сделать все что угодно. Вопрос в том, как сделать так, что бы не отрубать эндузерам руки по сраку или даже по шею.
Кроме того, вопрос в том, как это потом продвигать и как бороться с обратной совместимостью и знать с кем судиться.
AF>Ну в общем да, ты меня убедил. Если они нормальный фаервол сделать не могут — нельзя ожидать от них чего-то большего.
Сделать могут. Только с первым же выходом системы с тким файрволом им придется судиться со всеми крупными игроками этого рынка.
Это не линукс, где ты в дистриб можешь складывать все что угодно от говна до брульянтов.
Потому Микрософт делает именно вот такой убогий фаервол, что бы защитить не отрубая рук и при этом не задавить рынок фаерволов.
Возможно ты не в курсе, но в Микрософт планирование на высоком уровне, просчтывают даже возможные судебные иски наперёд.
Здравствуйте, Andrei F., Вы писали:
I>>Ну ты и дуб. И ежу понятно, что технически можно сделать все что угодно. Вопрос в том, как сделать так, что бы не отрубать эндузерам руки по сраку или даже по шею. I>>Кроме того, вопрос в том, как это потом продвигать и как бороться с обратной совместимостью и знать с кем судиться. I>>Сделать могут. Только с первым же выходом системы с тким файрволом им придется судиться со всеми крупными игроками этого рынка.
AF>Если не ставить most restrictive mode по умолчанию — всё будет работать и ни с кем судиться не придется.
Ты не понял. Если они сделат файрвол по функциональности хотя бы сравнимый с существующими, то тем самым начнут душить рынок и придется судиться.
I>>Потому Микрософт делает именно вот такой убогий фаервол, что бы защитить не отрубая рук и при этом не задавить рынок фаерволов.
AF>Другим производителям это не мешает писать нормальные фаерволы, а "как не задавить конкурентов" M$ всегда интересовало в самую последнюю очередь.
Ага, с точностью до наоборот и ты прав.
AF>Ты полный идиот или тролль. Изыди, нечистая сила.
Здравствуйте, Andrei F., Вы писали:
AF>Почему они этого не сделали?
То, о чем ты пишешь называется "мандатное (принудительное, обязательное) управление доступом". И, начиная с Vista, в Windows это вполне реализовано посредством Windows Integrity Mechanism:
The integrity level is a representation of the trustworthiness of running applicationprocesses and objects, such as files created by the application. The integrity mechanism provides the ability for resource managers, such as the file system, to use pre-defined policies that block processes of lower integrity, or lower trustworthiness, from reading or modifying objects of higher integrity. The integrity mechanism allows the Windows security model to enforce new access control restrictions that cannot be defined by granting user or group permissions in access control lists (ACLs).
Это всё суета и неважно. Можно долго придумывать и решать заковырки, но это ничего не даст.
Моя основная идея проста:
Права приложения должны определяться назначением этого приложения, а не тем кто его запускает — как это сделано сейчас.
Здесь будут возражения?
Здравствуйте, Mamut, Вы писали:
M>То есть, если я напишу, что пишу куда угодно и что угодно (ну, в пределах пользовательской папки), то оно мне разрешит?
Будет работать соответственно правилам которые ты опишешь. И предупреждая твой вопрос: от пользовательской учётной записи это отличается довольно сильно, у пользователя есть пароль для входа, у пользователя есть шелл и много прочих характеристик, мало того это просто неудобно заводить юзера на программу если тебе необходимо что-то необычное (например изредка менять DNS). Есть такая программа rtorrent, она у меня работает на машинке куда я захожу только удалённо, так вот она "демонизирована" с помощью screen, так вот чтоб не запускать её под своим юзером, мне пришлось добавлять для неё отдельного пользователя, и определять домашний каталог и проч., при этом мне надо извращаться с правами и группами чтоб можно было удалять эти файлы и пр. Полагаю с настроенными правилами для аппармора я вполне мог бы запустить его от имени своего юзера. И что удобно, все потребности программы записаны в 1м файле, а не разбросаны по системе в виде юзеров и групп и их свойств.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
M>То есть ставлю я malicious software, которая делает rm -rf ~/*.*, кладу рядом профиль «разрешить писать/удалять в ~» и что, оно автоматом получит эти права, а при запуске сненсет нафиг все в ~?
Ну так это не защита от malicious software, это уменьшение последствий взлома какого-либо софта. Принцип наименьших привелегий.
M>Это удобно, бесспорно. Надеюсь, управление этим все же полегче, чем в SELinux'e?
Ну Ноувел зачем-то разрабатывает — . По идее потому что именно проще, хотя там есть ряд ограничений связанных с ФС, допустим АппАрмор не сможет отличить хардлинк от самого файла.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
... В следующей версии (перечислю только некоторые изменения) — русский язык, значительно уменьшено количество запросов к пользователю (за счёт улучшенных пресетов), улучшенный внешний вид и usability окон запросов. Выход обновления ожидается в течении 1-2 месяцев.
DOO>> И вообще, Мамут, с чем ты споришь? Проактивная защита это давно уже серьезный рынок — значит, рано или поздно, MS что-то и включит в состав ОС, просто это, как всегда, будет настолько ограниченное по функционалу решение, что чаще всего будет требоваться приобретение отдельного продукта.
M>Я не спорю с самой идеей такой хащиты. Я спорю с Андреем Ф., который размахивает лозунгами и кричит, что МС — идиоты, что такую простую фичу не реализовали, мы все тупые, и не понимаем, насколько это просто. Это ведь совсем непросто, согласись
А простого вообще ничего нет... Посмотрим на тот же Windows Firewall — никакой защиты от заражения приложения (а вот Symantec, по-моему, это отследит) — вообще никаких механизмов по строгой идентификации приложения, кому трафик принадлежит.
Потом эта дыра с BITS'ом — в висте ведь так и не исправили...
А современный вирус, например, запросто прописывает себя в исключения Windows Firewall...
А потом еще выясняется, что использование библиотек типа WinPcap вообще обходит МЭ...
Короче в любой ерунде проблем можно найти выше крыши...
Здравствуйте, DOOM, Вы писали: DOO>Отличать интерактивную операцию от неинтерактивной
На уровне оси вообще нет никаких "интерактивных" операций.
Вообще с этим — самые большие проблемы. Всё это уже не раз обдумывалось и обсуждалось умными людьми. Пока что — даже CAS не даёт 100% гарантии, и даже при правильном его применении. Всегда остаётся дырка для лома социальной инженерии.
Тем, кто тут думает, что "технически это всё очень просто", рекомендую помедитировать над примером из мира браузеров.
Теоретически, всё в порядке — скрипт не имеет прямого доступа к файлухе, записать напрямую в input type=file невозможно, задача решена. То есть браузер может отправить только тот файл, который был вручную указан пользователем. Через это мы имеем геморрой с multiple file upload, ну да ладно — ради безопасности можно простить издевательства над пользователями.
Однако хитрые хлопцы показывали пример мата в два хода: сначала скрипт пишет путь к нужному файлу в клипборд, а потом в нужный момент делает ловкий paste в input type=file. В итоге пользователь отправляет совсем не тот файл, который он думал. Немного соц. инженерии — и малишс страничка готова; пользователи сабмиттят свои файлы от ms money бешеными темпами.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Это уже более сложный случай, который встречается не так часто.
Он встречается чаще, чем все остальные вместе взятые. Достаточно вспомнить про то, что сейчас браузер — самое заскриптованное приложение. А так же про то, что большинство червей были написаны на VBScript. AF>Решение — выполнить скрипт в отдельном процессе с пониженными правами.
А как этот скрипт будет взаимодействовать с объектами основного приложения? IPC — штука дорогая. Предлагаешь сделать так, чтобы всё вообще тормозило?
Разумное решение потребует пересмотра всей архитектуры ОС.
То, что ты предлагаешь, будет всего лишь осложнять жизнь законопослушным приложениям и их пользователям. Не имеет значения, сколько ворот ты заставишь пройти честного пользователя, если для злоумышленника есть дыра в заборе.
А самое поганое — в том, что даже Singularity не даёт никакой гарантии защиты. Будут ломать путем мимикрии. И ты сам, лично выдашь доступ злому приложению к твоим данным. Вон, с год назад пробегал вирус. Который всего лишь показывал пользователям диалог "Легальность вашей копии Windows под сомнением. Пожалуйста, отправьте СМС на номер .... для повторной активации по телефону". И ведь отправляли — никаких проблем. Как же, там же виндовс лого вверху нарисовано, как не поверить-то?
Учись думать головой. Было бы простое решение — применили бы. Вон, в Vista/Win7 понапридумывали много всякой дорогостоящей ерунды. А "простое разграничение на уровне процессов" типа придумать не смогли? Хаха.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
Pzz>>Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом. S>Капитан Очевидность? S>На досуге можно еще продумать, каким образом это будет работать без перекомпиляции всех существующих программ. S>Еще раз намекну на то, что полная модель безопасности, о которой идет речь, была предложена еще черти когда. Увы — она плохо совместима с легаси кодом под виндой.
Слушайте, я прекрасно понимаю трудности внедрения такого рода вещей. Но думать и говорить о них интересно. В т.ч., с точки зрения програмной архитектуры. Заметьте притом, вопросы внедрения и вопросы реализации ортогональны, и не надо их смешивать в одну кучу.
А без таких размышлений, как вы разомнете свой мозг в области софтверной архитектуры? Если бы все боялись нового, как бы вообще развивалась компьютерная отрасль?
Да, и давайте обойдемся без личных наездов. Честное слово, ну не интересно мне пиписьками мериться, слишком уж предсказуемым получается разговор...
Здравствуйте, DOOM, Вы писали: S>>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. DOO>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
Нормальный пользователь не знает название производителя. Ну-ка, навскидку, кто его делает? Пользователь будет гуглить, и возьмет первое, что похоже на правду.
DOO>Про анализ стека почитал... Слишком тяжеловато, ИМХО, но для платформы, в которой можно менять все на лету, возможно, это единственный способ.
Это единственный способ для любой платформы. Я уже и так и эдак намекал, что у кода, загруженного в процесс из кошерных DLL, может и должно быть больше привилегий, чем у "прикладного" кода.
Просто в неуправляемом случае применение этого способа сильно затруднено.
DOO>Поднять планку для малварщика это тоже достижение
Я не согласен. Это как с DRM — вложили пять миллиардов долларов в защиту HD-DVD, и ее сломали через месяц после выхода. Вопрос: кто победил? Точнее, вопрос в том, кто проиграл — явно законные пользователи, у которых регулярно неиграет легально купленный контент. Ну и нахрена нам, Илюша, такие разборки (с) народ?
DOO>Проактивная защита, на самом деле, должна защитить только от zero-day атак — дальше есть стандартные средства сигнатурного анализа, антифишинга и т.д. и т.п. DOO>Безопасность — это не продукт, а процесс.
Угу.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению?
Для файлов *.scr — вообще никаких прав, кроме вывода на экран?
Почему они этого не сделали?
Здравствуйте, criosray, Вы писали:
C>Нет, не чувствую. Программы выполняются под пользователем. Не знали об этом?
Клиент-ICQ не должен иметь никаких дисковых прав, кроме права писать в свою подпапку в Documents. И даже если его вдруг запустили под админским аккаунтом — он и у админа остается тем же клиентом-ICQ, выполняет те же функции и никаких дополнительных прав иметь не должен. Доступно?
Здравствуйте, Andrei F., Вы писали:
C>>Нет, не чувствую. Программы выполняются под пользователем. Не знали об этом?
AF>Клиент-ICQ не должен иметь никаких дисковых прав, кроме права писать в свою подпапку в Documents. И даже если его вдруг запустили под админским аккаунтом — он и у админа остается тем же клиентом-ICQ, выполняет те же функции и никаких дополнительных прав иметь не должен. Доступно?
Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
AF> C>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
AF> Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений.
То есть по банальной принадлежности этого приложения к тому или иному пользователю.
AF> На основании таких признаков, как AF> 1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл
Неверный признак. Например, Google CHrome — это просто скачаный с инета файл, но является нормальным приложением
AF> 2. Правила, заданные пользователем
О да. Хотел бы я на это посмотреть.
AF> По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам.
AF> Еще вопросы?
А что, есть ОСи, в которых это реализовано? Или это просто «хачу, шобы МС так сделал»?
G>>Угу. А теперь придумай способ гарантированного определения программы. G>>Особенно из глубин kernel32.dll.
AF>Есть какие-то проблемы определить — из какого файла запущен процесс?
Ну определили. Дальше что с этой информацией делать?
AF> M>Расширение файлов я последний раз видел хз, в прошлом году, наверное AF> Ппц. То есть никаких расширений нет, если ты их не видишь?
Их может и не быть. Но при этом файл останется определенного типа. Или ты уверен, что именно расширение определяет тип файла?
AF> M>1. Возьмем банальное приложение — Adobe Photoshop. Едиинственное ограничение для него — это не писать в системные папки. А так — куда хочу, туда и сохраняю
AF> Сохранять — ради бога.
Ну вот — фотошопу — ради бога, а не фотошопу — не ради бога В итоге польователь просто плюнет и скажет allow all для всех приложений.
Потому что в такм п*деце разбираться никто никогда не будет:
Не говоря уже о том, что существующие приложения нужно будет серьезно измнять, чтобы регистрироваться в этой системе
AF> Но удалять doc файлы ему совершенно ни к чему, например.
Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
AF> Равно как пытаться лезть в отладочный API
Это уже относится к способу организации памяти и доступности этго API в системе. Этонемного дургая область
AF> и делать много других грязных делишек.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Если бы это работало из коробки, то оно бы поломало обратную совместимость с кучей как сторонних приложений, так и приложений самих MS.
AF>Можно сделать ограничения так, чтобы не ломало.
Сделай.
AF>Пользы от этой технологии — с гулькин нос
AF> Да какая разница вообще?? Значит — правилу надо проверять не расширение, а тип файла. В чем ты здесь проблему нашел?
О, хорошо. Хоть здесь ты пошел на уступки, что надо не по расширению, а по типу файлов Что произойдет, когда приложние научится читать новый тип файлов?
AF> M>Потому что в такм п*деце разбираться никто никогда не будет: AF> predefined rules для известных приложений спасут отца российской демократии. Некоторые фаерволы так и делают.
Опиши пример predefined rule для того же Фотошопа, например
AF> M>Не говоря уже о том, что существующие приложения нужно будет серьезно измнять, чтобы регистрироваться в этой системе
AF> никакие изменения в приложениях не нужны
Ага. Система сама узнает о нетривиальных возможностях приложения. Не говоря уже о взаимодействии прилоежний
AF> AF>> Но удалять doc файлы ему совершенно ни к чему, например.
AF> M>Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
AF> Этот диалог — часть кода оси, а не приложения. Программеру стыдно не знать такие вещи.
Но операцию я произвожу из Фотошопа, не? То есть этот диалог производится в контексте безопасности Фотошопа
Продолжим дальше. Что делать с браузером? Он-то сможет удалить любой файл — мало ли что я там качаю с инета и мало ли куда я что схораняю.
AF> M>Например — AF> Чукча не читатель?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Я не использую selinux и apparmor. Подозреваю, что не я один. Значит ли это, что они бестолковые?
AF>А "Windows Integrity Mechanism" вообще кто-нибудь использует?
Здравствуйте, Andrei F., Вы писали:
I>>Во первых, любая защита преодолевается при наличии должного интереса. I>>Т.е. задача "щит и меч" не имеет решения в общем случае.
AF>Нормального качества защита ломается достаточно долго, чтобы ломающий за%;№ся и бросил.
Я так и думал, ты "решил" задачу "щит и меч". Поздравляю.
Сейчас уже ломаются сервера Windows Update со вполне понятными целями.
Твоя идея уже устарела.
Кроме того, сейчас практически незачем искать уязвимости в программах вроде инсталеров.
+Всякий мусор, пиратские сборки, сервиспаки и тд и тд.
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Желание сидеть под админом и не париться? Типа, хочу, что бы у меня все было и мне за это ничего не было. Так не бывает.
Здравствуйте, Mamut, Вы писали:
I>> В четвертых, сейчас уже поздно чтото радикально менять в этом плане.
M>Ну пока МС идет в сторону разграничения прав a la *nix. Это уже намного лучше, чем ничего
ню-ню.
Взять вот ни много ни мало, а офис + интернет эксплорер + медиаплейер.
Все это рубит нахрен идеи предложеные Andrei.F, поскольку браузер наиболее уязвим и может сохранять любые типы файлов, во первых, а во вторых может вызывать используя COM вообще все что угодно.
При имеющейся тенденции к интеграции функционала разных программ очень странно заявлять про безопасность путём такого вот ограничения прав — туда писать можно, сюда нельзя и тд.
Для большинства троянов будет достаточно одного только наличия браузера на компьютере пользователя и вся защита на этом закончится.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Не берусь утверждать, что этот термин родился в стенах его конторы, но популяризировался и распиарился он именно оттуда.
Вполне возможно. Ну тогда назовём это Host Intrusion Prevention Systems — HIPS
Здравствуйте, Andrei F., Вы писали:
AF>Этот диалог — часть кода оси, а не приложения. Программеру стыдно не знать такие вещи.
Гы гы. Стандартный диалог еще умеет Cut/Paste делать. В итоге приложение photoshop не имеет права писать в системную папочку, а вот диалог save имеет такое право, ну а так как этот диалог находится в процессе photoshop, то при нужном старании может и photoshop.
Здравствуйте, vladimir.vladimirovich, Вы писали:
VV>при этом зловредные приложения будут регистрироваться получая все нужные привилегии себе, например хотя бы спросив пользователя разрешает ли он так зарегистрироваться и ждать что по теории вероятности из двух кнопок "Да" и "Нет" чуть меньше половины пользователей будет выбирать "Да".
VV>Ну либо Microsoft должен сделать что-то вроде iPhone-овского iStore и разрешать устанавливать/запускать только приложения, на которые они дали свое благословение. .
Придётся в обязательном порядке отрубать руки поьлзователям.
Захотел чтото скачать — разрешить только в папку откуда нельзя ничего запустить и даже открыть нельзя оттуда.
Потом под правами рута зайти, инсталировать оттуда нечто или файло скопировать в нужные папка.
Обновления точно так же — сначала скачал и только под рутом в другой сессии обновляешь.
Ну и АПИ изменить так, что бы никому и в голову не пришло это дело автоматизировать, что бы пользователь обязательно думал про безопасность и контролировал процесс.
Не существует ни одной защиты, которая бы работала без отрубания рук пользователям.
Здравствуйте, dr.Chaos, Вы писали:
DC>Здравствуйте, Ikemefula, Вы писали:
I>>Не существует ни одной защиты, которая бы работала без отрубания рук пользователям.
DC>Здравствуй Капитан Очевидность! Может тогда нахер всю безопасность?
Почему же нахер. Просто нужно помнить это.
DC>Это для хоум юзера побоку вся эта безопасность, а вот корпоративному сегменту, вся эта безопасность ой как нужна, для них, собственно, ноувелл и делал аппармор.
DC>Кроме того профили софта позволяют уменьшить последствия взлома браузера, например.
Это когда маленькая группа пользователей использует такой браузер.
А когда этой защитой начнут пользоваться массово, это уже совсем другое дело,
защиту можно отключить, обойти, работать непосредственно в контексте браузера, использовать фактор пользователя.
А количество пользователй определяет качество технологии взлома.
Чем больше пользователей использует конкретную защиту, тем лучше будет отработана тхнология взлома и тем сильнее можно причинть ущерб конкретному пользователю.
DC>Но от действий установленной малвари это не спасёт, от малвари защищаются совершенно другими методами. Основная причина появления SELinux и AppArmor'а
Это пока бабка надвое сказала. Аппармор и селинукс спасает правило Неуловимого Джо из за того, что интерес ко взломм в этом сегменте много ниже чем других.
DC> Собственно чем бы от этого стало хуже винде и её пользователям для меня загадка.
Ты сравниваешь сегменты которые отличаются масштабом на порядок минимум. Контингент совершенно разный.
DC>Ведь необязательно писать эти профайлы для каждой софтины. Ну кто, простите меня, будет пытаться использовать уязвимости слабо распространённой программы? Достаточно таких профилей для системных сервисов, всяких браузеров и, возможно, оффисов. И написать в каких-нибудь гайдлайнах что это кошерный способ сказать что ваше приложение секурно.
Масштаб сегмента определяет степень интереса взломщиков к нему. Чем больше сегмент, тем сильнее интерес. Хорошо защищаются только частные случаи.
Интерес на виндовс-платформе настолько высокий, что ломаются даж сервера обновлений.
Ты это почему то не хочешь учитывать.
Один взлом и вся твоя мега защита в попе.
Будешь вести черные списки серверов — будут ломать и такие сервера
Сейчас например для заражения пользователей используют заражение серверов, причем линуксовых.
DC>Знаешь, от того что ты в очередной раз повторил кучу банальностей ценность AppArmor'а и SELinux'а не изменилась,
Да, банальности. Для чего вводить защиту которая ничего не защищает, не ясно.
Проще и целесообразнее отдать эту защиту на откуп антивирусным компаниям.
DC>из контекста взломанного приложения вредонос уже ничего особого сделать не сможет.
В большинстве случаев хватит этого самого контекста и человеческого фактора.
DC>От взлома серверов обновления и малвари юзерский комп AppArmor не может, по одной простой причине, он на это не рассчитан. Защита сервера обновлений — это дело того кто им занимается, а там сам понимаешь совершенно иные требования и возможности.
В том то и дело, что всего то надо изменить цепочку для взлома, что бы взломать компьютеры пользователей.
Пользователей нужно воспитывать, а не заставлять пользовать идеальную мега-защиту.
Здравствуйте, DOOM, Вы писали:
DOO> Наверное из политик, большая часть которых определена производителем и остается только чуток доработать их в каком-нибудь режиме обучения.
Точно. А поскольку вся эта мутотень в основном нужна для защиты от малвари, производитель этой самой малвари о правильной политике уж позаботится
Здравствуйте, dr.Chaos, Вы писали:
DC>Здравствуйте, Ikemefula, Вы писали:
I>>Да, банальности. Для чего вводить защиту которая ничего не защищает, не ясно. I>>Проще и целесообразнее отдать эту защиту на откуп антивирусным компаниям.
DC>Тогда я тебе ещё раз повторю: эти средства снижают издержки на безопасность и у производителя софта и у пользователей, которым это надо (корпоративный сектор в частности). Давай разверну: большинство антивирей и прочих анти-... используют различные хаки, недокументированные АПИ и пр.
Ничего они ровным счетом не снижают. Микрософт не в состоянии разработать десяток другой защит.
DC>Для них нужен нормальный АПИ, тогда их разработка будет обходится дешевле. Кроме того сами производители софта с удовольствием наклеят на коробочку наклеечку: "Повышенна безопасность" при малых затратах (описать 10-к правил). Ты понимаешь что при наличии таких механизмов снизится стоимость снижения опасности взлома?
Взломы тоже удешевятся. Неужели это не понятно ?
Касперский в свох нтервью говорит очень просто на эту тему.
АПИ надо, но в для качественной работы софта, а не для повышения безопасности.
И про мегабезопасность в системах он же вроде просто как мне кажется объясняет ситуацию.
DC>Ну например, есть страница использующая уязвимость браузера и злоумышленник может выполнять любой код в контексте браузера с правами юзера. И теперь рассмотрим случай когда для браузера настроены политики, писать только в свои ветки реестра, читать только нужные, ограничен запуск чего бы то ни было, всякие вызовы COM и прочего, писать файлы можно. Короче Производитель постарался и настроил так, что права необходимо минимальны. Давай сценарии.
Ну, то есть, ты сразу обрезал процентов 80 того, что сейчас может использовать пользователь. Очень хороший подход.
Корпоративным клиентам проще и дешевле запретить использование IE и в обязательном порядке вводить Фоксы, оперы, сафари, хромы что бы не было одного стандартного или хотя бы доминирующего браузера на контору.
Но и здесь засада, вагон приложений использует IE, как с ними быть ?
Микрософт вложил в интеграцию вагоны денег, и теперь ты хочешь что бы они взяли и разом это похерили ?
Сейчас прокси, антивирусы более-менее нормально справляются и при этом без отрубания рук в виде запрета вызовов COM.
Если сейчас обрезать пользователям эти 80% имеющимися средствами то эффект будт такой ж как у тебя, но без издержек на написание мега-защиты.
I>>Пользователей нужно воспитывать, а не заставлять пользовать идеальную мега-защиту.
DC>О, как . Не ослышался ли я? Кто там говорил про отрубание рук? Лучший метод, видимо, отрубить руки?
Твои предложения это отрубание рук.
Неужели ты думаешь в Микрософте сидят дураки ?
Пользователя понемногу приучают думать про безопасность. Панацеи здесь нет и никогда не будет.
Здравствуйте, Mamut, Вы писали:
M>То есть, если я напишу, что пишу куда угодно и что угодно (ну, в пределах пользовательской папки), то оно мне разрешит?
А от этого помогает другая вещь: в системе должен вестись учет, какие действия были фактически сделаны, кем, и на основе какого разрешения. Тогда если выяснится, что новый вирус заразил миллион компьютеров из-за того, что в описании фотошопа было открыто слишком много прав, то адобу придется как-то извиняться перед публикой. Это не тоже самое, что новый вирус заразил миллион компьютеров непонятно по чьей вине.
Здравствуйте, Mamut, Вы писали:
M>Как мининмум, большАя часть приложений может захотеть сохранить любой файл куда угодно.
Уже писалось, как эта задача решается. Когда приложение открывает диалог "Save As" и пользователь явно выбирает файл, приложение временно получает право на запись в этот файл. Чтобы нельзя было похачить сам диалог сохранения — его можно выполнять в отдельном процессе. Это, кстати, можно сделать без изменения API для пользовательского кода.
Сама технология также может быть реализована без малейшей потери совместимости и переделок API, проблемы могут возникнуть только если неправильно написаны правила для приложения.
По сути, разработчики "проактивных защит" реализуют именно эту идею — Outpost Security по умолчанию запрещает доступ к опасным API, например. Только в отличие от MS им приходится использовать для этого различные хаки, что уменьшает надежность и производительность, и на порядок увеличивает цену разработки.
Но пипл и так хавает, и даже доказывает, что по другому нельзя. Видимо, поэтому никаких движений со стороны MS нет.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Ikemefula, Вы писали: I>>Как ты будешь проверять, что программа не имеет прав записи куда либо, кроме My Documents или определенных расширений ? Pzz>В каком смысле? Рассказать, как это технически может быть реализовано?
Ну да, расскажи, что понадобится изменить в АПИ и сколько это нужно будет тестировать и какие последствия это повлечет. от несовместимости до удорожания.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Ikemefula, Вы писали:
I>>Предложение AndreiF равносильно предложению поставить во все дома в городе одинаковые замки, с высоким уровнем защиты, дорогие, но одинаковые.
AF>Твоя беда в том, что ты вообще не понимаешь вопрос, который обсуждаешь. Поэтому и аналогия получается неправильная. AF>Правильная аналогия такая: да, я действительно предлагаю навесить на все дома замки. Только сейчас там замков нет вообще.
Ну да, наверное микрософт каждому юзеру даст уникальную защиту
Здравствуйте, Andrei F., Вы писали:
M>>Как мининмум, большАя часть приложений может захотеть сохранить любой файл куда угодно.
AF>Уже писалось, как эта задача решается. Когда приложение открывает диалог "Save As" и пользователь явно выбирает файл, приложение временно получает право на запись в этот файл. Чтобы нельзя было похачить сам диалог сохранения — его можно выполнять в отдельном процессе. Это, кстати, можно сделать без изменения API для пользовательского кода.
Если нельзя похачить, значит ты обрезаешь на корню возможности этого диалога. Выноси что угодно, куда угодно, кучка програм уже перестанут работать только из за этого.
AF>По сути, разработчики "проактивных защит" реализуют именно эту идею — Outpost Security по умолчанию запрещает доступ к опасным API, например. Только в отличие от MS им приходится использовать для этого различные хаки, что уменьшает надежность и производительность, и на порядок увеличивает цену разработки.
AF>Но пипл и так хавает, и даже доказывает, что по другому нельзя. Видимо, поэтому никаких движений со стороны MS нет.
И не будет. Защит нужно несколько, иначе одна единственная отмычка вскроет сразу все комьютеры. Поэтому целесообразно отдать этот сегмент на откуп конторам занимающимся безопасностью
Встраивать это в Виндовс — идея во первых дорогая, во вторых мало полезная.
Здравствуйте, Sinclair, Вы писали:
S>Для получения аналога CAS нужно иметь гарантию идентифицируемости вызывающего кода. Это серъезная задача, в общем случае не имеющая решения для неуправляемого кода. S>"Добронравные" приложения проверить будет можно; злонамеренные будут искать способы подменить стек или найти дырки в добронравных, чтобы выполнить свой код от их имени.
Полный аналог не нужен, достаточно идентификации на уровне процесса. Подменить здесь ничего не получится.
Здравствуйте, Andrei F., Вы писали:
AF>Когда диалог закрывается — имя выбранного файла добавляется в список "разрешить доступ к файлам" для этого процесса
М-м. Интересная идея. Осталось придумать, когда этот список очищается, иначе долгоиграющие программы будут быстро падать (напомню на всякий случай, что список должен входить в объекты ядра, чтобы обеспечить защиту от прямых манипуляций из юзермоды).
Ну, а потом, когда решим эту и остальные проблемы с функцией CreateFile, останется повторить процесс проектирования для остальных ~2000 вызовов WinAPI.
AF>Очевидно, что все изменения должны быть внутри ОС.
Очевидно, что спроектировать эти изменения корректным образом крайне тяжело. Утверждающие обратное просто плохо знакомы с матчастью.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Сможет — смотри в другом твоем сообщении.
Пока что ты придумываешь на ходу частные решения на частные проблемы.
Это очень хреновый подход, поскольку он никак не гарантирует того, что нет еще одного вопроса, который тебе просто не задали. Ты просто плохо себе представляешь матчасть.
AF>Если UAC — это лучшее, что они придумали, то не поверю. Потому что UAC — это жутчайшее порождение больного воображения и кривых рук.
Можешь верить во что угодно, включая санта-клауса.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Sinclair, Вы писали:
S>>Оба работают в браузере. У них обоих origin — то место, откуда загрузился процесс браузера.
AF>Я не очень хорошо себе представляю, как работают веб-хаки, на защиту от них я собственно и не рассчитывал.
?! А что же по-твоему тогда является основным источником малвари, сажаемой на машины беспечных домохозяек?
Здравствуйте, Sinclair, Вы писали:
S>А самое поганое — в том, что даже Singularity не даёт никакой гарантии защиты. Будут ломать путем мимикрии. И ты сам, лично выдашь доступ злому приложению к твоим данным. Вон, с год назад пробегал вирус. Который всего лишь показывал пользователям диалог "Легальность вашей копии Windows под сомнением. Пожалуйста, отправьте СМС на номер .... для повторной активации по телефону". И ведь отправляли — никаких проблем. Как же, там же виндовс лого вверху нарисовано, как не поверить-то?
Мне кажется, не совсем корректно смешивать атаки технические, и атаки социальные. Защиту пользователя от самого себя сделать невозможно, и не нужно. То есть лох, он и есть лох. Лого виндовс нарисовано, ага... а на заборе х... написано, но там дрова лежат. С другой стороны, почему бы не добавить в task manager функцию, по определению, какой окно какому процессу принадлежит.
S>Учись думать головой. Было бы простое решение — применили бы. Вон, в Vista/Win7 понапридумывали много всякой дорогостоящей ерунды. А "простое разграничение на уровне процессов" типа придумать не смогли? Хаха.
UAC могла бы выдавать более осмысленные вопросы. А сейчас "неизвестно кто, хочет неизвестно чего. разрешить?". Причем, это относится не только к сторонним программам, а и к самой системе.
Здравствуйте, waricom-11, Вы писали:
W1>Мне кажется, не совсем корректно смешивать атаки технические, и атаки социальные.
А мне кажется — вполне корректно. Потому что имеет значение только чистый результат.
W1>Защиту пользователя от самого себя сделать невозможно, и не нужно. То есть лох, он и есть лох. Лого виндовс нарисовано, ага... а на заборе х... написано, но там дрова лежат.
А речь и не идет о защите пользователя от самого себя. Речь идет о том, что защита, построенная на квалификации пользователя, нежизнеспособна. И обсуждать перспективы ее широкого внедрения — самообман.
W1> С другой стороны, почему бы не добавить в task manager функцию, по определению, какой окно какому процессу принадлежит.
Потому что думать надо не со стороны таск менеджера или winAPI, а со стороны конечного пользователя.
W1>UAC могла бы выдавать более осмысленные вопросы. А сейчас "неизвестно кто, хочет неизвестно чего. разрешить?". Причем, это относится не только к сторонним программам, а и к самой системе.
Ну, в семёрке всё более-менее нормально.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Забота о безопасности кук от доступа с других сайтов — это забота разработчиков браузера. Предложенная мной идея решает другие проблемы, и не надо говорить что она бесполезна, потому что не решает абсолютно все мыслимые проблемы.
Твоя идея вообще ни от чего не защищает. Прежде всего потому, что ты ее никак не сформулировал. Ты даже не объяснил, что именно ты собираешься идентифицировать про приложение — путь запуска екзешника? Путь, откуда фактически он был скачан? Или еще что-то? Без этих уточнений, я повторяю, твоя идея сводится к "давайте изобретем порох непромокаемым".
AF>Хотя, при большом желании, можно найти решение и для этой проблемы.
Если нет желания — можно не предлагать неработоспособные решения.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Временные — в каталоге temp, служебные — в специальной подпапке в профиле пользователя. Неужели для тебя это сюрприз?
Да шо вы говорите!
Это в теории все так гладко.
А на практике — они лежат так, как угодно разработчику.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>Да шо вы говорите! CC>Это в теории все так гладко. CC>А на практике — они лежат так, как угодно разработчику.
Если разработчику так сильно угодно искать проблемы на свою задницу — пусть не поленится и настроит дополнительные пути для временных и служебных файлов в конфиге системы защиты.
Здравствуйте, kochetkov.vladimir, Вы писали:
AF>>Я не очень хорошо себе представляю, как работают веб-хаки, на защиту от них я собственно и не рассчитывал.
KV>?! А что же по-твоему тогда является основным источником малвари, сажаемой на машины беспечных домохозяек?
Тихо, не пали ! Он то уже почти поборол майлварю ! (Синклер не в тему влез, всё испортил )
Здравствуйте, Andrei F., Вы писали:
I>>Если ты сделаешь, допустим, одну мега защиту с одной единственой дырой, это значт все компы пользователей будут вскрыты в короткий момент через эту дыру.
AF>То есть ты утверждаешь, что одна дыра — это хуже, чем много?
Я настаиваю на существовании вот такого парадокса — при уменьшении количества дыр количество вирусов возрастает. Пр чем кол.во дыр убывает линейно, врусы плодятся нелинейно.
Вирусы вобщем то помогают дыры эти же фиксить. Как только дыра входит в моду или случается эпидемия, она тут же оказывается в списке фиксов.
Одна единсвенная дыра уже сводит на нет все твои усилия. Для чго тратить вагоны денег, времени, усилй разработчиков и тестировщиков, неясно.
Добавлю еще вопросов:
Что делать с межпроцессорным взаимодейстивем, с RPC, с вызовами через сеть? Допустим, ворду разрешили создавать doc файлы,а мне — нет. А я вот открою ворд в качестве сервера автоматизации — и создам.
Здравствуйте, Cyberax, Вы писали:
Pzz>>>Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом. S>>Капитан Очевидность? S>>На досуге можно еще продумать, каким образом это будет работать без перекомпиляции всех существующих программ. S>>Еще раз намекну на то, что полная модель безопасности, о которой идет речь, была предложена еще черти когда. Увы — она плохо совместима с легаси кодом под виндой. C>Никто не мешает делать это постепенно. Скажем, Хром как раз так и начал делать — http://www.tomshardware.com/reviews/google-chrome-security,2271-3.html
А с кем хром совместим ? С IE 5.5 который еще в строю ?
Здравствуйте, Andrei F., Вы писали:
I>>Я настаиваю на существовании вот такого парадокса — при уменьшении количества дыр количество вирусов возрастает.
AF>Феерический бред
Предствь себе, когда XP выходила в ней было в разы больше дыр, ажно эпидемии случались вроде msblast.
С тех пор дыр было зафикшено ажно трмя сервиспаками, а вирусов можшь глянуть у Касперского. Эпидемии уже не случаются, но тем не менее количество вирусов растёт.
Или ты хотел сказать, что сервиспаки ничего не фиксили ?
Здравствуйте, Andrei F., Вы писали:
I>>Функционал приложений которые используют возможности, которые ты собираешься разом обрезать. Одного Save-open диалог более чем достаточно.
AF>Попробуй поставить obfuscate=off
ты вероятно плохо понимаешь как работает и как используется Open-Save диалог, раз предлагаешь вынести его в отдельный процесс.
Здравствуйте, Andrei F., Вы писали:
E>>Это не обязательно. Вполне достаточно добавлять к имени файла какую-нибудь служебную инфу, при помощи какого-нибудь криптоустойчивого алгоритма...
AF>Совместимость сломается.
Ай-яй-яй, оказия то какая. Не больше, чем с твоими предложениями.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ). Либо можно сделать отдельный интерфейс, позволяющий кастомизировать такие диалоги. При этом у программ, которые не понимают этот новый API, функционал не пострадает, а только внешний вид.
В кастомизированном диалоге может сидеть какой-то функционал, вообще-то...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ).
Ну лично я всеми руками за — не люблю кривые программы. Однако много программ это используют и работать не будут, и многие пользователи не одобрят.
Pzz>Либо можно сделать отдельный интерфейс, позволяющий кастомизировать такие диалоги. При этом у программ, которые не понимают этот новый API, функционал не пострадает, а только внешний вид.
В том-то и дело, что там меняют не только внешний вид, но и добавляют новые элементы управления — пострадает и функциональность.
Здравствуйте, Pzz, Вы писали:
Pzz> Pzz>>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ).
Pzz> LS>Ну лично я всеми руками за — не люблю кривые программы. Однако много программ это используют и работать не будут, и многие пользователи не одобрят.
Pzz> Ну это понятно, как делается. "Кривые программы" (т.е., программы, не использующие новый API), понижают в правах, и начинают постепенно закручивать гайки. Так, чтобы у пользователя сложилось впечатление, что эти программы глючат, но в разумных пределах. Это стимулирует авторов этих программ постепенно их переписывать. За неделю мир не изменишь, за несколько лет вполне можно.
Блин, причем тут кривые программы? Например, некоторые граф. редакторы пердлагают превью открываемого файла. Тот же фотошоп при созранении (Save AS) предлагает различные типы форматов и опции их настройки. То же — MS Office. Нахрена это все ограничивать?
Здравствуйте, Mamut, Вы писали:
M>Блин, причем тут кривые программы? Например, некоторые граф. редакторы пердлагают превью открываемого файла. Тот же фотошоп при созранении (Save AS) предлагает различные типы форматов и опции их настройки. То же — MS Office. Нахрена это все ограничивать?
Что мешает разделить это на два диалога? Один — стандартный системный — выбирает файл (и дает право его открывать). Другой — принаджежащий программе — уже разговаривает на тему preview, форматов и т.п.
Pzz> M>Блин, причем тут кривые программы? Например, некоторые граф. редакторы пердлагают превью открываемого файла. Тот же фотошоп при созранении (Save AS) предлагает различные типы форматов и опции их настройки. То же — MS Office. Нахрена это все ограничивать?
Pzz> Что мешает разделить это на два диалога? Один — стандартный системный — выбирает файл (и дает право его открывать). Другой — принаджежащий программе — уже разговаривает на тему preview, форматов и т.п.
Не всегда удобно. Это выльется в кастомный визард или в диалог, обходящий стандартный Open/Save диалог, и все ваши измышления про «стандартный системный диалог в отдельном процессе» пойдут лесом
Здравствуйте, waricom-11, Вы писали:
W1>Если у меня на экране есть непонятное окно, которое просит отправит смс, то с такой функциональностю я мог бы посмотреть, что за процесс вывел это окно, кто издатель, название, подпись. А потом уже решать — отправлять смс или бить тревогу.
В половине случаев это, натурально, будет c:\windows\system32\svchost.exe, издатель Microsoft, с подписью и круглой печатью. Будем отправлять СМС?
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Здравствуйте, Pzz, Вы писали: Pzz>На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
А на мой взгляд, это — неоправданная жестокость по отношению к пользователю. То есть я уже не смогу, к примеру, иметь дополнительную кнопку "Add folder to gallery" прямо в диалоге открытия; нужно будет такие простые вещи делать в два этапа.
Это и есть социальные ограничения — если вы сделаете супернадёжную дверь с семью замками, через которую нужно постоянно ходить туда-сюда, то пользователи просто заклеят замки скотчем. Потому что невозможно иначе работать.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, DOOM, Вы писали:
DOO>>MS давно уже сделали первые шаги в этом направлении — "Политики ограниченного использования программ" в GPO и Windows Firewall, который фильтрует трафик в зависимости от приложения. DOO>>Кроме того, MS немного замахнулся и на контроль за обращением информации (RMS).
KV>Блин, а почему все (кроме топикстартера, разве что) упорно игнорируют вот это Re: размышления о безопасности
А я его не видел
Между прочим мандатная система управления доступом как надстройка существовала уже давно (по-моему для 2000-й уже была) — просто MS в очередной раз залили отдельный продукт в базовую поставку
А если конкретно по мандатной модели — она, например, не обеспечивает целостность информации.
Кроме того, для решения задач типа "разрешить правку системных конфигурационных файлов только приложению "Блокнот" (ну типа оно самое глупое и его не заставить работать из другой программы)" надо городить очень непростую конструкцию из уровней и категорий.
Мандатная система хороша только при наличии:
— автоматизированных средств категорирования информации
— управляемых модулей принятия решений (тесно может стать в пределах NRU и NWD).
Ну а говорить об применимости этого для домашнего пользователя — ИМХО, просто нереально... Все-таки недаром эта система иногда зовется системой принудительного доступа
Кстати, я когда-то игрался с МСВС — ну там вообще сборная солянка из уровней, категорий и POSIX ACL — там реально было только разграничивать на уровне каталог несекретный, сокретный, сов. секретный и ОВ. Городить что-то более сложное — это было уже не потянуть.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, DOOM, Вы писали:
DOO>>>>Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет. I>>>Я знаю и что ? Вирусы которые может цеплять IE не менее вредны, чем самые свежие экземпляры. DOO>>И сколько их, на фоне остальных вирусов?
I>Свежих на порядки меньше, чем тех что в строю. Это же очевидно. или ты думаешь вирусы появляются сами по себе, ррраз и наплодились сто тыщ миллионов ?
Это заблуждение. После выхода сигнатур вирус практически вымырает — остается несколько экземпляров, которые иногда где-то проявляются, но никаких эпидемий уже нет и быть не может.
Я же тебе говорил — почитай аналитику от антивирусников.
DOO>>Вопрос был об эффективности — она невысока, потому что большая часть вирусов пройдет незамеченной. I>Не бОльшая, а меньшая. Тех, что антивирус определяет, много больше тех, что появляются. Вирусы довольно долго в строю.
Надо смотреть не тех, что он определяет, а тех, что способны реально заразить твой компьютер. Допустим, твой антивирус обнаружил MSBlast — и что с того? Думаю, у тебя SP2 хотя бы стоит, а там все нужные заплатки уже имеются.
I>>>Т.е. если вирус компьютреный не вызвал ядерный взрыв у тебя в комнат, значит не страшно ? DOO>>Если вирус не нарушил работоспособность моего компьютера или не уничтожил мои данные, то это не страшно (для меня). DOO>>Таких вирусов — большинство. Единицы наносят умышленный вред и еще достаточно много наносят вред неумышленный, потому что у их авторов руки не из того места растут. I>Достаточно если вирус будет мой траффик использовать.
Че те жалко что ли
Для корпоратива возможный ущерб есть — IP попадет в черный список и все — труба. Почта будет почти парализована.
DOO>>Опять ты на какую-то другую тему переводишь. Я тебе сказал, что антивирус работает хуже специалиста — поэтому мне он вообще не нужен — больше проблем. I>Это та же самая тема. Что бы вычищать вирус нужно понимать систему на том уровне, на котором этот вирус обитает. I>Т.е. зависисисмость от софта для чистки и специалиста для несведущего, коих большинство.
Однако когда подвел софт все равно нужен спец (или переустановка).
I>были бы все такие, антивирусы и не появились бы в принципе.
Золотые слова...
I>>>А когда то хватало всего лишь редактора реестра и команды del в консоли. DOO>>Хватает до сих пор. Только команда del уже в консоли восстановления — потому что механизм защиты файлов в Windows очень неплохо эксплуатируется малварью. DOO>>Но с autoruns, procexp и rootkitrevealer все делается проще и быстрее.
I>Вот это и есть зависимость от софта. Раньше за глаза хватало редактора реестра и команды del.
Еще раз: этого хватает до сих пор. НО вышеперечисленные утилиты процесс облегчают.
Здравствуйте, Andrei F., Вы писали:
AF> S>Насколько я понимаю, топикстартер "изобрел" очень старую идею
AF> Ты считаешь способность изобретать чем-то плохим?
Я вообще тебя не понимаю. Ты в первом сообщении задал вопрос: «что мешало МС реализовать мою мега-супер-крутую идею?» Тебе уже в сотне сообщений наглядно показали, что. А ты продолжаешь всех считать лохами, МС — тупыми баранами, а себя — в белом платье.
Твое «изобретение» аналогично выражению«хочу кнопку "Сделать мне звездато"»
Здравствуйте, Sinclair, Вы писали:
S>Ну, возможно стоило ознакомиться с законченными вариантами своей идеи? Или ты заранее отметаешь всё, что не ты придумал?
А ты покажи мне нормально работающую реализацию HIPS для винды? Я даже сомневаюсь что ее можно создать кому-то, кроме самого Microsoft.
S>3. Защита защищает, программы совместимы, но объем потребной разработки заведомо превышает доступные ресурсы
Вот с этого места — подробнее.
S>Лучше повежливее, потому что заниматься просвещением безграмотных — тоже работа.
Нахамить и одновременно обвинить в хамстве одним предложением — это уровень великого гуру демагогии
S>Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности. К тому же, уровень угроз в то время был значительно ниже; поэтому потребность держать плагины в отдельном процессе была вовсе не очевидна.
Те времена давно прошли, производительность выросла, и уровень угроз тоже.
S>Зато была готовая технология интеграции сторонних приложений — COM. Вот на нём и реализовали плагинную архитектуру експлорера. И для своего времени это было очень хорошее решение. Которое позволило получить красивую и логичную функциональность при приемлемой производительности.
Одна из полезнейших фич COM — возможность прозрачного переключения между inproc и outproc вызовами. В нормально спроектированном приложении, достаточно поменять один флажок в CoCreateInstance — и все плагины автомагически оказываются снаружи процесса. Для этого даже не нужно очень сильно стараться при программировании — достаточно не лажать слишком сильно. Но плагины оболочки по прежнему выполняются inproc.
Здравствуйте, Andrei F., Вы писали:
AF> M>Твоя идея прекрасно понятна. Тебе напрямую отвечают на вопрос «почему МС не сделала то-то и то-то»
AF> Нормального ответа я не видел. AF> Сложности в реализации есть, но они все решаемы без негативных последствий.
Тебе уже много раз показали и рассказали про негативные последствия
AF> M>Может, у тебя есть даже доказательства этого факта?
AF> Легко. Расскажи — сколько лет у них ушло на то, чтобы сделать диалог open/save file изменяемого размера? Или может ты станешь доказывать, что это тоже неимоверно сложная задача?
Как и любая аналогия, эта аналогия неверна
AF> M>Кстати, ты уже ответил синклеру про проблемы с GDI?
AF> Какую конкретно проблему? С рисованием где угодно на экране? Решается точно так же — по умолчанию запретить выбирать этот магический битмэп в контекст, потому что обычным прогам это не нужно. Разрешать — по специальному указанию.
Здравствуйте, Sinclair, Вы писали:
S>Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности.
Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение.
Здравствуйте, DOOM, Вы писали: DOO>Это и будет tortoise.tigris.org... DOO>Было бы желание, что называется. Если продукт мало-мальски известный, то упоминаний о нем и его официальном сайте столько, что я не верю в возможность подменить их все.
А все и не надо. Достаточно либо временно поднять его в рейтингах, либо просто разместить на удачно подобранном варезнике.
DOO>Погоди — там явно написано, что операция разрешается, если у все функции стека вызова обладают нужной привилегией — я что-то пропустил про "кошерные" сборки?
Нет, не совсем так. Иначе бы ничего не работало — WebClient не смог бы никуда пойти, потому что у вызывающего нет привилегии на доступ к Tcp.
DOO>Вообще-то можно. Неуправляемая среда становится управляемой при любом системном вызове — просто дорого каждый раз в режим ОС обращаться...
Вообще-то нельзя. Потому что подменить стек в неуправляемом коде — как два байта переслать.
DOO>Стоп — защита от DRM для HD-DVD была идиотска тем, что там есть затраты только на первоначальный взлом — дальше не надо ни квалификации, ни вычислительных мощностей, ничего. Это плохая защита.
Ну так мы и говорим про такую защиту. Как только малварщик один раз обошёл выдачу разрешений — всё, дальше можно не трудиться. DOO>А если защита требует от малварщика не просто использовать мега-вирус-билдер, а что-то там еще нахимичить, то это таки снизит число кулхацкеров-вирусописателей.
Не будет она ничего требовать. Точно так же будет компилятор вируса, которому скармливаешь тело, он внедряет его в TortoiseSVN, и пользуется существующей ботсетью для подъема заразы в рейтингах. Ничего такого, что не было бы уже поставлено на конвеер.
Тут, наверное, склалось впечатление, что я против секьюрити обсуждаемого рода. Я совершенно не против, более того — я только за. Но я прекрасно понимаю, что одно дело — написать две строки на форуме, а совсем другое — написать непротиворечивую спецификацию, и рабочий план проекта по ней.
В принципе, винда и так движется в описанном топикстартером направлении. С точностью до интрепретации недосказанных деталей. Ну и с точностью до скорости внедрения.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Pzz, Вы писали:
Pzz>Что мешает разделить это на два диалога? Один — стандартный системный — выбирает файл (и дает право его открывать). Другой — принаджежащий программе — уже разговаривает на тему preview, форматов и т.п.
с превью есть проблема — оно нужно в момент выбора файла и должно присутствовать в том самом диалоге. впрочем его можно добавить в системный диалог системными же средствами (в редком превью есть что-то мегакастомное). других же важных фич в этом окне я что-то не могу придумать, так что пока все выглядит вполне реализуемо
Здравствуйте, Cyberax, Вы писали:
C>В общем, при должном желании плугины на процессы разделить вполне можно было, причём даже механизм COM для этого не пришлось бы менять — out-of-proc серверы там прекрасно поддерживаются.
Более того, механизм для out-of-proc плугинов в Винде уже тогда был реализован и успешно работал ещё со времён 16-битных систем. Называется "OLE".
Здравствуйте, Cyberax, Вы писали: C>Более того, механизм для out-of-proc плугинов в Винде уже тогда был реализован и успешно работал ещё со времён 16-битных систем. Называется "OLE".
А напомни-ка мне, пожалуйста, какой будет startup path у процесса, в котором будет поднят плагин, если его активировать out-of-proc?
А то OLE, как я его вижу сейчас — по прежнему запускает целое отдельное приложение (а не махонькую DLL), и работает с тормозами и глюками даже на моей современной машине. К счастью, нужен он раз в вечность, поэтому я терплю. А вот если бы так же работал Windows Explorer, то я бы наверное сейчас был мак-девелопером.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали:
S>>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. DOO>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
неужели ты ни разу не встречал малвари на корпоративных файловых серверах?
Здравствуйте, Sinclair, Вы писали:
S>Ну вот мне и непонятно. То есть имеем зарегистрированный в системе плагин, который живёт в рамках DLL с фабрикой классов. При обычной активации COM загрузит эту DLL в адресное пространство процесса и сделает всё как надо. Что за процесс будет запущен, если попытаться создать экземпляр out-of-proc?
Смотри, вот так в реестре выглядит запись для in-proc сервера:
Так что тут как раз всё банально — COM сам знает что ему там надо запустить, эта информация вносится в реестр при регистрации сервера. А дальше уже чисто вопросы маршаллинга, который всё равно должен выполняться, так как IE (AFAIR) использует апартаментную модель.
C>>Так ты опять забываешь, что OLE работал ещё в 16-битной Win 3.11 в 92-м году. К 98-му году ничего не мешало технологически сделать защищённый IE и более защищённое API. S>Ты опять забываешь, что Windows Explorer в win95 к 1998му году уже был четыре года как выпущен. Для того, чтобы обеспечить секьюрный API с приемлемой производительностью, нужно вернуться не в 98, а в 89.
О каком Explorer'е идёт речь? О том, который ходит по каталогам на диске? Так там особо ничего до Win98 и не было опасного, это просто было обычное локальное приложение.
Если речь идёт об Internet Explorer'е (который только в Win98 был интегрирован с обычным), то AFAIR только версия 3 поддерживала плугины (96 год вроде бы).
C>>Просто тогда MS о безопасности не думал ВООБЩЕ. Чего только одно автоматическое выполнение макросов из писем в Outlook'е стоило. Это вот и есть реальная причина. S>Да, это вторая причина. Низкая выручка + высокая себестоимость.
Не вторая, а первая (и единственная).
C>>Я ещё пример вспомнил — микроядерный QNX. Он как раз в конце 80-х был основан, и к середине 90-х запросто держал системы с кучей процессов-серверов (там микроядро было что-то в районе 12Кб кода). Так что, видимо, кто-то так уже сделал. S>Угу. Осталось посмотреть на настольную ось на основе QNX, дружелюбную для пользователя и прикладного разработчика.
Я примерно тогда пробовал знаменитую QNX Floppy — на один 3.5" диск помещалась ОС с графической оболочкой, поддержка Dial-up и простой браузер (!!). Вот тут скриншоты есть: http://toastytech.com/guis/qnxdemo.html Я пробовал и полную ОС, там у них Photon GUI вполне себе ничего был, наравне с остальными ОС тогда.
Так что вот не вижу я непреодолимых технических причин. Сделать это всё будет непросто, согласен.
Здравствуйте, Sinclair, Вы писали:
S>Хм. А у неё, случайно, плагинов нет, которые в адресном пространстве студии работают? Ой, есть! Отлично. Я сейчас напишу считалку количества строк в
исходниках и ты сам, лично, добровольно поставишь её в студию и она получит манифест. Потому, что per-application manifest — недостаточно.
Считалка — в отдельном процессе. И считай себе...
AF>>Хитрые кастомизации — да, это проблема. Но это точно не showstopper. S>Не шоустоппер???? А ничего, что 90% productivity applications использует эти "хитрые кастомизации"?
Нефиг использовать productivity applications.
S>Как именно должен себя вести код винды, в случае если приложение заказывает диалог с custom template и hook function? Выкидывать E_ACCESSDENIED? Прекрасно! То-то пользователь фотошопа будет рад, когда в ответ на Ctrl-S получит "Access Denied". Показывать вместо кастомизированного — стандартный диалог? Ну, тогда тебе нужно убедиться, что всё это вообще будет работать — приложение может ожидать вызова hookProc, и если его не произойдет, то получим undefined behavior. То есть опять имеем мучительную отладку большого количества приложений — либо массовые маты пользователей и отказ апгрейдиться на твою супертехнологию.
Вызовы к hookProc маршалить в другой процесс.
Здравствуйте, Sinclair, Вы писали:
C>>Как вариант, есть ещё DLLHOST — т.е. dll'ки запускаются в отдельном процессе. Кстати, именно так делается запуск 32-битных COM-объектов на 64-битной Винде для 64-битных процессов (так как в адресное пространство процесса ты их всё равно не загрузишь). S>Ага. И все они получат один и тот же манифест. Велкам ту реал ворлд, Нео.
Кто мешает DLLHOST'у менять identity (что он уже и делает, кстати)? Это же привиллегированый системный процесс.
C>>А там Shell Extensions до Win98 не было. S>Трендеть изволите. shell32.dll version 4.0 or later; Windows NT 4.0, Windows 95.
И что дальше?
А память меня не подвела, оказывается. В Win95 не было открытого API для Shell Extensions, оно появилось в Win98 и было позднее портировано в Win95 в виде пакета обновления.
Last fall Bill made the decision not to expose the ability to extend the Explorer. In looking at the prerelease Athena PIM, it now appears that full Explorer integration is supported on both Windows NT and Windows 95. This obviously has ISV impact and we are potentially exposed here from a PR and trust perspective.
Причём там прикольные вещи, относительно нашей текущей дискуссии:
So the PSD shell team has given them the docs and told them that we have distributed this ISVs and that they are writing to these extensions and they would most likely become part of the standard Win32 API set. For the most part this is fine from my perspective because MSN already has buyoff from the NT team to implement what they are currently using on Windows 95 which is to instantiate themselves into a separate instance of the Explorer. From a robustness perspective this is fine because if the app is bad, then they just bring down that instance of the explorer.
C>>Некоторые программы всё равно будут иметь неограниченный доступ к системе, это понятно и не страшно. Важно защитить уже их. С TSVN это сделать, при желании, вполне можно. S>Всё как раз наоборот — TSVN защищать не нужно. Нужно защищать систему от тех, кто маскируется под TSVN.
Подписывание кода рулит
S>А для этого нужны манифесты с более мелкой гранулярностью, чем целый процесс. S>Впрочем, это очень трудно объяснить людям, которые много пишут и мало читают.
Если атакующий будет пытаться прикинуться всей TSVN, то тут вообще ничего не поможет.
Можно в дальнейшем защищать TSVN от вторжения вредоносных плугинов, но если пользователь изначально поставил вредоносную прогу — то тут уже ничего не поможет...
C>>Ну и конкретно QNX никогда не претендовал на массовый рынок, они там больше делали ставку на рынки высоконадёжного ПО (где и сейчас весьма неплохо живут). Их я привожу исключительно как пример технической возможности. S>Технические возможности теоретических систем остаются теоретическими возможностями. Супер осей с суперархитектурой было много. А победила убогая Win95, со своей корявой-насквозь-дырявой архитектурой.
И что? Я не утверждаю ничего обратного, просто привожу примеры технической возможности создать надёжную ОС. То что это не было приоритетом MS (да и рынка массового ПО вообще, по большому счёту) тогда — мне напоминать не надо.
Здравствуйте, Andrei F., Вы писали:
S>>Зато была готовая технология интеграции сторонних приложений — COM. Вот на нём и реализовали плагинную архитектуру експлорера. И для своего времени это было очень хорошее решение. Которое позволило получить красивую и логичную функциональность при приемлемой производительности.
AF>Одна из полезнейших фич COM — возможность прозрачного переключения между inproc и outproc вызовами. В нормально спроектированном приложении, достаточно поменять один флажок в CoCreateInstance — и все плагины автомагически оказываются снаружи процесса. Для этого даже не нужно очень сильно стараться при программировании — достаточно не лажать слишком сильно. Но плагины оболочки по прежнему выполняются inproc.
Про IPC ты конечно забыл ? Плагин который получает доступ к dOM — модели, всего один единственный, из за этого IPC сразу удавит браузер.
Здравствуйте, Andrei F., Вы писали:
DOO>>>Ну сколько раз тебе говорили, что против непроходимой глупости не попрешь. S>>Это ты про топикстартера?
AF>Всё-таки ты хамло.
Здравствуйте, Andrei F., Вы писали:
AF>Моя идея — доступ к любой опасной функции в API нужно по умолчанию запретить. Опасные здесь — это те функции, которые позволяют прочитать или записать сенситивные данные (включая документы пользователя), вмешаться в работу чужого процесса, прописаться в автозагрузку и так далее. Если тебе очень хочется — некоторые функции, которые могут позволить ввести пользователя в заблуждение, тоже можно считать опасными. AF>Доступ в файловой системе — только к temp и папке служебных файлов, к остальным документам — по специальному разрешению пользователя. Таким разрешением можно считать использование системного диалога открыть/сохранить файл. Доступ в реестре — только к тем веткам, которые нужны приложению для работы.
Все отлично. Куда деть приложения, которые откажутся работать, кто их будет переписывать ?
AF>Таким образом, каждое приложение будет посажено в камеру с бронированными стенами, зарешеченными окнами и охранником, который при подозрительной активности будет сначала проверять по справочнику "можно или нет", потом спрашивать хозяина, а если он не разрешит — делать предупредительный выстрел в голову заключенному.
Выдыхай, а то мы тебя теряем !
AF>Важно понимать, что доступ к каждой опасной возможности можно включать или выключать независимо для каждой возможности и каждого приложения в отдельности. Набор разрешений для каждого приложения хранится в специальном файле, который мы будем называть манифестом безопасности. Такие манифесты могут быть созданы производителем системы защиты для стандартных категорий приложений и должны покрыть процентов 50 приложений — которые были написаны по гайдлайнам.
50% каких ? Всех имеющихся или 50% тех, про которые ты говоришь ?
AF>Также нужны vendor-defined манифесты — для более кривых программ. Здесь вероятно потребуется организация, которая будет проверять манифесты (чтобы не разрешали слишком много) и ставить цифровую подпись.
Вот вендоры то обрадуются, когда им скажут, что надо платить деньги этой организации.
Наверняка у них денег много, только и думают, как бы создать еще одну организацию да дать ей денег.
AF>Здесь понадобятся user-defined манифесты. Пользователь может вообще отключить любые ограничения, если очень доверяет производителю. Здесь хочется сделать ремарку, что если пользователь полный дурак и при этом имеет админские права, и на все вопросы отвечает "разрешить" — то защитить его систему невозможно в принципе, поэтому такую задачу мы рассматривать не будем.
А для чего тогда затевать, если толковых пользователей от силы 10-15% ?
Майлваре все равно никуда не денется.
AF>Здесь еще остается много вопросов по надежному распространению манифестов приложений, безопасной установке программ, и т.д. и т.п. Но детальное решение этих вопросов — работа совсем другого объема, которая никак не укладывается в рамки форумной болтовни.
Это как раз самые важные моменты. Можно забить на все, что ты до этого нагородил. Эффект от дыр вот здесь перекрывает все твои мега-идее выше.
Как ты собираешься побороть проблему пиратсва ? Сейчас левой или пиратской винды в разы больше официальной.
Софт, пока за него будут просить деньги, будет левым и пиратским процентов на 80%
Здравствуйте, DOOM, Вы писали:
I>>>>За три сервиспака фич добавлено с гулькин нос. DOO>>> DOO>>>За 3 севрис пака фич добавлено больше, чем отличий между XP SP3 и вистой, вообще-то.
I>>Ну, перечисляй,
DOO>Иди на support.microsoft.com и сравнивай. Я тут кто тебе?
Ну мало ли. Суди сам. Пиши сразу — ссылок, информации нет. Это по крайней мере понятно сразу. А то пишешь то про аналитику, то про фичи известные тебе а ни то другое хотя бы примерно показать не можешь.
Здравствуйте, Cyberax, Вы писали:
C>>>Можно, и мы тебе уже сказали как — выделять плугины в процессы. S>>Осталось решить задачу в общем случае. То есть принудительно заставлять все DLL (или хотя бы DLL с отличающимся манифестом) грузиться в отдельные процессы и обмениваться данными через IPC. Да еще так, чтобы всё работало само собой, без ручной разметки маршалинга. C>Все DLL-ки так выделять не нужно. Только те, которые являются сторонними плугинами.
Критерий неверный. Есть две "крайних" ситуации:
1. Доверенный процесс хостит недоверенную DLL (плугины).
2. Недоверенный процесс хостит доверенную DLL (системные сервисы, расположенные в user mode, например стандартные диалоги File Open)
Обе являются частным случаем различных привилегий у DLL и хоста.
Есть два варианта решать задачу:
1. Ad-hoc. То есть выписываем все конкретные случаи, придумываем частное решение для каждого. Это как раз то, чем не хочет заниматься топикстартер — правильно, это адова работа.
2. Общее решение. То есть придумываем способ изменить поведение системы таким образом, чтобы оставить полную обратную совместимость всего со всем, причем прозрачно. Топикстартер этим тоже не хочет заниматься.
Реальная МС занимается и тем и другим, но постепенно. Подход "сплеча", предложенный топикстартером, несовместим с реальной жизнью. Обратный подход "пусть само приложение ограничивает себя", тоже предложенный топикстартером, нафиг не нужен — не будет автор малвари поставлять ограничивающий манифест.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали:
I>>Ты слегка поторопился своим языком. I>>Нет той аналитики о которой ты говорил. I>>И списка фич в сервиспаках, которых больше чем разницы между XP и Vista тоже нет. I>>Вот и всё. DOO>Нет уж товарищ, Ikemefula. Если ты не знаешь, как в support.microsoft.com извлечь информацию по новым фичам каждого SP для XP — это твои проблемы. Не надо меня DoS'ить трудновыполнимыми запросами — я могу это делать только, если
Списки фич есть, а того что ты говоришь — нет. И с аналитикой, что характерно, тоже самое.
DOO>1. У меня есть на это время. DOO>2. Это реально надо тому, кто запрашивает, а не то, что кто-то шлангом прикидывается и ему надо банальные вещи доказывать.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Ikemefula, Вы писали:
I>>Ты так и не ответил, в чем твое отличие от сущесвтующих систем защиты, ну наприер Сумантек Эндпоинт
AF>Решил и меня тоже поDOSить?
Нет, но ты не расстаивайся. У меня память хорошая, я и через 5 лет вспомню, что ты ответил, а что не ответил по данному вопросу
I>>И почему тебе хочется, что бы это сделал микрософт ?
AF>Причина очевидна и я уже здесь писал. Чтобы перекрыть процессу доступ к API, сторонней фирме нужно использовать перехват API и прочие злые хаки, а Microsoft — просто вставить пару строк в исходный код.
Этого как раз нельзя сделать, иначе защита станет предсказуемой.
Сейчас майлварщик не знает поведения защиты, потому что есть некоторое разнообразие.
соответсвенно должен скать дыру для общего случае, или какую то уникальную неизвестную антивирусам.
когда же защита будет вшита в код, то её на отлично смогут изучить в т.ч. и майлварщики.
I>>Тогда всякие сумантеки и касперы отвалятся разом.
AF>Меня их проблемы не интересуют. Я — пользователь
Здравствуйте, Cyberax, Вы писали:
S>>Ну мне почему-то кажется, что значительная часть того, что нужно защищать, выполняется в юзер моде. Значит, добавлением двух строчек тут не обойдешься. C>Ага, нужно разделять на разные процессы.
Что-то тут не так. Если что-то плохое можно сделать в юзер-моде, то на кой майэвари вообще куда-то обращаться? Она сама это сделает, вообще без юзермодовской системной DLL'ки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Andrei F., Вы писали:
AF>Кто с чем не согласен?
Сказанное Синклером очевидно. Точкой удаленной атаки на десктопы, в 99% случаев, являются уязвимости прикладного кода, выполняемого в user-mode. Это очевидно настолько, что твоя попытка указать ему на отсутствие аргументов, в столь резкой форме, воспринимается как банальная грубость и попытка прицепиться к словам собеседника.
Andrei F. wrote:
> Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет > право писать на диск только в свой профиль в My Documents, или только в файлы с заданным > расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? > Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только > по специальному разрешению? Для файлов *.scr — вообще никаких прав, кроме вывода на экран? Почему > они этого не сделали?
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Да сделали, еще начиная с XP. Завывается ACL и priveleges. Вот только под учеткой с какими правами большинство пользователей работает?
В .NET еще дополнили CAS, но сильно помоголо, на .NET как не писали троянцев, так и не будут.
И вот в висте чтобы победить проблему сделали UAC, который права админа искуственно понижает, далеко не всем понравилась эта идея.
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Здравствуйте, gandjustas, Вы писали:
G>Да сделали, еще начиная с XP. Завывается ACL и priveleges. Вот только под учеткой с какими правами большинство пользователей работает?
Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, ДимДимыч, Вы писали:
ДД>>Потому что это дополнительные материальные затраты, не несущие дополнительной прибыли.
AF>Как это не несущие? Надежная защита от троянцев и малвари стоит того, чтобы немного пошевелиться. AF>Да и затраты невелики.
затраты — производителю ОСи.
а трояны, малварь и прочее — зарплата производителям антивирей
чуствуешь разницу?
AF> G>Да сделали, еще начиная с XP. Завывается ACL и priveleges. Вот только под учеткой с какими правами большинство пользователей работает?
AF> Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
Хм. А что, в линуксе такое есть? Что-то не заметил.
Здравствуйте, Andrei F., Вы писали:
C>>Вы Windows 7 видели?
AF>Видел. Ничего интересного не нашел. Только UAC сделали немного более терпимым, хотя почти таким же бесполезным.
Плохо видели потому, что там реализована добрая половина из того, о чем Вы пишете в первом посте.
В частности, обычному пользователю запрещено писать или изменять что-то в Program Files.
Здравствуйте, criosray, Вы писали:
C>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений.
На основании таких признаков, как
1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл
2. Правила, заданные пользователем
По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам.
Здравствуйте, criosray, Вы писали:
c> C>>Нет, не чувствую. Программы выполняются под пользователем. Не знали об этом?
c> AF>Клиент-ICQ не должен иметь никаких дисковых прав, кроме права писать в свою подпапку в Documents. И даже если его вдруг запустили под админским аккаунтом — он и у админа остается тем же клиентом-ICQ, выполняет те же функции и никаких дополнительных прав иметь не должен. Доступно?
c> Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
Один из вариантов — это жесткий sandboxing, как это сделано в айфоне.
Здравствуйте, Andrei F., Вы писали:
C>>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
AF>Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений.
Перекрыто.
AF>На основании таких признаков, как AF>1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл
По каким "всем правилам"? И почему приложение, скачанное из инета не может быть "установленно по всем правилам". Особенно, если принять во внимание, что очень немало приложений уже поставляются в виде простого бутсрапера, который при запуске докачивает все, что нужно из сети (в т.ч. Интернета).
AF>2. Правила, заданные пользователем
Например?
AF>По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам.
Здравствуйте, Mamut, Вы писали:
M>Правда, такой sandboxing порождает кучу других проблем. Например — законный доступ к данным другого приложения, например.
Значит, нужен другой sandboxing — с послаблениями.
M>Andrei F., правда, так и не раскрыл, в какой ОС он видел реализацию того, что он требует
О боги, не перестаю удивляться, как невнимательно люди читают, но при этом все равно пишут и пишут...
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению? AF>Для файлов *.scr — вообще никаких прав, кроме вывода на экран? AF>Почему они этого не сделали?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, criosray, Вы писали:
C>>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
AF>Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений. AF>На основании таких признаков, как AF>1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл AF>2. Правила, заданные пользователем
AF>По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам.
Ты изобретаешь CAS, который есть в .NET.
AF>Еще вопросы?
Как ты предпологаешь оно будет работать в нативном коде?
Да правда что ли?
C>По каким "всем правилам"? И почему приложение, скачанное из инета не может быть "установленно по всем правилам". Особенно, если принять во внимание, что очень немало приложений уже поставляются в виде простого бутсрапера, который при запуске докачивает все, что нужно из сети (в т.ч. Интернета).
Это значит — запускается сетап и пользователь получает сообщение, что программа хочет установиться в систему.
AF>>2. Правила, заданные пользователем C>Например?
Здравствуйте, Andrei F., Вы писали:
G>>Как ты предпологаешь оно будет работать в нативном коде?
AF>А какие проблемы? Если проверки работают внутри системного кода — юзерский не может ничего с этим поделать.
Здравствуйте, Andrei F., Вы писали:
ДД>>Потому что это дополнительные материальные затраты, не несущие дополнительной прибыли.
AF>Как это не несущие? Надежная защита от троянцев и малвари стоит того, чтобы немного пошевелиться.
Зачем, если и так покупают?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Правда. Вы чем слушаете? Всего парой постов выше я говорил о Win7 и как там это работает.
C>>По каким "всем правилам"? И почему приложение, скачанное из инета не может быть "установленно по всем правилам". Особенно, если принять во внимание, что очень немало приложений уже поставляются в виде простого бутсрапера, который при запуске докачивает все, что нужно из сети (в т.ч. Интернета).
AF>Это значит — запускается сетап и пользователь получает сообщение, что программа хочет установиться в систему.
Ну так оно и есть. Дальше что?
AF>>>2. Правила, заданные пользователем C>>Например?
AF>фаервол видел когда-нибудь?
Видел.
Это не ответ на вопрос. Какие правила?
Здравствуйте, criosray, Вы писали:
C>Какие проверки? Вы так и не написали.
Предлагаешь мне всё спроектировать и написать детальную спеку? Если ты видишь фундаментальные проблемы, которые могут помешать — рассказывай. Только не надо бомбить меня кучей сообщений "а что если так и что если эдак".
Суть идеи тебе понятна или нужно лучше объяснить?
Здравствуйте, Andrei F., Вы писали:
C>>Какие проверки? Вы так и не написали.
AF>Предлагаешь мне всё спроектировать и написать детальную спеку? Если ты видишь фундаментальные проблемы, которые могут помешать — рассказывай. Только не надо бомбить меня кучей сообщений "а что если так и что если эдак". AF>Суть идеи тебе понятна или нужно лучше объяснить?
Вы не назвали ни одного типа проверки. Назовете или будете продолжать вилять из стороны в сторону, бросаясь пустыми словами и необоснованным заявлениями?
Здравствуйте, criosray, Вы писали:
C>Правда. Вы чем слушаете? Всего парой постов выше я говорил о Win7 и как там это работает.
Если я напишу небольшую прогу, которая делает take ownership и удаляет все файлы с диска C:\ какие может, отправлю мылом коллеге, а он ее запустит из под админского аккаунта — что произойдет?
C>Это не ответ на вопрос. Какие правила?
Тогда должен бы понимать. Для каких путей и расширений файлов приложению можно писать в файлы и удалять, для каких — нет.
Здравствуйте, criosray, Вы писали:
C>Назовете или будете продолжать вилять из стороны в сторону, бросаясь пустыми словами и необоснованным заявлениями?
Не разводи демагогию. Тем более — на таком пустом месте.
Здравствуйте, Andrei F., Вы писали:
AF> M>А что, есть ОСи, в которых это реализовано? Или это просто «хачу, шобы МС так сделал»?
AF> Ну например — AppArmor, очень похожая идея. Теперь, когда я дал ссылку на авторитет, мои слова уже можно начинать читать и даже немного пытаться понять?
С этого и надо было начинать. А то — хочу того, ен знаю чего. AppArmor является сторонней к ОС утилитой. Ставишь аналогичную систему под винду (кажется, ZoneAlarm что-то такое предоставляло) — и вперед. Причем тут ОСь и МС?
Здравствуйте, Mamut, Вы писали:
M>С этого и надо было начинать. А то — хочу того, ен знаю чего. AppArmor является сторонней к ОС утилитой. Ставишь аналогичную систему под винду (кажется, ZoneAlarm что-то такое предоставляло) — и вперед. Причем тут ОСь и МС?
Не знаю насчет ZoneAlarm, но некоторые производители фаерволов делают шаги в этом направлении — перекрывают опасные API без специального разрешения, например.
Только зачем делать систему безопасности сторонней от ОС утилитой? Чтоб юзерам жизнь медом не казалась, что ли?
Здравствуйте, Antikrot, Вы писали:
AF>>>О боги, не перестаю удивляться, как невнимательно люди читают, но при этом все равно пишут и пишут... C>>Так в какой?
A>не, ну разве непонятно — намек на то, что венда отстой по причине отсутствия selinux/apparmor а про "в какой" так тут (в КСВ) вообще никакого разнообразия выбора
Так про аналоги уже написали. Есть они. ОС то тут при чем... не ясно.
Здравствуйте, Andrei F., Вы писали:
AF> M>С этого и надо было начинать. А то — хочу того, ен знаю чего. AppArmor является сторонней к ОС утилитой. Ставишь аналогичную систему под винду (кажется, ZoneAlarm что-то такое предоставляло) — и вперед. Причем тут ОСь и МС?
AF> Не знаю насчет ZoneAlarm, но некоторые производители фаерволов делают шаги в этом направлении — перекрывают опасные API без специального разрешения, например. AF> Только зачем делать систему безопасности сторонней от ОС утилитой? Чтоб юзерам жизнь медом не казалась, что ли?
Тогда зачем кивать в сторону AppArmor? Это тоже сторонняя от ОС утилита — Или это в качестве иллюстрации того, что хочется?
Открываю глаза на страшную истину: расширения файлов и папки — это, как бы помягче выразиться, прошлый век. Все (вменяемые) операционные системы отходят от понятия папок, как отражения какой-то физической структуры на диске. Расширение файлов я последний раз видел хз, в прошлом году, наверное
1. Возьмем банальное приложение — Adobe Photoshop. Едиинственное ограничение для него — это не писать в системные папки. А так — куда хочу, туда и сохраняю
2. Возьмем банальное приложение — Miranda. Единственное ограничение для него — это не писать в системные папки. Историю сообщений я могу сохранить, где угодно. Принимаемые файлы я могу хранить, где угодно
3. Возьмем банальное приложение — браузер. Лезть он вообще никуда не должен, но при этом должен позволить мне сохранить любой файл в любое удобное мне место
Ну и какие ограничения должна вводить система на фоне их трех примеров? Разве что ограничение по правам пользоваелей — вряд ли больше. То есть пользователь ограничен папками своего аккаунта, а что он в них делает — это проблема пользователя.
Сам я AppArmorom/SEinux'ом не пользовался, интересно, как они реают эти проблемы
Здравствуйте, criosray, Вы писали:
C>Система спросит дать ли права этой программе. Если права будут даны, то те файлы, которые возможно удалить, будут удалены.
Что спросит и какие права?
C>Расширений существует тысячи, путей — неограниченное фактически количество вариантов. Как пользователю задать эти права и какой пользователь захочет заниматься этим?
Портов тысячи, хостов в интернете миллионы — неограниченное фактически количество вариантов. Как пользователю задать эти права и какой пользователь захочет заниматься этим?
Нет, фаервол — это однозначно невозможно.
Andrei F. с каким конкретно из моих утверждений ты не согласен?
AF>> C>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю. AF>> Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений.
То есть по банальной принадлежности этого приложения к тому или иному пользователю.
AF>> На основании таких признаков, как AF>> 1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл
Неверный признак. Например, Google CHrome — это просто скачаный с инета файл, но является нормальным приложением
AF>> 2. Правила, заданные пользователем
О да. Хотел бы я на это посмотреть.
AF>> По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам. AF>> Еще вопросы?
А что, есть ОСи, в которых это реализовано? Или это просто «хачу, шобы МС так сделал»? на этот вопрос ответ получен
Здравствуйте, Mamut, Вы писали:
M>Их может и не быть. Но при этом файл останется определенного типа.
Да какая разница вообще?? Значит — правилу надо проверять не расширение, а тип файла. В чем ты здесь проблему нашел?
M>Потому что в такм п*деце разбираться никто никогда не будет:
predefined rules для известных приложений спасут отца российской демократии. Некоторые фаерволы так и делают.
M>Не говоря уже о том, что существующие приложения нужно будет серьезно измнять, чтобы регистрироваться в этой системе
никакие изменения в приложениях не нужны
AF>> Но удалять doc файлы ему совершенно ни к чему, например. M>Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
Этот диалог — часть кода оси, а не приложения. Программеру стыдно не знать такие вещи.
M>Например —
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>То, о чем ты пишешь называется "мандатное (принудительное, обязательное) управление доступом". И, начиная с Vista, в Windows это вполне реализовано посредством Windows Integrity Mechanism:
Звучит грозно, но ни разу не видел чтобы это срабатывало
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>То, о чем ты пишешь называется "мандатное (принудительное, обязательное) управление доступом". И, начиная с Vista, в Windows это вполне реализовано посредством Windows Integrity Mechanism:
AF>Звучит грозно, но ни разу не видел чтобы это срабатывало
Если бы это работало из коробки, то оно бы поломало обратную совместимость с кучей как сторонних приложений, так и приложений самих MS. Тем не менее, там есть что наконфигурить, что достичь желаемого тобой результата. Там есть примеры, если что.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Если бы это работало из коробки, то оно бы поломало обратную совместимость с кучей как сторонних приложений, так и приложений самих MS.
Можно сделать ограничения так, чтобы не ломало. Пользы от этой технологии — с гулькин нос
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Mamut, Вы писали:
AF>>> Но удалять doc файлы ему совершенно ни к чему, например. M>>Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
AF>Этот диалог — часть кода оси, а не приложения. Программеру стыдно не знать такие вещи.
Вот только этот код исполняется в процессе фотошопа. "Программеру стыдно не знать такие вещи."
Здравствуйте, Andrei F., Вы писали:
AF>Ну например — AppArmor, очень похожая идея. Теперь, когда я дал ссылку на авторитет, мои слова уже можно начинать читать и даже немного пытаться понять?
Да что там, AppArmor . Вот PolicyKit + D-Bus позволяют добится ещё более впечатляющих результатов, т.к. так всё сконцентрировано вокруг действия, т.е. вполне можно разрешить апплету, как-то поменять настройки сетевого интерфейса или поднять ещё один и при этом ни дать ему никаких других полномочий админа.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, anton_t, Вы писали:
_>Здравствуйте, Andrei F., Вы писали:
AF>>Здравствуйте, Mamut, Вы писали:
AF>>>> Но удалять doc файлы ему совершенно ни к чему, например. M>>>Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
AF>>Этот диалог — часть кода оси, а не приложения. Программеру стыдно не знать такие вещи.
_>Вот только этот код исполняется в процессе фотошопа. "Программеру стыдно не знать такие вещи."
В данном контексте правильнее утверждать, что он имеет метку доступа фотошопа, а не системы. А то мало-ли
AF> Это всё суета и неважно. Можно долго придумывать и решать заковырки, но это ничего не даст. AF> Моя основная идея проста: AF> Права приложения должны определяться назначением этого приложения, а не тем кто его запускает — как это сделано сейчас. AF> Здесь будут возражения?
Будут. Потому что ты
а) не привел ни единого аргумента, что это важно и нужно или что это лучше существующей системы (ну или хотя бы лучше разграничения прав пользователей a la linux)
б) ты не привел примеров того, как это будет работать вообще (хотя я попросил рассказать, как это работает на примере того же AppArmor'а)
Ах, ну да — главный вопрос: как будет определяться назначение приложения?
Здравствуйте, March_rabbit, Вы писали:
M_>учетка — админ. Вопрос будет: запустить программу? И все. Ответ "да" сигналит о согласиит.
Да. О согласии разрешать абсолютно всё. Чудная защита.
M_>А прикинь то же самое для софта на компе. Либо авторам файрвола придется набивать правила для кучи сторонних приложений в правила по дефолту.
Почему бы и нет?
M_> Либо юзер будет обламываться на каждом шагу.
Не на каждом. Нормальные программы редко делают что-то сильно подозрительное.
Здравствуйте, Mamut, Вы писали:
M>а) не привел ни единого аргумента, что это важно и нужно или что это лучше существующей системы (ну или хотя бы лучше разграничения прав пользователей a la linux)
То, что существующая система не справляется с задачей — не аргумент?
M>б) ты не привел примеров того, как это будет работать вообще (хотя я попросил рассказать, как это работает на примере того же AppArmor'а)
Я описал достаточно, чтобы понять — если есть желание понимать. Если желания понимать нет, то я ничего не могу сделать
Здравствуйте, Ikemefula, Вы писали:
I>Во первых, любая защита преодолевается при наличии должного интереса. I>Т.е. задача "щит и меч" не имеет решения в общем случае.
Нормального качества защита ломается достаточно долго, чтобы ломающий за%;№ся и бросил.
Здравствуйте, Mamut, Вы писали:
M>ЗЫ. Мне все еще интересно, как с этим всем справляется AppArmor.
Просто есть набор правил и производитель софта относит свой софт к определённой категории или просто добавляет профиль. Но АппАрмор и СеЛинукс делает это только для ресурсов файловой системы. Менять код приложения особо не придётся. PolicyKit позволяет контроллировать общение между процессами.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Andrei F., Вы писали:
AF> M>В винде — быть может (пока) не работает. В *nix'ах работает.
AF> никсы — Неуловимый Джо.
AF> M>Как только стали появляться вопросы про «а как ты себе это представляешь?»
AF> Я это себе представляю, как проверку прав доступа внутри "опасных" функций API на основе заданного набора правил. Аналог CAS, но для WinAPI.
Теперь экстраполируй это на несколько сотен тысяч приложений по тем категориям, что я описал. Привожу их еще раз, чтобы не забыть:
- есть туева хуча приложений, которая может и будет писать куда угодно, кроме системных папок. Это текстовые и графические редакторы, да и вообще редакторы всех типов — от редаторов заметок, до дизайнера электрических схем.
— есть туева хуча приложений, которые в большинстве случаев должны писать только в определенные места, а когда надо — писать кдуа угодно. Это мессенджеры всех мастей (историю — в одно место, принимаемые файлы — куда угодно), почтовики (почту — в одно место, аттачменты — куда угодно), браузеры (историю и куки — одно место, скачиваемые файлы _ куда угодно)
— есть некоторое количество приложений, которые должны сидеть в своей норке и не высовываться. Сходу не придумаю, но, думаю, такие есть.
Как это разграничить правильно — неизвестно. Потому что WriteFile — он остается функцией WriteFile для любой из трех категорий.
Экстраполируя это, ты получишь ответ на свой вопрос в изначальном сообщении. А ответ простой: необходимо перелопачивать API, ломая совместимость с приложениями, и необходимо переписывать приложения, чтобы они регистрировали свои действия в системе.
О проблеме составления и управления правилами доступа я лучше вообще умолчу
C> M>ЗЫ. Мне все еще интересно, как с этим всем справляется AppArmor.
C> Просто есть набор правил и производитель софта относит свой софт к определённой категории или просто добавляет профиль.
А профили типа «писать только в эту папку», «писать повсюду» и т.п.? Добавление делается автоматически или пользователь должен разрешить приложению записаться в ту или иную категорию? При обновлении приложения оно может перейти в другую категорию?
Как ты отличишь «зловредный» WriteFile, записывающий неверно куку из IE, от «незлонамерненного» WriteFile того же IE, который скачивает файл?
Как ты отличишь WriteFile из твоего любимого примера с ICQ, который должен писать только в документы, от WriteFile того же примера с ICQ, но который принимает файл, и который я сохраняю, куда угодно?
Здравствуйте, Mamut, Вы писали:
M>А профили типа «писать только в эту папку», «писать повсюду» и т.п.? Добавление делается автоматически или пользователь должен разрешить приложению записаться в ту или иную категорию? При обновлении приложения оно может перейти в другую категорию?
У AppArmor-a есть возможность задать профили. Производителю фотошопа, насколько я понимаю, достаточно дописать в нужную папочку файлик с описанием того, что он будет писать и куда. Всё!!!
Есть какие-то предопределённые профайлы, они покрывают большую часть вариантов. Собственно ничего сложного.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Mamut, Вы писали:
M>Как ты отличишь «зловредный» WriteFile, записывающий неверно куку из IE, от «незлонамерненного» WriteFile того же IE, который скачивает файл?
M>Как ты отличишь WriteFile из твоего любимого примера с ICQ, который должен писать только в документы, от WriteFile того же примера с ICQ, но который принимает файл, и который я сохраняю, куда угодно?
АппАрмор, видимо, просто перехватывает обращения к файловой системе, и основываясь на профайлах, определяет чего делать: запретить, спросить и т.п.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Andrei F., Вы писали:
AF> M>и который я сохраняю, куда угодно?
AF> Куда угодно — это куда? В c:\windows, что ли?
И этот человек обвиняет меня в том, что я невнимательно читаю, ага.
Куда угодно, кроме системной пап, естественно.
Еще раз
1. IE/FF/Opera/etc. должен сохранять куки только в одну определенную папку
2. IE/FF/Opera/etc. должен сохранять скачиваемый файл туда, куда я захочу (кроме системных папок, естественно)
Как отличить пункт 1. от пункта 2.?
Усложняем задачу.
3. IE/FF/Opera/etc. обзавелись злым плагином, скачаным с сайта плагинов, которые перенаправляют запись кук в левую папку.
Как отличить и запретить пункт 3.?
Возвращаясь к твоему примеру:
Клиент-ICQ не должен иметь никаких дисковых прав, кроме права писать в свою подпапку в Documents.
1. Клиент ICQ должен писать только в папку Documents
2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents
Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
Ключевой момент — разрешить прозрачно для пользователя.
Здравствуйте, Mamut, Вы писали:
M>2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents M>Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
пишешь в правилах, что писать в /users можно
M>Ключевой момент — разрешить прозрачно для пользователя.
Пишешь в правилах и забываешь.
И еще один вариант — если ты системным диалогом "save to" выбираешь файл, то доступ к этому файлу временно разрешается.
Все такие проблемы решаются, при наличии желания.
Здравствуйте, dr.Chaos, Вы писали:
C> M>А профили типа «писать только в эту папку», «писать повсюду» и т.п.? Добавление делается автоматически или пользователь должен разрешить приложению записаться в ту или иную категорию? При обновлении приложения оно может перейти в другую категорию?
C> У AppArmor-a есть возможность задать профили. Производителю фотошопа, насколько я понимаю, достаточно дописать в нужную папочку файлик с описанием того, что он будет писать и куда. Всё!!! C> Есть какие-то предопределённые профайлы, они покрывают большую часть вариантов. Собственно ничего сложного.
То есть, если я напишу, что пишу куда угодно и что угодно (ну, в пределах пользовательской папки), то оно мне разрешит?
Здравствуйте, dr.Chaos, Вы писали:
C> M>Как ты отличишь «зловредный» WriteFile, записывающий неверно куку из IE, от «незлонамерненного» WriteFile того же IE, который скачивает файл?
C> M>Как ты отличишь WriteFile из твоего любимого примера с ICQ, который должен писать только в документы, от WriteFile того же примера с ICQ, но который принимает файл, и который я сохраняю, куда угодно?
C> АппАрмор, видимо, просто перехватывает обращения к файловой системе, и основываясь на профайлах, определяет чего делать: запретить, спросить и т.п.
Вот в том-то и дело — как в этом профайл отличить один вызов риложения от другого?
AF> M>2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents AF> M>Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
AF> пишешь в правилах, что писать в /users можно
То есть, изначальное заявление, что ICQ должно строго писать в Documents идет лесом, я так понимаю?
AF> M>Ключевой момент — разрешить прозрачно для пользователя. AF> Пишешь в правилах и забываешь.
Ты не поверишь. Такая система уже давно существует. Называется «пользователь и приложения, запущеные от имени пользователя, могут писать куда угодно в пределах папки пользователя». Очень удобно, рекомендую
AF> И еще один вариант — если ты системным диалогом "save to" выбираешь файл, то доступ к этому файлу временно разрешается.
А как же поступать с «фотошоп не имеет права удалять .doc-файлы»? Тоже лесом?
AF> Все такие проблемы решаются, при наличии желания.
Проблемы решаются при наличии внятного описания проблемы
Здравствуйте, Andrei F., Вы писали:
AF> M>То есть, изначальное заявление, что ICQ должно строго писать в Documents идет лесом, я так понимаю?
AF> Оно должно писать строго туда, куда ему разрешили. По моему, ты ни слова не понял из всего прочитанного.
Еще раз. По буквам. Чем отличается разрешение писать куда угодно в /users/ от рарешения писать куда угодно в ппках пользователя?
Аналогично для первой и второй категории приложений:
- есть туева хуча приложений, которая может и будет писать куда угодно, кроме системных папок. Это текстовые и графические редакторы, да и вообще редакторы всех типов — от редаторов заметок, до дизайнера электрических схем.
— есть туева хуча приложений, которые в большинстве случаев должны писать только в определенные места, а когда надо — писать кдуа угодно. Это мессенджеры всех мастей (историю — в одно место, принимаемые файлы — куда угодно), почтовики (почту — в одно место, аттачменты — куда угодно), браузеры (историю и куки — одно место, скачиваемые файлы _ куда угодно)
— есть некоторое количество приложений, которые должны сидеть в своей норке и не высовываться. Сходу не придумаю, но, думаю, такие есть.
Здравствуйте, criosray, Вы писали:
C>Ну вот когда придумаете КАК решаем, тогда возвращайтесь — мы продолжим обсуждение. Пока это все пустые слова и фантазии.
Вопрос всего лишь в том, как задавать правила, чтобы обеспечить максимум безопасности и минимум проблем совместимости. И здесь точно нет никаких нерешаемых проблем.
А обеспечить выполнение правил — элементарно.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, anton_t, Вы писали:
_>>Вот только этот код исполняется в процессе фотошопа.
AF>Верно. Но он является частью ОСи — значит, его можно не подвергать проверкам и ограничениям.
Что бы такое устроить, нужно что-то типа дотнетовского CAS, только для всего нативного кода винды. В реальности такого я очень сильно сомневаюсь.
Здравствуйте, criosray, Вы писали:
C>Все еще пустые слова. Вы даже сформулировать внятно не можете что это за права и как их раздавать, и чтоб это не превратилось в UAC #2 но в сто раз более анноящее...
Ладно, на вопрос темы ты уже ответил, и на том спасибо
Здравствуйте, Andrei F., Вы писали:
AF>Почему они этого не сделали?
Потому, например, что в куче софта есть плагины... потому, что есть хуки, и много чего ещё есть...
Главное же тут, то, что ничего не поможет, если пользователь не озабочем безопасностью своего компа, но админит его при этом...
Захотят ли пользователи покупать комп, который они не могут админить --
Если ввести ответсвенность за участие твоего компа в ботсети, то может и захотят, но захотят ли производители защиты брать ответсвенность на себя?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Andrei F., Вы писали:
AF>Права приложения должны определяться назначением этого приложения, а не тем кто его запускает — как это сделано сейчас. AF>Здесь будут возражения?
В зависимости от пользователя могут быть доступны разные операции. Скажем апгрейд FF может быть доступен админу и недоступен рядовому пользователю...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, gandjustas, Вы писали:
G>И вот в висте чтобы победить проблему сделали UAC, который права админа искуственно понижает, далеко не всем понравилась эта идея.
Не понравилась не идея, а реализация. Идея замечательная, и давно уже работает в Unix-подобных системах.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, criosray, Вы писали:
AF>>>2. Правила, заданные пользователем C>>Например?
AF>фаервол видел когда-нибудь?
То что ты хочешь называется Проактивная защита. Их много разных. Кроме набора предустановленных правил, повышающих безопасность системы, можно создавать свои. Рули сам, что можно приложению, а что нельзя, если так хочется. Как минимум тебе будут доступен контроль реестра, контроль запуска процессов, контроль целостности процессов (подгрузка динамических библиотек, модификация образа в памяти), контроль разнообразных IPC, контроль окон, контроль служб/драйверов, контроль ФС, и ещё много чего. На реально опасные действия проактивка сама выдаст предупреждение.
Здравствуйте, Ikemefula, Вы писали:
I>Все это рубит нахрен идеи предложеные Andrei.F, поскольку браузер наиболее уязвим и может сохранять любые типы файлов, во первых, а во вторых может вызывать используя COM вообще все что угодно.
Для этого нужны аналоги PolicyKit и сендбоксинг. Собственно основной конёк Хрома именно в сендбоксинге и независимости процессов.
I>При имеющейся тенденции к интеграции функционала разных программ очень странно заявлять про безопасность путём такого вот ограничения прав — туда писать можно, сюда нельзя и тд.
D-Bus + PolicyKit
Тут вопрос в основном в том, что под линуксами есть активное движение в эту сторону, а под виндой такого что-то незаметно .
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Mamut, Вы писали:
I>>> В четвертых, сейчас уже поздно чтото радикально менять в этом плане.
M>>Ну пока МС идет в сторону разграничения прав a la *nix. Это уже намного лучше, чем ничего
I>ню-ню.
I>Взять вот ни много ни мало, а офис + интернет эксплорер + медиаплейер.
Упомянутый мной выше "integrity mechanism" IE8 в висте и выше, использует по полной программе, вообще-то
a> _>>Вот только этот код исполняется в процессе фотошопа.
a> AF>Верно. Но он является частью ОСи — значит, его можно не подвергать проверкам и ограничениям.
a> Что бы такое устроить, нужно что-то типа дотнетовского CAS, только для всего нативного кода винды. В реальности такого я очень сильно сомневаюсь.
Здравствуйте, dr.Chaos, Вы писали:
C> M>То есть, если я напишу, что пишу куда угодно и что угодно (ну, в пределах пользовательской папки), то оно мне разрешит?
C> Будет работать соответственно правилам которые ты опишешь. И предупреждая твой вопрос: от пользовательской учётной записи это отличается довольно сильно,
Не, не угадал мой вопрос
То есть ставлю я malicious software, которая делает rm -rf ~/*.*, кладу рядом профиль «разрешить писать/удалять в ~» и что, оно автоматом получит эти права, а при запуске сненсет нафиг все в ~?
C> Полагаю с настроенными правилами для аппармора я вполне мог бы запустить его от имени своего юзера. И что удобно, все потребности программы записаны в 1м файле, а не разбросаны по системе в виде юзеров и групп и их свойств.
Это удобно, бесспорно. Надеюсь, управление этим все же полегче, чем в SELinux'e?
Здравствуйте, dr.Chaos, Вы писали:
C> M>То есть, если я напишу, что пишу куда угодно и что угодно (ну, в пределах пользовательской папки), то оно мне разрешит?
C> Будет работать соответственно правилам которые ты опишешь. И предупреждая твой вопрос: от пользовательской учётной записи это отличается довольно сильно,
Не, не угадал мой вопрос
То есть ставлю я malicious software, которая делает rm -rf ~/*.*, кладу рядом профиль «разрешить писать/удалять в ~» и что, оно автоматом получит эти права, а при запуске сненсет нафиг все в ~?
C> Полагаю с настроенными правилами для аппармора я вполне мог бы запустить его от имени своего юзера. И что удобно, все потребности программы записаны в 1м файле, а не разбросаны по системе в виде юзеров и групп и их свойств.
Это удобно, бесспорно. Надеюсь, управление этим все же полегче, чем в SELinux'e?
Здравствуйте, anton_t, Вы писали:
AF>>Здравствуйте, anton_t, Вы писали: _>>>Вот только этот код исполняется в процессе фотошопа. AF>>Верно. Но он является частью ОСи — значит, его можно не подвергать проверкам и ограничениям. _>Что бы такое устроить, нужно что-то типа дотнетовского CAS, только для всего нативного кода винды. В реальности такого я очень сильно сомневаюсь.
По размышлению вижу некий манифест, который согласно какой-то стандартной спеке содержит описание ресурсов и прав на эти ресурсы, которые может использовать приложение. Т.е. объекты надо поделить на классы (файлы/каталоги, память, сокеты, мутексы и т.д.), каждому классу в спеках определить реестр прав, и манифест приложения будет содержать эти списки необходимых и достаточных прав на объекты. Этот манифест надо будет поставлять с каждым исполнимым файлом и установка манифеста в систему будет возможна только при наличии админских прав. Ну да, CAS в профиль
Здравствуйте, Mamut, Вы писали:
AF>> Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
M>Хм. А что, в линуксе такое есть? Что-то не заметил.
AppArmor — программный инструмент упреждающей защиты, основанный на политиках безопасности (известных также как профили (англ. profiles)), которые определяют, к каким системным ресурсам и с какими привилегиями может получить доступ то или иное приложение.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, dr.Chaos, Вы писали:
C> M>То есть ставлю я malicious software, которая делает rm -rf ~/*.*, кладу рядом профиль «разрешить писать/удалять в ~» и что, оно автоматом получит эти права, а при запуске сненсет нафиг все в ~?
C> Ну так это не защита от malicious software, это уменьшение последствий взлома какого-либо софта. Принцип наименьших привелегий.
Ага, понятно.
Тогда вопрос. Может ли приложение например при апдейте сменить свой профиль на другой? Если да, то при взломе можно просто поменять себе профиль на другой — и вуаля
TK> AF>> Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
TK> M>Хм. А что, в линуксе такое есть? Что-то не заметил.
TK> http://ru.wikipedia.org/wiki/AppArmor TK>
TK> AppArmor — программный инструмент упреждающей защиты, основанный на политиках безопасности (известных также как профили (англ. profiles)), которые определяют, к каким системным ресурсам и с какими привилегиями может получить доступ то или иное приложение.
Здравствуйте, Mamut, Вы писали:
M>Тогда вопрос. Может ли приложение например при апдейте сменить свой профиль на другой? Если да, то при взломе можно просто поменять себе профиль на другой — и вуаля
Приложение профиль свой таскает вместе с собой, и складывает в папочку куда только рут писать может. Собственно если малварь получила рута, она себя в другое место запишет и сама даст какие надо привилегии. Под линуксом проблема обновлений решается репозиториями, а под виндой как решать что можно делать во время обновления, а что нельзя — хз. Т.е. чисто теоретически через дыру в браузере можно поменять адрес сервера обновлений, а потом сказать юзеру, обнови меня, а там уже всё что надо делать. Для этого случая я думаю можно ввести аутентификацию по PGP ключу, только как принудить всех производителей — это делать . Короче даже если UAC будет ругаться, что при обновлении происходит что-то не то, юзер вероятнее всего не будет смотреть чего от него хотят, а просто клацнет: "Да, хочу!". Вобщем это всё равно относится к доверию к источникам софта, т.е. чисто технически это разрешимо с помощью PGP ключей или подобного механизма.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
C> M>Тогда вопрос. Может ли приложение например при апдейте сменить свой профиль на другой? Если да, то при взломе можно просто поменять себе профиль на другой — и вуаля
C> Приложение профиль свой таскает вместе с собой, и складывает в папочку куда только рут писать может. Собственно если малварь получила рута, она себя в другое место запишет и сама даст какие надо привилегии.
Ну, малварь может взломать и само приложение и перезаписать/обновить свой профиль, расширяя полномочия именно приложения. А потом от лица приложения творить, что хочет. Или не может?
C> M>Тогда вопрос. Может ли приложение например при апдейте сменить свой профиль на другой? Если да, то при взломе можно просто поменять себе профиль на другой — и вуаля
C> Приложение профиль свой таскает вместе с собой, и складывает в папочку куда только рут писать может. Собственно если малварь получила рута, она себя в другое место запишет и сама даст какие надо привилегии.
Ну, малварь может взломать и само приложение и перезаписать/обновить свой профиль, расширяя полномочия именно приложения. А потом от лица приложения творить, что хочет. Или не может?
Здравствуйте, kochetkov.vladimir, Вы писали:
I>>ню-ню.
I>>Взять вот ни много ни мало, а офис + интернет эксплорер + медиаплейер.
KV>Упомянутый мной выше "integrity mechanism" IE8 в висте и выше, использует по полной программе, вообще-то
Ну пусть использует. Думаешь сильно от этого безопасности прибавится ?
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, kochetkov.vladimir, Вы писали:
I>>>ню-ню.
I>>>Взять вот ни много ни мало, а офис + интернет эксплорер + медиаплейер.
KV>>Упомянутый мной выше "integrity mechanism" IE8 в висте и выше, использует по полной программе, вообще-то
I>Ну пусть использует. Думаешь сильно от этого безопасности прибавится ?
Если по ту сторону монитора сидит сферический идиот в вакууме, то безопасности не прибавится, хоть ты его со всех сторон защитами обложи
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>>Упомянутый мной выше "integrity mechanism" IE8 в висте и выше, использует по полной программе, вообще-то
I>>Ну пусть использует. Думаешь сильно от этого безопасности прибавится ?
KV>Если по ту сторону монитора сидит сферический идиот в вакууме, то безопасности не прибавится, хоть ты его со всех сторон защитами обложи
Не надо сферичского, хватит обычного пользователя, которых примерно 95%
Здравствуйте, LuciferSaratov, Вы писали:
LS> M>Ну, малварь может взломать и само приложение и перезаписать/обновить свой профиль, расширяя полномочия именно приложения. А потом от лица приложения творить, что хочет. Или не может?
LS> Профиль идет в пакете вместе с приложением, и ставится в папку, куда писать можно только руту — соответственно, если приложение работает без прав рута, то злоумышленник, даже в случае эксплуатации уязвимости, позволяющей выполнение произвольного кода, не сможет ни сменить профиль, ни выполнить какие-либо действия, запрещаемые профилем. В случае, если бы не было AppArmor, злоумышленник обладал бы всеми привилегиями пользователя, который запустил приложение.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>"Проактивной защитой" оно начало называться тогда, когда Касперский узнал о существовании mandatory access control и решил реализовать нечто подобное в своем продукте
Здравствуйте, Andrei F., Вы писали:
AF>Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, anton_t, Вы писали:
_>>Вот только этот код исполняется в процессе фотошопа.
AF>Верно. Но он является частью ОСи — значит, его можно не подвергать проверкам и ограничениям.
Здравствуйте, criosray, Вы писали:
C>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
Интересно, а каким образом программы с функционалом "Application Control" узнают об этом? Наверное из политик, большая часть которых определена производителем и остается только чуток доработать их в каком-нибудь режиме обучения.
Здравствуйте, Mamut, Вы писали:
M>Сам я AppArmorom/SEinux'ом не пользовался, интересно, как они реают эти проблемы
Кстати SELinux это как раз часть ОС.
А насчет решения проблем — ну про тот же SELinux я немного знаю. Там все делится на домены безопасности и если процесс и файл принадлежат разным доменам безопасности, то доступ к файлу будет ограничен (например, только чтение или вообще никак).
Таким образом, какой-нибудь засланный казачок уже не сможет поменять что-нибудь в /etc/passwd или конфигурации какого-нибудь важного сервиса.
Идея, на самом деле, очень простая и, как ни странно, очень действенная. Для SELinux все, что надо это неабор стандартных заготовок под весь более-менее популярный софт + мощный инструмент дизайна политик. Кстати, может это все и есть — я никогда этим вопросом плотно не занимался.
Здравствуйте, Mamut, Вы писали:
M>Или ты уверен, что именно расширение определяет тип файла?
Замечательно. Т.е. ты предлагаешь, чтобы ОС всегда определяла тип файла по сигнатуре?
Хорошо — присылаю я тебе exe'шник с расширением txt — ты думаешь, что это текстовый файл и тыкаешь на него.
Не так-то просто взять и перейти на сигнатурный подход определения имени файла. И непонятно надо ли.
M>Потому что в такм п*деце разбираться никто никогда не будет: M>
GPO тоже на самый интуитивно понятный интерфейс (особенно password policy object из Windows 2008 — кто видел, меня поймут ). А до Win 2000 вообще эти настройки надо было напрямую в реестре менять (либо скриптами из всяких Resource Kit'ов). И что из этого? Это ж проблема не решения, а лишь инструментария... Вон до недавнего времени GPMC надо было ставить отдельно, а некоторые важные задачи до сих пор могут решить только платные продукты...
M>Почему? Я люблю в стандартном диалоге открытия/сохранения файла, если замечу косяк — переименовать/удалить файл. Удобно.
Ну тут же тоже можно пытаться отличить операцию интерактивную от неинтерактивной (в споре про Singularity как раз что-то такое было, что некоторые операции можно сделать только в интерактивном режиме, а по-другому вообще никак).
M>Это уже относится к способу организации памяти и доступности этго API в системе. Этонемного дургая область
Это область привелегий. SeDebugPriveledge называется. Но она фиксирована, в результате имеем проблtму, типа этой: http://www.bestsecuritytips.com/news+article.storyid+232.htm — использование API BITS мы никак не можем ограничить ни для какого приложения.
И вообще, Мамут, с чем ты споришь? Проактивная защита это давно уже серьезный рынок — значит, рано или поздно, MS что-то и включит в состав ОС, просто это, как всегда, будет настолько ограниченное по функционалу решение, что чаще всего будет требоваться приобретение отдельного продукта.
Здравствуйте, denisio_mcp, Вы писали:
_>По размышлению вижу некий манифест, который согласно какой-то стандартной спеке содержит описание ресурсов и прав на эти ресурсы, которые может использовать приложение. Т.е. объекты надо поделить на классы (файлы/каталоги, память, сокеты, мутексы и т.д.), каждому классу в спеках определить реестр прав, и манифест приложения будет содержать эти списки необходимых и достаточных прав на объекты. Этот манифест надо будет поставлять с каждым исполнимым файлом и установка манифеста в систему будет возможна только при наличии админских прав. Ну да, CAS в профиль
Здравствуйте, Mamut, Вы писали:
M>Опиши пример predefined rule для того же Фотошопа, например
Запрет модификации %SystemRoot%
Запрет управления следующими сервисами:
DHCP CLient
DNS CLient
Server
Workstation
...
Запрет динамической загрузки следующих библиотек:
...
Запрет использования следующих COM объектов:
...
Запрет записи в следующие ветки реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
...
Ну правильнее было бы разрешительную систему делать, конечно — запретить все, а открыть нужное. И это не сложно. В свое время грамотные админы делали так, что 1С запускалась от имени обычного пользователя — просто давали минимально необходимый набор прав на нужные ветки реестра — посидел с regmon'ом полчасика и получил такую политику
M>Ага. Система сама узнает о нетривиальных возможностях приложения. Не говоря уже о взаимодействии прилоежний
Система узнает из политики. Но никакого способа управлять политикой из приложения, по понятной причине, быть не должно.
Так что модификация приложения не требуется.
Здравствуйте, Mamut, Вы писали:
M>Как это разграничить правильно — неизвестно. Потому что WriteFile — он остается функцией WriteFile для любой из трех категорий.
Ну как же неизвестно-то... Тот же WriteFile сверяется с ACL'ями (точнее все уже решается во время CreateFile, но это детали) — а тут будет сверяться с политикой приложения. Технических проблем никаких.
Проблема, как всегда, одна — legacy. Чтобы ее решать эффективно надо:
1. Песочницу для совсем уж legacy.
2. Режим обучения, когда тебя тупо спрашивают про каждую нетипичную операцию (это, конечно, не для всякого пользователя).
3. Предопределенные разработчиком решения политики известных приложений (это есть у разработчиков отдельных решений — вопрос только полноты).
4. Политики, разрабатываемые автором приложения и устанавливаемые вместе с приложением — это уже венец, так сказать. Как сейчас уже некоторые приложения могут менять настройки Windows Firewall.
M>При этом ты утверждаешь, что такую систему разграничений можно сделать так, чтобы не ломались
существующие приложения, не меняя API системы и т.п. Как только спрашиваешь тебя — как?, начинается — вы все тупые, нифига читать не умеете, все это — суета сует
Как? Очень просто — любой системный вызов может быть перехвачен эдаким дополнительным монитором безопасности, который и будет делать все нужные проверки — еще раз технически тут проблем нет, это уже сто раз реализовано в различных продуктах.
M>ЗЫ. Мне все еще интересно, как с этим всем справляется AppArmor.
Мне тоже интересно
Решил поглядеть про него (я всегда думал, что это оболочка для SELinux) — оказалось какой-то левый продукт, про который иные говорят, что он не нужен, ибо SELinux есть...
M>Еще раз
M>1. IE/FF/Opera/etc. должен сохранять куки только в одну определенную папку M>2. IE/FF/Opera/etc. должен сохранять скачиваемый файл туда, куда я захочу (кроме системных папок, естественно)
M>Как отличить пункт 1. от пункта 2.?
Э-э-э... А зачем их отличать? Кстати, куки нередко надо экспортировать — так что я бы тебя за эти отличания потом бы еще и материл
M>Усложняем задачу. M>3. IE/FF/Opera/etc. обзавелись злым плагином, скачаным с сайта плагинов, которые перенаправляют запись кук в левую папку. M>Как отличить и запретить пункт 3.?
Отличать интерактивную операцию от неинтерактивной
M>1. Клиент ICQ должен писать только в папку Documents M>2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents M>Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
Например, файл истории можно отличить... По имени — оно же один раз задается...
Способы есть — просто это нехилая, конечно, работа — сделать все политики для всех распространенных приложений...
DOO> M>1. IE/FF/Opera/etc. должен сохранять куки только в одну определенную папку DOO> M>2. IE/FF/Opera/etc. должен сохранять скачиваемый файл туда, куда я захочу (кроме системных папок, естественно)
DOO> M>Как отличить пункт 1. от пункта 2.?
DOO> Э-э-э... А зачем их отличать? Кстати, куки нередко надо экспортировать — так что я бы тебя за эти отличания потом бы еще и материл
Это вопрос к Андрею Ф. Это его идея
DOO> M>Усложняем задачу. DOO> M>3. IE/FF/Opera/etc. обзавелись злым плагином, скачаным с сайта плагинов, которые перенаправляют запись кук в левую папку. DOO> M>Как отличить и запретить пункт 3.?
DOO> Отличать интерактивную операцию от неинтерактивной
А это разве возможно?
DOO> M>1. Клиент ICQ должен писать только в папку Documents DOO> M>2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents DOO> M>Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
DOO> Например, файл истории можно отличить... По имени — оно же один раз задается... DOO> Способы есть — просто это нехилая, конечно, работа — сделать все политики для всех распространенных приложений...
Чем определить эту распространенность, и скольо это будет стоить?
Здравствуйте, DOOM, Вы писали:
DOO> M>Опиши пример predefined rule для того же Фотошопа, например
DOO> Запрет модификации %SystemRoot% DOO> Запрет управления следующими сервисами: DOO> DHCP CLient DOO> DNS CLient DOO> Server DOO> Workstation DOO> ...
А потом появится какие-нить сервисы типа Adobe Bridge (доступ должен быть разрешен), Adobe Device Central (доступ должен быть разрешен), Microsoft Live Extended Service (доступ должен быть запрещен). Причем появились они «сразу» — обновили Фотошоп и поставили апдейт с винды. На каждый сервис требовать с пользователя подтвержедния доступа?
DOO> Запрет динамической загрузки следующих библиотек: DOO> ...
Скачали новый апдейт Фотошопа, он начал пользоваться новыми библиотеками
DOO> Запрет использования следующих COM объектов: DOO> ...
Скачали новый апдейт Фотошопа, он начал пользоваться новыми объектами
DOO> Запрет записи в следующие ветки реестра: DOO> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon DOO> ...
Сюда согласен
DOO> Ну правильнее было бы разрешительную систему делать, конечно — запретить все, а открыть нужное. И это не сложно. В свое время грамотные админы делали так, что 1С запускалась от имени обычного пользователя — просто давали минимально необходимый набор прав на нужные ветки реестра — посидел с regmon'ом полчасика и получил такую политику
DOO> M>Ага. Система сама узнает о нетривиальных возможностях приложения. Не говоря уже о взаимодействии прилоежний
DOO> Система узнает из политики. Но никакого способа управлять политикой из приложения, по понятной причине, быть не должно. DOO> Так что модификация приложения не требуется.
Кто и как эти политики будет настраивать? В окнтексте не предприятия, скажем, а домохозяйки
Здравствуйте, DOOM, Вы писали:
DOO> M>Или ты уверен, что именно расширение определяет тип файла?
DOO> Замечательно. Т.е. ты предлагаешь, чтобы ОС всегда определяла тип файла по сигнатуре? DOO> Хорошо — присылаю я тебе exe'шник с расширением txt — ты думаешь, что это текстовый файл и тыкаешь на него. DOO> Не так-то просто взять и перейти на сигнатурный подход определения имени файла. И непонятно надо ли.
Я с этим и не спорю Просто тут товарищ на полном серьезе предлагал определять доу к файлам по расширению файла
DOO> И вообще, Мамут, с чем ты споришь? Проактивная защита это давно уже серьезный рынок — значит, рано или поздно, MS что-то и включит в состав ОС, просто это, как всегда, будет настолько ограниченное по функционалу решение, что чаще всего будет требоваться приобретение отдельного продукта.
Я не спорю с самой идеей такой хащиты. Я спорю с Андреем Ф., который размахивает лозунгами и кричит, что МС — идиоты, что такую простую фичу не реализовали, мы все тупые, и не понимаем, насколько это просто. Это ведь совсем непросто, согласись
Здравствуйте, Mamut, Вы писали:
M>Здравствуйте, DOOM, Вы писали:
DOO>> M>Опиши пример predefined rule для того же Фотошопа, например
DOO>> Запрет модификации %SystemRoot% DOO>> Запрет управления следующими сервисами: DOO>> DHCP CLient DOO>> DNS CLient DOO>> Server DOO>> Workstation DOO>> ...
M>А потом появится какие-нить сервисы типа Adobe Bridge (доступ должен быть разрешен), Adobe Device Central (доступ должен быть разрешен), Microsoft Live Extended Service (доступ должен быть запрещен). Причем появились они «сразу» — обновили Фотошоп и поставили апдейт с винды. На каждый сервис требовать с пользователя подтвержедния доступа?
Все зависит от политики по умолчанию — в этом примере она, кстати, разрешительная — т.е. все можно, кроме того, что явно запрещено. Для домашнего использования, пожалуй, лучше именно такая модель.
DOO>> Запрет динамической загрузки следующих библиотек: DOO>> ... M>Скачали новый апдейт Фотошопа, он начал пользоваться новыми библиотеками
Ну с динамическими библиотеками это наверное перегиб... Это к вопросу о допустимом API. Управлять привелегиями фотошопу точно ни к чему...
DOO>> Запрет использования следующих COM объектов: DOO>> ... M>Скачали новый апдейт Фотошопа, он начал пользоваться новыми объектами
Но WMI, например, ему не надо.. В общем можно разделить все множество API, файлов, объектов на нейтральные и потенциально опасные, и разграничивать доступ только к потенциально опасным.
DOO>> Запрет записи в следующие ветки реестра: DOO>> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon DOO>> ... M>Сюда согласен
Быстро сдался. А если Photoshop'у понадобиться зачем-то отслеживать log on и log off?
DOO>> Система узнает из политики. Но никакого способа управлять политикой из приложения, по понятной причине, быть не должно. DOO>> Так что модификация приложения не требуется.
M>Кто и как эти политики будет настраивать? В окнтексте не предприятия, скажем, а домохозяйки
В контексте домохозяйки — только производитель средства (или, со временем, производитель ПО).
DOO> M>А потом появится какие-нить сервисы типа Adobe Bridge (доступ должен быть разрешен), Adobe Device Central (доступ должен быть разрешен), Microsoft Live Extended Service (доступ должен быть запрещен). Причем появились они «сразу» — обновили Фотошоп и поставили апдейт с винды. На каждый сервис требовать с пользователя подтвержедния доступа?
DOO> Все зависит от политики по умолчанию — в этом примере она, кстати, разрешительная — т.е. все можно, кроме того, что явно запрещено. Для домашнего использования, пожалуй, лучше именно такая модель.
Сдается мне, что МС постепенно идет к такому
DOO> DOO>> Запрет использования следующих COM объектов: DOO> DOO>> ...
DOO> M>Скачали новый апдейт Фотошопа, он начал пользоваться новыми объектами
DOO> Но WMI, например, ему не надо.. В общем можно разделить все множество API, файлов, объектов на нейтральные и потенциально опасные, и разграничивать доступ только к потенциально опасным.
Мде, а вот в этом уже черт ногу сломит
DOO> DOO>> Запрет записи в следующие ветки реестра: DOO> DOO>> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon DOO> DOO>> ...
DOO> M>Сюда согласен
DOO> Быстро сдался. А если Photoshop'у понадобиться зачем-то отслеживать log on и log off?
Кстати, впоне возможно Типа каких-гить advanced batch job'ов
DOO> DOO>> Система узнает из политики. Но никакого способа управлять политикой из приложения, по понятной причине, быть не должно. DOO> DOO>> Так что модификация приложения не требуется.
DOO> M>Кто и как эти политики будет настраивать? В окнтексте не предприятия, скажем, а домохозяйки
DOO> В контексте домохозяйки — только производитель средства (или, со временем, производитель ПО).
DOO>> Отличать интерактивную операцию от неинтерактивной M>А это разве возможно?
Можно с модификацией API?
Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
DOO>> Например, файл истории можно отличить... По имени — оно же один раз задается... DOO>> Способы есть — просто это нехилая, конечно, работа — сделать все политики для всех распространенных приложений...
M>Чем определить эту распространенность, и скольо это будет стоить?
Не знаю... Почему в настройках ISA Firewall Client ICQ есть, а Jabber'а, например, нету?
Откуда берется список известных приложений у средств с функциями Application Control?
Здравствуйте, DOOM, Вы писали:
DOO>Потом эта дыра с BITS'ом — в висте ведь так и не исправили... DOO>А современный вирус, например, запросто прописывает себя в исключения Windows Firewall... DOO>А потом еще выясняется, что использование библиотек типа WinPcap вообще обходит МЭ...
При условии наличия админских прав.
От юзера сделать сие нельзя.
Здравствуйте, denisio_mcp, Вы писали:
_>Здравствуйте, DOOM, Вы писали:
DOO>>Потом эта дыра с BITS'ом — в висте ведь так и не исправили... DOO>>А современный вирус, например, запросто прописывает себя в исключения Windows Firewall... DOO>>А потом еще выясняется, что использование библиотек типа WinPcap вообще обходит МЭ...
_>При условии наличия админских прав. _>От юзера сделать сие нельзя.
Не совсем, WireShark предлагает поставить специальный сервис, который обеспечит доступ к интерфейсу перехвата пакетов для обычных пользователей — вот вам еще канал нарисовался...
DOO> DOO>> Отличать интерактивную операцию от неинтерактивной
DOO> M>А это разве возможно?
DOO> Можно с модификацией API?
Можно
DOO> Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
Тогда это ложится на совести разработчиков — каждый файл открывать с соответствующим дескриптором
DOO> DOO>> Например, файл истории можно отличить... По имени — оно же один раз задается... DOO> DOO>> Способы есть — просто это нехилая, конечно, работа — сделать все политики для всех распространенных приложений...
DOO> M>Чем определить эту распространенность, и скольо это будет стоить?
DOO> Не знаю... Почему в настройках ISA Firewall Client ICQ есть, а Jabber'а, например, нету? DOO> Откуда берется список известных приложений у средств с функциями Application Control?
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Andrei F., Вы писали:
AF>>Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий. CC>У меня например ВСЁ, что ставилось отдельно от самой ОС запускается не из Program Files.
а зачем?
Я игры ставлю в другое место, но весь софт?
CC>Идиота, который заимплементит предлагаемый тобой функционал буду убивать медленно и с удовольствием.
эх... кто бы убил авторов-разработчиков StarForce....
Здравствуйте, DOOM, Вы писали:
DOO>>> Отличать интерактивную операцию от неинтерактивной M>>А это разве возможно? DOO>Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
Можно возвращать как-то криптоустойчиво модифицированное имя файла, например...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Mamut, Вы писали:
DOO>> Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
M>Тогда это ложится на совести разработчиков — каждый файл открывать с соответствующим дескриптором
Почему? Просто у разработчика появляется 2 функции открытия файла — более ограниченнная CreateFile и менее ограниченная ShowOpenDialog — а там уж пусть сами думают, что им надо...
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, DOOM, Вы писали:
DOO>>>> Отличать интерактивную операцию от неинтерактивной M>>>А это разве возможно? DOO>>Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
E>Можно возвращать как-то криптоустойчиво модифицированное имя файла, например...
Да можно даже не криптоустойчиво — просто "отметить" (где-то в дебрях диспетчера объектов), что сей файл получил добро быть открытым на чтение/запись...
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением? Если приложение запущено не из Program Files — то прав на запись на диск нет вообще? Право ставить хуки, слать оконные сообщения в чужой процесс, использовать отладочное API — только по специальному разрешению?
Им мешает сделать это обилие программ, которые после такого нововведения перестанут работать.
Здравствуйте, Ikemefula, Вы писали:
I>Как ты будешь проверять, что программа не имеет прав записи куда либо, кроме My Documents или определенных расширений ?
В каком смысле? Рассказать, как это технически может быть реализовано?
I>Каким то программам надо будет давать права писать куда угодно, ткие программы и будут ломаться разынми спосбами.
Вот это правда. Думаю, из-за необходимости обеспечить совместимость с ранее написанными программами, внедрить такую штуку будет очень непросто...
Здравствуйте, gandjustas, Вы писали:
G>Да сделали, еще начиная с XP. Завывается ACL и priveleges. Вот только под учеткой с какими правами большинство пользователей работает?
Большинство пользователей работает под теми правами, которые получаются по дефолту. Интересно, что если в линуксе при инсталляции жать все кнопки по дефолту, получишь обычного бесправного юзера.
G>И вот в висте чтобы победить проблему сделали UAC, который права админа искуственно понижает, далеко не всем понравилась эта идея.
Значит, плохо сделали, с точки зрения user experience. Совершенно бесполезно делать защиту, рассчитанную на массового пользователя, которая постоянно задает непонятные вопросы.
Здравствуйте, criosray, Вы писали:
AF>>Есть какие-то проблемы определить — из какого файла запущен процесс?
C>Ну определили. Дальше что с этой информацией делать?
Посмотреть в табличку, чего программе можно делать, а чего нельзя. Именно так работает SELinux. Проблема в том, что в описаниях программ (где, собственно, и расписывается множество допустимых действий) слишком много ошибок. Реально под SELinux работать слишком сложно, много чего ломается.
Здравствуйте, Ikemefula, Вы писали:
I>Ничего они ровным счетом не снижают. Микрософт не в состоянии разработать десяток другой защит.
Каких защит? Не понял о чём ты? Для .Net есть же CAS, это же можно сделать для натива.
I> Взломы тоже удешевятся. Неужели это не понятно ?
Не понятно, объясняй.
I>Касперский в свох нтервью говорит очень просто на эту тему.
Ну естественно, он продаёт заплаты для дыр, это хлеб было бы странно если б он говорил что-то иное.
I>АПИ надо, но в для качественной работы софта, а не для повышения безопасности.
Безопасность в качество не входит?
DC>>Ну например, есть страница использующая уязвимость браузера и злоумышленник может выполнять любой код в контексте браузера с правами юзера. И теперь рассмотрим случай когда для браузера настроены политики, писать только в свои ветки реестра, читать только нужные, ограничен запуск чего бы то ни было, всякие вызовы COM и прочего, писать файлы можно. Короче Производитель постарался и настроил так, что права необходимо минимальны. Давай сценарии.
I>Ну, то есть, ты сразу обрезал процентов 80 того, что сейчас может использовать пользователь. Очень хороший подход.
А зачем пользователю использовать что-то кроме того что предусмотрел разработчик?
I>Но и здесь засада, вагон приложений использует IE, как с ними быть ?
Для обычного юзера, положиться на дефолтные политики, кому надо что-то больше ужесточать их.
I>Сейчас прокси, антивирусы более-менее нормально справляются и при этом без отрубания рук в виде запрета вызовов COM.
антивирь не защищает на 100% от вирей. Фаирволл требует обучения, ты это называешь без отрубания рук?
I>Если сейчас обрезать пользователям эти 80% имеющимися средствами то эффект будт такой ж как у тебя, но без издержек на написание мега-защиты.
I>Твои предложения это отрубание рук.
Какие именно? Настроить политики для приложении, чтоб они имели только те права которые им нужны? Вот скажи мне зачем браузеру возможность запускать произвольные исполняемые файлы или обращаться к произвольным COM-объектам? Ты объясняй, объясняй зачем большинству приложений полные юзерские права?
I>Неужели ты думаешь в Микрософте сидят дураки ?
Нет просто их ситуация устраивает, пипл хавает
I>Пользователя понемногу приучают думать про безопасность. Панацеи здесь нет и никогда не будет.
Угу приучают сразу вырубить UAC. Или купить Каспера, который стоит доп денег и кроме того жрёт ресурсы.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Mamut, Вы писали:
M>1. IE/FF/Opera/etc. должен сохранять куки только в одну определенную папку M>2. IE/FF/Opera/etc. должен сохранять скачиваемый файл туда, куда я захочу (кроме системных папок, естественно)
Сделать "менеджер сохранения файлов" сисмным сервисом. Который вывешивает, по запросу IE/FF/Opera/etc на экран понятный диалог, открывает файл, передает тому, кто его позвал, HANDLE открытого файла/
Это оставит возможность для IE/FF/Opera/etc. сохранять файлы там, где захочет пользователь, но на контексте этих программ невозможно будет записать файл куда угодно, не спросив перед этим человека.
M>3. IE/FF/Opera/etc. обзавелись злым плагином, скачаным с сайта плагинов, которые перенаправляют запись кук в левую папку.
M>Как отличить и запретить пункт 3.?
Никак. Нефига злому плагину хранить куки в левой папке.
M>1. Клиент ICQ должен писать только в папку Documents M>2. Мой собеседник присылает мне смешное фото, которое я должен смочь сохранить в папку /Users/dmitriid/Pictures/Funny/Unsorted, которая находится вне папки Documents
M>Как отличить пункт 1. от пункта 2.? Как разрешить пункт 2.?
Здравствуйте, Mamut, Вы писали:
M>Я так понимаю, *nix ты в глаза тоже не видел И судишь только по винде. Ты можешь внятно рассказать, чем существующая, например, в *nix'ах, модель плоха?
Тем, что если проломят мой FF, запущенный от имени простого пользователя, то доберутся до моих документов, которые не предназначены для свободного опубликования в интернете. И честно говоря, ущерб от этого может превышать ущерб от того, что просто разнесут операционную систему.
Здравствуйте, Mamut, Вы писали:
DOO>> Отличать интерактивную операцию от неинтерактивной
M>А это разве возможно?
Можно поенфорсить интерактивность той или иной операции. Например, засунуть диалог насчет открытия файла в специально обученный системный сервис, и дать только ему право открывать файлы где попало. А потом он возвращает HANDLE вызывающей программе, а она уже знает, что с этим HANDLE делать.
Здравствуйте, DOOM, Вы писали:
DOO>Можно с модификацией API? DOO>Например, чтобы ShowOpenDialog (или как ее там) возвращала не имя файла, а уже дескриптор — про который, диспетчер объектов бы уже знал — открыт интерактивно для чтения (ну а в случае Save для записи).
Ну строго говоря, можно и без модификации API. Например, получив имя файла от ShowOpenDialog (или как ее там), программа заодно получает право этот файл открыть.
Здравствуйте, criosray, Вы писали:
C>Вы не назвали ни одного типа проверки. Назовете или будете продолжать вилять из стороны в сторону, бросаясь пустыми словами и необоснованным заявлениями?
Ну давайте я назову. Проверки, имеет ли право данная программа делать ту или иную операцию. Например, открывать такой-то файл на чтение.
C> Какие именно? Настроить политики для приложении, чтоб они имели только те права которые им нужны? Вот скажи мне зачем браузеру возможность запускать произвольные исполняемые файлы
Ну, не исполняемые, но...
Например, Safari автоматом запускает «безопасные» файлы. Например, картинки сразу открываются в Preview, архивы автоматически распаковываются в папочки. Это очень удобно. Поимио этого в списке закачек я могу даблкликнуть по любому файлу и запустить его, пусть даж это будет исполняемый файл. Система, конечно, ругнется, что, мол, этому файлу доверять нельзя, но запустить-то запустится.
Сложный сценарий для злоумышленника здесь — дать на скачивание хитро скомпонованый архив, который эксплуатирует дыры в стандартном архиваторе, запускаемом браузером.
C> или обращаться к произвольным COM-объектам?
Как ты отличишь произвольный COM-обхект от непроизвольного?
C> Ты объясняй, объясняй зачем большинству приложений полные юзерские права?
Как мининмум, большАя часть приложений может захотеть сохранить любой файл куда угодно.
Здравствуйте, waricom-11, Вы писали:
W1>Компьютеры еще не настолько нужны в жизни, чтобы серьезно озаботиться о безопасности. Ну да, вирусные эпидемии, confiker сожрал наш квартальный отчет, потому мы его не сдали и т.д. Кому это интересно, кроме айтишников? Вот когда последнее ИП "Камаз Навозов" (гнилые фрукты по сниженным ценам!) будет рассчитываться через клиент-банк, а не наличкой, когда будт создана "кормовая база" для злоумышенников, тогда и начнется забота о безопасности.
На Западе это уже так, у нас очень скоро будет.
W1>Вообще говоря, невозможность создания непробиваемой защиты в операционке — это бред. Зайдите не под админом и попробуйте что-нибудь сделать с системой. Непробиваемость SeLinux доказана математически.
Кому он нужен, ваш админ? Что с его помощью можно сделать приятного? Адрес на сетевом интерфейсе изгадить?
Гораздо полезнее выковырнуть из вашего веб-бровсера пароль к вашему банковскому счету.
W1>А посему, надо вводить ответсвенность владельцев компьютера за поведение компьютера. Штрафовать за рассылку спама и т.п. Взломали кого-то через прозрачный прокси на твоем компе? Штраф плати. И не разводи зоопарк у себя в системе. Ворд слишком сложно защитить? А мы напишем редактор на яве, правда по функциональности он будет в 10% от ворда, но норот и 5% не знает, и поэтому будет пользоваться.
Водитель ли должен отвечать за аварию, если к ней привела ошибка в конструкции тормозов?
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, waricom-11, Вы писали:
W1>>Компьютеры еще не настолько нужны в жизни, чтобы серьезно озаботиться о безопасности. Ну да, вирусные эпидемии, confiker сожрал наш квартальный отчет, потому мы его не сдали и т.д. Кому это интересно, кроме айтишников? Вот когда последнее ИП "Камаз Навозов" (гнилые фрукты по сниженным ценам!) будет рассчитываться через клиент-банк, а не наличкой, когда будт создана "кормовая база" для злоумышенников, тогда и начнется забота о безопасности.
Pzz>На Западе это уже так, у нас очень скоро будет.
W1>>Вообще говоря, невозможность создания непробиваемой защиты в операционке — это бред. Зайдите не под админом и попробуйте что-нибудь сделать с системой. Непробиваемость SeLinux доказана математически.
Pzz>Кому он нужен, ваш админ? Что с его помощью можно сделать приятного? Адрес на сетевом интерфейсе изгадить?
Вы совершенно не понмаете сути написанного.
Pzz>Гораздо полезнее выковырнуть из вашего веб-бровсера пароль к вашему банковскому счету.
При разделении безопасности на уровне программ, и даже на уровне отдельных компонент такой фокус не пройдет.
W1>>А посему, надо вводить ответсвенность владельцев компьютера за поведение компьютера. Штрафовать за рассылку спама и т.п. Взломали кого-то через прозрачный прокси на твоем компе? Штраф плати. И не разводи зоопарк у себя в системе. Ворд слишком сложно защитить? А мы напишем редактор на яве, правда по функциональности он будет в 10% от ворда, но норот и 5% не знает, и поэтому будет пользоваться.
Pzz>Водитель ли должен отвечать за аварию, если к ней привела ошибка в конструкции тормозов?
Здравствуйте, waricom-11, Вы писали:
Pzz>>Кому он нужен, ваш админ? Что с его помощью можно сделать приятного? Адрес на сетевом интерфейсе изгадить?
W1>Вы совершенно не понмаете сути написанного.
Ну как вы понимаете, такое заявление, безо всяких аргументов, делает дальнейшее продолжение конструктивной дискуссии крайне проблематичным.
Pzz>>Гораздо полезнее выковырнуть из вашего веб-бровсера пароль к вашему банковскому счету.
W1>При разделении безопасности на уровне программ, и даже на уровне отдельных компонент такой фокус не пройдет.
Вы говорите о некотором абстрактном светлом будующем, или о реальном мире, в котором работающие бровсеры можно пересчитать на пальцах одной руки, и не один из них не распилен на компоненты правильным образом?
Pzz>>Водитель ли должен отвечать за аварию, если к ней привела ошибка в конструкции тормозов?
W1>А суд разберется.
Автомобиль — довольно простая штука, и если он правильно обслуживается и регулярно проходит техосмотр, то можно быть почти наверняка быть уверенным, что тормоза работают у него правильно. Кроме того, в случае сомнений завсегда можно сделать экспертизу бренных останков автомобиля и выяснить, не явилась ли какая-то неисправность причиной аварии.
В случае компьютера найти ответ будет значительно сложнее.
Здравствуйте, waricom-11, Вы писали:
Pzz>>Ну как вы понимаете, такое заявление, безо всяких аргументов, делает дальнейшее продолжение конструктивной дискуссии крайне проблематичным.
W1>Вы все же разберитесь. Админ — субъект безопасности с бесконечной свободой действий, которую перерыть не удастся по определению.
Совсем не обязательно, кстати. В венде можно выставить такие права файлу, что админ его не прочтет. А Вася Пупкин, которому принадлежит файл, прочтет. В SELinux тоже можно, только затрахаешься.
Но в общем и целом, моя мысль заключается в том, что пользовательские данные могут быть в тышшу раз ценнее, чем те, в основном системные, данные и параметры, к которым имеет экслюзивный доступ только админ.
Pzz>>Вы говорите о некотором абстрактном светлом будующем, или о реальном мире, в котором работающие бровсеры можно пересчитать на пальцах одной руки, и не один из них не распилен на компоненты правильным образом?
W1>Я говорю о реально существующих технологиях, вроде явы или дотнета. В которых таки возможны безопасные программы.
Увы, бровсеров на дотнете еще не написано, а единственный бровсер, написанный на яве, умер сто лет назад. Выбирать-то приходится из множетсва существующих программ, а не множества программ, которые могли бы существовать.
А говоря о технологиях, вы тем самым говорите о светлом будующем. Да, с помощью этих технологий можно (наверное) писать более безопасные программы. Наверное, через сто лет напишут
W1>Представьте, что к вам в дом залезли грабители. Дверь болгаркой вскрыли и влезли. Виноваты грабители. W1>Но если проводить аналогию с программными продуктами, дом у вас сделан из материала абсолютной прочности, и окна, и двери. Тогда, если к вам залезли — значит у вас в доме есть дырки или вы сами открыли дверь, виноваты, соответственно, вы.
Ну если так рассуждать, то и в первом случае виноваты не грабители, а те, кто дверь сделал. Ибо нефига делать дверь, которую можно распилить обычной болгаркой. А грабители вообще ни в чем не виноваты.
Здравствуйте, waricom-11, Вы писали:
W1>У админа есть привилегия TakeOwnership, смена владельца у объекта. Но можно это привелегию убрать. А еще админ может открыть файл как для резевного копирования и тоже проигнорировать права доступа. Это тоже можно отобрать. А еще можно свой драйвер загрузить, и прочитать напрямую с диска, минуя стэк файловой системы... короче, путей много, а разгадка одна — безблагодатность ^W, то есть я хотел сказать безграничные права админа и дизайн системы, эти права требующий.
Совсем несложно сделать систему, в которой админ не может прочитать пользовательские файлы. Достаточно их, файлы, зашифровать, а админу ключ не сказать.
Pzz>>Ну если так рассуждать, то и в первом случае виноваты не грабители, а те, кто дверь сделал. Ибо нефига делать дверь, которую можно распилить обычной болгаркой. А грабители вообще ни в чем не виноваты.
W1>Нэтъ (с). W1>В реальном мире не бывает материалов абсолютной прочности. А в мире программ — только он и есть.
Это заблуждение. Не существует программ без ошибок.
Здравствуйте, Andrei F., Вы писали: AF>Я это себе представляю, как проверку прав доступа внутри "опасных" функций API на основе заданного набора правил. Аналог CAS, но для WinAPI.
Для получения аналога CAS нужно иметь гарантию идентифицируемости вызывающего кода. Это серъезная задача, в общем случае не имеющая решения для неуправляемого кода.
"Добронравные" приложения проверить будет можно; злонамеренные будут искать способы подменить стек или найти дырки в добронравных, чтобы выполнить свой код от их имени.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>И еще один вариант — если ты системным диалогом "save to" выбираешь файл, то доступ к этому файлу временно разрешается. AF>Все такие проблемы решаются, при наличии желания.
Осталось понять, каким образом "при наличии желания" отличить файл, выбранный системным диалогом, от файла, выбранного прямым формированием строки.
На досуге рекомендую почитать примеры кода, которые пишут в выбранный пользователем файл, и прикинуть, как модифицировать ОС, чтобы эти примеры продолжили работать без перекомпиляции.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Осталось понять, каким образом "при наличии желания" отличить файл, выбранный системным диалогом, от файла, выбранного прямым формированием строки.
Когда диалог закрывается — имя выбранного файла добавляется в список "разрешить доступ к файлам" для этого процесса
S>На досуге рекомендую почитать примеры кода, которые пишут в выбранный пользователем файл, и прикинуть, как модифицировать ОС, чтобы эти примеры продолжили работать без перекомпиляции.
Очевидно, что все изменения должны быть внутри ОС.
Здравствуйте, Sinclair, Вы писали:
S>Во-первых, запись — ещё не всё. Чтение тоже нужно ограничивать
Естественно. Принцип ограничения — тот же самый.
S>Во-вторых, уровень per-process — тоже еще не всё. Вот есть у тебя некое приложение, которому дан уровень привилегий X. Это приложение выполняет некий скрипт, загруженный из источника Y. Внимание, вопрос: какие привилегии нужно выдать этому скрипту?
Это уже более сложный случай, который встречается не так часто.
Решение — выполнить скрипт в отдельном процессе с пониженными правами.
Здравствуйте, Sinclair, Вы писали:
S>Теоретически, всё в порядке — скрипт не имеет прямого доступа к файлухе, записать напрямую в input type=file невозможно, задача решена. То есть браузер может отправить только тот файл, который был вручную указан пользователем. Через это мы имеем геморрой с multiple file upload, ну да ладно — ради безопасности можно простить издевательства над пользователями.
S>Однако хитрые хлопцы показывали пример мата в два хода: сначала скрипт пишет путь к нужному файлу в клипборд, а потом в нужный момент делает ловкий paste в input type=file. В итоге пользователь отправляет совсем не тот файл, который он думал. Немного соц. инженерии — и малишс страничка готова; пользователи сабмиттят свои файлы от ms money бешеными темпами.
Кто-то прощелкал возможность непрямого ввода в поле, только и всего.
Диалог, кстати, можно было сделать нормальный — с поддержкой multi-select. Никаких издевательств над пользователями.
И ты называешь этих людей умными?
Здравствуйте, Andrei F., Вы писали:
AF>Полный аналог не нужен, достаточно идентификации на уровне процесса. Подменить здесь ничего не получится.
Ничего не выйдет. Идентификация на уровне процесса не сможет отличать файлы, открытые стандартным диалогом, от файлов, открытых напрямую.
Поверь — всё это уже анализировалось и обсуждалось.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Ничего не выйдет. Идентификация на уровне процесса не сможет отличать файлы, открытые стандартным диалогом, от файлов, открытых напрямую.
Сможет — смотри в другом твоем сообщении.
S>Поверь — всё это уже анализировалось и обсуждалось.
Если UAC — это лучшее, что они придумали, то не поверю. Потому что UAC — это жутчайшее порождение больного воображения и кривых рук.
Здравствуйте, Andrei F., Вы писали:
AF>Кто-то прощелкал возможность непрямого ввода в поле, только и всего.
И таких "только и всего" в предлагаемой тобой системе сразу будет очень-очень много. Ты вот отказываешься думать над деталями; а без них твое предложение — сродни "почему бы им сразу не выдумать порох непромокаемым".
AF>Диалог, кстати, можно было сделать нормальный — с поддержкой multi-select. Никаких издевательств над пользователями. AF>И ты называешь этих людей умными?
Ну, в общем-то браузеры не совсем дураки пишут. Не нужно думать, что ты — прямо умнее всех ныне живущих.
Это я к тому, что очевидные решения — далеко не самые правильные.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>М-м. Интересная идея. Осталось придумать, когда этот список очищается, иначе долгоиграющие программы будут быстро падать (напомню на всякий случай, что список должен входить в объекты ядра, чтобы обеспечить защиту от прямых манипуляций из юзермоды).
1. Не "список очищается", а "файл исключается из списка". Когда и по какому условию — это зависит от настроек для приложения.
2. Вести такой список нужно не для всех файлов. Например, для временных и служебных файлов приложения — не нужно.
S>Ну, а потом, когда решим эту и остальные проблемы с функцией CreateFile, останется повторить процесс проектирования для остальных ~2000 вызовов WinAPI.
Здравствуйте, Sinclair, Вы писали:
S>Ты вот отказываешься думать над деталями
Не отказываюсь. Но продумать все абсолютно детали — это почти равносильно полной разработке продукта, а денег мне за это не заплатят.
S>Ну, в общем-то браузеры не совсем дураки пишут.
А у меня временами сомнения закрадываются... сколько у них времени ушло, чтобы сделать нормальный рендеринг для drop-down? Вместо использования для этого win32 контрола?
Здравствуйте, Sinclair, Вы писали:
S>Он встречается чаще, чем все остальные вместе взятые. Достаточно вспомнить про то, что сейчас браузер — самое заскриптованное приложение. А так же про то, что большинство червей были написаны на VBScript. S>А как этот скрипт будет взаимодействовать с объектами основного приложения? IPC — штука дорогая. Предлагаешь сделать так, чтобы всё вообще тормозило?
Что-то я упустил один из шагов твоей логики... каким образом "веб-клиент банка и малварный флеш-ролик" оказались в одном процессе?
S>То, что ты предлагаешь, будет всего лишь осложнять жизнь законопослушным приложениям и их пользователям. Не имеет значения, сколько ворот ты заставишь пройти честного пользователя, если для злоумышленника есть дыра в заборе.
Не будет осложнять. Один из плюсов моей идеи — законопослушный пользователь даже не узнает о существовании защиты, пока приложение не попытается сделать что-то неразрешенное.
S>Было бы простое решение — применили бы. Вон, в Vista/Win7 понапридумывали много всякой дорогостоящей ерунды. А "простое разграничение на уровне процессов" типа придумать не смогли? Хаха.
Точно. Именно дорогостоящей и ерунды.
Анекдот про японцев и туалет слышал?
Здравствуйте, Andrei F., Вы писали:
AF>1. Не "список очищается", а "файл исключается из списка". Когда и по какому условию — это зависит от настроек для приложения.
AF>2. Вести такой список нужно не для всех файлов. Например, для временных и служебных файлов приложения — не нужно.
Осталось понять, как отличить "временные и служебные" от "постоянных и полезных".
AF>Зачем??
Затем, что не файлами едиными жив винапи.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Осталось понять, как отличить "временные и служебные" от "постоянных и полезных".
Временные — в каталоге temp, служебные — в специальной подпапке в профиле пользователя. Неужели для тебя это сюрприз?
S>Затем, что не файлами едиными жив винапи.
Расскажи, как ты насчитал аж целых 2000 функций, которые обязательно надо защитить.
Здравствуйте, Sinclair, Вы писали:
S>Пока что ты придумываешь на ходу частные решения на частные проблемы. S>Это очень хреновый подход, поскольку он никак не гарантирует того, что нет еще одного вопроса, который тебе просто не задали.
У меня есть вполне цельная и общая картина, как я себе представляю такую систему защиты. Но способов прямой передачи из мозга в мозг пока что не придумали.
S>Ты просто плохо себе представляешь матчасть.
А вот за это в приличном обществе бьют канделябром по морде.
AF>>Если UAC — это лучшее, что они придумали, то не поверю. Потому что UAC — это жутчайшее порождение больного воображения и кривых рук. S>Можешь верить во что угодно, включая санта-клауса.
Здравствуйте, Sinclair, Вы писали:
S>Оба работают в браузере. У них обоих origin — то место, откуда загрузился процесс браузера.
Я не очень хорошо себе представляю, как работают веб-хаки, на защиту от них я собственно и не рассчитывал.
Чтобы я мог сделать выводы — расскажи, какие проблемы могут быть в описанном тобой случае?
S>Один из минусов — никакой модели нет. Есть общие соображения, которые плохо совместимы с практикой.
Этого ты не можешь знать точно, и не занимайся домыслами. И еще большая просьба — не устраивай message storm, пиши все свои соображения в одной ветке.
S>придется ознакомиться с матчастью
Здравствуйте, Sinclair, Вы писали:
S>Это очень хреновый подход, поскольку он никак не гарантирует того, что нет еще одного вопроса, который тебе просто не задали. Ты просто плохо себе представляешь матчасть.
Подобная задача с различной степенью успеха решается целой кучей вендоров — ничего, пока тянут...
То, что конкретно MS этим не занимается, не значит, что делать в этой области нечего.
А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров.
Здравствуйте, Andrei F., Вы писали: AF>У меня есть вполне цельная и общая картина, как я себе представляю такую систему защиты. Но способов прямой передачи из мозга в мозг пока что не придумали.
Пока нет прямой передачи, можно воспользоваться форумом как промежуточным носителем.
AF>А вот за это в приличном обществе бьют канделябром по морде.
Ну-ну.
AF>Я не говорил, что верю. Я сказал — не верю.
Мы не обсуждаем вопросы веры или не веры. Речь об объективной реальности.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Временные — в каталоге temp, служебные — в специальной подпапке в профиле пользователя. Неужели для тебя это сюрприз?
Нет, не сюрприз. Сюрприз для меня то, что некоторые люди делают всеобщие заявления типа "я придумал универсальную и простую систему обеспечения безопасности". Но как только ковырнешь ногтем эту "систему", то выясняется, что везде нужны костыли для частных решений. Если ты так в себе уверен и знаешь матчасть настолько, что готов бить канделябром несогласных, напиши здесь полную блок-схему новых действий, выполняемых в функции CreateFile. А я буду бить канделябром за каждую уязвимость в этой схеме, ок?
AF>Расскажи, как ты насчитал аж целых 2000 функций, которые обязательно надо защитить.
Приблизительно. Прикинул общее количество функций, только и всего. Возможно, какие-то из них защищать не нужно. Но система, построенная по принципу "запрещено по умолчанию" не может просто надеяться на авось — для каждой функции нужно тщательно проверить наличие уязвимостей.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>Я не очень хорошо себе представляю, как работают веб-хаки, на защиту от них я собственно и не рассчитывал.
А на защиту от чего ты собственно рассчитывал? AF>Чтобы я мог сделать выводы — расскажи, какие проблемы могут быть в описанном тобой случае?
Я тебе уже рассказал — попытки привязать проверки к пути, использованному в CreateProcess, обречены из-за низкой гранулярности.
Проблемы будут ровно в том, что в одну и ту же песочницу попадут фрагменты кода совершенно разного происхождения.
AF>Этого ты не можешь знать точно, и не занимайся домыслами. И еще большая просьба — не устраивай message storm, пиши все свои соображения в одной ветке.
Нет уж, я буду отвечать на каждое сообщение там, где задан вопрос. S>>придется ознакомиться с матчастью AF>Пора звать модератора?
А без него ты с матчастью ознакомиться не в состоянии? Ну давай позовём — мне не жалко.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали: DOO>Подобная задача с различной степенью успеха решается целой кучей вендоров — ничего, пока тянут...
Что именно они тянут?
DOO>То, что конкретно MS этим не занимается, не значит, что делать в этой области нечего.
Нет, не значит. Но есть целый набор соображений в пользу того, что не имеет смысла копать в сторону реализации "этой области" внутри ОС с таким legacy, как у винды. DOO>А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров.
Я не против антивирусов, как и не против систем изоляции. Я просто отвечаю на вопрос в его оригинальной постановке — "что мешает Microsoft встроить ограничения в API".
Вот ровно это и мешает — предлагаемые ограничения будут мешать только хорошим. В результате, поделив прибыль на затраты, получим чистый убыток.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>?! А что же по-твоему тогда является основным источником малвари, сажаемой на машины беспечных домохозяек?
Скачанные из инета файла. Аттачи в почте. Дырки в сетевых сервисах.
Я не прав?
Но моя идея в общем-то не про это. Система не сможет помешать малвари попасть в систему — но она сможет свести к минимуму ущерб, который малварь сможет нанести данным пользователя.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>?! А что же по-твоему тогда является основным источником малвари, сажаемой на машины беспечных домохозяек?
AF>Скачанные из инета файла. Аттачи в почте. Дырки в сетевых сервисах. AF>Я не прав? AF>Но моя идея в общем-то не про это. Система не сможет помешать малвари попасть в систему — но она сможет свести к минимуму ущерб, который малварь сможет нанести данным пользователя.
Уязвимости в браузере и в плагинах для браузера. Вот это основной источник.
Здравствуйте, Sinclair, Вы писали:
S>Я тебе уже рассказал — попытки привязать проверки к пути, использованному в CreateProcess, обречены из-за низкой гранулярности.
Расскажи на конкретном примере уязвимости, к которой это может привести.
S>>>придется ознакомиться с матчастью AF>>Пора звать модератора? S>А без него ты с матчастью ознакомиться не в состоянии? Ну давай позовём — мне не жалко.
Не допускается проявление грубого или неуважительного отношения к другим участникам форума. Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, DOOM, Вы писали: DOO>>Подобная задача с различной степенью успеха решается целой кучей вендоров — ничего, пока тянут... S> Что именно они тянут?
Деньги из кармана пользователей
Это же рынок — еще пока формирующийся, но достаточно быстро растущий. То, что MS его пока игнорирует им на руку не играет. Рано или поздно все равно сунутся туда — как с ForeFront — долгое время не лезли на рынок антивирусов, а потом купили Antigen — и вперед. Причем идея-то очень хорошая — кто как не MS сможет правильно бороться с малварью, так активно использующей механизмы защиты Windows? И кто как не MS может корректно вырезать малварь, встроившуюся в тот или иной компонент системы...
Тут примерно та же идея — то, что другие делают как хак, MS может встроить в систему аккуратно.
DOO>>То, что конкретно MS этим не занимается, не значит, что делать в этой области нечего. S>Нет, не значит. Но есть целый набор соображений в пользу того, что не имеет смысла копать в сторону реализации "этой области" внутри ОС с таким legacy, как у винды.
Почему? Ты потенциальную прибыль оценивал?
S>Я не против антивирусов, как и не против систем изоляции. Я просто отвечаю на вопрос в его оригинальной постановке — "что мешает Microsoft встроить ограничения в API". S>Вот ровно это и мешает — предлагаемые ограничения будут мешать только хорошим. В результате, поделив прибыль на затраты, получим чистый убыток.
Не ясна логика. Я с трудом берусь оценить прибыль от этого добра и уж точно не могу вот так за 5 минут оценить затраты.
Здравствуйте, waricom-11, Вы писали:
W1>Уязвимости в браузере и в плагинах для браузера. Вот это основной источник.
Ок. Злоумышленник хакнул браузер и получил доступ к файлам, которые доступны браузеру — его служебным файлам. Доступа к другим файлам у него нет.
Как минимум — это лучше, чем то что мы имеем сейчас.
Здравствуйте, Andrei F., Вы писали: AF>Заплати — напишу подробную спеку. Я надеюсь ты не думаешь, что такую сложную (как ты сам утверждаешь) работу кто-то станет делать бесплатно?
Это ты утверждал, что всё просто.
AF>Расскажи список категорий. AF>Кстати, интересная у тебя логика. Если в системе защиты можно найти хотя бы одну уязвимость — значит, лучше не делать защиту вообще. Гениально
Конечно. Я считаю, что нефиг вкладывать деньги в усиление двери, если непонятно, как обеспечить усиление окна. Есть масса других вещей, в которые можно вложить деньги.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Расскажи на конкретном примере уязвимости, к которой это может привести.
Я тебе привёл конкретный пример — веб-клиент к банку сохраняет куки, к которым получает доступ скрипт со странички "даунлоады варезов".
После чего скрипт коннектится к сайту веб-клиента, и ты больше никогда не видишь своих денег.
AF>
Не допускается проявление грубого или неуважительного отношения к другим участникам форума. Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>Ок. Злоумышленник хакнул браузер и получил доступ к файлам, которые доступны браузеру — его служебным файлам. Доступа к другим файлам у него нет. AF>Как минимум — это лучше, чем то что мы имеем сейчас.
Это иллюзия. Точно такая же, как и была в своё время про защищенный режим x86. Типа "максимум, к чему получит доступ вирус — виртуальное адресное пространство хакнутого процесса. Остальные процессы надёжно изолированы". При этом вирусам времён ДОС и не снились масштабы виндовых эпидемий. Sapienti sat.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Это ты утверждал, что всё просто.
Идея — проста, реализация как всегда добавляет много мелких сложностей. Для тебя это новость?
AF>>Расскажи список категорий.
Не увиливай от ответа. А то сдается мне, что число функций ты просто с потолка взял — чтобы выглядело пострашнее.
AF>>Кстати, интересная у тебя логика. Если в системе защиты можно найти хотя бы одну уязвимость — значит, лучше не делать защиту вообще. Гениально S>Конечно. Я считаю, что нефиг вкладывать деньги в усиление двери, если непонятно, как обеспечить усиление окна. Есть масса других вещей, в которые можно вложить деньги.
Расскажи-ка подробнее, что это за другие проекты по безопасности винды. Кроме UAC, естественно
Здравствуйте, Sinclair, Вы писали:
S>Я тебе привёл конкретный пример — веб-клиент к банку сохраняет куки, к которым получает доступ скрипт со странички "даунлоады варезов". S>После чего скрипт коннектится к сайту веб-клиента, и ты больше никогда не видишь своих денег.
Забота о безопасности кук от доступа с других сайтов — это забота разработчиков браузера. Предложенная мной идея решает другие проблемы, и не надо говорить что она бесполезна, потому что не решает абсолютно все мыслимые проблемы.
Хотя, при большом желании, можно найти решение и для этой проблемы.
Здравствуйте, Sinclair, Вы писали:
S>Это иллюзия. Точно такая же, как и была в своё время про защищенный режим x86. Типа "максимум, к чему получит доступ вирус — виртуальное адресное пространство хакнутого процесса. Остальные процессы надёжно изолированы". При этом вирусам времён ДОС и не снились масштабы виндовых эпидемий. Sapienti sat.
А вот это уже демагогия, точнее — доказательство по аналогии.
Здравствуйте, Sinclair, Вы писали:
Pzz>>Ну давайте я назову. Проверки, имеет ли право данная программа делать ту или иную операцию. Например, открывать такой-то файл на чтение. S>Осталось понять, что такое "данная программа". Как отличить код процесса, загруженный из его екзешника, от кода, загруженного из кошерной DLL?
А надо ли отличать?
S>Как с достаточной надёжностью проверить стек? Как гарантировать, что злое приложение не передало в OpenFileDialog callback, который будет расположен ниже по стеку, чем OpenFileDialog, и получит все привилегии еще до того, как пользователь что-то там подтвердил?
Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом.
Здравствуйте, Sinclair, Вы писали:
S>Нет, оценивал потенциальный убыток.
Убыток по каким причинам?
S>Очевидно, что затраты весьма велики. То есть речь не идет о паре функций на двадцать строк каждая.
Всё, что больше "пары функций на двадцать строк" — это уже очень большие затраты?
Они на совершенно нежизнеспособные проекты выделяют суммы во многие миллионов долларов, и ничего — живее всех живых.
Здравствуйте, Sinclair, Вы писали:
S>Однако хитрые хлопцы показывали пример мата в два хода: сначала скрипт пишет путь к нужному файлу в клипборд, а потом в нужный момент делает ловкий paste в input type=file. В итоге пользователь отправляет совсем не тот файл, который он думал. Немного соц. инженерии — и малишс страничка готова; пользователи сабмиттят свои файлы от ms money бешеными темпами.
А вот общение между процессами (обращение к клипборду в том, числе) AppArmor не контроллирует, это делает PolicyKit + D-Bus. Тут тоже возможности скрипта можно ограничить.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Sinclair, Вы писали:
S>Я тебе привёл конкретный пример — веб-клиент к банку сохраняет куки, к которым получает доступ скрипт со странички "даунлоады варезов". S>После чего скрипт коннектится к сайту веб-клиента, и ты больше никогда не видишь своих денег.
Вообще, я думаю кто к чему имеет доступ в контексте приложения, браузера в данном случае, должен заботиться само приложение. Если бы система имела подобные механизмы, то тот же Хром мог бы ими воспользоваться.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Andrei F., Вы писали: AF>Идея — проста, реализация как всегда добавляет много мелких сложностей. Для тебя это новость?
Нет. Для меня новость — мысль о том, что можно предложить нереализуемую идею, и отказываться обсуждать детали. Таких стратегов, Сова, много. Нам тактик нужен. AF>Не увиливай от ответа. А то сдается мне, что число функций ты просто с потолка взял — чтобы выглядело пострашнее.
Вот тебе список категорий. http://msdn.microsoft.com/en-us/library/aa383686(VS.85).aspx
Там почти нет категорий, которым не нужна безопасность. Велкам.
AF>Расскажи-ка подробнее, что это за другие проекты по безопасности винды. Кроме UAC, естественно
Начнем с азов: http://en.wikipedia.org/wiki/Security_and_safety_features_new_to_Windows_Vista
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Pzz, Вы писали: Pzz>А надо ли отличать?
Надо.
S>>Как с достаточной надёжностью проверить стек? Как гарантировать, что злое приложение не передало в OpenFileDialog callback, который будет расположен ниже по стеку, чем OpenFileDialog, и получит все привилегии еще до того, как пользователь что-то там подтвердил?
Pzz>Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом.
Капитан Очевидность?
На досуге можно еще продумать, каким образом это будет работать без перекомпиляции всех существующих программ.
Еще раз намекну на то, что полная модель безопасности, о которой идет речь, была предложена еще черти когда. Увы — она плохо совместима с легаси кодом под виндой.
Это в линуксе можно себе позволить выпустить фичу, сломав обратную совместимость с чем угодно. Для коммерческой ОС так делать нельзя — съедят-с.
И еще раз намекну на то, что даже в полном виде описанная модель безопасности ничего не гарантирует. Математика всего лишь доказала для нее неуязвимость в том случае, если пользователь принимает много корректных решений и ни одного некорректного.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, March_rabbit, Вы писали:
AF>>>Это должно зависеть не от учетки, а от приложения. Например, приложение, которое запускается не из под Program Files — должно иметь пониженный набор привилегий. CC>>У меня например ВСЁ, что ставилось отдельно от самой ОС запускается не из Program Files. M_>а зачем? M_>Я игры ставлю в другое место, но весь софт?
Удобнее.
У меня к тому же на C кроме системы ничего не ставится.
И всякие дурацкие Application Data перенесены на другой диск.
M_>эх... кто бы убил авторов-разработчиков StarForce....
Один фиг я в переведенное не играюсь — "озвучкой" портят всю атмосферу.
Так что мне на них уже фиолетово.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Andrei F., Вы писали:
S>>Ну, в общем-то браузеры не совсем дураки пишут.
AF>А у меня временами сомнения закрадываются... сколько у них времени ушло, чтобы сделать нормальный рендеринг для drop-down? Вместо использования для этого win32 контрола?
Здравствуйте, Sinclair, Вы писали:
S>Нет. Для меня новость — мысль о том, что можно предложить нереализуемую идею
Для начала — перестань путаться в показаниях. То она у тебя принципиально нереализуемая, то бесполезная, то слишком дорогая.
S>Вот тебе список категорий. S>http://msdn.microsoft.com/en-us/library/aa383686(VS.85).aspx S>Там почти нет категорий, которым не нужна безопасность. Велкам.
Здравствуйте, DOOM, Вы писали:
DOO>А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров.
Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию.
Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже.
Или, другой пример, когда люди приносят мне веник что бы проверить каспером, это фигня а не эффективность ?
Здравствуйте, Ikemefula, Вы писали:
AF>>А у меня временами сомнения закрадываются... сколько у них времени ушло, чтобы сделать нормальный рендеринг для drop-down? Вместо использования для этого win32 контрола?
I> Вот про это поподробнее.
Уже много-много лет HTML drop-down в IE не рендерится как все остальные элементы, а вместо этого на нужное место подставлятся win32 combo box control. Убедиться в этом несложно с помощью Spy++, он показывает каждый дропдаун как отдельное окно — в отличие от других элементов HTML. Что создает немало проблем дизайнерам, и некоторые разработчики вместо стандартного дропдауна используют самодельный, на Javascript'e
Хотя в последнее время это кажется уже исправили. По крайней мере, в IE8 спай ничего лишнего не находит.
Здравствуйте, waricom-11, Вы писали:
W1>Мне кажется, не совсем корректно смешивать атаки технические, и атаки социальные. Защиту пользователя от самого себя сделать невозможно, и не нужно. То есть лох, он и есть лох. Лого виндовс нарисовано, ага... а на заборе х... написано, но там дрова лежат. С другой стороны, почему бы не добавить в task manager функцию, по определению, какой окно какому процессу принадлежит.
Окна видимого может и не быть. А может и вообще окна не быть, как в 90% случаев. Такая функция мало чем поможет.
Здравствуйте, Andrei F., Вы писали:
AF>Расскажи список категорий. AF>Кстати, интересная у тебя логика. Если в системе защиты можно найти хотя бы одну уязвимость — значит, лучше не делать защиту вообще. Гениально
Если ты сделаешь, допустим, одну мега защиту с одной единственой дырой, это значт все компы пользователей будут вскрыты в короткий момент через эту дыру.
Такое уже проходилось не раз и не два за всю историю эволюции вирусов всяких.
Победные песни здесь слышны уже где то с 80х когда дос был в моде. Время идёт а вирусов только множится, хотя дыры затыкаются со страшной скоростью.
Парадокс — дыр становится меньше, вирусов — больше.
Здравствуйте, Ikemefula, Вы писали:
I>Если ты сделаешь, допустим, одну мега защиту с одной единственой дырой, это значт все компы пользователей будут вскрыты в короткий момент через эту дыру.
То есть ты утверждаешь, что одна дыра — это хуже, чем много?
Здравствуйте, Andrei F., Вы писали:
KV>>?! А что же по-твоему тогда является основным источником малвари, сажаемой на машины беспечных домохозяек?
AF>Скачанные из инета файла. Аттачи в почте. Дырки в сетевых сервисах. AF>Я не прав?
Нет. То что ты говоришь это уже каменный век. Сейчас достаточно зайти на форум домохозяек какой, что бы незащищенная система получила трояна.
Первое что делают многие трояны — срубают каспера того же, используя уязвимости самого каспера.
AF>Но моя идея в общем-то не про это. Система не сможет помешать малвари попасть в систему — но она сможет свести к минимуму ущерб, который малварь сможет нанести данным пользователя.
Если отрубить руки пользователю имеющимися средствами, то уже сейчас все решаемо без переделки АПИ и переписывания программ юзающих прямо или косвенно этот апи.
Здравствуйте, Andrei F., Вы писали:
W1>>Уязвимости в браузере и в плагинах для браузера. Вот это основной источник.
AF>Ок. Злоумышленник хакнул браузер и получил доступ к файлам, которые доступны браузеру — его служебным файлам. Доступа к другим файлам у него нет. AF>Как минимум — это лучше, чем то что мы имеем сейчас.
Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ?
И с Офисом напримр, тож самое. Как здесь быть ?
Несложными операциями вроде SendMessage можно записать на диск и запустить exe-файл или подпатчить длл. При чем действия будут выполняться от имени процесса который будет иметь доступ нужный.
Здравствуйте, Andrei F., Вы писали:
AF>Не увиливай от ответа. А то сдается мне, что число функций ты просто с потолка взял — чтобы выглядело пострашнее.
Да количетсво функций это дело десятое. Но функции эти исопльзуеются в миллионах программ. Например SendMessage.
CreateProcess, CreateFile — это худо бедно можно контролировать, здесь антивирусы хоть как то справляютяс.
Здравствуйте, Ikemefula, Вы писали:
I>Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ? I>И с Офисом напримр, тож самое. Как здесь быть ?
С ограниченными правами браузера — ради бога, хоть вагоны всякой всячины.
I>Несложными операциями вроде SendMessage можно записать на диск и запустить exe-файл или подпатчить длл.
А кто сказал, что браузеру будет разрешено делать SendMessage в чужой процесс? Такие вещи даже современные антивирусы запрещают, хотя можно только догадываться — на какие ухищрения пришлось пойти разработчикам, чтобы этого добиться
Здравствуйте, Pzz, Вы писали:
S>>Как с достаточной надёжностью проверить стек? Как гарантировать, что злое приложение не передало в OpenFileDialog callback, который будет расположен ниже по стеку, чем OpenFileDialog, и получит все привилегии еще до того, как пользователь что-то там подтвердил?
Pzz>Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом.
Ну допустим, ты превратишь OpenFileDialog в эдакий клиент-сервер. В принципе, это даже сейчас кое-кае реализуемо.
В этом случае сервер должен будет или работать под своим профилем или под профилем вызывающего приложения.
Если под своим — то это сразу дыра, потому что есть проги которым нужна запись куда угодно.
Если под профилем вызывающего приложения, это тоже дыра, потому что есть вагон средств для управления окнами других процессов.
Тут надо глобально подходить — OpenFileDialog надо запускать не просто в отдельном процессе, а в отдельном десктопе или, что лучше, в отдельной WindowStation
Самое главное при этом — потратить вагон времени на тестирование что бы не дай бог какй то комбинация параметров не сорвала стек или самого OpenFileDialog или стек того, кто будет выполнять маршаллинг
Здравствуйте, dr.Chaos, Вы писали:
S>>Однако хитрые хлопцы показывали пример мата в два хода: сначала скрипт пишет путь к нужному файлу в клипборд, а потом в нужный момент делает ловкий paste в input type=file. В итоге пользователь отправляет совсем не тот файл, который он думал. Немного соц. инженерии — и малишс страничка готова; пользователи сабмиттят свои файлы от ms money бешеными темпами.
DC>А вот общение между процессами (обращение к клипборду в том, числе) AppArmor не контроллирует, это делает PolicyKit + D-Bus. Тут тоже возможности скрипта можно ограничить.
А чем ты будешь возможности SendMessage ограничивать ?
Здравствуйте, Cyberax, Вы писали:
I>>Когда будет разработан мега-процессор, который сможет шифровать любое количество данных за 1 такт процессора, так и будет. C>Какие проблемы-то? Шифрование данных "на лету" не добавляет существенной латентности к большинству дисковых операций (http://www.phoronix.com/scan.php?page=article&item=ubuntu_jaunty_encrypt&num=5). А твои фантазии, как обычно, к реальности отношения не имеют.
Ты, как обычно, прочитал ровно то что хотел прочитать.
Ты, по обыкновению, сначаа додумал, а потом храбро начал домыслы свои опровергать.
Я ничего про шифрование "на лету" не говорил.
Нужно защищать сам процесс, а не файлы на диске, который этот процесс создаёт, здесь твоё шифрование вообще смысла не имеет.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Ikemefula, Вы писали:
I>>Если ты сделаешь, допустим, одну мега защиту с одной единственой дырой, это значт все компы пользователей будут вскрыты в короткий момент через эту дыру.
AF>То есть ты утверждаешь, что одна дыра — это хуже, чем много?
Количество дыр в продукте совершенно неважно, коль скоро оно отлично от нуля, вообще-то Важны риски, которые несет за собой эксплуатация той или иной дыры.
Здравствуйте, Andrei F., Вы писали:
I>>Если нельзя похачить, значит ты обрезаешь на корню возможности этого диалога.
AF>С чего вдруг? Расскажи, какие возможности окажутся обрезаны и почему?
M_>>эх... кто бы убил авторов-разработчиков StarForce.... CC>Один фиг я в переведенное не играюсь — "озвучкой" портят всю атмосферу. CC>Так что мне на них уже фиолетово.
Ну вообще-то у них рынок за пределы РФ давно уж вылез...
I>Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию. I>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. I>Или, другой пример, когда люди приносят мне веник что бы проверить каспером, это фигня а не эффективность ?
Подробнее? Да пожалуйста — принесут тебе свежий авторан вирус, который каспер не распознает (база не вышла еще) и словишь. Потом тебе каспер будет нудно заявлять, что у тебя заражен explorer.exe, userinit.exe и т.п., но сделать ничего не сможет... И какой от него прок в этой ситуации?
А найти вирусы в пораженной системе не проблема и без каспера
И убрать их, кстати, тоже не проблема.
Здравствуйте, Andrei F., Вы писали:
I>>Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ? I>>И с Офисом напримр, тож самое. Как здесь быть ?
AF>С ограниченными правами браузера — ради бога, хоть вагоны всякой всячины.
Ну так зачем нужна твоя защита, если и сейчас можно ограничить пользователя в этом ?
I>>Несложными операциями вроде SendMessage можно записать на диск и запустить exe-файл или подпатчить длл.
AF>А кто сказал, что браузеру будет разрешено делать SendMessage в чужой процесс? Такие вещи даже современные антивирусы запрещают, хотя можно только догадываться — на какие ухищрения пришлось пойти разработчикам, чтобы этого добиться
Конкретно я хочу услышать как ты будешь бороться с SendMessage, COM. SendMessage, небось, тож в отдельный процесс вынесешь ?
Здравствуйте, Ikemefula, Вы писали:
I>Какие предложения есть по борьбе зловредным софтом пользующим этот SendMessage ? I>Хук на эту функцию очень сильно тормозит систему.
Если хук — наверно. Если контроль встроен в ОСь — не будет тормозить.
Здравствуйте, Ikemefula, Вы писали:
DOO>>А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров. I>Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию. I>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже.
Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил.
Здравствуйте, Ikemefula, Вы писали:
I>Ну так зачем нужна твоя защита, если и сейчас можно ограничить пользователя в этом ?
Ограничить от залезания в Documents самого же пользователя?
Ппц, ты хотя бы написанное почитай, не спрашивай одно и то же по десять раз.
I>Конкретно я хочу услышать как ты будешь бороться с SendMessage, COM. SendMessage, небось, тож в отдельный процесс вынесешь ?
Запретить отсылку сообщений в чужой процесс, если нет специального разрешения. Если эту проверку встроить на уровне ОСи — тормозить не будет.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, waricom-11, Вы писали:
W1>>Мне кажется, не совсем корректно смешивать атаки технические, и атаки социальные. Защиту пользователя от самого себя сделать невозможно, и не нужно. То есть лох, он и есть лох. Лого виндовс нарисовано, ага... а на заборе х... написано, но там дрова лежат. С другой стороны, почему бы не добавить в task manager функцию, по определению, какой окно какому процессу принадлежит.
I>Окна видимого может и не быть. А может и вообще окна не быть, как в 90% случаев. Такая функция мало чем поможет.
Тут где-то пробегало руководство по чтению текстов от Линор Горалик. Настоятельно рекомендую. А то вы не поняли контекст и пишете что-то странное.
Если у меня на экране есть непонятное окно, которое просит отправит смс, то с такой функциональностю я мог бы посмотреть, что за процесс вывел это окно, кто издатель, название, подпись. А потом уже решать — отправлять смс или бить тревогу.
Здравствуйте, Sinclair, Вы писали:
Pzz>>Ну очевидно же, надо вынести сам диалог в отдельный процесс, сведя функцию OpenFileDialog() к коммуникации с этим процессом. S>Капитан Очевидность? S>На досуге можно еще продумать, каким образом это будет работать без перекомпиляции всех существующих программ. S>Еще раз намекну на то, что полная модель безопасности, о которой идет речь, была предложена еще черти когда. Увы — она плохо совместима с легаси кодом под виндой.
Никто не мешает делать это постепенно. Скажем, Хром как раз так и начал делать — http://www.tomshardware.com/reviews/google-chrome-security,2271-3.html
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Ikemefula, Вы писали:
DOO>>>А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров. I>>Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию. I>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. C>Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил.
У нас недавно перешли на каспер на работе (кстати, пока мне ему предъявить нечего — я спокойно работал даже в то время, как он учинял полную проверку ФС) — он у меня тут же нашел типа "вирус" в explorer.exe — подозрительно 2 момента:
1. Не нарушена ЭЦП файла.
2. Никто не знает такой "вирус".
Короче, разиьбраться было лень — поскольку мне как раз пришел новый ноутбук, а так — осадок остался.
Здравствуйте, DOOM, Вы писали:
I>>Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию. I>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. I>>Или, другой пример, когда люди приносят мне веник что бы проверить каспером, это фигня а не эффективность ?
DOO>Подробнее? Да пожалуйста — принесут тебе свежий авторан вирус, который каспер не распознает (база не вышла еще) и словишь. Потом тебе каспер будет нудно заявлять, что у тебя заражен explorer.exe, userinit.exe и т.п., но сделать ничего не сможет... И какой от него прок в этой ситуации?
Т.е. это самый общий случай по твоему, раз эффективности нет ? Или, по твоему, старые вирусы(недельной давности) уже не страшны ?
DOO>А найти вирусы в пораженной системе не проблема и без каспера DOO>И убрать их, кстати, тоже не проблема.
Уже несколько лет это проблема. Степень внедрения троянов в систему только растёт.
Здравствуйте, Pzz, Вы писали:
I>>Самое главное при этом — потратить вагон времени на тестирование что бы не дай бог какй то комбинация параметров не сорвала стек или самого OpenFileDialog или стек того, кто будет выполнять маршаллинг
Pzz>Короче говоря, ничего сделать нельзя потому, что нельзя, и поэтому лучше и не пытаться. Я кто думает иначе, пусть читает "програмирование виндовс для чайноков" до полного просветления.
Написать можно почти всё что угодно.
Самое сложное — уложиться в определённый бюджет.
Это на форуме легко говорить. А на деле многие благие инициативы дохнут из за бюджета.
Здравствуйте, Andrei F., Вы писали:
I>>Потому что там есть вот это I>>LPOFNHOOKPROC lpfnHook;
AF>Как ты собираешься хачить, если посылать оконные сообщения в чужой процесс будет запрещено?
Вот я тебе и говорю — как ты сохранишь нынешний функционал, если собираешься запретить посылать оконные сообщеняи в другой процесс ?
Ты минимум половину приложение зарежешь только таким вот ограничением.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, DOOM, Вы писали:
DOO>>Деньги из кармана пользователей S>То-то и оно. DOO>>Это же рынок — еще пока формирующийся, но достаточно быстро растущий. S>Брр. Рынок чего? Средств индивидуальной защиты? Ну так если хочется иметь быстрорастущий рынок — то как бы глупо требовать от МС задавить его в зародыше выпуском своего решения.
Не индивидуальной. Это вполне себе корпоративный рынок.
И конкретные средства — Application Control. MS давно уже сделали первые шаги в этом направлении — "Политики ограниченного использования программ" в GPO и Windows Firewall, который фильтрует трафик в зависимости от приложения.
Кроме того, MS немного замахнулся и на контроль за обращением информации (RMS).
Вывод — движение есть, а говоря А, обычно говорят и Б — поэтому HIPS от MS с функцией контроля приложений (может быть даже интегрированный в ОС), на мой взгляд, не такая уж и фантастика.
DOO>>Тут примерно та же идея — то, что другие делают как хак, MS может встроить в систему аккуратно. S>Это совсем другой фиче-реквест, чем озвучен топикстартером.
Ну это детали.
DOO>>Почему? Ты потенциальную прибыль оценивал? S>Нет, оценивал потенциальный убыток.
Ну ты и убыток прикольно оценил.
Тогда я скажу — очевидно, что потенциальная прибыль весьма велика.
S>Очевидно, что затраты весьма велики. То есть речь не идет о паре функций на двадцать строк каждая. Очевидно, что потенциальных улучшений — кот наплакал.
Очевидно — то, что можно доказать очень легко и быстро, как тому, кто заявляет "очевидно", так и тому, кому заявляют. В твоем случае — не очевидно (для меня), поэтому будь добр — приведи доказательство твоего второго "очевидно".
Здравствуйте, Andrei F., Вы писали:
I>>Какие предложения есть по борьбе зловредным софтом пользующим этот SendMessage ? I>>Хук на эту функцию очень сильно тормозит систему.
AF>Если хук — наверно. Если контроль встроен в ОСь — не будет тормозить.
Т.е. мега-анализатор будет выполняться за 1 такт процессора ?
Здравствуйте, Cyberax, Вы писали:
DOO>>>А то, что система не дает 100% защиты — это не повод делать вывод, что она не нужна. Вон те же антивирусы — эффективность более чем сомнительна, а рынок — будь здоров. I>>Вот подробнее про это, а то я купил год назад Касперского и собираюсь покупать снова новую версию. I>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. C>Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил.
Я тоже так могу, но приходится посещать самые разны сайты и качать самый разный контент.
Хочешь развлекухи — пройдись под IE по форумам гд обитают подростки или домохозайки. Результаты сообщи сюда.
Здравствуйте, Ikemefula, Вы писали:
I>Т.е. мега-анализатор будет выполняться за 1 такт процессора ?
Никакой дополнительный анализатор не нужен, проверка свое/чужое окно в SendMessage уже есть. Ты и сам это поймешь, если попробуешь хоть на 5 минут включить мозг.
Ну и еще, для интереса — попробуй узнать, сколько тактов стоит вызов SendMessage. Полагаю, ты сильно удивишься.
Здравствуйте, Ikemefula, Вы писали:
I>Вот я тебе и говорю — как ты сохранишь нынешний функционал, если собираешься запретить посылать оконные сообщеняи в другой процесс ? I>Ты минимум половину приложение зарежешь только таким вот ограничением.
I>Т.е. это самый общий случай по твоему, раз эффективности нет ?
Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет.
I>Или, по твоему, старые вирусы(недельной давности) уже не страшны ?
Они не распространены — так что вероятность словить вирус недельной давности резко снижается.
Про страшны это отдельная песня — в принципе, большинство современных вирусов не страшно конечному пользователя
DOO>>А найти вирусы в пораженной системе не проблема и без каспера DOO>>И убрать их, кстати, тоже не проблема.
I>Уже несколько лет это проблема.
Поверь мне — это не проблема. Несколько служебных утилит и грамотный специалист — и никакой антивирус рядом не валялся по эффективности поиска.
I>Степень внедрения троянов в систему только растёт.
Ну что теперь делать... И мы не лыком шиты.
Здравствуйте, Andrei F., Вы писали:
I>>Ну так зачем нужна твоя защита, если и сейчас можно ограничить пользователя в этом ?
AF>Ограничить от залезания в Documents самого же пользователя?
Нет, запретить браузеру возможность использовать любые другие программы и вообще весь нежелательный функционал.
AF>Ппц, ты хотя бы написанное почитай, не спрашивай одно и то же по десять раз.
Внятного ответа не было.
I>>Конкретно я хочу услышать как ты будешь бороться с SendMessage, COM. SendMessage, небось, тож в отдельный процесс вынесешь ?
AF>Запретить отсылку сообщений в чужой процесс, если нет специального разрешения. Если эту проверку встроить на уровне ОСи — тормозить не будет.
Меня интересует сама эта проверка а не общие слова, что её надо реализовать.
Здравствуйте, waricom-11, Вы писали:
W1>Тут где-то пробегало руководство по чтению текстов от Линор Горалик. Настоятельно рекомендую. А то вы не поняли контекст и пишете что-то странное.
W1>Если у меня на экране есть непонятное окно, которое просит отправит смс, то с такой функциональностю я мог бы посмотреть, что за процесс вывел это окно, кто издатель, название, подпись. А потом уже решать — отправлять смс или бить тревогу.
Я и говорю "Окна видимого может и не быть".
Более того "может и вообще окна не быть"
это к случаю про чтение текстов.
Еще вариант — окно будет от известного процесса программы которая на хорошм счету.
Совсем не сложно подменить отсылаемую пользователем информацию или даже сделать это за него, потому что неясно, как же разделить интерактивную часть прложения от неинтерактивной.
Здравствуйте, Ikemefula, Вы писали:
I>Нет, запретить браузеру возможность использовать любые другие программы и вообще весь нежелательный функционал.
Если в браузере или плагине найдут дырку — получат полный доступ ко всем документам юзера. HIPS мог бы от этого защитить.
I>Меня интересует сама эта проверка а не общие слова, что её надо реализовать.
Не спрашивай одно и то же в разных ветках. Достали уже.
Здравствуйте, Ikemefula, Вы писали:
C>>Никто не мешает делать это постепенно. Скажем, Хром как раз так и начал делать — http://www.tomshardware.com/reviews/google-chrome-security,2271-3.html I>А с кем хром совместим ? С IE 5.5 который еще в строю ?
Поделись своим бредогенераторм, плиз.
Здравствуйте, Ikemefula, Вы писали:
I>>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. C>>Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил. I>Я тоже так могу, но приходится посещать самые разны сайты и качать самый разный контент.
Виртуалка.
I>Хочешь развлекухи — пройдись под IE по форумам гд обитают подростки или домохозайки. Результаты сообщи сюда.
А это ССЗБ.
Здравствуйте, Andrei F., Вы писали:
I>>Т.е. мега-анализатор будет выполняться за 1 такт процессора ?
AF>Никакой дополнительный анализатор не нужен, проверка свое/чужое окно в SendMessage уже есть. Ты и сам это поймешь, если попробуешь хоть на 5 минут включить мозг.
Вижу, ты свой слишком часто включаешь, надо дать остыть, а то у меня от твоих текстов экран плавится
AF>Ну и еще, для интереса — попробуй узнать, сколько тактов стоит вызов SendMessage. Полагаю, ты сильно удивишься.
Ты умеешь искать по форуму, то обнаружишь, что лет 5 назад я уже замерял это. Мне это надо было аккурат для работ связаных с майлварями, троянами и прочей пакостью.
Здравствуйте, Ikemefula, Вы писали:
AF>AF>Запретить отсылку сообщений в чужой процесс, если нет специального разрешения. Если эту проверку встроить на уровне ОСи — тормозить не будет. I>Меня интересует сама эта проверка а не общие слова, что её надо реализовать.
Здравствуйте, Ikemefula, Вы писали:
AF>>Никакой дополнительный анализатор не нужен, проверка свое/чужое окно в SendMessage уже есть. Ты и сам это поймешь, если попробуешь хоть на 5 минут включить мозг. I>Вижу, ты свой слишком часто включаешь, надо дать остыть, а то у меня от твоих текстов экран плавится
Договорились. Я пока отключаю, а ты включаешь. И думаешь-думаешь-думаешь.
I>Ты умеешь искать по форуму, то обнаружишь, что лет 5 назад я уже замерял это. Мне это надо было аккурат для работ связаных с майлварями, троянами и прочей пакостью.
Здравствуйте, DOOM, Вы писали:
I>>Т.е. это самый общий случай по твоему, раз эффективности нет ? DOO>Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет.
Я знаю и что ? Вирусы которые может цеплять IE не менее вредны, чем самые свежие экземпляры.
I>>Или, по твоему, старые вирусы(недельной давности) уже не страшны ? DOO>Они не распространены — так что вероятность словить вирус недельной давности резко снижается.
DOO>Про страшны это отдельная песня — в принципе, большинство современных вирусов не страшно конечному пользователя
Т.е. если вирус компьютреный не вызвал ядерный взрыв у тебя в комнат, значит не страшно ?
Я, например, не люблю тратить время на восстановление системы на компьютере жены, это слишком дорого, дешевле вызвать специалиста но и это дорого на мой взгляд.
I>>Уже несколько лет это проблема. DOO>Поверь мне — это не проблема. Несколько служебных утилит и грамотный специалист — и никакой антивирус рядом не валялся по эффективности поиска.
Это и есть проблема. Ты её хорошо описал — зависимость от служебных утилит и от специалистов высокого уровня.
А когда то хватало всего лишь редактора реестра и команды del в консоли.
Здравствуйте, Ikemefula, Вы писали:
I>Я, например, не люблю тратить время на восстановление системы на компьютере жены, это слишком дорого, дешевле вызвать специалиста но и это дорого на мой взгляд.
Открой для себя что-то вроде True Image...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Andrei F., Вы писали:
I>>А на деле многие благие инициативы дохнут из за бюджета.
AF>Благие инициативы редко дохнут из-за бюджета. Обычно они дохнут от плохого управления проектом.
Ага, грамотный менеджер наверняка сможет организовать работу комманды так, что они мега защиту сделают так быстро, что стоимость винды и стоимость переписывания вагонов софта будут стремиться к нулю.
Здравствуйте, Cyberax, Вы писали:
I>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. C>Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил.
Здравствуйте, Andrei F., Вы писали:
AF>Когда диалог закрывается — имя выбранного файла добавляется в список "разрешить доступ к файлам" для этого процесса
Это не обязательно. Вполне достаточно добавлять к имени файла какую-нибудь служебную инфу, при помощи какого-нибудь криптоустойчивого алгоритма...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Andrei F., Вы писали:
I>>Нет, запретить браузеру возможность использовать любые другие программы и вообще весь нежелательный функционал.
AF>Если в браузере или плагине найдут дырку — получат полный доступ ко всем документам юзера. HIPS мог бы от этого защитить.
Ты одно и то же талдычишь.
Повторяю вопрос
Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ?
И с Офисом напримр, тож самое. Как здесь быть ?
Сейчас напрмер офис интегрируется в браузер и наоборот. Всего этого надо пользователя лишить, что бы защить от взлома ?
I>>Меня интересует сама эта проверка а не общие слова, что её надо реализовать.
AF>Не спрашивай одно и то же в разных ветках. Достали уже.
Синклер уже сказал — стратегов пруд пруди, а хорошего сантехника днём с огнём не сыскать.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, DOOM, Вы писали:
I>>>Т.е. это самый общий случай по твоему, раз эффективности нет ? DOO>>Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет. I>Я знаю и что ? Вирусы которые может цеплять IE не менее вредны, чем самые свежие экземпляры.
И сколько их, на фоне остальных вирусов?
Вопрос был об эффективности — она невысока, потому что большая часть вирусов пройдет незамеченной.
I>>>Или, по твоему, старые вирусы(недельной давности) уже не страшны ? DOO>>Они не распространены — так что вероятность словить вирус недельной давности резко снижается.
DOO>>Про страшны это отдельная песня — в принципе, большинство современных вирусов не страшно конечному пользователя I>Т.е. если вирус компьютреный не вызвал ядерный взрыв у тебя в комнат, значит не страшно ?
Если вирус не нарушил работоспособность моего компьютера или не уничтожил мои данные, то это не страшно (для меня).
Таких вирусов — большинство. Единицы наносят умышленный вред и еще достаточно много наносят вред неумышленный, потому что у их авторов руки не из того места растут.
I>>>Уже несколько лет это проблема. DOO>>Поверь мне — это не проблема. Несколько служебных утилит и грамотный специалист — и никакой антивирус рядом не валялся по эффективности поиска. I>Это и есть проблема. Ты её хорошо описал — зависимость от служебных утилит и от специалистов высокого уровня.
Опять ты на какую-то другую тему переводишь. Я тебе сказал, что антивирус работает хуже специалиста — поэтому мне он вообще не нужен — больше проблем.
I>А когда то хватало всего лишь редактора реестра и команды del в консоли.
Хватает до сих пор. Только команда del уже в консоли восстановления — потому что механизм защиты файлов в Windows очень неплохо эксплуатируется малварью.
Но с autoruns, procexp и rootkitrevealer все делается проще и быстрее.
Здравствуйте, Andrei F., Вы писали:
AF>Если разработчику так сильно угодно искать проблемы на свою задницу — пусть не поленится и настроит дополнительные пути для временных и служебных файлов в конфиге системы защиты.
А как же обратная совместимость?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>Повторяю вопрос I>Сейчас браузер умеет запускать и использовать много всякой всячины через COM. Ты предлагаешь это обрезать ?
Повторяю ответ. Нет, не предлагаю.
I>Синклер уже сказал — стратегов пруд пруди, а хорошего сантехника днём с огнём не сыскать.
Это потому что требования выставляют как для стратегов, а зарплату — как для сантхеников.
Ни разу еще не видел объявления в духе "на работу требуются неприхотливые кодеры, которые согласны за недорого копаться во всем том г;№не которое мы тут накодили по ночам"
Здравствуйте, DOOM, Вы писали:
DOO>MS давно уже сделали первые шаги в этом направлении — "Политики ограниченного использования программ" в GPO и Windows Firewall, который фильтрует трафик в зависимости от приложения. DOO>Кроме того, MS немного замахнулся и на контроль за обращением информации (RMS).
Здравствуйте, Andrei F., Вы писали:
I>>Вот я тебе и говорю — как ты сохранишь нынешний функционал, если собираешься запретить посылать оконные сообщеняи в другой процесс ? I>>Ты минимум половину приложение зарежешь только таким вот ограничением.
AF>О каком конкретно функционале ты говоришь?
Функционал приложений которые используют возможности, которые ты собираешься разом обрезать. Одного Save-open диалог более чем достаточно.
Здравствуйте, Erop, Вы писали:
E>А как же обратная совместимость?
Конкретное решение зависит от того, кто именно любитель остренького — автор проги, который не следует гайдлайнам, или пользователь, которые ставит проги куда попало. Но в любом случае всё решается без поломки совместимости.
Здравствуйте, Ikemefula, Вы писали:
I>Функционал приложений которые используют возможности, которые ты собираешься разом обрезать. Одного Save-open диалог более чем достаточно.
Здравствуйте, Andrei F., Вы писали:
I>>Ты умеешь искать по форуму, то обнаружишь, что лет 5 назад я уже замерял это. Мне это надо было аккурат для работ связаных с майлварями, троянами и прочей пакостью.
AF>Если бы поиск работал — я бы так и сделал
Гуглом тебя не учили пользоватьяс вероятно. Сдётся, перегрев уже необратимый.
Здравствуйте, Erop, Вы писали:
I>>Я, например, не люблю тратить время на восстановление системы на компьютере жены, это слишком дорого, дешевле вызвать специалиста но и это дорого на мой взгляд.
E>Открой для себя что-то вроде True Image...
Ты хорошо понимаешь, что такой компьютер неграмотного пользователя прежде чем советовать ?
Здравствуйте, Erop, Вы писали:
E>Это не обязательно. Вполне достаточно добавлять к имени файла какую-нибудь служебную инфу, при помощи какого-нибудь криптоустойчивого алгоритма...
Здравствуйте, DOOM, Вы писали:
DOO>>>Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет. I>>Я знаю и что ? Вирусы которые может цеплять IE не менее вредны, чем самые свежие экземпляры. DOO>И сколько их, на фоне остальных вирусов?
Свежих на порядки меньше, чем тех что в строю. Это же очевидно. или ты думаешь вирусы появляются сами по себе, ррраз и наплодились сто тыщ миллионов ?
DOO>Вопрос был об эффективности — она невысока, потому что большая часть вирусов пройдет незамеченной.
Не бОльшая, а меньшая. Тех, что антивирус определяет, много больше тех, что появляются. Вирусы довольно долго в строю.
DOO>>>Про страшны это отдельная песня — в принципе, большинство современных вирусов не страшно конечному пользователя I>>Т.е. если вирус компьютреный не вызвал ядерный взрыв у тебя в комнат, значит не страшно ? DOO>Если вирус не нарушил работоспособность моего компьютера или не уничтожил мои данные, то это не страшно (для меня). DOO>Таких вирусов — большинство. Единицы наносят умышленный вред и еще достаточно много наносят вред неумышленный, потому что у их авторов руки не из того места растут.
Достаточно если вирус будет мой траффик использовать.
DOO>>>Поверь мне — это не проблема. Несколько служебных утилит и грамотный специалист — и никакой антивирус рядом не валялся по эффективности поиска. I>>Это и есть проблема. Ты её хорошо описал — зависимость от служебных утилит и от специалистов высокого уровня. DOO>Опять ты на какую-то другую тему переводишь. Я тебе сказал, что антивирус работает хуже специалиста — поэтому мне он вообще не нужен — больше проблем.
Это та же самая тема. Что бы вычищать вирус нужно понимать систему на том уровне, на котором этот вирус обитает.
Т.е. зависисисмость от софта для чистки и специалиста для несведущего, коих большинство.
были бы все такие, антивирусы и не появились бы в принципе.
I>>А когда то хватало всего лишь редактора реестра и команды del в консоли. DOO>Хватает до сих пор. Только команда del уже в консоли восстановления — потому что механизм защиты файлов в Windows очень неплохо эксплуатируется малварью. DOO>Но с autoruns, procexp и rootkitrevealer все делается проще и быстрее.
Вот это и есть зависимость от софта. Раньше за глаза хватало редактора реестра и команды del.
Здравствуйте, DOOM, Вы писали:
M_>>>эх... кто бы убил авторов-разработчиков StarForce.... CC>>Один фиг я в переведенное не играюсь — "озвучкой" портят всю атмосферу. CC>>Так что мне на них уже фиолетово. DOO>Ну вообще-то у них рынок за пределы РФ давно уж вылез...
Как вылез так и влез. Крику еще на западных форумах от благодарных игроков было...
С тех пор в буржуляндии в диком виде как то не попадается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Erop, Вы писали:
AF>>Если разработчику так сильно угодно искать проблемы на свою задницу — пусть не поленится и настроит дополнительные пути для временных и служебных файлов в конфиге системы защиты.
E>А как же обратная совместимость?
Здравствуйте, Cyberax, Вы писали:
C>>>Никто не мешает делать это постепенно. Скажем, Хром как раз так и начал делать — http://www.tomshardware.com/reviews/google-chrome-security,2271-3.html I>>А с кем хром совместим ? С IE 5.5 который еще в строю ? C>Поделись своим бредогенераторм, плиз.
Хрому без году неделя, где тут обратная совместимость и с чем ? и функционала в ём нет.
Здравствуйте, Cyberax, Вы писали:
I>>>>Каспер постоянно обрубает разные трояны которые сидят на страничках в инете ли в дистрибах оттудаже. C>>>Странно, а я сколько лет работаю без антивирусов, и до сих пор случайно ни одного вируса не словил. I>>Я тоже так могу, но приходится посещать самые разны сайты и качать самый разный контент. C>Виртуалка.
Я уже предложил это, ты опоздал. Вероятно домохозяйки одобрят такое решение.
I>>Хочешь развлекухи — пройдись под IE по форумам гд обитают подростки или домохозайки. Результаты сообщи сюда. C>А это ССЗБ.
А моя жена, представь, ходит на форумы домохозяек и вообще всякие разные форумы, где трояны и раскидываются, ибо контингент неграмотный.
Сравнивать домохозяйку и ИТ-специалиста тоьлко ты можешь.
Здравствуйте, Ikemefula, Вы писали:
I>Вот давай подробнее про bSpecialPermission, гд и как он будет устанавливаться.
Полный код только за деньги
Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой.
Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы.
I>Предложишь пользователю проставить права на все сообщения ?
Я бы это предложил разработчику. Например, веб-браузеру незачем отправлять оконные сообщения другим программам. Если это будет запрещено, то злоумышленник, даже взломав браузер, не сможет воспользоваться этой функцией для воздействия на другие программы.
I>Или спрашивать, "Приложение посылает сообщение WM_XXXXX. Разрешить ? Yes, No, Cancel"
Это было бы логичным развитием UAC.
Кстати, в Висте придумали Windows Integrity Mechanism. Во многом это похоже на обсуждаемую гипотетическую защиту.
Здравствуйте, Ikemefula, Вы писали:
I>ты вероятно плохо понимаешь как работает и как используется Open-Save диалог, раз предлагаешь вынести его в отдельный процесс.
Здравствуйте, LuciferSaratov, Вы писали:
I>>Вот давай подробнее про bSpecialPermission, гд и как он будет устанавливаться.
LS>Полный код только за деньги LS>Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой. LS>Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы.
AppArmor не занимается межпроцессными коммуникациями и в линуксе нет того, что в виндовсе делается через SendMessage.
LS>Я бы это предложил разработчику. Например, веб-браузеру незачем отправлять оконные сообщения другим программам. Если это будет запрещено, то злоумышленник, даже взломав браузер, не сможет воспользоваться этой функцией для воздействия на другие программы.
Теоретически это так. Но проверять надо не только процесс, но и поток и вообще весь контекст вызова.
И даже при идеальной защиты остаётся возможность взять и изменить профили используя легальные средства.
LS>Кстати, в Висте придумали Windows Integrity Mechanism. Во многом это похоже на обсуждаемую гипотетическую защиту.
Похоже, только никто её и не собирается применять тотально, для защиты от майлварей например.
Здравствуйте, Ikemefula, Вы писали:
I>>>А с кем хром совместим ? С IE 5.5 который еще в строю ? C>>Поделись своим бредогенераторм, плиз. I>Хрому без году неделя, где тут обратная совместимость и с чем ?
Причём тут обратная совместимость? Кто мешает MS загнать IE в такой же sandbox?
I>и функционала в ём нет.
Его уже больше, чем в IE...
Здравствуйте, Pzz, Вы писали:
I>>ты вероятно плохо понимаешь как работает и как используется Open-Save диалог, раз предлагаешь вынести его в отдельный процесс.
Pzz>А в чем проблема, чисто технически?
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Ikemefula, Вы писали:
I>>ты вероятно плохо понимаешь как работает и как используется Open-Save диалог, раз предлагаешь вынести его в отдельный процесс.
Pzz>А в чем проблема, чисто технически?
Некоторые его любят кастомизировать, поэтому обратной совместимости не станет.
Здравствуйте, Andrei F., Вы писали:
S>>Вот тебе список категорий. S>>http://msdn.microsoft.com/en-us/library/aa383686(VS.85).aspx S>>Там почти нет категорий, которым не нужна безопасность. Велкам.
AF>Bitmap, Brush, Button, Caret — можно читать почти подряд. Это доступ к ним ты предлагаешь ограничивать? AF>Я так и думал, что цифра с потолка.
гм. а ты не помнишь недавнюю уязвимость в GDI+ (если не ошибаюсь), когда ошибка в библиотеке работы с изображениями давала возможность выполнить произвольный код?
Здравствуйте, LuciferSaratov, Вы писали:
Pzz>>А в чем проблема, чисто технически?
LS>Некоторые его любят кастомизировать, поэтому обратной совместимости не станет.
Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ). Либо можно сделать отдельный интерфейс, позволяющий кастомизировать такие диалоги. При этом у программ, которые не понимают этот новый API, функционал не пострадает, а только внешний вид.
Здравствуйте, Ikemefula, Вы писали:
I>Ты хорошо понимаешь, что такой компьютер неграмотного пользователя прежде чем советовать ?
Да. Например компьютер моей мамы...
При загрузке можно нажать кнопочку и вернуть систему к состоянию на момент последнего слепка, или предпоследнего, и т. д...
Потом, на чистой системе запустить антивирус на остальные диски...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, March_rabbit, Вы писали:
M_>гм. а ты не помнишь недавнюю уязвимость в GDI+ (если не ошибаюсь), когда ошибка в библиотеке работы с изображениями давала возможность выполнить произвольный код?
Ну давала, ну и что? Права-то всё равно были бы ограничены правами приложения...
Насколько я понимаю, топикстартер рассматривает вообще ситуацию., что кто-то выкачал какое-то не то приложение циликом. И запустил его... Так что вопрос как какой-то код запустить у злоумышленников не стоит уже...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Cyberax, Вы писали:
I>>А моя жена, представь, ходит на форумы домохозяек и вообще всякие разные форумы, где трояны и раскидываются, ибо контингент неграмотный. I>>Сравнивать домохозяйку и ИТ-специалиста тоьлко ты можешь. C>Я бы лично вводил лицензирование для работы за компьютером...
Здравствуйте, Andrei F., Вы писали:
AF>Совместимость сломается.
Почему?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
I>>Я уже написал здесь трижды. Ну — дважды точно.
Pzz>Это про то, что SendMessage() можно слать кому угодно? Так мелкософт эту лавочку уже прикрыла
У меня вопрос, а ты сам прочел то ? Там почти что русским по белому написано.
Здравствуйте, Erop, Вы писали:
E>При загрузке можно нажать кнопочку и вернуть систему к состоянию на момент последнего слепка, или предпоследнего, и т. д... E>Потом, на чистой системе запустить антивирус на остальные диски...
Я в курсе. Она то осваивать не хочет, а я не люблю заниматься другими компами, мне своего хватает.
Здравствуйте, Ikemefula, Вы писали:
I>[...]и в линуксе нет того, что в виндовсе делается через SendMessage.
Прямой аналог есть — XSendEvent. Но то, что в Windows делается через SendMessage, в линуксе делается через DBUS.
Понятно, в Windows полно софта, активно использующего SendMessage() для целей, далеких от управления окнами. Интересно, как Windows Integrity Mechanism с этим обходится.
LS>>Кстати, в Висте придумали Windows Integrity Mechanism. Во многом это похоже на обсуждаемую гипотетическую защиту.
I>Похоже, только никто её и не собирается применять тотально, для защиты от майлварей например.
IE вроде бы (точно не знаю) защищают таким образом.
Здравствуйте, LuciferSaratov, Вы писали:
Pzz>>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ).
LS>Ну лично я всеми руками за — не люблю кривые программы. Однако много программ это используют и работать не будут, и многие пользователи не одобрят.
Ну это понятно, как делается. "Кривые программы" (т.е., программы, не использующие новый API), понижают в правах, и начинают постепенно закручивать гайки. Так, чтобы у пользователя сложилось впечатление, что эти программы глючат, но в разумных пределах. Это стимулирует авторов этих программ постепенно их переписывать. За неделю мир не изменишь, за несколько лет вполне можно.
AF> А кто сказал, что браузеру будет разрешено делать SendMessage в чужой процесс?
Не ну нифига себе. Ты предложил мне отказаться от расширения FoxyTunes? Ай, спасибо тебе, милчеловек.
AF> Такие вещи даже современные антивирусы запрещают, хотя можно только догадываться — на какие ухищрения пришлось пойти разработчикам, чтобы этого добиться
Это где они запрещают (проверил, FoxyTunes работает)
Здравствуйте, Andrei F., Вы писали:
AF>Что мешает Microsoft встроить в API ограничения, например — любое приложение по умолчанию имеет право писать на диск только в свой профиль в My Documents, или только в файлы с заданным расширением?
IMHO, хватило бы и меньшего: а именно, сильно ограничить круг программ, способных создавать исполняемые файлы (*.exe, *.dll, ...).
Здравствуйте, Pzz, Вы писали:
Pzz>Ну это понятно, как делается. "Кривые программы" (т.е., программы, не использующие новый API), понижают в правах, и начинают постепенно закручивать гайки. Так, чтобы у пользователя сложилось впечатление, что эти программы глючат, но в разумных пределах. Это стимулирует авторов этих программ постепенно их переписывать. За неделю мир не изменишь, за несколько лет вполне можно.
Их можно в песочнице запускать.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, Mamut, Вы писали:
M>Не всегда удобно. Это выльется в кастомный визард или в диалог, обходящий стандартный Open/Save диалог, и все ваши измышления про «стандартный системный диалог в отдельном процессе» пойдут лесом
На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
Здравствуйте, dr.Chaos, Вы писали:
Pzz>>Ну это понятно, как делается. "Кривые программы" (т.е., программы, не использующие новый API), понижают в правах, и начинают постепенно закручивать гайки. Так, чтобы у пользователя сложилось впечатление, что эти программы глючат, но в разумных пределах. Это стимулирует авторов этих программ постепенно их переписывать. За неделю мир не изменишь, за несколько лет вполне можно.
DC>Их можно в песочнице запускать.
Я это и имею ввиду. Совсем уж песочница не получится, поскольку это сломает некоторое количество существующих программ, но гаечки можно постепенно закручивать.
Здравствуйте, LuciferSaratov, Вы писали:
LS>Понятно, в Windows полно софта, активно использующего SendMessage() для целей, далеких от управления окнами. Интересно, как Windows Integrity Mechanism с этим обходится.
В том то и дело. Мне тоже интересно
I>>Похоже, только никто её и не собирается применять тотально, для защиты от майлварей например.
LS>IE вроде бы (точно не знаю) защищают таким образом.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ). Либо можно сделать отдельный интерфейс, позволяющий кастомизировать такие диалоги. При этом у программ, которые не понимают этот новый API, функционал не пострадает, а только внешний вид.
3. Кастомизированную часть сделать отдельным окном, которое отображается рядом с окном открытия файла. См например как сделано окно сохранения файлов в IrfanView. Так будет даже лучше — отделить мух от котлет.
Насколько я понимаю, кастомизированную часть создает ОСь по шаблону, а не сам клиентский код — значит, это изменение можно даже сделать прозрачно для клиентского кода.
Здравствуйте, LuciferSaratov, Вы писали: LS>Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой. LS>Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы.
Отлично. На всякий случай напомню, что кросс-процессный SendMessage используется в винде направо и налево. Например, такая банальная штука, как tray icon, реализована именно через них.
Стало быть, при установке программы explorer.exe, потребуется спец.файл, где сказано "тут можно обходить защиту на SendMessage". Пока что всё ок, но как только мы вспомним про плагины к эксплореру, которые выполняются в его адресном пространстве, то сразу станет понятно, почему я называю предложение топикстартера детским лепетом.
Злоумышленнику будет достаточно встать таким плагином — и сразу наступит счастье, потому что експлореру по долгу службы нужны права практически на всё.
Даже если не заморачиваться обратной совместимостью с существующими программами, эта проблема не имеет простого решения. А если заморачиваться — так и вообще труба.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, LuciferSaratov, Вы писали: LS>>Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой. LS>>Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы. S>Отлично. На всякий случай напомню, что кросс-процессный SendMessage используется в винде направо и налево. Например, такая банальная штука, как tray icon, реализована именно через них. S>Стало быть, при установке программы explorer.exe, потребуется спец.файл, где сказано "тут можно обходить защиту на SendMessage". Пока что всё ок, но как только мы вспомним про плагины к эксплореру, которые выполняются в его адресном пространстве, то сразу станет понятно, почему я называю предложение топикстартера детским лепетом. S>Злоумышленнику будет достаточно встать таким плагином — и сразу наступит счастье, потому что експлореру по долгу службы нужны права практически на всё.
Ну а если стать модулем winlogon'а, то ты еще и покруче админа будешь...
А если драйвером — дак вообще мега!
А вот если выводить сообщение, что вот тут какая-то непонятная штука мечтает стать расширением exlorer'а, у меня не зарегистрировано таких потенциальных расширений — вы поглядите в документацию или уточните у производителя нормально ли это. Разрешить регистрацию расширения (если не уверены нажмите "Нет").
И фокус по умолчанию на "Нет".
И конечно, профиль известных расширений должен модифицироваться групповыми политиками.
Вот тогда это будет работать.
Если ты мне сейчас начнешь говорить, что пользователи станут плеваться, то я напомню тебе про MS Outlook с его запретом на кучу разрешений, который не так-то просто отключить — пользователи колются, плачут, но продолжают утверждать, что лучше аутлука ничего нет (кстати, а этот поступок MS реально свел на нет заражения вирусами при помощи банальной рассылки исполняемых файлов).
Здравствуйте, Sinclair, Вы писали:
S>Пока что всё ок, но как только мы вспомним про плагины к эксплореру, которые выполняются в его адресном пространстве
А вот это, кстати, тоже интересный вопрос — с какого хрена они выполняются в его адресном пространстве? Наверно, тоже от большого ума разработчиков, которые решили что добавить пару пунктов в контекстное меню или показать кастомный оверлей у файла по другому никак нельзя.
Здравствуйте, DOOM, Вы писали: DOO>Ну а если стать модулем winlogon'а, то ты еще и покруче админа будешь...
Ну, свою GINA зарегистрировать не так, чтобы просто. Но делают и это — недавно лично наблюдал такую малварь. DOO>А если драйвером — дак вообще мега!
А ты как думал?
DOO>А вот если выводить сообщение, что вот тут какая-то непонятная штука мечтает стать расширением exlorer'а, у меня не зарегистрировано таких потенциальных расширений — вы поглядите в документацию или уточните у производителя нормально ли это. Разрешить регистрацию расширения (если не уверены нажмите "Нет"). DOO>И фокус по умолчанию на "Нет".
Прекрасная идея.
Для начала нужно убедиться, что регистрация расширения к эксплореру делается только через этот диалог. А не, к примеру, напрямую в реестр или еще куда. Это же опять вопрос про то, какой программе что можно разрешать, а что нельзя. На всякий случай напомню, что мы говорим о DLL, выполняемой в адресном пространстве сервиса windows installer. У которого, в соответствии с наивными задумками топикстартера, конечно же есть право на доступ в нужную ветку реестра (иначе вообще ничего поставить будет нельзя).
После того, как мы убедились, что сообщение всегда выводится, нужно проверить, что нет дыры в User, которая позволяет инсталлятору самостоятельно кликнуть в кнопку Ok, или дыры в GDI, позволяющей вывести текст "тут всё в порядке, просто ткните Ok" поверх мессадж бокса. Наивный топикстартер полагает, что функции работы с битмэпами не нуждаются в аудите безопасности, поэтому лично ему я бы разработку этой системы не доверил.
И только после всего этого я возьму, к примеру, TortoiseSVN, модифицирую ее злонамеренным образом, и распространю вперед и с пестней. И пользователь сам, добровольно разрешит мне зарегистрироваться в эксплорере и получить полный доступ ко всей системе.
Проблема понятна? Рекомендую почитать про то, как работает CAS. Подумать, почему он не ограничивается "именем и путём стартового файла процесса". Подумать, какими способами будут обходить CAS, когда он станет достаточно большой мишенью для злоумышленников.
DOO>И конечно, профиль известных расширений должен модифицироваться групповыми политиками. DOO>Вот тогда это будет работать.
Как я написал, это будет "работать" очень нескоро. Совсем не тогда, когда ты думаешь.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>А не, к примеру, напрямую в реестр или еще куда. Это же опять вопрос про то, какой программе что можно разрешать, а что нельзя. На всякий случай напомню, что мы говорим о DLL, выполняемой в адресном пространстве сервиса windows installer.
Любая попытка добавить в реестр запись нового shellext — только по явному разрешению пользователя.
А по хорошему, расширения оболочки вообще надо было вынести в отдельные процессы. Нельзя оставлять в безопасности такую дырень, через которую грузовик проедет.
S>Наивный топикстартер полагает, что функции работы с битмэпами не нуждаются в аудите безопасности, поэтому лично ему я бы разработку этой системы не доверил.
Pzz> M>Не всегда удобно. Это выльется в кастомный визард или в диалог, обходящий стандартный Open/Save диалог, и все ваши измышления про «стандартный системный диалог в отдельном процессе» пойдут лесом
Pzz> На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
Я же говорю, в таком случае многие приложения просто забьют на стандартный диалог Open/Save и будут реализовывать свои диалоги. Существующий расширяемый диалог Ope/Save тоже не с самого начала был И многие приложения реализовывали свои диалоги.
Здравствуйте, Andrei F., Вы писали:
AF>3. Кастомизированную часть сделать отдельным окном, которое отображается рядом с окном открытия файла. См например как сделано окно сохранения файлов в IrfanView. Так будет даже лучше — отделить мух от котлет.
Каким образом планируется взаимодействие этих частей? Каким образом это будет работать для тех случаев, где кастомизированная часть не расположена "рядом", а разбросана по диалогу?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Mamut, Вы писали:
M>Я вообще тебя не понимаю. Ты в первом сообщении задал вопрос: «что мешало МС реализовать мою мега-супер-крутую идею?» Тебе уже в сотне сообщений наглядно показали, что.
Не показали. Все указанные проблемы решаемы.
M> А ты продолжаешь всех считать лохами
Только некоторых. Тех, кто слишком любит песню "все хорошо, прекрасная маркиза"
M>МС — тупыми баранами
Вот здесь верно, да. При их огромных финансах количество откровенно убогих решений не может не поражать. Не знаю, что здесь виновато — синдром динозавра, asshole driven development или еще какая причина. Но факт есть.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, waricom-11, Вы писали:
I>Я и говорю "Окна видимого может и не быть". I>Более того "может и вообще окна не быть"
I>это к случаю про чтение текстов.
А неплохо бы посмотреть, на что я отвечаю. Было предположение, что если сделать разделение доступа на уровне программ, то зловреды начнут обманывать пользователя с помощью мимикрии, выдавая свое окно за чужое. Естественно, при таком варианте не удастся просто так влезть в чужой процесс и показать окно от его имени.
Вы все же на контекст ответа смотрите, ага.
AF> M>Я вообще тебя не понимаю. Ты в первом сообщении задал вопрос: «что мешало МС реализовать мою мега-супер-крутую идею?» Тебе уже в сотне сообщений наглядно показали, что.
AF> Не показали. Все указанные проблемы решаемы.
Угу, отрубанием руки и ног разработчикам и пользователям. Это — не решение
AF> M> А ты продолжаешь всех считать лохами AF> Только некоторых. Тех, кто слишком любит песню "все хорошо, прекрасная маркиза"
Здесь таких нет
AF> M>МС — тупыми баранами
AF> Вот здесь верно, да. При их огромных финансах количество откровенно убогих решений не может не поражать. Не знаю, что здесь виновато — синдром динозавра, asshole driven development или еще какая причина. Но факт есть.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, DOOM, Вы писали: DOO>>Ну а если стать модулем winlogon'а, то ты еще и покруче админа будешь... S>Ну, свою GINA зарегистрировать не так, чтобы просто. Но делают и это — недавно лично наблюдал такую малварь.
Совсем не обязательно GINA — "любимый" способ это notify extension.
DOO>>А вот если выводить сообщение, что вот тут какая-то непонятная штука мечтает стать расширением exlorer'а, у меня не зарегистрировано таких потенциальных расширений — вы поглядите в документацию или уточните у производителя нормально ли это. Разрешить регистрацию расширения (если не уверены нажмите "Нет"). DOO>>И фокус по умолчанию на "Нет". S>Прекрасная идея. S>Для начала нужно убедиться, что регистрация расширения к эксплореру делается только через этот диалог. А не, к примеру, напрямую в реестр или еще куда.
А то ж...
S>Это же опять вопрос про то, какой программе что можно разрешать, а что нельзя. На всякий случай напомню, что мы говорим о DLL, выполняемой в адресном пространстве сервиса windows installer. У которого, в соответствии с наивными задумками топикстартера, конечно же есть право на доступ в нужную ветку реестра (иначе вообще ничего поставить будет нельзя).
Ну вот это, конечно, не на пользу Windows Installer'у...
Кстати, а что правда все Custom Action выполняются в внутри сервиса Windows Installer, который работает с правами системы???? Зачем тогда отдельный процесс msiexec, к которому и цепляются во время отладки Custom Action? Ты ничего не путаешь?
S>После того, как мы убедились, что сообщение всегда выводится, нужно проверить, что нет дыры в User, которая позволяет инсталлятору самостоятельно кликнуть в кнопку Ok, или дыры в GDI, позволяющей вывести текст "тут всё в порядке, просто ткните Ok" поверх мессадж бокса. Наивный топикстартер полагает, что функции работы с битмэпами не нуждаются в аудите безопасности, поэтому лично ему я бы разработку этой системы не доверил.
Будем считать, что MS все это уже прошел во время проектирования UAC (правда не лучшим образом они это сделали).
S>И только после всего этого я возьму, к примеру, TortoiseSVN, модифицирую ее злонамеренным образом, и распространю вперед и с пестней. И пользователь сам, добровольно разрешит мне зарегистрироваться в эксплорере и получить полный доступ ко всей системе.
Ну сколько раз тебе говорили, что против непроходимой глупости не попрешь.
Представляешь, что было бы, если бы автомобилисты знать бы не желали ни о каких ПДД и ездили бы как угодно игнорируя даже собственный здравый смысл — смогли бы тогда разработчики автомобилей и строители дорог предложить адекватный (безопасный) способ организации движения?
Какое-то время назад в почте слали вирусы с сопроводительным текстом, что это Security Update — наивные люди ставили, но пора уж привыкнуть, что не надо верить всему, что тебе написали с сайта xxx-stuff.com
S>Проблема понятна? Рекомендую почитать про то, как работает CAS.
Почитал. Идея в общем-то напрашивалась со времен создания механизма управления правами сборок
DOO>>И конечно, профиль известных расширений должен модифицироваться групповыми политиками. DOO>>Вот тогда это будет работать. S> Как я написал, это будет "работать" очень нескоро. Совсем не тогда, когда ты думаешь.
Еще раз — это работает уже давно в корпоративном секторе. Нормально работает. Просто есть соответствующие инструменты.
Здравствуйте, Mamut, Вы писали:
M>Угу, отрубанием руки и ног разработчикам и пользователям. Это — не решение
Ты не читал или не понял. Что характерно, в этом топике я заметил только 2-3 человек, которые поняли идею. Все остальные упорно доказывают что это не нужно, или борются с ветряными мельницами, которые сами же придумали.
M>Здесь таких нет
AF>> Вот здесь верно, да. При их огромных финансах количество откровенно убогих решений не может не поражать. Не знаю, что здесь виновато — синдром динозавра, asshole driven development или еще какая причина. Но факт есть. M>Тоже неверно
Здравствуйте, Mamut, Вы писали:
AF>> I>Если нельзя похачить, значит ты обрезаешь на корню возможности этого диалога.
AF>> С чего вдруг? Расскажи, какие возможности окажутся обрезаны и почему?
M>Например, открой фотошоп и сделай Save As. Там есть куча опций для сохранения. Выполнены с помощью расширения aka хаченья стандартного диалога.
M>Как только ты обрежешь функциональность этого диалога, разработчики будут пиать собственные диалоги, и идея с «единым диалогом соханения файлов» накрывается медным тазом.
Или придется таки делать декларативный формат описания диалога. И API к нему. Уже давно пора, с 95 года мого времени прошло. Какая жалость, в нем нельзя будет делать
while(*dest++ = *src++)
и прочие битхаки, столь любимые дремучими хацкерами.
Здравствуйте, Hobot Bobot, Вы писали:
HB>Здравствуйте, waricom-11, Вы писали:
W1>>Если у меня на экране есть непонятное окно, которое просит отправит смс, то с такой функциональностю я мог бы посмотреть, что за процесс вывел это окно, кто издатель, название, подпись. А потом уже решать — отправлять смс или бить тревогу.
HB>В половине случаев это, натурально, будет c:\windows\system32\svchost.exe, издатель Microsoft, с подписью и круглой печатью. Будем отправлять СМС?
Здравствуйте, Andrei F., Вы писали:
AF> M>Угу, отрубанием руки и ног разработчикам и пользователям. Это — не решение
AF> Ты не читал или не понял. Что характерно, в этом топике я заметил только 2-3 человек, которые поняли идею. Все остальные упорно доказывают что это не нужно, или борются с ветряными мельницами, которые сами же придумали.
Твоя идея прекрасно понятна. Тебе напрямую отвечают на вопрос «почему МС не сделала то-то и то-то»
AF> AF>> Вот здесь верно, да. При их огромных финансах количество откровенно убогих решений не может не поражать. Не знаю, что здесь виновато — синдром динозавра, asshole driven development или еще какая причина. Но факт есть.
AF> M>Тоже неверно
AF> Это 100% факт.
Может, у тебя есть даже доказательства этого факта?
Кстати, ты уже ответил синклеру про проблемы с GDI?
Здравствуйте, waricom-11, Вы писали:
w> AF>> I>Если нельзя похачить, значит ты обрезаешь на корню возможности этого диалога.
w> AF>> С чего вдруг? Расскажи, какие возможности окажутся обрезаны и почему?
w> M>Например, открой фотошоп и сделай Save As. Там есть куча опций для сохранения. Выполнены с помощью расширения aka хаченья стандартного диалога.
w> M>Как только ты обрежешь функциональность этого диалога, разработчики будут пиать собственные диалоги, и идея с «единым диалогом соханения файлов» накрывается медным тазом.
w> Или придется таки делать декларативный формат описания диалога. И API к нему. Уже давно пора, с 95 года мого времени прошло. Какая жалость, в нем нельзя будет делать
w>
w> while(*dest++ = *src++)
w>
w> и прочие битхаки, столь любимые дремучими хацкерами.
Не понял. Как декларативный API здесь поможет? В случае, если такой API будет неудобным, ничто не мешает разработчику все равно сделать собственный диалог и записывать файл в обход стандартного OPen/Save диалога
Здравствуйте, Mamut, Вы писали:
M>Твоя идея прекрасно понятна. Тебе напрямую отвечают на вопрос «почему МС не сделала то-то и то-то»
Нормального ответа я не видел.
Сложности в реализации есть, но они все решаемы без негативных последствий.
M>Может, у тебя есть даже доказательства этого факта?
Легко. Расскажи — сколько лет у них ушло на то, чтобы сделать диалог open/save file изменяемого размера? Или может ты станешь доказывать, что это тоже неимоверно сложная задача?
M>Кстати, ты уже ответил синклеру про проблемы с GDI?
Какую конкретно проблему? С рисованием где угодно на экране? Решается точно так же — по умолчанию запретить выбирать этот магический битмэп в контекст, потому что обычным прогам это не нужно. Разрешать — по специальному указанию.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Sinclair, Вы писали:
S>>Ну, возможно стоило ознакомиться с законченными вариантами своей идеи? Или ты заранее отметаешь всё, что не ты придумал?
AF>А ты покажи мне нормально работающую реализацию HIPS для винды? Я даже сомневаюсь что ее можно создать кому-то, кроме самого Microsoft.
Symantec Endpoint Protection
При испытании на следующих атаках:
Тесты:
1) Попытка запустить браузер по умолчанию и изменить его в памяти перед выполнением;
2) Попытка создать поток в запущенной копии браузера;
3) Попытка создать поток в проводнике Windows;
4) Попытка запустить браузер по умолчанию внутри проводника Windows;
5) Попытка интеллектуального поиска ПО, имеющего доступ к сети Интернет, его запуск и изменение в памяти перед выполнением.
6) Попытка интеллектуального поиска ПО, имеющего доступ к сети Интернет, его запуск и добавление к нему собственного потока.
Был провален только тест №1.
Есть и еще куча реализаций — с разной степенью надежности.
Здравствуйте, Andrei F., Вы писали:
AF>Например, этот путь может выводиться в какой-нибудь отчет. Пользователи будут слегка удиивлены
Ну будут удивлены, и что?
Кроме того, например, при получении длинного имени эту штуку можно снимать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Mamut, Вы писали:
AF>> Легко. Расскажи — сколько лет у них ушло на то, чтобы сделать диалог open/save file изменяемого размера? Или может ты станешь доказывать, что это тоже неимоверно сложная задача? M>Как и любая аналогия, эта аналогия неверна
ппц это не аналогия, это просто факт глупого и неудобного решения, которое очень долго оставалось неисправленным.
общаться с тобой дальше не вижу смысла.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, DOOM, Вы писали: DOO>>А то ж... S> DOO>>Ну вот это, конечно, не на пользу Windows Installer'у... DOO>>Кстати, а что правда все Custom Action выполняются в внутри сервиса Windows Installer, который работает с правами системы???? Зачем тогда отдельный процесс msiexec, к которому и цепляются во время отладки Custom Action? Ты ничего не путаешь? S>Да, конечно, не все внутри сервиса. Но это непринцпиально — с точки зрения идеи "проверять путь к екзешнику" оба процесса совершенно равноправны — только один работает под правами пользователя, а другой — системы.
Прикопался ты к этому "проверять путь к exe-шнику"...
Даже у многих именитых тулзов это один из способов идентификации приложения.
S>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя.
Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
DOO>>Почитал. Идея в общем-то напрашивалась со времен создания механизма управления правами сборок S>Про анализ стека прочитал? Про расширяемые наборы привилегий?
Да почитал. Это тоже не ново. Те же привилегии всегда были расширяемы. Еще до .Net.
Про анализ стека почитал... Слишком тяжеловато, ИМХО, но для платформы, в которой можно менять все на лету, возможно, это единственный способ.
DOO>>Еще раз — это работает уже давно в корпоративном секторе. Нормально работает. Просто есть соответствующие инструменты. S>Есть у меня подозрение, что эти "соответствующие инструменты" работают ровно потому, что до них пока у малварщиков руки не дошли. Потому что количество инсталляций "дефолтной винды" на порядки больше, чем этой экзотики.
Поднять планку для малварщика это тоже достижение
Проактивная защита, на самом деле, должна защитить только от zero-day атак — дальше есть стандартные средства сигнатурного анализа, антифишинга и т.д. и т.п.
Безопасность — это не продукт, а процесс.
AF> M>Как и любая аналогия, эта аналогия неверна
AF> ппц это не аналогия, это просто факт глупого и неудобного решения, которое очень долго оставалось неисправленным.
Сорри. Здесь неправ, признаю
AF> общаться с тобой дальше не вижу смысла.
Ну, с тобой надо было прекратить общаться еще после первого же твоего сообщения. Потому что неудобные для тебя вопросы ты тупо игнорируешь.
Здравствуйте, Cyberax, Вы писали: C>Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение.
Что характерно, response times для почтовых приложений далеко не так важна, как для интерактивных. Кто там мерил, успеет ли QMail 300 раз в секунду обменяться данными с "фичей"? А в UI задержка при рисовании в полсекунды — уже упс.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, DOOM, Вы писали: S>>>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. DOO>>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера. S>Нормальный пользователь не знает название производителя. Ну-ка, навскидку, кто его делает? Пользователь будет гуглить, и возьмет первое, что похоже на правду.
Это и будет tortoise.tigris.org...
Было бы желание, что называется. Если продукт мало-мальски известный, то упоминаний о нем и его официальном сайте столько, что я не верю в возможность подменить их все.
DOO>>Про анализ стека почитал... Слишком тяжеловато, ИМХО, но для платформы, в которой можно менять все на лету, возможно, это единственный способ. S>Это единственный способ для любой платформы. Я уже и так и эдак намекал, что у кода, загруженного в процесс из кошерных DLL, может и должно быть больше привилегий, чем у "прикладного" кода.
Погоди — там явно написано, что операция разрешается, если у все функции стека вызова обладают нужной привилегией — я что-то пропустил про "кошерные" сборки?
S>Просто в неуправляемом случае применение этого способа сильно затруднено.
Вообще-то можно. Неуправляемая среда становится управляемой при любом системном вызове — просто дорого каждый раз в режим ОС обращаться...
DOO>>Поднять планку для малварщика это тоже достижение S>Я не согласен. Это как с DRM — вложили пять миллиардов долларов в защиту HD-DVD, и ее сломали через месяц после выхода. Вопрос: кто победил? Точнее, вопрос в том, кто проиграл — явно законные пользователи, у которых регулярно неиграет легально купленный контент. Ну и нахрена нам, Илюша, такие разборки (с) народ?
Стоп — защита от DRM для HD-DVD была идиотска тем, что там есть затраты только на первоначальный взлом — дальше не надо ни квалификации, ни вычислительных мощностей, ничего. Это плохая защита.
А если защита требует от малварщика не просто использовать мега-вирус-билдер, а что-то там еще нахимичить, то это таки снизит число кулхацкеров-вирусописателей.
Здравствуйте, Sinclair, Вы писали:
C>>Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение. S>Что характерно, response times для почтовых приложений далеко не так важна, как для интерактивных. Кто там мерил, успеет ли QMail 300 раз в секунду обменяться данными с "фичей"? А в UI задержка при рисовании в полсекунды — уже упс.
Может, qmail изначально создавался для работы с баааальшими mailing lists, и там пропускная способность весьма важна (кстати, Yahoo именно его использует для Yahoo Mail). Собственно, он работал даже быстрее монолитного sendmail — на вполне обычных машинах середины 90-х.
В общем, при должном желании плугины на процессы разделить вполне можно было, причём даже механизм COM для этого не пришлось бы менять — out-of-proc серверы там прекрасно поддерживаются.
Здравствуйте, Sinclair, Вы писали:
S>А куда подробнее? Пока что всё обсуждение сводится к диалогу типа такого:
Ты почти ничего не прочитал и еще меньше понял.
Моя идея — доступ к любой опасной функции в API нужно по умолчанию запретить. Опасные здесь — это те функции, которые позволяют прочитать или записать сенситивные данные (включая документы пользователя), вмешаться в работу чужого процесса, прописаться в автозагрузку и так далее. Если тебе очень хочется — некоторые функции, которые могут позволить ввести пользователя в заблуждение, тоже можно считать опасными.
Доступ в файловой системе — только к temp и папке служебных файлов, к остальным документам — по специальному разрешению пользователя. Таким разрешением можно считать использование системного диалога открыть/сохранить файл. Доступ в реестре — только к тем веткам, которые нужны приложению для работы.
Таким образом, каждое приложение будет посажено в камеру с бронированными стенами, зарешеченными окнами и охранником, который при подозрительной активности будет сначала проверять по справочнику "можно или нет", потом спрашивать хозяина, а если он не разрешит — делать предупредительный выстрел в голову заключенному.
Важно понимать, что доступ к каждой опасной возможности можно включать или выключать независимо для каждой возможности и каждого приложения в отдельности. Набор разрешений для каждого приложения хранится в специальном файле, который мы будем называть манифестом безопасности. Такие манифесты могут быть созданы производителем системы защиты для стандартных категорий приложений и должны покрыть процентов 50 приложений — которые были написаны по гайдлайнам.
Также нужны vendor-defined манифесты — для более кривых программ. Здесь вероятно потребуется организация, которая будет проверять манифесты (чтобы не разрешали слишком много) и ставить цифровую подпись.
Приложение, которое имеет манифест одного из этих двух типов — получает красивый сертификат "Приложение повышенной безопасности", которое вывешивается на сайте производителя и коробке с продуктом, и дает производителю +50% merchant skill.
Приложение, у которого такого манифеста не будет — вероятно, не сможет работать.
Здесь понадобятся user-defined манифесты. Пользователь может вообще отключить любые ограничения, если очень доверяет производителю. Здесь хочется сделать ремарку, что если пользователь полный дурак и при этом имеет админские права, и на все вопросы отвечает "разрешить" — то защитить его систему невозможно в принципе, поэтому такую задачу мы рассматривать не будем.
Здесь еще остается много вопросов по надежному распространению манифестов приложений, безопасной установке программ, и т.д. и т.п. Но детальное решение этих вопросов — работа совсем другого объема, которая никак не укладывается в рамки форумной болтовни.
И большая просьба — сделай усилие, постарайся воздержаться от хамства. Я уверен, у тебя получится.
Здравствуйте, Sinclair, Вы писали:
S>Это и есть социальные ограничения — если вы сделаете супернадёжную дверь с семью замками, через которую нужно постоянно ходить туда-сюда, то пользователи просто заклеят замки скотчем. Потому что невозможно иначе работать.
Я не предлагаю супернадежную дверь с семью замками. Я предлагаю хоть один замок повесить. Вас же не смущает каждый раз отпирать/записать свою входную дверь. Или вы держите ее нараспашку?
Возможно, такую штуку достаточно сделать только для программ, работающих с сетью. Все равно, все взломы и утечки происходят в основном через них.
Здравствуйте, Mamut, Вы писали:
Pzz>> На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
M>Я же говорю, в таком случае многие приложения просто забьют на стандартный диалог Open/Save и будут реализовывать свои диалоги. Существующий расширяемый диалог Ope/Save тоже не с самого начала был И многие приложения реализовывали свои диалоги.
Так стандартный диалог должен не только зачаровывать пользователя своей неземной красотой , но еще и права открывать файл предоставлять. И это должен быть единственный способ для программы получить права что-нибудь сделать с файлом за пределами собственной песочницы.
Здравствуйте, Mamut, Вы писали:
Pzz>> На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
M>Я же говорю, в таком случае многие приложения просто забьют на стандартный диалог Open/Save и будут реализовывать свои диалоги. Существующий расширяемый диалог Ope/Save тоже не с самого начала был И многие приложения реализовывали свои диалоги.
Так стандартный диалог должен не только зачаровывать пользователя своей неземной красотой , но еще и права открывать файл предоставлять. И это должен быть единственный способ для программы получить права что-нибудь сделать с файлом за пределами собственной песочницы.
Здравствуйте, swined, Вы писали: S>с превью есть проблема — оно нужно в момент выбора файла и должно присутствовать в том самом диалоге. впрочем его можно добавить в системный диалог системными же средствами (в редком превью есть что-то мегакастомное). других же важных фич в этом окне я что-то не могу придумать, так что пока все выглядит вполне реализуемо
А ты запусти офис или Visual Studio. Там, к примеру, кнопка Save расширена всякими полезностями. И вообще, штатный способ расширения системных диалогов — самому гонять модальный message loop. А это, фактически, полный контроль над системной частью — в том числе и подделка пользовательских кликов. Обрежешь эту возможность — перестанут работать многие приложения.
Читать http://msdn.microsoft.com/en-us/library/ms646951(VS.85).aspx до просветления. Особенно тем, кто думает, что это легко починить обратно совместимым образом, да еще без дыр.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали:
DOO>>>>>Да. Почитай любую аналитику — эпидемии происходят в первые 24 часа "выхода" вируса в свет. I>>>>Я знаю и что ? Вирусы которые может цеплять IE не менее вредны, чем самые свежие экземпляры. DOO>>>И сколько их, на фоне остальных вирусов?
I>>Свежих на порядки меньше, чем тех что в строю. Это же очевидно. или ты думаешь вирусы появляются сами по себе, ррраз и наплодились сто тыщ миллионов ? DOO>Это заблуждение. После выхода сигнатур вирус практически вымырает — остается несколько экземпляров, которые иногда где-то проявляются, но никаких эпидемий уже нет и быть не может. DOO>Я же тебе говорил — почитай аналитику от антивирусников.
Неужели роботы, которые раскладывают вирусы по сайтам, настолько аккуратные что после выхода сигнатур подчищают сайты ?
Или зараженные компы безо всяких антивирусов сразу становятся чистыми после выхода сигнатур ?
Вот чудеса — вышли сгнатуры и все стало чисто, вот уж не знал, не знал.
ну ка, давай аналитику, поглядим вместе
DOO>Надо смотреть не тех, что он определяет, а тех, что способны реально заразить твой компьютер. Допустим, твой антивирус обнаружил MSBlast — и что с того? Думаю, у тебя SP2 хотя бы стоит, а там все нужные заплатки уже имеются.
Вероятно ты мне хочешь чтото рассказать на тему, что же я вижу каждую неделю в касперском своём ?
Какая мне разница, когда вышел вирус, если касперский сообщает о нём ? Неужели вирусы стали такие честные, что работают недельку и отключаются ?
I>>Это та же самая тема. Что бы вычищать вирус нужно понимать систему на том уровне, на котором этот вирус обитает. I>>Т.е. зависисисмость от софта для чистки и специалиста для несведущего, коих большинство. DOO>Однако когда подвел софт все равно нужен спец (или переустановка).
В том то и дело, что проблема существует а магической кнопки нет. А ты говоришь, что проблемы нет.
I>>были бы все такие, антивирусы и не появились бы в принципе. DOO>Золотые слова...
Ну да. Прикинь, все разом кинутся изучать компьютеры и операционные системы.
Зачему учиться на врача-кардиолога ? Лучше стать компьютерщиком и вирусов не будет в компьютере.
I>>Вот это и есть зависимость от софта. Раньше за глаза хватало редактора реестра и команды del. DOO>Еще раз: этого хватает до сих пор. НО вышеперечисленные утилиты процесс облегчают.
Я в курсе, что облегчают. Только сейчас ты с этими утилитами тратишь времени столько же, как раньше я тратил на редактор реестра и команду del.
Разумеется, если бы да кабы, взять да переслать в прошлое имеющиеся утилиты да сравнить, том в прошлом,то безусловно, они бы там, в прошлом, зарулили бы редактор реестра и del в минуса.
Здравствуйте, waricom-11, Вы писали:
I>>Я и говорю "Окна видимого может и не быть". I>>Более того "может и вообще окна не быть"
I>>это к случаю про чтение текстов.
W1>А неплохо бы посмотреть, на что я отвечаю. Было предположение, что если сделать разделение доступа на уровне программ, то зловреды начнут обманывать пользователя с помощью мимикрии, выдавая свое окно за чужое. Естественно, при таком варианте не удастся просто так влезть в чужой процесс и показать окно от его имени. W1>Вы все же на контекст ответа смотрите, ага.
Просто или не просто, проведет автор трояна за работой час или неделю, разницы для тебя нет.
Здравствуйте, Sinclair, Вы писали:
S>Я всё прочитал, и понял даже больше, чем ты написал. У меня есть ответы на те вопросы, на которые ты еще не ответил, и вопросы к тем ответам, и следующий раунд ответов и вопросов тоже.
Убавь немного градус понтов, а то глаз режет.
S>Хочешь запретить опасные функции — будь любезен придумать способы предотвращения обхода этих ограничений.
Все опасные функции запрещены. Внутри каждой проверка — разрешено данному приложению вызывать эту функцию или нет. Если не разрешено — получай E_ACCESSDENIED.
Расскажи, как и что здесь можно обойти?
S>Это, как уже обсуждалось, плохо реализуется на практике.
Прекрасно реализуется. Или проблема с превью — это для тебя непреодолимое препятствие?
S>Прекрасно. Как мы уже увидели, per-application manifest совершенно недостаточны. Либо весь функционал WinAPI нужно выносить в отдельные процессы
Бред. Зачем?
S>Здесь хочется сделать ремарку, что 100% приложений в начале предлагаемой эпопеи попадут в эту категорию.
Только те, которые не уложатся в стандартные профили. Теперь я вижу, насколько внимательно ты читал
Здравствуйте, Sinclair, Вы писали:
C>>Более того, механизм для out-of-proc плугинов в Винде уже тогда был реализован и успешно работал ещё со времён 16-битных систем. Называется "OLE". S>А напомни-ка мне, пожалуйста, какой будет startup path у процесса, в котором будет поднят плагин, если его активировать out-of-proc?
Процесс с плугином запускается, запускает COM-сервер, регистрирует свою фабрику объектов. Затем подсистема OLE создаёт нужный объект и занимается маршаллингом вызовов.
S>А то OLE, как я его вижу сейчас — по прежнему запускает целое отдельное приложение (а не махонькую DLL), и работает с тормозами и глюками даже на моей современной машине. К счастью, нужен он раз в вечность, поэтому я терплю. А вот если бы так же работал Windows Explorer, то я бы наверное сейчас был мак-девелопером.
Это уже зависит от того, как сделано приложение. Обычно просто в OLE приложения-серверы достаточно большие.
Но ничто не мешает:
1) Сделать немного более легковесный механизм для плугинов (тот же стандарт ActiveX доработать, добавив поддержку out-of-proc).
2) Писать небольшие и быстрые плугины. Когда я занимался OLE, моё приложение в Word'е запускалось мгновенно, без всяких тормозов.
Здравствуйте, Pzz, Вы писали: Pzz>Я не предлагаю супернадежную дверь с семью замками. Я предлагаю хоть один замок повесить. Вас же не смущает каждый раз отпирать/записать свою входную дверь. Или вы держите ее нараспашку?
Нет, не держу. Но я и балконную дверь открытой не держу. С другой стороны, когда иду выкинуть мусор, я не запираю дверь на ключ. А ваш "хоть один замок" либо ничего не защищает, либо много требует от пользователей, либо от производителей софта, либо от всех троих вместе взятых.
Pzz>Возможно, такую штуку достаточно сделать только для программ, работающих с сетью. Все равно, все взломы и утечки происходят в основном через них.
Это мы всё уже проходили. Недостаточно.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Более того, механизм для out-of-proc плугинов в Винде уже тогда был реализован и успешно работал ещё со времён 16-битных систем. Называется "OLE". S>А напомни-ка мне, пожалуйста, какой будет startup path у процесса, в котором будет поднят плагин, если его активировать out-of-proc?
Кстати, такой механизм ещё был реализован в Windows NT для изоляции подсистем. Тоже всё вполне жило нормально.
Здравствуйте, Sinclair, Вы писали:
C>>Процесс с плугином запускается, запускает COM-сервер, регистрирует свою фабрику объектов. Затем подсистема OLE создаёт нужный объект и занимается маршаллингом вызовов. S>Да? А мне тут Andrei F только что рассказывал, что достаточно флажок у CoCreateInstance в explorer.exe поменять, и всё волшебным образом заработает.
Это для клиента совершенно верно. Где там будет запущен сервер — забота механизма COM, именно он и запускает процесс и ждёт создания фабрики классов.
Ну и, естественно, для требуемого интерфейса должен быть настроен маршаллинг (либо дефолтный OLE-шный, либо DCOM'овский, либо свой).
C>>1) Сделать немного более легковесный механизм для плугинов (тот же стандарт ActiveX доработать, добавив поддержку out-of-proc). S>О-о, начинается. Да, вот бы нам машину времени и обратно в 1989, чтобы успеть войти в совет директоров MS. И денег надо с собой взять не забыть — чтобы оплатить доработку стандарта ActiveX.
Так ты опять забываешь, что OLE работал ещё в 16-битной Win 3.11 в 92-м году. К 98-му году ничего не мешало технологически сделать защищённый IE и более защищённое API.
Просто тогда MS о безопасности не думал ВООБЩЕ. Чего только одно автоматическое выполнение макросов из писем в Outlook'е стоило. Это вот и есть реальная причина.
S>Ну, и желательно не забыть диск с Visual Studio 2008, потому что средства разработки COM в 1991 году были, мягко говоря, так себе. А, ччёрт, там же еще нет нормальных машин, чтобы студия взлетела! Короче, придется брать сразу весь ноут. Вот Гейтс охренеет, когда я ему Win7 RC покажу!
Я ещё пример вспомнил — микроядерный QNX. Он как раз в конце 80-х был основан, и к середине 90-х запросто держал системы с кучей процессов-серверов (там микроядро было что-то в районе 12Кб кода). Так что, видимо, кто-то так уже сделал.
Здравствуйте, Cyberax, Вы писали:
C>Я ещё пример вспомнил — микроядерный QNX. Он как раз в конце 80-х был основан, и к середине 90-х запросто держал системы с кучей процессов-серверов (там микроядро было что-то в районе 12Кб кода). Так что, видимо, кто-то так уже сделал.
Здравствуйте, Sinclair, Вы писали:
S>Я уже рассказал. Не один раз. Дупа в том, как устроен алгоритм этой проверки.
Какой, к черту, алгоритм?
HRESULT SomeDebuggingApiFunction()
{
if (!manifestAllowsDebuggingApi)
{
SetLastError(ERROR_ACCESS_DENIED);
return E_FAIL;
}
// do work
}
Сэндбокс для процесса, доходит до тебя? Сэндбокс!!
S>Затем, что Open Dialog, работая в твоём процессе, будет точно так же побрит, как и само приложение.
Уже давно и не один раз было предложено запускать его в отдельном процессе. Ты явно вообще ничего не читал. Хитрые кастомизации — да, это проблема. Но это точно не showstopper.
S>О байт. Всё, это последний пост.
Pzz> Так стандартный диалог должен не только зачаровывать пользователя своей неземной красотой , но еще и права открывать файл предоставлять. И это должен быть единственный способ для программы получить права что-нибудь сделать с файлом за пределами собственной песочницы.
И как только ты обрежешь до нуля его возможности, он никому нафиг не будет нужен
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Andrei F., Вы писали:
I>>>Я настаиваю на существовании вот такого парадокса — при уменьшении количества дыр количество вирусов возрастает.
AF>>Феерический бред
I>Предствь себе, когда XP выходила в ней было в разы больше дыр, ажно эпидемии случались вроде msblast.
I>С тех пор дыр было зафикшено ажно трмя сервиспаками, а вирусов можшь глянуть у Касперского. Эпидемии уже не случаются, но тем не менее количество вирусов растёт.
I>Или ты хотел сказать, что сервиспаки ничего не фиксили ?
с тех пор были не только пофикшены баги, но и добавлены фичи. с новыми багами.
Здравствуйте, Cyberax, Вы писали: C>Это для клиента совершенно верно. Где там будет запущен сервер — забота механизма COM, именно он и запускает процесс и ждёт создания фабрики классов.
Ну вот мне и непонятно. То есть имеем зарегистрированный в системе плагин, который живёт в рамках DLL с фабрикой классов. При обычной активации COM загрузит эту DLL в адресное пространство процесса и сделает всё как надо. Что за процесс будет запущен, если попытаться создать экземпляр out-of-proc?
C>Так ты опять забываешь, что OLE работал ещё в 16-битной Win 3.11 в 92-м году. К 98-му году ничего не мешало технологически сделать защищённый IE и более защищённое API.
Ты опять забываешь, что Windows Explorer в win95 к 1998му году уже был четыре года как выпущен. Для того, чтобы обеспечить секьюрный API с приемлемой производительностью, нужно вернуться не в 98, а в 89.
C>Просто тогда MS о безопасности не думал ВООБЩЕ. Чего только одно автоматическое выполнение макросов из писем в Outlook'е стоило. Это вот и есть реальная причина.
Да, это вторая причина. Низкая выручка + высокая себестоимость.
C>Я ещё пример вспомнил — микроядерный QNX. Он как раз в конце 80-х был основан, и к середине 90-х запросто держал системы с кучей процессов-серверов (там микроядро было что-то в районе 12Кб кода). Так что, видимо, кто-то так уже сделал.
Угу. Осталось посмотреть на настольную ось на основе QNX, дружелюбную для пользователя и прикладного разработчика.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
DOO>>Ну а если стать модулем winlogon'а, то ты еще и покруче админа будешь... S>Ну, свою GINA зарегистрировать не так, чтобы просто.
кинуть дллку и нагадить ключиком в реестр. что может быть проще? ограничений на расположение дллки нет — можно класть хоть в темп, а это явно можно всем.
Здравствуйте, swined, Вы писали:
I>>Предствь себе, когда XP выходила в ней было в разы больше дыр, ажно эпидемии случались вроде msblast.
I>>С тех пор дыр было зафикшено ажно трмя сервиспаками, а вирусов можшь глянуть у Касперского. Эпидемии уже не случаются, но тем не менее количество вирусов растёт.
I>>Или ты хотел сказать, что сервиспаки ничего не фиксили ?
S>с тех пор были не только пофикшены баги, но и добавлены фичи. с новыми багами.
Здравствуйте, Sinclair, Вы писали:
S>Что характерно, response times для почтовых приложений далеко не так важна, как для интерактивных. Кто там мерил, успеет ли QMail 300 раз в секунду обменяться данными с "фичей"? А в UI задержка при рисовании в полсекунды — уже упс.
время реакции, возможно, не так важно, но пропускная способность — чуть более, чем полностью.
Здравствуйте, swined, Вы писали: S>кинуть дллку и нагадить ключиком в реестр. что может быть проще? ограничений на расположение дллки нет — можно класть хоть в темп, а это явно можно всем.
Там вроде права на реестр достаточно жесткие в этом месте. Но я уже не уверен — я с GINA с 2003 года вообще не сталкивался. Хотя вот, недавно была малварь, которая это сделала.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, swined, Вы писали:
S>Здравствуйте, DOOM, Вы писали:
S>>>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. DOO>>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
S>неужели ты ни разу не встречал малвари на корпоративных файловых серверах?
На нормальных серверах — нет. Современная малварь своими спам рассылками (даже неудачными) создает такой трафик, что вычисляют ее быстро, а потом методично изничтожают.
Это уж верх раздолбайства какой-то, если в корпоративе спокойно ходят вирусы по корпоративным ресурсам.
Здравствуйте, Cyberax, Вы писали: C>Так что тут как раз всё банально — COM сам знает что ему там надо запустить, эта информация вносится в реестр при регистрации сервера. А дальше уже чисто вопросы маршаллинга, который всё равно должен выполняться, так как IE (AFAIR) использует апартаментную модель.
Так что тут как раз опять всё банально — запустить старые плагины, написанные для in-proc модели, как out-of-proc не получится. Производитель должен их пересобрать.
C>О каком Explorer'е идёт речь? О том, который ходит по каталогам на диске?
Совершенно верно, именно о нём и идет речь с самого начала. C>Так там особо ничего до Win98 и не было опасного, это просто было обычное локальное приложение.
А сейчас это — самое опасное приложение. И TortoiseSVN, которого я выбрал жертвой атаки, интегрируется именно с ним. И именно in-proc. А некоторые чрезмерно обидчивые люди до сих пор не понимают, в чём тут опасность. Несмотря на то, что я схему атаки расписал по шагам.
S>>Угу. Осталось посмотреть на настольную ось на основе QNX, дружелюбную для пользователя и прикладного разработчика. C>Я примерно тогда пробовал знаменитую QNX Floppy — на один 3.5" диск помещалась ОС с графической оболочкой, поддержка Dial-up и простой браузер (!!). Вот тут скриншоты есть: http://toastytech.com/guis/qnxdemo.html Я пробовал и полную ОС, там у них Photon GUI вполне себе ничего был, наравне с остальными ОС тогда.
Прикольно. Что ж она не выжила-то, раз она такая прикольная была? Наверное, были другие недостатки, которых не было у архитектурно ужасной win95.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, swined, Вы писали:
S>время реакции, возможно, не так важно, но пропускная способность — чуть более, чем полностью.
Чё? Я ж говорю — throughput для интерактивных приложений можно и пониже. Главное — response time.
Есть известная байка про то, что когда команда MS VC++ увеличила частоту обновления цифер "прогресс компиляции" в диалоге, объективная скорость компиляции упала. А воспринимаемая — выросла. Только после этого прекратились жалобы на "ваш компилятор медленно компилирует".
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали:
DOO>На нормальных серверах — нет. Современная малварь своими спам рассылками (даже неудачными) создает такой трафик, что вычисляют ее быстро, а потом методично изничтожают. DOO>Это уж верх раздолбайства какой-то, если в корпоративе спокойно ходят вирусы по корпоративным ресурсам.
однако я б не удивился, если бы по недосмотру зараженные дистрибы оказались на корпоративном фтп, где бы лежали тихо и распространялись понемногу. никакого лишнего трафу, а малварь у всех стоит, кому внезапно %program_name% понадобилось слить оттуда.
Здравствуйте, swined, Вы писали:
S>однако я б не удивился, если бы по недосмотру зараженные дистрибы оказались на корпоративном фтп
Начнем с того, что корпоративный FTP это уже наводит на подозрения
S>, где бы лежали тихо и распространялись понемногу. никакого лишнего трафу, а малварь у всех стоит, кому внезапно %program_name% понадобилось слить оттуда.
Дак установленная малварь и начнет активные действия — потом будет обнаружен факт заражения и начнутся работы по его устранению.
Ну и вообще — у кого это файловый сервер без антивируса стоит?
Здравствуйте, Sinclair, Вы писали:
C>>Так что тут как раз всё банально — COM сам знает что ему там надо запустить, эта информация вносится в реестр при регистрации сервера. А дальше уже чисто вопросы маршаллинга, который всё равно должен выполняться, так как IE (AFAIR) использует апартаментную модель. S>Так что тут как раз опять всё банально — запустить старые плагины, написанные для in-proc модели, как out-of-proc не получится. Производитель должен их пересобрать.
Как вариант, есть ещё DLLHOST — т.е. dll'ки запускаются в отдельном процессе. Кстати, именно так делается запуск 32-битных COM-объектов на 64-битной Винде для 64-битных процессов (так как в адресное пространство процесса ты их всё равно не загрузишь).
Но кое что, вероятно, пришлось бы дорабатывать напильником, согласен.
C>>О каком Explorer'е идёт речь? О том, который ходит по каталогам на диске? S>Совершенно верно, именно о нём и идет речь с самого начала.
А там Shell Extensions до Win98 не было.
C>>Так там особо ничего до Win98 и не было опасного, это просто было обычное локальное приложение. S>А сейчас это — самое опасное приложение. И TortoiseSVN, которого я выбрал жертвой атаки, интегрируется именно с ним. И именно in-proc. А некоторые чрезмерно обидчивые люди до сих пор не понимают, в чём тут опасность. Несмотря на то, что я схему атаки расписал по шагам.
Некоторые программы всё равно будут иметь неограниченный доступ к системе, это понятно и не страшно. Важно защитить уже их. С TSVN это сделать, при желании, вполне можно.
Я даже могу рассказать примерно как.
C>>Я примерно тогда пробовал знаменитую QNX Floppy — на один 3.5" диск помещалась ОС с графической оболочкой, поддержка Dial-up и простой браузер (!!). Вот тут скриншоты есть: http://toastytech.com/guis/qnxdemo.html Я пробовал и полную ОС, там у них Photon GUI вполне себе ничего был, наравне с остальными ОС тогда. S>Прикольно. Что ж она не выжила-то, раз она такая прикольная была? Наверное, были другие недостатки, которых не было у архитектурно ужасной win95.
Основной недостаток — их делал не Microsoft. Если ты не забыл, то тогда MS вовсю выкручивал руки поставщикам железа (именно так они убили BeOS).
Ну и конкретно QNX никогда не претендовал на массовый рынок, они там больше делали ставку на рынки высоконадёжного ПО (где и сейчас весьма неплохо живут). Их я привожу исключительно как пример технической возможности.
Здравствуйте, DOOM, Вы писали: DOO>На нормальных серверах — нет. Современная малварь своими спам рассылками (даже неудачными) создает такой трафик, что вычисляют ее быстро, а потом методично изничтожают. DOO>Это уж верх раздолбайства какой-то, если в корпоративе спокойно ходят вирусы по корпоративным ресурсам.
У меня на работе проблем с вирусами не было вообще ни разу. Насколько я помню.
Был один забавный случай, когда на сборочную машину кто-то из девелоперов уронил трояна — кто, естественно, так и не нашли. (Это к вопросу о том, что из трёх мажорных антивирусов два запросто проносят ложку мимо рта.)
А вот моя машина ни разу не попадала. Несмотря на традиционно админский аккаунт, большое количество всякого овна, которое я регулярно ставлю, и крайне интенсивную сетевую жизнь.
С домашним компом — казус был. И вот тут есть одна такая штука, о которой хочется намекнуть. Сейчас у нас рулят домашние сети; а в них — либо тупо открытые шары, либо сквозной p2p с бесплатным трафиком. Естественно, никто это хозяйство не администрирует. Иногда, в виде исключения, админы провайдера отрубают тех, у кого сильно большой трафик по 411 порту или еще что. Но в целом, им полностью положить на вопросы безопасности. И наивные люди лазят друг к другу за варезом — только в путь. Потому что внешний трафик — он за деньги, или медленный. А тут — 9 мегабайт в секунду, и софтина с названием типа "kLite codec pack" у тебя на столе.
В итоге эпидемии работают со страшной силой. Опять же, не будем забывать о тех, кто пролетел мимо windows genuine advantage. Коих в регионах, естественно, большинство. Потому что в ранешние времена магазин с виндой был один на область.
И надо отметить, что дома-то компов едва ли не больше будет, чем в офисах. По очевидным причинам. Поэтому не на все решения, уместные в корпоративе, можно полагаться дома.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
S>(Это к вопросу о том, что из трёх мажорных антивирусов два запросто проносят ложку мимо рта.)
О! Повтори это товарищу Ikemefula — а то он с меня уже просит аналитических исследований о низкой эффективности современных антивирусов.
S>И наивные люди лазят друг к другу за варезом — только в путь. Потому что внешний трафик — он за деньги, или медленный. А тут — 9 мегабайт в секунду, и софтина с названием типа "kLite codec pack" у тебя на столе.
А вот это, кстати, один из главных аргументов борцов с p2p
S>И надо отметить, что дома-то компов едва ли не больше будет, чем в офисах. По очевидным причинам. Поэтому не на все решения, уместные в корпоративе, можно полагаться дома.
А я это нигде не предлагал.
AF> Хотя в чем-то ты наверно прав, внедрять систему сразу в режиме "запрещать всё" не стоит. Сначала оставить всё как есть, ограничения безопасности вводить только для тех приложений, к которым производители уже приделали манифест. Ну и конечно будет нужно провести кампанию, чтобы добровольно-принудительно их к этому склонить. AF> Когда-то ведь пора кончать с беспределом, когда каждому приложению разрешено творить всё что угодно.
Здравствуйте, Cyberax, Вы писали:
C>Как вариант, есть ещё DLLHOST — т.е. dll'ки запускаются в отдельном процессе. Кстати, именно так делается запуск 32-битных COM-объектов на 64-битной Винде для 64-битных процессов (так как в адресное пространство процесса ты их всё равно не загрузишь).
Ага. И все они получат один и тот же манифест. Велкам ту реал ворлд, Нео.
C>А там Shell Extensions до Win98 не было.
Трендеть изволите. shell32.dll version 4.0 or later; Windows NT 4.0, Windows 95.
C>Некоторые программы всё равно будут иметь неограниченный доступ к системе, это понятно и не страшно. Важно защитить уже их. С TSVN это сделать, при желании, вполне можно.
Всё как раз наоборот — TSVN защищать не нужно. Нужно защищать систему от тех, кто маскируется под TSVN.
А для этого нужны манифесты с более мелкой гранулярностью, чем целый процесс.
Впрочем, это очень трудно объяснить людям, которые много пишут и мало читают.
C>Ну и конкретно QNX никогда не претендовал на массовый рынок, они там больше делали ставку на рынки высоконадёжного ПО (где и сейчас весьма неплохо живут). Их я привожу исключительно как пример технической возможности.
Технические возможности теоретических систем остаются теоретическими возможностями. Супер осей с суперархитектурой было много. А победила убогая Win95, со своей корявой-насквозь-дырявой архитектурой.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
AF> Хотя в чем-то ты наверно прав, внедрять систему сразу в режиме "запрещать всё" не стоит. Сначала оставить всё как есть, ограничения безопасности вводить только для тех приложений, к которым производители уже приделали манифест. Ну и конечно будет нужно провести кампанию, чтобы добровольно-принудительно их к этому склонить. AF> Когда-то ведь пора кончать с беспределом, когда каждому приложению разрешено творить всё что угодно.
Здравствуйте, Cyberax, Вы писали: C>Кто мешает DLLHOST'у менять identity (что он уже и делает, кстати)? Это же привиллегированый системный процесс.
Пардон, что такое identity? Я в предложениях топикстартера никаких способов маскировки одних процессов под другие не увидел. Это как раз те детали, в которых дьявол.
C>И что дальше?
Как что дальше? С самого начала в оригинальной win95 были расширения эксплорера.
C>А память меня не подвела, оказывается. В Win95 не было открытого API для Shell Extensions, оно появилось в Win98 и было позднее портировано в Win95 в виде пакета обновления.
Бр-р. Откуда дровишки? В Win98 уже была версия 4.72. IShellView, IShellFolder и прочие официально поддерживались еще в 4.0.
C>http://boycottnovell.com/wiki/index.php/Redocumenting_the_undocumented_shell_extensions C>
C>Last fall Bill made the decision not to expose the ability to extend the Explorer. In looking at the prerelease Athena PIM, it now appears that full Explorer integration is supported on both Windows NT and Windows 95. This obviously has ISV impact and we are potentially exposed here from a PR and trust perspective.
Ну? Читаем выделенное до просветления. Были шероховатости в процессе релиза — парни сделали больше, чем собирались.
C>Причём там прикольные вещи, относительно нашей текущей дискуссии:
Ага. Пока что ничего не противоречит тому, что я говорил.
S>>Всё как раз наоборот — TSVN защищать не нужно. Нужно защищать систему от тех, кто маскируется под TSVN. C>Подписывание кода рулит
Мы бегаем по кругу. Подписывание кода — ничто. Речь идет о целой системе доверия. Я вот лично видел активиксы, у которых сертификат сфабрикован таким образом, что выдаваемый диалог подтверждения содежит слова "this software has been approved by Microsoft please press Yes to continue". И это не говоря о том, что большинство вендоров софта взвоют, если от них потребуют регулярно обновлять сертификаты.
C>Если атакующий будет пытаться прикинуться всей TSVN, то тут вообще ничего не поможет.
Поможет. C>Можно в дальнейшем защищать TSVN от вторжения вредоносных плугинов, но если пользователь изначально поставил вредоносную прогу — то тут уже ничего не поможет...
Похоже, ты не понимаешь, о чём идет речь. В самой TSVN внутренних плагинов нет, и её защищать не нужно. Максимум, на что она способна — вызвать внешний скрипт для сравнения версий. Нужно защищать эксплорер, в который интегрируется TSVN. Потому, что у самого эксплорера слишком много прав. Отобрать их у него нельзя, потому что тогда сломается весь существующий софт. Значит, надо отнимать права у плагинов. Причем обратно совместимым образом.
C>И что? Я не утверждаю ничего обратного, просто привожу примеры технической возможности создать надёжную ОС. То что это не было приоритетом MS (да и рынка массового ПО вообще, по большому счёту) тогда — мне напоминать не надо.
Да, приоритетом MS была реализация системы, которая бы устраивала реальных людей. Системы, которая бы была способна исполнять существующие на тот момент приложения. И это всегда было приоритетом MS, вследствие чего мы и имеем такое проникновение PC на рынок. Смогла бы QNX исполнять DOS и Win16 приложения? Что-то сомнительно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Cyberax, Вы писали:
C>А память меня не подвела, оказывается. В Win95 не было открытого API для Shell Extensions, оно появилось в Win98 и было позднее портировано в Win95 в виде пакета обновления.
Да, всё-таки подвела. Вот что пишут в 1996м году для тех, кто только собирается программить под новую winNT 4.0:
Programming For the New ShellThe good news about the new Windows NT 4.0 shell and user interface (EXPLORER.EXE) is that they're not a radical departure from Windows 95. In perusing through the most recent help files, it appears that all of the Windows 95 OLE interfaces for the shell are now supported in Windows NT 4.0. Thus, if you've written code specific to the Windows 95 shell (such as shell extensions), this code should work unmodified in Windows NT 4.0. Windows NT 4.0 supports these interfaces from SHLOBJ.HS: IContextMenu, ICopyHook, IEnumIDList, IExtractIcon, IFileViewer, IFileViewerSite, IShellExtInit, IShellFolder, IShellLink, and IShellPropSheetExt. In addition to the standard shell interfaces, Windows NT 4.0 also includes the Windows 95 Briefcase interfaces from RECONCIL.H, including INotifyReplica (briefcase), IReconcilableObject (briefcase), andIReconcileInitiator (briefcase). Later on, I'll touch on the namespace extensions. For now, the important thing to know is that you can write common shell code for both Windows 95 and Windows NT 4.0.
Of course, if you've never programmed for the Windows 95 user interface or written shell extensions, there's much to learn. To get you up to speed, I'd suggest reading Jeff Prosise's March 1995 MSJ article, "Integrate Your Applications with the Windows 95 User Interface Using Shell Extensions."
Там есть полезная ссылочка. Оказывается, еще в марте 1995 в Microsoft Journal выходит статья "Integrate Your Applications with the Windows® 95 User Interface Using Shell Extensions".
Очень странно для фичи, которая выйдет только в конце 1997 года и будет распространяться для Win95 как "пакет обновлений".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Кто мешает DLLHOST'у менять identity (что он уже и делает, кстати)? Это же привиллегированый системный процесс. S>Пардон, что такое identity?
Роль безопасности.
S>Я в предложениях топикстартера никаких способов маскировки одних процессов под другие не увидел. Это как раз те детали, в которых дьявол.
DLLHOST может прочитать манифест библиотеки _или_ вызывающего процесса, и взять его роль.
C>>И что дальше? S>Как что дальше? С самого начала в оригинальной win95 были расширения эксплорера.
Они были, но с другим API и не открытыми для всеобщего пользования.
C>>А память меня не подвела, оказывается. В Win95 не было открытого API для Shell Extensions, оно появилось в Win98 и было позднее портировано в Win95 в виде пакета обновления. S>Бр-р. Откуда дровишки? В Win98 уже была версия 4.72. IShellView, IShellFolder и прочие официально поддерживались еще в 4.0.
Вот 4.0 и была на Win95 портирована позднее, ставилась как специальный update. В Win95 не было Shell 4.0.
Просто я помню новость о том, как реверсом был открыт ещё недокументированый Shell API, который только что изменился из-за того, что Explorer был интегрирован с Internet Explorer'ом. Жаль, что найти её сейчас не могу.
C>>
C>>Last fall Bill made the decision not to expose the ability to extend the Explorer. In looking at the prerelease Athena PIM, it now appears that full Explorer integration is supported on both Windows NT and Windows 95. This obviously has ISV impact and we are potentially exposed here from a PR and trust perspective.
S>Ну? Читаем выделенное до просветления. Были шероховатости в процессе релиза — парни сделали больше, чем собирались.
Да, я вижу.
C>>Подписывание кода рулит S>Мы бегаем по кругу. Подписывание кода — ничто. Речь идет о целой системе доверия. Я вот лично видел активиксы, у которых сертификат сфабрикован таким образом, что выдаваемый диалог подтверждения содежит слова "this software has been approved by Microsoft please press Yes to continue". И это не говоря о том, что большинство вендоров софта взвоют, если от них потребуют регулярно обновлять сертификаты.
Можно сделать системы групповой проверки ну и доверяемые репозитории софта. В общем, есть варианты.
S>Похоже, ты не понимаешь, о чём идет речь. В самой TSVN внутренних плагинов нет, и её защищать не нужно. Максимум, на что она способна — вызвать внешний скрипт для сравнения версий. Нужно защищать эксплорер, в который интегрируется TSVN. Потому, что у самого эксплорера слишком много прав. Отобрать их у него нельзя, потому что тогда сломается весь существующий софт. Значит, надо отнимать права у плагинов. Причем обратно совместимым образом.
Что именно отбирать? TSVN должна уметь читать и писать файлы, и ещё и стучаться в Интернет. Т.е. неотличима от трояна.
S>Да, приоритетом MS была реализация системы, которая бы устраивала реальных людей.
Только вот реальные люди-то не особо в будущее смотрят. А уже в то время продукция MS сторонниками защищённых систем явно называлась небезопасной.
S>Системы, которая бы была способна исполнять существующие на тот момент приложения. И это всегда было приоритетом MS, вследствие чего мы и имеем такое проникновение PC на рынок. Смогла бы QNX исполнять DOS и Win16 приложения? Что-то сомнительно.
Почему нет? Wine сейчас вполне может исполнять Win16, а в Windows NT (96 год?) приложения для DOS внутри DVM работали. По overhead'у эмуляция DOSа не так уж сильно создала бы проблемы для машин с хотя бы 16Мб памяти. По минимуму в 4 Мб вряд ли бы всё поместилось, а вот в 8 Мб скорее всего уже можно было бы уложиться.
Кстати, OS/2 вроде бы на 8Мб как раз вполне резво запускала приложения для Win16 (IBM тогда лицензировал её у Microsoft).
Здравствуйте, Sinclair, Вы писали:
C>>А память меня не подвела, оказывается. В Win95 не было открытого API для Shell Extensions, оно появилось в Win98 и было позднее портировано в Win95 в виде пакета обновления. S>Да, всё-таки подвела. Вот что пишут в 1996м году для тех, кто только собирается программить под новую winNT 4.0: S>
S>Programming For the New ShellThe good news about the new Windows NT 4.0 shell and user interface (EXPLORER.EXE) is that they're not a radical departure from Windows 95. In perusing through the most recent help files, it appears that all of the Windows 95 OLE interfaces for the shell are now supported in Windows NT 4.0. Thus, if you've written code specific to the Windows 95 shell (such as shell extensions), this code should work unmodified in Windows NT 4.0. Windows NT 4.0 supports these interfaces from SHLOBJ.HS: IContextMenu, ICopyHook, IEnumIDList, IExtractIcon, IFileViewer, IFileViewerSite, IShellExtInit, IShellFolder, IShellLink, and IShellPropSheetExt. In addition to the standard shell interfaces, Windows NT 4.0 also includes the Windows 95 Briefcase interfaces from RECONCIL.H, including INotifyReplica (briefcase), IReconcilableObject (briefcase), andIReconcileInitiator (briefcase). Later on, I'll touch on the namespace extensions. For now, the important thing to know is that you can write common shell code for both Windows 95 and Windows NT 4.0.
S>Of course, if you've never programmed for the Windows 95 user interface or written shell extensions, there's much to learn. To get you up to speed, I'd suggest reading Jeff Prosise's March 1995 MSJ article, "Integrate Your Applications with the Windows 95 User Interface Using Shell Extensions."
You can get source for the Cab File Viewer along with preliminary documentation on Explorer's name space mechanism from http://www.microsoft.com/win32dev. To build a name space extension, you will also need an updated version of ShlObj.H, which is included in the Cab File Viewer sample source and should also be in the next release of the Win32¨ SDK.
Датировано июлем 96-а года.
Правда, мы тут скорее всего оба правы. В 95-м году была документирована и реализована только поддержка shell extensions, т.е. возможность добавить в explorer свой корень. К Win98 была реализована поддержка namespace extensions, которые позволяют цеплять спец. обработку к отдельным файлам.
Кстати, и то и другое уже тогда могло работать через out-of-proc OLE, так как нужные интерфейсы как раз расширяют обычные OLE-шные.
S>Там есть полезная ссылочка. Оказывается, еще в марте 1995 в Microsoft Journal выходит статья "Integrate Your Applications with the Windows® 95 User Interface Using Shell Extensions".
Эта статья — мимо. Там говорится про dockable toolbars, которые реализованы даже не через ActiveX, а с помощью обычных WinAPI функций.
Здравствуйте, Cyberax, Вы писали: C>Роль безопасности.
Role-based security уже давно применяется. Не понимаю, зачем ее обсуждать в контексте мандатной безопасности.
C>DLLHOST может прочитать манифест библиотеки _или_ вызывающего процесса, и взять его роль.
0. Если в системе вообще есть дырка вида "взять чужой манифест", то где гарантия, что ей не воспользуется малварщик? Такие вещи нужно проектировать и доказывать неуязвимость, а не просто говорить "ну пусть оно как-то магически работает".
1. Если мы берем манифест вызывающего процесса, то вообще не имеет смысл исполняться out-of-proc — безопасность будет та же
2. Ок, мы берём манифест библиотеки.
C>Они были, но с другим API и не открытыми для всеобщего пользования.
Что значит "с другим"? Был какой-то не такой IShellFolder? IShellFolderView? Все shell extensions обратно совместимы. Конечно, с каждой новой версией добавлялись новые возможности. Но речь-то не о них.
Архитектура Shell Extensions была сформирована в начале 90х. Можешь посмотреть даты выдачи патентов — всё это запатентовано сверху донизу. Заявка на IShellFolder/IShellView была подана в 1992 году. Поэтому не надо делать вид, что всё это придумали в 1998, когда железо было уже другим.
C>Вот 4.0 и была на Win95 портирована позднее, ставилась как специальный update.
Гон какой-то. Кто это придумал? C>В Win95 не было Shell 4.0.
А какая же в ней была, позвольте поинтересоваться? Может быть, там шла 1.30? Или 3.51? http://msdn.microsoft.com/en-us/library/bb776779(VS.85).aspx
Note 1: The 4.00 versions of Shell32.dll and Comctl32.dll are found on the original versions of Windows 95 and Windows NT 4.0. New versions of Commctl.dll were shipped with all Internet Explorer releases.
C>Просто я помню новость о том, как реверсом был открыт ещё недокументированый Shell API, который только что изменился из-за того, что Explorer был интегрирован с Internet Explorer'ом. Жаль, что найти её сейчас не могу.
Есть сайт про settlment consequences. Но ты не туда роешь — всё, что нужно, было с самого начала. Недокументированы были всякие утилитные функции.
S>>Ну? Читаем выделенное до просветления. Были шероховатости в процессе релиза — парни сделали больше, чем собирались. C>Да, я вижу.
C>Можно сделать системы групповой проверки ну и доверяемые репозитории софта. В общем, есть варианты.
Есть. Но их нужно продумывать. Какой смысл тратить ресурсы на защиту, которая обходится банальным образом? Я уже видел малварь, замаскированную под кодек паки и под eMule.
C>Что именно отбирать? TSVN должна уметь читать и писать файлы, и ещё и стучаться в Интернет. Т.е. неотличима от трояна.
Файлы и хосты, нужные TSVN, особым образом локализованы. У меня, например, всего два таких фолдера и один репозиторий.
Это как раз тот случай, когда можно спросить пользователя (гарантированно неуязвимым способом) — хочет ли он дать доступ к конкретному месту конкретному плагину. Малварщикам малоинтересны мои репозитории — им интересны финансовые аспекты и рассылка почты.
C>Почему нет? Wine сейчас вполне может исполнять Win16, а в Windows NT (96 год?) приложения для DOS внутри DVM работали. По overhead'у эмуляция DOSа не так уж сильно создала бы проблемы для машин с хотя бы 16Мб памяти. По минимуму в 4 Мб вряд ли бы всё поместилось, а вот в 8 Мб скорее всего уже можно было бы уложиться.
C>Кстати, OS/2 вроде бы на 8Мб как раз вполне резво запускала приложения для Win16 (IBM тогда лицензировал её у Microsoft).
Вот это "вроде бы" и подкосило полуось.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
C>You can get source for the Cab File Viewer along with preliminary documentation on Explorer's name space mechanism from http://www.microsoft.com/win32dev. To build a name space extension, you will also need an updated version of ShlObj.H, which is included in the Cab File Viewer sample source and should also be in the next release of the Win32? SDK.
C>Датировано июлем 96-а года.
Непонятно, почему ты сопротивляешься. Если уже в августе 1995 года был софт, который пользовался этими екстеншнами, то зачем искать более поздние статьи?
C>Правда, мы тут скорее всего оба правы. В 95-м году была документирована и реализована только поддержка shell extensions, т.е. возможность добавить в explorer свой корень.
Ты опять всё перепутал. Shell Extensions — это собирательное название всех расширений — и property pages, и namespace extensions, и всё что угодно. C>К Win98 была реализована поддержка namespace extensions, которые позволяют цеплять спец. обработку к отдельным файлам.
А вот namespace extensions — это как раз "возможность добавить в експлорер свой корень". Она, естественно, была с самого начала.
Что ты называешь "спец.обработку"? Вот, к примеру, возможность добавлять свою оверлей-иконку для чужих файлов, которой пользуется TSVN, добавили только в версии 5.0. C>Кстати, и то и другое уже тогда могло работать через out-of-proc OLE, так как нужные интерфейсы как раз расширяют обычные OLE-шные. C>Эта статья — мимо. Там говорится про dockable toolbars, которые реализованы даже не через ActiveX, а с помощью обычных WinAPI функций.
А у тебя есть ее исходник? Я вот что-то не нашёл.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали:
I>>За три сервиспака фич добавлено с гулькин нос. DOO> DOO>За 3 севрис пака фич добавлено больше, чем отличий между XP SP3 и вистой, вообще-то.
Здравствуйте, Sinclair, Вы писали:
C>>Роль безопасности. S>Role-based security уже давно применяется. Не понимаю, зачем ее обсуждать в контексте мандатной безопасности.
Под "ролью" понимается набор привиллегий.
C>>DLLHOST может прочитать манифест библиотеки _или_ вызывающего процесса, и взять его роль. S>0. Если в системе вообще есть дырка вида "взять чужой манифест", то где гарантия, что ей не воспользуется малварщик? Такие вещи нужно проектировать и доказывать неуязвимость, а не просто говорить "ну пусть оно как-то магически работает".
В системе всё равно нужна будет привиллегия "сменить идентичность". Оно и так есть в том или ином виде сейчас. Это само по себе не влечёт проблем, так как доступ к этой привиллегии тоже должен контролироваться.
S>1. Если мы берем манифест вызывающего процесса, то вообще не имеет смысл исполняться out-of-proc — безопасность будет та же
Это просто как вариант.
S>2. Ок, мы берём манифест библиотеки.
Да.
C>>Можно сделать системы групповой проверки ну и доверяемые репозитории софта. В общем, есть варианты. S>Есть. Но их нужно продумывать. Какой смысл тратить ресурсы на защиту, которая обходится банальным образом? Я уже видел малварь, замаскированную под кодек паки и под eMule.
Кодек-пакам можно не давать доступ в Инет и на запись файлов, это обрежет большинство атак. С eMule такого не получится, да.
C>>Что именно отбирать? TSVN должна уметь читать и писать файлы, и ещё и стучаться в Интернет. Т.е. неотличима от трояна. S>Файлы и хосты, нужные TSVN, особым образом локализованы. У меня, например, всего два таких фолдера и один репозиторий.
А у меня их много по всему диску и я работаю с кучей репозиториев (открытый софт). Что дальше?
S>Это как раз тот случай, когда можно спросить пользователя (гарантированно неуязвимым способом) — хочет ли он дать доступ к конкретному месту конкретному плагину. Малварщикам малоинтересны мои репозитории — им интересны финансовые аспекты и рассылка почты.
Это бесполезно. UAC так сейчас и делает, и пользователи тупо жмут "Accept".
Смысл мандатного контроля доступа такой, что мы гарантируем целостность процессов и соблюдение ими назначенных прав. Даже с учётом сторонних плугинов и всяких остальных фич. А вот управлением назначением (и изменением) прав уже надо заниматься как-то отдельно, возможно и с помощью аналога антивирусов — это не задача для MAC.
C>>Кстати, OS/2 вроде бы на 8Мб как раз вполне резво запускала приложения для Win16 (IBM тогда лицензировал её у Microsoft). S>Вот это "вроде бы" и подкосило полуось.
Скорее IBM постаралась. Тогда была шутка, что OS/2 — это лучший способ запускать Windows-приложения (они работали быстрее из-за того, что IBM перекомпилировали Windows под Watcom'ом).
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, DOOM, Вы писали:
I>>>За три сервиспака фич добавлено с гулькин нос. DOO>> DOO>>За 3 севрис пака фич добавлено больше, чем отличий между XP SP3 и вистой, вообще-то.
I>Ну, перечисляй,
Иди на support.microsoft.com и сравнивай. Я тут кто тебе?
Здравствуйте, waricom-11, Вы писали:
HB>>В половине случаев это, натурально, будет c:\windows\system32\svchost.exe, издатель Microsoft, с подписью и круглой печатью. Будем отправлять СМС?
W1>Не сиди под админом, и не будет такого.
Здравствуйте, Andrei F., Вы писали:
AF>Нормального ответа я не видел. AF>Сложности в реализации есть, но они все решаемы без негативных последствий.
Да, не иначе, идеальный конечный результат. А пацаны то и не знают
AF>Легко. Расскажи — сколько лет у них ушло на то, чтобы сделать диалог open/save file изменяемого размера? Или может ты станешь доказывать, что это тоже неимоверно сложная задача?
И наверняка ты решил, что всё это от неумения ?
AF>Какую конкретно проблему? С рисованием где угодно на экране? Решается точно так же — по умолчанию запретить выбирать этот магический битмэп в контекст, потому что обычным прогам это не нужно. Разрешать — по специальному указанию.
Да, круто, и здесь опять забить болт на обратную совместимость ?
Здравствуйте, Cyberax, Вы писали:
S>>Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности. C>Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение.
И где этот QMail ? Много чего было, вообще говоря. Написать мега-вещь просто. Сложно сделать так, что бы и через 20 лет она была актуальной.
Здравствуйте, Cyberax, Вы писали: C>В системе всё равно нужна будет привиллегия "сменить идентичность". Оно и так есть в том или ином виде сейчас. Это само по себе не влечёт проблем, так как доступ к этой привиллегии тоже должен контролироваться.
Гм. По-моему кто-то путает три несвязанные вещи. "Идентичность", которая есть сейчас — это субъект доступа. То есть, грубо говоря, юзер. И этой системы безопасности недостаточно, как показывает практика — потому, что у пользователя всегда слишком много прав.
Мандатная система безопасности помимо субъекта вводит еще и идентификацию посредника между субъектом и объектом взаимодействия. Именно это позволяет запрещать приложению отправку почты, хотя пользователь имеет на это право.
Теперь возникает вопрос, что такое эта идентификация посредника. Топикстартер предлагает использовать путь к екзешнику, который стартовал некоторый процесс.
Он (и ты тоже) упорно не понимает, что очень много всего в существующей системе выполняется в контексте какого-то другого процесса. Значит, нужен некий механизм уточнения привязки.
C>Это просто как вариант.
Не надо предлагать бессмысленные варианты. Тут даже осмысленных слишком много для оперативного рассмотрения.
C>Кодек-пакам можно не давать доступ в Инет и на запись файлов, это обрежет большинство атак.
Правильно! Но для этого нужно сделать так, чтобы кодек можно было идентифицировать отдельно от плеера. Ты уверен, что H.264 будет достаточно прилично исполняться в отдельном процессе? А ведь плееру нужен доступ в инет — как иначе я буду играть streaming media? Всё, ваше решение умерло не родившись.
C>А у меня их много по всему диску и я работаю с кучей репозиториев (открытый софт). Что дальше?
Я полагаю, тебя не затруднит ответить Yes лишние два раза при checkout-е очередного репозитория. Пойми, "много" — это когда у тебя программа делает какой-то вызов из WinAPI, в рамках которого идет сканирование реестра. А поскольку отдельного манифеста у Shell32.dll нету — на каждый запрос вылетает диалог "ахтунг!". Вот это — много. Запрос на каждый файл — много. А у тебя, даже если их 100, накладные расходы на чекаут достаточно приемлемы (ты всё равно указываешь довольно много данных при самом обычном чекауте).
C>Это бесполезно. UAC так сейчас и делает, и пользователи тупо жмут "Accept".
А другого варианта и нету. То, что вы предлагаете — вообще не защита.
C>Смысл мандатного контроля доступа такой, что мы гарантируем целостность процессов и соблюдение ими назначенных прав. Даже с учётом сторонних плугинов и всяких остальных фич. А вот управлением назначением (и изменением) прав уже надо заниматься как-то отдельно, возможно и с помощью аналога антивирусов — это не задача для MAC.
Какой-то это убогий смысл. Ну, то есть невозможно назначить разные права разным плугинам одной программы — значит, они все будут иметь суперпозицию прав. Невозможно в рамках одной программы отличить код, сгенерированный на лету, от кода, загруженного из подписанной библиотеки. Для юзермодных функций (вроде тех, что из Gdi32.dll) невозможно гарантировать, что малварщик не прыгнет сразу в середину кода мимо проверок. В общем, слабоватый размах.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, DOOM, Вы писали:
DOO>>Symantec Endpoint Protection
I>Эта штукенция сразу зарезает вагон приложений.
I>Но по любому таких защит нужно несколко, хотя бы и зарезать чего то будут. I>А уже потом микрософт что бы свое выпустил.
Их и так пруд пруди... Просто Symantec, вроде бы, пока из лучших...
Так что — MS пора бы за своим куском уже втягиваться... Вон с антивирусами как затянули — теперь их ForeFront еще долго не будет шибко заметен в корпоративном секторе (да и на домашних компьютерах).
Здравствуйте, Ikemefula, Вы писали:
C>>Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение. I>И где этот QMail ?
Работает почтовым сервером в Yahoo Mail. Мало?
Или вот: http://www.credentia.cc/research/surveys/smtp/200304/ — одно время 10% почтовых сереров под qmail были (сейчас немного меньше из-за того, что появились аналогичные qmail'у почтовики, но с более дружеской лицензией).
I>Много чего было, вообще говоря. Написать мега-вещь просто. Сложно сделать так, что бы и через 20 лет она была актуальной. I>У Микрософта это получается.
qmail образца 95-го года успешно работает и сейчас. Что есть аналогичного из продуктов MS?
Здравствуйте, Sinclair, Вы писали:
S>Там есть полезная ссылочка. Оказывается, еще в марте 1995 в Microsoft Journal выходит статья "Integrate Your Applications with the Windows® 95 User Interface Using Shell Extensions". S>Очень странно для фичи, которая выйдет только в конце 1997 года и будет распространяться для Win95 как "пакет обновлений".
Там целая книга была про расширения оболочки под вындоус95 от микрософт пресс. Я даже купил, правда чуть позже.
Здравствуйте, Cyberax, Вы писали:
S>>Системы, которая бы была способна исполнять существующие на тот момент приложения. И это всегда было приоритетом MS, вследствие чего мы и имеем такое проникновение PC на рынок. Смогла бы QNX исполнять DOS и Win16 приложения? Что-то сомнительно. C>Почему нет? Wine сейчас вполне может исполнять Win16, а в Windows NT (96 год?) приложения для DOS внутри DVM работали. По overhead'у эмуляция DOSа не так уж сильно создала бы проблемы для машин с хотя бы 16Мб памяти. По минимуму в 4 Мб вряд ли бы всё поместилось, а вот в 8 Мб скорее всего уже можно было бы уложиться.
C>Кстати, OS/2 вроде бы на 8Мб как раз вполне резво запускала приложения для Win16 (IBM тогда лицензировал её у Microsoft).
OS/2 это не QNX. Там действительно работали виндовс-приложения. Вообще обе системы были очень похожи.
Это было стратегией от IBM, заставить работать не тоьлко дос, но и виндовс под полуосью.
В итоге для OS/2 незачем было писать специфические приложения. Сейчас история повторяется с Вайном и Линуксом.
Здравствуйте, Cyberax, Вы писали:
C>>>Отмазка не катит. В то время существовал QMail (на тех же машинах), который как раз и работает по идеологии "каждой фиче — отдельный процесс". Что характерно, в QMail за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение. I>>И где этот QMail ? C>Работает почтовым сервером в Yahoo Mail. Мало?
Разумеется мало. Это вообще ничего.
I>>Много чего было, вообще говоря. Написать мега-вещь просто. Сложно сделать так, что бы и через 20 лет она была актуальной. I>>У Микрософта это получается. C> C>qmail образца 95-го года успешно работает и сейчас. Что есть аналогичного из продуктов MS?
Я говорю вообще то про развитие. Но вообще полно прложений для виндовс95 которые будут работать и под вистой. Я как раз пользую несколько таких.
Здравствуйте, DOOM, Вы писали:
I>>Но по любому таких защит нужно несколко, хотя бы и зарезать чего то будут. I>>А уже потом микрософт что бы свое выпустил.
DOO>Их и так пруд пруди... Просто Symantec, вроде бы, пока из лучших...
Я предпочитаю Касперского. Сумантеку дать денех жалко.
DOO>Так что — MS пора бы за своим куском уже втягиваться... Вон с антивирусами как затянули — теперь их ForeFront еще долго не будет шибко заметен в корпоративном секторе (да и на домашних компьютерах).
Здравствуйте, Sinclair, Вы писали:
C>>В системе всё равно нужна будет привиллегия "сменить идентичность". Оно и так есть в том или ином виде сейчас. Это само по себе не влечёт проблем, так как доступ к этой привиллегии тоже должен контролироваться. S>Гм. По-моему кто-то путает три несвязанные вещи. "Идентичность", которая есть сейчас — это субъект доступа. То есть, грубо говоря, юзер. И этой системы безопасности недостаточно, как показывает практика — потому, что у пользователя всегда слишком много прав.
Идентичность — это НЕ субъект доступа. Это набор привиллегий, которые даны процессу. Он может быть как больше, так и меньше набора привиллегий вызывающего пользователя.
S>Теперь возникает вопрос, что такое эта идентификация посредника. Топикстартер предлагает использовать путь к екзешнику, который стартовал некоторый процесс.
А почему бы и нет? AppArmor работает точно так же. SELinux использует специальные метки, которые ставятся в расширенные свойства файла.
S>Он (и ты тоже) упорно не понимает, что очень много всего в существующей системе выполняется в контексте какого-то другого процесса. Значит, нужен некий механизм уточнения привязки.
Это всё решаемо. Самый простой способ — это выделение части кода в отдельные процессы.
Есть ещё варианты с CAS, но они непрактичны.
C>>Кодек-пакам можно не давать доступ в Инет и на запись файлов, это обрежет большинство атак. S>Правильно! Но для этого нужно сделать так, чтобы кодек можно было идентифицировать отдельно от плеера. Ты уверен, что H.264 будет достаточно прилично исполняться в отдельном процессе?
А почему нет? Фреймы передаём через какой-нибудь zero-copy IPC, их у нас много (что в Винде, что в Линуксе).
Вот сейчас проверил — из mplayer'а по пайпам отправил декодированный HD-поток в другой mplayer, показывающий его на экране. Разницы в загрузке процессора по сравнению с одним mplayer'ом просто нет.
S>А ведь плееру нужен доступ в инет — как иначе я буду играть streaming media? Всё, ваше решение умерло не родившись.
Ну вот и отделяем кодеки в отдельный процесс.
C>>А у меня их много по всему диску и я работаю с кучей репозиториев (открытый софт). Что дальше? S>Я полагаю, тебя не затруднит ответить Yes лишние два раза при checkout-е очередного репозитория.
Затруднит. Уже один "yes" — это проблема.
C>>Это бесполезно. UAC так сейчас и делает, и пользователи тупо жмут "Accept". S>А другого варианта и нету. То, что вы предлагаете — вообще не защита.
Мы предлагаем делать защиту грамотно — разделять нормально containment и раздачу привиллегий.
C>>Смысл мандатного контроля доступа такой, что мы гарантируем целостность процессов и соблюдение ими назначенных прав. Даже с учётом сторонних плугинов и всяких остальных фич. А вот управлением назначением (и изменением) прав уже надо заниматься как-то отдельно, возможно и с помощью аналога антивирусов — это не задача для MAC. S>Какой-то это убогий смысл. Ну, то есть невозможно назначить разные права разным плугинам одной программы — значит, они все будут иметь суперпозицию прав.
Можно, и мы тебе уже сказали как — выделять плугины в процессы.
Здравствуйте, Cyberax, Вы писали:
C>Вот сейчас проверил — из mplayer'а по пайпам отправил декодированный HD-поток в другой mplayer, показывающий его на экране. Разницы в загрузке процессора по сравнению с одним mplayer'ом просто нет.
[offtopic]
А как ты заставил mplayer выводить в пайп? Он же вроде не умеет. Или ты через именованный делал?
[/offtopic]
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, dr.Chaos, Вы писали:
C>>Вот сейчас проверил — из mplayer'а по пайпам отправил декодированный HD-поток в другой mplayer, показывающий его на экране. Разницы в загрузке процессора по сравнению с одним mplayer'ом просто нет. DC>[offtopic] DC>А как ты заставил mplayer выводить в пайп? Он же вроде не умеет. Или ты через именованный делал? DC>[/offtopic]
Ага. mkfifo и вперёд.
Здравствуйте, Ikemefula, Вы писали:
I>>>И где этот QMail ? C>>Работает почтовым сервером в Yahoo Mail. Мало? I>Разумеется мало. Это вообще ничего.
Так у Exchange ещё меньше доля.
C>> C>>qmail образца 95-го года успешно работает и сейчас. Что есть аналогичного из продуктов MS? I>Я говорю вообще то про развитие. Но вообще полно прложений для виндовс95 которые будут работать и под вистой. Я как раз пользую несколько таких.
А qmail развивается. Просто он изначально был спроектирован хорошо, и его не надо переписывать с нуля каждые два года.
Здравствуйте, Ikemefula, Вы писали:
DOO>>Иди на support.microsoft.com и сравнивай. Я тут кто тебе?
I>Ну мало ли. Суди сам. Пиши сразу — ссылок, информации нет. Это по крайней мере понятно сразу. А то пишешь то про аналитику, то про фичи известные тебе а ни то другое хотя бы примерно показать не можешь.
Ссылки есть, но я не понимаю, почему я должен тратить свое время на поиск вещей, которые ты и сам мог бы найти, было бы желание.
Здравствуйте, Sinclair, Вы писали:
C>>Идентичность — это НЕ субъект доступа. Это набор привиллегий, которые даны процессу. S>Это какая-то новая терминология, которая рождается прямо сейчас. Давай ты будешь либо придерживаться стандартной терминологии, либо пояснять все новые трактовки старых терминов.
Такое пишется в доке SELinux. Но я терминологических споров устраивать не буду, просто скажи мне как называть набор привилегий процесса.
C>>А почему бы и нет? AppArmor работает точно так же. SELinux использует специальные метки, которые ставятся в расширенные свойства файла. S>Копец.
Нет.
S>Я уже 11 сообщений написал про "почему нет". Вы вообще читаете что вам пишут?
Нет.
C>>Затруднит. Уже один "yes" — это проблема. S>В таком случае задача решения не имеет.
А нужно искать.
C>>Можно, и мы тебе уже сказали как — выделять плугины в процессы. S>Осталось решить задачу в общем случае. То есть принудительно заставлять все DLL (или хотя бы DLL с отличающимся манифестом) грузиться в отдельные процессы и обмениваться данными через IPC. Да еще так, чтобы всё работало само собой, без ручной разметки маршалинга. Все DLL-ки так выделять не нужно. Только те, которые являются сторонними плугинами.
Это можно сделать для заметной части опасных приложений. Скажем, с плугинами браузера это вполне срабатывает (в Хроме можно Flash в отдельном процессе запускать, а у меня в 64-битной FireFox так некоторое время 32-битный Flash работал). Тем более, что оно всё равно нужно будет при переходе на 64 бита.
Здравствуйте, Cyberax, Вы писали:
C>Или вот: http://www.credentia.cc/research/surveys/smtp/200304/ — одно время 10% почтовых сереров под qmail были (сейчас немного меньше из-за того, что появились аналогичные qmail'у почтовики, но с более дружеской лицензией).
Ну справедливости ради надо сказать, что автор этого q-мыла совершенно сумасшедший. Например, при наличии 2-х или более MX-ов, qmail упорно долбился по первому, даже если первый не отвечал, а остальные были вполне работоспособными. Сколько Берштейна не уговаривали это починить, он упорно отказывался, причем сознательно, приводя какие-то непонятные доводы.
Здравствуйте, DOOM, Вы писали:
I>>Ну мало ли. Суди сам. Пиши сразу — ссылок, информации нет. Это по крайней мере понятно сразу. А то пишешь то про аналитику, то про фичи известные тебе а ни то другое хотя бы примерно показать не можешь.
DOO>Ссылки есть, но я не понимаю, почему я должен тратить свое время на поиск вещей, которые ты и сам мог бы найти, было бы желание.
Ты слегка поторопился своим языком.
Нет той аналитики о которой ты говорил.
И списка фич в сервиспаках, которых больше чем разницы между XP и Vista тоже нет.
Здравствуйте, Pzz, Вы писали:
C>>Или вот: http://www.credentia.cc/research/surveys/smtp/200304/ — одно время 10% почтовых сереров под qmail были (сейчас немного меньше из-за того, что появились аналогичные qmail'у почтовики, но с более дружеской лицензией). Pzz>Ну справедливости ради надо сказать, что автор этого q-мыла совершенно сумасшедший. Например, при наличии 2-х или более MX-ов, qmail упорно долбился по первому, даже если первый не отвечал, а остальные были вполне работоспособными.
Нет-нет. В этом случае qmail будет все MX-ы пробовать. Он перестаёт их смотреть, если один из MX-ов возвращает ошибку с кодом 5xx.
Pzz>Сколько Берштейна не уговаривали это починить, он упорно отказывался, причем сознательно, приводя какие-то непонятные доводы. Pzz>Университетский прохвессор, короче
Это тоже.
Здравствуйте, Sinclair, Вы писали:
C>>Все DLL-ки так выделять не нужно. Только те, которые являются сторонними плугинами. S>Критерий неверный. Есть две "крайних" ситуации: S>1. Доверенный процесс хостит недоверенную DLL (плугины). S>2. Недоверенный процесс хостит доверенную DLL (системные сервисы, расположенные в user mode, например стандартные диалоги File Open)
Согласен, про второй вариант я забыл. Его тоже надо защищать.
S>Реальная МС занимается и тем и другим, но постепенно. Подход "сплеча", предложенный топикстартером, несовместим с реальной жизнью. Обратный подход "пусть само приложение ограничивает себя", тоже предложенный топикстартером, нафиг не нужен — не будет автор малвари поставлять ограничивающий манифест.
MS занимается этим как-то весьма лениво. UAC получился очень плохим решением.
Andrei F, с чем конкретно не согласен? С тем, что обсуждение любой системы лучше начинать с определения того, какую задачу она будет решать, или с высказанным мнением что у тебя нет четкого понимания с чем и зачем должна бороться такая система?
Здравствуйте, Cyberax, Вы писали:
C>Если речь идёт об Internet Explorer'е (который только в Win98 был интегрирован с обычным), то AFAIR только версия 3 поддерживала плугины (96 год вроде бы).
да, 3я версия чтото поддерживала. По нормальному, ИЕ это с версии 4.0 и никак не раньше.
Здравствуйте, DOOM, Вы писали:
DOO>>>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
S>>неужели ты ни разу не встречал малвари на корпоративных файловых серверах?
DOO>На нормальных серверах — нет. Современная малварь своими спам рассылками (даже неудачными) создает такой трафик, что вычисляют ее быстро, а потом методично изничтожают.
Грядут новые времена. Когда будет полностью отработан взлом серверов обновлений, майлварь поселится и на корпоративных серверах.
Дело времени.
Здравствуйте, Sinclair, Вы писали:
S>Был один забавный случай, когда на сборочную машину кто-то из девелоперов уронил трояна — кто, естественно, так и не нашли. (Это к вопросу о том, что из трёх мажорных антивирусов два запросто проносят ложку мимо рта.)
Бывает такое У нас на девелоперских антивирусов и нет вовсе.
Два из трёх это еще слабо сказано.
S>В итоге эпидемии работают со страшной силой. Опять же, не будем забывать о тех, кто пролетел мимо windows genuine advantage. Коих в регионах, естественно, большинство. Потому что в ранешние времена магазин с виндой был один на область.
Кстати говоря, хотел купить Висту, и вышел казус. Летом прошлым виста пиратская пролетала мимо этого генуина, а недавно хотел купить снова, но заметил, что она каким то образом доросла до генуина. Не то какой то троян чего то подфиксил, не то еще чтото случилось на сервере.
Здравствуйте, DOOM, Вы писали:
S>>(Это к вопросу о том, что из трёх мажорных антивирусов два запросто проносят ложку мимо рта.) DOO>О! Повтори это товарищу Ikemefula — а то он с меня уже просит аналитических исследований о низкой эффективности современных антивирусов.
У нас с тобой слегка про другое разговор был, а именно про разницу между наличием и отсутствием антивируса, а не между антивирусом и идеальной защитой.
Здравствуйте, Andrei F., Вы писали:
AF>Создать отдельное окно в вызывающем процессе по этому шаблону и к нему прилепить хук. А это окно отобразить рядом или поверх основного диалога открытия/сохранения. AF>Есть конечно особо тонкие извращенцы, которые субклассируют главное окно диалога и надругиваются над ним по всякому, но здесь я предложить ничего не могу — только давать проге особое разрешение, или рубить руки разработчикам.
I>Грядут новые времена. Когда будет полностью отработан взлом серверов обновлений, майлварь поселится и на корпоративных серверах. I> Дело времени.
Ну-ну... Сейчас любой сервер обновлений шлет свои обновления по SSL — уже попробуй вклинься.
На любом мало-мальски крупном предприятии каждое обновление обкатывают в демо зоне — если там сидят более-менее грамотные люди, то они смогут заметить, что что-то не так.
Ну и т.п.
Есть и крайние меры — например для сертифицированной ОС Windows XP обновления надо получать из специализированного источника, где SSL с двухсторонней аутентификацией (да еще с ключом на eToken'е), а каждое обновление (теоретически) изучается на предмет программных закладок и т.п.
Здравствуйте, Ikemefula, Вы писали:
I>У нас с тобой слегка про другое разговор был, а именно про разницу между наличием и отсутствием антивируса, а не между антивирусом и идеальной защитой.
Вообще-то эффективность средства меряют, как правило, по частоте ошибок первого и второго рода. Поэтому я и утверждаю, что эффективность антивируса — невелика. Слишком много ошибок первого и второго рода.
Здравствуйте, Ikemefula, Вы писали:
I>Задача не только ОС, но не так как ты хочешь — включил рубильник и всё в ажуре.
То, что я предлагаю — это не "безопасность по повороту рубильника", а инструмент, который позволит повышать безопасность. Вплоть до такого уровня, когда попавший в систему малварь просто не сможет ничего сделать. Но чтобы добиться такого уровня, нужно будет затратить много времени и усилий дополнительно. Но сама технология может быть реализована сравнительно быстро и недорого.
Mandatory Integrity Control, действительно, очень похожая технология, хотя с некоторыми ненужными недостатками.
Здравствуйте, Andrei F., Вы писали:
AF>То, что я предлагаю — это не "безопасность по повороту рубильника", а инструмент, который позволит повышать безопасность. Вплоть до такого уровня, когда попавший в систему малварь просто не сможет ничего сделать. Но чтобы добиться такого уровня, нужно будет затратить много времени и усилий дополнительно. Но сама технология может быть реализована сравнительно быстро и недорого.
Ты так и не ответил, в чем твое отличие от сущесвтующих систем защиты, ну наприер Сумантек Эндпоинт
И почему тебе хочется, что бы это сделал микрософт ? Тогда всякие сумантеки и касперы отвалятся разом.
Здравствуйте, DOOM, Вы писали:
DOO>Здравствуйте, Ikemefula, Вы писали:
I>>У нас с тобой слегка про другое разговор был, а именно про разницу между наличием и отсутствием антивируса, а не между антивирусом и идеальной защитой.
DOO>Вообще-то эффективность средства меряют, как правило, по частоте ошибок первого и второго рода. Поэтому я и утверждаю, что эффективность антивируса — невелика. Слишком много ошибок первого и второго рода.
Вообще-то эффективность это отношение результата на затраты по получению этого результата. Ошибки первого и второго рода влияют на результат.
Результат низкий, тут я согласен. Затраты со стороны пользователя так же низки, не сказать, что равны нулю, кое какие издержки имеются.
И вот эта эффективность защиты при использовании антивируса много выше эффективности защиты безо всякого антивируса.
Здравствуйте, Ikemefula, Вы писали:
I>Ты так и не ответил, в чем твое отличие от сущесвтующих систем защиты, ну наприер Сумантек Эндпоинт
Решил и меня тоже поDOSить?
I>И почему тебе хочется, что бы это сделал микрософт ?
Причина очевидна и я уже здесь писал. Чтобы перекрыть процессу доступ к API, сторонней фирме нужно использовать перехват API и прочие злые хаки, а Microsoft — просто вставить пару строк в исходный код.
I>Тогда всякие сумантеки и касперы отвалятся разом.
Здравствуйте, DOOM, Вы писали:
DOO>Ну-ну... Сейчас любой сервер обновлений шлет свои обновления по SSL — уже попробуй вклинься. DOO>На любом мало-мальски крупном предприятии каждое обновление обкатывают в демо зоне — если там сидят более-менее грамотные люди, то они смогут
Да ладно, уже есть случаи взломов этих серверов для подлога апдейтов.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Т.е. объектами твоей модели разграничения доступа являются приложения. Отлично. Но операционная система не в курсе что такое "приложение". Уже упомянутый тут Symantec Antivirus или Microsoft Firewall Client, или Lotus Notes, или JRE — это приложения в терминах твоей модели? Что ты будешь делать с тем, что тот же SAV — это 7 процессов, 4 драйвера ядра и 2 системных службы? Кто будет собирать этот зоопарк в "приложение" к которому нужно применить нужную политику разграничения доступа?
Для простоты, объект моей модели — процесс. Желательно — с цифровой подписью, которая позволяет определить, кем оно написано и к какому приложению принадлежит.
KV>Идем дальше: субъектами твоей модели являются "данные" и "опасные возможности ОСи". Сам не находишь, что эти термины несколько расплывчаты? Что такое "данные"? В начале треда ты намекнул на то, что это объекты файловой системы. И все?
Данные — это файлы пользователя.
KV>То же самое с опасными "возможностями" ОС. Опасной "возможностью" ОС является является любая "возможность", для которой математически не доказано отсутствие уявзимостей в ее архитектуре и реализации. Иными словами, такими "возможностями" являются практически все "возможности" ОС. Если не согласен — озвучь, плс, свои критерии оценки "опасности" таких "возможностей". А то, что под "возможностями" могут скрываться как системные вызовы, так и (например) побочные эффекты от использования совокупности определенных вызовов в определенном порядке, говорит об охренительной сложности реализации предложенной тобой модели, обусловленной вот такими вот деталями, которые ты почему-то считаешь несущественными.
А ведь про это я уже писал, точно помню Повторю еще раз — те функции, которые позволяют вмешаться в работу других процессов, или передавать данные за пределы компьютера. Всевозможные write process memory, DLL injection, хуки и тому подобное. Пытаться что-то сделать с "дырявыми" функциями — это просто нереально. Только переход на управляемый код, но это винде в ближайшие годы не светит.
KV>Причем походя раскритиковал последнюю, несмотря на то, что предлагаешь нечто, весьма на нее похожее.
Если ты про Mandatory Integrity Control, то его главный недостаток очевиден. Надеюсь, ты сможешь его назвать?
KV>Ты предлагаешь реализовать достаточно дорогостоящую и сложную штутку, считая что выгоды от ее внедрения будут и так всем очевидны
Разграничить доступ к отдельным разделам API на основе правил — это недорого и несложно, по крайней мере для MS. Не сильно сложнее, чем обычный фаервол.
Хотя с фаерволом у Очень Умных Дядек тоже чего-то не заладилось, до сих пор не могут сделать нормальный с полноценной настроек правил.
Ну в общем да, ты меня убедил. Если они нормальный фаервол сделать не могут — нельзя ожидать от них чего-то большего.
Здравствуйте, Andrei F., Вы писали: AF>Причина очевидна и я уже здесь писал. Чтобы перекрыть процессу доступ к API, сторонней фирме нужно использовать перехват API и прочие злые хаки, а Microsoft — просто вставить пару строк в исходный код.
Это вопиющая глупость. "Пару строк" малварное приложение просто скипнет, сделав прямой джамп на X байт ниже адреса точки входа в DLL. Там всё должно проверяться в кернел моде.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Это вопиющая глупость. "Пару строк" малварное приложение просто скипнет, сделав прямой джамп на X байт ниже адреса точки входа в DLL. Там всё должно проверяться в кернел моде.
Действительно, вопиющая глупость. Зачем делать эти проверки в user mode, расскажи?
Здравствуйте, Andrei F., Вы писали: AF>Действительно, вопиющая глупость. Зачем делать эти проверки в user mode, расскажи?
Ну мне почему-то кажется, что значительная часть того, что нужно защищать, выполняется в юзер моде. Значит, добавлением двух строчек тут не обойдешься.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
AF>>Действительно, вопиющая глупость. Зачем делать эти проверки в user mode, расскажи? S>Ну мне почему-то кажется, что значительная часть того, что нужно защищать, выполняется в юзер моде. Значит, добавлением двух строчек тут не обойдешься.
Ага, нужно разделять на разные процессы.
Естественно, это будет очень непросто. Но не невозможно для большого числа случаев.
KV>Т.е. объектами твоей модели разграничения доступа являются приложения. Отлично. Но операционная система не в курсе что такое "приложение". Уже упомянутый тут Symantec Antivirus или Microsoft Firewall Client, или Lotus Notes, или JRE — это приложения в терминах твоей модели? Что ты будешь делать с тем, что тот же SAV — это 7 процессов, 4 драйвера ядра и 2 системных службы? Кто будет собирать этот зоопарк в "приложение" к которому нужно применить нужную политику разграничения доступа? KV>Идем дальше: субъектами твоей модели являются "данные" и "опасные возможности ОСи". Сам не находишь, что эти термины несколько расплывчаты? Что такое "данные"? В начале треда ты намекнул на то, что это объекты файловой системы. И все?
(шепотом) Владимир, ты субъекты с объектами перепутал...
KV>И самое главное, ты ни разу не объяснил, чем же эта модель будет лучше уже существующих (дискреционной, ролевой, мандатной и т.п. и их сочетаний). Причем походя раскритиковал последнюю, несмотря на то, что предлагаешь нечто, весьма на нее похожее.
Скорее все-таки предлагается расширить набор привилегий. Вместо 15 (или сколько их там) ввести пару сотен. Ну и привязку сделать не к пользователю, а к процессу (про проблемы идентификации ты уже написал — не без этого).
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, criosray, Вы писали:
C>>Замечательно. А теперь расскажите пожалуйста каким образом ОС узнает о том какой программе надо разрешать писать на диск, а какой — запрещать. Внимательно слушаю.
AF>Не просто на диск, а в какие места диска. Например, запись в системные папки — по умолчанию перекрыть для всех non-system приложений. AF>На основании таких признаков, как AF>1. Установлено ли приложение в систему по всем правилам, или это, к примеру, скачанный из инета файл AF>2. Правила, заданные пользователем
AF>По сути — это то же самое что фаервол, только ограничивает доступ не к удаленным, а к локальным ресурсам.
AF>Еще вопросы?
SELinux (или тот же AppArmor) под Linux'ом — вполне оно. Именно отслеживание _процесса_
(точнее вводится понятие security context и контексты вешаются на процессы, на все что в файловой системе,etc)
Вот только даже там — это проблема — составлять для всех приложений профили что им можно а что — нет.
И почему то - весьма популярным является описание того как эту штуку отключить.
И до недавнего времени-по умолчанию все стояло в Permissive mode (SELinux пишет в лог что он будет блочить но не блочит)
На Windows-с этим сразу будет куча проблем(и не только со старым софтом, драйвера ставить/копаться в системных вещах тут много кто любит-все (почти) защиты например. Им тоже права выдавать? И как все это для пользователя будет выглядеть?это будет хуже UAC. А _все_ блокировать левое без специальной команды пользователя(не запроса как в UAC а именно гдето в Control Panel настройку-xxx.exe разрешить делать тото)-сразу проблемы с совместимостью(хотя ОЧЕНЬ хорошее решение-но что будет с защитами?)
Либо альтернатива-вообще все что маломальски опасно-запретить для неподписанных приложений (ala Symbian OS например). Но опять же — взвоют -. шароварщики например(не все).
Здравствуйте, dmitriy_k, Вы писали:
_>SELinux (или тот же AppArmor) под Linux'ом — вполне оно. Именно отслеживание _процесса_ _>(точнее вводится понятие security context и контексты вешаются на процессы, на все что в файловой системе,etc) _>Вот только даже там — это проблема — составлять для всех приложений профили что им можно а что — нет.
Не проблема (чтобы не быть голословным, скажу что работаю в enforcing режиме больше двух лет). Для абсолютного большинства приложений хватает тех прав, которые раздает SELinux. Из оставшегося меньшинства остаются:
системное ПО (firewalls, антивирусы и т.п.) — таких приложений не особо много, и обычно мейнтейнеры предоставляют правила для SELinux-а;
user-space драйвера (fuse и т.п.) — здесь больше всего проблем, т.к. некоторые драйвера пишут как бог на душу положит. Серьезные драйверописатели опять-таки предоставляют правила;
веб-приложения — здесь только проблемы в настройке нужных прав httpd-серверу и прописывания нужных контекстов файлам. Именно на этом этапе все плачутся, и вырубают SELinux, т.к. настроить не могут, хотя все достаточно элементарно.
Замечу, что SELinux дисциплинирует разработчиков, т.к. заставляет думать о безопасности. Случаи, когда каталогам назначаются права 777, зачастую полностью обламываются SELinux-ом, и бедные PHP-шники рвут волосы на себе, пытаясь разобраться что и как делать. Мысль, что надо писать временные данные в /tmp, им почему-то не приходит в голову (см. паттерн использования smarty). Если честно, то я этому даже рад, т.к. бездумные поделки тупо не будут нормально работать на нормальных серверах, и никому не придет в голову их использовать, что автоматом выкашивает ряды быдлопрограммистов или заставляет их умнеть.
Здравствуйте, Nuald, Вы писали:
N>Здравствуйте, dmitriy_k, Вы писали:
_>>SELinux (или тот же AppArmor) под Linux'ом — вполне оно. Именно отслеживание _процесса_ _>>(точнее вводится понятие security context и контексты вешаются на процессы, на все что в файловой системе,etc) _>>Вот только даже там — это проблема — составлять для всех приложений профили что им можно а что — нет.
N>Не проблема (чтобы не быть голословным, скажу что работаю в enforcing режиме больше двух лет). Для абсолютного большинства приложений хватает тех прав, которые раздает SELinux. Из оставшегося меньшинства остаются:
N>Замечу, что SELinux дисциплинирует разработчиков, т.к. заставляет думать о безопасности. Случаи, когда каталогам назначаются права 777, зачастую полностью обламываются SELinux-ом, и бедные PHP-шники рвут волосы на себе, пытаясь разобраться что и как делать. Мысль, что надо писать временные данные в /tmp, им почему-то не приходит в голову (см. паттерн использования smarty). Если честно, то я этому даже рад, т.к. бездумные поделки тупо не будут нормально работать на нормальных серверах, и никому не придет в голову их использовать, что автоматом выкашивает ряды быдлопрограммистов или заставляет их умнеть.
Возможно...просто в тех случая что были у меня-не было никакого описания как и что ставить и ГДЕ настраивать
(это были не написанные мной программы)
Толковый хороший мануал по SELinux-до сих пор ищу.Хоть на русском хоть на английском
Как пример ситуации:
в /opt/confluence лежит Confluence, использует Sun JRE в /opt/jre, пишет данные в подкаталоги /opt/confluence и в /var/confluence/data
перед ней стоит в качестве reverse proxy апач
заставить не писать в /opt/confluence — сложно (туда логи идут,временные рабочие файлы tomcat'а,etc-где все это настраивается-скажем так не очевидно).
в качестве СУБД-используется стоящий на той же машине PostgreSQL(поставленный штатным путем)
Как это все настроить корректно с использованием SELinux и чтобы дырок было поменьше?
DC>Какие именно? Настроить политики для приложении, чтоб они имели только те права которые им нужны? Вот скажи мне зачем браузеру возможность запускать произвольные исполняемые файлы или обращаться к произвольным COM-объектам? Ты объясняй, объясняй зачем большинству приложений полные юзерские права?
Файлы — очень просто.Юзер скачал (допустим) новейший CD Ejector(при этом по каким то причинам-он НЕ хочет все на Рабочий Стол/Мои документы качать). Хочет поставить. Он не имеет права нажать "Открыть" в диалоге скачивания и все запустится?
Или ему каждый раз надо в Explorer лезть?
I>>Пользователя понемногу приучают думать про безопасность. Панацеи здесь нет и никогда не будет.
DC>Угу приучают сразу вырубить UAC. Или купить Каспера, который стоит доп денег и кроме того жрёт ресурсы.
К вопросу о Касперских и им подобных.
Последние мои попытки использовать монитор касперского-приводили к неоднократным зависаниям на ровном месте(а аутпоста-к BSOD'ам).
Железо-стандартное и не такое слабое.
Живу проверкой сканером всего скачиваемого+соблюдения "правил гигиены"(firewall-на линукс-роутере все равно стоит)
Здравствуйте, waricom-11, Вы писали:
W1>Итак: W1>1) Непробиваемая защита возможна. W1>2) Ответственность за поведение автомобиля на дороге несет водитель. W1>3) Спички детям не игрушка.
W1>А посему, надо вводить ответсвенность владельцев компьютера за поведение компьютера. Штрафовать за рассылку спама и т.п. Взломали кого-то через прозрачный прокси на твоем компе? Штраф плати. И не разводи зоопарк у себя в системе. Ворд слишком сложно защитить? А мы напишем редактор на яве, правда по функциональности он будет в 10% от ворда, но норот и 5% не знает, и поэтому будет пользоваться.
Ответственность за поведение компьютера?
А кто ответит за поведение некоторых особо умных программ, выполняющих функции НЕ нужные пользователю
(но нужные разработчику программы-как самый наглядный пример-StarForce. Или тот же Sony Rootkit.И практически все способы защиты от копирования(кроме "убираем часть кода в спецдевайс"/"убираем часть функциональности в онлайн-сервис"(не активация а именно перенос функционала))
W1>Подобная инициатива, помимо прочих преимуществ, вызовет рост зарплат в IT-сфере и увеличение числа вакансий. Прежде чем протестовать, подумайте об этом.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Sinclair, Вы писали:
S>>Твоя идея вообще ни от чего не защищает. Прежде всего потому, что ты ее никак не сформулировал. Ты даже не объяснил, что именно ты собираешься идентифицировать про приложение — путь запуска екзешника? Путь, откуда фактически он был скачан? Или еще что-то? Без этих уточнений, я повторяю, твоя идея сводится к "давайте изобретем порох непромокаемым".
AF>Путь к стартовому файлу процесса.
Да?
И этого _всегда_ достаточно?
Как минимум то что у меня сейчас работает:
в процесс приложения inject'ится DLL,которая много что делает,и другие DLL подгружает из своего каталога, и в интернет лезет(ладно,на ограниченное количество сайтов но все же), и перехватывает приличное количество функций(в части случаев-после этого функции работают не так как раньше) и по собственному желанию вызывает код внутри этого приложения
Все — с полного ведома пользователя.
Но фактически — от того что мы проверили стартовый файл процесса — тут ни холодно ни жарко.Функциональность после этого inject'а меняется.
Запрещаем code inject без прямого разрешения пользователя?
p.s.попробовал сейчас подцепится отладчиком к calc.exe:
вижу загруженные(остальное-из C:\Windows):
"C:\Program Files\oDesk\oDesk46.dll"
"C:\Program Files\Unlocker\UnlockerHook.dll"
попробовал к Firefox'у подцепится(то что из C:\Windows, C:\Program Files\Mozilla Firefox и каталогов с экстеншенам-исключено):
"C:\Program Files\Unlocker\UnlockerHook.dll
"C:\Program Files\Skype\Toolbars\Shared\SPhoneParser.dll"
"C:\Documents and Settings\dkzm\Local Settings\Temp\RoboForm\roboform.dll" (RoboForm Portable видимо) — в TEMP же доступ на запись должен быть всегда разрешен? -
"C:\Program Files\oDesk\oDesk46.dll"
Не так уж мало кода — который _штатно_ загружен системой в обычные процессы и который может делать много что интересного...
Здравствуйте, DOOM, Вы писали:
DOO>Здравствуйте, Ikemefula, Вы писали:
I>>Здравствуйте, DOOM, Вы писали:
I>>>>За три сервиспака фич добавлено с гулькин нос. DOO>>> DOO>>>За 3 севрис пака фич добавлено больше, чем отличий между XP SP3 и вистой, вообще-то.
I>>Ну, перечисляй,
DOO>Иди на support.microsoft.com и сравнивай. Я тут кто тебе?
вообще говоря, подтвердить свои слова — это нормально.
а то ведь можно любую ерунду сказать и послать в гугль за подтверждениями
Вообще, то что тут предлагается -
очень напоминает Platform Security от Symbian OS (http://www.forum.nokia.com/main/platforms/s60/faq.html)
(как ее ломают-тоже можно почитать кстати. она сломана давно-НО! — чтобы чтото запустить без ведома пользователя-надо чтобы перед этим пользователь _полностью_ ее вырубил(процедура из ~10 шагов,описана только на хакерских сайтах,делается через патчинг прошивки). Чтобы просто пользователю запустить совершенно левую(либо вообще крякнутую) программу — он _может_ это сделать. но только у себя на смарте
Только вот проблемы:
— учитывая объемы winapi — капсов потребуется ну просто дофига
— некоторые сложности с уникальными идентификаторами компьютера
— обратная совместимость. Symbian поломали частично совместимость даже на уровне исходников
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, Andrei F., Вы писали:
AF>>Кто с чем не согласен?
KV>Сказанное Синклером очевидно. Точкой удаленной атаки на десктопы, в 99% случаев, являются уязвимости прикладного кода, выполняемого в user-mode. Это очевидно настолько, что твоя попытка указать ему на отсутствие аргументов, в столь резкой форме, воспринимается как банальная грубость и попытка прицепиться к словам собеседника.
Andrei F, теперь ты водишь. Рассказывай за что минус
M_>вообще говоря, подтвердить свои слова — это нормально. M_>а то ведь можно любую ерунду сказать и послать в гугль за подтверждениями
Еще раз: если собеседник настаивает на подтверждении только потому, что он шлангом прикидывается — тратить свои силы и время на проведение анализа и т.п. совсем не охота.
support.microsoft.com — это вполне конкретный инструмент, который позволяет узнать какие фичи появились в том или ином хот фиксе и сервиса паке. А уж анализировать Changelog за других я не должен.
Еще есть полезный проект — setroubleshoot. Там есть тулза sealert, она при нарушении безопасности показывает ошибки и методы их исправления (конечно, на сервере в этом случае должны работать X-ы). Исходники есть на том же сайте, либо можно поставить из репозитария.
_>Как пример ситуации: _>в /opt/confluence лежит Confluence, использует Sun JRE в /opt/jre, пишет данные в подкаталоги /opt/confluence и в /var/confluence/data _>перед ней стоит в качестве reverse proxy апач _>заставить не писать в /opt/confluence — сложно (туда логи идут,временные рабочие файлы tomcat'а,etc-где все это настраивается-скажем так не очевидно). _>в качестве СУБД-используется стоящий на той же машине PostgreSQL(поставленный штатным путем)
_>Как это все настроить корректно с использованием SELinux и чтобы дырок было поменьше?
Ну я не знаю, в чем конкретно заключается ошибка, поэтому могу дать лишь общие рекомендации.
Предусловия:
Все указанные файлы и директории должны находится на SELinux-совместимой файловой системе (ext3 и тому подобное);
Желательно сделать релэйбелинг или восстановить контекст (restorecon) всех упоминаемых директорий (зачастую это не нужно, однако если проводились какие-то эксперименты, это гарантирует что контексты будут восстановлены);
Желательно поставить setroubleshoot — он поможет отследить и исправить ошибки
Теперь собственно, какие могут быть проблемы. Во-первых, надо определить какое приложение использует необходимые файлы и под каким пользователем оно работает. В зависимости от этого надо будет прописывать контексты. Для апача есть собственные типы, например в данном случае можно использовать httpd_sys_content_rw_t (см. `man httpd_selinux`). Надо будет изменить контекст файлов на данный тип (chcon). Но вообще, конечно, надо еще предварительно все-таки настроить, чтобы исполняемые файлы и данные хранились раздельно.
По себе могу сказать, что с серверными java-приложениями (неважно java из репозитария, или от Sun-a) и постгресом у меня никогда проблем не было. Но правда я всегда конфигурировал, чтобы писалось в нужные места.
Если все-таки проблемы так и будут возникать, стоит обратиться в mailing list: fedora-selinux-list@redhat.com
В основном там за все отвечает Daniel Walsh, мы с ним в свое время разговаривали, и он исправил пару найденных мною ошибок в политиках SELinux-а. Советы он дает толковые, и к его мнению стоит прислушиваться.
Здравствуйте, Nuald, Вы писали:
N>Не проблема (чтобы не быть голословным, скажу что работаю в enforcing режиме больше двух лет). Для абсолютного большинства приложений хватает тех прав, которые раздает SELinux. Из оставшегося меньшинства остаются:
Меня этот SELinux окончательно достал, когда из-за него iptables-save >somefile молча (!) оставило мне пустой файл вместо дампа даблицы, а я на него рассчитывал.
Причем "низя" ему было не таблицу читать, а текстовые файлы писать в домашней директории рута.
Проблем с этими SELinux две: 1) правила пишутся в чрезвычайно низкоуровневых терминах. Это как на ассемблере программировать. В результате, в них много мелких ошибок, и глядя на файлы с правилами хрен чего поймешь 2) программы не понимают, когда им SELinux дает по мозгам, потому что выглядит это очень не по-юниксовски. Открыть файл на запись дали, а записать в него — не дали.
N>Замечу, что SELinux дисциплинирует разработчиков, т.к. заставляет думать о безопасности. Случаи, когда каталогам назначаются права 777, зачастую полностью обламываются SELinux-ом, и бедные PHP-шники рвут волосы на себе, пытаясь разобраться что и как делать. Мысль, что надо писать временные данные в /tmp, им почему-то не приходит в голову (см. паттерн использования smarty). Если честно, то я этому даже рад, т.к. бездумные поделки тупо не будут нормально работать на нормальных серверах, и никому не придет в голову их использовать, что автоматом выкашивает ряды быдлопрограммистов или заставляет их умнеть.
Вот что стоило бы создать более высокоуровневый API, в котором при создании файла/директории/и т.п. указываются не права в виде восьмеричного числа, а цель, с которой этот объект создается? А система бы уже сверялась со своими правилами безопасности, и выбирала бы правильные права с учетом назначения данного объекта.
Здравствуйте, Pzz, Вы писали:
Pzz>Меня этот SELinux окончательно достал, когда из-за него iptables-save >somefile молча (!) оставило мне пустой файл вместо дампа даблицы, а я на него рассчитывал.
Понимаю. Сейчас к счастью есть setroubleshoot, который показывает в GUI, какие ошибки доступа происходят (если конечно на сервере подняты X-ы).
Pzz>Проблем с этими SELinux две: 1) правила пишутся в чрезвычайно низкоуровневых терминах. Это как на ассемблере программировать. В результате, в них много мелких ошибок, и глядя на файлы с правилами хрен чего поймешь 2) программы не понимают, когда им SELinux дает по мозгам, потому что выглядит это очень не по-юниксовски. Открыть файл на запись дали, а записать в него — не дали.
Да не особо-то и низкоуровневые термины. Поначала не интуитивно понятно, это да. Но потом привыкаешь. К тому же есть много тулзов, облегчающих написание правил.
Насчет открытия файла — что-то вы путаете. Только что попытался открыть файл с закрытым контекстом на запись — выдался Permission Denied и выскочил AVC error. Так что все нормально.
Pzz>Вот что стоило бы создать более высокоуровневый API, в котором при создании файла/директории/и т.п. указываются не права в виде восьмеричного числа, а цель, с которой этот объект создается? А система бы уже сверялась со своими правилами безопасности, и выбирала бы правильные права с учетом назначения данного объекта.
Здравая мысль. Но разработчики используют системный API (open и т.п.) — затачивать разработки чисто под SELinux, используя его API, вряд ли кто-то будет.
Здравствуйте, Nuald, Вы писали:
Pzz>>Меня этот SELinux окончательно достал, когда из-за него iptables-save >somefile молча (!) оставило мне пустой файл вместо дампа даблицы, а я на него рассчитывал.
N>Понимаю. Сейчас к счастью есть setroubleshoot, который показывает в GUI, какие ошибки доступа происходят (если конечно на сервере подняты X-ы).
Ну понимаете, если бы я зарабатывал деньги системным администрированием, я бы, наверное, мог бы позволить себе убить месяц жизни на то, чтобы изучить selinux. А для простого программиста это, хм, overkill.
Я не всегда понимаю то, что рассказывает эта гуйня. Например, она пишет, что не пустила кого-то посмотреть на какую-то директорию типа ./12345. Я в принципе догадываюсь, что кто-то зачем-то попытался посмотреть в /proc/12345 (потому что больше нигде в системе нет директории с именем ./12345), но как я пойму, кто это был и зачем? Процесс с pid'ом 12345 давно завершился, и никаких следов от себя, естественно, не оставил.
N>Да не особо-то и низкоуровневые термины. Поначала не интуитивно понятно, это да. Но потом привыкаешь. К тому же есть много тулзов, облегчающих написание правил.
Именно что низкоуровневые. Убивает, кстати, невозможность повесить больше одной метки на файл ("с файлом XXX можно делать то, что можно делать с файлами в домашней директории И раздавать по самбе") и отсутствие эквиавалента вызова процедуры: т.е., описать какое-нибудь понятие, а потом ссылаться на него по имени (желательно с параметрами).
N>Насчет открытия файла — что-то вы путаете. Только что попытался открыть файл с закрытым контекстом на запись — выдался Permission Denied и выскочил AVC error. Так что все нормально.
iptables-save >bla-bla-bla.txt
bash'у дали открыть файл, а iptables-save не дали в него записать, "патамучта низзя". iptables-save этого не понял ("ну как же, file descriptor есть, а писать низзя"), и поэтому даже не пожаловался.
Да, iptables-save — кривая программа. Только они, увы, все такие, и с этим ничего не поделаешь.
Система — CentOS 5.3, не какое-нибудь старье.
Pzz>>Вот что стоило бы создать более высокоуровневый API, в котором при создании файла/директории/и т.п. указываются не права в виде восьмеричного числа, а цель, с которой этот объект создается? А система бы уже сверялась со своими правилами безопасности, и выбирала бы правильные права с учетом назначения данного объекта.
N>Здравая мысль. Но разработчики используют системный API (open и т.п.) — затачивать разработки чисто под SELinux, используя его API, вряд ли кто-то будет.
А этот API не обязан быть частью SELinux. На самом деле, это удобно. Прикладной программист хочет "временный файл, в который враги не смогут подглядеть", а не файл с такими-то атрибутами. Пусть система парится, как создать такой файл. А уж технические детали будут зависеть от настроек системы.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну понимаете, если бы я зарабатывал деньги системным администрированием, я бы, наверное, мог бы позволить себе убить месяц жизни на то, чтобы изучить selinux. А для простого программиста это, хм, overkill.
Не спорю. Однако если вы пишите софт, который будут запускать на других серверах, надо быть готовым к тому, что там будет стоять SELinux, и так просто его проигнорировать вы не сможете.
Pzz>Я не всегда понимаю то, что рассказывает эта гуйня. Например, она пишет, что не пустила кого-то посмотреть на какую-то директорию типа ./12345. Я в принципе догадываюсь, что кто-то зачем-то попытался посмотреть в /proc/12345 (потому что больше нигде в системе нет директории с именем ./12345), но как я пойму, кто это был и зачем? Процесс с pid'ом 12345 давно завершился, и никаких следов от себя, естественно, не оставил.
Если вы точно знаете, что это фигня, то можно воспользоваться тулзой audit2allow — и тогда это сообщение вас больше беспокоить не будет.
Pzz>Именно что низкоуровневые. Убивает, кстати, невозможность повесить больше одной метки на файл ("с файлом XXX можно делать то, что можно делать с файлами в домашней директории И раздавать по самбе") и отсутствие эквиавалента вызова процедуры: т.е., описать какое-нибудь понятие, а потом ссылаться на него по имени (желательно с параметрами).
А вас не смущает, что в UNIX-е все файловые атрибуты доступа сводятся к owner/group/other? Ведь тоже нельзя указать несколько групп. Но, конечно, можно сделать составную группу. В SELinux-е с этим проблемы, не спорю — сделать собственный тип не так просто.
Pzz>А этот API не обязан быть частью SELinux. На самом деле, это удобно. Прикладной программист хочет "временный файл, в который враги не смогут подглядеть", а не файл с такими-то атрибутами. Пусть система парится, как создать такой файл. А уж технические детали будут зависеть от настроек системы.
В данном случае все-таки это обязанность не программиста, а админа. А ему никто не мешает запускать программу под пользователем со специфической трансляцией, которая будет недоступна другим пользователям.
Но не хочу спорить — SELinux не серебряная пуля. AppArmor фактически умер. Еще остается GrSecurity, но пока у меня до него руки не дошли, так что ничего сказать не могу.
Здравствуйте, Nuald, Вы писали:
N>Не спорю. Однако если вы пишите софт, который будут запускать на других серверах, надо быть готовым к тому, что там будет стоять SELinux, и так просто его проигнорировать вы не сможете.
Насколько я понимаю, SELinux игнорирует софт, про который он ничего не знает.
Но в принципе, если преспичит, разберусь. Но не ранее того. Голова, она не резиновая
Pzz>>Именно что низкоуровневые. Убивает, кстати, невозможность повесить больше одной метки на файл ("с файлом XXX можно делать то, что можно делать с файлами в домашней директории И раздавать по самбе") и отсутствие эквиавалента вызова процедуры: т.е., описать какое-нибудь понятие, а потом ссылаться на него по имени (желательно с параметрами).
N>А вас не смущает, что в UNIX-е все файловые атрибуты доступа сводятся к owner/group/other? Ведь тоже нельзя указать несколько групп. Но, конечно, можно сделать составную группу. В SELinux-е с этим проблемы, не спорю — сделать собственный тип не так просто.
В таких терминах, разумеется, можно выразить что угодно. Но только по мере увеличения числа сущностей, количество правил у вас будет расти как произведение количеств разных сущностей. Что после некоторого момента делает такую систему практически unusable.
N>В данном случае все-таки это обязанность не программиста, а админа. А ему никто не мешает запускать программу под пользователем со специфической трансляцией, которая будет недоступна другим пользователям.
N>Но не хочу спорить — SELinux не серебряная пуля. AppArmor фактически умер. Еще остается GrSecurity, но пока у меня до него руки не дошли, так что ничего сказать не могу.
Я хочу сказать, что в selinux'е надо много чего еще сделать, прежде чем он станет действительно удобной и полезной вещью.
Здравствуйте, kochetkov.vladimir, Вы писали:
AF>>1. бороться с дырками вообще бесполезно — потому что чем меньше дырок, тем больше вирусов
KV>Количество вредоносного ПО под конкретные системы линейно зависит от популярности этих систем. Степень их уязвимости тут не причем.
Вообще говоря нелинейно. Более того — со временем увеличивается тоже нелинейно.
Здравствуйте, Nuald, Вы писали:
N>Не проблема (чтобы не быть голословным, скажу что работаю в enforcing режиме больше двух лет). Для абсолютного большинства приложений хватает тех прав, которые раздает SELinux. Из оставшегося меньшинства остаются:
Это на Линуксе так. А на виндовсе есть определенных хаос в отношении разрабов к программам и так уже лет двадцать не меньше.
Здравствуйте, DOOM, Вы писали:
DOO>Еще раз: если собеседник настаивает на подтверждении только потому, что он шлангом прикидывается — тратить свои силы и время на проведение анализа и т.п. совсем не охота.
Судя по тому, что мы с тобой по разному определяем что же такое эффективность, диалога всё равно не получится.
Кроме того, не знаю как дать ссылку на то чего нет.
Посему могу только сравнить сказаной тобой же с текстом по конкретным ссылкам, которые ты не даёшь.
Здравствуйте, Pzz, Вы писали:
N>>Не спорю. Однако если вы пишите софт, который будут запускать на других серверах, надо быть готовым к тому, что там будет стоять SELinux, и так просто его проигнорировать вы не сможете.
Pzz>Насколько я понимаю, SELinux игнорирует софт, про который он ничего не знает.
Pzz>Но в принципе, если преспичит, разберусь. Но не ранее того. Голова, она не резиновая
Как виндовс переписать, так всё можно, а как SELinux изучить, так голова не резиновая
Здравствуйте, Pzz, Вы писали:
Pzz>Ну понимаете, если бы я зарабатывал деньги системным администрированием, я бы, наверное, мог бы позволить себе убить месяц жизни на то, чтобы изучить selinux. А для простого программиста это, хм, overkill.
А вот тут ты в корне не прав. Много лет назад ты бы наверное говорил примерно то же про защищенный режим
А сейчас ты даже не замечаешь его "неудобства".
Здравствуйте, DOOM, Вы писали:
Pzz>>Ну понимаете, если бы я зарабатывал деньги системным администрированием, я бы, наверное, мог бы позволить себе убить месяц жизни на то, чтобы изучить selinux. А для простого программиста это, хм, overkill.
DOO>А вот тут ты в корне не прав. Много лет назад ты бы наверное говорил примерно то же про защищенный режим DOO>А сейчас ты даже не замечаешь его "неудобства".
Защищенный режим процессора — это платформа, позволяющая на своей основе делать разные полезные штуки, а с selinux'ом я сталкиваюсь не в качестве платформы, а в качестве продукта.
selinux в качестве платформы предназначен, все же, для очень специфического круга девелоперов. Например для тех, кто делает дистрибутивы линуха.
P.S., Защищенный режим процессора, кстати, появился уже на моей памяти. Я даже написал небольшую програмку (для DOS'а), которая этот самый защищенный режим включает и в нем живет — что-то типа сильно недоделанного дос-екстендера.
I>Во вторых, "Всевозможные write process memory, DLL injection, хуки и тому подобное" используются повсеместно и настолько широко, что кто то на твоём месте уже повесился бы
И будет дальше использоватся.
Если закроют на уровне WinAPI возможность — ну есть другие пути.
Например та задача с доработкой которой я вожусь сейчас(и писал в cpp.applied) — ну не решается она иначе кроме через загрузку левого кода в адресное пространства процесса и ковыряние там. Просто — не решается.
Говорить что это кривая поставка задачи можно конечно — только вот иного способа сделать плагинную систему к приложению в котором это не предусмотрено — пока никто не придумал.
И между прочим система эксплуатируется даже в том виде недоделанном виде что сейчас — и пользу — приносит.
И опять же — _юзеру_ оно не проблем не создает-работает именно с его ведома(и не заметить активность-сложно).
Закроют в WinAPI-ну значит юзеры будут грузить драйвер для тех же целей.
Закроют возможность с драйвером патчить юзерспейс(как-не знаю-ну а вдруг)- значит будем трахатся с например исходниками BluePill и будем через него патчить(по ряду причин запускать все это хозяйство в "полноценной" виртуальной машине-пока не выход).
AF>>Разграничить доступ к отдельным разделам API на основе правил — это недорого и несложно, по крайней мере для MS. Не сильно сложнее, чем обычный фаервол. I>Ну ты и дуб. И ежу понятно, что технически можно сделать все что угодно. Вопрос в том, как сделать так, что бы не отрубать эндузерам руки по сраку или даже по шею.
I>Кроме того, вопрос в том, как это потом продвигать и как бороться с обратной совместимостью и знать с кем судиться.
Про обратную совместимость тут проще забыть сразу imho.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Сказанное Синклером очевидно. Точкой удаленной атаки на десктопы, в 99% случаев, являются уязвимости прикладного кода, выполняемого в user-mode. Это очевидно настолько, что твоя попытка указать ему на отсутствие аргументов, в столь резкой форме, воспринимается как банальная грубость и попытка прицепиться к словам собеседника.
KV>Andrei F, теперь ты водишь. Рассказывай за что минус
Это всё очевидно, только речь вообще не шла о защите от удаленных атак.
Задача HIPS — изоляция зараженного процесса. Расскажи, каким боком user-mode функции относятся сюда?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>>Сказанное Синклером очевидно. Точкой удаленной атаки на десктопы, в 99% случаев, являются уязвимости прикладного кода, выполняемого в user-mode. Это очевидно настолько, что твоя попытка указать ему на отсутствие аргументов, в столь резкой форме, воспринимается как банальная грубость и попытка прицепиться к словам собеседника.
KV>>Andrei F, теперь ты водишь. Рассказывай за что минус
AF>Это всё очевидно,
Лукавишь. Если это для тебя очевидно, то зачем ты заявил, что "а то никаких фактов, зато словами вовсю швыряешься". Зачем тебе факты, подтверждающие очевидные для тебя же вещи?
AF>только речь вообще не шла о защите от удаленных атак.
Не приходило в голову, что локальную угрозу (с которыми и призваны бороться HIPS) может реализовывать удаленная атака?
AF>Задача HIPS — изоляция зараженного процесса. Расскажи, каким боком user-mode функции относятся сюда?
А как ты будешь получать ответ на вопрос, к примеру, "в контексте каких действий была вызвана NtFileCreate?", не перехватывая вызовы в usermode?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Лукавишь. Если это для тебя очевидно, то зачем ты заявил, что "а то никаких фактов, зато словами вовсю швыряешься". Зачем тебе факты, подтверждающие очевидные для тебя же вещи?
Сам факт очевиден. А то, что он вдруг перескочил с локальных угроз на удаленные — это совсем не очевидно.
KV>Не приходило в голову, что локальную угрозу (с которыми и призваны бороться HIPS) может реализовывать удаленная атака?
Брр, еще раз и внятнее?
KV>А как ты будешь получать ответ на вопрос, к примеру, "в контексте каких действий была вызвана NtFileCreate?", не перехватывая вызовы в usermode?
I>Andrei.F, у тебя есть готовое решение, как защититься от этой дыры ?
Дык он же как раз и предлагал НЕ ДАВАТЬ ПИСАТЬ КАКИМ ПОПАЛО ПРОЦЕССАМ в неподходящие места, например в места, где лежат dll нормальных рограмм...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали: I>>Andrei.F, у тебя есть готовое решение, как защититься от этой дыры ? E>Дык он же как раз и предлагал НЕ ДАВАТЬ ПИСАТЬ КАКИМ ПОПАЛО ПРОЦЕССАМ в неподходящие места, например в места, где лежат dll нормальных рограмм...
А про запись никто и не говорит.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Erop, Вы писали:
I>>Andrei.F, у тебя есть готовое решение, как защититься от этой дыры ? E>Дык он же как раз и предлагал НЕ ДАВАТЬ ПИСАТЬ КАКИМ ПОПАЛО ПРОЦЕССАМ в неподходящие места, например в места, где лежат dll нормальных рограмм...
Очень уместный комментарий, с учетм того, что никакой записи ни в какие файлы не предусматривает.
еще раз — длл грузится почти как обычный файл, патчится и на эту копию перенастраивается импорт-экспорт.
все в памяти процесса и никуда не сохраняется.
Это даёт 100% обход любых затычев сделаных в usermode