В ноябрьском выпуске журнала MSDN опубликована статья Говарда и Салливана в которой представлены 10 фрагментов уязвимого кода. Читателям предлагается найти все допущенные в них уязвимости, посчитать свои баллы и, тем самым, осуществить сабж. После каждого из фрагментов идет весьма познавательный "разбор полетов" на тему "почему так нельзя делать".
Набрал 12 баллов , зато есть куда развиваться
P.S: На радость "Нео и Морфеусов", 6 фрагментов написаны на C#
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>P.S: На радость "Нео и Морфеусов", 6 фрагментов написаны на C#
Справедливости ради надо заметить, что уязвимости, которые эти фрагменты демонстрируют, легко можно было проиллюстрировать и примерами на С/С++. А вот наоборот — вряд ли.
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!
Допустим, что код Linux – это приложение, помеченное как корень setuid. Когда приложение запускается обычным пользователем, приложение реально работает как корень, а это означает уязвимость локального повышения прав доступа.
Здравствуйте, Hobot Bobot, Вы писали:
KV>>P.S: На радость "Нео и Морфеусов", 6 фрагментов написаны на C# ;) HB>Справедливости ради надо заметить, что уязвимости, которые эти фрагменты демонстрируют, легко можно было проиллюстрировать и примерами на С/С++. А вот наоборот — вряд ли. :)
да вернитесь же наконец в сырую землю! вам легче спать от того, что именно такие уязвимости не получится сделать на С#? хорошо, нельзя именно эти, но можно нахреначить кучу других. и не забывайте, что в C++ есть готовые стандартные средства, которыми можно многократно сократить возможность допущения приведенных ошибок. скажете, что раз в языке есть потенциально небезопасные вещи, то ими нужно обязательно пользоваться? если вы пользуетесь "низкоуровневым" api, то должны понимать, как именно с ним нужно работать и, соответсвенно, берете на себя ответственность, за все потенциальные ошибки. хотите поковыряться в АЭС паяльником, вместо того, чтобы заменить готовый блок — ковыряйтесь.
Здравствуйте, vayerx, Вы писали:
V>Здравствуйте, Hobot Bobot, Вы писали:
KV>>>P.S: На радость "Нео и Морфеусов", 6 фрагментов написаны на C# HB>>Справедливости ради надо заметить, что уязвимости, которые эти фрагменты демонстрируют, легко можно было проиллюстрировать и примерами на С/С++. А вот наоборот — вряд ли.
V>да вернитесь же наконец в сырую землю!
Ну спасибо. Нет, я тоже вашего брата недолюбливаю, но чтобы настолько...
Можно один вопрос? Если все так радужно, почему большая часть уязвимостей, обнаруживаемая в ОСях и, скажем — броузерах, относится именно к этому классу уязвимостей (статистика, подтверждающая это есть на secunia.com и securityfocus.com)?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Можно один вопрос? Если все так радужно, почему большая часть уязвимостей, обнаруживаемая в ОСях и, скажем — броузерах, относится именно к этому классу уязвимостей (статистика, подтверждающая это есть на secunia.com и securityfocus.com)?
О какой именно статистике на secunia.com и securityfocus.com идет речь? Приведите, пожалуйста, конкретные ссылки.
Попытаюсь ответить априорно, правда, вопросом на вопрос. Какой процент софта, в котором обнаруженны уязвимости, написан/использует код "олдскульникамов" и/или ansi c? От какого объема софта считается процент (от суммарного во всем мире? от неуправляемого? etc?)? Как именно рассчитвается этот процент (кол-во приложений? кол-во пользователей? суммарное время использования? кол-во строчек кода? etc?)?
Здравствуйте, vayerx, Вы писали:
V>Здравствуйте, Hobot Bobot, Вы писали:
KV>>>P.S: На радость "Нео и Морфеусов", 6 фрагментов написаны на C# HB>>Справедливости ради надо заметить, что уязвимости, которые эти фрагменты демонстрируют, легко можно было проиллюстрировать и примерами на С/С++. А вот наоборот — вряд ли.
V>да вернитесь же наконец в сырую землю! вам легче спать от того, что именно такие уязвимости не получится сделать на С#? хорошо, нельзя именно эти, но можно нахреначить кучу других. и не забывайте, что в C++ есть готовые стандартные средства, которыми можно многократно сократить возможность допущения приведенных ошибок.
Забавно смотреть, как Microsoft игнорирует эти стандартные средства и взамен толкает свои долбанутые технологии SSAL и SRAL. Вероятно, индусов от программирования легче научить SSAL-у чем классу std::string.
kochetkov.vladimir wrote:
> познавательный "разбор полетов" на тему "почему так нельзя делать".
По поводу вопроса 6. Этот микрософт сам любит так дизайнить системы, что
совершенно разные сущности сваливаются в одну кучу. Этот IE-шный document.all,
аттрибуты тегов перемешанные с свойствами js-объектов, name и id элементов. Ещё
меня всегда поражал объект Request в ASP, который по операции Request("blah")
перебирает всё что можно — от http-заголовков, куков до POST data. И оказывается
эту великую идею перенесли и в ASP.NET. А теперь вот c безопасностью борются..
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, vayerx, Вы писали:
V>О какой именно статистике на secunia.com и securityfocus.com идет речь? Приведите, пожалуйста, конкретные ссылки. V>Попытаюсь ответить априорно, правда, вопросом на вопрос. Какой процент софта, в котором обнаруженны уязвимости, написан/использует код "олдскульникамов" и/или ansi c? От какого объема софта считается процент (от суммарного во всем мире? от неуправляемого? etc?)? Как именно рассчитвается этот процент (кол-во приложений? кол-во пользователей? суммарное время использования? кол-во строчек кода? etc?)?
Здравствуйте, kochetkov.vladimir, Вы писали:
>>>А теперь вот c безопасностью борются.. KV>Ваши предложения?
1) Расстрелять разработчиков Microsoft.
2) Переименовать Windows в "Linux".
kochetkov.vladimir wrote:
>> >А теперь вот c безопасностью борются.. > Ваши предложения?
Не использовать кривые технологии.
Скажем, в сервлетах сделано всё правильно, есть getParameter который берёт из
query string или из post. И есть getHeader — для заголовков http, и getCookies
для кук. Всё чётко разделено.
А в ASP если брать данные из формы, то нужно писать либо Request("param") —
который берёт откуда попало, либо
Request.QueryString("param").Item || Request.Form("param").Item (и это только в
js так удобно можно).
А уж если вспомнить весь этот ужас с установкой/настройкой, скажем того же IIS и
если сравнить с jetty...
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>В ноябрьском выпуске журнала MSDN опубликована статья Говарда и Салливана в которой представлены 10 фрагментов уязвимого кода.
За такой перевод нужно увольнять без выходного пособия .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ., Вы писали:
.>kochetkov.vladimir wrote:
>>> >А теперь вот c безопасностью борются.. >> Ваши предложения? .>Не использовать кривые технологии.
Скорее, не использовать технологии криво
.>Скажем, в сервлетах сделано всё правильно
И где сейчас сервлеты?
.>А уж если вспомнить весь этот ужас с установкой/настройкой, скажем того же IIS и .>если сравнить с jetty...
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, alexeiz, Вы писали:
A>>и взамен толкает свои долбанутые технологии SSAL и SRAL.
L>Что, реально есть такие технологии? Жесть!
alexeiz упомянул эти технологии, видимо потому является приверженцем куда более примитивных PEREVIRAL, GNAL и NECHITAL.
Речь о SAL. Собственно, говоря про security-костыли в плюсах, я в т.ч. SAL и имел ввиду.