Conditions De Sécurité De Logiciel


  Share  
|

En même temps qu'identifier des risques relatifs de sécurité connus d'une application ou d'un genre spécifique d'application, les réalisateurs doivent évaluer les conditions de sécurité pour leur application. Cette analyse devrait arriver à une mesure équilibrée du niveau de la sécurité exigé pour une application. Elle ne doit pas considérer les extrémités du spectre de sécurité. Est indiqué l'arrangement que la sécurité vraie et garantie est inexistante, se protégeant contre des risques connus et réduisant au minimum le nombre d'attaques réussies et de leurs effets généralement un niveau acceptable de sécurité. Ceux impliqués du cycle de développement de l'application devraient déterminer leurs propres niveau "acceptable" de sécurité, en examinant les risques connus, les buts de l'application, et les méthodes employées pour mettre en application le niveau désiré de sécurité.

Pour arriver aux conditions de sécurité, les directeurs et les lotisseurs peuvent le trouver utile pour se concentrer sur les secteurs suivants et généralement connus de risque :

· Authentification d'utilisateur et contrôle d'accès

· Stockage de données d'information confidentielle

· Sécurité dans des communications externes de réseau

· Sécurité des points d'entrée pour les applications externes et le logiciel d'exploitation

Ces quatre de secteurs généraux les concepteurs d'applications et les lotisseurs peuvent identifier un ensemble minimal de dispositifs importants pour analyser. Selon la fonctionnalité de l'application, quelques secteurs de risque sont plus convenables que d'autres.

Pour fixer ou pour ne pas fixer

L'addition de la sécurité à une application affecte une application de plusieurs manières. Elle devient immédiatement plus complexe, pendant que le chemin de code prend un nouveau tour pour adapter aux méthodes de sécurité. L'exécution d'une application pourrait être gênée, particulièrement avec l'addition des opérations de chiffrage. Ces opérations sont dues intensif d'unité centrale de traitement aux algorithmes complexes impliqués. L'efficacité d'une application peut également être sacrifiée si la sécurité est appliquée dans les secteurs où elle fournit peu d'avantages. Ceci peut se produire si des méthodes de sécurité sont aveuglément appliquées à tous les composants d'une application sans pensée quant à leurs conditions. Les sections suivantes fournissent un point de départ raisonnable pour déterminer un niveau de base des conditions de sécurité.

Bout

Il est dans de bons habitudes de considérer la sécurité exigée pour chaque module ou composant dans une application. Résistez au recommander d'appliquer les méthodes couvrantes de sécurité à travers les modules multiples ou les composants. Au lieu de cela, déterminez le niveau le plus approprié de la sécurité pour chacun.

L'évaluation des conditions de contrôle d'accès d'authentification et

L'authentification d'utilisateur est souvent manipulée par le logiciel d'exploitation sur lequel l'application fonctionne, mais plusieurs classes d'application pourraient devoir traiter l'authentification seule. Les applications incluses, les applications qui fonctionnent indépendamment du logiciel d'exploitation, et les applications réparties de Web doivent souvent adapter à un certain niveau de l'authentification d'utilisateur et du contrôle d'accès. Les exemples communs des applications qui exigent ces méthodes de sécurité sont des applications de commerce d'Internet (e-commerce), où les utilisateurs font des achats par l'intermédiaire d'un emplacement de Web, ou accès aux bases de données de client. Dans les deux cas, la possibilité pour beaucoup de différents utilisateurs ou les groupes d'utilisateurs pour employer le système exige la commande rigoureuse des données accessibles. Les méthodes du besoin d'applications pour permettre aux utilisateurs séparés d'accéder aux systèmes par l'intermédiaire d'une méthode d'ouverture ; ils ont besoin également des restrictions concernant les différentes données financières users'respective.

