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