Une architecture complète de sécurité mieux est réalisée par une approche de plus en plus granulaire qui commence d'un point de vue externe et progresse par les détails de l'exécution. Les composants suivants organisent l'information requise pour la création de l'architecture de la sécurité d'une application :
· Évaluation des risques et réponse
· Conditions de sécurité
· Sécurité de phase de conception
· Sécurité de phase d'exécution
La évaluation des risques est un processus important dans le développement de n'importe quel produit ou application. La création d'une application commence par l'étincelle d'une idée. Il est probable que cette idée d'application résolve un problème, ou fournisse la nouvelle utilité ou innovation qui ont été précédemment faites inefficacement ou inefficacement, ou non fait du tout, par des applications existantes. Tandis que l'analyse est faite pour déterminer les imperfections en fonction des applications plus anciennes, des considérations de sécurité sont souvent oubliées. La tendance de se concentrer strictement sur la fonctionnalité que une application fournit et les avantages au dilemme explicite elle résout des augmentations le potentiel pour le risque de sécurité. Il est extrêmement important de résoudre les problèmes de sécurité d'une application, aussi bien que les problèmes fonctionnels.
Par conséquent, la première étape dans la création de l'architecture de la sécurité d'une application doit documenter les risques inhérents aux applications existantes qui doivent être remplacées par la nouvelle création. Les réalisateurs devraient également noter des risques liés à une application avec laquelle le nouveau programme agira l'un sur l'autre. La nouvelle application fait face souvent à tous les titres qui visage semblable d'applications, aussi bien que les nouvelles issues qui résultent de l'innovation.
L'évaluation des risques de sécurité d'une application exige de la diligence de la part des concepteurs d'applications ; si les concepteurs ont n'importe quel niveau d'expérience de sécurité, l'effort d'évaluer des risques devient rapidement plus petit. La recherche la plus fondamentale qui identifie les titres avec des applications relatives implique une recherche par les archives des issues fournisseur-spécifiques de soutien. Les emplacements de Web de ces organismes ont généralement des secteurs spéciaux et des forum qui annoncent la disponibilité des pièces rapportées aux problèmes de sécurité dans leurs applications. Cette recherche donne un sens des issues communes faites face par la nouvelle application et la fonctionnalité qu'elle fournit. Davantage de recherche dans les forum sécurité-spécifiques fournit un détail plus technique concernant les natures des problèmes, aussi bien qu'un plus large sens des titres liés à un domaine d'application spécifique.
Car des vulnérabilités dans les secteurs techniques convenables sont recherchées, il est important de les documenter. En créant une liste de risques de sécurité et d'aides de vulnérabilités établissez une place pour l'application en cours de développement, en déterminant quelles issues sont susceptibles d'affecter le nouveau développement.
Les vulnérabilités connues d'une application existante peuvent fournir des conseils vers la présence ou le manque d'une architecture de sécurité dans sa conception. Les vulnérabilités peuvent souvent être classées par catégorie comme pailles d'exécution, pailles de conception, et pailles fonctionnelles. Les pailles d'exécution se relient au code réel employé pour faire la demande ; elles fournissent seulement un peu d'perspicacité à l'architecture de sécurité. La conception et les pailles fonctionnelles reflètent la pensée et l'effort mis dans la conception de l'application. Une application avec une architecture de sécurité accentue et renforce la fonctionnalité en faisant à conscience de sécurité par partie inhérente d'elle. Les imperfections dans la conception et la fonction laissent des trous dans la perfection de la fonctionnalité, créant souvent des risques de sécurité.
Les conceptions fortes identifient la fonctionnalité fournie, aussi bien que cela qui n'est pas fournie. Le niveau le plus fondamental de la fonctionnalité possible définit quelle application . Ceci est fait sous une vue complètement positive parce qu'il décrit seulement ce qu'une application fait dans les circonstances les plus primitives. Il suppose naïvement que le monde est parfait et que rien mauvaise volonté ne se produisent jamais quand l'application fonctionne. Ceci signifie que toutes les entrées seront complètement compréhensibles et adaptées l'entrée prévue "moule"—par exemple, "tous les usernames sera des valeurs alphanumériques d'une longueur déterminée et aucun utilisateur pas , accidentellement ou autrement, écrire un caractère qui n'est pas un nombre ou lettre." Cette vue suppose également que tous les raccordements de réseau seraient des clients connus, et que ces clients communiqueraient tout avec le protocole approprié—par exemple, "tous les clients se reliant à l'application adhéreront à l'ordre connu de transmission de messages prié pour exécuter la communication définie." En conclusion, elle suppose que toute l'interaction avec le logiciel d'exploitation se produit dans un environnement stérile que l'application prévoit—par exemple, "chaque dossier qui est modifié existe toujours et est correctement composé." Évidemment, ce n'est pas nécessairement le cas et ne peut pas être prévu. Malheureusement, beaucoup d'applications le font rarement au delà de ce niveau de conception. Une conception complète prend en compte les imperfections dans le vrai monde. Une conception de cette nature identifie cela qui établit des règles et les arrangements fournit la fiabilité.
Vu les scénarios positifs et négatifs pour une application l'opération est essentielle en créant une application. La vue négative définit la réaction à l'entrée inconnue, la syntaxe et les communications inadmissibles, et les conditions anormales qui pourraient se produire. L'application doit répondre correctement aux événements qui ne sont pas prévus ou ne sont pas définis. La table ci-dessous compare une conception de base contre une conception plus complète et les effets chacun a sur l'entrée d'utilisateur, l'accès de dossier, et les raccordements de client.
Effets de de base contre une conception plus complète de sécurité sur des fonctions d'application |
||
| Fonction Effectuée D'Application | Avec La Conception De base | Avec La Conception Complète |
| Entrée D'Utilisateur | L'application reçoit l'entrée inadmissible et se brise parce que la valeur non-alphanumérique est mal comprise. | L'application examine l'entrée pour des valeurs inadmissibles et répond avec un message d'erreur, indiquant que une valeur non-alphanumérique a été trouvée. |
| Accès De Dossier | L'application compte trouver un dossier de base de données dans l'accès de format, prêt et d'attente approprié. Au lieu de cela, un dossier malade-composé ou un lien à un autre dossier par ce nom est ouvert, les données deviennent corrompues, et les accidents d'application. | L'application vérifie l'existence d'un dossier appelé qui est du type approprié, aussi bien que le format interne du dossier. |
| Raccordements De Client | L'application s'attend à ce qu'un client se relie au premier message étant "bonjour." Si un client relie et transmet n'importe quelle autre valeur, l'application attend indéfiniment, rejetant n'importe quel autre client de se relier, et ne fonctionne plus. | L'application valide la transmission et répond avec un d'avertissement indiquant que le message reçu était une valeur inattendue. |
Le degré auquel les concepteurs et les lotisseurs formulent des réponses aux résultats négatifs joue un facteur significatif dans la fiabilité et la sécurité d'une application. Tandis qu'il est souvent difficile et infaisable pour manipuler explicitement chaque exception connue, des règles générales peuvent facilement être créées pour manipuler des événements peu désirés. Ces trois exemples présentent les scénarios extrêmement simples qui pourraient sembler peu réalistes, mais tous se sont produits plus d'une fois dans beaucoup d'applications.
Cette discussion serait inachevée sans mention des tiers organismes, si film publicitaire ou public domain, qui fournissent le logiciel de sécurité, les kits de développement, et le matériel pour augmenter la sécurité des applications. Plusieurs de ces organismes commerciaux présentent leurs produits comme fournir "a garanti" la sécurité.
Cependant, il n'y a aucun produit de remplacement de matériel ou de logiciel pour une conception de bien-pensée-dehors. Souvent, des directeurs, les concepteurs, et les lotisseurs sont menés à croire que l'addition de quelques composants complexes et chers de sécurité offerts par une organisation commerciale de sécurité fournit la sécurité "garantie". C'est simplement faux ; la sécurité "garantie" est une erreur. Ce concept attaque sur les victimes qui comprennent la sécurité comme dispositif ou composant qui peuvent être branchés pour la satisfaction immédiate de sécurité.
Peu d'applications sont exemptes de composants de sécurité, mais il n'est pas suffisant d'incorporer simplement les composants le plus généralement connus afin de rendre une conception ou une exécution bloquée. L'inclusion des composants de sécurité sans considération pour leur usage n'augmente pas la sécurité d'une application et peut, en fait, la gêner. Les produits ont offert par des sociétés de valeurs mobilières sont très valables et utiles une fois utilisés correctement, mais ils ne peuvent pas garantir la sécurité d'une application. L'inclusion de tiers technologies de sécurité devrait être examinée pour l'utilité et la valeur, donné les conditions de sécurité qui sont établies pour l'application.
Online: 474 users browsing the articles directory
![]() . |