Сказка о циничном ученом, простреленных ногах разработчиков
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 17:09
Оценка: 271 (26) +4 -7 :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))
Навеяно рассуждениями здесь (в ФП) о прочно засевших в песочницу .NET'a, и преимуществами нативного кода делфи перед управляемым шарповым в КСВ...

Хотите, расскажу вам на ночь сказку?

Жил да был в конце второй половины далекого двадцатого века ученый. Великий ученый, отменный математик и прирожденный физик. Но циничен он был — до жути. Все делал только для науки, и не перед чем ни останавливался. И даже ядерную бомбу, младшими сестрами которой впоследствии были уничтожены миллионы людей, он помогал строить ради науки, не иначе. А в перерывах между строительством ядерной бомбы, он подумывал о создании принципиально новой архитектуры вычислительных систем, наука о которых только-только зарождалась в буйных головах тогдашних гиков. Помыслы его были несомненно чистыми: сделать архитектуру простой, надежной и дешевой. И таки-создал. Да не абы какую, а самую, что ни на есть простую и дешевую, в основе которой лежал принципе хранения данных и кода в единой, совместно разделямой ими памяти. Но мало кто знал, что скрывается за созданием этой архитектуры. А скрывается за ним еще одно его злодеяние, которое совершил Джон по отношению ко всем, ныне существующим разработчикам, пишущим код для систем, построенных по его принципу. Ведь он, ни много ни мало, авансом прострелил обе ноги каждому из них. Бытует мнение, что разработчик впервые простреливает себе ногу, когда допускает свою первую грубую и, в то же время, трудноуловимую ошибку. Как бы не так. Лишь только прийдя в мир систем, построенных по архитектуре Джона, разработчик сразу же получает две, отнюдь не серебряных пули в свои нижние конечности...

Почему фон-Нейман изобрел именно эту архитектуру, в принципе, понятно. В том, насколько она оказалась успешной тоже можно убедиться воочию. Но знал ли он, к чему приведет его идея хранения данных и кода в единой памяти? Знал ли он, что спустя почти полвека, это неоспоримое достоинство предложенной им архитектуры начнет широко использоваться нечистыми на руку людьми, которые поймут, что подсунув коду специальным образом сформированные данные, при определенных условиях, они смогут заставить код выполнить эти данные, как если бы они сами были кодом? Осознавал ли он масштаб содеянного им? Вряд ли. Но с этого момента, любой программист, ковыляя на простреленных ногах по просторам написанного им же кода, был вынужден искать те места, в которых входные данные могли бы стать кодом и латать их заплатками, чтобы обеспечить безопасность разрабатываемой им системы.

Но как проще всего ковылять на простреленных ногах? Правильно: используя костыли. И они потихоньку таки-стали появляться. Сначала придумали помечать особым образом верхушку стека контрольной величиной, дабы впоследствии убедиться что он не был сорван через переполнение буфера. Потом выяснилось, что переполнить можно не только буфер, но и кучу (видели пример эксплуатации такой уязвимости? Вообще жесть, до такого додуматься). Стали пытаться как-то управлять кучей. Тогда выяснилось, что подсунуть процессору левый код можно и через специальным образом сформированные данные, обрабатываемые в форматной строке. Перестали использовать форматную строку. И т.д. и т.п.

А тут еще производители процессоров подтянулись со своими красивыми, никелированным костылями, призывающими помечать особым образом страницы памяти с данными, дабы процессоры могли понять, что ничего выполнять там не стоит. Но и это как-то не прижилось, да и на проверку — такие костыли оказались совсем кривыми и неудобными

Между тем, лучик надежды блеснул гораздо раньше, когда начали появляться интерпретируемые языки. Ведь если интерпретатор выполняет написанный код покомандно, значит он (в теории) имеет возможность полностью контролировать ход выполнения программы и, в случае чего, адекватно отреагировать на попытку обмануть процессор. Да и вообще, будучи отвязанным от архитектуры фон-Неймана, интерпретируемый код мог организовывать свою собственную виртуальную архитектуру, лишенную недостатков аппаратной. Точнее не код, а выполняющий его интерпретатор, но не суть. Одно было плохо: с быстродействием такого кода обозначились вполне реальные проблемы

И вскоре, гикам пришло в голову, что интерпретируемый код можно не выполнять заново каждый раз, а компилировать в более низкоуровневый — промежуточный, в байт-код. В этом случае, такой код будет по-прежнему отвязан от аппаратной архитектуры, но его приближение к машинному позволит выполнять его в разы быстрее. Сказано — сделано. Но все равно: скорость не та, хотя и выше на порядки.. Опять облом, нечего противопоставить банальным костылям, кроме тихоходного инвалидного кресла

И вот гикам приходит в голову идея, что промежуточный код ведь можно скомпилировать в самый что ни на есть нативный, процессорный перед первым его выполнением, если иметь гарантии того, что никоим образом код в виде данных в них не попадет, а если и попадет, то выполнится не сможет ну никак. И гики создают матрицу, совершенно отвязанную от фон-Неймановской архитектуры, верифицирующую каждую строчку выполняемого в ней кода, и не допускающую в принципе (by design) конфузов, свойственных предыдущим платформам. А благодаря компиляции промежуточного кода в нативный, скорость программы выполняющейся в матрице, ниже уже совсем не на порядки, а ряде случаев: вообще — быстрее.

И оказалось, что находясь в такой матрице, разработчику уже не нужны костыли, т.к. там его ноги оказываются совершенно не простреленными! Т.е. он может носиться по своему коду со скоростью пантеры, ходить с прямой спиной, гордо подняв голову, да вообще — делать все что угодно, а не тратить свое время на занудный поиск мест для латания на искалеченных ногах!

И что? Думаете праздник там, всеобщее ликование, фейрверки и воздушные шарики? Щас. Нарисовались на горизонтах матрицы всякие Нео с Морфеусами (еле дошли, тяжело ведь с простреленными ногами, да на костылях) и давай бухтеть, что это все иллюзия, обман, что нет бога кроме фон-Неймана и Страуструп пророк его, что так нельзя, а если и можно, то это не даст никаких выгод, что их костыли позволяют ходить на простреленных ногах быстрее, чем целые ноги жителей матрицы. В общем, стали всеобщее ликование всячески портить и праздник своим присуствием отравлять. Для них даже отдельную матрицу сделали, тоже управляемую, чтобы они могли со своими драгоценными костылями туда переселиться и постепенно выкинуть их нафиг. Ан нет, не получилось. Потому как оказалось, что они к костылям за долгое время ходьбы по-просту приросли...

Так и ковыляют они и по сей день, искалеченные, хмурые, с вросшими костылями под мышками, и бухтят, бухтят, бухтят... И поняли люди, что не излечить их, и что нужно просто дождаться их есстественного вымирания, и терпеть после этого их не легион, но маленькую горстку, которая будет вынуждена ковылять там, где матрицу при всем желании не развернуть. И продолжили люди свой праздник, и я на нем был, мед да пиво пил...

И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: Pavel Dvorkin Россия  
Дата: 30.10.08 13:59
Оценка: 10 (2) +1 :))) :)))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Между тем, лучик надежды блеснул гораздо раньше, когда начали появляться интерпретируемые языки. Ведь если интерпретатор выполняет написанный код покомандно, значит он (в теории) имеет возможность полностью контролировать ход выполнения программы и, в случае чего, адекватно отреагировать на попытку обмануть процессор.


Слушай, неужели ты в это всерьез веришь ? Неужели ты не понимаешь, что что бы ты ни делал и на чем бы не писал, в конечном счете работает оычный процесс Windows ? Который вполне можно хакнуть вместе с рантаймом .Net, при этом полностью игнорируя все его внутренние свойства! да, это нелегко будет сделать, придется разбираться во внутренностях .Net, но принципиально это вполне возможно.

KV>Так и ковыляют они и по сей день, искалеченные, хмурые, с вросшими костылями под мышками, и бухтят, бухтят, бухтят... И поняли люди, что не излечить их, и что нужно просто дождаться их есстественного вымирания,


А дай — кось я допишу. Но не в виде сказки, а в виде притчи.

И сбылось оно. Вымерли они, Как динозавры. Сказано было так, и стало так.
И хорошо без них стало. Не ковыляют, не бухтят. Благодать. Идут себе год за годом.

Только вот нечто странное обнаружилось. Новые версии Windows перестали появляться. Новая аппаратура перестала появляться — для нее драйвера нужны, а драйверописатели вымерли. Да и сама .Net что-то перестала развиваться — вымерли те, кто ее нативный уровень писал на презренном С++, а те, кто умеет только новые классы C# создавать, без них ни бе ни ме ни кукареку.

А новых средств нет — деньги платить заказчики перестали. За что платить-то ?

Собрались тут все управляемые программисты и коллективно отправились на могилу циничного ученого,и вопияли, и вознесли молитву богу — воскреси ты нам тех, кто нам работу обеспечивал и новые версии нативного ПО создавал.

И раздался трубный голос с неба : Не будет вам никакого их воскрешения. Выделите из себя, презренные, тех, кто еще хоть немного соображать умеет, и посадите их за изучение архитектуры машин и программирования. И будут они опять себе ноги простреливать, и пока не научатся стрелять как следует — будет у них плач и скрежет зубовный и в муках они будут рождать неуправляемый код. Будут они с тоской вспоминать милые дотнетовские времена и ругать на чем свет стоит великого циничного ученого. Но ничего, когда-нибудь все-таки научатся, и пойдет история своим ходом.

И пошли они, солнцем палимы...
With best regards
Pavel Dvorkin
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.10.08 09:22
Оценка: 8 (2) +4 -1 :)
Здравствуйте, minorlogic, Вы писали:
M>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника. Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case

Для веб-приложений все разработчики делятся на две группы. Тех, кто работает над безопасностью, и тех, кто будет над ней работать.

Потому что стоит тебе выставить в веб софтинку с уязвимостью типа privilege escalation, как тебя тут же заставят выпустить хотфикс. Даже если сама софтина — хрень для астропрогнозов.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[14]: Сказка о циничном ученом, простреленных ногах разраб
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 10:23
Оценка: 8 (1) +1 :))) :))
Здравствуйте, minorlogic, Вы писали:

M>Во взрослом девелопменте все банально. Для выполнения задачи выбирается подходящее средство, тут не место религиозным спорам.

Во взрослом девелопменте участвуют теже люди, что здесь устраивают холивары.
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.10.08 16:32
Оценка: 37 (5) +1
Здравствуйте, Lloyd, Вы писали:

L>Можно ссылки на прецендерты таких хаков? А то я не слышал о таком, интересно почитать.


Для Java Google выдает достаточно примеров. Хотя бы: http://www.internetnews.com/security/article.php/3654671

Для .NET так же есть. Вот: http://www.networkworld.com/news/2007/071307-net-vulnerability-bytes-web.html

Читать забавно:

Security consultant and researcher at Security-Assessment.com Matthew Strahan said a filename which contains a null byte in the .Net environment can launch a Null byte injection attack which allows servers to be fully compromised.

He said a flaw exists in an upload file code when the .Net Common Language Runtime (CLR) considers Null bytes as data to directly call a native C function call.

Поскольку никакая мейнстримовая управляемая среда на работает на голом железе, то появляется возможность добить ее с помощью нативного кода.

Но больше настораживает вот это:

Steps have finally been taken by Microsoft to protect millions of exposed networks vulnerable to a .Net exploit that was first discovered nine months ago.

During that time many customers were not only left in the dark, but left dangerously exposed by the vulnerability which was a null byte exploit.

Т.е. корпорации, на потенциал которой здесь так уповают, было проще в течении 9-ти месяцев молчать и не выпускать патч.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: security и safety - разные вещи!
От: gear nuke  
Дата: 31.10.08 08:35
Оценка: 2 (2) +4
Здравствуйте, kochetkov.vladimir,

KV>1. Если и можно будет хакнуть (а если бы это было так просто, то прецеденты бы уже давно были известны)


Если прецеденты неизвестны, на основании какой логики делаются выводы, что их нет? Например, это может быть просто неоправданно экономически в данный момент. Например, о некоторых атаках становилось публично известно только через месяцы...

KV>то только благодаря наличию в данной цепочке неуправляемого кода, о чем я тут всю тему и твержу.


Скорее, когда возникнет необходимость. Много ли известно малвари под "правильные" ОС? Нет, но это благодаря тому, что у подовляющего большенства стоит Виндос.

KV>На случай, если возникнут иллюзии, что весь код (и ОС и рантайма) не может быть верифицированным, стоит внимательно изучить архитектуру singularity.


Самое смешное, что пресловутое переполнение буфера тоже верифицируется тестами. (*)

Суть вот в чем. Выполнение данных возможно из-за "кривости" архитектуры. Это необходимое условие, поэтому на первый взгляд вполне логично: исправляя архитектуру, запрещаем выполнение данных и "решаем проблему". Только какую проблему? Почему же не очевидно, что решается не проблема "возможности хакнуть", а гораздо более узкая?

Вернёмся к (*). Переполнение буфера — следствие ошибки в логике работы с ним. Оно не обязательно приведет к выполнению шеллкода, может быть и просто DoS. Может быть еще что-то. Какие проблемы из этих решает предлагаемая серебрянная пуля?

В общем, дотнет — это хорошо. Действительно не позволяет выстрелить себе в ноги, но зачем это преподносить, как невозможность прострела ног кем-то еще? Подобные допущения в secutity могут оказаться серьёзной ошибкой.

KV>Но что еще более важно:


KV>2. В случае с управляемыми платформами, ответственность за устранение уязвимостей, обусловленных архитектурой фон-Неймана берут на себя ее разработчики, избавляя тем самым от этой возни разработчиков приложения. Хочу заметить, что разработчиками данной платформы являются отнюдь не студенты трех месяцев выпуска, а достаточно серьезная компания, вкладывающая в безопасность своих продуктов огромные деньги, средства и ресурсы.


Ага, пример уже есть — подписывание драйверов и PatchGuard в Vista 64. Маркетологи лихо подменили "обход DRM" на "malware".

KV>Наивно полагать, что в общем случае, разработчик приложения сможет организовать меры по обеспечению ИБ ХОТЯ БЫ на таком же уровне, на котором это делает данная конкретная "серьезная компания". Тем более, что ему и так есть чем заняться, помимо обеспечения безопасности своего продукта.


Значит пусть занимается своим делом — разработкой, а не security. Никого же не удивляет, что usability занимаются специально подготовленные люди? Вот и безопасностью (где, кстати, самое слабое звено всегда было и будет — человеческий фактор, а не дыры в софте) пусть занимаются специалисты. Ты, похоже, уже начал, но этот крик души больше похож на premature optimization и наезд на Морфеусов, чем взвешенный анализ векторов атак на конкретный софт. Это к тому, что есть задачи, где безопасность не важна. Как и есть вещи
Автор: gear nuke
Дата: 30.10.08
, где важно homoiconicity.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.10.08 08:51
Оценка: 22 (5)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>1. Особенность (а отнюдь не просчет) фон-Неймановской архитектуры обусловила существование вирусов и атак инъекций бинарного кода на современных платформах.


Где-то в 1990-м году вышла книга Николая Безрукова [http://vx.netlux.org/lib/anb00.html]"Компьютерная вирусология"[/url], в которой он дал очень подробный и интересный рассказ о становлении вирусов. Одна из первых программ такого рода получилась случайно:

Другим примером вирусоподобных программ была игра Animal (Животное), разработанная примерно в 1975 г. для Univac 1108. Суть этой игры состояла в том, что человек задумывал некоторое животное, и программа, задавая вопросы, пыталась определить, какое животное загадал человек. Программист, написавший игру, предусмотрел в ней возможность саморазмножения. Когда программа угадывала неправильно, она просила пользователя предложить вопрос, который позволил бы улучшить ее способности к отгадыванию данного животного. Запомнив этот вопрос, программа не только модифицировала себя, но и пыталась переписать свою обновленную (улучшенную) копию в другой каталог. Если там уже была программа Animal, то она стиралась. В противном случае создавалась новая копия. Оказалось, что через некоторое время все каталоги файловой системы содержали копию Animal. Более того, если пользователь переходил с машины на машину, то он переносил и свой каталог, и в результате во всех каталогах этой ЭВМ также появлялась Animal. При этом совокупность копий Animal занимала значительное файловое пространство, что в те времена воспринималось как проблема.

Что является хорошим примером того, как вирус способен распространятся, мутировать и наносить ущерб без инъекций бинарного кода, за счет использования только обычных средств ОС.

Так же показательны примеры вирусов Christmas Tree и Морриса, которые распространялись без использования иньекций бинарного кода.

KV>Интересующимся стоит почитать о работах Фреда Коэна и истории создания Core Wars.


Почему тогда уже сразу к Darvin не обратиться?

KV>2. Код, позволяющий произвольно и недетерминированно изменять собственную логику выполнения через передачу ему неожидаемые входных данных, не является работающим кодом.


Это сильно зависит от условий и обстоятельств.
Три примера:

1. HPC с использованием MPI. Злоумышленник имитирует подключение по MPI к нескольким копиям приложений, осуществляющих расчеты. И начинает отсылать в эти приложения совершенно левые данные. Приложения, наверняка, либо упадут из-за ошибок в арифиметических операциях (вроде вычисления квадратного корня из отрицательного числа), либо выдадут некорректные результаты.

2. Работает какое-то трейдинговое ПО, вроде обсуждаемого здесь
Автор: Cyberax
Дата: 26.10.08
. Это ПО подключено к конкретным серверам по защищенным соединениям и работает в условиях жесткого реального времени. Теоритически можно представить себе ситуацию, когда злоумышленники подставят свой сервер вместо реального и начнут гнать в трейдинговые приложения какой-то мусор.

3. Работает ПО класса АСУТП на каком-то технологическом процессе. Часть компьютеров выполняют управление оборудованием, часть являются управляющими работчими станциями, за которыми сидят операторы. Компоненты системы АСУТП общаются между собой по некоторому протоколу. Опять же теоритически можно представить себе, что злоумышленник на какой-то рабочей станции подключит вредоносное ПО, которое будет отсылать мусор в компоненты управления оборудованием.

Считаете ли вы, что для всех этих классов приложений нужно использовать серьезную защиту от вредоносных данных?

KV>4. Эти телодвижения возможны в трех позах:


KV> а) следить за своим кодом самостоятельно и кодить аккуратно и без ошибок ( — все мы люди)

KV> б) использовать костыли типа DEP для intel, SAL для C++, контроля стека/кучи и т.п. (у SAL еще есть шанс, остальное как-то не прижилось и ломалось/обходилось)
KV> в) перейти на управляемую платформу и позволить ей заняться исправлением "особенностей архитектуры"

KV>В любых других случаях, ваш код не будет работающим.


Почему нет варианта об использовании языков с более прозрачной семантикой, чем у C/C++, но компилирующихся в нативный код? Да еще обеспечивающих тотальный контроль за Например, Modula-2, Eiffel, Ada, OCaml, Haskell?

Опять же, если обратиться к книге Безрукова, то там есть интересная цитата из тьюринговской лекции Кена Томпсона:

Нельзя доверять программам, написанным не вами самими ... Никакой объем верификации исходного текста и исследований не защитит вас от использования ненадежного (untrusted) кода. По мере того как уровень языка, на котором написана программа, снижается, находить эти ошибки становится все труднее и труднее. "Хорошо продуманную" (well installed) ошибку в микрокоде найти почти невозможно.


Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.

Если вспоминать историю вирусных эпидемий на ПК под управлением ранних версий Макинтошей и Досов, то вирусу нужно было сначала запуститься вручную -- через зараженную программу (или произвести загрузку системы с зараженного носителя). Только после этого вирус мог модифицировать код ОС в памяти (если он был резидентным) или другие файлы/загрузочные сектора. И даже в таких условиях, когда WWW еще не было и основным способом передачи программ были дискеты (по крайней мере в Союзе), вирусы все равно умудрялись устраивать эпидемии.

Насколько я могу судить, ситуация сильно лучше не стала -- для большой части вирусов до сих пор требуется, чтобы пользователь запустил на исполнение зараженный файл. А дальше вирус может заняться модификацией файлов на диске. И здесь могут не помочь даже электронные подписи, т.к. существуют примеры, когда даже сертификаты умудрялись подменять, сохраняя MD5 подписи. А чтобы исполняемые файлы нельзя было изменить, нужна строгая политика ОС. И если ОС ее не обеспечивает, то переход с C++ на .NET является всего лишь временным улучшением, но не лекарством.

KV>Из внимательного чтения данной темы следует, что существуют разработчики, которые не хотят делать свой код работающим, но при этом и не позволяют изолировать себя в управляемую среду, а следовательно наносят вред окружающим своим тлетворным влиянием и дырявыми продуктами


А я вот хочу задать дилетанский вопрос: почему вообще на x86 под управлением Windows возможны такие вещи, как иньекции бинарного кода? Вроде как давно используется защищенный режим процессора, и управление доступом к страницам памяти. Почему страницы с кодом не защищены от записи и переполнением буфера можно передать управление на иньектированный вредоносный код?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 12:51
Оценка: +1 -3 :)
Здравствуйте, prVovik, Вы писали:

V>Ну вот атака из твоего списка: Denial-of-service attacks

V>Очевидно, что данная атака менее опасна, чем выполнение произвольного кода в контексте атакуемого приложения, ибо самое безобидное, что может сделать эксплоит — это уронить сервер (что и есть Denial-of-service attacks)

1. "уронить сервер" — это потенциально огромные финасовые потери.
2. это далеко не единственный вид атак, приведенный в википедии

V>Так что давай другую ссылку, эта не в тему.

эксклюзивно
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: Andir Россия
Дата: 30.10.08 13:57
Оценка: +2 -2 :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Как "краевед" хочу отметить, что атаки инсайдеров на интранет-системы, по крайней мере в нашей компании, случаются не реже чем атаки аутсайдеров на интернет-системы


Сказочки, либо "краеведный" отдел откровенно мается фигнёй.

С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha 4 rev. 1111 ) { /* Работаем */ }
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.11.08 11:40
Оценка: 8 (2) +2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>>>1. Особенность (а отнюдь не просчет) фон-Неймановской архитектуры обусловила существование вирусов и атак инъекций бинарного кода на современных платформах.


E>>Что является хорошим примером того, как вирус способен распространятся, мутировать и наносить ущерб без инъекций бинарного кода, за счет использования только обычных средств ОС.


KV>Ок, а червь?


E>>Так же показательны примеры вирусов Christmas Tree и Морриса, которые распространялись без использования иньекций бинарного кода.


KV>Насчет первого не скажу, а вот червь Морриса использовал переполнение буфера в finderd:

KV>Правда и "обычные средства ОС" там тоже были не на последнем месте, но тем не менее.

Дыра в finderd была только одним из способов, там же еще используется и второй способ (функция try_mail), который просто эксплуатируют особенность почтового агента на удаленной машине.

Червь Christmas Tree был вообще написан на Rexx-е -- а это сплошной управляемый код.

E>>Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.


KV>Атака именно на управляемое приложение через нативную уязвимость в его платформе, по сложности и оправданности похожа на операцию по удалению гланд через эээ... ну, низ спины За исключением этого факта, да, вы правы.


А почему вы считаете, что атаки чарез уязвимости в нативной части платформы очень сложны и не оправданы? На основании каких оценок?

E>>Насколько я могу судить, ситуация сильно лучше не стала -- для большой части вирусов до сих пор требуется, чтобы пользователь запустил на исполнение зараженный файл. А дальше вирус может заняться модификацией файлов на диске. И здесь могут не помочь даже электронные подписи, т.к. существуют примеры, когда даже сертификаты умудрялись подменять, сохраняя MD5 подписи. А чтобы исполняемые файлы нельзя было изменить, нужна строгая политика ОС. И если ОС ее не обеспечивает, то переход с C++ на .NET является всего лишь временным улучшением, но не лекарством.


KV>Blaster, Helkern/Slammer и им подобные не изменяли исполняемые файлы. Они вообще не имели тела как такового, но тем не менее, устроили неслабые эпидемии в свое время.


Странно -- у Blaster вроде как вполне конкретное тело есть -- msblast.exe. И для своего запуска на зараженной машине он использовал тривиальный метод -- реестр Windows. Т.е. дырявость механизмов ОС позволила ему даже не заниматься встраиванием своего тела в другие исполнимые файлы.


А вообще подумалось... Насколько я знаю, существует у безопасников негласное правило -- любая система защиты рано или поздно будет скомпрометированна. Поэтому, как минимум, слышать от безопасника о надежде на то, что переход к управляемым средам позволит избавится от проблем с безопасностью софта, несколько странно.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 10.12.08 17:54
Оценка: 5 (2) +2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


Полку Нео и Морфеусов прибывает. Google аннонсирует Native Client.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: minorlogic Украина  
Дата: 29.10.08 17:47
Оценка: 2 (2) +1 :)
Вернись тыв на сырую землю неужели ты думаешь что если бы была возможность хоть какнить ускорить выполнение декодирования h264 , его бы не переписали на управляемой среде ....


дет сад прямо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: FR  
Дата: 30.10.08 05:40
Оценка: 2 (1) +3
Здравствуйте, kochetkov.vladimir, Вы писали:

KV> я пишу на C#, но исключительно потому что мне его возможностей хватает с головой. Если решу сменить язык, то это будет (на данный момент) либо IronPython либо Nemerle. Выбор платформы очевиден и, в общем-то, озвучен в топике.


Ну тогда твой опус сильно мимо, на этих языках программирования и этой платформе тоже нет абсолютных гарантий ни по безопасности ни по корректности.

FR>>Так делаю пометку "Защищенный код" как планировал углубленно не изучать, также опасно для психики как функциональщина, лучше изучить нормально Хаскель, так как меня уже записали в злобные функциональщики


KV>Ну и зря "Защищенный код" вполне полезно почитать даже самым злобным функциональщикам, это совершенно не взаимоисключающие вещи.


Так я же читал уже, вот теперь побаиваюсь перечитывать
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 17:25
Оценка: 1 (1) -2 :)
А если серьезно и вкратце, то я не могу понять разработчиков, продолжающих добровольно использовать насквозь дырявые платформы и языки, уповая на собственную внимательность и иллюзорную способность не совершать ошибку.

А после очередного аудита или ревью, на фоне их пропаганды этих платформ и языков, не только не могу понять, но и борюсь с желанием стать тем самым маньяком-психопатом, знающим их домашний адрес

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: CreatorCray  
Дата: 31.10.08 09:15
Оценка: 1 (1) +3
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Но ОК, одна уязвимость засчитана Но она была закрыта 10.07.2007 и теперь ее, увы — нет.

Но одного этого факта достаточно чтобы перестать считать, что managed среда не подвержена атакам, свойственным unmanaged среде.

Т.е. посыл из самого первого сообщения темы про "И оказалось, что находясь в такой матрице, разработчику уже не нужны костыли, т.к. там его ноги оказываются совершенно не простреленными!" — неверен.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 06:36
Оценка: -4
Отвечу не только eao197 но и остальным кому не ответил относительно "исходных посылов" и замечательности .NET:

Посылы были (|| появились по ходу этой ветки) следующие:

1. Особенность (а отнюдь не просчет) фон-Неймановской архитектуры обусловила существование вирусов и атак инъекций бинарного кода на современных платформах. Особенностью она является именно потому что, благодаря ей эта архитектура приобрела такую популярность. И про вирусы народ узнал еще задолго до того, как появились персональные ПК, построенные по предложенным фон-Нейманом принципам. Т.е. задолго до пика популярности его архитектуры. Интересующимся стоит почитать о работах Фреда Коэна и истории создания Core Wars.

2. Код, позволяющий произвольно и недетерминированно изменять собственную логику выполнения через передачу ему неожидаемые входных данных, не является работающим кодом.

3. Исходя из п.1 и 2, программисты, желающие чтобы их код был работающим, должны предпринимать дополнительные телодвижения для достижения этой цели.

4. Эти телодвижения возможны в трех позах:

а) следить за своим кодом самостоятельно и кодить аккуратно и без ошибок ( — все мы люди)
б) использовать костыли типа DEP для intel, SAL для C++, контроля стека/кучи и т.п. (у SAL еще есть шанс, остальное как-то не прижилось и ломалось/обходилось)
в) перейти на управляемую платформу и позволить ей заняться исправлением "особенностей архитектуры"


В любых других случаях, ваш код не будет работающим.

