Здравствуйте, Pzz, Вы писали:
Pzz>Ну тут есть два пути. Либо запретить его кастомизировать, что и хорошо в определенном роде, потому что можно привить пользователю привычку, что диалоги, имеющие отношение к безопасности, выглядят определенным образом (например, у них нарисована черно-белая зебра на title и милицейский свисток в качестве иконки ). Либо можно сделать отдельный интерфейс, позволяющий кастомизировать такие диалоги. При этом у программ, которые не понимают этот новый API, функционал не пострадает, а только внешний вид.
3. Кастомизированную часть сделать отдельным окном, которое отображается рядом с окном открытия файла. См например как сделано окно сохранения файлов в IrfanView. Так будет даже лучше — отделить мух от котлет.
Насколько я понимаю, кастомизированную часть создает ОСь по шаблону, а не сам клиентский код — значит, это изменение можно даже сделать прозрачно для клиентского кода.
Здравствуйте, Erop, Вы писали: E>Ну давала, ну и что? Права-то всё равно были бы ограничены правами приложения...
Это кто сказал?
Фишка как раз в том, что не очень понятно, что считать правами. Ну вот, к примеру — есть такой секретный битмэп, который можно заселектить себе в девайс контекст и начать рисовать по всему экрану. Хитрым парням это предоставляет широкие возможности по закрашиванию, скажем, системного заголовка "внимание, это не настоящий логон диалог". Только недалёкие люди могут думать, что здесь можно обойтись без понятий безопасности.
E>Насколько я понимаю, топикстартер рассматривает вообще ситуацию., что кто-то выкачал какое-то не то приложение циликом. И запустил его... Так что вопрос как какой-то код запустить у злоумышленников не стоит уже...
Насколько я понимаю, топикстартер "изобрел" очень старую идею в очень сыром виде. И при этом очень обижается, когда ему на это указывают.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Pzz, Вы писали: Pzz>На мой взгляд, с точки зрения именно user experience лучше было бы разделить выбор файла (имплицитно подразумевающий выдачу программе прав на его открытие) и все прочие манипуляции, уже не связанные с правами как таковыми. То, что диалог про права будет визуально отличаться от всех прочих, даже лучше: его будет труднее пропустить.
А на мой взгляд, это — неоправданная жестокость по отношению к пользователю. То есть я уже не смогу, к примеру, иметь дополнительную кнопку "Add folder to gallery" прямо в диалоге открытия; нужно будет такие простые вещи делать в два этапа.
Это и есть социальные ограничения — если вы сделаете супернадёжную дверь с семью замками, через которую нужно постоянно ходить туда-сюда, то пользователи просто заклеят замки скотчем. Потому что невозможно иначе работать.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, LuciferSaratov, Вы писали: LS>Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой. LS>Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы.
Отлично. На всякий случай напомню, что кросс-процессный SendMessage используется в винде направо и налево. Например, такая банальная штука, как tray icon, реализована именно через них.
Стало быть, при установке программы explorer.exe, потребуется спец.файл, где сказано "тут можно обходить защиту на SendMessage". Пока что всё ок, но как только мы вспомним про плагины к эксплореру, которые выполняются в его адресном пространстве, то сразу станет понятно, почему я называю предложение топикстартера детским лепетом.
Злоумышленнику будет достаточно встать таким плагином — и сразу наступит счастье, потому что експлореру по долгу службы нужны права практически на всё.
Даже если не заморачиваться обратной совместимостью с существующими программами, эта проблема не имеет простого решения. А если заморачиваться — так и вообще труба.
... << 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 — там реально было только разграничивать на уровне каталог несекретный, сокретный, сов. секретный и ОВ. Городить что-то более сложное — это было уже не потянуть.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, LuciferSaratov, Вы писали: LS>>Идея в том, что эти разрешения считываются из спец. файла (в AppArmor они называются профилями) или реестра, и устанавливаются вместе с программой. LS>>Сама программа непосредственно с ними не работает, они считываются ОС при запуске программы. S>Отлично. На всякий случай напомню, что кросс-процессный SendMessage используется в винде направо и налево. Например, такая банальная штука, как tray icon, реализована именно через них. S>Стало быть, при установке программы explorer.exe, потребуется спец.файл, где сказано "тут можно обходить защиту на SendMessage". Пока что всё ок, но как только мы вспомним про плагины к эксплореру, которые выполняются в его адресном пространстве, то сразу станет понятно, почему я называю предложение топикстартера детским лепетом. S>Злоумышленнику будет достаточно встать таким плагином — и сразу наступит счастье, потому что експлореру по долгу службы нужны права практически на всё.
Ну а если стать модулем winlogon'а, то ты еще и покруче админа будешь...
А если драйвером — дак вообще мега!
А вот если выводить сообщение, что вот тут какая-то непонятная штука мечтает стать расширением exlorer'а, у меня не зарегистрировано таких потенциальных расширений — вы поглядите в документацию или уточните у производителя нормально ли это. Разрешить регистрацию расширения (если не уверены нажмите "Нет").
И фокус по умолчанию на "Нет".
И конечно, профиль известных расширений должен модифицироваться групповыми политиками.
Вот тогда это будет работать.
Если ты мне сейчас начнешь говорить, что пользователи станут плеваться, то я напомню тебе про MS Outlook с его запретом на кучу разрешений, который не так-то просто отключить — пользователи колются, плачут, но продолжают утверждать, что лучше аутлука ничего нет (кстати, а этот поступок MS реально свел на нет заражения вирусами при помощи банальной рассылки исполняемых файлов).
Здравствуйте, 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.
Еще раз: этого хватает до сих пор. НО вышеперечисленные утилиты процесс облегчают.
Здравствуйте, 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>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали: AF>А вот это, кстати, тоже интересный вопрос — с какого хрена они выполняются в его адресном пространстве? Наверно, тоже от большого ума разработчиков, которые решили что добавить пару пунктов в контекстное меню или показать кастомный оверлей у файла по другому никак нельзя.
Интересная стратегия — вместо того, чтобы разобраться с уже повисшими вопросами, начать задавать новые. Ох, извини, разработчики Windows Explorer образца 1994 года плохо подготовились к твоей мега-идее, которую ты изобрёл в 2009м. Заранее предупреждаю — вся индустрия хреново подготовилась к твоему появлению. Никакие волхвы не пришли с дарами к твоей колыбели, звезда не взошла и всё такое.
Поэтому всё наоборот — это твои идеи должны как-то применяться к сложившемуся положению. Не хочешь работать с легаси — велком, для новых архитектур то, что тебе надо, уже придумано в значительно более продвинутом виде. Читать про CAS и Singularity.
Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности. К тому же, уровень угроз в то время был значительно ниже; поэтому потребность держать плагины в отдельном процессе была вовсе не очевидна. Зато была готовая технология интеграции сторонних приложений — COM. Вот на нём и реализовали плагинную архитектуру експлорера. И для своего времени это было очень хорошее решение. Которое позволило получить красивую и логичную функциональность при приемлемой производительности. Так что да — это было от большого ума разработчиков. Как и внесение графики в ядро — в те времена более кошерные архитектуры выглядели просто смешно, так как для банального перетаскивания окна с отрисовкой содержимого в промежуточные моменты требовалась железка за ~20000 уе.
... << 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>Ты считаешь способность изобретать чем-то плохим?
Нет, плохим считаю конкретное изобретение. А также неспособность видеть недостатки своего изобретения.
AF>Идеи в несыром виде бывают только в законченных продуктах. Да и то не во всех.
Ну, возможно стоило ознакомиться с законченными вариантами своей идеи? Или ты заранее отметаешь всё, что не ты придумал?
Ты спросил — почему не делают так-то и так-то. Тебе ответили: потому что это не работает. В зависимости от того, какие детали вкладывать в твою размытую мысль, получается один из следующих вариантов:
1. Защита ни от чего не защищает, а только затрудняет деплоймент законопослушных приложений
2. Защита защищает, но с ней несовместимы почти никакие существующие программы
3. Защита защищает, программы совместимы, но объем потребной разработки заведомо превышает доступные ресурсы
Если тебе что-то еще непонятно — спрашивай.
Лучше повежливее, потому что заниматься просвещением безграмотных — тоже работа. Которую очень легко отказаться делать.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF>3. Кастомизированную часть сделать отдельным окном, которое отображается рядом с окном открытия файла. См например как сделано окно сохранения файлов в IrfanView. Так будет даже лучше — отделить мух от котлет.
Каким образом планируется взаимодействие этих частей? Каким образом это будет работать для тех случаев, где кастомизированная часть не расположена "рядом", а разбросана по диалогу?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Andrei F., Вы писали:
AF> S>Насколько я понимаю, топикстартер "изобрел" очень старую идею
AF> Ты считаешь способность изобретать чем-то плохим?
Я вообще тебя не понимаю. Ты в первом сообщении задал вопрос: «что мешало МС реализовать мою мега-супер-крутую идею?» Тебе уже в сотне сообщений наглядно показали, что. А ты продолжаешь всех считать лохами, МС — тупыми баранами, а себя — в белом платье.
Твое «изобретение» аналогично выражению«хочу кнопку "Сделать мне звездато"»
Здравствуйте, Mamut, Вы писали:
M>Я вообще тебя не понимаю. Ты в первом сообщении задал вопрос: «что мешало МС реализовать мою мега-супер-крутую идею?» Тебе уже в сотне сообщений наглядно показали, что.
Не показали. Все указанные проблемы решаемы.
M> А ты продолжаешь всех считать лохами
Только некоторых. Тех, кто слишком любит песню "все хорошо, прекрасная маркиза"
M>МС — тупыми баранами
Вот здесь верно, да. При их огромных финансах количество откровенно убогих решений не может не поражать. Не знаю, что здесь виновато — синдром динозавра, asshole driven development или еще какая причина. Но факт есть.
Здравствуйте, Sinclair, Вы писали:
S>Ну, возможно стоило ознакомиться с законченными вариантами своей идеи? Или ты заранее отметаешь всё, что не ты придумал?
А ты покажи мне нормально работающую реализацию HIPS для винды? Я даже сомневаюсь что ее можно создать кому-то, кроме самого Microsoft.
S>3. Защита защищает, программы совместимы, но объем потребной разработки заведомо превышает доступные ресурсы
Вот с этого места — подробнее.
S>Лучше повежливее, потому что заниматься просвещением безграмотных — тоже работа.
Нахамить и одновременно обвинить в хамстве одним предложением — это уровень великого гуру демагогии
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, waricom-11, Вы писали:
I>Я и говорю "Окна видимого может и не быть". I>Более того "может и вообще окна не быть"
I>это к случаю про чтение текстов.
А неплохо бы посмотреть, на что я отвечаю. Было предположение, что если сделать разделение доступа на уровне программ, то зловреды начнут обманывать пользователя с помощью мимикрии, выдавая свое окно за чужое. Естественно, при таком варианте не удастся просто так влезть в чужой процесс и показать окно от его имени.
Вы все же на контекст ответа смотрите, ага.