Нашей компанией разработан новый сигнатурный анализатор исходных текстов AppChecker. Прототип анализатора реализован в виде desktop-приложения. В основу положен разбор исходных текстов на уровне, сопоставимом с уровнем работы компилятора. Первая версия поодерживает языки программирования C/C++ и Java.

Реализован поиск потенциально опасных конструкций:

  • C/C++ (49 потенциально опасных конструкций для поиска 44-х видов дефектов кода). Основные:
    • Использование нестойких алгоритмов шифрования
    • Переполнение буфера
    • Повышение привилегий
    • Строго заданные пароли и адреса
    • Некорректный порядок аргументов стандартных функций
    • Некорректная очистка областей памяти с чувствительными данными
    • Некорректное завершение строк
    • Доступ за пределы массивов
    • Уязвимость к DDOS атакам
    • Некооректное освобождение ресурсов
    • Использование sizeof для указателей
    • Выход системных данных за пределы контролируемой области
    • Ошибки работы с файлами
    • fork-бомбы
  • Java (53 потенциально опасные конструкции для поиска 42-х видов дефектов кода). Основные:
    • Выход системных данных за пределы контролируемой области
    • Некорректная работа с итераторами коллекций
    • Некорректные модификаторы служебных методов
    • Недопустимые операторы возврата (в блоках finally)
    • Подмена путей
    • Динамическая подгрузка кода
    • Блокировка потоков двойной проверкой
    • Принудительный вызов финализатора
    • Разыменовывание нуловеого указателя
    • Ошибки преобразования целочисленных данных
    • Использование статистически предсказуемого вектора инициализации ГПСЧ
    • Бесконечные циклы (уязвимость к DDOS атакам)
    • SQL-injection