Windows-баг, на который нет заплатки. Renkvil // 08.08.02 04:46
В Windows, а точнее в системе Win32 API обнаружена серьёзная уязвимость, которая возможно затмит все, доселе обнаруженные.
[Не забывайте при копировании материала указывать полный адрес источника: http://www.bugtraq.ru/rsn/archive/2002/08/10.html]
Уязвимости подвержены все версии Windows, начиная с WindowsNT 3.1.
Как предполагает автор, нашедший уязвимость, Microsoft какое-то время знала об ошибке.
Также в документе утверждается, что Microsoft не в состоянии пофиксить баг, так как это не просто уязвимость, а целый класс новых уязвимостей, таких как переполнение буфера и т.д.
Уязвимости также подвержены все приложения, написанные для платформы Windows.
В настоящий момент не известен ни один эксплоит использующий найденную ошибку.
Следим ра развитием событий...
Более подробное описание проблемы:
http://security.tombom.co.uk/shatter.html
Ну загнули. Прям таки новый класс атак, как переполнение буфера.
Почитал, впечатлённый заголовком.
Во-первых, в статье описана вовсе даже и не ошибка Win32 а скорее ошибка "Network Associates VirusScan v4.5.1".
Эта программа, видимо, работающая как служба, взаимодействующая с пользователем, не проверяет вводимые пользователем параметры. В этом и ошибка.
Во-вторых, обобщение этой ошибки - ошибки глупых разработчиков софта, а не Win32 API. Разве что, он виноват уж тем, что позволяет совершать ошибки.
В третьих, про такого рода ошибки уже дивным давно везде написано: нечего создавать интерактивные сервисы, да ещё потом вводом пренебрегать. Даже у меня (http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=52837, или прямую ссылку внизу).
MS не рекомендует создавать интерактивные сервисы, вообще они существуют исключительно ради упрощения переноса серверного ПО, изначально не проектировавшегося как служба windows.
Ну и, наконец, автор ошибся, в том, что нет способа это всё пофиксить.
However, the following registry key contains a value, NoInteractiveServices, that controls the effect of SERVICE_INTERACTIVE_PROCESS:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows
The NoInteractiveServices value defaults to zero, which means that services marked with SERVICE_INTERACTIVE_PROCESS will be allowed to run interactively. When the NoInteractiveServices value is set to a nonzero value, no service started thereafter, regardless of whether it has been configured with SERVICE_INTERACTIVE_PROCESS, will be allowed to run interactively. Думаю, MS скоро это всё прикроет нафиг, запретив интерактивные сервисы подефолту.
P.S.
А в письме MS правильно ответил автору:
...we have, for a long time now, recommended against interactive services. Given this, I would recommend that you contact the program's owner and let them know of your report. Хоть и не в тему морозил про 10 правил.
> Во-первых, в статье описана вовсе даже и не ошибка Win32 а > скорее ошибка "Network Associates VirusScan v4.5.1". > Эта программа, видимо, работающая как служба, > взаимодействующая с пользователем, не проверяет вводимые > пользователем параметры. В этом и ошибка.
А как она их проверит и какие параметры? Стандартный едитбокс, хэндл к нему сама винда раздает, сообщения посылаются напрямую оконной процедуре. Здесь надо регать новый класс окна со своей оконной процедурой и уже в ней проверять корректность параметров. Надо-то всего увеличить размер буфера едитбокса и скопировать в него код под видом текста. Не писАть же новые классы для всехпотенциальноопасных контролов?
> Во-вторых, обобщение этой ошибки - ошибки глупых > разработчиков софта, а не Win32 API. Разве что, он виноват > уж тем, что позволяет совершать ошибки.
Ага, разработчики... А как тебе сообщение от таймера, непосредственно в которой адрес процедуры обработки передается? И которая (процедура) выполняется без всяких вопросов и проверок!
> В третьих, про такого рода ошибки уже дивным давно везде > написано: нечего создавать интерактивные сервисы, да ещё > потом вводом пренебрегать. Даже у меня > (http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=528 > 37, или прямую ссылку внизу).
Тут согласен, нечего заводить интерактивность в окнах с системными привилегиями.
> MS не рекомендует создавать интерактивные сервисы, вообще > они существуют исключительно ради упрощения переноса > серверного ПО, изначально не проектировавшегося как служба > windows.
Ага
> Ну и, наконец, автор ошибся, в том, что нет способа это всё > пофиксить. > However, the following registry key contains a > value, NoInteractiveServices, that controls the effect of > SERVICE_INTERACTIVE_PROCESS: > HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows > The NoInteractiveServices value defaults to zero, which > means that services marked with SERVICE_INTERACTIVE_PROCESS > will be allowed to run interactively. When the > NoInteractiveServices value is set to a nonzero value, no > service started thereafter, regardless of whether it has > been configured with SERVICE_INTERACTIVE_PROCESS, will be > allowed to run interactively. > Думаю, MS скоро это всё прикроет нафиг, запретив > интерактивные сервисы подефолту.
Здесь имелось в виду, видимо, не то, что нельзя пофиксить интерактивные сервисы, а то что это все завязано на систему сообщений, изменить которую "вдруг" не получится. По-крайней мере, когда я читал, я подумал именно об этом.
Ой, как страшно :))))))))))13.08.02 01:21 Автор: Biasha <Бяша> Статус: Member Отредактировано 13.08.02 01:51 Количество правок: 1
У меня ещё и пописать немного впечатления хватило :)
> Не писАть же новые классы для всехпотенциально > опасных контролов?
Если уж делать интерактивный сервис - то писать :)
> > Во-вторых, обобщение этой ошибки - ошибки глупых > > разработчиков софта, а не Win32 API. Разве что, он > виноват > > уж тем, что позволяет совершать ошибки. > > Ага, разработчики... А как тебе сообщение от таймера, > непосредственно в которой адрес процедуры обработки > передается? И которая (процедура) выполняется без всяких > вопросов и проверок!
Да обидно немного, что не проверяют. Но они не очень то и должны. Раз уж доверяешь десктопу - доверяй и его сообщениям.
> Тут согласен, нечего заводить интерактивность в окнах с > системными привилегиями.
:))))))))))) Подумай что ты сказал :)
> > Ну и, наконец, автор ошибся, в том, что нет способа > это всё > > пофиксить. > > Думаю, MS скоро это всё прикроет нафиг, запретив > > интерактивные сервисы подефолту. > > Здесь имелось в виду, видимо, не то, что нельзя пофиксить > интерактивные сервисы, а то что это все завязано на систему > сообщений, изменить которую "вдруг" не получится. > По-крайней мере, когда я читал, я подумал именно об этом.
А система сообщений здесь и не виновата - её и не нужно править.
Виноваты лишь интерактивные сервисы.