The OpenNET Project / Index page

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

Улучшение защиты памяти в ядре FreeBSD-CURRENT

04.06.2006 06:12

В замечаниях к текущей версии FreeBSD-CURRENT приводится информация об улучшении безопасности работы с памятью на уровне ядра, реализованном Pawel Jakub Dawidek ([email protected]) под названием RedZone, предназначенном для защиты буфера от повреждения при выделении/освобождении памяти во время вызова malloc(9).

RedZone распознает ошибки переполнения буфера "сверху" и "снизу" времени выполнения (через опосредованный вызов readzone_check() до момента фактической манипуляции с ресурсами в free(9) и realloc(9)) и печатает отладочную информацию об адресах выделения и освобождения затронутой памяти вида:
REDZONE: Buffer underflow detected. 2 bytes corrupted before 0xc8688580 (16 bytes allocated).

Поведение системы по умолчанию - печать отладочной информации без вызова паники ядра (redzone_check() смотрит на настраиваемое sysctl(8)-значение vm.redzone.panic). Работает в ядре, собранном в режиме отладки.

  1. Главная ссылка к новости (http://www.freebsd.org/cgi/man...)
Автор новости: cvsup
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/7670-malloc
Ключевые слова: malloc, memory, security, check
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (8) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:37, 04/06/2006 [ответить]  
  • +/
    ничо не понил
     
  • 1.2, creativ (??), 23:07, 04/06/2006 [ответить]  
  • +/
    Кто-нибудь объяснит чем это гуд? ))
     
  • 1.3, cvsup (?), 23:38, 04/06/2006 [ответить]  
  • +/
    Насколько я понимаю, теперь станет проще отлаживать систему (ядро в частности).
    Чем это гуд? Все лучше, когда баги выплывают на этапе тестирования, а не в виде send-pr(1)
    Вот еще related links, где redzone так или иначе упоминается:
    ядерный malloc(9):
    http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/kern_malloc.c?rev=1.152&co
    библиотечный malloc(3):
    http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdlib/malloc.c?rev=1.93&c
    тот самый redzone(9), в частности redzone_check(), который вызывают из юзер- и кернелспейса в free(), realloc() /etc:
    http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/vm/redzone.c?rev=1.1&content-ty
    а это откуда я собственно и узнал - коммиту redzone 4 месяца %) только т-сс:
    http://www.freebsd.org/relnotes/CURRENT/relnotes/i386/new.html
     
  • 1.4, Дима (??), 07:30, 05/06/2006 [ответить]  
  • +/
    на производительность как повлияет?
     
  • 1.5, nobody (??), 08:36, 05/06/2006 [ответить]  
  • +/
    > Работает в ядре, собранном в режиме отладки.
    Думаю будет не шибко быстро.
     
  • 1.6, Аноним (-), 09:07, 05/06/2006 [ответить]  
  • +/
    что б это понять - надо прочитать МакКузика - благо книга по внутреннему строения и архитектуре 5,2(какая разница 6 или 7 - политика будет сохраняться) есть - там malloc используется для выделения больших участков памяти в ядре в отличие от zlloc (не большие участков памяти) что даст? -даст стабильность работы  в ядре ,,, - IMHO
     
  • 1.7, X0R (?), 10:16, 05/06/2006 [ответить]  
  • +/
    man page
    http://www.freebsd.org/cgi/man.cgi?query=redzone&sektion=9&manpath=FreeBSD+7.
     
  • 1.9, cvsup (?), 19:02, 07/06/2006 [ответить]  
  • +/
    src/UPDATING

    20060113:
    libc's malloc implementation has been replaced.  This change has the
    potential to uncover application bugs that previously went unnoticed.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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