The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Критическая уязвимость в GnuTLS. Разработчик OpenLDAP рекоме..., opennews (??), 05-Мрт-14, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +1 +/
Сообщение от Анонист (?), 05-Мрт-14, 11:59 
С детства говорили - goto вреден для здоровья.
Ответить | Правка | Наверх | Cообщить модератору

3. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +3 +/
Сообщение от Аноним (-), 05-Мрт-14, 12:15 
Это не более чем JMP в ассемблере, мальчик
Ответить | Правка | Наверх | Cообщить модератору

4. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +8 +/
Сообщение от анонимус (??), 05-Мрт-14, 12:17 
Спасибо, капитан.
Ответить | Правка | Наверх | Cообщить модератору

5. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +1 +/
Сообщение от Аноним (-), 05-Мрт-14, 12:22 
Может всё будем писать на ассемблере?
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

51. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от anonymous (??), 05-Мрт-14, 14:50 
not sure if it's branch
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

59. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  –5 +/
Сообщение от metallica (ok), 05-Мрт-14, 15:17 
> Это не более чем JMP в ассемблере, мальчик

Вот jmp и есть плохо, наряду с всеми сравнительными jXX.

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

80. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Маленькая Серая Мышка (?), 05-Мрт-14, 17:33 
Чем же принципиально хуже JMP по сравнению с PUSH+JMP?
Ответить | Правка | Наверх | Cообщить модератору

84. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от metallica (ok), 05-Мрт-14, 18:15 
> Чем же принципиально хуже JMP по сравнению с PUSH+JMP?

Ничем, за исключением продолжения декодирования процессором команд,
стоящих за call, и их исполнении после ret, что быстрее чем просто jmp.
Но вообще для критичных участков кода лучше использовать inline, в реализациях
STL они сплошь и рядом.


Ответить | Правка | Наверх | Cообщить модератору

108. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  –1 +/
Сообщение от Маленькая Серая Мышка (?), 05-Мрт-14, 20:45 
Инлайны не надо раставлять лет уже эдак 15 - любой приличный компилятор сам заинлайнит что можно.
А вот читать STL-ные сообщения об ошибках из-за этого совершенно невозможно.
Ответить | Правка | Наверх | Cообщить модератору

90. "Критическая уязвимость в GnuTLS, позволяющая обойти..."  +1 +/
Сообщение от arisu (ok), 05-Мрт-14, 18:50 
>> Это не более чем JMP в ассемблере, мальчик
> Вот jmp и есть плохо, наряду с всеми сравнительными jXX.

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

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

137. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Аноним (-), 07-Мрт-14, 04:03 
> Вот jmp и есть плохо, наряду с всеми сравнительными jXX.

И правда, пользуйтесь SUBLEQ. Одной команды хватит всем!

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

7. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +4 +/
Сообщение от Аноним (-), 05-Мрт-14, 12:29 
goto здесь не при чём. Не было бы goto - был бы вызов неправильной функции.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

12. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  –5 +/
Сообщение от Анонист (?), 05-Мрт-14, 12:37 
Вызов неправильной функции легче отследить, не? Да и когда пишешь функцию минимум задумываешься о ее сигнатуре, о том, как ее назвать, и что конкретно она должна делать, (и это еще даже ДО любых рефакторингов) если это ООП и пишешь метод - думаешь еще о связности/сцеплении.

А goto - взял и написал goto. Очень много ума надо? Код на "от**бись*. Вполне подходит для мелкомягких, впрочем.

Ответить | Правка | Наверх | Cообщить модератору

14. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Аноним (-), 05-Мрт-14, 12:46 
> Вызов неправильной функции легче отследить, не?

Не.

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

Когда пишешь goto - думаешь как минимум как назвать метку и что должно происходить при переходе не неё. Сигнатуры тут никак не помогают ибо могут быть одинаковые.

> А goto - взял и написал goto. Очень много ума надо? Код на "от**бись*. Вполне подходит для мелкомягких, впрочем.

Для гнушников.

Ответить | Правка | Наверх | Cообщить модератору

21. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  –5 +/
Сообщение от Анонист (?), 05-Мрт-14, 13:01 
Да вы прямо-таки мастер написания меток! Это не вы сломали случаем? :)

Вы не убедите меня, что код с goto более или хотя бы равен по ответственности за написание функции или метода.

P.S. Поди, вы весь код в goto пишете, без функций, классов и методов? Идеальный код :)

Ответить | Правка | Наверх | Cообщить модератору

45. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от rshadow (ok), 05-Мрт-14, 14:10 
именование это конечно повод для срача...

мне вот на ум приходит что для функции легче тест написать отдельный, а не простыню для теста одной функции делать

Ответить | Правка | Наверх | Cообщить модератору

48. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Аноним (-), 05-Мрт-14, 14:29 
Тест можно написать для любого блока. Местные аналитики наслушавшиеся баек про goto is harmful даже не в курсе что goto от call отличается только помещением в стек адреса возврата.
Ответить | Правка | Наверх | Cообщить модератору

57. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Маленькая Серая Мышка (?), 05-Мрт-14, 15:14 
А exceptions делаются на лонгджампе за минуту, да-да.
Как это отменяет тот факт что тестировать функцию удобней чем часть блока - неясно.
Ответить | Правка | Наверх | Cообщить модератору

76. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +1 +/
Сообщение от www2 (??), 05-Мрт-14, 17:24 
Внезапно, блоки находятся внутри функции. А для каждой функции можно написать не один тест.

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

Ответить | Правка | Наверх | Cообщить модератору

78. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Маленькая Серая Мышка (?), 05-Мрт-14, 17:31 
>Внезапно, блоки находятся внутри функции. А для каждой функции можно написать не один тест.

А небо - синее. Речь шла про "удобней" а не "в принципе это возможно".

>хороший тест выявляет неожиданное поведение функции

Вспоминаем (в вашем случае - учим) комбинаторику. В функции N блоков, у каждого M граничных условий. Дальше рассказывать? Или вы на всем множестве аргументов предпочитаете тестировать за бесконечное время?

Ответить | Правка | Наверх | Cообщить модератору

151. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от www2 (??), 07-Мрт-14, 18:24 
> Вспоминаем (в вашем случае - учим) комбинаторику. В функции N блоков, у
> каждого M граничных условий. Дальше рассказывать? Или вы на всем множестве
> аргументов предпочитаете тестировать за бесконечное время?

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

А ещё - прочитай то, что я написал выше. Тестировать нужно не N блоков, а проверять, что функция работает ожидаемым образом. Пусть там ещё 10 блоков с разными условиями добавятся, пусть несколько условий объединят в одно с одним блоком - проверять нужно правильность функции, а не её компонентов.

Ответить | Правка | Наверх | Cообщить модератору

82. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +3 +/
Сообщение от Аноним (-), 05-Мрт-14, 18:00 
>Когда пишешь goto - думаешь как минимум как назвать метку

Долго и упорно думаешь... и называешь метки: m1, m2, m3,...
(Из опыта программирования на ассеблере для x86)

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

89. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +2 +/
Сообщение от 1 (??), 05-Мрт-14, 18:33 
А через три недели после сдачи кода выясняется, что нужна доработка. Открываешь код, видишь эти метки и думаешь "какого ***".
Ответить | Правка | Наверх | Cообщить модератору

91. "Критическая уязвимость в GnuTLS, позволяющая обойти..."  +3 +/
Сообщение от arisu (ok), 05-Мрт-14, 18:52 
> Долго и упорно думаешь... и называешь метки: m1, m2, m3,...
> (Из опыта программирования на ассеблере для x86)

нет, это из опыта быдлокодинга.

Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

138. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Аноним (-), 07-Мрт-14, 04:05 
> (Из опыта программирования на ассеблере для x86)

О как, оказывается, быдлoкодить можно даже на асме.

Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

25. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  –1 +/
Сообщение от ананим (?), 05-Мрт-14, 13:16 
> С детства говорили - goto вреден для здоровья

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

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

66. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от Маленькая Серая Мышка (?), 05-Мрт-14, 15:45 
Но ведь функции - еще хуже. Для них нужен стек, привет его переполнениям и прочим срывам.
А если функций не использовать - стек не нужен, безопасность повысилась.


Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

128. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от тазовод (?), 06-Мрт-14, 14:54 
С таким подходом только из стартапа в стартап прыгать. Первые коммиты в репозитарий. Те, кто идут за вами, как бы помягче сказать, не считают вас гениальным. Те, кому читать, дорабатывать, править ваш код.
И да, лечу по фотографии, удалённо, дорого.
Ответить | Правка | Наверх | Cообщить модератору

129. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от тазовод (?), 06-Мрт-14, 14:59 
> А если функций не использовать - стек не нужен, безопасность повысилась.

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

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

135. "Критическая уязвимость в GnuTLS, позволяющая обойти процесс ..."  +/
Сообщение от rob pike (?), 06-Мрт-14, 20:56 
Никакого main() - у нас ведь нет стека, забыли?
После процессинга аргументов командной строки делаем так:
; Now, calculate the page-size-aligned length from the end of .data to the top
; of the userspace addresses (See: http://en.wikipedia.org/wiki/X86-64)
mov rsi,0x00007fffffffffff
sub rsi,rdi
shr rsi,12
dec rsi
shl rsi,12
; Do the munmap() call. This unmaps the stack, which we no longer need.
syscall(sys_munmap,,)
; Fork away from calling TTY
syscall(sys_fork)
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру