2010-08-09 6 views
1

Combien de temps environ faudrait-il pour développer un correctif noyau ou un pilote pour le noyau/la série de noyaux Windows NT, qui introduirait de nouvelles fonctionnalités ou remplacerait une fonctionnalité existante? Par exemple, ajouter un algorithme de chiffrement différent ou implémenter une sorte de nouveau modèle de sécurité. Quels sont les avantages/désavantages entre l'écriture d'un correctif de noyau et un pilote?Développer un correctif ou un pilote de noyau pour Windows?

Un pilote peut-il théoriquement être contourné, contrairement à un correctif de noyau?

Je comprends le noyau Windows est propriétaire et il est difficile d'écrire un patch noyau pour, mais c'est exactement ce que plusieurs sociétés, notamment les sociétés AV faire, sans la coopération de Microsoft, il est donc possible ...

+0

Que voulez-vous réaliser? Un correctif du noyau n'est pas le moyen d'aller dans les fenêtres. Sous Windows, vous installez des hooks dans le noyau, ou chargez les pilotes sur une API statique (documentée), qui ne changera pas dans un proche avenir. – Christopher

Répondre

7

Un autre algorithme de chiffrement

Cela se fait par l'extension du fournisseur de chiffrement. Il y a un cadre où vous pouvez le faire.

nouveau modèle de sécurité

Quel nouveau modèle de sécurité?

  • Si vous souhaitez un contrôle plus spécifique sur une application, vous créez un sandbox.
  • Si vous souhaitez un contrôle plus spécifique sur un système d'exploitation, placez le système d'exploitation dans une machine virtuelle.
  • Si vous avez quelque chose de complètement nouveau, vous devez écrire un nouveau noyau. La bonne gestion est vraiment un sujet vaste, où vous devez toucher chaque point d'entrée pour que votre solution fonctionne.

un pilote peut être théoriquement contournée, d'une manière un patch du noyau ne peut pas?

Non et oui ... Comment pensez-vous qu'un pilote modifie un modèle de sécurité?

mais c'est exactement ce que font plusieurs entreprises, notamment les sociétés audiovisuelles.

Non, ils ne le font pas. Ils ont un pilote de noyau, qui se connecte aux bonnes fonctions. La plupart des logiciels AV raccordent les API ReadFile/WriteFile/CreateFile, dans lesquelles ils vérifient les 'séquences de codes malveillants'. Ce n'est pas un modèle de sécurité. C'est juste un contrôle binaire 'Peut accéder/ne peut pas accéder'.

+0

+1 pour la plupart des logiciels AV raccorde les API ReadFile/WriteFile/CreateFile. – fardjad

+0

Votre réponse contient beaucoup d'informations incorrectes et ne répond pas à la question posée. Lisez sur KPP, et pourquoi c'était un tel problème. –

+0

Nettoyé les «mauvais» bits. Mais je ne vois pas, que l'information est si mauvaise quand vous voyez la question. Pour répéter la chose à emporter «Vous ne pouvez pas facilement ajouter un nouveau modèle de sécurité». – Christopher

1

la manière correcte de modifier le fonctionnement du noyau est d'écrire un pilote de filtre qui modifie ou snoops les informations transférées entre les pilotes.

qui est le plus proche d'un patch légitime

en ce qui concerne patcher les tables de fonction du noyau ... vous ne devriez pas faire cela parce que: il ne fonctionnera pas dans edtions x64. comme il ne fonctionnera pas en édition x64, vous ne pouvez pas certifier WLK votre pilote, même pour 32 bits.et si vous ne pouvez pas certifier votre pilote, vous finirez par avoir un pilote non certifié qui est fortement déconseillé (par exemple, vous ne pouvez pas préinstaller sur un ordinateur et ensuite certifier la machine).

0

En général, il serait possible d'étendre le nombre de services dans le SSDT, mais il est très salissant et spécifiquement depuis Vista plus proche que jamais impossible. Je ne le dis pas est impossible, mais il faut un pour sauter à travers plusieurs cerceaux (à la fois;)).

Sinon, je suis avec DriverStack. La méthode appropriée consiste soit à écrire un pilote de filtre pour modifier les services existants, soit simplement à écrire un pilote et à créer un objet CDO (objet de contrôle) accessible depuis UM (ou KM) et pouvant recevoir des IRP pour fournir les services conçu pour fournir ...

Les pilotes eux-mêmes sont le mécanisme pour étendre le noyau. Et contrairement à plusieurs plates-formes FLOSS, l'interface vers le noyau de Windows est assez stable: o)

Note complémentaire: si la société AV n'est pas trop audacieuse, elle aura recours à un pilote de filtre. Oui, cela signifie également que certaines fonctionnalités sont manipulées, mais l'instruction que AVs crochet ces API (Win32, c'est-à-dire UM) est ... bien, mauvais. Malheureusement, il n'est pas possible pour moi de décliner la réponse à cette erreur factuelle (parce que je manque de «réputation» ici). Le filtrage aurait lieu dans le noyau de toute façon. Habituellement au moyen d'un pilote de filtre FS ou pour certaines fonctionnalités avec des crochets SSDT. Le SSDT contient les pointeurs de fonction à la fonction sous-jacente dans le noyau, de sorte que depuis UM vous appelez un appel système par son index ("numéro d'appel système") un peu comme sur les plateformes unixoides.

Questions connexes