Pour déterminer les conditions de contrôle d'accès d'authentification et, les concepteurs devraient examiner les interactions dans l'application et avec le monde qui l'entoure. Ceci inclut les méthodes par lesquelles les utilisateurs accèdent à l'application—se reposant directement sur une borne ou accédantes du réseau sont deux méthodes qui pourraient exiger différents arrangements d'authentification. Une application qui est consultée seulement tout en se reposant au dessus de bureau peut efficacement être fixée par l'intermédiaire des méthodes d'authentification de logiciel d'exploitation sur lequel il fonctionne. Les applications de réseau qui sont consultées par les utilisateurs multiples simultanément, ou par quelles données d'accès d'utilisateurs des bases de données communes, fournissent l'impulsion forte pour le contrôle d'accès et l'authentification. Le niveau du granularity et la flexibilité des possibilités de contrôle d'accès et d'authentification ont fourni par l'aide de logiciel d'exploitation déterminent si des méthodes de propriété industrielle sont développées. Des applications autonomes ou incluses sont souvent développées à partir de zéro et exigent donc leurs propres méthodes spécialisées.

Conditions pour le stockage de données

Le stockage de données reflète la méthode employée pour stocker l'information privée et sensible. Ceci inclut l'utilisation correcte des méthodes de protection de dossier de logiciel d'exploitation fondamental (telles que des Re stricted des permissions de dossier) et des méthodes plus fortes de protéger différents éléments d'informations (tels que le chiffrage). Dans beaucoup de cas, l'utilisation des méthodes de permission de logiciel d'exploitation est suffisante pour fournir le degré exigé de sécurité. Le chiffrage peut être employé pour protéger des données extrêmement sensibles, telles que l'information de qualifications d'utilisateur et de degré de solvabilité.

Le niveau auquel l'application doit stocker des données, et la nature de cela commande de données les conditions pour la sécurité de stockage de données. Le stockage d'information sensible est souvent le facteur de déclenchement en déterminant si le chiffrage élevé de sécurité est nécessaire. Qualifications d'utilisateur, telles que des mots de passe, adresses, numéros de téléphone, et données financières, devraient être considérés sensibles et être également traité avec la sécurité élevée. L'information de configuration peut souvent être fixée suffisamment avec des méthodes standard de permission de dossier.

En formant les conditions pour le stockage de données, des concepteurs pourraient être tentés pour normaliser à un niveau de sécurité. Par exemple, si un mot de passe est stocké dans un dossier de configuration avec l'autre information non sensible, la tentation pourrait être forte pour employer le chiffrage sur le dossier entier comme méthode couvrante de sécurité. Pour déterminer des conditions de stockage de données, examinez les besoins de tous les composants impliqués. Dans cet exemple, l'application du chiffrage aux données nonsensitive pourrait être considérée en raison inefficace des dépenses informatiques des opérations de chiffrage, aussi bien que le manque de commande granulaire de l'autre information dans le dossier. Un élément simple ne peut pas être consulté facilement si le dossier entier est chiffré. La complexité impliquée pour accéder à d'autres éléments est alors augmentée considérablement.

Réseau et conditions de sécurité de point d'entrée

Les applications communiquent aux utilisateurs, au logiciel d'exploitation, et à d'autres applications par des points d'entrée. Celles-ci pourraient être sur la même machine que l'application ou à travers un réseau ; souvent, elles sont sur tous les deux. Les méthodes pour fournir des points d'entrée à l'application et à l'appui pour la communication de réseau sont souvent une et identiques ; donc, elles sont groupées ensemble ici.

La sécurité des communications de réseau mieux est adressée en examinant la teneur des messages étant envoyés. Les applications qui utilisent la communication de réseau pour la transmission de messages informationnelle ou passer des données statiques ne pourraient exiger aucune fiabilité plus forte que le protocole soutient. Encore, comme dans le cas du commerce d'Internet, une application qui envoie et reçoit l'information sensible d'utilisateur les garanties probables l'addition d'une méthode plus élevée de sécurité. Les points d'entrée déterminent également des conditions de sécurité pour les applications qui communiquent dans un environnement géré en réseau.

