Одним из методов поиска уязвимостей в программном обеспечении является использование анализаторов исходных текстов. В данной посте хочу рассказать об одном из них, а именно о RATS (Rough Auditing Tool for Security). Начать именно с этой утилиты, решил потому что упоминания о ней встречались не раз в уважаемых мной источниках, а именно тут, тут и еще здесь. Однако реального примера использования нигде не было, поэтому я решил рассказать о RATS подробнее.
Читать полностью »
Рубрика «анализ кода» - 4
Анализатор исходных кодов RATS
2014-10-27 в 13:52, admin, рубрики: анализ кода, информационная безопасность, поиск уязвимостейJetBrains Upsource EAP: продукт для просмотра репозиториев и code review, с которым теперь можно поиграться
2014-08-11 в 16:53, admin, рубрики: diff, IDE, intellij, intellij idea, jetbrains, анализ кода, Блог компании JetBrains, браузер кода, навигация, Платформа, подсветка, Программирование
Меньше года назад мы рассказывали о разработке нашей новой веб-платформы для просмотра исходного кода.
За прошедшее время Upsource претерпел массу мелких и крупных изменений и стал, в частности, инструментом для code review. На днях же мы открыли программу EAP (Early Access Program), и предрелизные билды Upsource теперь доступны для всех желающих. На момент написания статьи число желающих стремительно приближается к тысяче, и не исключено, что вам тоже будет интересно лично познакомиться с нашим новым продуктом. Читать полностью »
Опыт кастомного анализа c# кода
2014-06-25 в 10:18, admin, рубрики: .net, fxcop, Visual Studio, анализ кода, отладка, Отладчик, Совершенный код, метки: fxcop, Visual Studio, анализ кода, отладка, отладчик Довольно давно я делился проблемой тестирования кода в финализаторе и недавно жаловался на падение теста (Как тестировать код финализатора (c#) и Как тестировать код финализатора (c#). Послесловие: тест все-таки упал).
В ходе обсуждения комрадом withkittens была высказана идея:
Финализатор (при правильной реализации IDisposable pattern) должен (should) вызывать Dispose(false). Этот факт можно тестировать статическим анализом. Соответственно, если Dispose(false) вызывает удаление файла (вы же написали тест?), то можно быть уверенным, что и финализатор тоже вызовет удаление файла, unit-тест излишен.
Мне эта идея показалась очень здравой, кроме того, иногда хочется контролировать исходный код более кастомно, чем дает встроенный анализ кода или решарпер.
Опыт реализации кастомных правил анализа кода под катом + «как ozcode помог в процессе исследования внешней библиотеки»
Читать полностью »
Особенности мобильных приложений на платформе iOS, использующих логин и пароль клиентов для доступа к платному контенту
2014-04-02 в 11:03, admin, рубрики: iOS, анализ защищенности, анализ кода, аудит ИБ, Блог компании Инфосистемы Джет, защита информации, информационная безопасность, кибератаки, мобильные приложения, статический анализ кода, хакерство Разработчики мобильных приложений зачастую сталкиваются с необходимостью хранить конфиденциальные данные пользователя на пользовательском устройстве. Это могут быть, например, номер кредитной карточки или аутентификационные данные. В этой статье мы поговорим о типичных ошибках реализации хранения конфиденциальных данных с точки зрения информационной безопасности на примере мобильной платформы iOS.
Обычно настройки приложения хранятся в конфигурационных файлах. Библиотека Cocoa Touch, используемая при разработке приложений для мобильной платформы iOS, предоставляет слой абстракции для хранения настроек приложения в классе NSUserDefaults. Класс NSUserDefaults реализует нелюбимый многими шаблон проектирования «Одиночка» (более известный как Singleton), предоставляя доступ к интерфейсу над стандартным конфигурационным файлом приложения.
Стандартный файл конфигурации приложения располагается в его домашней директории по относительному адресу Library/Preferences/<your.company.name>.<app.name>.plist. Как и другие файлы, расположенные в «песочнице», он не доступен на чтение для других приложений пользовательского уровня. Исключения составляют устройства, подвергнутые модификациям политики безопасности системы (jailbroken-устройства).
Многие разработчики по достоинству оценили удобство работы с классом NSUserDefaults. Подавляющее число приложений используют его для хранения внутренних настроек и/или настроек пользователя. К сожалению, удобство использования редко коррелирует с безопасностью. Хранение конфиденциальных данных пользователя в стандартном файле настроек является типичной ошибкой разработчиков, приводящей к утечке пользовательской информации.
В результате исследования исходного кода Приложения А на наличие ошибок в контексте информационной безопасности было выявлено, что приложение сохраняет данные аутентификации пользователя в конфигурационном файле настроек. Загрузив Приложение А на iPad под управление оригинальной операционной системы iOS версии 6.1.3, мы прошли стадию аутентификации и принялись за исследование файла настроек приложения.
Рис. 1. Загрузка приложения на iPad
Для демонстрации уязвимости мы использовали приложение iExplorer, доступное для операционных систем семейств Windows NT и Mac OS X. Приложение iExplorer представляет собой графический файловый менеджер для устройств под управлением iOS. Находим Приложение А в списке установленных приложений и открываем Library/Preferences/<settings-name>.plist на чтение.
Рис. 2. Внешний вид приложения iExplorer c доступом к нужному файлу
Рис. 3. Конфигурационный файл с конфиденциальной информацией
Информационные отношения. Как извлечь опыт из окружающей среды
2012-04-16 в 6:54, admin, рубрики: анализ кода, информация, исследование рынка, образование, Песочница, метки: анализ кода, информация, исследование рынка, образованиеРечь пойдёт о том, в какие информационные отношения мы можем вступать.
Все сущности в реальности находятся в некоторой зависимости друг от друга. Эти зависимости я буду называть отношениями. Их можно объединить в различные группы:
- Связь/свойство
- Взаимодействие/контакт
- Снятие/перенос
Отношения каждой группы могут переходить в оставшиеся две. Сейчас я расскажу, в чем их суть.Читать полностью »