Внезапно комодовцы взяли да и выкатили релиз с устранением тех очевидных уязвимостей, опасность которых они недавно так яро отрицали.
Базу, наконец, защитили. Не от всех, правда, как следовало бы. Но хоть от ограниченных пользователей — и на том спасибо. Кому надо защитить от всех — сами справятся.
Теперь про слабый хеш. Прямо скажем, как-то не верилось, что разработчики Comodo смогут за короткий срок устранить такую древнюю и глубоко въевшуюся в их продукт лажу. Правильно не верилось.
CIS по-прежнему вычисляет для файлов хеш Sha1 и контрольную сумму Crc32 от него; оба значения заносятся в базу: и длинный хеш, и короткий. Но теперь для проверки репутации используется и сам хеш Sha1, а не только Crc32 от него.
Однако при совпадении коротких хешей (Crc32 от Sha1) проблема все-таки возникает, хоть и не так явно, как раньше. Оказывается, комодовская база не может содержать два файла с одинаковыми короткими хешами. Что произойдет, когда CIS встретит «новый» неопознанный файл, совпадающий по короткому хешу с неким «старым» доверенным? Исход коллизии зависит от того, каким путем старый файл получил репутацию доверенного: автоматически или по инициативе пользователя.
Эксперименты показывают, что если репутация доверенного файла в базе — «комодовская», т.е. пользователь не задавал ее вручную, то новый файл останется неопознанным и не причинит вреда.
Но если пользователь вручную задавал файлу репутацию доверенного, то случится кое-что нехорошее. При первой попытке запуска новый файл будет воспринят неопознанным, как положено. Но одновременно с этим CIS попытается занести в базу запись о новом неопознанном файле — и данные о двух файлах смешаются. В дальнейшем CIS будет считать новый файл доверенным, а старый (настоящий доверенный) — неопознанным! Таким образом, при повторном запуске новый файл будет воспринят как доверенный, со всеми вытекающими последствиями.
Можно ли эксплуатировать этот баг как уязвимость? Массово — затруднительно. Но, например, если некая организация использует самописную программу, которую хочешь не хочешь, а придется вручную заносить в доверенные, то злоумышленник вполне мог бы подогнать троян к хешу этой программы и осуществить атаку.
В качестве защиты можно настроить Auto-Sandbox на блокировку всех неопознанных программ. При такой конфигурации неопознанные программы вообще не будут заноситься в базу. Соответственно, не произойдет и конфликта.
Хотя проблема толком не решена, возвращаю на прежнее место инструкцию по занесению всех исполняемых файлов в доверенные.