Из внимательного чтения данной темы следует, что существуют разработчики, которые не хотят делать свой код работающим, но при этом и не позволяют изолировать себя в управляемую среду, а следовательно наносят вред окружающим своим тлетворным влиянием и дырявыми продуктами

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: prVovik Россия  
Дата: 31.10.08 10:30
Оценка: +1 -3
Здравствуйте, Pavel Dvorkin, Вы писали:

Может ещё по шнур питания из розетки выдернем и продемонстрируем тем самым уязвимость .NET приложений?
лэт ми спик фром май харт
Re[9]: security и safety - разные вещи!
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 05.11.08 07:04
Оценка: +4
Pavel Dvorkin,

PD>>>Даже если будет написан некий продукт, который перепишет загрузочный сектор, загрузит себя, захватит контроль над защищенным режимом и запустит ее из под себя ?

S>>Ничего не получится. В том смысле, что код, который захочет что-то записать в загрузочный сектор, должен это будет сделать при помощи обращения к коду ОС.

S>>Естественно, принцип можно обойти путем извлечения диска из компьютера и ручной замены загрузочного сектора.


PD>Зачем же извлекать ? Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.




Дисциплина "информационная безопасность" имеет смысл на существование (и это всегда оговаривается в учебниках по ИБ) только в предположении об отсутствии физического доступа к оборудованию. Иначе собственно и изучать нечего.

Так что разговоры о биосах, ресете и сброшенных атомных бомбах на электростанции — некорректны.

Аналогия для прояснения моей позиции: во время обсуждения приёмов рукопашного боя, один из участников говорит "а вот я вытаскиваю пистолет и выпускаю в вас всю обойму, ваши действия?". Имеет ли смысл обсуждать подсечки и броски через бедро в таком контексте? Предмет очевидно переходит совсем в другую дисциплину, а именно "самозащита против огнестрельного оружия".
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: EyeOfHell Россия eyeofhell.habr.ru
Дата: 08.11.08 21:34
Оценка: 30 (2) +1

Ведь он, ни много ни мало, авансом прострелил обе ноги каждому из них. Бытует мнение, что разработчик впервые простреливает себе ногу, когда допускает свою первую грубую и, в то же время, трудноуловимую ошибку. Как бы не так. Лишь только прийдя в мир систем, построенных по архитектуре Джона, разработчик сразу же получает две, отнюдь не серебряных пули в свои нижние конечности...


А инъекция кода в чужую программу — это что, самое страшное что у нас есть? ( приглашающий жест рукой, разверзание бездны, вылезание оттуда всякого ). Social Engineering — страшнее на порядок. Хоть намертво все обзащитить — если компьютер включен и за ним кто-то сидит, то он откроет e-mail и запустит оттуда кастомный троян, который по причине кастомности не распознает антивирус. И будет ему штатная модификация система. А вон то многоголовое чудовище — это возможность отсылать e-mail и сетевые пакеты по желанию. Обратите внимания на его тени — спам и дос. А еще есть замечательые алгоритмические уязвимости, когда не надо ничего инжектить и эксплоить — достаточно выдать неожиданную для программы последовательность валидных действий и она сама все сделает. Можете посмотреть на youtube как 'раскрывается' локнутый iPhone. Было бы смешно если бы не было так грустно.

Тут у нас не только ноги прострелены. Тут у нас в лучших традициях Hellsing все долго и вдумчиво расстреливалось из пулемета. И это ни коим образом не фатально — это абсолютно нормально. Средства атаки развивались, развиваются и будут развиваться быстрее, чем защита. Просто потому что атакующий вдумчиво и обстоятельно выбирает уязвимое место, зная о системе все или почти все. А защищающийся нифига не знает с какой стороны его атаковать будут. Интересующиеся могут поинтересоваться что и как эксплойтят 'рейдеры'. Очень занимательно. И намного страшнее компьютерных вирусов и уязвимостей.
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 16:39
Оценка: 9 (2) :)
Здравствуйте, Aikin, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Рассказать, почему при разработке 100%-го аналога виндового калькулятора необходимо озаботиться вопросами отсутствия в нем уязвимостей?

A>Было бы интересно

Виндовый калькулятор принимает входные данные не только через нажатия на кнопки, но и вставкой строки из буфера обмена (в режиме инженерного калькулятора). Попробуйте скопировать и вставить в него что-нибудь типа:

(3+2*13!-3^4):m:q


:m — это команда занесения результата вычислений в память
:q — комадна сброса всех изменений

Поэтому внешне изменений не будет, но если нажать на "MR", то из памяти калькулятора в строку ввода выведется результат этих вычислений. Это говорит о двух вещах:

1. В виндовом калькуляторе есть парсер арифметических выражений, причем не самый тривиальный.
2. Теоретически, данный парсер может быть уязвим к атакам на переполнение буфера, если в его реализации допущены ошибки.

Предположим, что мы обнаружили такую ошибку и теперь знаем, что если вставить в поле для вычислений строку, начинающуюся с точки и длиной не менее 64 байт, то тем самым, мы переполним буфер калькулятора и передадим управление в середину нашей строки. После этого мы подготовим эксплоит состоящий из точки и 63 символов, чей ASCII-код обозначает какую-нибудь незначимую операцию. Затем прицепим к нему шеллкод который будет забирать свое тело с заранее подготовленного нами веб-сервера простейшим TFTP и запускать его (можно взять готовый с metasploit). Тело в свою очередь будет периодически забирать команды для себя с того же сервера таким же простым http-запросом и выводить при своем запуске картинку анфаса Гейтса с размазанным по нему тортом. Эксплоит + шеллкод будет выглядеть как ASCII-строка, длиной 400-500 символом максимум. Тело может быть и бинарным, с учетом картинки будет весить несколько килобайт.

После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.

Все. Максимум сутки, и небольшая бот-сеть для рассылки спама и DoS атак у нас в кармане, а разработчикам калькулятора — незачет и потеря репутации.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 16:45
Оценка: 1 (1) +2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.


а зачем так сложно-то? рассылаем коллегам ссылочку "ой! какая классная программка: url" ;)
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.10.08 19:24
Оценка: 1 (1) +2
Здравствуйте, Lloyd, Вы писали:

L>Мутное какое-то описание. Вот здесь мне понравилось больше.


Я привел первые ссылки, которые мне выдал Google на запросы "Java vulnerability" и ".NET vulnerability"

E>>Поскольку никакая мейнстримовая управляемая среда на работает на голом железе, то появляется возможность добить ее с помощью нативного кода.


L>Смести немного акценты и фраза зазвучит иначе: т.к. нативный код оч. легко подвержен эксполоитам, то его стоит максимально замещать управляемым кодом.


Нативный код нативному рознь. Мне кажется, что фобии, которые здесь обсуждают являются следствием распространенности C и C++ (унаследовавшего проблемы C). Тогда как для нативных языков вроде Modula-2, Oberon, Eiffel и OCaml ситуация должна быть гораздо, гораздо лучше. Не говоря уже о строгих функциональных языках, которые транслируются в нативный код.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: minorlogic Украина  
Дата: 29.10.08 17:49
Оценка: +3
Еще открою вам правду , большинству разработчиков начхать , смогут ли в их ко встроить експлоин. И не потому что они такие ламеры, а потому что ИМ ЭТО НЕ НАДО,
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 29.10.08 18:21
Оценка: +1 :))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А если серьезно и вкратце, то я не могу понять разработчиков, продолжающих добровольно использовать насквозь дырявые платформы и языки, уповая на собственную внимательность и иллюзорную способность не совершать ошибку.


Вам, должно быть, еще страшнее от осознания того факта, что ПО, контролирующее, управляющее и противоборствующее тем самым младшим сестрам ядреной бомбы, написано на тех самых дырявых платформах и языках.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 14:28
Оценка: +1 -2
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, prVovik, Вы писали:


V>>Здравствуйте, vayerx, Вы писали:


V>>>во-первых, инъекцию кода, мы ведь о ней изначально говорили, еще нужно сделать — открытые дыры есть не везде и приглашение не всегда висит.


V>>Чушь. (с)

V>>Дальше что?
V>а аргументровать?

А что аргументировать? Ну да, открытые дыры есть не везде, и что с того? Это повод их делать?

V>а гдя я говорю, что это повод не бороться?


А о чем тогда спор? Вот и kochetkov.vladimir говорит, что надо бороться и обращает внимание, что управляемые среды гарантированно и автоматически защищают от атак такого рода.
лэт ми спик фром май харт
Re[5]: security и safety - разные вещи!
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.10.08 09:49
Оценка: +3
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Это действительно интересно многим здесь?


Не нужно ориентироваться на многих, просто делайте, что считаете нужным.

KV>Мне не трудно написать на эту тему пару статей, но мне показалось, что это тут нафиг никому "не упало".


Показалось. Лишние знания вообще редко бывают нужными.
Тем более у вас стиль письма хороший -- легкий и непринужденный, очень приятно читать.

Так что ждем-с.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 31.10.08 13:37
Оценка: +1 -2
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Зачем же извлекать ? Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.


Зачем так сложно? Берём системный блок и об стену его — гораздо проще надёжнее, чем с дискетами возиться!
лэт ми спик фром май харт
Re[16]: Сказка о циничном ученом, простреленных ногах разраб
От: GarryIV  
Дата: 31.10.08 14:25
Оценка: -1 :))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>>>А что еще? Мы ведь сейчас не о потенциальных потерях говорим, а о фактических?


IID>>Почему же только о фактических ? С твоих же слов: Успешных атак, повлекших за собой ущерб. Потенциальный ущерб — тоже ущерб.


KV>Ок, "повлекших за собой нанесение ущерба". Так лучше?



О которых узнало руководство
WBR, Igor Evgrafov
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: Andir Россия
Дата: 31.10.08 01:29
Оценка: 2 (1) +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я не имею права назвать конкретные цифры, к сожалению


Чёрт с ними с цифрами, ты хочешь сказать, что у вас в инсайдерах сидят "профессионалы" и занимаются тем, что атакуют ваши системы??? То что на внешнем периметре такие есть — я не сомневаюсь, но вот внутренние товарищи должны болеть за своё дело в прямом и переносном смысле.

Ладно, попробуем погадать:
1) Внутренний периметр == внешнему периметру.
Если внутренний и внешний периметр не имеют специально выделенных областей (например honeypots), то статистически понятно: чем больше пользователей — тем больше будет зафиксировано "подозрительных" событий, независимо от самих событий. Конкретные атаки на статистику повлиять не смогут — их гораздо меньше.
2) Внутренний периметр меньше внешнего,
Внутри сидят специалисты и автоматические системы, которые только тем и занимаются, что атакуют внутренний периметр (например, тот же XSpider отрабатывает свою стоимость),
3) Внутренний периметр больше внешнего (но периметры не имеют выделенных областей),
Пусть соотношение будет 1:50, то есть на 1 внутреннее "подозрительное" событие, существует 50 внешних. Если оценить кол-во интранет пользователей и умножить на 50, то мы получим примерное кол-во атакующих ежедневно внешний периметр. Есть сомнения, что атакующих снаружи больше (статистически) чем кол-во ваших пользователей*50 (второй множитель можно увеличить без вреда для производства)?
4) Внутренний периметр гораздо больше внешнего, то есть грубо говоря — снаружи сидит один веб-сервер с файрволом, а внутри тысячи серверов открытых внутреннему периметру.
На такой случай вопросов нет, но вызывают вопросы компетентность "краеведов", у которых внутренний периметр так хорошо "простреливается".
5) Статистический период выбран специально на тот момент, когда внутри проводился аудит безопасности с использованием спецсредств.

Вне конкурса:
6) IDS настроена как попало, и срабатывает от случай к случаю (причём центром притяжения является внутренний трафик, там анализировать проще — событий меньше),
Привет "краеведам"!
7) Ваша IDS срабатывает на каждые два пинга (атака СКАН ПОРТОВ!),
Статистически абсолютно неважно.
8) IDS очень точно настроена и срабатывает только на конкретные атаки.
У вас внутри есть набор инсайдеров, которые занимаются тем, что атакуют системы используя инструменты из того набора, который распознаёт IDS — опять аудит.

Во всех случаях, статистически внешних атак должно быть больше с учётом размера периметра. Кол-во компетентных специалистов (даже с учётом scripts kiddie) внутри гораздо меньше кол-ва внешних.
Единственные факторы, которые внутри "радуют" специалистов: это меньшая защищённость и большая заинтересованность. А это уже забота специалистов по инф.безопасности. [сарказм]Чем же они заняты? Пишут отчёты о конкретных атаках и статьи о некомпетентых программистах?[/сарказм]

С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha 4 rev. 1111 ) { /* Работаем */ }
Re: IMHO надо обсуждать не платформы, а фреймворки....
От: Erop Россия  
Дата: 10.12.08 00:42
Оценка: 2 (1) +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Навеяно рассуждениями здесь (в ФП) о прочно засевших в песочницу .NET'a, и преимуществами нативного кода делфи перед управляемым шарповым в КСВ...

KV>Хотите, расскажу вам на ночь сказку?

KV><...>


KV>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


IMHO, в этой сказке есть некоторый существенный прокол в логике. На этот прокол по мере обсуждения несколько раз указывал eao197, но его замечания как-то были проигнорированы.

Собственно в чём состоит рассмотренная в "сказке" проблема? В том, что можно переполнить стек или кучу и таки запустить свой код?
Ну так это легко
1) закрывается существующими аппаратными средствами. Просто это нафиг не нужно, на самом деле.
2) Если бы эта проблема реально была бы такой нереальной, можно было бы аппаратно как-то примитивно, но динамически, шифровать весь код при загрузке в память, а при исполнении уже в проце дешифровывать. Скажем хранить на сегмент где-то в процессоре случайное слово, которым весь код тупо xor'ить. И вы уже не сможете так легко угадать что за данные у вас должны получить управление, чтобы сделать что-то вменяемое. Аппаратно это вообще нифига не стоило бы, а защита от "фон-неймооновскости" архитектуры была бы почти абсолютная. Но так тоже не делают -- вопрос почему? IMHO, ответ тот же -- нафиг не требуется.
3) На самом деле, чтобы не позволить выполнять вредоносный код путём эксплуатации переполнения буфера, вполне достаточно иметь такой фрейм-ворк, при разработке приложений, при котором переполнить буфер крайне затруднительно.
Совершенно очевидно, и на это неоднократно указывал eao197, что нативный код может быть разработан на фреймворке, где эти вопросы таки продуманы.
Есть куча языков, как управляемых, так и нет, где возникновение такой ошибки крайне маловероятно.

Мало того, есть такие фреймворки и для С++. Наверное могут быть и для С, но не видел. Ну да бог с ним, с С. Ясно, что реально переполнения буферов -- это в значительной степени проблема программирования в стиле С. И то, что на С++ стандартная библиотека -- это не фреймворк, во всяком случае это не безопасный фреймворк (IMHO STL -- это средство для разработки фреймворков, но никак не продуманный фреймворк сам по себе).
Ну так это конкретная проблема С и STL. Ну и тех людей, кто пишет на этих средствах разработки, не удосужившись разжится фреймоврком, который бы обеспечивал нужные свойства программ. Например нужный уровень надёжности и безопасности.

Конечно управляемые языки появились относительно недавно и сразу с довольно неплохими и продуманными фреймворками. И поэтому они так успешны, IMHO.
Но при чём тут именно безопасность-то? Нативный код, разработанный при помощи фреймворка, спроектированного так, чтобы обеспечить безопасность, будет так же безопасен, как и управляемый. И тому и другому безопасность обеспечивается не тем, что код кто-то где-то верифицировал, а тем, что фреймворк не даёт вам написать ошибочный код. И только.

Так что, IMHO, у дотнета есть куча своих достоинств и недостатков, но непосредственно к безопасности это всё прямого отношения не имеет
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка: -2
Здравствуйте, vayerx, Вы писали:

KV>>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


V>вы забываете, на чем написанна ваша матрица. много ядер видели на управляемых языках? пробовали управлять dma java, c#, etc? безопасность кода не нарушалась? продолжать?


Даже если бы наша матрица была написана на все 100% с использованием неуправляемого кода (что не так), это бы ничего не значило. Также как для пишущих на неуправляемых языках ничего не значит возможное (а точнее, фактическое) наличие уязвимостей в ОС, под которую они пишут свой код.

Зона ответственности за безопасность нашей матрицы лежит на ее разработчиках так же, как она лежит на разработчиках ОС в случае с неуправляемым кодом.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 29.10.08 22:35
Оценка: +2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:

V>>вы забываете, на чем написанна ваша матрица. много ядер видели на управляемых языках? пробовали управлять dma java, c#, etc? безопасность кода не нарушалась? продолжать?

KV>Даже если бы наша матрица была написана на все 100% с использованием неуправляемого кода (что не так), это бы ничего не значило. Также как для пишущих на неуправляемых языках ничего не значит возможное (а точнее, фактическое) наличие уязвимостей в ОС, под которую они пишут свой код.

KV>Зона ответственности за безопасность нашей матрицы лежит на ее разработчиках так же, как она лежит на разработчиках ОС в случае с неуправляемым кодом.

это потому, что мы, так сказать, по разные стороны баррикад. вы существуете исключительно за счет работы "хромающих на обе ноги Нео и Морфиусов".
для подавляющей части прикладного софта управляемые языки сейчас вполне подходят. даже для каких-то задач встраимового ПО.
вполне возможно, многие "хромающие" бы согласились в вашим опусом, будь он чуть более конкретизирован в спектре задач. в общей же постановке вопроса, это похоже на попытки рубить сук, на котором сидите.

что касается уязвимостей, то для каждой задачи должно быть четкое понимание того, что делать желательно, необходимо, не нужно. защита от описанных вами уязвимостей, во-первых, нужна/необходима далеко не везде, а, во-вторых, сами описанные уязвимости являются далеко не самыми опасными из числа возможных. снятие головной боли в их отношении, безусловно, приятно, но не является панацеей от всех возможных ошибок
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 09:20
Оценка: :))
Здравствуйте, FR, Вы писали:

FR>>>Так делаю пометку "Защищенный код" как планировал углубленно не изучать, также опасно для психики как функциональщина, лучше изучить нормально Хаскель, так как меня уже записали в злобные функциональщики


KV>>Ну и зря "Защищенный код" вполне полезно почитать даже самым злобным функциональщикам, это совершенно не взаимоисключающие вещи.


FR>Так я же читал уже, вот теперь побаиваюсь перечитывать


Тут есть один маленький, но важный момент. Я не разработчик

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 09:29
Оценка: +2
Здравствуйте, Sinclair, Вы писали:

M>>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника. Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case

S>
S>Для веб-приложений все разработчики делятся на две группы. Тех, кто работает над безопасностью, и тех, кто будет над ней работать.

Вэб приложения могут использоваться не только в internet-е
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 11:09
Оценка: +1 -1
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Здравствуйте, vayerx, Вы писали:


V>>>код может считаться корректно работающим, но быть незащищенным. обратное, разумеется, неверно.


KV>>Т.е. код решающий поставленные перед ним задачи, но при этом рассылающий спам, или копию результатов решения задач кому либо, это корректно работающий код?


V>да, безусловно, но до тех пор пока обратное не оговоренно. ибо защита "от всего на свете" требует дополнительных человекомесяцев, а это — деньги.


Не надо лукавить. "Все на свете" не может быть оговорено в ТЗ по причине своего стремления к бесконечности. Тут речь не о каких-либо специальных мерах защиты, требующих написания дополнительного кода, а требование написания кода в рамках функциональных требований без совершения в нем ошибок определенного класса.

V>если подменить исполняемый модуль целиком, то рассылка спама и прочие радости тоже могут иметь место


Вот уязвимость в Lotus Notes, обнаруженная мной чуть больше года назад. Заключается именно в подмене исполняемого модуля с целью повышения локальных привилегий в системе. Bugtraq признал это уязвимостью данного продукта и (что еще важнее) ее признали и IBM, и приложили некоторые усилия для того, чтобы закрыть ее в следующих версиях. Не думаю, что им кто-то отдельно платил за дополнительные человеко-часы, потраченные на устранение данной уязвимости, т.к. эта атака была возможна из-за ошибки в их коде (точнее, в инсталяторе) и позволяла скомпроментировать всю систему. Или на IBM равняться не стоит?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 11:27
Оценка: +2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:


KV>>>Т.е. код решающий поставленные перед ним задачи, но при этом рассылающий спам, или копию результатов решения задач кому либо, это корректно работающий код?


V>>да, безусловно, но до тех пор пока обратное не оговоренно. ибо защита "от всего на свете" требует дополнительных человекомесяцев, а это — деньги.


KV>Не надо лукавить. "Все на свете" не может быть оговорено в ТЗ по причине своего стремления к бесконечности. Тут речь не о каких-либо специальных мерах защиты, требующих написания дополнительного кода, а требование написания кода в рамках функциональных требований без совершения в нем ошибок определенного класса.


так вот еще раз пытаюсь донести свое утверждение: описанный тобой "определенный класс ошибок" далеко не всегда является самым опасным из набора возможных. в сравнении с общим количеством способов получения доступа к данным или системе в целом, этот "определенный класс" не заслуживает столь длинной оды в топике.

V>>если подменить исполняемый модуль целиком, то рассылка спама и прочие радости тоже могут иметь место ;)


KV>Вот уязвимость в Lotus Notes. ... Не думаю, что им кто-то отдельно платил за дополнительные человеко-часы, потраченные на устранение данной уязвимости, т.к. эта атака была возможна из-за ошибки в их коде (точнее, в инсталяторе) и позволяла скомпроментировать всю систему. Или на IBM равняться не стоит?


а это ты вообще к чему? как бы тут повлиял управляемый код?
подмена модуля — это как раз пример способа атаки, от которого управляемый код не спасает
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 14:36
Оценка: +2
Здравствуйте, Pavel Dvorkin, Вы писали:

KV>>Между тем, лучик надежды блеснул гораздо раньше, когда начали появляться интерпретируемые языки. Ведь если интерпретатор выполняет написанный код покомандно, значит он (в теории) имеет возможность полностью контролировать ход выполнения программы и, в случае чего, адекватно отреагировать на попытку обмануть процессор.


PD>Слушай, неужели ты в это всерьез веришь ? Неужели ты не понимаешь, что что бы ты ни делал и на чем бы не писал, в конечном счете работает оычный процесс Windows ? Который вполне можно хакнуть вместе с рантаймом .Net, при этом полностью игнорируя все его внутренние свойства! да, это нелегко будет сделать, придется разбираться во внутренностях .Net, но принципиально это вполне возможно.


Можно ссылки на прецендерты таких хаков? А то я не слышал о таком, интересно почитать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.10.08 21:32
Оценка: +2
Здравствуйте, Lloyd, Вы писали:

E>>Нативный код нативному рознь. Мне кажется, что фобии, которые здесь обсуждают являются следствием распространенности C и C++ (унаследовавшего проблемы C). Тогда как для нативных языков вроде Modula-2, Oberon, Eiffel и OCaml ситуация должна быть гораздо, гораздо лучше.


L>Так ситуация для них и так гораздо-гораздо лучше.


Мне кажется, что тогда исходный посыл про матрицу-шматрицу и просчеты фон Неймана накрываются медным тазом, если есть нативные языки с очень высокой степенью безопасности.

L>Если такая лажа — в первых строчках гугла, то это наиболее "громкая" уязвимость на .Net-е.


Либо другой взгляд на мир -- .Net как "неуловимый Джо", который нафиг никому пока не упало взламывать
А для Java, afaik, это уже не первая уязвимость.

L>На неуправляемых языках такого рода проблемы гораздо более на слуху.


Visual Basic for Application из MS Word/Excel, насколько я знаю, управляемые языки. А вредоносных программ на них написано столько, что С/C++ и не снилось.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 31.10.08 10:48
Оценка: -2
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>2. Код, позволяющий произвольно и недетерминированно изменять собственную логику выполнения через передачу ему неожидаемые входных данных, не является работающим кодом.


в общем случае, не согласен. такое поведение кода можно отнести к нецелевому использованию ПО. это отчасти напоминает байку о том, что если кухонным комбайном выстрелить из катапульты, он перестает работать.


V>>аналогично устал повторять, что защита от атак через code injection — пренебрежимая фигня в сопопставлении с другими проблемами. в "общем" случае, разумеется.

KV>о да, фигня. Компроментация системы (так на секлабе классифицируются уязвимости инъекции бинарного кода), это та еще фигня, самая что ни на есть пренебрежимая.

по твоему вся задача разработки состоит из обеспечения защиты "от всего на свете".


KV>Т.е. последствия DoS в сравнении с последствиями инъекции кода мы уже не сравниваем?


при чем тут это? ты же про закладки начал говорить. поставить закладку можно не только через code injection.


V>>как это не к тебе? ты же ратуешь за эту серебрянную пулю.

KV>За какую именно, и где конкретно?

ну как же. разве не винтэссенцией топика не является явное указание на анахронизм не-управляемого кода в сравнении с серебрянной пулей в виде управляемых платформ? разве не ты предалагал "дождаться есстественного вымирания хромающих морфиусов" для наступления всеобщего счастья?


V>>зачем же отправлять своим непосредственным коллегам? ;) я, вообще, имел в виду коллег из "коллеги улыбнитесь"

KV>В любом случае необходимо обладать определенным авторитетом, чтобы люди (технически-грамотные) взяли и просто так сделали что-нибудь подобное.

а чтобы технически-грамотные люди вставили сомнительную строчку в калькулятор — не надо? ты где-нибудь видель пасхальное яйцо, для активации которого нужно было бы вводить 100+ сомнительных символов?
кроме того, не странно ли будет, если вдруг калькулятор в сеть полезет? в общем, получается, что твой пример с калькулятором получился не очень обоснованным. еще какие-то аргументы?
Re[7]: security и safety - разные вещи!
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 12:39
Оценка: +1 :)
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>В принципе ?
Да, в принципе.
PD>Даже если будет написан некий продукт, который перепишет загрузочный сектор, загрузит себя, захватит контроль над защищенным режимом и запустит ее из под себя ?
Ничего не получится. В том смысле, что код, который захочет что-то записать в загрузочный сектор, должен это будет сделать при помощи обращения к коду ОС.

Естественно, при этом будет произведена проверка привилегий. Стороннему коду получить привилегию на модификацию загрузочного сектора случайным образом невозможно.
Исполнить себя в контексте чужого процесса тоже нельзя — в принципе. Поэтому система всегда знает, что за код исполняется, откуда он такой взялся, и что ему можно, а что нельзя.
Выдать привилегии этому коду сможет только администратор, и только через стандартные средства.

В неуправляемой среде такой контроль невозможен: слишком низкая гранулярность безопасности. Вот простой пример: пишем ActiveX для использования в веб-странице. Естественно, експлорер оборудован дурацкой троекратной спрашивалкой: сначала нужно согласиться поставить, потом согласиться использовать, потом ткнуть в активикс чтобы согласиться активировать.
Всех это, естественно, парит. Ок, берем и пишем в инсталлере тривиальный код, который правит реестр так, как будто "пользователь уже всё активировал". Делов-то!
Ну вроде SoftIce для 9x, который и загружал Windows. Технически — да, очень сложно, может, практически нереализуемо, но в принципе ?
Как раз технически это очень несложно и практически реализуемо. К сожалению, принцип не даст такую штуку сделать.

Естественно, принцип можно обойти путем извлечения диска из компьютера и ручной замены загрузочного сектора. Но, к примеру, сделать то же самое через интернет в принципе не выйдет.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: security и safety - разные вещи!
От: vayerx  
Дата: 31.10.08 14:41
Оценка: -2
Здравствуйте, prVovik, Вы писали:

V>>Зачем так сложно? Берём системный блок и об стену его — гораздо проще надёжнее, чем с дискетами возиться! :maniac:

V>Интересно узнать, с чем не согласен vayerx?

если у тебя аргументы закончились, рекомендую перейти еще раз по приведенной ранее эксклюзивной ссылке
Re[12]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 31.10.08 14:45
Оценка: +1 -1
Здравствуйте, vayerx, Вы писали:

V>если у тебя аргументы закончились, рекомендую перейти еще раз по приведенной ранее эксклюзивной ссылке


Надо полагать, ты уже пришёл оттуда, раз так её нахваливаешь?
Или ты не понимаешь, что говорить о защищённости операционной системы можно лишь при условии физической недоступности компьютера?


P.S.: Ты бы ещё рассказал нам про уязвимость управляемых платформ перед ректальным криптоанализом
лэт ми спик фром май харт
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 05.11.08 18:27
Оценка: +2
Здравствуйте, kochetkov.vladimir

