OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 25 Июнь, 2018 14:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 22 Апрель, 2014 09:58 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8954
Откуда: Россия, Орёл
Оказывается, нашумевшая в этом месяце проблема OpenSSL опять вызвана отсутствием контроля выхода за границы массивов.

http://habrahabr.ru/post/218609/

Цитата:
Уязвимость связана с отсутствием необходимой проверки границ в одной из процедур расширения Heartbeat (RFC6520) для протокола TLS/DTLS. Из-за этой маленькой ошибки одного программиста кто угодно получает прямой доступ к оперативной памяти компьютеров, чьи коммуникации «защищены» уязвимой версией OpenSSL. В том числе, злоумышленник получает доступ к секретным ключам, именам и паролям пользователей и всему контенту, который должен передаваться в зашифрованном виде. При этом не остается никаких следов проникновения в систему.

Некто, знавший об уязвимости, мог прослушивать «зашифрованный» трафик почти во всем интернете с марта 2012 года, когда вышла версия OpenSSL 1.0.1. В то время была продемонстрирована успешная атака на TLS (BEAST), и многие перешли на защищенную версию TLS 1.2, появление которой совпало с выходом OpenSSL 1.0.1.


"Пальцегнутые цышники" ставят под угрозу безопасность всего народонаселения.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Апрель, 2014 10:29 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Позорище


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Апрель, 2014 10:31 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1535
Откуда: Беларусь, Минск
Илья Ермаков писал(а):
Оказывается, нашумевшая в этом месяце проблема OpenSSL опять вызвана отсутствием контроля выхода за границы массивов.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Апрель, 2014 20:54 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7830
Откуда: Троицк, Москва
Valery Solovey писал(а):
Илья Ермаков писал(а):
... проблема OpenSSL опять вызвана отсутствием контроля выхода за границы массивов.

Насколько я знаю - нет. Границы массива там проверяются.

Цитата:
Уязвимость связана с отсутствием необходимой проверки границ

Позорище однозначно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Апрель, 2014 21:32 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2505
Откуда: Россия, Ярославль
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Апрель, 2014 21:43 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Что тут скажешь, вот эти вот 500 символов, они вроде как из некоего буфера. Получается, пароль и буфер смешаны - а в таком случае понимание кода усложняется, и выходит, что хакеры (не в смысле взломщика, а в смысле гуру программирования) объегорили сами себя.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Апрель, 2014 11:07 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1535
Откуда: Беларусь, Минск
Так чтобы проверить пароль, его всё равно нужно в какой-то буфер записать. Иначе проверять нечего. И в эти 500 символов попал не обязательно пароль того человека, который пытается зайти. Собственно, на то и расчёт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Апрель, 2014 11:11 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7830
Откуда: Троицк, Москва
Обсуждать технические детали, конечно, тут можно, но оправдать -- нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Май, 2014 12:23 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1014
Откуда: Россия, Чебоксары
Сюда, что ли... Замечательная подборка программных глюков в военной сфере: http://neochapay.livejournal.com/325830.html. Например:

Цитата:
Самолёт-разведчик американских ВВС вызвал серьёзный сбой в программном обеспечении центра управления воздушным движением Калифорнии, из-за чего пришлось задержать вылеты сотен гражданских рейсов в нескольких аэропортах юго-западного региона США и внепланово посадить самолёты, которые направлялись в этот регион, сообщает агентство NBC News. Есть версия, что это была какая-то новая модификация самолёта и он передал на базу высоту более 65 535 футов...

1. Истребители F22 не смогли пересечь 180 меридиан (линию перемены дат)...

2. Фирма Motorola испытывала новый процессор для автопилота на истребителе в Израиле. Все было отлажено. Пилоты на испытаниях отправились «огибать рельеф» с севера до юга Израиля. Истребитель прекрасно пролетел на автопилоте над равнинной частью, над горной частью, над долиной реки Иордан, и приближался к Мёртвому морю. Не долетев до него, неожиданно происходит общий сброс процессора, автопилот выключается на полном ходу, пилоты переходят на ручное управление, и сажают истребитель...
После продолжительных попыток было найдено, что программы автопилота при вычислении параметров управления по глубоко научным секретным формулам производили деление на значение текущей высоты истребителя над уровнем океана. При подлете к Мёртвому морю высота становилась нулевой, и процессор при делении на ноль давал общий сброс. До этого случая никому не приходило в голову, что самолеты могут летать ниже уровня океана…
...
Испытания американского истребителя F-16 проводились, понятное дело, в северном полушарии. На заключительном этапе самолет решили проверить где-то в Латинской Америке, но уже с другой стороны экватора. При переводе самолета в режим автопилота он автоматически развернулся «вверх ногами».
...
В Афганистане двое наводчиков-наблюдателей (канадцы) подсвечивали цель для наведения на нее бомбы. После сброса бомбы в GPS приемнике закончились батарейки. Расчет их быстро заменил. В результате ракета прилетела не туда. Причина проста. После подачи питания в прибор, переменные, отвечающие за координаты цели, автоматически инициализировались координатами текущего местоположения. Наводчики погибли от близкого разрыва.
...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Май, 2014 22:56 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Alexey_Donskoy писал(а):
Сюда, что ли... Замечательная подборка программных глюков в военной сфере: http://neochapay.livejournal.com/325830.html. Например:

Цитата:
Самолёт-разведчик американских ВВС вызвал серьёзный сбой в программном обеспечении центра управления воздушным движением Калифорнии, из-за чего пришлось задержать вылеты сотен гражданских рейсов в нескольких аэропортах юго-западного региона США и внепланово посадить самолёты, которые направлялись в этот регион, сообщает агентство NBC News. Есть версия, что это была какая-то новая модификация самолёта и он передал на базу высоту более 65 535 футов...

1. Истребители F22 не смогли пересечь 180 меридиан (линию перемены дат)...

2. Фирма Motorola испытывала новый процессор для автопилота на истребителе в Израиле. Все было отлажено. Пилоты на испытаниях отправились «огибать рельеф» с севера до юга Израиля. Истребитель прекрасно пролетел на автопилоте над равнинной частью, над горной частью, над долиной реки Иордан, и приближался к Мёртвому морю. Не долетев до него, неожиданно происходит общий сброс процессора, автопилот выключается на полном ходу, пилоты переходят на ручное управление, и сажают истребитель...
После продолжительных попыток было найдено, что программы автопилота при вычислении параметров управления по глубоко научным секретным формулам производили деление на значение текущей высоты истребителя над уровнем океана. При подлете к Мёртвому морю высота становилась нулевой, и процессор при делении на ноль давал общий сброс. До этого случая никому не приходило в голову, что самолеты могут летать ниже уровня океана…
...
Испытания американского истребителя F-16 проводились, понятное дело, в северном полушарии. На заключительном этапе самолет решили проверить где-то в Латинской Америке, но уже с другой стороны экватора. При переводе самолета в режим автопилота он автоматически развернулся «вверх ногами».
...
В Афганистане двое наводчиков-наблюдателей (канадцы) подсвечивали цель для наведения на нее бомбы. После сброса бомбы в GPS приемнике закончились батарейки. Расчет их быстро заменил. В результате ракета прилетела не туда. Причина проста. После подачи питания в прибор, переменные, отвечающие за координаты цели, автоматически инициализировались координатами текущего местоположения. Наводчики погибли от близкого разрыва.
...

Читал-читал вашу книжечку по БК-0010, практически настольная книга. :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Май, 2014 08:02 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1014
Откуда: Россия, Чебоксары
Рыжий писал(а):
Читал-читал вашу книжечку по БК-0010, практически настольная книга. :D
Давненько это было... а вот какая связь с темой и с приведённой цитатой? ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Май, 2014 15:22 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Alexey_Donskoy писал(а):
Рыжий писал(а):
Читал-читал вашу книжечку по БК-0010, практически настольная книга. :D
Давненько это было... а вот какая связь с темой и с приведённой цитатой? ;)

На бейсике потому что нужно программировать. DIM, мол, A[10] типа, ну и т.д. :mrgreen: При программировании на бейсике все классические структуры данных, наподобие очередей и деревьев заранее помещаются в отдельную кучу конкретного и фиксированного размера. Это уже потом распоясались и привыкли к тому, что память автоматически выделяется, под неограниченный рост. А на бейсике - шишь. Нужно следить заранее. Берется массив или группа массивов, только с ними и работают. Ни шагу вправо, ни шагу влево. Только массив и его индексация. Изоляция всех структур данных на уровне семантики и синтаксиса. Никаких тебе указателей и прочей лабуды. Тут Вирт не доработал. Увлекся концепцией указателя и пошел по приматизму. Из Оберона это все тоже с успехом можно выкинуть. Пусть учатся программировать, а не указателями указывать. Единственная полезная структура данных - это массив, а единственная полезная конструкция - процедура. Все остальное - чтобы на обложке расписаться. У Вирта много таких заморочек: процедура, которая не процедура, а функция и т.д. где-то он рамсы попутал. Надо было изначально засандалить расширение структур по типу ПЛ/1, функции из языка выкинуть вообще, а указатели похерить на вечные времена и никогда о них не вспоминать. Для массивов - только фиксированный размер, в крайнем случае сознательная лазейка навроде redim. И все. Goto тоже можно было бы выпилить нафиг, но не факт. Реликвия как-никак. PEEK и POKE тожа. Лучше бы туда вместо этих указателей, инструменты векторизации запихнули. Касаемо параллелизма в языке - это вообще умора. Тут Вирт правильно заметил. Не в параллелизме дело и не в семафорах, а в трудности применения этой самой концепции. То же относится и к понятийной однородности. Вместо указателя на метод в составе структуры - тип данных "точка входа" - целое без знака=ADDR(proc) или что угодно, на ваш страх и риск. :roll:
Т.е. предлагаю краеугольную концепцию: pointer - считать вредным. А о существовании всяких значков вроде: &,^, *, -> и т.д. - забыть на вечные времена.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 16 Май, 2014 08:03 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
А как насчёт концепции "вычислительного модуля":
Вложение:
SECURE_INFORMATION_SYSTEM_V5_2r.pdf [1.09 МБ]
Скачиваний: 128
- можно/нужно запилить такое на не-эльбрусовском железе?..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 21 Май, 2014 14:22 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1014
Откуда: Россия, Чебоксары
Рыжий писал(а):
все классические структуры данных, наподобие очередей и деревьев заранее помещаются в отдельную кучу конкретного и фиксированного размера.
Ничего не выйдет.
В программировании имеются жёсткие ограничения внешней среды: ограниченность ресурсов вычислительной системы и принципиально динамический размер обрабатываемых данных.
Попытка действовать в лоб с массивами фиксированных размеров принципиально антагонистична поставленным условиям. Проще говоря, фиксированный размер не то что приемлемым, а вообще решением не является. По спецификации не проходит.

Цитата:
Единственная полезная структура данных - это массив, а единственная полезная конструкция - процедура.
С этим можно согласиться. При условии, что массив может быть динамическим. :wink:

Цитата:
процедура, которая не процедура, а функция
Да, это совершенно лишний реверанс в пользу математики, который не даёт ничего полезного, кроме (иногда) удобства синтаксиса вроде cos(sin(sqrt(my_cool_func(x)))).

Цитата:
Надо было изначально засандалить расширение структур по типу ПЛ/1
Я уже плохо помню, что там в ПЛ/1 было, но вроде оно было статическим. В то время как любая реальная задача (какой-нибудь протокол связи) требует трактовать последовательность байтов по-разному в зависимости от значения первого, пятого и тридцать третьего байта (и так по дереву синтаксических возможностей, и опять же с динамическим размером последовательностей байтов). Короче, для динамического разбора последовательности байтов никакие самые навороченные структуры не пригодны. Можно оставаться в рамках массива, но без типизированного указателя для работы с данными в этих цепочках добавится необходимость вызова неких специальных процедур. Что даже на уровне машинного кода будет неэффективно, не говоря уж об издержках синтаксиса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 22 Май, 2014 04:19 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Alexey_Donskoy писал(а):
Рыжий писал(а):
...Единственная полезная структура данных - это массив, а единственная полезная конструкция - процедура.
С этим можно согласиться. При условии, что массив может быть динамическим. :wink:
Это последовательность по Вирту?..

Цитата:
... Я уже плохо помню, что там в ПЛ/1 было, но вроде оно было статическим. В то время как любая реальная задача (какой-нибудь протокол связи) требует трактовать последовательность байтов по-разному в зависимости от значения первого, пятого и тридцать третьего байта (и так по дереву синтаксических возможностей, и опять же с динамическим размером последовательностей байтов). ...
В общем, ФС Линукса рулит (дерево с прошивками, коими можно в принципе представить и зависимости)?.. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Май, 2014 16:06 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Alexey_Donskoy писал(а):
...

