490 likes | 673 Views
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
E N D
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-feuModè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\WebClient\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\CurrentVersion\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èmeslié à 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 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0 Flags = 1 • 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 • URLACTION_BINARY_REHAVIORS_BLOCK désactivé • 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<!– save from url=(0022) http://www.url.com --> • 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 La fenêtre est bloquée La fenêtre est affichée car elle estdans la liste des sites à autoriser La fonctionnalité est désactivée • Interface utilisateur • Outils/Options/Confidentialité
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é parzones « 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 fonctionwindow.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 gestiondes pop-up
Implications • Try/catch et gestion d’erreur <!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>Popup Tester</title></HEAD> <body> <formid="Form1"method="post"runat="server"> <P><INPUTtype="button"value="Open"onclick="openWin()"ID="Button1"NAME="Button1"></P> <P><INPUTtype="button"value="ShowHelp"onclick="showPopup()"ID="Button2"NAME="Button2"></P> </form> </body> <scriptlanguage="javascript"> 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",""); } </script> </HTML>
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 INewWindowManagerEvaluateNewWindow
Références • MSDN librairie • http://msdn.microsoft.com/library/ • Références Windows XP SP2 • http://msdn.microsoft.com/security/productinfo/XPSP2/default.aspx • http://msdn.microsoft.com/security/productinfo/XPSP2/introduction.aspx • XP SP2 RC1 Fact Sheet • http://www.microsoft.com/presspass/newsroom/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 : • Effectuer un inventaire des applications • Évaluer les problématiques de migration Collector Collector Collector Collector Collector Collector Collector Collector Collector DCOM DCOM DCOM Support Vente • Il peut être configuré pour • remonter des informations • comme : • Nom de département. • Nom de l’utilisateur, nom de la machine, ID… Windows Firewall Windows Firewall Windows Firewall HR Serveurs Environnent de production IE IE • Distribué via • SMS • Log on scripts • L’outils « IE test » • Détecte les problème decompatibilité avec Windows XP SP2 Client Environnement de test
Phase d’évaluation Network Share Network Share Collector Collector Collector Network Share Report Viewer (Analyzer) Collector DCOM Collector Collector DCOM Windows Firewall Windows Firewall Collector Support Vente SQL Server DCOM Collector Windows Firewall Client Serveurs HR Environnent de production Web Service Windows Firewall Collector MSFT Online DB Serveurs
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/appcompatibility/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
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