S>Теперь вернёмся к смешному вопросу про "с какого хрена". Поясняю: во времена, когда разрабатывалась архитектура windows explorer, типичными объемами RAM были 8-16MB, а тактовые частоты были хуже, чем у твоего телефона. Поэтому вариант "держать каждый плагин в отдельном процессе" принципиально не попадал по производительности. К тому же, уровень угроз в то время был значительно ниже; поэтому потребность держать плагины в отдельном процессе была вовсе не очевидна.
Те времена давно прошли, производительность выросла, и уровень угроз тоже.
S>Зато была готовая технология интеграции сторонних приложений — COM. Вот на нём и реализовали плагинную архитектуру експлорера. И для своего времени это было очень хорошее решение. Которое позволило получить красивую и логичную функциональность при приемлемой производительности.
Одна из полезнейших фич COM — возможность прозрачного переключения между inproc и outproc вызовами. В нормально спроектированном приложении, достаточно поменять один флажок в CoCreateInstance — и все плагины автомагически оказываются снаружи процесса. Для этого даже не нужно очень сильно стараться при программировании — достаточно не лажать слишком сильно. Но плагины оболочки по прежнему выполняются inproc.
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?
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>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, 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>Например, этот путь может выводиться в какой-нибудь отчет. Пользователи будут слегка удиивлены
Ну будут удивлены, и что?
Кроме того, например, при получении длинного имени эту штуку можно снимать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, 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 за всё время существования нашли только одну дырку, а его автор предлагает награды за их обнаружение.
Здравствуйте, 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> общаться с тобой дальше не вижу смысла.
Ну, с тобой надо было прекратить общаться еще после первого же твоего сообщения. Потому что неудобные для тебя вопросы ты тупо игнорируешь.
Здравствуйте, 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>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, DOOM, Вы писали: S>>Потому что с точки зрения пользователя, TortoiseSVN будет в точности таким же. Независимо от интеллекта пользователя. DOO>Зависимо. Нормальный пользователь возьмет Tortoise либо с сайта производителя, либо с корпоративного файлового сервера.
Нормальный пользователь не знает название производителя. Ну-ка, навскидку, кто его делает? Пользователь будет гуглить, и возьмет первое, что похоже на правду.
DOO>Про анализ стека почитал... Слишком тяжеловато, ИМХО, но для платформы, в которой можно менять все на лету, возможно, это единственный способ.
Это единственный способ для любой платформы. Я уже и так и эдак намекал, что у кода, загруженного в процесс из кошерных DLL, может и должно быть больше привилегий, чем у "прикладного" кода.
Просто в неуправляемом случае применение этого способа сильно затруднено.
DOO>Поднять планку для малварщика это тоже достижение
Я не согласен. Это как с DRM — вложили пять миллиардов долларов в защиту HD-DVD, и ее сломали через месяц после выхода. Вопрос: кто победил? Точнее, вопрос в том, кто проиграл — явно законные пользователи, у которых регулярно неиграет легально купленный контент. Ну и нахрена нам, Илюша, такие разборки (с) народ?
DOO>Проактивная защита, на самом деле, должна защитить только от zero-day атак — дальше есть стандартные средства сигнатурного анализа, антифишинга и т.д. и т.п. DOO>Безопасность — это не продукт, а процесс.
Угу.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.