Не могу сейчас ответить на все, поэтому ограничусь парой моментов.

E>>Считаете ли вы, что для всех этих классов приложений нужно использовать серьезную защиту от вредоносных данных?


KV>А где грань между грамотным кодированием и дополнительными мерами по организации серьезной защиты? Я вообще-то, о первом.


Грамотное кодирование должно присутствовать в любом классе ПО изначально, ну т.е. по определению. Но, поскольку мы живем в реальном мире, то это утопия...

А грань, временами, проводится достаточно четко -- по объему накладных расходов, трудозатрат и стоимости ПО, в которое будут внедрятся средства для защиты от злонамеренных действий. Скажем, как только речь заходит о ПО реального времени, дополнительные издержки на проверку выхода за пределы массивов могут существенно влиять на удовлетворение условиям реального времени.

E>>Почему нет варианта об использовании языков с более прозрачной семантикой, чем у C/C++, но компилирующихся в нативный код? Да еще обеспечивающих тотальный контроль за Например, Modula-2, Eiffel, Ada, OCaml, Haskell?


KV>А это меня в тему "С/С++ vs C#" понесло, не обращайте внимания. Хотя ни один из перечисленных языков и не является столь обсуждаемым тут периодически "мейнстримом".


Те же самые Eiffel, Ada и OCaml находятся не так уж и далеко от мейнстрима, о котором здесь любят говорить. Настолько недалеко, что при непредвзятом отношении и достаточном объеме стартовых средств, выбор Eiffel или Ada для разработки может стать одним из слагаемых успеха.

В частности, не буду говорить за Ada и OCaml, но вот обучить нового человека Eiffel-ю гораздо проще, чем C++. И, если взяться за подготовку 3-4 толковых студентов, то за год из них можно будет создать хорошую команду разработчиков, которые смогут на Eiffel-е делать серьезное ПО. Что вряд ли осуществимо для C++.

Другое дело, что Eiffel и Ada -- это не модно. Раз уж здесь в ООП большими какашками бросаться начали, то что уж сейчас пытаться пропагандировать языки с 20-тилетней историей. OCaml здесь в лучшей ситуации, на волне интереса к ФП.

E>>А я вот хочу задать дилетанский вопрос: почему вообще на x86 под управлением Windows возможны такие вещи, как иньекции бинарного кода? Вроде как давно используется защищенный режим процессора, и управление доступом к страницам памяти. Почему страницы с кодом не защищены от записи и переполнением буфера можно передать управление на иньектированный вредоносный код?


KV>Страницы с кодом могут быть защищены, но это лежит на совести разработчиков, AFAIK Ну, или компиляторов, хотя не уверен. Вот в Google Chrome например, используются NX-биты для защиты его страниц , а (например) в qip — нет. Хотя класс приложений (и риски, связанные с атаками на них) примерно одинаковые


По моему скромному мнению, эти флаги должна расставлять ОС на основании информации из исполнимых файлах о сегментах кода, статических константных данных, просто данных и пр.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: security и safety - разные вещи!
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 06.11.08 06:57
Оценка: +2
gear nuke,

LCR>>Дисциплина "информационная безопасность" имеет смысл на существование (и это всегда оговаривается в учебниках по ИБ) только в предположении об отсутствии физического доступа к оборудованию.

LCR>> Иначе собственно и изучать нечего.

GN>Это неверно, и есть учебники, учащие прямо противоположному ("Исскусство обмана" Митник). Из рамок выше выходят, в частности: Lunchtime атаки — доступ к оборулованию есть (отвлекли секретаршу и сунули дискетку); DRM — запуск в "белом ящике" (полный контроль над потоками команд и данных).


Ну давай ещё добавь сюда учебники по ректальному криптоанализу, что уж там...

LCR>>Предмет очевидно переходит совсем в другую дисциплину, а именно "самозащита против огнестрельного оружия".


GN>Дисциплина остаётся та же — самозащита.


Молодец, ты на пути к полному абсурду. Можешь идти дальше и сказать, что это дисциплина "жизнедеятельность организмов". Короче, по теме изоляции процессов в Сингулярити есть что-нибудь?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: gear nuke  
Дата: 07.11.08 01:57
Оценка: 20 (1)
Здравствуйте, eao197, Вы писали:

E>Странно -- у Blaster вроде как вполне конкретное тело есть -- msblast.exe. И для своего запуска на зараженной машине он использовал тривиальный метод -- реестр Windows. Т.е. дырявость механизмов ОС позволила ему даже не заниматься встраиванием своего тела в другие исполнимые файлы.


Реестр, кстати, хороший пример. С одной стороны — это данные, верифицируемые системой безопасности Виндос, с другой — это команды (программа) для компонентов ОС.

E>

E>А вообще подумалось... Насколько я знаю, существует у безопасников негласное правило -- любая система защиты рано или поздно будет скомпрометированна.

Обычно исходят из того, что атакующая сторона обладает всеми необходимыми техническими средствами. Например, может подключиться к защищаемому каналу. Поэтому защита от MIM атаки строится на знании времени, за которое может быть скомпроментирован канал. Ключевым моментом в надёжности решения является NP-полнота проблемы, а не неизвестность решения, или верификация подключающихся.

E> Поэтому, как минимум, слышать от безопасника о надежде на то, что переход к управляемым средам позволит избавится от проблем с безопасностью софта, несколько странно.


Using System.Reflection namespace in .NET viruses

.NET will be the base of future Windows versions so that .NET viruses will
dominate in future.

People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 15:57
Оценка: 1 (1)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было.


либо вы о них не знаете
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: FR  
Дата: 29.10.08 17:46
Оценка: :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А если серьезно и вкратце, то я не могу понять разработчиков, продолжающих добровольно использовать насквозь дырявые платформы и языки, уповая на собственную внимательность и иллюзорную способность не совершать ошибку.


Я правильно понимаю что ты пишешь код исключительно на чем-то подобном этому http://en.wikipedia.org/wiki/Total_functional_programming ?

KV>А после очередного аудита или ревью, на фоне их пропаганды этих платформ и языков, не только не могу понять, но и борюсь с желанием стать тем самым маньяком-психопатом, знающим их домашний адрес


Так делаю пометку "Защищенный код" как планировал углубленно не изучать, также опасно для психики как функциональщина, лучше изучить нормально Хаскель, так как меня уже записали в злобные функциональщики
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка: -1
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>А если серьезно и вкратце, то я не могу понять разработчиков, продолжающих добровольно использовать насквозь дырявые платформы и языки, уповая на собственную внимательность и иллюзорную способность не совершать ошибку.


FR>Я правильно понимаю что ты пишешь код исключительно на чем-то подобном этому http://en.wikipedia.org/wiki/Total_functional_programming ?


я пишу на C#, но исключительно потому что мне его возможностей хватает с головой. Если решу сменить язык, то это будет (на данный момент) либо IronPython либо Nemerle. Выбор платформы очевиден и, в общем-то, озвучен в топике.

KV>>А после очередного аудита или ревью, на фоне их пропаганды этих платформ и языков, не только не могу понять, но и борюсь с желанием стать тем самым маньяком-психопатом, знающим их домашний адрес


FR>Так делаю пометку "Защищенный код" как планировал углубленно не изучать, также опасно для психики как функциональщина, лучше изучить нормально Хаскель, так как меня уже записали в злобные функциональщики


Ну и зря "Защищенный код" вполне полезно почитать даже самым злобным функциональщикам, это совершенно не взаимоисключающие вещи.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка: -1
Здравствуйте, minorlogic, Вы писали:

M>Вернись тыв на сырую землю неужели ты думаешь что если бы была возможность хоть какнить ускорить выполнение декодирования h264 , его бы не переписали на управляемой среде


и терпеть после этого их не легион, но маленькую горстку, которая будет вынуждена ковылять там, где матрицу при всем желании не развернуть


Как ты думаешь, о чем это я?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: FR  
Дата: 30.10.08 05:43
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


Конечно надо чтобы работал, но вот очень большому чимлу этих разработчиков нет никакой необходимости писать защищенный код, так как влияние этой самой защищенности на работоспособность кода у подавляющего большинства на сто каком-то месте.
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.10.08 09:22
Оценка: +1
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


M>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника. Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case


Даже боюсь представить что за программы вы разрабатываете.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 09:53
Оценка: -1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:


V>>код может считаться корректно работающим, но быть незащищенным. обратное, разумеется, неверно.


KV>Т.е. код решающий поставленные перед ним задачи, но при этом рассылающий спам, или копию результатов решения задач кому либо, это корректно работающий код?


да, безусловно, но до тех пор пока обратное не оговоренно. ибо защита "от всего на свете" требует дополнительных человекомесяцев, а это — деньги.

если подменить исполняемый модуль целиком, то рассылка спама и прочие радости тоже могут иметь место ;)
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.10.08 11:01
Оценка: +1
Здравствуйте, Lloyd, Вы писали:
L>Вэб приложения могут использоваться не только в internet-е
И что? Проблема в том, что они могут использоваться не только в интранете.
Более того, ваша идея (подразумеваемый ограниченный доступ) поднимает целый новый класс проблем.
В частности, далеко не всякий произвольный интранет так уж реально ограничивает доступ. Никакой гарантии того, что в него не войдет некий злоумышленник, нету.
Резюме: нет причины раскладывать грабли. Даже если вам кажется, что по ним никто не будет ходить.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 11:10
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

L>>Вэб приложения могут использоваться не только в internet-е

S>И что? Проблема в том, что они могут использоваться не только в интранете.

Многие приложния используются именно что только в интранете.

S>Более того, ваша идея (подразумеваемый ограниченный доступ) поднимает целый новый класс проблем.

S>В частности, далеко не всякий произвольный интранет так уж реально ограничивает доступ. Никакой гарантии того, что в него не войдет некий злоумышленник, нету.

Каким образом, если, например ограничить доступ виндовой аутентификацией для ограниченного круга лиц?

S>Резюме: нет причины раскладывать грабли. Даже если вам кажется, что по ним никто не будет ходить.


Если стоимость уборки граблей велика, а потери — маловероятны и малы, то почему бы и не оставить такие "грабли"?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 11:13
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Lloyd, Вы писали:

L>>Вэб приложения могут использоваться не только в internet-е
S>И что? Проблема в том, что они могут использоваться не только в интранете.
S>Более того, ваша идея (подразумеваемый ограниченный доступ) поднимает целый новый класс проблем.
S>В частности, далеко не всякий произвольный интранет так уж реально ограничивает доступ. Никакой гарантии того, что в него не войдет некий злоумышленник, нету.
S>Резюме: нет причины раскладывать грабли. Даже если вам кажется, что по ним никто не будет ходить.

Как "краевед" хочу отметить, что атаки инсайдеров на интранет-системы, по крайней мере в нашей компании, случаются не реже чем атаки аутсайдеров на интернет-системы

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: gear nuke  
Дата: 30.10.08 12:43
Оценка: :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Да не абы какую, а самую, что ни на есть простую и дешевую, в основе которой лежал принципе хранения данных и кода в единой, совместно разделямой ими памяти. Но мало кто знал, что скрывается за созданием этой архитектуры.


Фон-Нейман то — да, другое дело McCarthy:

While it is not uncommon for Lisp programmers to devise an alternate form for the language (of which MLISP is one example), some of which use M-expressions, such dialects generally lack the homoiconicity of S-expressions, which is considered an important part of the expressiveness of the language.


People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[15]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 13:06
Оценка: +1
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, vayerx, Вы писали:


V>>1. "уронить сервер" — это потенциально огромные финасовые потери.

V>Ага, а эксплоит вообще много чего умеет. Например, утянуть номера кредитных карточек клиентов.

способы "утянуть кредитные карточки" в вики тоже есть. читайте

V>>2. это далеко не единственный вид атак, приведенный в википедии

V>При наличии возможности эксплоита, остальные варианты атак ИМХО вообще теряют смысл. Зачем лезть в бронированную форточку, если двери открыты нараспашку?

чушь.
во-первых, инъекцию кода, мы ведь о ней изначально говорили, еще нужно сделать — открытые дыры есть не везде и приглашение не всегда висит.
во-вторых, кроме инъекции кода есть масса других способов.
Re[14]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 13:15
Оценка: +1
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, prVovik, Вы писали:


V>>Ну вот атака из твоего списка: Denial-of-service attacks

V>>Очевидно, что данная атака менее опасна, чем выполнение произвольного кода в контексте атакуемого приложения, ибо самое безобидное, что может сделать эксплоит — это уронить сервер (что и есть Denial-of-service attacks)

V>1. "уронить сервер" — это потенциально огромные финасовые потери.


А "оставить в сервере закладку и взять его под контроль" — это еще большие риски, т.к. с использованием данной закладки на сервер может осуществляться и DoS атаки в том числе.

V>>Так что давай другую ссылку, эта не в тему.

V>эксклюзивно

Т.е. аргументы кончились

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[17]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 13:27
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:


V>>во-вторых, кроме инъекции кода есть масса других способов.

KV>Обусловленных архитектурой фон-Неймана? Если нет, то к чему их приводить здесь?
нет, именно не обусловенных архитектурой фон-Неймана. смысл их преведения здесь — подтверждение мысли о том, что в твоем опусе "проблема прострелляных ног" очень сильно утрированна и притянута за уши.

KV>Т.е. аргументы кончились :(

нет, предложенные аргументы еще не были разобранны.

кстати, ты хотел "рассказать, почему при разработке 100%-го аналога виндового калькулятора необходимо озаботиться вопросами отсутствия в нем уязвимостей" ;)
Re[16]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 14:03
Оценка: -1
Здравствуйте, vayerx, Вы писали:


V>чушь.

V>во-первых, инъекцию кода, мы ведь о ней изначально говорили, еще нужно сделать — открытые дыры есть не везде и приглашение не всегда висит.

Чушь. (с)
Дальше что?

V>во-вторых, кроме инъекции кода есть масса других способов.


