Исходники Windows предоставлялись же ФАПСИ для прохождения сертификации. Сильно сомневаюсь, что с других поставщиков ПО этого не требовали. И тем более в США.
Но ведь в случае Open Source даже исходники предоставлять не надо. Конечно, security by obscurity (в данном случае — закрытый от спецслужб) далеко не панацея, но это +1 барьер в защите
Я с этим не согласен. Если автоматизированному софту без разницы, где искать подозрительные места, то дальше список передаётся человеку, который должен понять, можно ли тут использовать ошибку и если да, то как.
Например, софт нашёл 100500 ф-ций sprintf без проверки размера буфера. Но в одном случае это находка по адресу 0x004E71FD в процедуре 0x004E7100, а в другом — строка 7128 в ф-ции GenerateObjGUID, где исследователь только по названию ф-ции поймёт, что буфера в 64 байта достаточно под любой GUID и рыть тут больше нечего (а таких мест предстоит проверить ещё 100499)
Кроме того, огромное кол-во уязвимостей основаны на семантических ошибках — не поставили лимит на кол-во попыток входа в минуту, неправильно проверили security cookie (алгоритм никак не может знать, под что используется кука с именем id2, например). Тут только восстановление до семантики исходных кодов. Это очень трудоёмко, а исходники позволяют пропустить этот этап.
Это решает задачу, как уронить программу на некорректных данных, но не применимо к другим примерам:
уязвимость в отсутствии ограничений на кол-во логинов в минуту.
несогласованная работа security-компонент, вызванная тем, что одна компонента неправильно проверяет куку, сгенерированную другой компонентой или не проверяет её expire time (в формальной спецификации для солвера это заложить нельзя, т.к. до анализа приложения неизвестно, что эти фичи вообще есть в приложении).
И главное. Если всё с этими солверами так хорошо, что мешает вендорам ПО их использовать? Соответственно, все проблемы, находимые солверами, будут закрыты и останутся лишь уязвимости, которые требуют понимания программы человеком.
Для старого доброго ручного анализа, почему "отсутствие исходных текстов ничего принципиально не меняет"?
Как минимум, прочитать DLL на C++ либо её декомпиляцию в IDA/XRAY — разница по времени на порядок (из-за отсутствия осмысленных наименований меток, нужно их все восстанавливать).
НЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесь
Под прицелом не только Apple. Правительство заставляет других разработчиков показывать исходный код