The OpenNET Project / Index page

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

Представлен CERT Linux Triage Tools 1.0, инструментарий для классификации ошибок в программах

30.04.2012 13:58

Компьютерная группа реагирования на чрезвычайные ситуации (CERT) представила открытый инструментарий CERT Triage Tools 1.0, нацеленный на упрощение процесса определения степени опасности различных ошибок, выявленных в результате таких техник как fuzzing-тестирование, и формирование приоритетов для исправления данных ошибок в процессе разработки. В частности, обнаружив серию ошибок, приводящих к краху, разработчик может быстро оценить какие из ошибок представляют угрозу с точки зрения безопасности и требуют первоочерёдного исправления.

В состав инструментария входит "exploitable" - написанное на языке Python дополнение к отладчику GDB (GNU Debugger), которое может использоваться для классификации по степени опасности ошибок в 32- и 64-разрядных приложениях на платформе Linux, выступая аналогом таких пакетов как !exploitable для Windows и CrashWrangler для Mac OS X. Кроме дополнения к GDB в состав входит скрипт для автоматизации проведения проверок в пакетном режиме. Например, скрипт позволяет на основании набора crash-дампов получить отчёт, какие из них содержат эксплуатируемые проблемы и в чём суть ошибок (StackBufferOverflow, DestAv, PossibleStackCorruption, BadInstruction, HeapError, FloatingPointException и т.п.);

Для проведения fuzzing-тестирования, в процессе которого осуществляется генерация потока всевозможных случайных комбинаций входных данных и фиксируются крахи, можно использовать ранее выпущенный открытый инструментарий Basic Fuzzing Framework (BFF), который поддерживает работу в Linux и Mac OS X. В выпущенном на днях релизе BFF 2.5 была обеспечена поддержка использования классификатора CrashWrangler для Mac OS X, но так как для Linux аналогичного ПО не существовало, было решено разработать собственное решение Triage Tools. Тем не менее, Triage Tools может работать не только в сочетании с BFF, но и как отдельный инструментарий.

При беглом сравнении Triage Tools с инструментами "!exploitable" и "CrashWrangler", генерируемые при их помощи отчёты очень похожи. Но это только первое впечатление, в Triage Tools реализован принципиально другой метод анализа - если "!exploitable" анализирует весь блок, в котором присутствует инструкция, вызвавшая сбой, то Triage Tools никогда не заглядывает дальше проблемной инструкции. Кроме того, Triage Tools целиком написан на языке Python, в то время как !exploitable" написан на C++, а CrashWrangler на Ruby и Си. Использование Python существенно упрощает модификацию кода под свои нужды и интеграцию с сторонние продукты.

  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Разработчики Chromium представили кластер для автоматизации выявления уязвимостей
  3. OpenNews: Инструмент аудита cross_fuzz позволил найти более ста ошибок во всех веб-браузерах
  4. OpenNews: В CERT разработали открытый инструментарий для выявления уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33735-test
Ключевые слова: test, debug, cert, fuzzing, gdb, security
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 14:58, 30/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Теперь написать программу написания программы и скормит результат этой программе.
    Получим самопишушийся самоисправляемый код.
    :)
     
     
  • 2.3, umbr (ok), 16:17, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Эволюцию и естественный отбор придумали задолго до нас ;)
     
  • 2.4, anonimous (?), 16:29, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Программа написания программы, вы имели ввиду что-то подобное?
    -------------------------------------
    #/bin/sh
    if [ -z $1 ]; then
        echo "Usage: $0 new_program_name"
        exit 1
    fi
    cat $0 > $1
    chmod +x $1
    -------------------------------------
     
     
  • 3.5, Аноним (-), 17:15, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее всего речь шла о написании другой программы, а не простом копировании.
     
     
  • 4.10, anonimous (?), 19:25, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Приведенная для примера программа создает программу. Да, копированием (хотя невооруженным глазом видно, что эхнуть в другой файл можно любой текст, а затем сделать его исполняемым, тем самым получим _другую_ программу при помощи первой).
    Скормить результат (первую программу) представленному в новости инструментарию тоже не проблема. Проблема автоматизировать исправление найденных с помощью инструментария ошибок. В лучшем случае получим самопишущийся и самотестирующийся по определенным критериям код. А вот исправление ошибок, пока, прерогатива человека.

    П.С. Да, я сегодня в роли капитана.

     

  • 1.2, Аноним (-), 15:11, 30/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    И подождать 1*10^9999 сто тышь миллиардов миллионов лет.
     
     
  • 2.9, свищ (?), 19:19, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    научись чему-нибудь, глядишь мозг заработает, грибная колония
     
  • 2.18, Aesthetus Animus (ok), 22:28, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Так вот какой кретин испортил верстку страницы!
     
     
  • 3.19, Андрей (??), 03:19, 01/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    На моих 1024x768 тоже очень неудобно. Нажал на "к модератору".
    Похоже, у движка сайта такая себе классическая ошибка "доверие к вводу". Предполагают, что пользователь не будет вводить очень длинных слов, и всегда можно будет красиво осуществить перевод строки. Как раз по теме новости: ошибка обнаружена путём случайного эксперимента.
     

  • 1.6, arisu (ok), 17:16, 30/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ребята переизобретают valgrind?
     
     
  • 2.11, anonimous (?), 19:34, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Новость читать кто будет? Аль valgrind нынче fuzzing-тестирование умеет?
     
     
  • 3.12, arisu (ok), 19:39, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Новость читать кто будет? Аль valgrind нынче fuzzing-тестирование умеет?

    я почитал. написано, что цепляется к gdb, да крэшдампы анализирует. valgrind умеет то же самое, но ещё и в процессе работы, без дампов. как написано в новости — так и читаю.

     
     
  • 4.13, anonimous (?), 19:54, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ты конечно молодец, что прочитал целых 2 абзаца новости, но если бы ты прочитал всю новость, или знал что такое fuzzing-тестирование, то сравнений с valgrind не было-бы.
     
     
  • 5.14, arisu (ok), 19:57, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    бла-бла-бла, куча умных слов. а в итоге — гоняем софт под недовалгриндом и смотрим на красиво выписаные логи. ничего другого *из текста новости* не получается без libastral.
     
     
  • 6.15, anonimous (?), 20:06, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я показал в какую сторону копать, если интересно. Если-же нужно просто адаптировать "кучу умных слов" к своей модели мира, при этом не расширяя ее - то флаг вам в руки.
     
     
  • 7.16, arisu (ok), 20:12, 30/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а я сказал, что новость написана невнятно. вместо такой сбивающей с толку новости лучше давать просто ссылку на сайт программы да пару ссылок на ту же википедию. потому что читаю я новость — и вижу такой себе «недовалгринд», единственное достоинство которого (оно же и недостаток) — отсутствие эмулятора. и умные слова новость не спасают совершенно.

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

     
  • 5.20, dr (??), 01:39, 03/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А что valgrind? Вполне себе хорошо сочетается с фаззинг-тестами. Без него можно ловить улёты и зависоны, а с ним ого-го сколько ещё ошибок можно найти. Хотя и ложняки бывают, особенно для тестов с использованием helgrind.
     
     
  • 6.21, arisu (ok), 01:51, 03/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ну, тут можно сказать, что valgrind всё-таки ТОРМОЗИТ. оно понятно, что именно из-за эмулятора он так и крут, но тормозит.

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

     

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



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

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