И что с того? Это повод не бороться с дырами, так как у vayerx`а есть ссылочка на википедию, где перечислены всевозможные названия атак?
лэт ми спик фром май харт
Re[20]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 15:25
Оценка: +1
Здравствуйте, vayerx, Вы писали:

V>нет, не повод. но, во-первых, не-управляемый код не тождественно равен наличию дыр.


Кто-то утверждал обратное?

V>во-вторых, остутствие дыр не всегда необходимо. в-третьих, управляемый код не защищает от всех дыр — это не панацея.


Кто-то утверждал обратное?
V>вот только управляемый код пока далеко не везде применим, и, соответственно, опусы в духе "на свалку неуправляемый код — пишем все на управляемом" смешны.
Имхо, такие опусы существуют лишь в твоём воображении. Во всяком случае, к этому топику они не имеют никакого отношения.
лэт ми спик фром май харт
Re[21]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 15:38
Оценка: -1
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, vayerx, Вы писали:


V>>нет, не повод. но, во-первых, не-управляемый код не тождественно равен наличию дыр.

V>Кто-то утверждал обратное?
ты. фразой "то повод их (дыры) делать?"

V>>во-вторых, остутствие дыр не всегда необходимо. в-третьих, управляемый код не защищает от всех дыр — это не панацея.

V>Кто-то утверждал обратное?
имхо, утверждал в первую очеред топикстартер, написав о бухтящих и хромающих Нео, представляющих не-управляемые языки. в то время как управляемые языки по мненинию того же топикстартера должны были привести к "празднику там, всеобщему ликованию, фейрверкам и воздушным шарикам".

V>>вот только управляемый код пока далеко не везде применим, и, соответственно, опусы в духе "на свалку неуправляемый код — пишем все на управляемом" смешны.

V>Имхо, такие опусы существуют лишь в твоём воображении. Во всяком случае, к этому топику они не имеют никакого отношения.
и какой же, в твоем понимании, основной смысл данного опуса?
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 30.10.08 15:45
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А почему многие считают, что незащищенный код == рабочий код?


Наверное, потому что этот код работает.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:24
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Т.е. корпорации, на потенциал которой здесь так уповают, было проще в течении 9-ти месяцев молчать и не выпускать патч.


Тебе не кажется, что если бы ей было реально воспользоваться, для компроментации то шумиха поднялась конкретная, и пресса мимо такого бы не прошла?

Но ОК, одна уязвимость засчитана Но она была закрыта 10.07.2007 и теперь ее, увы — нет.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:29
Оценка: :)
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.


V>а зачем так сложно-то? рассылаем коллегам ссылочку "ой! какая классная программка: url"


От коллег потом можно и в дыню получить, если что

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 17:29
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Читать забавно:

E>

E>Security consultant and researcher at Security-Assessment.com Matthew Strahan said a filename which contains a null byte in the .Net environment can launch a Null byte injection attack which allows servers to be fully compromised.

E>He said a flaw exists in an upload file code when the .Net Common Language Runtime (CLR) considers Null bytes as data to directly call a native C function call.


Мутное какое-то описание. Вот здесь мне понравилось больше.

E>Поскольку никакая мейнстримовая управляемая среда на работает на голом железе, то появляется возможность добить ее с помощью нативного кода.


Смести немного акценты и фраза зазвучит иначе: т.к. нативный код оч. легко подвержен эксполоитам, то его стоит максимально замещать управляемым кодом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: Воронков Василий Россия  
Дата: 30.10.08 17:45
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.


Я попробовал себе представить внешний вид данной "строки", чтобы на программерском форуме человек не увидел подвоха и "вставил" бы это дело в калькулятор
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: Andir Россия
Дата: 31.10.08 07:34
Оценка: +1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Я попробовал себе представить внешний вид данной "строки", чтобы на программерском форуме человек не увидел подвоха и "вставил" бы это дело в калькулятор


Ходила помнится строчка из Perl по интернету (даже на RSDN была), которая трансформировалась в удаление корневого каталога (rm -rf /). Так даже админы её копировали и запускали

С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha 4 rev. 1111 ) { /* Работаем */ }
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 09:58
Оценка: -1
Здравствуйте, eao197, Вы писали:

E>Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.

Слово верификация вам ни о чем не говорит? На .NET код перед запуском проверяется. Для того чтобы выполнить произволный код в программе на .NET нужна уязвимость в CLR, которых гораздо меньше, чем уязвимостей в программах на неуправляемых языках, и исправляются такие ошибки быстрее.

ЗЫ. Ваши рассуждения похожи на рассуждения о том что самолет не может летать потому что он тяжелее воздуха.
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: minorlogic Украина  
Дата: 31.10.08 10:06
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>На рассматривалась, потому что приведенный тобой пример — уязвимость деплоймента, а не девелопмента


Во взрослом девелопменте все банально. Для выполнения задачи выбирается подходящее средство, тут не место религиозным спорам.

Если тербуется обеспечить определенный уровень надежности то и выбирается соответствующее средство, а не разводится флейм управляемый против неуправляемого.


И у Фон Неймана, не стояло задачи изолировать код от данных. Не потому что злодей , а потому что не стояло такой задачи.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 10:24
Оценка: -1
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Это-то так, но суть как раз в том, что разрабатывая под неуправляемую платформу, разработчикам приходится думать И об инъекциях бинарного кода, И о более "прикладных" атаках. Честно говоря, я это уже устал повторять.


V>аналогично устал повторять, что защита от атак через code injection — пренебрежимая фигня в сопопставлении с другими проблемами. в "общем" случае, разумеется.


о да, фигня. Компроментация системы (так на секлабе классифицируются уязвимости инъекции бинарного кода), это та еще фигня, самая что ни на есть пренебрежимая.

http://www.securitylab.ru/analytics/351464.php
http://www.securitylab.ru/analytics/358113.php

http://www.securitylab.ru/analytics/360135.php

V>>>чтобы оставить на "сервере закладку" именно code injection не обязателен.

KV>>Но если был code injection, то можно оставить на сервере закладку, в отличии от DoS атаки.

V>а что, кроме DoS'а — никак?


Т.е. последствия DoS в сравнении с последствиями инъекции кода мы уже не сравниваем?

KV>>>>хз, к чему этот вопрос?

V>>>вопрос к портируемости.
KV>>Это не ко мне.

V>как это не к тебе? ты же ратуешь за эту серебрянную пулю.


За какую именно, и где конкретно?

KV>>>>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку.

V>>>а зачем так сложно-то? рассылаем коллегам ссылочку "ой! какая классная программка: url"
KV>>От коллег потом можно и в дыню получить, если что

V>зачем же отправлять своим непосредственным коллегам? я, вообще, имел в виду коллег из "коллеги улыбнитесь"


В любом случае необходимо обладать определенным авторитетом, чтобы люди (технически-грамотные) взяли и просто так сделали что-нибудь подобное.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: security и safety - разные вещи!
От: Pavel Dvorkin Россия  
Дата: 31.10.08 10:57
Оценка: +1
Здравствуйте, gear nuke, Вы писали:

GN>Суть вот в чем. Выполнение данных возможно из-за "кривости" архитектуры. Это необходимое условие, поэтому на первый взгляд вполне логично: исправляя архитектуру, запрещаем выполнение данных и "решаем проблему".


Отмечу в скобках, что исполнение данных может быть нормальным явлением. И вообще, что-то мне не нравится это направление обсуждения. Есть атрибуты страницы, их можно менять, в частности, разрешать или запрещать исполнение, VirtualProtect, PAGE_EXECUTE. И тот факт. что этим пользуются злоумышленники, еще не причина, чтобы саму идею хоронить. Как иначе будут работать программы, у которых зашифрован код (не .net, нативные) ? Как писать самомодифицирующийся код ?
With best regards
Pavel Dvorkin
Re[5]: security и safety - разные вещи!
От: Pavel Dvorkin Россия  
Дата: 31.10.08 11:18
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

Подумал и решил уточнить.

Дело не в исполнении данных как кода. Коль скоро мы в рамках фон-Неймановской архитектуры — это вообще-то нормально. Дело в незаконной модификации — хоть кода, хоть данных. Потому что взломать можно, не меняя никакого кода и не исполняя никаких данных, а просто найдя дыру, когда программа принимает данные, которые она не должна была принять , и начинает в итоге выполнять свой код с этим недопустимыми данными.

Совсем не вирус. Во времена OS-360 в задаче надо было указывать время, по истечении которого она автоматически снималась. Но в зависимости от заказанного времени задача отправлялась либо в высокоприоритетную очередь, либо в очередь более низкого приоритета.

Однажды я поставил время, равное 0 Пользоваться этой дырой я не стал — неудобно перед другими было.
With best regards
Pavel Dvorkin
Re[9]: P.S.
От: Pavel Dvorkin Россия  
Дата: 31.10.08 13:06
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

S>Достаточно подробное описание архитектуры сингулярити в этом форуме уже было. Совершенно нетрудно найти и соответствующую статью, в которой подробно написано, какой объем кода ядра верифицируется вручную.


Неважно какой именно, ты же о принципе говорил.
With best regards
Pavel Dvorkin
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.10.08 13:11
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Верификация ничего не говорит о "злонамеренности" кода. Верификация ганартирует, что написанный на дотнете код, который работает со строкой, принятой по сети, невозможно обманом заставить проинтерпретировать содержимое этой строки как инструкции процессора и выполнить их.


Как я понимаю, уверенность в этом уже была скомпромитирована.

S>А вот для решения приведенной тобой проблемы работает Code Access Security. Грубо говоря, мало сгенерировать такую сборку, нужно убедить систему ее исполнить.

S>Подпись майкрософт ты под ней зафорджить не сможешь; в низком уровне Trust у тебя такой код просто не сможет выполниться, ему скажут "нет прав отправлять информацию на удаленный хост". Всё.

Насколько я понимаю, права назначаются людьми. Которые могут ошибаться. Если уж люди не меняют пароли на учетную запись администратора, то появится либо возможность переназначить права определенным сборкам, либо в самой сборке потребовать права так, чтобы их было достаточно для выполнения нужных действий.

Достаточно вспомнить, что вирус Морриса забирался на удаленные машины через дырочку в скомпилированной в отладочной версии sendmail -- через эту дыру на удаленной машине запускался потоковый текстовый редактор, в него загонялся исходный текст головной программы вируса, после чего этот текст транслировался в исполнимый файл. Так что, если есть какая-то человеческая ошибка при конфигурировании системы, ей обязательно воспользуются.

S>В неуправляемом коде аналог CAS получить крайне сложно, потому что там есть богатые возможности по маскировке происхождения кода. Грубо говоря, любая DLL, загруженная в процесс, выполняется под правами этого процесса. Упс.


Да ладно, история вирусов под MS-DOS прекрасно показывает, что вирусы могут жить внутри exe-ников, даже не увеличивая их размер. Так что не обязательно подменять DLL, вредоносный код можно внедрить прямо в EXE, если есть доступ к файловой системе.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: P.S.
От: minorlogic Украина  
Дата: 31.10.08 13:57
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Как раз наоборот: практика показала, что управляемые процессоры катастрофически неэффективны. Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".


Раскижите подробнее? Я смотрел на сингулярити но не нашел ничего чтобы указывало на ее быстроту по сравнению с вин линь.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: P.S.
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 31.10.08 17:47
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Как раз наоборот: практика показала, что управляемые процессоры катастрофически неэффективны. Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".


Ты имеешь в виду то, что Singularity не переключает кольца защиты? Если так, то это верно, но только не надо обобщать, "управляемый процессор" в версии интел неэффективен только из-за особеностей реализации. В общем-то, частный случай, если разобраться.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: security и safety - разные вещи!
От: gear nuke  
Дата: 02.11.08 05:01
Оценка: +1
Здравствуйте, kochetkov.vladimir,

GN>>В общем, дотнет — это хорошо. Действительно не позволяет выстрелить себе в ноги, но зачем это преподносить, как невозможность прострела ног кем-то еще? Подобные допущения в secutity могут оказаться серьёзной ошибкой.


KV>Где я преподносил выделенное? Можно меня ткнуть в мое же сообщение, из которого следует такой вывод? На будущее, чтобы научился более понятно свои мысли высказывать.


Исходное сообщение
Автор: kochetkov.vladimir
Дата: 29.10.08
, например, такая цитата:

И оказалось, что находясь в такой матрице, разработчику уже не нужны костыли, т.к. там его ноги оказываются совершенно не простреленными! Т.е. он может носиться по своему коду со скоростью пантеры, ходить с прямой спиной, гордо подняв голову, да вообще — делать все что угодно, а не тратить свое время на занудный поиск мест для латания на искалеченных ногах


Вот твоё определение "прострела ног":

Бытует мнение, что разработчик впервые простреливает себе ногу, когда допускает свою первую грубую и, в то же время, трудноуловимую ошибку. Как бы не так. Лишь только прийдя в мир систем, построенных по архитектуре Джона, разработчик сразу же получает две, отнюдь не серебряных пули в свои нижние конечности

И в то же время известна книжка "Enough Rope to Shoot Yourself in the Foot", которая содержит описание более 100 проблем языков C и С++.

В исходном сообщении все проблемы почему-то сводится с исполнению данных, как кода, и в результате ругается почему-то только одна архитектура. Как же на счёт LISP? Почему существуют парсеры JSON на JavaScript? Наличие JIT в дотнете явлется достаточным для homoiconity. Как осуществлять контроль компонентов, если цифровая подпись даёт гарантии не более чем "этот код подписан приватным ключём такого-то производителя", но никаких относительно самого кода?

KV>Маркетологи могут профессионально дискредитировать любую технологию, безотносительно ее полезности и перспективности в глазах технических специалистов, выставив ее при этом в глазах обывателей панацеей.


Речь была об обратном — технология преподносилась как защита от malware, но на самом деле таковой не является и достаточнах гарантий не даёт.

KV>Не совершать ошибки в своем коде, это тоже не его дело? Нет, я понимаю, что есть тестеры, но это же не значит, что разработчик не должен в принципе думать о том, что он пишет в разрезе "неожиданных данных" например?


Конечно должен думать, но сможет ли он правильно определить во всех случаях, какие данные следует считать неожиданными? Почему под ними подразумевается входная строка для sprintf, а не, например, UUID-генератор в ОС Windows
Автор(ы): Николай Денищенко
Дата: 29.08.2008
В статье исследуется механизм работы WinAPI-функции UuidCreate, работающей в роли UUID-генератора в ОС Windows, а также вопрос применимости его в качестве генератора псевдослучайных чисел. Разбираются версии библиотеки rpcrt4.dll, входящие в ОС Windows XP, Vista и Windows Server 2008.
?

GN>>Никого же не удивляет, что usability занимаются специально подготовленные люди? Вот и безопасностью (где, кстати, самое слабое звено всегда было и будет — человеческий фактор, а не дыры в софте) пусть занимаются специалисты.


KV>Пусть. Но приземленный пример: в офисе убирают уборщицы (глупо ожидать этого от работников), но это ведь не значит, что работники имеют право сорить где попало?


С другой стороны, по той же приземлённой аналогии — если разработчику запретить ходить в туалет кроме строго определённых часов, то он сменит работу.

KV>Это не крик души. Исходный вариант этого текста был совершенно не обиден и менее эмоционален. Но запости я его сюда, и что? Понаставили бы оценок, плюсов/минусов и забыли. А так, получилось хоть как-то, хоть кого-то расшевелить


Получилось

GN>>чем взвешенный анализ векторов атак на конкретный софт.


KV>Это действительно интересно многим здесь? Мне не трудно написать на эту тему пару статей, но мне показалось, что это тут нафиг никому "не упало".


В предложении "спрос рождает предложение" подлежащее на последнем месте, на самом деле
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: Vi2 Удмуртия http://www.adem.ru
Дата: 05.11.08 13:40
Оценка: -1
Здравствуйте, CreatorCray, Вы писали:

CC>Т.е. посыл из самого первого сообщения темы про "И оказалось, что находясь в такой матрице, разработчику уже не нужны костыли, т.к. там его ноги оказываются совершенно не простреленными!" — неверен.


Ног-то совсем нет, зачем костыли?! Да ещё и руки прострелены.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[15]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 07.11.08 05:29
Оценка: +1
Здравствуйте, gear nuke, Вы писали:

GN>При том, что сертификаты для его подписи могут быть получены подобным способом.


Но это уже не проблема программного обеспечения.

V>>Какой смысл приводить физическое вмешательство в аппаратуру в качестве доказательства слабой защищённости программного обеспечения?


GN>Об этом и речи не было. Или не ясно, что такое ректальный криптоанализ?


Была.

Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.

лэт ми спик фром май харт
Re[13]: security и safety - разные вещи!
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 07.11.08 16:55
Оценка: +1
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, Lazy Cjow Rhrr, Вы писали:


LCR>>Ну давай ещё добавь сюда учебники по ректальному криптоанализу, что уж там...


GN>Это не смешно, вполне реальный вектор атаки, иногда следует исходить из того, что и по собственному желании кто-то может раскрыть секреты (и даже подписать гамно сертификатом от МС) В частности поэтому придумано разделение секретов.


Это реальный вектор атаки, просто связанные с ним риски закрываются несколько иными средствами, нежели обсуждаемые здесь

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: minorlogic Украина  
Дата: 09.11.08 08:53
Оценка: +1
Здравствуйте, EyeOfHell, Вы писали:

EOH>А инъекция кода в чужую программу — это что, самое страшное что у нас есть? ( приглашающий жест рукой, разверзание бездны, вылезание оттуда всякого ). Social Engineering — страшнее на порядок. Хоть намертво все обзащитить — если компьютер включен и за ним кто-то сидит, то он откроет e-mail и запустит оттуда кастомный троян, который по причине кастомности не распознает антивирус. И будет ему штатная модификация система. А вон то многоголовое чудовище — это возможность отсылать e-mail и сетевые пакеты по желанию. Обратите внимания на его тени — спам и дос. А еще есть замечательые алгоритмические уязвимости, когда не надо ничего инжектить и эксплоить — достаточно выдать неожиданную для программы последовательность валидных действий и она сама все сделает. Можете посмотреть на youtube как 'раскрывается' локнутый iPhone. Было бы смешно если бы не было так грустно.


Не все так просто. Теоретически не проблема создать операционку которая не позволит запускать какой либо код не прошедший "доверительных" процедур. Например запустить миранду без проверки подписи у бинарной сборки и т.п. Или как в сингулярити, никакого доступа к железу в принципе.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: Константин Б. Россия  
Дата: 10.11.08 03:03
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ну, на оглушительный успех среди пишущих под нативные платформы я и не расчитывал

GZ>Вообще-то последние 7 лет — мой основной доход отнюдь не нативные платформы.

GZ>>>Кто нибудь может сказать, что интернет построен по архитектуре Фон Неймана?

KV>>Вопрос некорректен. Ну ок, можно пофантазировать и на эту тему. Что есть "интернет" в данном случае?
GZ>Ну давай посмотрим на историю вопроса о переполнении буфера. Впервые она появилась в Unix среде. Ибо взламывать свой компьютер и производить зловредные действия для себя — бессмысленно. Точно также как и скрывать от себя свои данные. В MSDOS о переполнении буфера и не знали. Переполнение буфера — это ошибка используемая в сетевой среде для получения доступа. Является ли сеть — Фон Неймановской архитектурой? И вообще причем тут Фон Нейман?

При чем тут сеть вообще?

1. В MSDOS "не знали" о переполнении буфера, потому что там отсутствовало какое-либо разграничение доступа, а не потому что там сети не было.
2. Для срыва стека не важно откуда поступают вредоносные данные из сети, с клавиатуры или откуда еще.
3. Используется переполнение буфера, в том числе и локально для эскалации уровня доступа.
4. А Фон-Нейман тут при том, что именно его архитектура подразумевает наличие исполняемых данных.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 10.11.08 12:26
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>>>Насчет первого не скажу, а вот червь Морриса использовал переполнение буфера в finderd:

KV>>>Правда и "обычные средства ОС" там тоже были не на последнем месте, но тем не менее.

E>>Дыра в finderd была только одним из способов, там же еще используется и второй способ (функция try_mail), который просто эксплуатируют особенность почтового агента на удаленной машине.


KV>Что уже не делает данный конкретный пример показательным :-Р


Конечно, проще закрыть глаза на очевидный пример успешного использования знания механизмов работы sendmail для выполнения деструктивных действий (без всякой иньекции кода), чем отказаться от тезиса, что управляемая матрица всех спасет.

А чтобы по новому взглянуть на этот тезис, можно просмотреть, например, вот эту презентацию.

E>>Червь Christmas Tree был вообще написан на Rexx-е -- а это сплошной управляемый код.


KV>Есть пример подобного червя, последствия эпидемии которого были бы сопоставимы с теми же Blaster'ом, Sasser'ом, CodeRed и т.п.?


Melissa
I Love You

Вот вам еще парочка примеров из управляемой матрицы.

KV>>>Атака именно на управляемое приложение через нативную уязвимость в его платформе, по сложности и оправданности похожа на операцию по удалению гланд через эээ... ну, низ спины За исключением этого факта, да, вы правы.


E>>А почему вы считаете, что атаки чарез уязвимости в нативной части платформы очень сложны и не оправданы? На основании каких оценок?


KV>Статистических Можно увидеть реальные примеры подобных успешных атак?


С каких пор статистические оценки стали что-то доказывать? "Есть ложь, есть наглая ложь и есть статистика". В 95-м по статистке количество вирусов под MS-DOS было на порядки больше, чем количество таковых для Win32. И кого сейчас интересуют MS-DOS вирусы?

KV>>>Blaster, Helkern/Slammer и им подобные не изменяли исполняемые файлы. Они вообще не имели тела как такового, но тем не менее, устроили неслабые эпидемии в свое время.


E>>Странно -- у Blaster вроде как вполне конкретное тело есть -- msblast.exe. И для своего запуска на зараженной машине он использовал тривиальный метод -- реестр Windows.


KV>Ну если быть совсем точными, то blaster не заражал исполнимые файлы, а helkern не имел тела. И?


И? Вы сказали, что вирус blaster не имел тела. А он его таки имел. Фактическая неточность в ваших аргументах. То, что под .NET не появились пока вирусы, прячущиеся в исполнимых файлах и сборках -- так это, может быть, всего лишь вопрос времени.

KV>От "безопасника" вы тут услышали ровно то, что переход к управляемым средам позволит избавиться (минимизировать риски до приемлемого уровня) от вполне конретного класса угроз. Весьма популярного класса угроз, представляющего собой достаточно серьезную проблему, чтобы избавление от нее стало праздником, образно выражаясь.


Т.е. вся сказка на ночь, рассказанная в стартовом сообщении темы, была посвящена только одному -- конкретно .NET спасает разработчиков от ошибок переполнения буфера с последующей иньекцией бинарного кода? Вау!


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 10.11.08 12:32
Оценка: -1
Здравствуйте, GlebZ, Вы писали:

КБ>>2. Для срыва стека не важно откуда поступают вредоносные данные из сети, с клавиатуры или откуда еще.

GZ>И что? (это ошибки реализации ОС)

Да ну? В том, что в ранней версии квипа можно было его завалить просто послав определенный набор смайликов — это ошибка реализации ОС?

КБ>>3. Используется переполнение буфера, в том числе и локально для эскалации уровня доступа.

GZ>И что? (это ошибки реализации ОС)

А это — действительно ошибки реализации ОС, значительная часть которых обусловлена тем, что эта ОС реализована на фон-Неймановской архитектуре.

КБ>>4. А Фон-Нейман тут при том, что именно его архитектура подразумевает наличие исполняемых данных.

GZ>И что? Параметризируемые данные точно также влияют на исполнение программы, и точно также могут использовать ошибки системных программ(впрочем как и официальный интерфейс ). И не обязательно с помощью переполнения стека.

Пожалуйста, приведи конкретный пример, подтверждающий подобное использование данных. А то эта вода в ступе уже надоела, если честно. А после того как приведешь, прикинь в уме процентное соотношение подобных атак по отношению к атакам на переполнения буфера. Статистику по ним я приводил в начале темы.

GZ>И вообще, самыми эффективным способом взлома был и остается вирус "sex.exe" и его последователи а ля kurnikova. Не знаю кого поминать, но пропатчить пользователя, с его инстинктом размножение — сложновато. Может обсудим предложение всеобщей кастрации?


Может мы посмотрим на конкретные цифры, потверждающие выделенное (статистика, аналитика — все что угодно), прежде чем перейти к столь занимательной теме, как кастрация пользователя?

Пока все выводы, которые я получил по ходу своей работы, и которые подтверждаются позицией отдельных разработчиков в этой теме, сводятся к тому, что гораздо проще кастрировать упертых разработчиков (ничего личного), пишуших уязвимый код, чем учить пользователей правильно использовать этот код, чтобы не подвергать себя рискам по ИБ.

GZ>Базы данных МВД и т.п., которые по рынку ходят, были взломаны? Нет. Просто жадность людей. Что при этом отрезать, уже непонятно. Разве что лоботомия.


Это вообще не относится к обсуждаемой теме. Если относится: будь так добр, объясни — с какого бока?

GZ>Это борьба с ветряными мельницами. Наиболее эффективной защитой была и будет физическое ограничение средств доступа и персонала.


Ну разумеется. Все что угодно, лишь бы разработчикам не пришлось перенапрягать свой драгоценный ресурс в черепе, чтобы писать корректно-работающий код

GZ>И тут опять же компромисс — стоимость защиты/стоимость информации. Низкая стоимость — антивирусы. Высокая стоимость — работа с персоналом+расстрельная команда.


В данной конкретной теме обсуждались вопросы обеспечения безопаности приложений в процессе их разработки. Причем тут антивирусы и работа с персоналом, я могу только догадываться, но идея расстреливать кодеров, халатно относящихся к вопросам искоренения уявзимостей в своем коде... Лично мне понравилась

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 10.11.08 12:42
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А это — действительно ошибки реализации ОС, значительная часть которых обусловлена тем, что эта ОС реализована на фон-Неймановской архитектуре.


В том, что удобнее и практичнее C/C++ для разработки системного и прикладного софта в 1970-1990-х годах ничего не придумали виноват, безусловно, фон Нейман.

KV>В данной конкретной теме обсуждались вопросы обеспечения безопаности приложений в процессе их разработки. Причем тут антивирусы и работа с персоналом, я могу только догадываться, но идея расстреливать кодеров, халатно относящихся к вопросам искоренения уявзимостей в своем коде... Лично мне понравилась


Предлагаю вместе с разработчиками растреливать и подобных пользователей:

У нас был реальный случай в 2004-ом (я тогда еще не работал в ИБ), когда из-за одного личного ноута, воткнутого технарем, в сети (по всей стране) началась эпидемия helkern/slammer, т.к. MSDE, широко-использовавшийся другими технарями на своих рабочих местах практически во всех филиалах был, как правило, с пустым паролем sa.

А так же их начальников.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Кровавая "IS"ня? :)
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 10.12.08 17:17
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>В данной конкретной теме обсуждались вопросы обеспечения безопаности приложений в процессе их разработки. Причем тут антивирусы и работа с персоналом, я могу только догадываться, но идея расстреливать кодеров, халатно относящихся к вопросам искоренения уявзимостей в своем коде... Лично мне понравилась


E>Ну почему, как сотрудник какой-нибудь "безопасности", так сразу кровожадный маньяк?


Ну почему же сразу кровожадный? Их еще душить, например можно

E>(Хотел, кстати, SUBJ написать от русского "ИБ", но как-то совсем нецензурно получается )


А это стандартный диалог у нас в компании:

НеЯ: А вы кто по должности?
Я: Региональный менеджер по НаИБ (произносится как "наибэ", обозначает "направление инф.безопасности).

Людям нравится...

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: iZEN СССР  
Дата: 11.12.08 20:59
Оценка: :)
Здравствуйте, COFF, Вы писали:

Как известно, история идет по спирали; вполне возможно, что мы наблюдаем перелом тренда на использование виртуальных машин типа явы или дот-нета. Хотелось бы, чтобы у google получилось

CLR .Net — это не виртуальная машина.
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: vayerx  
Дата: 29.10.08 17:43
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>И что? Думаете праздник там, всеобщее ликование, фейрверки и воздушные шарики? Щас. Нарисовались на горизонтах матрицы всякие Нео с Морфеусами (еле дошли, тяжело ведь с простреленными ногами, да на костылях) и давай бухтеть, что это все иллюзия, обман, что нет бога кроме фон-Неймана и Страуструп пророк его, что так нельзя, а если и можно, то это не даст никаких выгод, что их костыли позволяют ходить на простреленных ногах быстрее, чем целые ноги жителей матрицы. В общем, стали всеобщее ликование всячески портить и праздник своим присуствием отравлять. Для них даже отдельную матрицу сделали, тоже управляемую, чтобы они могли со своими драгоценными костылями туда переселиться и постепенно выкинуть их нафиг. Ан нет, не получилось. Потому как оказалось, что они к костылям за долгое время ходьбы по-просту приросли... :maniac:


KV>Так и ковыляют они и по сей день, искалеченные, хмурые, с вросшими костылями под мышками, и бухтят, бухтят, бухтят... И поняли люди, что не излечить их, и что нужно просто дождаться их есстественного вымирания, и терпеть после этого их не легион, но маленькую горстку, которая будет вынуждена ковылять там, где матрицу при всем желании не развернуть. И продолжили люди свой праздник, и я на нем был, мед да пиво пил... ;)


KV>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


вы забываете, на чем написанна ваша матрица. много ядер видели на управляемых языках? пробовали управлять dma java, c#, etc? безопасность кода не нарушалась? продолжать?
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: minorlogic Украина  
Дата: 29.10.08 17:47
Оценка:
Ты и пвравду маньяк4
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: SergH Россия  
Дата: 29.10.08 18:13
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Навеяно рассуждениями здесь (в ФП) о прочно засевших в песочницу .NET'a, и преимуществами нативного кода делфи перед управляемым шарповым в КСВ...


Поиск по "гарвардская архитектура" и "принстонская архитектура". Это было ещё в микроконтроллерах.
Делай что должно, и будь что будет
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: iZEN СССР  
Дата: 29.10.08 18:52
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


На Гарвардской архитектуре виртуальные машины невозможны?
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Еще открою вам правду , большинству разработчиков начхать , смогут ли в их ко встроить експлоин. И не потому что они такие ламеры, а потому что ИМ ЭТО НЕ НАДО,


Ну слава Всевышнему, хоть один уловил истинную тему этого текста. Я уж думал, мне тут плясать и петь песни придется, чтобы обратить внимание на эту проблему.

Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Навеяно рассуждениями здесь (в ФП) о прочно засевших в песочницу .NET'a, и преимуществами нативного кода делфи перед управляемым шарповым в КСВ...


SH>Поиск по "гарвардская архитектура" и "принстонская архитектура". Это было ещё в микроконтроллерах.


Я вообще-то в курсе, спасибо. Но это никоим образом не решает проблемы фон-Неймановской архитектуры, как наиболее распространенной (мягко говоря) хотя бы на рынке конечных пользователей

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:28
Оценка:
Здравствуйте, iZEN, Вы писали:

ZEN>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


ZEN>На Гарвардской архитектуре виртуальные машины невозможны?


Понятно, с аллегориями в тексте я явно переборщил

На Гарвардской архитектуре невозможны атаки, характерные для фон-Неймановской.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 20:39
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Ты и пвравду маньяк4


Стесняюсь спросить: это почему?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 23:05
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Здравствуйте, vayerx, Вы писали:

V>>>вы забываете, на чем написанна ваша матрица. много ядер видели на управляемых языках? пробовали управлять dma java, c#, etc? безопасность кода не нарушалась? продолжать?

KV>>Даже если бы наша матрица была написана на все 100% с использованием неуправляемого кода (что не так), это бы ничего не значило. Также как для пишущих на неуправляемых языках ничего не значит возможное (а точнее, фактическое) наличие уязвимостей в ОС, под которую они пишут свой код.

KV>>Зона ответственности за безопасность нашей матрицы лежит на ее разработчиках так же, как она лежит на разработчиках ОС в случае с неуправляемым кодом.

V>это потому, что мы, так сказать, по разные стороны баррикад. вы существуете исключительно за счет работы "хромающих на обе ноги Нео и Морфиусов".


Угу. Причем заметь, не просто "хромающих на обе ноги Нео и Морфиусов", но еще и осознавших в т.ч. проблему фон-Неймановской архитектуры и пытающихся ее решить, а не бухтящих о прелестях "нативного" кода на каждом углу и не предающих анафеме всех сторонников управляемых платформ.

V>для подавляющей части прикладного софта управляемые языки сейчас вполне подходят. даже для каких-то задач встраимового ПО.

V>вполне возможно, многие "хромающие" бы согласились в вашим опусом, будь он чуть более конкретизирован в спектре задач. в общей же постановке вопроса, это похоже на попытки рубить сук, на котором сидите.

Я в тексте сделал сноску о том, что управляемые платформы применимы не везде. Перечислять же конкретный список областей мне показалось занятием занудным и неблагодарным, поэтому я и ограничился ею.

V>что касается уязвимостей, то для каждой задачи должно быть четкое понимание того, что делать желательно, необходимо, не нужно. защита от описанных вами уязвимостей, во-первых, нужна/необходима далеко не везде,


Можешь провести четкую границу, где она нужна, а где нет? Я — не могу

V>а, во-вторых, сами описанные уязвимости являются далеко не самыми опасными из числа возможных.


Перечислишь уязвимости, являющиеся опасней выполнения произвольного кода в контексте атакуемого приложения?

V>снятие головной боли в их отношении, безусловно, приятно, но не является панацеей от всех возможных ошибок


А я нигде и не утверждал, что это является панацеей. Я лишь говорил о том, что использование управляемых сред позволяет снять головную боль, обусловленную "особенностями" одной конкретной архитектуры вычислительных систем.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 00:24
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:


V>>вполне возможно, многие "хромающие" бы согласились в вашим опусом, будь он чуть более конкретизирован в спектре задач. в общей же постановке вопроса, это похоже на попытки рубить сук, на котором сидите.


KV>Я в тексте сделал сноску о том, что управляемые платформы применимы не везде. Перечислять же конкретный список областей мне показалось занятием занудным и неблагодарным, поэтому я и ограничился ею.


не заметил. имхо, подобные вещи стоит отдельно выделять в предисловии или эпилоге. ну да ладно, поверю на слово.

V>>что касается уязвимостей, то для каждой задачи должно быть четкое понимание того, что делать желательно, необходимо, не нужно. защита от описанных вами уязвимостей, во-первых, нужна/необходима далеко не везде,


KV>Можешь провести четкую границу, где она нужна, а где нет? Я — не могу


а при чем тут четкая граница? это предметно-зависимый вопрос. к примеру, в заводских прошивках подавлящиего числа электроники такая защита никому не нужна.


V>>а, во-вторых, сами описанные уязвимости являются далеко не самыми опасными из числа возможных.


KV>Перечислишь уязвимости, являющиеся опасней выполнения произвольного кода в контексте атакуемого приложения?


исполнение произвольного кода еще не дает полного доступа к системе. способы же его получения не ограничиваются инъекцией кода. ну а способов получения данных из системы еще больше, и, судя по всему, не мне тебе о них рассказывать =)


V>>снятие головной боли в их отношении, безусловно, приятно, но не является панацеей от всех возможных ошибок


KV>А я нигде и не утверждал, что это является панацеей. Я лишь говорил о том, что использование управляемых сред позволяет снять головную боль, обусловленную "особенностями" одной конкретной архитектуры вычислительных систем.


так вот я утверждаю, что эта самая головная боль заметна лишь для ограниченного круга задач. безусловно, полезно, когда защита есть на уровне платформы разработки, но ее отсутствие в общем случае не фатально.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.10.08 05:46
Оценка:
Здравствуйте, vayerx, Вы писали:

V>>>что касается уязвимостей, то для каждой задачи должно быть четкое понимание того, что делать желательно, необходимо, не нужно. защита от описанных вами уязвимостей, во-первых, нужна/необходима далеко не везде,

KV>>Можешь провести четкую границу, где она нужна, а где нет? Я — не могу
V>а при чем тут четкая граница? это предметно-зависимый вопрос. к примеру, в заводских прошивках подавлящиего числа электроники такая защита никому не нужна.
Хорошо защищенное ПО чаще всего являет наиболее надежным. Именно в заводских прошивках надежность должна быть максимальная. Поэтому "никому не нужна" — слишком утрированно.

V>>>снятие головной боли в их отношении, безусловно, приятно, но не является панацеей от всех возможных ошибок

KV>>А я нигде и не утверждал, что это является панацеей. Я лишь говорил о том, что использование управляемых сред позволяет снять головную боль, обусловленную "особенностями" одной конкретной архитектуры вычислительных систем.
V>так вот я утверждаю, что эта самая головная боль заметна лишь для ограниченного круга задач. безусловно, полезно, когда защита есть на уровне платформы разработки, но ее отсутствие в общем случае не фатально.
Да, "ограничееный круг задач" — примерно 90% сейчас, и только увеличивается.
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: minorlogic Украина  
Дата: 30.10.08 05:59
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника. Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 09:20
Оценка:
Здравствуйте, vayerx, Вы писали:

KV>>Перечислишь уязвимости, являющиеся опасней выполнения произвольного кода в контексте атакуемого приложения?


V>исполнение произвольного кода еще не дает полного доступа к системе. способы же его получения не ограничиваются инъекцией кода.


Это если конечной целью атаки является система. а если все-таки наше приложение и обрабатываемая/хранимая/передаваемая им информация?

V>>>снятие головной боли в их отношении, безусловно, приятно, но не является панацеей от всех возможных ошибок


KV>>А я нигде и не утверждал, что это является панацеей. Я лишь говорил о том, что использование управляемых сред позволяет снять головную боль, обусловленную "особенностями" одной конкретной архитектуры вычислительных систем.


V>так вот я утверждаю, что эта самая головная боль заметна лишь для ограниченного круга задач. безусловно, полезно, когда защита есть на уровне платформы разработки, но ее отсутствие в общем случае не фатально.


Если как уже сказали, "ограниченный круг задач" это хотя бы 90% — то согласен. Рассказать, почему при разработке 100%-го аналога виндового калькулятора необходимо озаботиться вопросами отсутствия в нем уязвимостей?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 09:20
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


FR>Конечно надо чтобы работал, но вот очень большому чимлу этих разработчиков нет никакой необходимости писать защищенный код, так как влияние этой самой защищенности на работоспособность кода у подавляющего большинства на сто каком-то месте.


А почему многие считают, что незащищенный код == рабочий код?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 09:20
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


M>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника.


Я считаю, что такому классу приложений как виндовый калькулятор — уже важна защита от злоумышленника Более того, ведущие эксперты по информационной безопасности это мнение разделяют (точнее, это я его разделяю с ними )

M>Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case


Вы готовы поговорить тут об этом (ваших программах и решаемых ими задачах) подробнее?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Aikin Беларусь kavaleu.ru
Дата: 30.10.08 09:27
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Рассказать, почему при разработке 100%-го аналога виндового калькулятора необходимо озаботиться вопросами отсутствия в нем уязвимостей?

Было бы интересно
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 09:35
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Это если конечной целью атаки является система. а если все-таки наше приложение и обрабатываемая/хранимая/передаваемая им информация?


об этом я уже писал в том же самом сообщении


V>>так вот я утверждаю, что эта самая головная боль заметна лишь для ограниченного круга задач. безусловно, полезно, когда защита есть на уровне платформы разработки, но ее отсутствие в общем случае не фатально.


KV>Если как уже сказали, "ограниченный круг задач" это хотя бы 90% — то согласен. Рассказать, почему при разработке 100%-го аналога виндового калькулятора необходимо озаботиться вопросами отсутствия в нем уязвимостей?


рассказать.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 09:37
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, FR, Вы писали:


FR>>Конечно надо чтобы работал, но вот очень большому чимлу этих разработчиков нет никакой необходимости писать защищенный код, так как влияние этой самой защищенности на работоспособность кода у подавляющего большинства на сто каком-то месте.


KV>А почему многие считают, что незащищенный код == рабочий код?


код может считаться корректно работающим, но быть незащищенным. обратное, разумеется, неверно.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 09:40
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Здравствуйте, FR, Вы писали:


FR>>>Конечно надо чтобы работал, но вот очень большому чимлу этих разработчиков нет никакой необходимости писать защищенный код, так как влияние этой самой защищенности на работоспособность кода у подавляющего большинства на сто каком-то месте.


KV>>А почему многие считают, что незащищенный код == рабочий код?


V>код может считаться корректно работающим, но быть незащищенным. обратное, разумеется, неверно.


Т.е. код решающий поставленные перед ним задачи, но при этом рассылающий спам, или копию результатов решения задач кому либо, это корректно работающий код?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: _d_m_  
Дата: 30.10.08 09:42
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


M>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника. Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case


Ну прямо коммунизм в отдельно взятом месте.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 09:47
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, vayerx, Вы писали:

V>>а при чем тут четкая граница? это предметно-зависимый вопрос. к примеру, в заводских прошивках подавлящиего числа электроники такая защита никому не нужна.
G>Хорошо защищенное ПО чаще всего являет наиболее надежным. Именно в заводских прошивках надежность должна быть максимальная. Поэтому "никому не нужна" — слишком утрированно.

хорошо защищеное ПО не обязанно быть написанно именно на управляемой платформе.
понятие надежности ПО — это не то же самое, что защита от переполнения буфера и т.п, хотя, включает такие зашиты.
с прошивками я, наверное, в самом деле привел не совсем хороший пример — на значительной части применяемых контроллеров/процессоров данные и код физически разделены, что не совсем вписывается в тему.


V>>так вот я утверждаю, что эта самая головная боль заметна лишь для ограниченного круга задач. безусловно, полезно, когда защита есть на уровне платформы разработки, но ее отсутствие в общем случае не фатально.

G>Да, "ограничееный круг задач" — примерно 90% сейчас, и только увеличивается.
ну 90, не 90, но действительно много, и действительно растет.
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 11:53
Оценка:
Здравствуйте, vayerx, Вы писали:

KV>>Не надо лукавить. "Все на свете" не может быть оговорено в ТЗ по причине своего стремления к бесконечности. Тут речь не о каких-либо специальных мерах защиты, требующих написания дополнительного кода, а требование написания кода в рамках функциональных требований без совершения в нем ошибок определенного класса.


V>так вот еще раз пытаюсь донести свое утверждение: описанный тобой "определенный класс ошибок" далеко не всегда является самым опасным из набора возможных.


Можно все-таки озвучить "весь набор возможных"? Ну или хотя бы его часть, значимую для обсуждаемой темы?...

V>в сравнении с общим количеством способов получения доступа к данным или системе в целом,


...или хотя бы "общее количество способов"?

V>этот "определенный класс" не заслуживает столь длинной оды в топике.


Атаки инъекции бинарного кода являются наиболее распространенными в среде неуправляемых платформ, а также наиболее часто эксплуатируемыми и несущими наиболее весомые риски, связанные с эксплуатацией уязвимого продукта. Это так, просто для информации.

V>>>если подменить исполняемый модуль целиком, то рассылка спама и прочие радости тоже могут иметь место


KV>>Вот уязвимость в Lotus Notes. ... Не думаю, что им кто-то отдельно платил за дополнительные человеко-часы, потраченные на устранение данной уязвимости, т.к. эта атака была возможна из-за ошибки в их коде (точнее, в инсталяторе) и позволяла скомпроментировать всю систему. Или на IBM равняться не стоит?


V>а это ты вообще к чему? как бы тут повлиял управляемый код?

V>подмена модуля — это как раз пример способа атаки, от которого управляемый код не спасает

Управляемый код — не спасает, а вот в одной из известных мне управляемых платформ есть встроенные механизмы подписи используемых модулей и контроля их целостности. И будь LN написан под .net, у меня бы не получилось, даже имея полные права на бинарный файл, подменить его на свой из под записи рядового пользователя и заставить его выполниться вместо оригинального.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: prVovik Россия  
Дата: 30.10.08 12:04
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Каким образом, если, например ограничить доступ виндовой аутентификацией для ограниченного круга лиц?


И при этом в самом приложении не должно быть распределения по ролям, все пользователи, имеющие доступ к интранету одинаковые и имеют одинаковый доступ к приложению, причем приложение не содержит информации с ограниченным доступом. Ты такие приложения имеешь ввиду? Что-то я ни разу не встречал подобного интранет приложения
лэт ми спик фром май харт
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 12:35
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, vayerx, Вы писали:


V>>так вот еще раз пытаюсь донести свое утверждение: описанный тобой "определенный класс ошибок" далеко не всегда является самым опасным из набора возможных.


KV>Можно все-таки озвучить "весь набор возможных"? Ну или хотя бы его часть, значимую для обсуждаемой темы?...


хотя бы отсюда: http://en.wikipedia.org/wiki/Category:Security_exploits


V>>подмена модуля — это как раз пример способа атаки, от которого управляемый код не спасает


KV>Управляемый код — не спасает, а вот в одной из известных мне управляемых платформ есть встроенные механизмы подписи используемых модулей и контроля их целостности. И будь LN написан под .net, у меня бы не получилось, даже имея полные права на бинарный файл, подменить его на свой из под записи рядового пользователя и заставить его выполниться вместо оригинального.


лукавишь.

во-первых, подписывание исполняемого файла не имеет ни малейшего отношения к фон-Неймановской архитектуре. оно может быть реализованно как для управляемых так и для неуправляемых модулей.

во-вторых, на *nix эта фича .net уже портированна? а на C64?

в-третьих, для защиты исполняемого файла из под "записи рядового пользователя" есть такая вещь как chmod+chown
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 12:41
Оценка:
Здравствуйте, vayerx, Вы писали:


V>хотя бы отсюда: http://en.wikipedia.org/wiki/Category:Security_exploits



Ну вот атака из твоего списка: Denial-of-service attacks
Очевидно, что данная атака менее опасна, чем выполнение произвольного кода в контексте атакуемого приложения, ибо самое безобидное, что может сделать эксплоит — это уронить сервер (что и есть Denial-of-service attacks)

Так что давай другую ссылку, эта не в тему.
лэт ми спик фром май харт
Re[14]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 12:57
Оценка:
Здравствуйте, vayerx, Вы писали:

V>1. "уронить сервер" — это потенциально огромные финасовые потери.


Ага, а эксплоит вообще много чего умеет. Например, утянуть номера кредитных карточек клиентов.

V>2. это далеко не единственный вид атак, приведенный в википедии


При наличии возможности эксплоита, остальные варианты атак ИМХО вообще теряют смысл. Зачем лезть в бронированную форточку, если двери открыты нараспашку?
лэт ми спик фром май харт
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 13:15
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Здравствуйте, vayerx, Вы писали:


V>>>так вот еще раз пытаюсь донести свое утверждение: описанный тобой "определенный класс ошибок" далеко не всегда является самым опасным из набора возможных.


KV>>Можно все-таки озвучить "весь набор возможных"? Ну или хотя бы его часть, значимую для обсуждаемой темы?...


V>хотя бы отсюда: http://en.wikipedia.org/wiki/Category:Security_exploits


Ну и какие из них несут более высокие риски, нежели инъекция бинарного кода? Учитывая, что навскидку, треть из перечисленных там — это как раз всевозможные варианты бинарных инъекций и есть.

V>>>подмена модуля — это как раз пример способа атаки, от которого управляемый код не спасает


V>во-первых, подписывание исполняемого файла не имеет ни малейшего отношения к фон-Неймановской архитектуре. оно может быть реализованно как для управляемых так и для неуправляемых модулей.


Подмена исполнимых файлов, упомянутая тобой, тоже к данной архитектуре имеет весьма опосредованное отношение. К чему ты тогда вообще ее тут озвучил?

V>во-вторых, на *nix эта фича .net уже портированна?


да

V>а на C64?


хз, к чему этот вопрос?

V>в-третьих, для защиты исполняемого файла из под "записи рядового пользователя" есть такая вещь как chmod+chown


и тем не менее, в lotus notes это не было сделано, что и обусловило существование данной уязвимости.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[16]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 13:17
Оценка:
Здравствуйте, vayerx, Вы писали:

V>во-вторых, кроме инъекции кода есть масса других способов.


Обусловленных архитектурой фон-Неймана? Если нет, то к чему их приводить здесь?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: Pavel Dvorkin Россия  
Дата: 30.10.08 13:36
Оценка:
Здравствуйте, eao197, Вы писали:

E>Вам, должно быть, еще страшнее от осознания того факта, что ПО, контролирующее, управляющее и противоборствующее тем самым младшим сестрам ядреной бомбы, написано на тех самых дырявых платформах и языках.


Да что ты, бог с тобой. Они же просто это... как бы сказать, не то, чтобы уж совсем не понимают, а отправили куда-то далеко в подсознание и боятся вытащить наружу.
With best regards
Pavel Dvorkin
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 13:46
Оценка:
Здравствуйте, prVovik, Вы писали:

L>>Каким образом, если, например ограничить доступ виндовой аутентификацией для ограниченного круга лиц?


V>И при этом в самом приложении не должно быть распределения по ролям, все пользователи, имеющие доступ к интранету одинаковые и имеют одинаковый доступ к приложению, причем приложение не содержит информации с ограниченным доступом. Ты такие приложения имеешь ввиду? Что-то я ни разу не встречал подобного интранет приложения


Не встречал, но требования все-равно гораздо ниже, т.к. круг потенциальных злоумышленников гораздо уже и отследить их гораздо проще, чем в интернете.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[17]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 14:08
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, vayerx, Вы писали:


V>>во-первых, инъекцию кода, мы ведь о ней изначально говорили, еще нужно сделать — открытые дыры есть не везде и приглашение не всегда висит.


V>Чушь. (с)

V>Дальше что?
а аргументровать?

V>>во-вторых, кроме инъекции кода есть масса других способов.

V>И что с того? Это повод не бороться с дырами, так как у vayerx`а есть ссылочка на википедию, где перечислены всевозможные названия атак? :down:
а гдя я говорю, что это повод не бороться? и про "все возможные" способы атак я тоже не говорил, не нужно мне лишнее приписывать
Re[19]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 14:53
Оценка:
Здравствуйте, prVovik, Вы писали:

