Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Поиск недекларированных возможностей - C++

15.07.2011, 14:31. Просмотров 3977. Ответов 22
Метки нет (Все метки)

Например, есть исходный код какой-либо программы, написанной на C++. Нужно определить, что программа не делает каких-нибудь действий, не описанных в документации, например, не отсылает пароли куда-нибудь или что-нибудь другое.

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

Делается это или статически: когда анализируется исходный код программы, или динамически: когда программа выполняется, а её действия контролируются.

Есть ли какие-нибудь проекты, выполняющие такой поиск (жедательно с открытым исходным кодом)?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2011, 14:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск недекларированных возможностей (C++):

Алгоритмы анализа программных кодов на выявление недекларированных возможностей - C++
Помогите пожалуйсто. Необходим материал (литература, ссылки на исходные тексты анализаторов кодов) по алгоритмам анализа программных кодов...

Книга с описанием возможностей С++1х и/или boost - C++
Есть ли брошюрный сборник с описаниями последних стандартов? Может, случилось так, что про boost даже выпустили книжку-документацию? Если...

Десять возможностей C++11, которые должен использовать каждый C++ разработчик - C++
Обсуждаем статью: http://habrahabr.ru/post/182920/ Надо же этот раздел немного оживить :) Я, естественно, не участвую. ^_^

Класс "Вектор", меню для демонстрации его возможностей - C++
Ребят, помоги разобраться с переменными, не могу сообразить. Там в классе конструктор со встроенными параметрами для 1-го вектора... и 2-ой...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Исследование ПО на отсутствие недекларированных возможностей - Разработка ПО
Подскажите, какие фирмы занимаются исследованием ПО на наличие недекларированных возможностей. Желательно в Омске, но можно и в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
15.07.2011, 17:44  [ТС] #16
Цитата Сообщение от mimicria Посмотреть сообщение
Автоматический анализ должен знать, что для программы является подозрительными действиями. Как вы ему об этом сообщите?
Это ещё один вопрос. Пока я ищу программное обеспечение (по возможности с открытым исходным котод), которое может найти неделарированные возможности.

Цитата Сообщение от Deviaphan Посмотреть сообщение
Я не сказал блокирование. Я сказал - перехват и анализ.
Отличить зашифрованный пароль от зашифрованного матерного стишка не возможно.
Выводы делай сам.)
Блокировка - частный случай перехвата и анализа =)
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.07.2011, 13:17 #17
Цитата Сообщение от mimicria Посмотреть сообщение
Если исходный проект компилируется и работает - он полон.
Я бы сказал, если в исходном коде присутствуют такие функции/методы, которые выполняют предъявленный в техническом задании функционал в полном объеме.
Если есть функции/методы, которые выполняют какие-либо другие действия (кроме тех, что обозначены в ТЗ), то код признается избыточным.

Цитата Сообщение от Deviaphan Посмотреть сообщение
Т.е. это понятие "избыточности" и "полноты" только для органов.
Ну это с какой стороны посмотреть. Если избыточность или полнота волнует заказчика, то почему бы и нет. У органов в этом случае просто несколько иные цели.
ValeryLaptev
Эксперт С++
1040 / 819 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
17.07.2011, 13:26 #18
Цитата Сообщение от .::.DIMA.::. Посмотреть сообщение
Например, есть исходный код какой-либо программы, написанной на C++. ...
Есть ли какие-нибудь проекты, выполняющие такой поиск (жедательно с открытым исходным кодом)?
Поищи материалы Андрея Карпова про теме Статистический анализ кода. Они ищут на предмет тонких ошибок. Возможно, их идеи и методы тебе тоже сгодятся. Хотя бы частично.
Для начала - вот: http://lib.custis.ru/%D0%A1%D1%82%D0...0%B2,_ADD-2011)
Еще по тегу PVS-studio поищи: http://www.viva64.com/ru/a/0007/
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.07.2011, 13:33 #19
ValeryLaptev, НДВ это не ошибки программиста. И статистический анализ тоже не поможет в их поиске.
Недекларированные возможности - функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации.
Реализацией недекларированных возможностей, в частности, являются программные закладки.
ValeryLaptev
Эксперт С++
1040 / 819 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
17.07.2011, 13:49 #20
fasked, а я и не говорю, что ошибки. Но чтобы что-то искать, надо сначала определиться, что именно. Карпов со-товарищи сначала анализировали тонны кода на предмет ТОНКИХ ошибок. Нетривиальных, которые не видны сразу. Вот такой же анализ кода, только для своих нужд, нужно и вам проделать.
А почитать Карпова со-товарищи просто полезно и помимо всего прочего...
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.07.2011, 15:46 #21
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Вот такой же анализ кода, только для своих нужд, нужно и вам проделать.
Так вот я про то и говорю, что Карпов проводил анализ кода. Здесь анализом кода не обойдешься. Потому что для обнаружения ошибок пользуются некоторыми шаблонами (назовем "это" так ). То есть, например, сравнение беззнакового целого числа с нулем (n > 0) или одинаковый код как в if так и в else, много примеров можно подобрать.
В случае НДВ подобных шаблонов на уровне исходного кода нет (ну как минимум я о таком даже не слышал), просто сложно подобрать пример. Анализатор не может заранее знать, какая функция является декларированной, а какая нет.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
18.07.2011, 01:09  [ТС] #22
Цитата Сообщение от fasked Посмотреть сообщение
В случае НДВ подобных шаблонов на уровне исходного кода нет (ну как минимум я о таком даже не слышал), просто сложно подобрать пример. Анализатор не может заранее знать, какая функция является декларированной, а какая нет.
Существуют же программы, которые ищут такие возможности. Я эти программы пока не использовал, но увидел реузльтаты работы.

fasked, может быть, посоветуете литературу какую-нибудь по этой теме.
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
18.07.2011, 13:02 #23
Цитата Сообщение от .::.DIMA.::. Посмотреть сообщение
может быть, посоветуете литературу какую-нибудь по этой теме.
Конкретной литературы, к сожалению, подсказать не могу, есть только несколько статей, относящиеся к данной тематике, но опять же не напрямую:
http://www.osp.ru/os/2005/12/380655/
http://www.osp.ru/os/2011/04/13008784/
http://www.npo-echelon.ru/about/articles/code_audit.php

Конечно же не помешает прочитать соответствующий РД ФСТЭК:
http://www.fstec.ru/_docs/doc_3_3_010.htm

По следующей ссылке можно найти открытую энциклопедию уязвимостей:
http://cwe.mitre.org/data/slices/2000.html

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

Пара продуктов, которые выполняют автоматический анализ. Лидером считается АИСТ-С (имеет кучу недостатков) http://www.suritel.ru/cgi-bin/view.p...cid=1187156006. А вот об этом продукте я раньше не знал вовсе: http://www.npo-echelon.ru/production/65/4243.

Цены, конечно, дикие Зато сертификаты имеются.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2011, 13:02
Привет! Вот еще темы с ответами:

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

Расширение возможностей QlineEdit - C++ Qt
Не знал как правильно назвать тему, да и возможно то что я хочу провернуть делается даже не с QLineEdit. В общем к делу :) к Как то в...

Автокомплит для возможностей C++11 - C++ Qt
Как сделать, чтоб QtCreator поддерживал автокомплит для возможностей C++11 и старше, например std::unordered_set он "не видит".

Клиенты специальных возможностей - Visual C++
Как я понимаю клиенты спец возможностей для объектов- это всякие менеджеры отрисовки, поиска и тп, а не подскажите как называются эти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.07.2011, 13:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru