Windows XP SP2
Point de vue du développeur
Gilles Guimard (gillesg@microsoft.com)
Jean Gautier (jeanga@microsoft.com )
Agenda
Protection Réseau
Le Pare-feu de Windows XP
DCOM
Connections RPC
Protection NX
Outils de développement
Sécurité du courrier électronique
Sécurité Internet Explorer
Application Compatibility Toolkit (ACT) 4.0
Update Impact Analyzer
Pourquoi ce SP2?
Plusieurs attaques virales du passé auraient
été atténuées si un pare-feu avait été actif
La surface d’attaque de Windows XP pouvait
être largement réduite
Simplifier l’administration d’éléments clés de
la sécurité
Nouveautés du Pare-feu
Activé par défaut
Sécurité dès le démarrage
IPV4 et IPV6 sont supportés
Multi profils: Domaine/Standard
Configurable via
Netsh
Stratégies de groupe
Modèle objet NetFW
Fichier INF lors du déploiement
Parefeu Windows
Un aperçu rapide
Que se passe t’il lorsqu’une application
tente d’ouvrir un port réseau?
Configuration du Pare-feu avec netsh
Quelques commandes simples:
firewall show config
firewall add portopening TCP 80 MyWebPort
firewall delete portopening TCP 80
firewall add allowedprogram
program=c:\windows\system32\notepad.exe
name=TheNotepad mode=DISABLE
firewall set service type=REMOTEADMIN
mode=DISABLE
Configuration du Pare-feu
Modèle Objet NetFw
using NetFwTypeLib;
namespace FirewallConfig
{
class Program
{
static void Main(string[] args)
{
INetFwMgr mgr = (INetFwMgr)System.Activator.CreateInstance(
System.Type.GetTypeFromProgID("HNetCfg.FwMgr"));
INetFwProfile profile = mgr.LocalPolicy.CurrentProfile;
INetFwAuthorizedApplication app = (INetFwAuthorizedApplication)
System.Activator.CreateInstance(
System.Type.GetTypeFromProgID("HNetCfg.FwAuthorizedApplication"));
app.ProcessImageFileName = @"c:\windows\system32\notepad.exe";
app.Name = "LeNotepad";
app.Enabled = false;
profile.AuthorizedApplications.Add(app);
}
}
}
Configuration Pare-feu -
Recommandations
Réservée à l’administrateur
Demander l’aval de l’utilisateur avant de
modifier la configuration du pare-feu
programmatiquement
Adapter la configuration au contexte
(Internet, Réseau d’entreprise)
DCOM: Ce qui ne change pas
Tous les serveurs COM InProcess fonctionneront
de la même façon sur Windows XP SP2
Par défaut, tous les serveurs DCOM locaux
fonctionneront de la même façon sur Windows XP
SP2
Par défaut, tous les clients DCOM fonctionneront
de la même façon
Les événements ou call backs transforment un client en
serveur DCOM
DCOM: Ce qui change
Tous les appels DCOM inter machines doivent être
authentifiés
Le lancement et l’activation à distance sont
restreints par défaut aux seuls administrateurs
locaux
L’administrateur peut imposer des limites de
sécurité globales au poste.
Limitant ainsi les modifications au niveau de chaque
application (CoInitializeSecurity)
Modifiable via DCOMCNFG.EXE
Résumé Sécurité DCOM
Distinction entre:
Accès distant
Accès local
Distinction entre:
Lancement (création du processus serveur)
Activation (création d’une instance)
Le tout sous le contrôle total de l’administrateur et
configurable via DCOMCNFG
Amélioration de la sécurité RPC
Ouverture automatique des ports RPC pour
les services utilisant les comptes Local
System, Network Service ou Local Service
Sinon, utiliser les Applications Autorisées
Par défaut, toutes les connexions entrantes
doivent être authentifiées
Basic & Redirecteur WebDAV
WebDAV:
N’autorise plus l’authentification Basic
Car il ne permet pas d’utiliser un canal sécurisé (SSL)
Par défaut, Windows XP désactive l’authentification
Basic dans le redirecteur WebDAV
Controlé par:
HKLM\SYSTEM\CurrentControlSet\Services\WebClien
t\Parameters\UseBasicAuth (REG_DWORD)
Basic et WinInet
L’authentification Basic sur un canal non
sécurisé est désactivé par défaut:
Utilisation de SSL ( i.e. HTTPS)
Controlé par:
HKCU\SOFTWARE\Microsoft\Windows\CurrentV
ersion\Internet
Settings\DisableBasicOverClearChannel
(REG_DWORD)
Protection d’exécution (NX)
Requière une plateforme matérielle supportant le
No Execution
Le K8 d’AMD et l’Itanium d’Intel supportent NX
Peut être émulé sur les plateformes non NX
Permet de rendre beaucoup plus difficile
l’exploitation de Buffer Overruns
Basé sur la protection d’accès en exécution de la
mémoire
Principe de fonctionnement NX
Une exception
STATUS_ACCESS_VIOLATION est levée
lors d’une tentative d’exécution de données
LPVOID lpvBase = VirtualAlloc( NULL,
dwSize, // size of allocation
MEM_RESERVE, // allocate reserved pages
PAGE_READWRITE); // Read, Write
Désactivable
Internet Explorer
Fenêtre de gestion des modules
complémentaires
Activation/Désactivation/mise à jour
Module de type:
ActiveX
Browser Helper Object
Extension de barre d’outils
Détection des problèmes
lié à un module complémentaire
Affichage du module qui à causé l’erreur
Service de pièce attachée
Ce service protège le système contre les
pièces attachées malveillantes
Approche unifiée qui est utilisée par Outlook
Express, Outlook 2003 et MSN Messenger
Si vous développez une application qui
exécute ou sauve des pièces attachées, vous
devez utiliser ce service
Service de pièce attachée
Donne pour chaque pièce attachée un
facteur de risque
Basé sur l’extension de fichier, le content-type,
etc.…
Ce facteur de risque est mappé sur les zone
de Internet Explorer
L’interface COM IAttachmentExecute est le
point d’entrée pour ce service
Remplace la fonction AssocIsDangerous
Internet Explorer
Verrouillage de la zone poste de travail
Tous les fichiers locaux ouverts dans Internet Explorer
disposent d’une sécurité renforcée
Restreint l’utilisation de fichier HTML sur la zone « poste de
travail »
Aide à prévenir les attaques lorsqu’elles utilisent du code HTML
comme vecteur d’attaque
Les paramètres par défaut
URLACTION_ACTIVEX_RUN désactivé
URLACTION_SCRIPT_RUN désactivé
URLACTION_CROSS_DOMAIN_DATA prompt
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
URLACTION_BINARY_REHAVIORS_BLOCK désactivé
Internet Settings\Zones\0
Flags = 1
URLACTION_JAVA_PERMISSIONS désactivé
Implications
Toutes les applications utilisant des fichiers
HTML/Script/ActiveX,applets en local sont impactées
Solutions
Si vos pages locales utilisent du script ou des ActiveX, vous pouvez
insérer dans la page une balise de type
Enregistrer les fichiers sous forme d’archive web (mht)
Créer une application séparée et utiliser le contrôle Internet Explorer
Notes
N’impacte pas les applications utilisant le contrôle Internet Explorer
N’impacte pas les applications les zones « Intranet » ou « Internet »
Les fichiers HTA ne sont pas impactés
Le protocole res:// utilise le verrouillage de la zone « Internet »
Internet Explorer
Le bloqueur d’élément contextuel
Bloque les fenêtres de type pop-up non désirées
Paramétrable par zone
Fonctionnalités
Activé par défaut
Toutes les fenêtres de type pop-up sont bloquées dans la
zone Internet
Les sites de confiance (https) et les sites de la zone
« Intranet local » ne sont pas bloqués par défaut
N’impacte pas les applications utilisant le contrôle
Internet Explorer
Internet Explorer
Interface utilisateur
Outils/Options/Confidentialité
La fenêtre est bloquée
La fenêtre est affichée car elle est
dans la liste des sites à autoriser
La fonctionnalité est désactivée
Internet Explorer
Options avancées
Sites à autoriser – permet les pop-up pour ces sites
Bloque tous les pop-up automatiques, créés via des
évènements, window_onload(), timers …
Les liens ne sont pas bloqués par défaut
Lorsque les pop-up sont désactivés pour les liens, la
touche ATL+click sur un lien désactive la fonctionnalité
On peut activer cette fonctionnalité par
zones « Intranet local » et « Site de confiance »
Internet Explorer
Restriction sur l’affichage des fenêtres
Plus possible de désactiver la barre d’état via du
script
La méthode fullscreen est remplacée par un
affichage en maximisé
L’affichage de fenêtre via la fonction
window.createPopup
Ne peut apparaître que dans la zone parente
Impossible de couvrir la barre de titre, barre d’état
Implications
Affecte l’affichage des fenêtres pour les sites
Internet
Toutes applications Internet utilisant window.open(),
window.showModalDialog/showModelessDialog(),
window.navigateAndFind() et showHelp() dans des
évènements au chargement/déchargement de la page
N’impacte pas
les applications utilisant le contrôle Internet Explorer
La nouvelle interface INewWindowManager permet
d’implémenter sa propre gestion
des pop-up
Implications
Try/catch et gestion d’erreur
Popup Tester
function openWin()
{
try
{
window.open("http://www.msn.com","MSN")
}
catch (e)
{
window.alert("Popup window blocked " + e.number);
}
}
function handlePopupErrors()
{
window.alert("Error occurred");
return true;
}
function showPopup()
{
window.onerror = handlePopupErrors;
window.showHelp("http://www.msn.com","");
}
Internet Explorer
Le modèle objet
Nouvel événement au niveau de l’objet
WebBrowser : NewWindow3
Private Sub object_NewWindow3( _
ByRef ppDisp As Object, _
ByRef Cancel As Boolean, _
ByVal dwFlags As Long, _
ByVal bstrUrlContext As String, _
ByVal bstrParentUrl As String
L’interface INewWindowManager
EvaluateNewWindow
Références
MSDN librairie
http://msdn.microsoft.com/library/
Références Windows XP SP2
http://msdn.microsoft.com/security/productinfo/X
PSP2/default.aspx
http://msdn.microsoft.com/security/productinfo/X
PSP2/introduction.aspx
XP SP2 RC1 Fact Sheet
http://www.microsoft.com/presspass/newsroo
m/winxp/windowsxpspfs.asp
Application Compatibility Toolkit
Les Objectifs
Faciliter la migration vers Windows XP/SP2
en s'assurant de la compatibilité de vos
applications avec Windows XP / XP SP2
Fournir un système unifié pour tester et
référencer toutes les problématiques de
migration
Outils de test, d’atténuation, et de déploiement
Application Compatibility Toolkit
Modification du code de Windows XP
9x est moins « consistant » dans la gestion de la mémoire (heap)
Changement « Subtile » des api win32, SetForgroudWindows…
Les paramètres de la registry ont été modifiée
Changement des dossiers
Documents & Settings
My Documents
Internet Explorer
Verrouillage de la zone poste de travail, Affichage de nouveaux
dialogues lors du téléchargement de fichiers.
DCOM & RPC
Nouvelles permission lors du lancement ou l’activation d’objets.
l’accès à distance pour un utilisateur anonyme n’est plus permis
Windows Firewall
Les ports sont fermés par défaut
Protection d’exécution (NX)
Access Violations pour une application qui ne gère pas NX corectement
Phase d’évaluation
Agent pour :
Collector • Effectuer un inventaire des
applications
• Évaluer les problématiques de
DCOM migration
Vente Support
Il peut être configuré pour
Windows
Firewall remonter des informations
comme :
• Nom de département.
• Nom de l’utilisateur, nom de la HR
Serveurs
machine, ID… Environnent de production
IE
Distribué via
• SMS
• Log on scripts
L’outils « IE test »
Client Environnement de test
• Détecte les problème de
compatibilité avec Windows XP SP2
Phase d’évaluation
Collector Collector
Collector
Network
Network
Report Network
Share
Share
Collector
DCOM Collector Collector
DCOM
Viewer Share Windows
Windows
Firewall
Collector
(Analyzer) Firewall
Support
Vente
SQL
Server DCOM
WindowsCollector
Firewall
Client Serveurs
HR
Web Service Windows
Firewall
Collector
Serveurs
MSFT
Environnent de production
Online DB
Phase d’évaluation
Agent pour effectuer un inventaire des
applications
3 Outils pour tester la compatibilité des
application avec Windows XP SP2
Vérifie si une application emploie les fonctionnalités de
DCOM qui sont bloquées par le SP2
Vérifié si l’application est compatible avec le firewall
Détecte les applications Web qui ne serait pas compatible
avec les nouvelles options de sécurité de Windows XP
SP2
Un outils pour analyser et gérer les problème de
compatibilité
Phase d’atténuation
L’outil Solution Builder (fixpack.exe)
Création d’un patch unitaire
A Partir de la liste des applications ayant des problème de
compatibilité avec DCOM et le firewall
A partir des différents Fix Win32 à déployer
L’outils Compatibility Administrator
Création d’un patch afin d’exécuter l’application en mode
Windows 95, Windows 2000…
L’outils Internet Explorer Compatibility
Création d’un fichier .reg correspondant au options de
sécurité d’internet Explorer à modifier
Déploiement
Peut être réalisé via
SMS
Logon script
Références
ACT 4.0
http://www.microsoft.com/windows/appcompatibili
ty/act4.mspx
Newsgroup
microsoft.public.windows.app_compatibility
Update Impact Analyzer
Basé sur un moteur d’intersection développé par
Microsoft Research
Utilise les informations issues:
de la base de registre
des fichiers
des manifestes de mises à jours
des traces d’application métier
Génère un rapport d’aide à la décision concernant
les tests prioritaires
Questions?
RestrictRemoteClients
RPC_RESTRICT_REMOTE_CLIENT_NONE (0)
Configuration pré Windows XP SP2
RPC_RESTRICT_REMOTE_CLIENT_DEFAULT
(1)
Pas de connections anonymes (sauf si
RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH est
utilisé lors de l’enregistrement
RPC_RESTRICT_REMOTE_CLIENT_HIGH (2):
Idem 1 mais pas d’exceptions admises
Ne s’applique pas aux connections RPC via Tubes
nommés (ncacn_np)
EnableAuthEpResolution
Par défaut, RPC expose une interface
permettant de se connecter aux interfaces
enregistrées
EnableAuthEpResolution:
1: Pas de connections anonymes
0: Connections anonymes autorisées
DCOMPERM
Registre HKLM\SOFTWARE\Microsoft\Ole
DefaultLaunchRestriction
DefaultAccessRestriction
MachineLaunchRestriction
MachineAccessRestriction
Masque de droits
COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16