1,2,3. Как это не выйдет? У меня выйдет, а у Вас не выйдет? Должно выйти. Главное напирать плотнее. :D Есть аргументы. Я о них тут когда-то давно распространялся. И по поводу структур в ПЛ-1 тоже. Там было и наследование и полиморфизм и черт в ступе. Но мне кажется что обойдутся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 02 Июнь, 2014 12:14 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1014
Откуда: Россия, Чебоксары
Рыжий писал(а):
Должно выйти.
Повторю: в программировании имеются жёсткие ограничения внешней среды: ограниченность ресурсов вычислительной системы и принципиально динамический размер обрабатываемых данных (кстати, и динамический размер ресурсов - потому что программа может запускаться на разных компах).
Попытка действовать в лоб с массивами фиксированных размеров принципиально антагонистична поставленным условиям.
Конечно, выйдет, если устраивать закат солнца вручную. Но средства программирования не для этого придумываются всё-таки. Как минимум, в довесок к удобству, они ещё и надёжность выше обеспечивают.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 02 Июнь, 2014 15:16 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Так куча она и есть куча, зачем отдавать кому-то распределение памяти, если эта простейшая, систематическая и крайне поучительная процедура имеет столько интересных приложений? Чтобы расписаться на обложке и назвать индекс указателем? В Фокале вон была переменная с индексом и никто не парился. А в Мампсе эта, частная вообщем-то, идея была доведена до относительного блеска в связи с реализацией В+дерева. А сколько упущено педагогического аспекта... :roll: Указатель можно свести к индексу, а индекс сводить к указателю, как бы глупо. Все эти вещи следовало бы вынести из языка в библиотеку, и пользоваться, если уж так позарез охота. В Си доподменяли менеджмент памяти массивами и индексами играми с цепочками "указателей" - вот он результат. А некоторые, не будем указывать пальцами на их почтенные бороды, просто несколько ограничили это безумие. Ввели его в рамки собственных, не вполне обязательных к использованию концепций, заодно расписавшись на обложке. Вместо того, чтобы от этого безобразия вообще отказаться. :D Еще одно основание - работа с массивами хорошо формализуется, она сплошь и рядом используется в качестве иллюстраций к разным проблемам: векторизации и другим в т.ч. графическим, гуевым и т.д. Это более математичный подход т.к. для него есть готовый математический аппарат.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 02 Июнь, 2014 16:03 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
На мой взгляд язык должен быть ни чем иным, как высокоуровневым ассемблером, позволяющим при необходимости реализовать любую идею. Его задача - избавить от чисто технических вопросов наподобие настройки адресов и обеспечить минимум высокоуровневых конструкций, которые нужно отбирать самым тщательными образом и варьировать от реализации к реализации, но так чтобы итог гарантировал максимум ортогональности и ясности. Массив это естественная конструкция, а указатель - вряд ли. Переменная типа адрес в памяти. Что это и кому нужна эта помесь железа с математикой? Бульдога с носорогом. Вирт просто напросто перешел от произвольного тыканья пальцем в память к ее метризации с помощью своих структур данных и введению соответствующего набора операций. Абстрагировавшись от низкоуровневых процессов управления памятью. Таких метрик можно, при большом желании, выдумать сколько угодно. Все они так или иначе моделируются массивами и, в каждом отдельном случае, получится отдельное издание талмуда - "Алгоритмы и структуры данных". Было бы вполне разумным излагать теоретические основы на примере наиболее фундаментальной конструкции - массива, что и сделано в ряде трудов прошлых периодов. Очень поучительное чтиво. :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 02 Июнь, 2014 17:06 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Вирт скомпилировал сам себя, изобразил на самом себе System 3 и решил, что дело в шляпе. Это должно было нам как бы намекать на "полноту и линейную независимость" Оберона. Ну и что? Мало ли...бывает.. :) МеnuetOS вообще на ассемблере настрочили. Каноничность из этого не следует. Это все равно, что разложение по многочленам оставить, а по тригонометрическим функциям - выкинуть нафиг, мотивируя этот акт "малопонятностью" последних.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB