est-il possible de patcher un faille de sécurité sans en révéler l'exploit associé?
Pour faire court, pas si le code source est public. La raison en est simple : si tu publies un patch, il suffit de lire le patch pour voir la vulnérabilité (ou même encore plus simple : tu appliques le patch, tu fais un diff "à l'envers" (en passant le code final en code intital et vice versa) et tu obtiens un patch qui implémente la vulnérabilité).
En pratique, ça peut être plus compliqué. Sur un projet complexe, si la vulnérabilité est elle-même complexe et le diff conséquent, ça peut être difficile de comprendre en quoi un logiciel est faillible. L'attaquant doit donc :
Lire le patch
Lire le code source initial
Connaître le protocole implémenté
Trouver en quoi le comportement corrigé nécessitait une correction
Déterminer une attaque contre ce code
Implémenter cette attaque
Le tout dans un temps limité puisqu'à chaque minute consacrée par l'attaquant à attaquer, ce sont des centaines de serveurs qui sont patchés (et donc le périmètre de l'attaque se réduit).
Ça, ce sont les sources. Le mouton que tu veux est dedans.
[^] # Re: Sécurité et confiance
Posté par Liorel . En réponse au journal Sécurité de l'open source Vs closed source: MS14-066. Évalué à 6.
Pour faire court, pas si le code source est public. La raison en est simple : si tu publies un patch, il suffit de lire le patch pour voir la vulnérabilité (ou même encore plus simple : tu appliques le patch, tu fais un diff "à l'envers" (en passant le code final en code intital et vice versa) et tu obtiens un patch qui implémente la vulnérabilité).
En pratique, ça peut être plus compliqué. Sur un projet complexe, si la vulnérabilité est elle-même complexe et le diff conséquent, ça peut être difficile de comprendre en quoi un logiciel est faillible. L'attaquant doit donc :
Le tout dans un temps limité puisqu'à chaque minute consacrée par l'attaquant à attaquer, ce sont des centaines de serveurs qui sont patchés (et donc le périmètre de l'attaque se réduit).
Ça, ce sont les sources. Le mouton que tu veux est dedans.