V>А что аргументировать? Ну да, открытые дыры есть не везде, и что с того? Это повод их делать?

нет, не повод. но, во-первых, не-управляемый код не тождественно равен наличию дыр. во-вторых, остутствие дыр не всегда необходимо. в-третьих, управляемый код не защищает от всех дыр — это не панацея.

V>>а гдя я говорю, что это повод не бороться?


V>А о чем тогда спор? Вот и kochetkov.vladimir говорит, что надо бороться и обращает внимание, что управляемые среды гарантированно и автоматически защищают от атак такого рода.

с этим в общем-то я совсем не спорю — да, управляемый код потенциально может защитить от таких дыр. более того, как уже писалось, и мной в том числе, писать на управляемом коде большинство прикладных задач гораздо эффективнее с точки зрения трудозатрат.
вот только управляемый код пока далеко не везде применим, и, соответственно, опусы в духе "на свалку неуправляемый код — пишем все на управляемом" смешны.
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 15:39
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Как "краевед" хочу отметить, что атаки инсайдеров на интранет-системы, по крайней мере в нашей компании, случаются не реже чем атаки аутсайдеров на интернет-системы


A>Сказочки, либо "краеведный" отдел откровенно мается фигнёй.


Ну раз Andir сказал, что сказочки, значит сказочки. Иди фигней маемся, ему виднее

Аргументы будут?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 15:39
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Между тем, лучик надежды блеснул гораздо раньше, когда начали появляться интерпретируемые языки. Ведь если интерпретатор выполняет написанный код покомандно, значит он (в теории) имеет возможность полностью контролировать ход выполнения программы и, в случае чего, адекватно отреагировать на попытку обмануть процессор.


PD>Слушай, неужели ты в это всерьез веришь ? Неужели ты не понимаешь, что что бы ты ни делал и на чем бы не писал, в конечном счете работает оычный процесс Windows ? Который вполне можно хакнуть вместе с рантаймом .Net, при этом полностью игнорируя все его внутренние свойства! да, это нелегко будет сделать, придется разбираться во внутренностях .Net, но принципиально это вполне возможно.


Два момента:

1. Если и можно будет хакнуть (а если бы это было так просто, то прецеденты бы уже давно были известны), то только благодаря наличию в данной цепочке неуправляемого кода, о чем я тут всю тему и твержу. На случай, если возникнут иллюзии, что весь код (и ОС и рантайма) не может быть верифицированным, стоит внимательно изучить архитектуру singularity.

Но что еще более важно:

2. В случае с управляемыми платформами, ответственность за устранение уязвимостей, обусловленных архитектурой фон-Неймана берут на себя ее разработчики, избавляя тем самым от этой возни разработчиков приложения. Хочу заметить, что разработчиками данной платформы являются отнюдь не студенты трех месяцев выпуска, а достаточно серьезная компания, вкладывающая в безопасность своих продуктов огромные деньги, средства и ресурсы. И заинтересованная в том, чтобы их продукт, позиционирующийся как в т.ч. "матрица" для аппаратной архитектуры в плане безопасности, был реально безопасен. Вам известно много случаев обнаружения и/или эксплуатации уязвимостей нулевого дня в рантайме дотнета?

Наивно полагать, что в общем случае, разработчик приложения сможет организовать меры по обеспечению ИБ ХОТЯ БЫ на таком же уровне, на котором это делает данная конкретная "серьезная компания". Тем более, что ему и так есть чем заняться, помимо обеспечения безопасности своего продукта.

Не менее наивно полагать, что (например) среднестатический LAMP-разработчик в состоянии обеспечить хотя 1/10 тех мер безопаности, которую за него ему обеспечили разработчики php/perl/python, mysql, apache с mod_security и используемого дистрибутива linux. Когда же речь заходит об аналогичных мерах от MS это почему-то вызвает эффект красной тряпки

KV>>Так и ковыляют они и по сей день, искалеченные, хмурые, с вросшими костылями под мышками, и бухтят, бухтят, бухтят... И поняли люди, что не излечить их, и что нужно просто дождаться их есстественного вымирания,


PD>А дай — кось я допишу. Но не в виде сказки, а в виде притчи.


Одно не совпадает, по моей версии, горстка Нео с Морфеусами таки-не вымерла :-Р

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 15:54
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Как "краевед" хочу отметить, что атаки инсайдеров на интранет-системы, по крайней мере в нашей компании, случаются не реже чем атаки аутсайдеров на интернет-системы


A>Сказочки, либо "краеведный" отдел откровенно мается фигнёй.


Ты меня практически обидел сейчас Я смотрю на статистику нашей IDS и антивируса за последние 6 месяцев и не могу понять, откуда ты сделал такой вывод. Количество вирусных атак на периметр и на внутренние системы — примерно одинаковое. Сканирований портов серверных систем: чуть больше снаружи, чем изнутри. Сетевых атак различных классов — изнутри больше, но это обусловлено еще и вирусными атаками. Атак на внешние веб-сервера на треть больше, чем на внутренние, таки да. В целом, срабатываний IDS на внешних и внутренних серверах — несколько сотен за пол-года, с разницей в пару десятков. Я не имею права назвать конкретные цифры, к сожалению

По каждой зафиксированной атаке мы проводим расследование и готовим отчеты о принятых контрмерах, потенциальном ущербе, фактическом ущербе и т.п. Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было. Так почему мы по-твоему маемся фигней?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 15:56
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>А почему многие считают, что незащищенный код == рабочий код?


ГВ>Наверное, потому что этот код работает.


Ровно до тех пор, пока ему не передали на вход то, что там совсем не ожидалось. Или тут схема "пока петух в ж не клюнет..."?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[22]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 30.10.08 16:08
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, prVovik, Вы писали:


V>>Здравствуйте, vayerx, Вы писали:


V>>>нет, не повод. но, во-первых, не-управляемый код не тождественно равен наличию дыр.

V>>Кто-то утверждал обратное?
V>ты. фразой "то повод их (дыры) делать?"

Ок, согласен поменять фразу на: "Это повод ходить по минному полю, надеясь, что пронесет?"

V>>>во-вторых, остутствие дыр не всегда необходимо. в-третьих, управляемый код не защищает от всех дыр — это не панацея.

V>>Кто-то утверждал обратное?
V>имхо, утверждал в первую очеред топикстартер, написав о бухтящих и хромающих Нео, представляющих не-управляемые языки. в то время как управляемые языки по мненинию того же топикстартера должны были привести к "празднику там, всеобщему ликованию, фейрверкам и воздушным шарикам".

Речь шла конкретно об эксплоитах. Да, .NET не решит проблему глобального потепления и с борьбой против всемирного империализма он тоже не поможет.

V>и какой же, в твоем понимании, основной смысл данного опуса?

Чем меньше дыр, тем лучше
лэт ми спик фром май харт
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 30.10.08 16:17
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ровно до тех пор, пока ему не передали на вход то, что там совсем не ожидалось. Или тут схема "пока петух в ж не клюнет..."?


схема петуха сработает и с управляемым кодом (в смысле выполнения основной задачи). а защищать все подряд от "хацкеров" — в общем случае, излишне.


V>>хотя бы отсюда: http://en.wikipedia.org/wiki/Category:Security_exploits

KV>Ну и какие из них несут более высокие риски, нежели инъекция бинарного кода? Учитывая, что навскидку, треть из перечисленных там — это как раз всевозможные варианты бинарных инъекций и есть.

собственно, оставшиеся две трети =)
ну а если серьезно, то "более высокие риски" — сферическое понятие. его стоит разделить, как минимум, на сложность взлома, потенциальный причиняемый урон.
начнем с "банального" sql injection — никак не зависит от архитектуры фон-Неймана. реализация значительно проще code injection. в случае успеха атаки утечка данных может быть практически максимальной. code injection, конечно, может принести чуть больший ущерб, кражи той же самой клиентской приватной информации может оказаться вполне достаточной для банкротсва компании, особенно на начальной стадии ее развития.

password cracking — никак не зависит от архитектуры фон-Неймана. регулярное явление. если на сервере нужен внешний ssh, управляемый код не поможет.

и т.д.


V>>1. "уронить сервер" — это потенциально огромные финасовые потери.

KV>А "оставить в сервере закладку и взять его под контроль" — это еще большие риски, т.к. с использованием данной закладки на сервер может осуществляться и DoS атаки в том числе.

чтобы оставить на "сервере закладку" именно code injection не обязателен.


V>>во-вторых, на *nix эта фича .net уже портированна?

KV>да
V>>а на C64?
KV>хз, к чему этот вопрос?

вопрос к портируемости.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: minorlogic Украина  
Дата: 30.10.08 16:20
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, minorlogic, Вы писали:


M>>А вы подумайте ? я даже не знаю какой класс приложений вы пишите где так важна защита от злоумышленника.


KV>Я считаю, что такому классу приложений как виндовый калькулятор — уже важна защита от злоумышленника Более того, ведущие эксперты по информационной безопасности это мнение разделяют (точнее, это я его разделяю с ними )


Ну в этом я ничем вам помочь не могу. К сожалению "виндовый калькулятор" можно менять как заблагорассудиться, и скорее пускай этим занимается система безопасности операционной системы. Я не говорю что это хорошо , я говорю что калькулятор в том виде в котором существует, неплохо решает поставленные задачи.

M>>Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case


KV>Вы готовы поговорить тут об этом (ваших программах и решаемых ими задачах) подробнее?

Нет ни малейшего желания, но на всякий случай я не педалю "web придожения", а занимаюсь наукоемкими тяжелыми вычислениями.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[23]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 30.10.08 16:26
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, vayerx, Вы писали:


V>>>>нет, не повод. но, во-первых, не-управляемый код не тождественно равен наличию дыр.

V>>>Кто-то утверждал обратное?
V>>ты. фразой "то повод их (дыры) делать?"
V>Ок, согласен поменять фразу на: "Это повод ходить по минному полю, надеясь, что пронесет?"
это должно было как-то глобально поменять ее смысл? почему ты полагаешь, что управляемый язык — это не минное поле? точно такое же минное, но с извлеченной каждой десятой/сотой/etc миной.

V>>>>во-вторых, остутствие дыр не всегда необходимо. в-третьих, управляемый код не защищает от всех дыр — это не панацея.

V>>>Кто-то утверждал обратное?
V>>имхо, утверждал в первую очеред топикстартер, написав о бухтящих и хромающих Нео, представляющих не-управляемые языки. в то время как управляемые языки по мненинию того же топикстартера должны были привести к "празднику там, всеобщему ликованию, фейрверкам и воздушным шарикам".

V>Речь шла конкретно об эксплоитах.

речь шла конкретно об эксплоитах, реализованных через инъекцию кода.

V>>и какой же, в твоем понимании, основной смысл данного опуса?

V>Чем меньше дыр, тем лучше :)))
а в твоем понимании не-управляемые языки — это больше или меньше дыр? а управляемые?
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.10.08 16:52
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Виндовый калькулятор принимает входные данные не только через нажатия на кнопки, но и вставкой строки из буфера обмена (в режиме инженерного калькулятора). Попробуйте скопировать и вставить в него что-нибудь типа:


KV>
KV>(3+2*13!-3^4):m:q
KV>


KV>:m — это команда занесения результата вычислений в память

KV>:q — комадна сброса всех изменений

KV>Поэтому внешне изменений не будет, но если нажать на "MR", то из памяти калькулятора в строку ввода выведется результат этих вычислений. Это говорит о двух вещах:


KV>1. В виндовом калькуляторе есть парсер арифметических выражений, причем не самый тривиальный.

KV>2. Теоретически, данный парсер может быть уязвим к атакам на переполнение буфера, если в его реализации допущены ошибки.

Этот сценарий когда-нибудь для Windows-калькулятора был реализован в реальной жизни?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: minorlogic Украина  
Дата: 30.10.08 16:59
Оценка:
Это плохой пример.

Описанный юз кейс , является достаточно четким добросовестным применением калькулятора. И если он валится , он не выполняет своей функциональности.

А вот изменение бинарного кода калькулятора из FAR а однозначно недобросовестное использование.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: blackhearted Украина  
Дата: 30.10.08 17:12
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:


KV>Но что еще более важно:


KV>2. В случае с управляемыми платформами, ответственность за устранение уязвимостей, обусловленных архитектурой фон-Неймана берут на себя ее разработчики, избавляя тем самым от этой возни разработчиков приложения. Хочу заметить, что разработчиками данной платформы являются отнюдь не студенты трех месяцев выпуска, а достаточно серьезная компания, вкладывающая в безопасность своих продуктов огромные деньги, средства и ресурсы. И заинтересованная в том, чтобы их продукт, позиционирующийся как в т.ч. "матрица" для аппаратной архитектуры в плане безопасности, был реально безопасен. Вам известно много случаев обнаружения и/или эксплуатации уязвимостей нулевого дня в рантайме дотнета?


А вам не кажется,что их нет по той простой причине,что искать и использовать их гораздо менее выгодно,чем уязвимости в native?


KV>Наивно полагать, что в общем случае, разработчик приложения сможет организовать меры по обеспечению ИБ ХОТЯ БЫ на таком же уровне, на котором это делает данная конкретная "серьезная компания". Тем более, что ему и так есть чем заняться, помимо обеспечения безопасности своего продукта.


Что есть серьёзная компания ? В "серьёзных компаниях" безопасность обеспечивают.... или вы считаете,что везде работают "студенты трех месяцев выпуска"?

KV>Не менее наивно полагать, что (например) среднестатический LAMP-разработчик в состоянии обеспечить хотя 1/10 тех мер безопаности, которую за него ему обеспечили разработчики php/perl/python, mysql, apache с mod_security и используемого дистрибутива linux. Когда же речь заходит об аналогичных мерах от MS это почему-то вызвает эффект красной тряпки


А при чём тут вообще win/lin?

Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: blackhearted Украина  
Дата: 30.10.08 17:14
Оценка:
Здравствуйте, blackhearted, Вы писали:

+ верифицировать дотнет рантайм ,наверно, попроще чем вин/лин...
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:24
Оценка:
Здравствуйте, vayerx, Вы писали:

V>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было.


V>либо вы о них не знаете


Т.е. ты хочешь сказать, что мы потеряли некоторую часть своих финансовых средств и не знаем об этом?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:24
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>>>Я например разрабатываю программы которые направленны на работу с добросовестным пользователем. А попытки неправильного использования не рассматриваются как use case


KV>>Вы готовы поговорить тут об этом (ваших программах и решаемых ими задачах) подробнее?

M>Нет ни малейшего желания, но на всякий случай я не педалю "web придожения", а занимаюсь наукоемкими тяжелыми вычислениями.

Тогда извиняюсь за пример с калькулятором. Знал бы — вместо него выбрал веб-приложение

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:24
Оценка:
Здравствуйте, vayerx, Вы писали:

V>собственно, оставшиеся две трети =)

V>ну а если серьезно, то "более высокие риски" — сферическое понятие. его стоит разделить, как минимум, на сложность взлома, потенциальный причиняемый урон.
V>начнем с "банального" sql injection — никак не зависит от архитектуры фон-Неймана. реализация значительно проще code injection. в случае успеха атаки утечка данных может быть практически максимальной. code injection, конечно, может принести чуть больший ущерб, кражи той же самой клиентской приватной информации может оказаться вполне достаточной для банкротсва компании, особенно на начальной стадии ее развития.

V>password cracking — никак не зависит от архитектуры фон-Неймана. регулярное явление. если на сервере нужен внешний ssh, управляемый код не поможет.


V>и т.д.


Это-то так, но суть как раз в том, что разрабатывая под неуправляемую платформу, разработчикам приходится думать И об инъекциях бинарного кода, И о более "прикладных" атаках. Честно говоря, я это уже устал повторять.

V>>>1. "уронить сервер" — это потенциально огромные финасовые потери.

KV>>А "оставить в сервере закладку и взять его под контроль" — это еще большие риски, т.к. с использованием данной закладки на сервер может осуществляться и DoS атаки в том числе.

V>чтобы оставить на "сервере закладку" именно code injection не обязателен.


Но если был code injection, то можно оставить на сервере закладку, в отличии от DoS атаки.

V>>>во-вторых, на *nix эта фича .net уже портированна?

KV>>да
V>>>а на C64?
KV>>хз, к чему этот вопрос?

V>вопрос к портируемости.


Это не ко мне.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 17:29
Оценка:
Здравствуйте, eao197, Вы писали:

KV>>1. В виндовом калькуляторе есть парсер арифметических выражений, причем не самый тривиальный.

KV>>2. Теоретически, данный парсер может быть уязвим к атакам на переполнение буфера, если в его реализации допущены ошибки.

E>Этот сценарий когда-нибудь для Windows-калькулятора был реализован в реальной жизни?


Он был реализован для других приложений. Я лишь хотел показать, что сложность и предметная область приложения слабо влияют на возможность проведения атаки на это приложение.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 17:31
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

E>>Т.е. корпорации, на потенциал которой здесь так уповают, было проще в течении 9-ти месяцев молчать и не выпускать патч.


KV>Тебе не кажется, что если бы ей было реально воспользоваться, для компроментации то шумиха поднялась конкретная, и пресса мимо такого бы не прошла?


Судя по тому, что написано здесь, воспользоваться ей все-таки можно. Например при определенных условиях можно получить доступ к web.config-у.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 17:37
Оценка:
Здравствуйте, vayerx, Вы писали:

V>ну а если серьезно, то "более высокие риски" — сферическое понятие. его стоит разделить, как минимум, на сложность взлома, потенциальный причиняемый урон.

V>начнем с "банального" sql injection — никак не зависит от архитектуры фон-Неймана. реализация значительно проще code injection.

ну вообще-то sql injection — это тоже в своем роде code injection
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 30.10.08 17:45
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>>>А почему многие считают, что незащищенный код == рабочий код?

ГВ>>Наверное, потому что этот код работает.

KV>Ровно до тех пор, пока ему не передали на вход то, что там совсем не ожидалось. Или тут схема "пока петух в ж не клюнет..."?


Тут схема такая, что всякая сложная проблема имеет простое и очевидное неправильное решение. Вот тебе и вся схема.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 19:45
Оценка:
Здравствуйте, blackhearted, Вы писали:

B>Здравствуйте, kochetkov.vladimir, Вы писали:



KV>>Но что еще более важно:


KV>>2. В случае с управляемыми платформами, ответственность за устранение уязвимостей, обусловленных архитектурой фон-Неймана берут на себя ее разработчики, избавляя тем самым от этой возни разработчиков приложения. Хочу заметить, что разработчиками данной платформы являются отнюдь не студенты трех месяцев выпуска, а достаточно серьезная компания, вкладывающая в безопасность своих продуктов огромные деньги, средства и ресурсы. И заинтересованная в том, чтобы их продукт, позиционирующийся как в т.ч. "матрица" для аппаратной архитектуры в плане безопасности, был реально безопасен. Вам известно много случаев обнаружения и/или эксплуатации уязвимостей нулевого дня в рантайме дотнета?


B>А вам не кажется,что их нет по той простой причине,что искать и использовать их гораздо менее выгодно,чем уязвимости в native?


Безусловно, количество обнаруженных уязвимостей напрямую зависит от популярности продукта. Но ASP.NET (например) не такой уж и не популярный, чтобы на него не стоило обратить внимание пытливым black-hat'ам.

KV>>Наивно полагать, что в общем случае, разработчик приложения сможет организовать меры по обеспечению ИБ ХОТЯ БЫ на таком же уровне, на котором это делает данная конкретная "серьезная компания". Тем более, что ему и так есть чем заняться, помимо обеспечения безопасности своего продукта.


B>Что есть серьёзная компания ? В "серьёзных компаниях" безопасность обеспечивают.... или вы считаете,что везде работают "студенты трех месяцев выпуска"?


Разумеется не везде. Но если политика компании "нам отдельно не заплатили за то, чтобы наш код был безопасным", то в моем понимании, серьезно относится к такой конторке и ее продуктам не стоит. И строить на них свой или чужой бизнес — тоже, btw.

KV>>Не менее наивно полагать, что (например) среднестатический LAMP-разработчик в состоянии обеспечить хотя 1/10 тех мер безопаности, которую за него ему обеспечили разработчики php/perl/python, mysql, apache с mod_security и используемого дистрибутива linux. Когда же речь заходит об аналогичных мерах от MS это почему-то вызвает эффект красной тряпки


B>А при чём тут вообще win/lin?


Ну прозвучало же про кроссплатформенность. Почему бы и нет?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.10.08 19:45
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Это плохой пример.


M>Описанный юз кейс , является достаточно четким добросовестным применением калькулятора. И если он валится , он не выполняет своей функциональности.


M>А вот изменение бинарного кода калькулятора из FAR а однозначно недобросовестное использование.


Если честно, то после этого сообщения я вообще потерял нить твоих рассуждений о добросовестности использования ПО

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 30.10.08 20:01
Оценка:
Здравствуйте, eao197, Вы писали:

L>>Смести немного акценты и фраза зазвучит иначе: т.к. нативный код оч. легко подвержен эксполоитам, то его стоит максимально замещать управляемым кодом.


