Бизнес безопасности или безопасность бизнеса? О том и о другом в одном непросветительском блоге от еще неиностранного агента... Имеющий мозг да применит его (6+)
Pages - Menu
▼
Страницы
▼
3.8.09
IBM покупает Ounce Labs
28-го июля голубой гигант объявил о приобретении компании Ounce Labs, занимающейся анализом защищенности исходного кода приложений. Продукты приобретенной компании войдут в семейство Rational AppScan. Детали сделки не разглашаются.
Ну игроков в сегменте анализа исходников немало. Только в России они мало известны. Да и свои поделки у нас есть в этой области. Используются при сертификации.
Да и не то, чтобы много. По пальцам одной руки пересчитать можно - или я многих не знаю. Меня удивило, что опенсорс в этом направлении представлен откровенно плохо - исключительно академические проекты, которые практически невозможно с отдачей интегрировать в реальную разработку.
А кому они нужны такие проекты? Их перспектива очень туманна, кроме как в сертификации или SDLC. Круг потребителей очень узок, а эффективность низка. Если я захочу скрыть закладку - я ее скрою и никакой анализатор ее не найдет. Еще в 50-х годах сей факт был доказан математически.
>Меня удивило, что опенсорс в этом направлении представлен откровенно плохо
В opensource проекты, в которых сильна экпертная составляющая вообще слабо представлены. Видимо потому что контрибуторов мало, а желающих тихо использовать - много. Вспомните, почему был закрыт Nessus.
Мы реализовали очень неплохой продукт (именно что продукт а не поделка) для анализа исходных текстов и т.п. "Тритон" называется используем для сертификации по НДВ. Насчет закладок - Алексей прав можно внедрить так что никто не найдет и даже срабатывание не обнаружится, хотя есть мнение, что современные системы содержат в себе столько функционала скрытого и не скрытого, что можно обойтись встроенными механизмами не внедряя закладки...
От багов тоже никому не нужно. Гонка вооружений на рынке ПО ;-( Важно кто первый выпустил продукт на рынок, а не какого он качества. Выпустил первый - занял нишу и потеснил конкурентов. А уж потом шлифуй продукт на заказчиках. Сейчас так делают многие производители.
2 Алексей... Да, сейчас жизненный цикл технологий настолько непродолжительный, что даже разговоры о разработке документации считаются замедляющим фактором и относится на **-план. Но тут все таки есть небольшая ниша... и по автоматическому документированию кода, и по оптимизации и по выявлению "дыр" в веб приложениях, еще по переносу алгоритма на новые ЯП и тех базу(с "больших" ЭВМ на персоналки или на кластеры) ну еще всякое по мелочи...
а основные проблемы кода, такие как избыточность, переполнение буфера, и т.п. реализованы уже и в средах разработки, автоматические документаторы тоже включают они работают быстро - по верхам можно пройтись довольно быстро... http://www.stack.nl/~dimitri/doxygen/ и http://www.stack.nl/~dimitri/doxygen/links.html
ИБ-службы беспокоит, что куча людей пишет для них заказной код (от 1С до SAP, не считая даже ГАС Выборы и ЕГАИС:)), а что там внутри, кроме функционала, никто не знает. Случаи оставления разработчиками дырок для "личного пользования", известны, например http://www.outsourcing.ru/content/rus/214/2142-article.asp, а сколько неизвестных? В России больше миллиона инсталляций только 1С, и в каждой инсталляции есть заказной код. По пять тыщ рублей с каждого - копейки по сравнению с ущербом, вот вам и рынок в пять миллиардов рублей, поболе антивирусного будет :).
"а что там внутри, кроме функционала, никто не знает."
Я Вам больше скажу... Сам Разработчик не знает что у него в коде. Проводил оценки... С учетом уровней абстракции и стороннего кода разработчик может представить около 8% реального кода своего ПО. Разработчик в лучшем случае понимает алгоритм только на высших уровнях абстракции, некоторые даже не опускаются до уровня понимания кода - остаются на уровне UML и т.п.
swan, да нифига они не работают. потому что нужен не аннотирующий grep, а анализатор потоков данных.
посмотрел краем глаза на Orizon - какой-то он (как и следовало ожидать) фиксированный на веб-приложениях. Для веб-приложений то как раз средств немало и даже бесплатных.. хочет универсального. Хотя бы уровня HP Code Advisor.
Все же ляпы программистов не так разрушительны, чаще это просто неоптимальный код. А от закладок ущерб воистину вселенский. Прямо сейчас в Тегеране полиция разгоняет демонстрантов, среди лозунгов которых - "Смерть России" (????). Оппозиция считает, что Россия разработала для иранского избиркома софт, который позволяет манипулировать подсчетом голосов. Те же наезды на софт были на украинских выборах в 2006, с чего, собственно, и началась "оранжевая революция". В наличие возможности менять результаты ЕГЭ два года назад обвиняли разработчиков софта, они даже судиться собирались насчет защиты деловой репутации. Хотя в приведенных примерах одним сканером кода не обойтись :).
>Продавец пишет... >вот вам и рынок в >пять миллиардов рублей,
Это экспертные системы. Поэтому они интересны только экспертам :) Поэтому рынок гораздо более другой.
Тут Алексею в пору оседлать своего конька (клячу?) и вспомнить про психологию. Почему системы анализа исходного кода (binary analisys, fuzzing, fault injection) никому не нужны? 1. Вообще непонятно что они пишут! 2. Ну нашла она что-то, что делать то дальше? Бодаться с Microsoft? Миллионы в редизайн софта у исполнителя в рамках нового договора? 3. Все равно они всего не находят, а меньше знаешь - крепче спишь.
Карма у безопасника такая- всю жизнь бодаться с теми, кто говорит "так сойдет", "авось пронесет" и "все так делают". И что интересно, по мере развития меняется набор аргументов, но не суть проблемы ;-)
"swan, да нифига они не работают." тут же вспомнил про двух мужиков, которые сейчас дома ремонт делают капитальный, даже хочется позвонить, может разбудить их там ;-)
А.. это Вы про те ссылки - яж говорю по верхам... Я как то пробовал посчитать в каком количестве состояний может находиться программа в оперативной памяти пока работает и сколько ветвей в ней реально есть... цифирь в калькуляторе не хватило...
Попробуйте трассировать выполнение winapi MessageBox со всеми заходами... около 500 000 машинных команд (может у Вас подругому ?!) Чем ниже опускаемся по уровням абстракции тем больше избыточности и информационной и алгоритмической. Кому интересно - можете проанализировать результаты "HUGO compo" - конкурсы были по написанию маленького кода...
Так беда не только в уровнях абстракции - беда в том что при переходе с высшего на низший (с ЯП на машинный код) появляются и дыры... http://vazone.ru/wordpress/?p=348 http://www.securitylab.ru/news/382677.php http://vazone.ru/wordpress/?p=80
вообще говоря, ситуация вот какая: фуззеры халявные есть. трейсеры тоже. а вот средства статического анализа кода в какой-то заднице: или коммерческие системы вроде Coverity (их несколько на рынке и они в общих чертах похожи) или совершенно неприспособленные к реальной жизни академические проекты. Для веб-приложений получше, но они специфичны. Ну и HP Code Advisor. Который, кстати, тоже такие штуки ловит на раз.
2 arkanoid Дык мы разработали и постоянно улучшаем... рекламировать не буду... При всем этом есть мнение, что анализ "исходников" - это вершина айсберга. Разница в алгоритмах между "исходным кодом" на языке высокого уровня и алгоритмом, который становится в машинном коде Очень большая... Я проводил анализ по многим примерам реализации одного и того же несложного алгоритма на pascal, с, с++ и ассемблере(где избыточность при переводе в машинный код незначительна). Результат жуткий... Есть подходы по анализу уже машинного кода и контроля за выполнением кода в реальном времени. И эти подходы были реализованы мной еще в 1999 году. К сожалению сегодня такие подходы реализованы разве что в антивирусах, может еще в Cisco SA. Но что то "глубокие" подходы не приживаются... зачем глубоко копать, когда можно заработать с меньшими усилиями...
2 arkanoid "swan, а как зовется ваш продукт и можно ли потрогать и где про него почитать?"
Мне как то неудобно на блоге Алексея распространяться... скажу вкратце... Потрогать нельзя - показать в работе - можно...
Он "ест" pascal/delphi/c/c++/c#/java/fortran немного. автоматизирует проверки по всем уровням контроля НДВ с выдачей отчетов в виде единого сайта... Я могу про него рассказывать и рассказывать но сорри, боюсь замазать рекламой или слишком заинтриговать ;-). Демонстрировали и ФСБ и МО РФ и ФСТЭК - оценки самые самые... Мы его не продаем - зачем плодить конкурентов в части испытаний. А заказчикам не демонстрируем - чтоб они не подумали что все делается легко и цены не пытались понижать ;-) все все молу молчу...
Все последняя фраза - Алексей извини, - распирает меня от работы ))) У меня есть еще одна поделка - позволяет контролировать ПО в процессе работы и даже код править в процессе работы... Испробовано даже на microsoft word 2007... и даже не тормозит !!! А еще... в проекте конкурент для cisco SA но это уже совсем наглость с моей стороны... пойду нервно покурить и спать...
А... ну для начала нужно четко понимать, что проверки, которые предусмотрены РД НДВ - больше относятся к качеству, чем к безопасности. Только две проверки имеют отношение к ИБ - это контроль заданных конструкций и поиск маршрутов в которых участвуют эти конструкции. Декларированные функциональные возможности это ровно те, которые разработчик задекларировал в документации... Функциональные возможности могут быть реализованы разными конструкциями на разных ЯП - тут для декларирования как раз автоматические документаторы очень помогают... Вообще тема очень обширная...
Вообще хочется сказать, что у нас в стране очень много хороших специалистов которые готовы участвовать в создании отличных систем, у нас менеджмент подкачал... Потому и уезжают и работают на соседей наши умельцы...
Ну вот на Ruscrypto'09 студенты какие-то (?) представляли систему статического анализа исходного кода с анализом потоков данных.. Но "на бумаге" и судьба ее, как водится, неизвестна :-(
2 arkanoid У меня есть DEMO програма инженерный калькулятор(на Bilder 6.0) - мы для демо калькуляторы любим... НДВ по 2 уровню контроля полностью с формированием отчета, включая подготовку к динамике и обработка динамического анализа... все вместе короче менее 5 минут... Простые проекты - те которые писали не ГЕНИАЛЬНЫЕ программисты с множественным переопределением классов и прочими штучками - порядок такой же... Но хочу сразу отметить - что результаты нужно осознать и т.п. - короче это не халява - запустил и все... Очень много особенностей и в ЯП и в анализируемом коде... бла бла - тяжелая это работа - берем дорого но качественно...
Ну вот на Ruscrypto'09 - это не мы... Времена одиночек проходят стоящий продукт создать одиночкам все сложнее и сложнее. У нас отсутствует понимание того, что одной идеи, пусть гениальной недостаточно для счастья - к этой идее нужно много чего приложить. У нас же молодые люди родив идею - мечтают, что они будут лежать на пляже на Мальдивах на собственной вилле и раз в месяц будет прилетать черный вертолет, из него выйдет человек в черном с чемоданом денег и на коленях будет умолять спасти мир - потому как только они обладают этой идей. В жизни капельку иначе... а ведь любой посетитель этого блога наверняка несет в себе десяток хороших идей...
Я из этой новости и узнал о существовании Ounce Labs. Надо посмотреть, что ли, что они делают..
ОтветитьУдалитьНу игроков в сегменте анализа исходников немало. Только в России они мало известны. Да и свои поделки у нас есть в этой области. Используются при сертификации.
ОтветитьУдалитьДа и не то, чтобы много. По пальцам одной руки пересчитать можно - или я многих не знаю. Меня удивило, что опенсорс в этом направлении представлен откровенно плохо - исключительно академические проекты, которые практически невозможно с отдачей интегрировать в реальную разработку.
ОтветитьУдалитьКстати, есть где-то сводные ресурсы по этой тематике? Два-три года назад мне приходилось выгугливать самому.
ОтветитьУдалитьА кому они нужны такие проекты? Их перспектива очень туманна, кроме как в сертификации или SDLC. Круг потребителей очень узок, а эффективность низка. Если я захочу скрыть закладку - я ее скрою и никакой анализатор ее не найдет. Еще в 50-х годах сей факт был доказан математически.
ОтветитьУдалитьНу почему же.. Оно не от закладок, а от багов и нужно практически всем..
ОтветитьУдалитьhttp://orizon.sourceforge.net/
ОтветитьУдалить>Меня удивило, что опенсорс в этом направлении представлен откровенно плохо
ОтветитьУдалитьВ opensource проекты, в которых сильна экпертная составляющая вообще слабо представлены. Видимо потому что контрибуторов мало, а желающих тихо использовать - много.
Вспомните, почему был закрыт Nessus.
Мы реализовали очень неплохой продукт (именно что продукт а не поделка) для анализа исходных текстов и т.п. "Тритон" называется используем для сертификации по НДВ.
ОтветитьУдалитьНасчет закладок - Алексей прав можно внедрить так что никто не найдет и даже срабатывание не обнаружится, хотя есть мнение, что современные системы содержат в себе столько функционала скрытого и не скрытого, что можно обойтись встроенными механизмами не внедряя закладки...
От багов тоже никому не нужно. Гонка вооружений на рынке ПО ;-( Важно кто первый выпустил продукт на рынок, а не какого он качества. Выпустил первый - занял нишу и потеснил конкурентов. А уж потом шлифуй продукт на заказчиках. Сейчас так делают многие производители.
ОтветитьУдалить2 Алексей...
ОтветитьУдалитьДа, сейчас жизненный цикл технологий настолько непродолжительный, что даже разговоры о разработке документации считаются замедляющим фактором и относится на **-план.
Но тут все таки есть небольшая ниша... и по автоматическому документированию кода, и по оптимизации и по выявлению "дыр" в веб приложениях, еще по переносу алгоритма на новые ЯП и тех базу(с "больших" ЭВМ на персоналки или на кластеры) ну еще всякое по мелочи...
Ну есть еще проекты, которые могут позволить себе заботиться о качестве кода. В ИБ это уж точно совершенно необходимо. Orizon - надо посмотреть..
ОтветитьУдалитьа основные проблемы кода, такие как избыточность, переполнение буфера, и т.п. реализованы уже и в средах разработки, автоматические документаторы тоже включают они работают быстро - по верхам можно пройтись довольно быстро...
ОтветитьУдалитьhttp://www.stack.nl/~dimitri/doxygen/
и
http://www.stack.nl/~dimitri/doxygen/links.html
ИБ-службы беспокоит, что куча людей пишет для них заказной код (от 1С до SAP, не считая даже ГАС Выборы и ЕГАИС:)), а что там внутри, кроме функционала, никто не знает. Случаи оставления разработчиками дырок для "личного пользования", известны, например http://www.outsourcing.ru/content/rus/214/2142-article.asp, а сколько неизвестных? В России больше миллиона инсталляций только 1С, и в каждой инсталляции есть заказной код. По пять тыщ рублей с каждого - копейки по сравнению с ущербом, вот вам и рынок в пять миллиардов рублей, поболе антивирусного будет :).
ОтветитьУдалить"а что там внутри, кроме функционала, никто не знает."
ОтветитьУдалитьЯ Вам больше скажу...
Сам Разработчик не знает что у него в коде. Проводил оценки... С учетом уровней абстракции и стороннего кода разработчик может представить около 8% реального кода своего ПО. Разработчик в лучшем случае понимает алгоритм только на высших уровнях абстракции, некоторые даже не опускаются до уровня понимания кода - остаются на уровне UML и т.п.
swan, да нифига они не работают. потому что нужен не аннотирующий grep, а анализатор потоков данных.
ОтветитьУдалитьпосмотрел краем глаза на Orizon - какой-то он (как и следовало ожидать) фиксированный на веб-приложениях. Для веб-приложений то как раз средств немало и даже бесплатных.. хочет универсального. Хотя бы уровня HP Code Advisor.
Все же ляпы программистов не так разрушительны, чаще это просто неоптимальный код. А от закладок ущерб воистину вселенский. Прямо сейчас в Тегеране полиция разгоняет демонстрантов, среди лозунгов которых - "Смерть России" (????). Оппозиция считает, что Россия разработала для иранского избиркома софт, который позволяет манипулировать подсчетом голосов. Те же наезды на софт были на украинских выборах в 2006, с чего, собственно, и началась "оранжевая революция". В наличие возможности менять результаты ЕГЭ два года назад обвиняли разработчиков софта, они даже судиться собирались насчет защиты деловой репутации.
ОтветитьУдалитьХотя в приведенных примерах одним сканером кода не обойтись :).
>Продавец пишет...
ОтветитьУдалить>вот вам и рынок в
>пять миллиардов рублей,
Это экспертные системы. Поэтому они интересны только экспертам :)
Поэтому рынок гораздо более другой.
Тут Алексею в пору оседлать своего конька (клячу?) и вспомнить про психологию. Почему системы анализа исходного кода (binary analisys, fuzzing, fault injection) никому не нужны?
1. Вообще непонятно что они пишут!
2. Ну нашла она что-то, что делать то дальше? Бодаться с Microsoft? Миллионы в редизайн софта у исполнителя в рамках нового договора?
3. Все равно они всего не находят, а меньше знаешь - крепче спишь.
4....
Карма у безопасника такая- всю жизнь бодаться с теми, кто говорит "так сойдет", "авось пронесет" и "все так делают". И что интересно, по мере развития меняется набор аргументов, но не суть проблемы ;-)
ОтветитьУдалить2 arkanoid
ОтветитьУдалить"swan, да нифига они не работают."
тут же вспомнил про двух мужиков, которые сейчас дома ремонт делают капитальный, даже хочется позвонить, может разбудить их там ;-)
А.. это Вы про те ссылки - яж говорю по верхам...
Я как то пробовал посчитать в каком количестве состояний может находиться программа в оперативной памяти пока работает и сколько ветвей в ней реально есть...
цифирь в калькуляторе не хватило...
Попробуйте трассировать выполнение winapi MessageBox со всеми заходами... около 500 000 машинных команд (может у Вас подругому ?!)
Чем ниже опускаемся по уровням абстракции тем больше избыточности и информационной и алгоритмической. Кому интересно - можете проанализировать результаты "HUGO compo" - конкурсы были по написанию маленького кода...
Так беда не только в уровнях абстракции - беда в том что при переходе с высшего на низший (с ЯП на машинный код) появляются и дыры...
http://vazone.ru/wordpress/?p=348
http://www.securitylab.ru/news/382677.php
http://vazone.ru/wordpress/?p=80
swan, это как раз именно то, что хорошо умеют ловить системы анализа безопасности кода:
ОтветитьУдалитьhttp://blog.coverity.com/posts/general/would-you-like-to-know-about-0day-defects-months-in-advance
именно про эту уязвимость ;-)
вообще говоря, ситуация вот какая: фуззеры халявные есть. трейсеры тоже. а вот средства статического анализа кода в какой-то заднице: или коммерческие системы вроде Coverity (их несколько на рынке и они в общих чертах похожи) или совершенно неприспособленные к реальной жизни академические проекты. Для веб-приложений получше, но они специфичны. Ну и HP Code Advisor. Который, кстати, тоже такие штуки ловит на раз.
2 arkanoid
ОтветитьУдалитьДык мы разработали и постоянно улучшаем... рекламировать не буду...
При всем этом есть мнение, что анализ "исходников" - это вершина айсберга. Разница в алгоритмах между "исходным кодом" на языке высокого уровня и алгоритмом, который становится в машинном коде Очень большая... Я проводил анализ по многим примерам реализации одного и того же несложного алгоритма на pascal, с, с++ и ассемблере(где избыточность при переводе в машинный код незначительна). Результат жуткий...
Есть подходы по анализу уже машинного кода и контроля за выполнением кода в реальном времени. И эти подходы были реализованы мной еще в 1999 году. К сожалению сегодня такие подходы реализованы разве что в антивирусах, может еще в Cisco SA.
Но что то "глубокие" подходы не приживаются... зачем глубоко копать, когда можно заработать с меньшими усилиями...
swan, а как зовется ваш продукт и можно ли потрогать и где про него почитать?
ОтветитьУдалить"Тритон"
ОтветитьУдалить2 arkanoid
ОтветитьУдалить"swan, а как зовется ваш продукт и можно ли потрогать и где про него почитать?"
Мне как то неудобно на блоге Алексея распространяться...
скажу вкратце...
Потрогать нельзя - показать в работе - можно...
Он "ест" pascal/delphi/c/c++/c#/java/fortran немного.
автоматизирует проверки по всем уровням контроля НДВ с выдачей отчетов в виде единого сайта...
Я могу про него рассказывать и рассказывать но сорри, боюсь замазать рекламой или слишком заинтриговать ;-).
Демонстрировали и ФСБ и МО РФ и ФСТЭК - оценки самые самые...
Мы его не продаем - зачем плодить конкурентов в части испытаний. А заказчикам не демонстрируем - чтоб они не подумали что все делается легко и цены не пытались понижать ;-) все все молу молчу...
swan, если он ориентирован на контроль НДВ, ему на вход нужна какая-то спецификация? как она выглядит?
ОтветитьУдалитьВсе последняя фраза - Алексей извини, - распирает меня от работы )))
ОтветитьУдалитьУ меня есть еще одна поделка - позволяет контролировать ПО в процессе работы и даже код править в процессе работы... Испробовано даже на microsoft word 2007... и даже не тормозит !!!
А еще... в проекте конкурент для cisco SA но это уже совсем наглость с моей стороны... пойду нервно покурить и спать...
2 arkanoid
ОтветитьУдалитьпод спецификацией обычно понимается документ по ЕСКД или ЕСПД.
Что Вы под спецификацией понимаете ?...
swan: спецификация в смысле алгоритмическом - как описываются функции, которые не являются НДВ ;-)
ОтветитьУдалитьА...
ОтветитьУдалитьну для начала нужно четко понимать, что проверки, которые предусмотрены РД НДВ - больше относятся к качеству, чем к безопасности. Только две проверки имеют отношение к ИБ - это контроль заданных конструкций и поиск маршрутов в которых участвуют эти конструкции.
Декларированные функциональные возможности это ровно те, которые разработчик задекларировал в документации...
Функциональные возможности могут быть реализованы разными конструкциями на разных ЯП - тут для декларирования как раз автоматические документаторы очень помогают...
Вообще тема очень обширная...
swan: а можно примерную прикидку трудоемкости применения системы - по человеко-часам на тыщу строк кода?
ОтветитьУдалитьswan: ..например, до фазы "первого прогона", когда появляются результаты, над которыми нужно думать, отделять ложные срабатывания от верных и т д.
ОтветитьУдалитьВообще хочется сказать, что у нас в стране очень много хороших специалистов которые готовы участвовать в создании отличных систем, у нас менеджмент подкачал...
ОтветитьУдалитьПотому и уезжают и работают на соседей наши умельцы...
Ну вот на Ruscrypto'09 студенты какие-то (?) представляли систему статического анализа исходного кода с анализом потоков данных.. Но "на бумаге" и судьба ее, как водится, неизвестна :-(
ОтветитьУдалить2 arkanoid
ОтветитьУдалитьУ меня есть DEMO програма инженерный калькулятор(на Bilder 6.0) - мы для демо калькуляторы любим...
НДВ по 2 уровню контроля полностью с формированием отчета, включая подготовку к динамике и обработка динамического анализа... все вместе короче менее 5 минут...
Простые проекты - те которые писали не ГЕНИАЛЬНЫЕ программисты с множественным переопределением классов и прочими штучками - порядок такой же...
Но хочу сразу отметить - что результаты нужно осознать и т.п. - короче это не халява - запустил и все... Очень много особенностей и в ЯП и в анализируемом коде... бла бла - тяжелая это работа - берем дорого но качественно...
swan, хмм.. можно попросить тестовый прогон по моему коду - посмотреть на результаты? сугубо некоммерческий проект ;-)
ОтветитьУдалитьНу вот на Ruscrypto'09 - это не мы...
ОтветитьУдалитьВремена одиночек проходят стоящий продукт создать одиночкам все сложнее и сложнее. У нас отсутствует понимание того, что одной идеи, пусть гениальной недостаточно для счастья - к этой идее нужно много чего приложить. У нас же молодые люди родив идею - мечтают, что они будут лежать на пляже на Мальдивах на собственной вилле и раз в месяц будет прилетать черный вертолет, из него выйдет человек в черном с чемоданом денег и на коленях будет умолять спасти мир - потому как только они обладают этой идей.
В жизни капельку иначе... а ведь любой посетитель этого блога наверняка несет в себе десяток хороших идей...
можно
ОтветитьУдалить