400 likes | 564 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
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 • 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 • 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
Impact Outils de Développement • Visual Studio 2005 (Whidbey) sera pleinement compatible avec Windows XP SP2 • Visual Studio 2002 et 2003 auront les services packs requis par le SP2 de XP • Impact prévu sur les outils • Framework .Net (1.0 et 1.1) (NX) • Debogage à distance (Firewall) • Debogage SQL (DCOM) • VS Analyzer (Firewall) • Visual Source Safe (Firewall)
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 • 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
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 Internet Explorer • 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
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