E>Нативный код нативному рознь. Мне кажется, что фобии, которые здесь обсуждают являются следствием распространенности C и C++ (унаследовавшего проблемы C). Тогда как для нативных языков вроде Modula-2, Oberon, Eiffel и OCaml ситуация должна быть гораздо, гораздо лучше.


Так ситуация для них и так гораздо-гораздо лучше. Если такая лажа — в первых строчках гугла, то это наиболее "громкая" уязвимость на .Net-е. А она даже произвольный код не дает исполнить. На неуправляемых языках такого рода проблемы гораздо более на слуху.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: IID Россия  
Дата: 31.10.08 02:30
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>>>Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было.


V>>либо вы о них не знаете


KV>Т.е. ты хочешь сказать, что мы потеряли некоторую часть своих финансовых средств и не знаем об этом?


А как вы можете об этом знать ? Финансовые потери это ведь не только дебет-кредит в компе главбуха. Скажем, если у вас сперли кусок абоненской базы — потеря ли это ? А когда её в паблик выложат ?

[offtop]
В бытность пользования пчелайн-GPRSом на мой комп постоянно ломились заражённые машины других пчелайн-абонентов. Польза от доступности абонентов друг другу кажется мне сомнительной. Интересно, почему не разделили абонентов между собой, а-ля VLans ?
[/offtop]
kalsarikännit
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 05:48
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>>>Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было.


V>>>либо вы о них не знаете


KV>>Т.е. ты хочешь сказать, что мы потеряли некоторую часть своих финансовых средств и не знаем об этом?


IID>А как вы можете об этом знать ?

IID>Финансовые потери это ведь не только дебет-кредит в компе главбуха.

А что еще? Мы ведь сейчас не о потенциальных потерях говорим, а о фактических?

IID>Скажем, если у вас сперли кусок абоненской базы — потеря ли это ?


Безусловно, это потеря. Но реальный ущерб она начнет наносить тогда,

IID>А когда её в паблик выложат ?

Либо не в паблик, но когда эту информацию начнут использовать в каких-либо целях.

IID>[offtop]

IID>В бытность пользования пчелайн-GPRSом на мой комп постоянно ломились заражённые машины других пчелайн-абонентов. Польза от доступности абонентов друг другу кажется мне сомнительной.

Ну вот тебе сомнительной, а многие абоненты ее активно используют

IID>Интересно, почему не разделили абонентов между собой, а-ля VLans ?


А зачем?

IID>[/offtop]

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 05:48
Оценка:
Здравствуйте, Andir, Вы писали:

Я постараюсь не нарушая NDA объяснить причину такого перекоса.

Если брать только нашу страну, то в 7 ее регионах мы имеем:

1. Одну штаб-квартиру всея компании внутри пределов МКАДа
2. 7 региональных штаб-квартир, по одной в каждом регионе (я работаю в одной из них)
3. Около сотни конечных филиалов по всей стране

Что касается внешних систем (т.е. систем с внешними IP-адресами, либо расположенных в ДМЗ), то:

1. В конечных филиалах таковых ровно по одной (аппаратный FW для офисного интернета), причем прокси, используемый для доступа в интернет, "одноногий" (только со внутренним интерфейсом).

2. В региональных штаб-квартирах, таких систем уже две, т.к. помимо офисного интернета, именно там обслуживаются каналы доступа в интернет через GPRS/EDGE/3G для всего региона.

Никаких интернет веб-серверов ни там, ни там нет. Вообще никаких других внешних систем, в принципе.

3. В столичной штаб-квартире есть все то, что есть в перечисленных выше пунктах (причем далеко не в единственном экземпляре, как это сделано в регионах), плюс внешние VPN-шлюзы для удаленного доступа к сети, почтовые шлюзы, веб-серверы и т.п., вынесенные в ДМЗ.

Интранет системы у нас используются весьма широко, т.к. большая часть централизованных приложений (биллинг, ERP, CRM и т.п.) имеет веб-интерфейс + всякие бэкофисы микрософтовского барахла, систем мониторинга, той же IDS и системы корреляции событий IDS и т.п. Поэтому количество внешних веб серверов у нас примерно в сотню раз меньше чем внутренних. Причем внутренние "размазаны" по всей стране, тогда как внешние сосредоточены в столичной ШК.

Теперь самое главное (что узнал только вчера), сканирование портов 10 внешних систем с одного хоста в интернете — это одна атака на ДМЗ. Сканирование одним внутренним хостом 10 внутренних серверов — это 10 атак. Ибо доступа к данным сенсоров, установленных на внешних системах у меня нет Иными словами "атака на внешнюю систему" != "атака на внутреннюю систему", отсюда и перекос и без того перекошенной статистики, обусловенной архитектурой нашей инфры. Посему признаю: был неправ относительно количественной оценки внешних и внутренних атак, ок. Хотя внутренних все равно много :-Р

Еще хочу заметить, что скепсис относительно того, что все пользователи внутри компании работают на одно дело и вредить не должны — ошибочно. Во-первых, я лично сталкивался с теми, кто вполне осознанно пытались получить доступ к некоторым системам ради собственной наживы, и с теми, кто, легально имея такой доступ, воспользовался им для нанесения ущерба конторе. Таких людей на моей памяти было около 20 за последние три года и трое из них, совершенно точно АТАКОВАЛИ (в техническом смысле) наши системы изнутри.

Что касается остальных "профессионалов" атакующих наши системы изнутри, то например технари (те, кто занимаются коммутационным оборудованием и оборудованием "последней мили") весьма часто "шалят", то сканируя порты своих железок и зацепляя при этом другие системы, то устанавливая в сеть всякую хрень, которая потом гадит во все стороны, дай бог если только сканированием портов.

У нас был реальный случай в 2004-ом (я тогда еще не работал в ИБ), когда из-за одного личного ноута, воткнутого технарем, в сети (по всей стране) началась эпидемия helkern/slammer, т.к. MSDE, широко-использовавшийся другими технарями на своих рабочих местах практически во всех филиалах был, как правило, с пустым паролем sa. helkern — это такая вещь, при эпидемии которой достаточно пары-тройки зараженных компов в подсети, чтобы она напрочь легла. В итоге, часть подсетей у нас (в т.ч. серверных) были недоступны несколько часов, прежде чем удалось справиться с активностью червя в них. Прямые финансовые потери от отказа в обслуживании звонков абонентов и доп.сервисов исчислялись сотнями тысяч в каждом регионе. Поэтому от технарей и ИТшников с тех пор, мы стараемся фиксировать как можно больше событий, чтобы не повторилась эта история.

A>[сарказм]Чем же они заняты? Пишут отчёты о конкретных атаках и статьи о некомпетентых программистах?[/сарказм]


Они сидят на больничном и им безумно грустно и скучно , а тут еще всякие разработчики со своими сарказмами

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: Pavel Dvorkin Россия  
Дата: 31.10.08 06:39
Оценка:
Здравствуйте, Lloyd, Вы писали:


L>Можно ссылки на прецендерты таких хаков? А то я не слышал о таком, интересно почитать.


Насчет прецедентов — не знаю, а вмешаться в процесс — раз плюнуть. Вот тебе простой пример.

Создаем WinForms приложение, бросаем на форму листбокс, в него добавляем 2 строки — "Hello" и "World". Имя формы меняем на "CrackTest". Запускаем. имеем листбокс с этими двумя строчками

Создаем консольное Win32 приложение и пишем в нем, например, так


int _tmain(int argc, _TCHAR* argv[])
{
    HWND hFormWnd = FindWindow(NULL, L"CrackTest");
    HWND hWndLB = GetWindow(hFormWnd, GW_CHILD);
    SendMessage(hWndLB, LB_RESETCONTENT, 0, 0);
    SendMessage(hWndLB, LB_ADDSTRING,0, (LPARAM)L"What's");
    SendMessage(hWndLB, LB_ADDSTRING,0, (LPARAM)L"Matter");
    SendMessage(hWndLB, LB_ADDSTRING,0, (LPARAM)L"With me ?");
    return 0;
}


Смотрим на листбокс и обнаруживаем там нечто интересное

Между прочим, в коллекции айтемов листбокса строки прежние, и их только 2, хотя в самом листбоксе их 3.

Чтобы поменять строчки в коллекции, мне придется потрудиться немного больше. Поставить хук, открыть процесс, остановить его , просканировать его память и поменять там то, что надо. За 5 минут не напишу, но, в общем, ничего сложного нет.

Встречный вопрос. Зачем в .Net есть класс SecureString ? А вот чтобы не давать таким любителям копаться в чужих процессах
With best regards
Pavel Dvorkin
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: Andir Россия
Дата: 31.10.08 07:01
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

Большое, однако, хозяйство. Спасибо за рассказ. А какой профиль компании, если не секрет?

KV>Теперь самое главное (что узнал только вчера), сканирование портов 10 внешних систем с одного хоста в интернете — это одна атака на ДМЗ. Сканирование одним внутренним хостом 10 внутренних серверов — это 10 атак. Ибо доступа к данным сенсоров, установленных на внешних системах у меня нет Иными словами "атака на внешнюю систему" != "атака на внутреннюю систему", отсюда и перекос и без того перекошенной статистики, обусловенной архитектурой нашей инфры. Посему признаю: был неправ относительно количественной оценки внешних и внутренних атак, ок. Хотя внутренних все равно много :-Р


Ну вот, уже хорошо. Хотя сам факт скана — это тоже ещё не атака, так "подозрительное событие".

KV>Еще хочу заметить, что скепсис относительно того, что все пользователи внутри компании работают на одно дело и вредить не должны — ошибочно. Во-первых, я лично сталкивался с теми, кто вполне осознанно пытались получить доступ к некоторым системам ради собственной наживы, и с теми, кто, легально имея такой доступ, воспользовался им для нанесения ущерба конторе. Таких людей на моей памяти было около 20 за последние три года и трое из них, совершенно точно АТАКОВАЛИ (в техническом смысле) наши системы изнутри.


Тут был не скепсис, а игра слов. Те кто атакует системы изнутри должны болеть чем-то существенным — вроде жёстких мер от ИБ предприятия, а не только за общее дело

KV>Что касается остальных "профессионалов" атакующих наши системы изнутри, то например технари (те, кто занимаются коммутационным оборудованием и оборудованием "последней мили") весьма часто "шалят", то сканируя порты своих железок и зацепляя при этом другие системы, то устанавливая в сеть всякую хрень, которая потом гадит во все стороны, дай бог если только сканированием портов.


Ну и разве это атаки? Это лишь события, хотя в случае статистики это неважно, равнозначных событий снаружи всегда больше.

KV>У нас был реальный случай в 2004-ом (я тогда еще не работал в ИБ), когда из-за одного личного ноута, воткнутого технарем, в сети (по всей стране) началась эпидемия helkern/slammer, т.к. MSDE, широко-использовавшийся другими технарями на своих рабочих местах практически во всех филиалах был, как правило, с пустым паролем sa. helkern — это такая вещь, при эпидемии которой достаточно пары-тройки зараженных компов в подсети, чтобы она напрочь легла. В итоге, часть подсетей у нас (в т.ч. серверных) были недоступны несколько часов, прежде чем удалось справиться с активностью червя в них. Прямые финансовые потери от отказа в обслуживании звонков абонентов и доп.сервисов исчислялись сотнями тысяч в каждом регионе. Поэтому от технарей и ИТшников с тех пор, мы стараемся фиксировать как можно больше событий, чтобы не повторилась эта история.


Вот это то, о чём я говорил насчёт компетенции. Если в сети висит куча MSDE без паролей к sa, то это ответственность ИБ в самой её подлинной форме. (А сетевиков за несанкционированные пакеты пингов надо вообще лишать премии! )

A>>[сарказм]Чем же они заняты? Пишут отчёты о конкретных атаках и статьи о некомпетентых программистах?[/сарказм]

KV>Они сидят на больничном и им безумно грустно и скучно , а тут еще всякие разработчики со своими сарказмами



С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha 4 rev. 1111 ) { /* Работаем */ }
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: Aikin Беларусь kavaleu.ru
Дата: 31.10.08 07:44
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

KV>>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.


ВВ>Я попробовал себе представить внешний вид данной "строки", чтобы на программерском форуме человек не увидел подвоха и "вставил" бы это дело в калькулятор

+1
Но форум-то может быть и не программерский. Кроме того, кроме эксплойта можно зашить и само "пасхальное яйцо", тогда это сообщение будет распространятся без твоейго участия
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: minorlogic Украина  
Дата: 31.10.08 07:53
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Если честно, то после этого сообщения я вообще потерял нить твоих рассуждений о добросовестности использования ПО


Я говорю , что при проектировании калькулятора не расматривалась задача проверять чек сумму бинаря или другим способом защищать целостность программы.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 08:26
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


A>Большое, однако, хозяйство. Спасибо за рассказ. А какой профиль компании, если не секрет?


Да нет, не секрет. Оператор сотовой (а с недавнего момента, после приобретения соответствующих компаний, еще и фиксированной широкополосной и беспроводной вай-файной) полосатой связи

KV>>У нас был реальный случай в 2004-ом (я тогда еще не работал в ИБ), когда из-за одного личного ноута, воткнутого технарем, в сети (по всей стране) началась эпидемия helkern/slammer, т.к. MSDE, широко-использовавшийся другими технарями на своих рабочих местах практически во всех филиалах был, как правило, с пустым паролем sa. helkern — это такая вещь, при эпидемии которой достаточно пары-тройки зараженных компов в подсети, чтобы она напрочь легла. В итоге, часть подсетей у нас (в т.ч. серверных) были недоступны несколько часов, прежде чем удалось справиться с активностью червя в них. Прямые финансовые потери от отказа в обслуживании звонков абонентов и доп.сервисов исчислялись сотнями тысяч в каждом регионе. Поэтому от технарей и ИТшников с тех пор, мы стараемся фиксировать как можно больше событий, чтобы не повторилась эта история.


A>Вот это то, о чём я говорил насчёт компетенции. Если в сети висит куча MSDE без паролей к sa, то это ответственность ИБ в самой её подлинной форме. (А сетевиков за несанкционированные пакеты пингов надо вообще лишать премии! )


Да тогда в регионах ИБ еше вообще не было Собственно, почти после этого инцидента и появилась, и я перешел туда, строить это направление в регионе.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 08:26
Оценка:
Здравствуйте, Aikin, Вы писали:

A>Здравствуйте, Воронков Василий, Вы писали:


KV>>>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку под видом пасхального яйца с подробными инструкциями по его активации. Разумеется, для якобы активации яйца нужно скопировать нашу строку в буфер и затем вставить в калькулятор.


ВВ>>Я попробовал себе представить внешний вид данной "строки", чтобы на программерском форуме человек не увидел подвоха и "вставил" бы это дело в калькулятор

A>+1
A>Кроме того, кроме эксплойта можно зашить и само "пасхальное яйцо"

А фото Гейтса с размазанным тортом я по-твоему, почему упомянул?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: Aikin Беларусь kavaleu.ru
Дата: 31.10.08 08:41
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

ВВ>>>Я попробовал себе представить внешний вид данной "строки", чтобы на программерском форуме человек не увидел подвоха и "вставил" бы это дело в калькулятор

A>>+1
A>>Кроме того, кроме эксплойта можно зашить и само "пасхальное яйцо"

KV>А фото Гейтса с размазанным тортом я по-твоему, почему упомянул?

Тупанул
Re[14]: Сказка о циничном ученом, простреленных ногах разраб
От: IID Россия  
Дата: 31.10.08 08:51
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, IID, Вы писали:


IID>>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>>>>Успешных атак (повлекших за собой ущерб) за рассматриваемый период не было.


V>>>>либо вы о них не знаете


KV>>>Т.е. ты хочешь сказать, что мы потеряли некоторую часть своих финансовых средств и не знаем об этом?


IID>>А как вы можете об этом знать ?

IID>>Финансовые потери это ведь не только дебет-кредит в компе главбуха.

KV>А что еще? Мы ведь сейчас не о потенциальных потерях говорим, а о фактических?


Почему же только о фактических ? С твоих же слов: Успешных атак, повлекших за собой ущерб. Потенциальный ущерб — тоже ущерб.


IID>>Скажем, если у вас сперли кусок абоненской базы — потеря ли это ?


KV>Безусловно, это потеря. Но реальный ущерб она начнет наносить тогда,

Тем не менее говорить что не было успешной атаки — неверно.

KV>IID>А когда её в паблик выложат ?


KV>Либо не в паблик, но когда эту информацию начнут использовать в каких-либо целях.

А как определить, начали или ещё ждут ? Мобильные мошенники используют такую информацию ? Нет ? А откуда такая уверенность ?

IID>>[offtop]

IID>>В бытность пользования пчелайн-GPRSом на мой комп постоянно ломились заражённые машины других пчелайн-абонентов. Польза от доступности абонентов друг другу кажется мне сомнительной.

KV>Ну вот тебе сомнительной, а многие абоненты ее активно используют

Ага, согласен. Особенно насчёт активно. Наверное, в большинстве своём даже не подозревая о ней (возможности локального соединения). Как транспорт для червей а-ля бластер-сассер использовали.

IID>>Интересно, почему не разделили абонентов между собой, а-ля VLans ?


KV>А зачем?


Чтобы черви не ползали. В 2006ом году трафика червей было просто нереально много. Кстати, у меня есть версия, почему не стоит ограничивать внутренний трафик. Если он платный, конечно.

IID>>[/offtop]
kalsarikännit
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 31.10.08 09:35
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, vayerx, Вы писали:

V>>начнем с "банального" sql injection — никак не зависит от архитектуры фон-Неймана. реализация значительно проще code injection.
L>ну вообще-то sql injection — это тоже в своем роде code injection ;)

вы еще скажите, что она жестко завязанна на фон-Неймана ;)
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: vayerx  
Дата: 31.10.08 09:43
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Это-то так, но суть как раз в том, что разрабатывая под неуправляемую платформу, разработчикам приходится думать И об инъекциях бинарного кода, И о более "прикладных" атаках. Честно говоря, я это уже устал повторять.


аналогично устал повторять, что защита от атак через code injection — пренебрежимая фигня в сопопставлении с другими проблемами. в "общем" случае, разумеется.


V>>чтобы оставить на "сервере закладку" именно code injection не обязателен.

KV>Но если был code injection, то можно оставить на сервере закладку, в отличии от DoS атаки.

а что, кроме DoS'а — никак? ;)


KV>>>хз, к чему этот вопрос?

V>>вопрос к портируемости.
KV>Это не ко мне.

как это не к тебе? ты же ратуешь за эту серебрянную пулю.


KV>>>После этого, мы идем в "Коллеги улыбнитесь" и еще на десяток подобных ресурсов и постим там подготовленную нами строку.

V>>а зачем так сложно-то? рассылаем коллегам ссылочку "ой! какая классная программка: url" ;)
KV>От коллег потом можно и в дыню получить, если что ;)

зачем же отправлять своим непосредственным коллегам? ;) я, вообще, имел в виду коллег из "коллеги улыбнитесь"
Re[4]: security и safety - разные вещи!
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 09:44
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>В общем, дотнет — это хорошо. Действительно не позволяет выстрелить себе в ноги, но зачем это преподносить, как невозможность прострела ног кем-то еще? Подобные допущения в secutity могут оказаться серьёзной ошибкой.


Где я преподносил выделенное? Можно меня ткнуть в мое же сообщение, из которого следует такой вывод? На будущее, чтобы научился более понятно свои мысли высказывать.

KV>>Но что еще более важно:


KV>>2. В случае с управляемыми платформами, ответственность за устранение уязвимостей, обусловленных архитектурой фон-Неймана берут на себя ее разработчики, избавляя тем самым от этой возни разработчиков приложения. Хочу заметить, что разработчиками данной платформы являются отнюдь не студенты трех месяцев выпуска, а достаточно серьезная компания, вкладывающая в безопасность своих продуктов огромные деньги, средства и ресурсы.


GN>Ага, пример уже есть — подписывание драйверов и PatchGuard в Vista 64. Маркетологи лихо подменили "обход DRM" на "malware".


Маркетологи могут профессионально дискредитировать любую технологию, безотносительно ее полезности и перспективности в глазах технических специалистов, выставив ее при этом в глазах обывателей панацеей.

KV>>Наивно полагать, что в общем случае, разработчик приложения сможет организовать меры по обеспечению ИБ ХОТЯ БЫ на таком же уровне, на котором это делает данная конкретная "серьезная компания". Тем более, что ему и так есть чем заняться, помимо обеспечения безопасности своего продукта.


GN>Значит пусть занимается своим делом — разработкой, а не security.


Не совершать ошибки в своем коде, это тоже не его дело? Нет, я понимаю, что есть тестеры, но это же не значит, что разработчик не должен в принципе думать о том, что он пишет в разрезе "неожиданных данных" например?

GN>Никого же не удивляет, что usability занимаются специально подготовленные люди? Вот и безопасностью (где, кстати, самое слабое звено всегда было и будет — человеческий фактор, а не дыры в софте) пусть занимаются специалисты.


Пусть. Но приземленный пример: в офисе убирают уборщицы (глупо ожидать этого от работников), но это ведь не значит, что работники имеют право сорить где попало?

GN>Ты, похоже, уже начал,


Это не моя специфика вообще-то. Это я так. Для общего развития упражняюсь

GN>но этот крик души больше похож на premature optimization и наезд на Морфеусов,


Это не крик души. Исходный вариант этого текста был совершенно не обиден и менее эмоционален. Но запости я его сюда, и что? Понаставили бы оценок, плюсов/минусов и забыли. А так, получилось хоть как-то, хоть кого-то расшевелить

GN>чем взвешенный анализ векторов атак на конкретный софт.


Это действительно интересно многим здесь? Мне не трудно написать на эту тему пару статей, но мне показалось, что это тут нафиг никому "не упало".

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[15]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 09:44
Оценка:
Здравствуйте, IID, Вы писали:

KV>>А что еще? Мы ведь сейчас не о потенциальных потерях говорим, а о фактических?


IID>Почему же только о фактических ? С твоих же слов: Успешных атак, повлекших за собой ущерб. Потенциальный ущерб — тоже ущерб.


Ок, "повлекших за собой нанесение ущерба". Так лучше?

IID>>>Скажем, если у вас сперли кусок абоненской базы — потеря ли это ?


KV>>Ну вот тебе сомнительной, а многие абоненты ее активно используют

IID>Ага, согласен. Особенно насчёт активно. Наверное, в большинстве своём даже не подозревая о ней (возможности локального соединения). Как транспорт для червей а-ля бластер-сассер использовали.

Да нет, я имел ввиду как раз-таки осознанное использование.

IID>>>Интересно, почему не разделили абонентов между собой, а-ля VLans ?

KV>>А зачем?

IID>Чтобы черви не ползали. В 2006ом году трафика червей было просто нереально много. Кстати, у меня есть версия, почему не стоит ограничивать внутренний трафик. Если он платный, конечно.


У нас и в сотовой и в фиксе — не платный, AFAIK Но в сотовой действительно есть планы прикрыть его нафиг.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 09:44
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Если честно, то после этого сообщения я вообще потерял нить твоих рассуждений о добросовестности использования ПО


M>Я говорю , что при проектировании калькулятора не расматривалась задача проверять чек сумму бинаря или другим способом защищать целостность программы.


На рассматривалась, потому что приведенный тобой пример — уязвимость деплоймента, а не девелопмента

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.10.08 10:03
Оценка:
Здравствуйте, gandjustas, Вы писали:

E>>Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.

G>Слово верификация вам ни о чем не говорит? На .NET код перед запуском проверяется. Для того чтобы выполнить произволный код в программе на .NET нужна уязвимость в CLR, которых гораздо меньше, чем уязвимостей в программах на неуправляемых языках, и исправляются такие ошибки быстрее.

Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 10:11
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, gandjustas, Вы писали:


E>>>Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.

G>>Слово верификация вам ни о чем не говорит? На .NET код перед запуском проверяется. Для того чтобы выполнить произволный код в программе на .NET нужна уязвимость в CLR, которых гораздо меньше, чем уязвимостей в программах на неуправляемых языках, и исправляются такие ошибки быстрее.

E>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

Если имеет strong name, то нет. Разве что у злоумышленника будет доступ к ключу, которым подписали исходную сборку.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 10:24
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Но ОК, одна уязвимость засчитана Но она была закрыта 10.07.2007 и теперь ее, увы — нет.

CC>Но одного этого факта достаточно чтобы перестать считать, что managed среда не подвержена атакам, свойственным unmanaged среде.

CC>Т.е. посыл из самого первого сообщения темы про "И оказалось, что находясь в такой матрице, разработчику уже не нужны костыли, т.к. там его ноги оказываются совершенно не простреленными!" — неверен.


Еще раз: исправление подобных уязвимостей головная боль разработчиков виртуальной архитектуры, им и ходить на костылях. Кроме того, подобные уязвимости обусловлены ошибками в коде платформы (можно исправить), а не by-design, потому что у платформы такая архитектура (исправить нельзя).

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 31.10.08 10:37
Оценка:
Здравствуйте, gandjustas, Вы писали:

E>>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

G>Если имеет strong name, то нет. Разве что у злоумышленника будет доступ к ключу, которым подписали исходную сборку.

Если бы... http://www.codeproject.com/KB/security/StrongNameRemove20.aspx

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 31.10.08 10:49
Оценка:
Здравствуйте, vayerx, Вы писали:

V>аналогично устал повторять, что защита от атак через code injection — пренебрежимая фигня в сопопставлении с другими проблемами. в "общем" случае, разумеется.


Чем обоснуешь?

Кстати, вот интересные факты на тему, что "не все приложения нуждаются в защите от инъекций":

...Since then, at least two major internet worms have exploited buffer overflows to compromise a large number of systems. In 2001, the Code Red worm exploited a buffer overflow in Microsoft's Internet Information Services (IIS) 5.0 and in 2003 the SQL Slammer worm compromised machines running Microsoft SQL Server 2000.

In 2003, buffer overflows present in licensed Xbox games have been exploited to allow unlicensed software, including homebrew games, to run on the console without the need for hardware modifications, known as modchips.

The PS2 Independence Exploit also used a buffer overflow to achieve the same for the PlayStation 2. The Twilight Hack accomplished the same with the Wii, using a buffer overflow in The Legend of Zelda: Twilight Princess.

лэт ми спик фром май харт
Re[11]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 31.10.08 11:01
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, vayerx, Вы писали:

V>>аналогично устал повторять, что защита от атак через code injection — пренебрежимая фигня в сопопставлении с другими проблемами. в "общем" случае, разумеется.

V>Чем обоснуешь?


случается, редко, конечно, но все же встречается крохотная часть кода, посвещенная непосредственно предметной области. вы же не будете утверждать, что весь софт пишется исключительно для веба или "около веба"? примеры с калькулятором кажутся неубедительными и по их поводу я уже говорил выше.
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 31.10.08 11:12
Оценка:
Здравствуйте, vayerx, Вы писали:

V>>Чем обоснуешь?


V>случается, редко, конечно, но все же встречается крохотная часть кода, посвещенная непосредственно предметной области. вы же не будете утверждать, что весь софт пишется исключительно для веба или "около веба"? примеры с калькулятором кажутся неубедительными и по их поводу я уже говорил выше.


Ну я же ниже пример приводил. Ок, продублирую ещё раз:

In 2003, buffer overflows present in licensed Xbox games have been exploited to allow unlicensed software, including homebrew games, to run on the console without the need for hardware modifications, known as modchips.

The PS2 Independence Exploit also used a buffer overflow to achieve the same for the PlayStation 2. The Twilight Hack accomplished the same with the Wii, using a buffer overflow in The Legend of Zelda: Twilight Princess.


Казалось бы, "железный" софт, с внешним миром контактирует по минимуму, это вам не веб-сервер какой, ан вот оно как вышло.

P.S.: Если кто-то найдёт в моем сообщении призыв писать софт для Xbox на .NET'e, пусть сходит к офтальмологу.
лэт ми спик фром май харт
Re[5]: security и safety - разные вещи!
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 11:14
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Отмечу в скобках, что исполнение данных может быть нормальным явлением. И вообще, что-то мне не нравится это направление обсуждения. Есть атрибуты страницы, их можно менять, в частности, разрешать или запрещать исполнение, VirtualProtect, PAGE_EXECUTE. И тот факт. что этим пользуются злоумышленники, еще не причина, чтобы саму идею хоронить. Как иначе будут работать программы, у которых зашифрован код (не .net, нативные) ? Как писать самомодифицирующийся код ?