Les points d'entrée à une application exigent un niveau élevé d'analyse parce qu'ils entourent et fournissent la fonctionnalité de communication de réseau. D'autres agissent l'un sur l'autre également avec l'application par les points d'entrée. Ces secteurs fonctionnels peuvent être protégés par l'intermédiaire d'une combinaison des méthodes disponibles de logiciel d'exploitation et des arrangements définis de contrôle d'accès et d'authentification utilisés dans l'application. L'analyse des interactions qu'une application a avec le monde extérieur permet aux concepteurs de déterminer le niveau le plus approprié de la sécurité requis. Ces interactions et points d'entrée suivants sont classés par catégorie As

· Interaction de réseau

· Interaction avec d'autres applications

· Interaction avec son logiciel d'exploitation respectif

Ces catégories sont des secteurs fonctionnels bien connus, et les concepteurs savent probablement déjà si leur application agit l'un sur l'autre d'un quelconque de ces façons. La prochaine étape est de considérer la sécurité de chaque secteur.

Réseau, application, et interactions de système

La popularité de l'Internet provoque beaucoup de nouvelles applications qui agissent l'un sur l'autre avec d'autres composants dans les systèmes locaux et avec les systèmes à distance. Les applications qui fonctionnent indépendamment d'autres applications et agissent l'un sur l'autre seulement avec elles-mêmes évidemment n'exigent pas l'analyse de risque de gestion de réseau.

L'interaction de réseau peut être présente à plusieurs niveaux. Une application peut être complètement serveur de client–orienté, parce que utilisation sur les systèmes à distance écartés à travers l'Internet. Le besoin de sécurité dans ces applications devient considérablement plus complexe qu'il est dans des applications autonomes.

Plusieurs dépendances devraient être discernées. Le niveau auquel les réalisateurs souhaitent fournir des mécanismes de sécurité dans l'application devrait être considéré. Les concepteurs pourraient décider de ne fournir aucun mécanisme interne de sécurité. La sécurité de l'application gérée en réseau se fonde alors sur la sécurité des réseaux sur lesquels elle fonctionne et communique ; le topol de réseau ogy et le mur à l'épreuve du feu déterminent le niveau maximum de la sécurité qu'une application peut éprouver. Le concepteur pourrait choisir d'éviter des dépendances et de fournir le degré le plus élevé de sécurité possible dans l'application. Ce sont les deux extrémités que—la plupart des applications tombent vers le milieu.

Les applications peuvent également employer des équipements de réseau pour la communication localisée qui n'est pas destinée pour dépasser les confins du système sur lequel il fonctionne. La considération devrait être donnée à la nature de cette communication afin de déterminer si l'exécution crée le risque inutile.

Le besoin d'interaction entre les applications ou avec le logiciel d'exploitation n'implique pas une condition pour la communication de réseau. Les concepteurs devraient étudier les méthodes d'exécution qui fournissent la fonctionnalité exigée. Les applications emploient souvent des méthodes douille-basées de communication pour fournir ces points d'entrée parce qu'elles rapidement et facilement sont mises en application. L'utilisation des douilles peut fournir plus de fonctionnalité qu'est nécessaire, cependant. Les applications qui doivent communiquer seulement avec d'autres applications sur le système local ou avec leurs propres logiciels d'exploitation ont beaucoup de méthodes de communication à leur disposition, telle que des douilles d'non-Internet et des mécanismes d'IPC.

Généralement, les systèmes d'UNIX emploient des communications de douille en raison de leur facilité d'utilisation et pléthore de documentation. UNIX soutient plusieurs saveurs de communication douille-basée, dont deux sont la douille d'IP et des douilles du domaine populaires d'UNIX.

Les douilles d'IP, comme nom implique, emploie le protocole d'IP pour la communication, et soutient la communication de réseau à distance, qui laisse des processus locaux et à distance communiquer avec l'application. Beaucoup d'applications qui communiquent seulement avec des processus sur un système local et qui n'exigent pas des douilles d'IP d'utilisation de possibilités de communication de réseau comme interface standard. Les douilles d'IP ne sont pas idéales dans cette situation parce qu'elles permettent d'accéder automatiquement aux clients locaux et à distance.

Les douilles de domaine emploient un protocole interne d'UNIX pour la communication et ne soutiennent pas la communication de réseau ; elles fournissent une voie de transmissions connectée. Les douilles de domaine ont leur part des risques si utilisées incorrectement. Les douilles de domaine d'UNIX soutiennent le dépassement des descripteurs de dossier aussi bien que des données informationnelles. Ceci signifie que des indicateurs ou les poignées à d'autres parties du système peuvent être passés d'une application à l'autre. Cette fonctionnalité est disponible seulement dans des douilles de domaine d'UNIX. Si ces possibilités ne sont pas désirées ou ne sont pas justifiées, la déviation de la communication douille-basée à un autre mécanisme d'IPC pourrait être un meilleur choix.

Vu que le genre d'information envoyé à et des aides d'application définissent les conditions pour sa méthode de communication. Les concepteurs devraient évaluer les possibilités d'interaction de l'application avant d'incorporer une fonction standard. Dans cet exemple, l'application à l'aide des douilles d'IP est en danger parce qu'elle permet aux systèmes à distance de se relier à l'application quand ils ne devraient pas être permis. Une meilleure conception documente la condition pour l'interaction avec seulement des applications locales. Cette condition complète mène le lotisseur à employer quelque chose autre que des douilles d'IP.

Interactions De Logiciel d'exploitation

L'interaction avec le logiciel d'exploitation crée souvent un autre niveau des titres. Beaucoup de niveaux d'interaction peuvent se produire avec une interaction de réseau—de logiciel d'exploitation, nication d'interprocessus de Commu, et la manipulation des dossiers ont été déjà mentionnées. Deux autres types d'interaction exigent également l'attention : L'exécution des programmes externes et de l'utilisation du système et d'autres appels extérieurement définis sont des sources communes d'exploitation. Des questions importantes telles que des permissions, l'authentification, le contrôle d'accès, et la validation entrée devraient être considérées en même temps que des interactions de logiciel d'exploitation.

Les appels de système et les applications externes présentent un degré élevé de risque une fois utilisés incorrectement en raison de leurs natures. Ces fonctions existent souvent dans les bibliothèques qui sont employées par beaucoup d'applications simultanément et qui fournissent souvent l'accès direct aux composants et aux ressources de logiciel d'exploitation. L'exploitation d'une application simple par ces fonctions peut affecter plusieurs applications et le système.

Les appels de système permettent d'accéder à beaucoup de fonctionnalités d'usage universel et système-spécifiques. Ils permettent à une application d'agir l'un sur l'autre avec les composants de matériel spécifiques aussi bien que la fonctionnalité de grain-niveau. La sûreté du logiciel d'exploitation et des composants doit être considérée en utilisant le système appelle. Si une application attache ensemble des données d'utilisateur ou de réseau avec le logiciel d'exploitation par l'intermédiaire des appels de système, les concepteurs doivent réduire au minimum l'exposition aux données dangereuses, inattendues, et inexactes.

L'exécution des applications externes est une autre interaction commune et sans garantie. Les lotisseurs conçoivent souvent une application pour inviter d'autres applications par de diverses méthodes. Il y a des raisons eral de sev que un réalisateur pourrait vouloir faire ceci, comme pour différencier entre les fonctions ou pour établir le contrôle de l'environnement. Appeler d'autres applications permet également à des lotisseurs d'employer la fonctionnalité existante et d'expédier l'exécution de l'application.