Ну, для начала необходимо понять, для чего необходимы шифрованные программы (и не противоречит ли их использование вопросам безопасности), и для чего необходим самомодифицирующийся код.
Вот, к примеру, singularity. Там в принципе невозможна ни модификация кода, ни исполнение данных. И ничего, всё работает. Хочешь породить новый код — порождай; он пройдет верификацию и будет запущен. Не пройдет верификацию — не будет запущен.
Аппаратная защита от исполнения данных, равно как и аппаратная изоляция процессов, штука очень дорогостоящая. В смысле ресурсов. Поэтому всегда есть искушение ее обойти или не использовать. А в полностью верифицируемой среде можно устранить как неэффективность из-за лишних проверок, так и возможность эти проверки обойти.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 11:18
Оценка:
Здравствуйте, eao197, Вы писали:

E>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: Lloyd Россия  
Дата: 31.10.08 11:19
Оценка:
Здравствуйте, vayerx, Вы писали:

V>>>начнем с "банального" sql injection — никак не зависит от архитектуры фон-Неймана. реализация значительно проще code injection.

L>>ну вообще-то sql injection — это тоже в своем роде code injection

V>вы еще скажите, что она жестко завязанна на фон-Неймана


Да не, я просто как обычно к словам придрался.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: Lloyd Россия  
Дата: 31.10.08 11:19
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Смотрим на листбокс и обнаруживаем там нечто интересное


А теперь то же самое — для WPF-приложения
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[12]: Сказка о циничном ученом, простреленных ногах разраб
От: Pavel Dvorkin Россия  
Дата: 31.10.08 11:21
Оценка:
Здравствуйте, vayerx, Вы писали:

V>случается, редко, конечно, но все же встречается крохотная часть кода, посвещенная непосредственно предметной области. вы же не будете утверждать, что весь софт пишется исключительно для веба или "около веба"? примеры с калькулятором кажутся неубедительными и по их поводу я уже говорил выше.


Утверждать они не будут, но они перенсят принципы, хорошие для веба, на все остальное ПО и упорно пытаются их выдать за фундаментальные принципы. Может, сознательно, а скорее подсознательно. Их так учили
With best regards
Pavel Dvorkin
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: prVovik Россия  
Дата: 31.10.08 11:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Утверждать они не будут, но они перенсят принципы, хорошие для веба, на все остальное ПО и упорно пытаются их выдать за фундаментальные принципы. Может, сознательно, а скорее подсознательно. Их так учили


Давно игровые приставки стали вебом?
лэт ми спик фром май харт
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 11:38
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, gandjustas, Вы писали:


E>>>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

G>>Если имеет strong name, то нет. Разве что у злоумышленника будет доступ к ключу, которым подписали исходную сборку.

KV>Если бы... http://www.codeproject.com/KB/security/StrongNameRemove20.aspx

Только ссылки на такую сборку поломаются. Также есть CAS, с помощью которого можно запретить действия для неподписанных сборок.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.10.08 11:39
Оценка:
Здравствуйте, Sinclair, Вы писали:

E>>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

S>Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.

"Неожиданный" код -- это какой?

Например, кто-то написал на C# код, который с помощью .NET Framework передает по HTTP какую-то информацию на удаленный хост. Затем получил для этого кода IL, внедрил его в какую-нибудь сборку с подделкой всех реквизитов сборки. Что позволит не верифицировать этот код?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: security и safety - разные вещи!
От: Pavel Dvorkin Россия  
Дата: 31.10.08 12:05
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


S>Вот, к примеру, singularity. Там в принципе невозможна ни модификация кода, ни исполнение данных.


В принципе ? Даже если будет написан некий продукт, который перепишет загрузочный сектор, загрузит себя, захватит контроль над защищенным режимом и запустит ее из под себя ? Ну вроде SoftIce для 9x, который и загружал Windows. Технически — да, очень сложно, может, практически нереализуемо, но в принципе ?
With best regards
Pavel Dvorkin
Re[7]: P.S.
От: Pavel Dvorkin Россия  
Дата: 31.10.08 12:12
Оценка:
А скорее всего такой продукт существует. У авторов этой singularity. Им-то как-то ее отлаживать надо ? . Управляемый код в ней управляется другим управляемым кодом, ладно, а тот в свою очередь ? В конечном счете должен же быть неуправляемый код — процессор-то пока неуправляемый!

А может, пора управляемые процессоры делать ? Только вот кто ими управлять будет ?
With best regards
Pavel Dvorkin
Re[13]: Сказка о циничном ученом, простреленных ногах разраб
От: vayerx  
Дата: 31.10.08 12:14
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Казалось бы, "железный" софт, с внешним миром контактирует по минимуму, это вам не веб-сервер какой, ан вот оно как вышло.

V>P.S.: Если кто-то найдёт в моем сообщении призыв писать софт для Xbox на .NET'e, пусть сходит к офтальмологу.

и что с того? теперь обжегшись на молоке дуть на воду? ради чего бронировать все подряд?
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Pavel Dvorkin Россия  
Дата: 31.10.08 12:21
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Смотрим на листбокс и обнаруживаем там нечто интересное


L>А теперь то же самое — для WPF-приложения


То же самое — не получится, окна там нет. Но можно другое.

Делаем WPF приложение. Ничего не меняем. Заголовок окна "Window1".

Программа на С++


int _tmain(int argc, _TCHAR* argv[])
{
    HWND hFormWnd = FindWindow(NULL, L"Window1");
    SetWindowText(hFormWnd,L"What's matter with my caption ?");
    return 0;
}
With best regards
Pavel Dvorkin
Re[8]: P.S.
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 12:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А скорее всего такой продукт существует. У авторов этой singularity. Им-то как-то ее отлаживать надо ? . Управляемый код в ней управляется другим управляемым кодом, ладно, а тот в свою очередь ? В конечном счете должен же быть неуправляемый код — процессор-то пока неуправляемый!

Достаточно подробное описание архитектуры сингулярити в этом форуме уже было. Совершенно нетрудно найти и соответствующую статью, в которой подробно написано, какой объем кода ядра верифицируется вручную.
"Нуправляемый в конечном счете" код получается из управляемого, после верификации и компиляции.
PD>А может, пора управляемые процессоры делать ? Только вот кто ими управлять будет ?
Как раз наоборот: практика показала, что управляемые процессоры катастрофически неэффективны. Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: _DAle_ Беларусь  
Дата: 31.10.08 12:36
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ну слава Всевышнему, хоть один уловил истинную тему этого текста. Я уж думал, мне тут плясать и петь песни придется, чтобы обратить внимание на эту проблему.


KV>Ок, зайдем издалека: что именно НАДО разработчикам-не-ламерам? Чтобы написанный ими код работал в соответствии с поставленной задачей?


Я другую "сказку" расскажу немного не в тему. Пару лет назад в С# стандартная сортировка валилась (вырождалась в квадратичную) примитивной пирамидой (1,2,...,n,...,2,1). И все приложения, позволяющие относительно большой пользовательский ввод (импорт таблицы, например) с последующей возможностью сортировки очень просто уходили в ночь. Это, конечно, не сильно большая проблема, но о ней, похоже, тоже мало кто когда-нибудь задумывается.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 12:38
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Sinclair, Вы писали:


E>>>Код сборки до запуска лежит на диске? Может ли он может быть изменен на диске и последующим исправлением всех контрольных сумм и пр.?

S>>Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.

E>"Неожиданный" код -- это какой?


E>Например, кто-то написал на C# код, который с помощью .NET Framework передает по HTTP какую-то информацию на удаленный хост. Затем получил для этого кода IL, внедрил его в какую-нибудь сборку с подделкой всех реквизитов сборки. Что позволит не верифицировать этот код?


Выделенное обеспечить достаточно сложно.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 12:44
Оценка:
Здравствуйте, eao197, Вы писали:
E>Например, кто-то написал на C# код, который с помощью .NET Framework передает по HTTP какую-то информацию на удаленный хост. Затем получил для этого кода IL, внедрил его в какую-нибудь сборку с подделкой всех реквизитов сборки. Что позволит не верифицировать этот код?
Верификация ничего не говорит о "злонамеренности" кода. Верификация ганартирует, что написанный на дотнете код, который работает со строкой, принятой по сети, невозможно обманом заставить проинтерпретировать содержимое этой строки как инструкции процессора и выполнить их.

То есть верификация позволяет спастись от кода, который маскируется под данные. Есть детерминированное количество способов получить указатель для косвенного вызова, и ни один из них не позволяет передать управление "в воздух".

А вот для решения приведенной тобой проблемы работает Code Access Security. Грубо говоря, мало сгенерировать такую сборку, нужно убедить систему ее исполнить.
Подпись майкрософт ты под ней зафорджить не сможешь; в низком уровне Trust у тебя такой код просто не сможет выполниться, ему скажут "нет прав отправлять информацию на удаленный хост". Всё.
В неуправляемом коде аналог CAS получить крайне сложно, потому что там есть богатые возможности по маскировке происхождения кода. Грубо говоря, любая DLL, загруженная в процесс, выполняется под правами этого процесса. Упс.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: hattab  
Дата: 31.10.08 12:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.


А как же native images от ngen?
Re[8]: security и safety - разные вещи!
От: vayerx  
Дата: 31.10.08 12:57
Оценка:
Здравствуйте, Sinclair, Вы писали:


PD>>Даже если будет написан некий продукт, который перепишет загрузочный сектор, загрузит себя, захватит контроль над защищенным режимом и запустит ее из под себя ?

S>Ничего не получится. В том смысле, что код, который захочет что-то записать в загрузочный сектор, должен это будет сделать при помощи обращения к коду ОС.

загрузка с зараженного cd/dvd/usb-disk в наше время маловероятна. сетевая загрузка с зараженного компьютера — уже чуть более.
а если подменяется дистрибутив? тогда код установки будет выполнен с правами рута.
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.08 12:58
Оценка:
Здравствуйте, hattab, Вы писали:
S>>Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.
H>А как же native images от ngen?
Если честно, то я не в курсе, чем именно они защищены от подделки. Но есть мнение, что перед использованием пронгененых сборок рантайм проверяет реквизиты сборки в GAC.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: hattab  
Дата: 31.10.08 13:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>>Кода сборки до запуска не существует. На диске лежит промежуточный код; при его компиляции происходит верификация, которая гарантирует отсутствие таких вещей, как исполнение "неожиданного" кода.

H>>А как же native images от ngen?
S>Если честно, то я не в курсе, чем именно они защищены от подделки. Но есть мнение, что перед использованием пронгененых сборок рантайм проверяет реквизиты сборки в GAC.

Мне стало интересно. Редактором FAR'а открыл сборку C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\PaintDotNet.SystemL#\7aeec1a31a19054398c9ab08460a0780\PaintDotNet.SystemLayer.ni.dll и от балды поменял один байт. После чего запустил Paint.NET, который открылся, как ни в чем не бывало (эту сборку он загрузил, я посмотрел ProcessExplorer'ом)
Re[8]: security и safety - разные вещи!
От: Pavel Dvorkin Россия  
Дата: 31.10.08 13:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

PD>>Даже если будет написан некий продукт, который перепишет загрузочный сектор, загрузит себя, захватит контроль над защищенным режимом и запустит ее из под себя ?

S>Ничего не получится. В том смысле, что код, который захочет что-то записать в загрузочный сектор, должен это будет сделать при помощи обращения к коду ОС.

S>Естественно, принцип можно обойти путем извлечения диска из компьютера и ручной замены загрузочного сектора.


Зачем же извлекать ? Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.
With best regards
Pavel Dvorkin
Re[9]: P.S.
От: CreatorCray  
Дата: 31.10.08 14:12
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".

Где это можно посмотреть?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 31.10.08 14:28
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Зачем так сложно? Берём системный блок и об стену его — гораздо проще надёжнее, чем с дискетами возиться!


Интересно узнать, с чем не согласен vayerx?
лэт ми спик фром май харт
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: Константин Б. Россия  
Дата: 03.11.08 05:39
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Lloyd, Вы писали:

L>>Можно ссылки на прецендерты таких хаков? А то я не слышал о таком, интересно почитать.

PD>Насчет прецедентов — не знаю, а вмешаться в процесс — раз плюнуть. Вот тебе простой пример.

PD>Создаем WinForms приложение, бросаем на форму листбокс, в него добавляем 2 строки — "Hello" и "World". Имя формы меняем на "CrackTest". Запускаем. имеем листбокс с этими двумя строчками
PD>Создаем консольное Win32 приложение и пишем в нем, например, так
PD>...
PD>Смотрим на листбокс и обнаруживаем там нечто интересное :-)
Под вистой и 2008 сервером работать не будет. Ибо нельзя слать сообщения привелегированным процессам.(Непривелегированые нам как бы ломать незачем, ведь так?). В XP тоже есть чем защититься: разделить систему на гуй и неинтерактивную службу, отдельный Desktop и WindowStation и т.д.

PD>Чтобы поменять строчки в коллекции, мне придется потрудиться немного больше. Поставить хук, открыть процесс, остановить его , просканировать его память и поменять там то, что надо. За 5 минут не напишу, но, в общем, ничего сложного нет.

Ну это вообще безобразие. Кто вам даст просто так открыть процесс и его память если у вас нет на то прав? А если есть права, то нафига ломать процесс, если можно заняться непосредственно вредоносными действиями? Как вам тут заметили еще можно и шнур из розетки выдернуть...
Re: Буду краток (©)
От: Roman Odaisky Украина  
Дата: 03.11.08 09:24
Оценка:
1. Среда исполнения — Java, .NET, Python, Perl и т. д. — конечна, а возможные программы бесконечны. Возможно проверить среду на отсутствие некоторых видов ошибок, и все программы в этой среде станут невосприимчивы к ним.
2. Что не является настолько веским преимуществом, чтобы всё бросить и начать писать управляемые программы.
3. Тем более, что и в неуправляемых программах можно с пользой для дела использовать бит NX в виде W^X, PaX и т. п.
4. Впрочем, с убиением об стенку программных патентов в США в прошлый четверг уже становится возможным использовать .NET в серьезных целях для тех задач, в которых преимущества данной технологии перевешивают недостатки.
До последнего не верил в пирамиду Лебедева.
Re[10]: P.S.
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.11.08 07:59
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, Sinclair, Вы писали:


S>>Как раз наоборот: практика показала, что управляемые процессоры катастрофически неэффективны. Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".


M>Раскижите подробнее? Я смотрел на сингулярити но не нашел ничего чтобы указывало на ее быстроту по сравнению с вин линь.

А куда, собственно, смотрел?
Вот основная статья. Советую посмотреть в секцию 6, страницы 31-34.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: P.S.
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.11.08 08:01
Оценка:
Здравствуйте, CreatorCray, Вы писали:
CC>Где это можно посмотреть?
Собственно, в основной статье про нее.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: P.S.
От: CreatorCray  
Дата: 05.11.08 09:04
Оценка:
Здравствуйте, Sinclair, Вы писали:

CC>>Где это можно посмотреть?

S>Собственно, в основной статье про нее.
Я имею в виду конкретные цифры измерений.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.08 16:25
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>1. Особенность (а отнюдь не просчет) фон-Неймановской архитектуры обусловила существование вирусов и атак инъекций бинарного кода на современных платформах.


E>Что является хорошим примером того, как вирус способен распространятся, мутировать и наносить ущерб без инъекций бинарного кода, за счет использования только обычных средств ОС.


Ок, а червь?

E>Так же показательны примеры вирусов Christmas Tree и Морриса, которые распространялись без использования иньекций бинарного кода.


Насчет первого не скажу, а вот червь Морриса использовал переполнение буфера в finderd:

Исходники червя ->
Файл hs.c ->
Функция "static try_finger(host, fd1, fd2)"

Правда и "обычные средства ОС" там тоже были не на последнем месте, но тем не менее.

KV>>Интересующимся стоит почитать о работах Фреда Коэна и истории создания Core Wars.


E>Почему тогда уже сразу к Darvin не обратиться?


А у меня по ней почти нет инфы (кроме того, что она на два десятка лет раньше появилась и стала прародительницей CW), а CW — сам играл Кроме того, IMHO, до CW интерес у "гиков" к этой теме был так себе.

KV>>2. Код, позволяющий произвольно и недетерминированно изменять собственную логику выполнения через передачу ему неожидаемые входных данных, не является работающим кодом.


E>Это сильно зависит от условий и обстоятельств.


И, в конечном итоге, определяется по результатам проведения оценки реальных рисков по построенной модели угроз

E>Считаете ли вы, что для всех этих классов приложений нужно использовать серьезную защиту от вредоносных данных?


А где грань между грамотным кодированием и дополнительными мерами по организации серьезной защиты? Я вообще-то, о первом.

KV>>В любых других случаях, ваш код не будет работающим.


E>Почему нет варианта об использовании языков с более прозрачной семантикой, чем у C/C++, но компилирующихся в нативный код? Да еще обеспечивающих тотальный контроль за Например, Modula-2, Eiffel, Ada, OCaml, Haskell?


А это меня в тему "С/С++ vs C#" понесло, не обращайте внимания. Хотя ни один из перечисленных языков и не является столь обсуждаемым тут периодически "мейнстримом".

E>Опять же, если обратиться к книге Безрукова, то там есть интересная цитата из тьюринговской лекции Кена Томпсона:

E>

E>Нельзя доверять программам, написанным не вами самими ... Никакой объем верификации исходного текста и исследований не защитит вас от использования ненадежного (untrusted) кода. По мере того как уровень языка, на котором написана программа, снижается, находить эти ошибки становится все труднее и труднее. "Хорошо продуманную" (well installed) ошибку в микрокоде найти почти невозможно.


Вот поэтому мы и приходим к необходимости трезвой оценки рисков и поиску компромиса между "нафиг защиту" и "защитим все на 100%", которая даже в примитивном виде, по факту, редко где встречается

E>Рекламируемый вами переход на управляемые платформы (при этом вы не приводите ни одного примера успешной и распространенной полностью управляемой платформы: и Java, и .NET работают над нативными платформами и, значит, не могут быть надежнее того базиса, на котором они построены) вряд ли можно считать панацей. Как и раньше, человек остается самым слабым звеном.


Атака именно на управляемое приложение через нативную уязвимость в его платформе, по сложности и оправданности похожа на операцию по удалению гланд через эээ... ну, низ спины За исключением этого факта, да, вы правы.

E>Если вспоминать историю вирусных эпидемий на ПК под управлением ранних версий Макинтошей и Досов, то вирусу нужно было сначала запуститься вручную -- через зараженную программу (или произвести загрузку системы с зараженного носителя). Только после этого вирус мог модифицировать код ОС в памяти (если он был резидентным) или другие файлы/загрузочные сектора. И даже в таких условиях, когда WWW еще не было и основным способом передачи программ были дискеты (по крайней мере в Союзе), вирусы все равно умудрялись устраивать эпидемии.


Вот. А с освоением вирусописателями всевозможных атак на переполнение буфера, вирусописатели получили возможность запускать код без ведома пользователя. Но то, что человеческий фактор будет иметь место всегда, это да, к сожалению.

E>Насколько я могу судить, ситуация сильно лучше не стала -- для большой части вирусов до сих пор требуется, чтобы пользователь запустил на исполнение зараженный файл. А дальше вирус может заняться модификацией файлов на диске. И здесь могут не помочь даже электронные подписи, т.к. существуют примеры, когда даже сертификаты умудрялись подменять, сохраняя MD5 подписи. А чтобы исполняемые файлы нельзя было изменить, нужна строгая политика ОС. И если ОС ее не обеспечивает, то переход с C++ на .NET является всего лишь временным улучшением, но не лекарством.


Blaster, Helkern/Slammer и им подобные не изменяли исполняемые файлы. Они вообще не имели тела как такового, но тем не менее, устроили неслабые эпидемии в свое время.

KV>>Из внимательного чтения данной темы следует, что существуют разработчики, которые не хотят делать свой код работающим, но при этом и не позволяют изолировать себя в управляемую среду, а следовательно наносят вред окружающим своим тлетворным влиянием и дырявыми продуктами


E>А я вот хочу задать дилетанский вопрос: почему вообще на x86 под управлением Windows возможны такие вещи, как иньекции бинарного кода? Вроде как давно используется защищенный режим процессора, и управление доступом к страницам памяти. Почему страницы с кодом не защищены от записи и переполнением буфера можно передать управление на иньектированный вредоносный код?


Страницы с кодом могут быть защищены, но это лежит на совести разработчиков, AFAIK Ну, или компиляторов, хотя не уверен. Вот в Google Chrome например, используются NX-биты для защиты его страниц , а (например) в qip — нет. Хотя класс приложений (и риски, связанные с атаками на них) примерно одинаковые

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Буду краток (©)
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.08 16:25
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>4. Впрочем, с убиением об стенку программных патентов в США в прошлый четверг уже становится возможным использовать .NET в серьезных целях для тех задач, в которых преимущества данной технологии перевешивают недостатки.


OMG, Рома, ну это-то тут причем?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Буду краток (©)
От: Roman Odaisky Украина  
Дата: 05.11.08 17:37
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

RO>>4. Впрочем, с убиением об стенку программных патентов в США в прошлый четверг уже становится возможным использовать .NET в серьезных целях для тех задач, в которых преимущества данной технологии перевешивают недостатки.


KV>OMG, Рома, ну это-то тут причем?


Пока существует только одна реализация для только одной ОС, да еще и несвободная, да еще и патенты мешают изменению этой ситуации, разве можно использовать такую платформу для серьезных проектов? А теперь ничто не мешает допилить Mono до конца. Можно будет выкинуть Flash, заменив ее на Moonlight, и не бояться привязки к платформе. В общем, у .NET большое будущее.
До последнего не верил в пирамиду Лебедева.
Re[10]: security и safety - разные вещи!
От: gear nuke  
Дата: 05.11.08 23:38
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Дисциплина "информационная безопасность" имеет смысл на существование (и это всегда оговаривается в учебниках по ИБ) только в предположении об отсутствии физического доступа к оборудованию.

LCR> Иначе собственно и изучать нечего.

Это неверно, и есть учебники, учащие прямо противоположному ("Исскусство обмана" Митник). Из рамок выше выходят, в частности: Lunchtime атаки — доступ к оборулованию есть (отвлекли секретаршу и сунули дискетку); DRM — запуск в "белом ящике" (полный контроль над потоками команд и данных).

Учебники — либо в макулатуру, либо неверно истолкованные цитаты — в форум, для реабилитации авторов. У того же Шнайера есть "подобное" — что-то вроде "стойкие шифры работают пока приватный ключ недоступен", не правда ли, это не совсем то, хоть и похоже?

LCR>Так что разговоры о биосах, ресете и сброшенных атомных бомбах на электростанции — некорректны.


Если эти векторы атаки не учтены, речь идёт не о безопастности, а о "полурешении". Другое дело, если учтены, но признано, что не актуальны.

LCR>Аналогия для прояснения моей позиции: во время обсуждения приёмов рукопашного боя, один из участников говорит "а вот я вытаскиваю пистолет и выпускаю в вас всю обойму, ваши действия?". Имеет ли смысл обсуждать подсечки и броски через бедро в таком контексте? Предмет очевидно переходит совсем в другую дисциплину, а именно "самозащита против огнестрельного оружия".


Дисциплина остаётся та же — самозащита. Ключевые моменты остаются те же — наблюдение за противником, самоконтроль... Броски и подсечки — это механические детали, по важности подобные нажатию на клавиши при программировании
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[12]: security и safety - разные вещи!
От: gear nuke  
Дата: 06.11.08 09:45
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Ну давай ещё добавь сюда учебники по ректальному криптоанализу, что уж там...


Это не смешно, вполне реальный вектор атаки, иногда следует исходить из того, что и по собственному желании кто-то может раскрыть секреты (и даже подписать гамно сертификатом от МС) В частности поэтому придумано разделение секретов.

LCR>Короче, по теме изоляции процессов в Сингулярити есть что-нибудь?


А, так речь о Сингулярити, а упоминние про ИБ было к слову? Ок: если есть строгое доказательство, или хотя бы проверка временем — изоляция процессов в Сингулярити решает проблему изоляции процессов, но не более того.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[13]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 06.11.08 11:25
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Это не смешно, вполне реальный вектор атаки...


Но только при чём тут ПО? Это уже совершенно иная область, к которой ПО практически не имеет отношения. Какой смысл приводить физическое вмешательство в аппаратуру в качестве доказательства слабой защищённости программного обеспечения? Это всё равно, что сказать, что ремни безопасности бесполезны в случае прямого попадания в автомобиль атомной бомбы.
лэт ми спик фром май харт
Re[14]: security и safety - разные вещи!
От: gear nuke  
Дата: 07.11.08 00:07
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Но только при чём тут ПО?


При том, что сертификаты для его подписи могут быть получены подобным способом.

V>Какой смысл приводить физическое вмешательство в аппаратуру в качестве доказательства слабой защищённости программного обеспечения?


Об этом и речи не было. Или не ясно, что такое ректальный криптоанализ?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[11]: P.S.
От: minorlogic Украина  
Дата: 07.11.08 06:38
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, minorlogic, Вы писали:


M>>Здравствуйте, Sinclair, Вы писали:


S>>>Как раз наоборот: практика показала, что управляемые процессоры катастрофически неэффективны. Сингулярити показывает офигительный отрыв в производительности от линуксов и винды на том же железе, как раз за счет отказа от тех фич процессора, которые относятся к "управляемости".


M>>Раскижите подробнее? Я смотрел на сингулярити но не нашел ничего чтобы указывало на ее быстроту по сравнению с вин линь.

S>А куда, собственно, смотрел?
S>Вот основная статья. Советую посмотреть в секцию 6, страницы 31-34.

Видишь только то что хочешь. Микробенчмарки на некоторые СИСТЕМНВЫЕ бенчмарки выигрывают , вероятно связанно с отсутствием слоев абстракций и переключений режима. На реальном приложении тесты слились подчистую.

ты именно это назвал "офигительный отрыв" ? микротесты системных вызовов ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 07.11.08 16:55
Оценка:
Здравствуйте, eao197, Вы писали:

KV>>Насчет первого не скажу, а вот червь Морриса использовал переполнение буфера в finderd:

KV>>Правда и "обычные средства ОС" там тоже были не на последнем месте, но тем не менее.

E>Дыра в finderd была только одним из способов, там же еще используется и второй способ (функция try_mail), который просто эксплуатируют особенность почтового агента на удаленной машине.


Что уже не делает данный конкретный пример показательным :-Р

E>Червь Christmas Tree был вообще написан на Rexx-е -- а это сплошной управляемый код.


Есть пример подобного червя, последствия эпидемии которого были бы сопоставимы с теми же Blaster'ом, Sasser'ом, CodeRed и т.п.?

KV>>Атака именно на управляемое приложение через нативную уязвимость в его платформе, по сложности и оправданности похожа на операцию по удалению гланд через эээ... ну, низ спины За исключением этого факта, да, вы правы.


E>А почему вы считаете, что атаки чарез уязвимости в нативной части платформы очень сложны и не оправданы? На основании каких оценок?


Статистических Можно увидеть реальные примеры подобных успешных атак?

E>>>Насколько я могу судить, ситуация сильно лучше не стала -- для большой части вирусов до сих пор требуется, чтобы пользователь запустил на исполнение зараженный файл. А дальше вирус может заняться модификацией файлов на диске. И здесь могут не помочь даже электронные подписи, т.к. существуют примеры, когда даже сертификаты умудрялись подменять, сохраняя MD5 подписи. А чтобы исполняемые файлы нельзя было изменить, нужна строгая политика ОС. И если ОС ее не обеспечивает, то переход с C++ на .NET является всего лишь временным улучшением, но не лекарством.


KV>>Blaster, Helkern/Slammer и им подобные не изменяли исполняемые файлы. Они вообще не имели тела как такового, но тем не менее, устроили неслабые эпидемии в свое время.


E>Странно -- у Blaster вроде как вполне конкретное тело есть -- msblast.exe. И для своего запуска на зараженной машине он использовал тривиальный метод -- реестр Windows.


Ну если быть совсем точными, то blaster не заражал исполнимые файлы, а helkern не имел тела. И?

E>Т.е. дырявость механизмов ОС позволила ему даже не заниматься встраиванием своего тела в другие исполнимые файлы.


Боюсь, все же, что ему это не позволила лень его автора Либо квалификация, учитывая, что он использовал готовый эксплоит (насколько я помню) и наделал в своей части кода кучу ошибок.

E>

E>А вообще подумалось... Насколько я знаю, существует у безопасников негласное правило -- любая система защиты рано или поздно будет скомпрометированна. Поэтому, как минимум, слышать от безопасника о надежде на то, что переход к управляемым средам позволит избавится от проблем с безопасностью софта, несколько странно.

От "безопасника" вы тут услышали ровно то, что переход к управляемым средам позволит избавиться (минимизировать риски до приемлемого уровня) от вполне конретного класса угроз. Весьма популярного класса угроз, представляющего собой достаточно серьезную проблему, чтобы избавление от нее стало праздником, образно выражаясь.

Все остальное, что вы тут "услышали от безопасника", рождено фантазией программеров, оказавшихся в соответствии с сутью сказки не "на коне", и моментально ставших на противоположную сторону исходного посыла

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 07.11.08 16:55
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, eao197, Вы писали:


E>>Странно -- у Blaster вроде как вполне конкретное тело есть -- msblast.exe. И для своего запуска на зараженной машине он использовал тривиальный метод -- реестр Windows. Т.е. дырявость механизмов ОС позволила ему даже не заниматься встраиванием своего тела в другие исполнимые файлы.


GN>Реестр, кстати, хороший пример. С одной стороны — это данные, верифицируемые системой безопасности Виндос,


Это в каком месте система безопасности винды верифицирует данные, хранящиеся в реестре?

GN>с другой — это команды (программа) для компонентов ОС.


Вот я и говорю — порочная практика. А все спорите и спорите

E>> Поэтому, как минимум, слышать от безопасника о надежде на то, что переход к управляемым средам позволит избавится от проблем с безопасностью софта, несколько странно.


GN>Using System.Reflection namespace in .NET viruses

GN>

.NET will be the base of future Windows versions so that .NET viruses will
GN>dominate in future.


В указанной статье нет ни слова про переполнения буфера. И?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Буду краток (©)
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 07.11.08 16:55
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, kochetkov.vladimir, Вы писали:


RO>>>4. Впрочем, с убиением об стенку программных патентов в США в прошлый четверг уже становится возможным использовать .NET в серьезных целях для тех задач, в которых преимущества данной технологии перевешивают недостатки.


KV>>OMG, Рома, ну это-то тут причем?


RO>Пока существует только одна реализация для только одной ОС, да еще и несвободная, да еще и патенты мешают изменению этой ситуации,


Какие конкретно патенты чему там мешали?

RO>разве можно использовать такую платформу для серьезных проектов?


Да

RO>А теперь ничто не мешает допилить Mono до конца.


А ты mono не по-диагонали, смотрел/пробовал?

RO>Можно будет выкинуть Flash, заменив ее на Moonlight, и не бояться привязки к платформе. В общем, у .NET большое будущее.


Ты поаккуратнее с подобными высказываниями здесь. Нео с Морфеусами еще где-то рядом, не дай бог услышат

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[16]: security и safety - разные вещи!
От: gear nuke  
Дата: 08.11.08 04:37
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Но это уже не проблема программного обеспечения.


Но и ректальный криптоанализ приплёл сюда не я! А лишь указал, что достаточно применений для той же криптографии, где условия выполнения в black-box невыполнимы.

V>Была.

V>

V>Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.


Где именно вмешательство в аппаратуру, в домыслах? Пример реальной атаки на сеть одного военного завода: администратор запускает sex.exe...
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[17]: security и safety - разные вещи!
От: prVovik Россия  
Дата: 08.11.08 22:19
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Но и ректальный криптоанализ приплёл сюда не я! А лишь указал, что достаточно применений для той же криптографии, где условия выполнения в black-box невыполнимы.


Благодаря физическому вмешательству всегда можно гарантированно обойти любую криптозащиту. Ну, например, плевать, что ОС шифрует печатаемый на клавиатуре текст, если нажатия клавиш на клавиатуре снимаются на видеокамеру.

V>>Была.

V>>

V>>Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.


GN>Где именно вмешательство в аппаратуру, в домыслах?


1) ручное монтирование диска
2) ручное изменение настроек BIOS
3) ручная перезагрузка

GN>Пример реальной атаки на сеть одного военного завода: администратор запускает sex.exe...


И что, sex.exe вставит в дисковод дискету, поменяет настройки BIOS, перегрузит компьютер? Крута!
лэт ми спик фром май харт
Re[18]: security и safety - разные вещи!
От: gear nuke  
Дата: 09.11.08 02:22
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Благодаря физическому вмешательству всегда можно гарантированно обойти любую криптозащиту.


Это не аксиома, гуглим на тему white box cryptography & DRM. На всякий случай — современное стойкое крипто не гарантирует невозможность обхода, для всех алгоритмов необходимое для обхода время как раз известно

V> Ну, например, плевать, что ОС шифрует печатаемый на клавиатуре текст, если нажатия клавиш на клавиатуре снимаются на видеокамеру.


Один случай не доказывает "всегда можно гарантированно".

V>>>Была.

V>>>

V>>>Пустите хорошего хакера минут на 10 к компьютеру и забудьте отключить флоппи-дисковод. Reset (или Power OFF) , BIOS Setup, далее все ясно.


GN>>Где именно вмешательство в аппаратуру, в домыслах?


V>1) ручное монтирование диска

V>2) ручное изменение настроек BIOS

Не обязательно, см. ниже.

V>3) ручная перезагрузка


Восстановление после потери питания должно быть нормальным use-case.

GN>>Пример реальной атаки на сеть одного военного завода: администратор запускает sex.exe...


V>И что, sex.exe вставит в дисковод дискету, поменяет настройки BIOS, перегрузит компьютер? Крута!


Зачем же, если есть права админа В том конкретном случае был запуск с сетевой шары, перезагрузка не нужна Может быть и другой сценарий — админ отвернулся, вставили дискетку, запустили (подойдёт и flash диск, или CD с автораном — реальные пути распространения современной малвары, кстати).
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: gear nuke  
Дата: 09.11.08 02:22
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Это в каком месте система безопасности винды верифицирует данные, хранящиеся в реестре?


Я намеренно использовал "верифицирует" При открытии веток проверяются права. Это, конечно, не проверка на переполнения буфера, но довольно похоже на проверку подписей.

KV>Вот я и говорю — порочная практика.


Хранить состояние? А как без этого будет работать ОС? Вот и получается ловушка — программа, хранящая состояние тоже подлежит верификации, но на этапе компиляции это NP-полная задача, в отличие от функциональщины. Поэтому проверки переносят в рантайм. И тут может возникнуть проблема: результат проверки тоже от состояния зависит. Можешь предложить надёжную схему проверки, не отозван ли сертификат?

GN>>Using System.Reflection namespace in .NET viruses

GN>>

.NET will be the base of future Windows versions so that .NET viruses will
GN>>dominate in future.


KV>В указанной статье нет ни слова про переполнения буфера. И?


И это не мешает распространяться .NET вирусу.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 09.11.08 09:11
Оценка:

Не все так просто. Теоретически не проблема создать операционку которая не позволит запускать какой либо код не прошедший "доверительных" процедур. Например запустить миранду без проверки подписи у бинарной сборки и т.п. Или как в сингулярити, никакого доступа к железу в принципе.


И это создали, iPhone называется. Его целый месяц ломали. Сейчас чтобы сделать jailbreak достаточно подключить его по USB к компьютеру, запустить одну программу и нажать в ней одну кнопку .
Re[8]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 09:40
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Это в каком месте система безопасности винды верифицирует данные, хранящиеся в реестре?


GN>Я намеренно использовал "верифицирует" При открытии веток проверяются права. Это, конечно, не проверка на переполнения буфера, но довольно похоже на проверку подписей.


Выделенное — называется "авторизует". Никаких проверок на содержимое самих веток реестра не осуществляется, т.о. верификацией тут и не пахнет

KV>>В указанной статье нет ни слова про переполнения буфера. И?


GN>И это не мешает распространяться .NET вирусу.


А native-вирусам?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 09:40
Оценка:
Здравствуйте, EyeOfHell, Вы писали:

EOH>

Ведь он, ни много ни мало, авансом прострелил обе ноги каждому из них. Бытует мнение, что разработчик впервые простреливает себе ногу, когда допускает свою первую грубую и, в то же время, трудноуловимую ошибку. Как бы не так. Лишь только прийдя в мир систем, построенных по архитектуре Джона, разработчик сразу же получает две, отнюдь не серебряных пули в свои нижние конечности...


EOH>А инъекция кода в чужую программу — это что, самое страшное что у нас есть?


Если ты про инъекции любого кода, то таки-да, это наверное самое страшное. Если про инъекции только бинарного кода, то это не самое страшное, но "одно из". Ссылки на подтверждающую это статистику я приводил выше.

EOH>( приглашающий жест рукой, разверзание бездны, вылезание оттуда всякого ).


Чародей, ты не бездну открыл (см. ниже)

EOH>Social Engineering — страшнее на порядок. Хоть намертво все обзащитить — если компьютер включен и за ним кто-то сидит, то он откроет e-mail и запустит оттуда кастомный троян, который по причине кастомности не распознает антивирус. И будет ему штатная модификация система.


Только если у "инжинируемого" пользователя есть права на штатную модификацию системы Например у нас в конторе — таких прав у ~80% пользователей (~18000 человек) нет.

EOH>А вон то многоголовое чудовище — это возможность отсылать e-mail и сетевые пакеты по желанию. Обратите внимания на его тени — спам и дос.


Это не уязвимости, это последствия эксплуатации уявзимостей. Чтобы твой комп начал рассылать спам и досить всех почем зря, в нем должен обосноваться код, который будет это осуществлять. Как этот код попадет в твой комп?

EOH>А еще есть замечательые алгоритмические уязвимости, когда не надо ничего инжектить и эксплоить — достаточно выдать неожиданную для программы последовательность валидных действий и она сама все сделает.


Есть. А еще есть архитектурные уязвимости, уязвимости администрирования и эксплуатации и т.п. К чему ты это?

EOH>Можете посмотреть на youtube как 'раскрывается' локнутый iPhone. Было бы смешно если бы не было так грустно.


iphone — вообще образец того, насколько глубоко можно забить на безопасность в погоне за быстрым выпуском понтового продукта

EOH>Тут у нас не только ноги прострелены. Тут у нас в лучших традициях Hellsing все долго и вдумчиво расстреливалось из пулемета. И это ни коим образом не фатально — это абсолютно нормально. Средства атаки развивались, развиваются и будут развиваться быстрее, чем защита. Просто потому что атакующий вдумчиво и обстоятельно выбирает уязвимое место, зная о системе все или почти все. А защищающийся нифига не знает с какой стороны его атаковать будут.


И поэтому на защиту приложения тратить время не нужно, все равно ведь взломают?

EOH>Интересующиеся могут поинтересоваться что и как эксплойтят 'рейдеры'. Очень занимательно. И намного страшнее компьютерных вирусов и уязвимостей.


А где "интересующиеся могут поинтересоваться"?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 09:50
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>

Не все так просто. Теоретически не проблема создать операционку которая не позволит запускать какой либо код не прошедший "доверительных" процедур. Например запустить миранду без проверки подписи у бинарной сборки и т.п. Или как в сингулярити, никакого доступа к железу в принципе.


EOH>И это создали, iPhone называется.


Издеваешься?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 09.11.08 10:03
Оценка:

Издеваешься?


Нет, привожу пример из реальной жизни. Средства атаки развиваются быстрее, чем средства защиты
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 09.11.08 10:10
Оценка:

Только если у "инжинируемого" пользователя есть права на штатную модификацию системы Например у нас в конторе — таких прав у ~80% пользователей (~18000 человек) нет.


Как показывают реалии, 20% хватает за глаза. У остальных работа система нарушается в тех рамках, в которых у них есть права. Если прав нету вообще... Таки-да, выключенный компьютер без Intel AMT сложно поэксплоитить .

Это не уязвимости, это последствия эксплуатации уявзимостей. Чтобы твой комп начал рассылать спам и досить всех почем зря, в нем должен обосноваться код, который будет это осуществлять. Как этот код попадет в твой комп?


А вот через e-mail и попадет. Если у пользователя есть права отправлять e-mail и делать ping — троян напишут.

Есть. А еще есть архитектурные уязвимости, уязвимости администрирования и эксплуатации и т.п. К чему ты это?


К тому, что прострелены не только ноги, и безопасность .NET с точки зрения инжектов — это не панацея и не матрица и решение одной и большой кучи проблем.

И поэтому на защиту приложения тратить время не нужно, все равно ведь взломают?


Нужно конечно. Но наверное не постулатами типа 'если сделать виртуальную архитектуру и отрезать у пользователя все права — то будет рай земной'?

А где "интересующиеся могут поинтересоваться"?


google, вам повезет
Re: Сказка о циничном ученом, простреленных ногах разработчи
От: GlebZ Россия  
Дата: 09.11.08 10:41
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

Жуть. Чушь.
Кто нибудь может сказать, что интернет построен по архитектуре Фон Неймана? Да и ошибка переполнения — единственная ошибка которая может быть использована для злодеяний?
Управляемые среды — это не панацея. Панацея — это если топором отрубить сетку, выломать дисковод, и отломать клавиатуру. НЕЛЬЗЯ автоматизированно узнать какие действия злодейские а какие нет. Пока одни придумывают, что есть злодеяние а что хорошими действиями, вторые придумывают как сделать злодеяние похожее на хорошие действия. И этот процесс вечен.

Предлагаю Фон Нейману, спокойно лежать в гробу, поскольку проблемы не решаемы в принципе. И не зависят от его архитектуры.
Re[9]: Сказка о циничном ученом, простреленных ногах разрабо
От: gear nuke  
Дата: 09.11.08 11:14
Оценка:
Здравствуйте, kochetkov.vladimir,

GN>>Я намеренно использовал "верифицирует" При открытии веток проверяются права. Это, конечно, не проверка на переполнения буфера, но довольно похоже на проверку подписей.


KV>Выделенное — называется "авторизует". Никаких проверок на содержимое самих веток реестра не осуществляется, т.о. верификацией тут и не пахнет


Конечно нет проверок соддержимого, я к этому и клоню Так же как нет проверок содержимого у подписанных файлов.

KV>>>В указанной статье нет ни слова про переполнения буфера. И?


GN>>И это не мешает распространяться .NET вирусу.


KV>А native-вирусам?


По-моему, оснавная масса установок малвари идет не через дырявые браузеры, а социальными методами: спам-рассылка, сменные носители, кряки, псевдокодеки, пиринговые сети. Пользователь сам их и запускает.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 18:04
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, kochetkov.vladimir, Вы писали:


GZ>Жуть. Чушь.


Ну, на оглушительный успех среди пишущих под нативные платформы я и не расчитывал

GZ>Кто нибудь может сказать, что интернет построен по архитектуре Фон Неймана?


Вопрос некорректен. Ну ок, можно пофантазировать и на эту тему. Что есть "интернет" в данном случае?

GZ>Да и ошибка переполнения — единственная ошибка которая может быть использована для злодеяний?


Нет не единственная, как я уже писал выше, не единожды. И? То, что у тебя есть неслабый шанс умереть не в ДТП — повод не соблюдать ПДД?

GZ>Управляемые среды — это не панацея.


Да, это не панацея. Это маленькая такая, локальная, панацейка от конкретных типов ошибок.

GZ>Панацея — это если топором отрубить сетку, выломать дисковод, и отломать клавиатуру.


Вот. Это не панацея, это всего лишь один из возможных способов бороться с переполнениями буферов. Эффективный но бесполезный. А есть еще масса других способов, лишенных недостатков привиденного тобой примера. И одним из этих способов (достаточно эффективным и вполне себе полезным) является использование виртуальных платформ.

А глобальную и повсеместную панацею вам никто и не обещал

GZ>НЕЛЬЗЯ автоматизированно узнать какие действия злодейские а какие нет. Пока одни придумывают, что есть злодеяние а что хорошими действиями, вторые придумывают как сделать злодеяние похожее на хорошие действия. И этот процесс вечен.


Есть мнение, что переполнение буфера, во всех его проявлениях, не может быть "не злодейским" действием

GZ>Предлагаю Фон Нейману, спокойно лежать в гробу,


Это не ко мне, это к некромантам пожалуйста.

GZ>поскольку проблемы не решаемы в принципе. И не зависят от его архитектуры.


Вообще-то, от этой позиции попахивает каким-то лузерством

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Сказка о циничном ученом, простреленных ногах разраб
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 18:04
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, kochetkov.vladimir,


GN>>>Я намеренно использовал "верифицирует" При открытии веток проверяются права. Это, конечно, не проверка на переполнения буфера, но довольно похоже на проверку подписей.


KV>>Выделенное — называется "авторизует". Никаких проверок на содержимое самих веток реестра не осуществляется, т.о. верификацией тут и не пахнет


GN>Конечно нет проверок соддержимого, я к этому и клоню Так же как нет проверок содержимого у подписанных файлов.


Там делается обоснованное допущение, что если проверка подписи прошла, то целостность файла вне сомнений, вообще-то. Или мы о разных подписях?

KV>>>>В указанной статье нет ни слова про переполнения буфера. И?


GN>>>И это не мешает распространяться .NET вирусу.


KV>>А native-вирусам?


GN>По-моему, оснавная масса установок малвари идет не через дырявые браузеры, а социальными методами: спам-рассылка, сменные носители, кряки, псевдокодеки, пиринговые сети. Пользователь сам их и запускает.


Это так, но когда (например, после спам-рассылки) пользователь кликает по присланной ссылке, чтобы у него еще и запустился код, в большинстве случаев для этого используются переполнения в броузере либо его модулях.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[19]: security и safety - разные вещи!
От: WolfHound  
Дата: 09.11.08 18:35
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Зачем же, если есть права админа В том конкретном случае был запуск с сетевой шары, перезагрузка не нужна Может быть и другой сценарий — админ отвернулся, вставили дискетку, запустили (подойдёт и flash диск, или CD с автораном — реальные пути распространения современной малвары, кстати).

Вот только совсем не ясно к чему все эти разглагольствования.
Ибо изначально говорилось о прикрытии конкретного класса дырок.
Или ты думаешь что если нельзя прикрыть все дырки то их ваще прикрывать не нужно?
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: WolfHound  
Дата: 09.11.08 18:50
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>А вот через e-mail и попадет. Если у пользователя есть права отправлять e-mail и делать ping — троян напишут.

Ты не забывай что права можно раздавать не только пользователю но и конкретному приложению.
Теперь представь что в системе нельзя просто так запустить приложение, а нужно его сначала поставить.
А при установке тебе говорят что приложение затребовало права на рассылку писем. И соответственно может воспользоваться этим для рассылки спама. Причем написано это большими красными буквами.
Конечно найдутся дебилы которые согласятся дать права не пойми чему но по любому это сократит ботнеты на порядки.

А затребовать права так чтобы можно было хачить чужой код ваще не реально.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 09.11.08 20:38
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>

Только если у "инжинируемого" пользователя есть права на штатную модификацию системы Например у нас в конторе — таких прав у ~80% пользователей (~18000 человек) нет.


EOH>Как показывают реалии, 20% хватает за глаза.


Это зависит от цели атаки, и того, что из себя представляют эти 20%

EOH>

Это не уязвимости, это последствия эксплуатации уявзимостей. Чтобы твой комп начал рассылать спам и досить всех почем зря, в нем должен обосноваться код, который будет это осуществлять. Как этот код попадет в твой комп?


EOH>А вот через e-mail и попадет. Если у пользователя есть права отправлять e-mail и делать ping — троян напишут.


Ты правда считаешь, что все эти стотысячные ботнеты существуют благодаря пользователям, которые сами запускают на исполнение экзешник, пришедший им по почте, черт знает от кого? Уверяю, как правило, пользователь даже не догадывается, что он что-то там у себя запускает.

EOH>

Есть. А еще есть архитектурные уязвимости, уязвимости администрирования и эксплуатации и т.п. К чему ты это?


EOH>К тому, что прострелены не только ноги, и безопасность


А каком органе у программистов она расположена? Ну за исключением тех евнухов, которые ее напрочь лишены?

EOH>.NET с точки зрения инжектов — это не панацея и не матрица и решение одной и большой кучи проблем.


А что есть .NET с точки зрения инжектов? (кстати, каких?)

EOH>

И поэтому на защиту приложения тратить время не нужно, все равно ведь взломают?


EOH>Нужно конечно. Но наверное не постулатами типа 'если сделать виртуальную архитектуру и отрезать у пользователя все права — то будет рай земной'?


Про отрезанные права — это не ко мне, в исходном сообщении я про права вообще не упоминал. Пример же нашей компании с тем, что большинство пользователей у нас не являются локальными админами на своих машинах, я привел совершенно безотносительно обсуждаемой темы, а в ответ на рассуждения об атаках социальной инженерии.

EOH>

А где "интересующиеся могут поинтересоваться"?


EOH>google, вам повезет


Я почему-то так и думал.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 09.11.08 21:10
Оценка:

> google, вам повезет
Я почему-то так и думал.


google.com, "рейдеры", кнопка "мне повезет", а не то о чем вы подумали

К сожалению, не являясь хорошим специалистом в вопросах безопасности кода, не готов аргументно поддержать свою позицию что эксплоиты данных — это не самое страшное в компьютерной безопасности и философия .NET не является матрицей и панацеей в одном флаконе. Статистики у меня нету . Так что временно исключаю себя из рядов Морфеусов . Благо отказоустойчивый код я писать немного умею ^_^.
Re[3]: Сказка о циничном ученом, простреленных ногах разрабо
От: GlebZ Россия  
Дата: 09.11.08 21:29
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ну, на оглушительный успех среди пишущих под нативные платформы я и не расчитывал

Вообще-то последние 7 лет — мой основной доход отнюдь не нативные платформы.

GZ>>Кто нибудь может сказать, что интернет построен по архитектуре Фон Неймана?

KV>Вопрос некорректен. Ну ок, можно пофантазировать и на эту тему. Что есть "интернет" в данном случае?
Ну давай посмотрим на историю вопроса о переполнении буфера. Впервые она появилась в Unix среде. Ибо взламывать свой компьютер и производить зловредные действия для себя — бессмысленно. Точно также как и скрывать от себя свои данные. В MSDOS о переполнении буфера и не знали. Переполнение буфера — это ошибка используемая в сетевой среде для получения доступа. Является ли сеть — Фон Неймановской архитектурой? И вообще причем тут Фон Нейман?


GZ>>Да и ошибка переполнения — единственная ошибка которая может быть использована для злодеяний?

KV>Нет не единственная, как я уже писал выше, не единожды. И? То, что у тебя есть неслабый шанс умереть не в ДТП — повод не соблюдать ПДД?
GZ>>Управляемые среды — это не панацея.
KV>Да, это не панацея. Это маленькая такая, локальная, панацейка от конкретных типов ошибок.
Вот это правильно. И ошибки не в том, что кто-то так сильно боится переполнений буфера. Среда выявляет либо предотвращает некоторые ошибки программиста тем самым помогая программисту делать быстрее и дешевле свой код.
А настолько уж криминальна возможность переполнения буфера? Ее в принципе можно решить аппаратно. Даже на уровне виртуальных машин X86 начала 90-ых. Почему не решили? Вопрос в том, что система должна работать эффективно. Она должна создавать полезный конкретному пользователю продукт. Продукт стоит денег, в ценообразовании которого есть зарплата программистов. И получается, что нужно решать компромисс, между стоимостью и полезностью. А недопустить ситуации с переполнением буфера, можно и на нативе. Вопрос в стоимости. Гораздо дороже обходится отладка и тестирование изысков работы с памятью.

GZ>>Панацея — это если топором отрубить сетку, выломать дисковод, и отломать клавиатуру.

KV>Вот. Это не панацея, это всего лишь один из возможных способов бороться с переполнениями буферов.
Переполнение буфера — это средство. Не более не менее того. В виде цели — оно никому не интересно.
KV>Эффективный но бесполезный. А есть еще масса других способов, лишенных недостатков привиденного тобой примера. И одним из этих способов (достаточно эффективным и вполне себе полезным) является использование виртуальных платформ.
Если есть функция LogonUser — это значит что система может быть взломана. Иногда в это приходится вовлекать юзера. А юзеру патч не поставишь. И никакой платформой его не исправишь.


KV>Есть мнение, что переполнение буфера, во всех его проявлениях, не может быть "не злодейским" действием

Ты не сможешь автоматизированно определить что есть переполнение, а что есть хитрый способ адресации.
Но не в этом вопрос. Ты переоцениваешь стоимость переполнения буфера. Большинство вирусов основано не на переполнении буфера. И основной ущерб приносит отнюдь не оно.
Re[5]: Сказка о циничном ученом, простреленных ногах разрабо
От: GlebZ Россия  
Дата: 10.11.08 09:35
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ>При чем тут сеть вообще?


КБ>1. В MSDOS "не знали" о переполнении буфера, потому что там отсутствовало какое-либо разграничение доступа, а не потому что там сети не было.

То есть, взлом был, а чего взламывали — неизвестно? Разграничение доступа было физическим на уровне компьютера. Взлом осуществлялся в основном через средства ввода/вывода типа дисковод. Может что-то изменилось, но разграничение доступа и средства ввода/вывода присутсвуют и сейчас. Только они сильно расширились.
КБ>2. Для срыва стека не важно откуда поступают вредоносные данные из сети, с клавиатуры или откуда еще.
И что? (это ошибки реализации ОС)
КБ>3. Используется переполнение буфера, в том числе и локально для эскалации уровня доступа.
И что? (это ошибки реализации ОС)
КБ>4. А Фон-Нейман тут при том, что именно его архитектура подразумевает наличие исполняемых данных.
И что? Параметризируемые данные точно также влияют на исполнение программы, и точно также могут использовать ошибки системных программ(впрочем как и официальный интерфейс ). И не обязательно с помощью переполнения стека.

И вообще, самыми эффективным способом взлома был и остается вирус "sex.exe" и его последователи а ля kurnikova. Не знаю кого поминать, но пропатчить пользователя, с его инстинктом размножение — сложновато. Может обсудим предложение всеобщей кастрации?
Базы данных МВД и т.п., которые по рынку ходят, были взломаны? Нет. Просто жадность людей. Что при этом отрезать, уже непонятно. Разве что лоботомия.
Это борьба с ветряными мельницами. Наиболее эффективной защитой была и будет физическое ограничение средств доступа и персонала. И тут опять же компромисс — стоимость защиты/стоимость информации. Низкая стоимость — антивирусы. Высокая стоимость — работа с персоналом+расстрельная команда.
Re[4]: Сказка о циничном ученом, простреленных ногах разрабо
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.11.08 21:45
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Вообще-то последние 7 лет — мой основной доход отнюдь не нативные платформы.


Но все те несколько лет, что ты присутсвовал на rsdn, ты брюзжал в сторону дотнета
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[7]: Сказка о циничном ученом, простреленных ногах разрабо
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.11.08 09:12
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>В данной конкретной теме обсуждались вопросы обеспечения безопаности приложений в процессе их разработки.


Знаешь, это, наверное, самый оригинальный способ описания проблем процесса разработки приложений. Аплодирую стоя.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[8]: security и safety - разные вещи!
От: Erop Россия  
Дата: 09.12.08 23:44
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>В принципе ?
S>Да, в принципе.
Это пока не найдут в системе первую ошибку (или последнюю?)
Пока OS маленькая -- всё окей, а как разрастётся...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: Кровавая "IS"ня? :)
От: Erop Россия  
Дата: 10.12.08 00:46
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>В данной конкретной теме обсуждались вопросы обеспечения безопаности приложений в процессе их разработки. Причем тут антивирусы и работа с персоналом, я могу только догадываться, но идея расстреливать кодеров, халатно относящихся к вопросам искоренения уявзимостей в своем коде... Лично мне понравилась


Ну почему, как сотрудник какой-нибудь "безопасности", так сразу кровожадный маньяк?

(Хотел, кстати, SUBJ написать от русского "ИБ", но как-то совсем нецензурно получается )
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Сказка о циничном ученом, простреленных ногах разрабо
От: COFF  
Дата: 11.12.08 11:58
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>И на этом сказка заканчивается и начинается бухтение Нео и Морфеусов... *приглашающий жест рукой*


E>Полку Нео и Морфеусов прибывает. Google аннонсирует Native Client.


Очень интересно! Кстати, потом под это дело подкладывается что-то типа VMWare и идеальная "песочница" готова :) Как известно, история идет по спирали; вполне возможно, что мы наблюдаем перелом тренда на использование виртуальных машин типа явы или дот-нета. Хотелось бы, чтобы у google получилось :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.