Il y a un danger inhérent en appelant un autre programme en dedans d'une application que—le programme externe peut rarement être fait confiance. L'application existe dans un environnement dynamique où il est possible de modifier ou remplacer n'importe quel programme. Le problème se situe selon les méthodes employées pour appeler l'application. les systèmes UNIX-basés soutiennent souvent les fonctions appelées system() et l'exec(), qui passent les paramètres fournis comme corde à l'exécution de la coquille et du sous-processus standard d'UNIX, respectivement. L'appel de system() revient au programme d'appel si complet, mais l'exec() termine le programme courant et le remplace avec le programme appelé. Les systèmes basés par Windows ont l'appel d'exec() qui permet l'exécution d'autres programmes. À la différence d'UNIX, la version de Windows de l'exec() exécute le programme indiqué dans un sous-processus, et la fonction appelante ne se termine pas. Sans validation d'entrée, les attaquants peuvent mettre des métacaractères de coquille dans le jet d'entrée, forçant la coquille pour courir probablement des commandes et des paramètres nocifs. L'utilisation de ces fonctions est généralement froncée les sourcils au moment, et l'effort devrait être fait pour éviter leur utilisation parce qu'ils permettent l'exécution de untrusted et des applications non contrôlées. Alternativement, les concepteurs peuvent incorporer la fonctionnalité priée directement à une application. L'utilisation librement de disponible, logiciel d'ouvrir-source diminue considérablement l'effort requis pour faire ainsi.

Beaucoup de logiciels d'exploitation permettent également à la fonctionnalité de fonctionner à différents niveaux de privilège. UNIX a ses privilèges d'"racine", Windows a des privilèges d'"administrateur" et d'"SYSTÈME". Ces comptes spéciaux peuvent exécuter administratif charge et fait faire plus d'interaction avec le logiciel d'exploitation et ses services que d'autres comptes. Des programmes peuvent être écrits pour élever des niveaux de privilège quand la fonctionnalité spécialisée est nécessaire. Une application et le logiciel d'exploitation sur lesquels elle fonctionne peuvent être compromis si les privilèges ne sont pas soigneusement commandés.

Le modèle de moindre privilège suggère qu'une application devrait fonctionner avec l'ensemble minimum de privilèges requis pour exécuter la plupart des fonctions. On devrait isoler la fonctionnalité qui exige des privilèges plus élevés dans son propre module, cependant qui est défini—en tant qu'un processus, une classe, une application, ou même système différent. Même puis, cet ensemble de fonctionnalité devrait également fonctionner au moindre niveau privilégié jusqu'à ce que ces privilèges élevés soient exigés. À ce moment-là, des privilèges plus élevés devraient être obtenus et, sur l'accomplissement de la fonctionnalité, des privilèges devraient être retournés au niveau minimum.

Note

Les métacaractères sont des caractères qui prennent la signification spéciale dans un contexte donné. Par exemple, dans la coquille standard d'UNIX, le point-virgule (;) est un séparateur de commande, c.-à-d., beaucoup de commandes peut être mis sur une ligne simple quand un point-virgule est entre eux. La pipe (|) le caractère envoie le rendement de borne à celui qui suive la pipe, permettant au rendement d'un programme d'être introduit dans des autres.

Conclusion

Quelques créateurs d'application choisissent d'oublier ou ignorer la sécurité dans leurs applications et de se mettre à la pitié du réseau du client ou le logiciel d'exploitation et ses dispositifs de sécurité. En utilisant ce modèle couvrant de sécurité évite la responsabilité de fournir fixent des applications au public. La philosophie de sécurité prétend une idéologie forte et complète de sécurité qui n'assume rien au sujet de la sécurité des composants externes à l'application. Une application devrait toujours être aussi bloquée qu'elle peut être en ce qui concerne elle-même et les composants externes avec laquelle elle agit l'un sur l'autre. Le niveau de suivre-à travers est laissé à la discrétion du concepteur ou du lotisseur, cependant

c'est un article supplémentaire par Tamas Querolin


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions