ソフトウェアのセキュリティ要件


  Share  
|

併用して識別する既知のセキュリティリスクに関連する特定のアプリケーションやアプリケーションのジャンル、開発者のためのセキュリティ要件を評価する必要があり彼らの申請をします。 この分析に到着するべきは、バランスの取れた測定するために必要なレベルのセキュリティアプリケーションです。 それをじっくり考えていません極端なスペクトルの安全保障します。 与えられたの理解を保証しますが、本当のセキュリティは存在しないと、既知のリスクや保護に反対の数を最小限に抑えることに成功して攻撃とその効果は通常のセキュリティレベルを許容します。 これらの関係を持ってなければ、アプリケーションの開発サイクルを決定する独自の"容認"のセキュリティレベルでは、既知のリスクを検討し、目標のアプリケーションでは、メソッドを使用すると、任意のセキュリティレベルを実装しています。

セキュリティ要件に到着する、マネージャや開発者を見つけることができ便利なことに専念し、次のは、よく知らリスク分野:

スポンジユーザー認証とアクセス制御

スポンジ機密情報のデータストレージ

スポンジの安全保障外部ネットワーク通信

スポンジエントリポイントのセキュリティを外部のアプリケーションやオペレーティングシステム

これら4つの分野から総合デザイナーやアプリケーションの開発者を識別することができ最小限のセットの重要な機能を分析します。 の機能は、アプリケーションに応じて、いくつかの分野では、より適切なリスクもある。

を確保するかどうかを確保する

セキュリティをアプリケーションに追加し、アプリケーションに影響を及ぼすいくつかの方法があります。 それはすぐに、より複雑になるように、電源コードのパスに新しいセキュリティメソッドを収容します。 アプリケーションのパフォーマンスを妨げられるかもしれない、特に暗号化の操作を追加します。 これらの操作を行うことはcpuの集中のために複雑なアルゴリズム参加している。 アプリケーションの効率性を犠牲にすることもできた場合は、適用された地域でのセキュリティを提供していくつかの利点があります。 このことができた場合に発生するセキュリティメソッドはやみくもに適用されたすべてのコンポーネントとして考えずに、アプリケーションの要件をしています。 次のセクションで提供する合理的な出発点を決定する基本的なレベルのセキュリティ要件です。

ヒント

練習を検討してみるのも良いの安全保障のために必要な各モジュールまたはコンポーネント内のアプリケーションです。 毛布に抵抗するように要請を適用する方法で、複数のセキュリティモジュールまたはコンポーネントを示します。 その代わりに、最も適切なレベルのセキュリティを決定するために、各します。

評価認証とアクセス制御の要件

ユーザー認証には、頻繁に処理され、オペレーティングシステム上でアプリケーションを実行するたびに、しかし、いくつかのクラスのアプリケーションに対処する必要があるかもしれない、独自の認証されました。 組み込みアプリケーション、アプリケーションの機能を独立したオペレーティングシステム、およびウェブアプリケーション分散収容する必要が頻繁にいくつかのレベルのユーザー認証とアクセス制御します。 共通の例として、これらのセキュリティを必要とするアプリケーションは、メソッドのインターネット商取引( eコマース)アプリケーションは、ユーザーがそこを経由し、ウェブサイトで購入、または顧客データベースにアクセスできます。 どちらの場合も、さまざまな可能性をユーザーまたはグループのユーザーがシステムを使用する必要が厳格なデータアクセス制御します。 メソッドを許可する必要があり、アプリケーションにアクセスするユーザーに個別のシステムを介して、ログインの方法;また、必要な制限事項について、個別のusers'respective財務データます。

認証とアクセス制御を決定する要件は、デザイナーは、アプリケーション内の相互作用を検討しており、世界に包まれています。 これには、どのユーザーがアクセスする方法を、アプリケーションに直接座っているのは、ターミナルへのアクセスやネットワークからの2つの方法が異なる認証スキームが必要としています。 これは、アプリケーションにのみアクセスすることができ、デスクトップに座っている間に効果的な確保を経由して、オペレーティングシステムの認証方法を実行しています。 ネットワークアプリケーションでは、複数のユーザーからアクセスされると同時に、またはこれを介してデータにアクセスするユーザーに共通のデータベースから、アクセス制御を提供するための強力な弾みと認証します。 レベルの細かさと柔軟性は、アクセス制御や認証のオペレーティングシステムのヘルプ機能で提供されなければならないかどうかを独自の方法で開発された。 単体または組み込みアプリケーションが頻繁にスクラッチから開発し、そのため、独自の特殊な手法を必要とします。

データストレージの要件

データストレージ使われている方法を反映して民間や機密情報を格納します。 これには、ファイルの保護の正しい使用方法の基礎のオペレーティングシステム(再strictedファイルのパーミッションのような)と強力な方法で個人データを保護する要素(暗号化など)します。 多くの場合、オペレーティングシステムの使用を許可メソッドは、十分なセキュリティを提供するのに必要な程度です。 暗号化に使用できる非常に重要なデータを保護するなど、ユーザーの認証情報およびクレジットカード情報をします。

アプリケーションのニーズのレベルにして、データを保存すると、そのデータの性質をデータストレージセキュリティの要件をドライブします。 ストレージは、しばしば機密情報の開閉を決定する要因となった場合の高いセキュリティの暗号化が必要である。 ユーザーの認証情報など、パスワード、住所、電話番号、および金融データ、扱われなければならないと考えても高いセキュリティに敏感とします。 設定情報を十分に確保することができ頻繁にファイルの標準的な方法を許可します。

データストレージの要件を形成したとき、デザイナーかもしれません誘惑に2つのレベルのセキュリティを標準化します。 たとえば、パスワードが設定ファイルに保存された情報以外の機密情報とともに、強いかもしれないという誘惑を使用して暗号化ファイル全体としての包括的セキュリティ方法です。 データストレージの要件を決定し、すべてのコンポーネントを調べるのニーズにかかわっている。 この例では、暗号化をnonsensitiveデータを適用するかもしれないと見なされるため、非効率的費用を計算して暗号化の操作と同様、制御粒状の欠如、他のファイル内の情報です。 1つの要素を簡単にアクセスできない場合はファイル全体は暗号化されます。 複雑にかかわっにアクセスする他の要素が大幅に増加しました。

ネットワークとセキュリティ要件のエントリポイント

アプリケーションと通信するユーザーには、オペレーティングシステム、および他のアプリケーションのエントリポイントを介しています。 これらのかもしれませんが、同じマシン上でのアプリケーションやネットワークを介して;多くの場合、彼らは両方にします。 エントリポイントのメソッドを提供するには、アプリケーションをサポートするために、 1つのネットワーク通信は、しばしば、同じ;そのため、彼らはここにまとめます。

ネットワーク通信のセキュリティが最善で解決されたメッセージの内容を検討して送られています。 情報通信ネットワークを活用するためのアプリケーションがメッセージングまたは静的なデータを渡す必要もないかもしれない信頼性をより強力なプロトコルをサポートします。 また、インターネットの商取引の例のように、アプリケーションの送信および受信に敏感なユーザー情報を追加する可能性の高いセキュリティワラント方法です。 エントリポイントのセキュリティ要件を決定するためにも、ネットワーク環境でのアプリケーションと通信します。

アプリケーションのエントリポイントを必要とする高レベルの分析を網羅するために、ネットワーク通信機能を提供しています。 他にも情報をやりとりするアプリケーションを介して、エントリポイントします。 これらの機能を介して保護することができ地域の組み合わせで利用可能なオペレーティングシステムのメソッドを定義すると、アクセス制御や認証スキームのアプリケーションで使用されます。 の相互作用を分析して、アプリケーションを使用すると、外の世界では、デザイナーを決定する最も適切なレベルのセキュリティ必要となります。 これらの相互作用に分類されるとその後のエントリポイントは、

スポンジネットワークの相互作用

他のアプリケーションとの相互作用スポンジ

スポンジの相互作用は、それぞれのオペレーティングシステム

これらのカテゴリの分野ではよく知られていない機能、およびデザイナーおそらく既に知っている場合は、アプリケーションでのやりとりのいずれかのマナーではない。 次のステップでは、各地域の安全保障を考慮します。

ネットワーク、アプリケーション、およびシステムの相互作用

インターネットの人気は上昇して、多くの新しいアプリケーション内の他のコンポーネント内でのローカルシステムとリモートシステムとします。 独立して機能するアプリケーションの場合は、他のアプリケーションとの相互作用だけで、明らかに自分を必要としないネットワークのリスク分析を行います。

ネットワークに存在するいくつかのレベルでの相互作用することができます。 完全にすることができ、アプリケーションのクライアント/サーバ指向ですが、リモートシステムを使用してインターネットを経由して広がります。 これらのアプリケーションでのセキュリティの必要性を大幅になるというよりは、より複雑なアプリケーションを単体でいます。

なければならないいくつかの依存関係識別します。 開発者には、希望のレベルのセキュリティを提供するメカニズムは、アプリケーションをすべきである。 デザイナーのかもしれないことを決定する内部セキュリティメカニズムを何も提供しています。 次に、ネットワークのセキュリティアプリケーションに依存して、ネットワーク上のセキュリティを実行されていると通信;ネットワークトポルogyやファイアウォールのセキュリティレベルの上限を決めることができ、アプリケーションを経験しています。 デザイナーを選択したのかもしれないとの依存関係を控える、最高度のセキュリティを提供する可能性が内のアプリケーションです。 これらは、ほとんどのアプリケーションでの二つの極端な秋のどこかの真ん中にします。

アプリケーションを使用することもできネットワークの通信設備をローカライズされていない運命に行くの限界を超えて、システムはそれを実行します。 の性質を考慮する必要があり、この通信を特定するために作成した場合は不必要なリスクを実装します。

間での相互作用の必要性を、アプリケーションやオペレーティングシステムを含んでいる必要はありません、ネットワークと通信します。 デザイナーは調査の実施方法の必要な機能を提供します。 頻繁に使用するアプリケーションのソケットベースのコミュニケーションの方法を提供しているため、これらのエントリポイントの迅速かつ簡単に実装します。 ソケットを使用するよりも多くの機能を提供することが必要で、ただしました。 アプリケーションが必要と通信するだけでローカルシステム上の他のアプリケーションやオペレーティングシステムに独自のコミュニケーション方法がたくさんある彼らの処分など、インターネット以外のソケットおよびipcメカニズムます。

通常、 unix系のシステムを使用してソケット通信のために使いやすさと多量のマニュアルをご覧ください。 unixのソケットをサポートするいくつかの味をベースのコミュニケーション、それは、二人の人気ipソケットunixドメインソケットとします。

ipソケット、名前が示すように、コミュニケーションのためのipプロトコルを使用して、リモートネットワークとの通信をサポートし、これによりローカルおよびリモートプロセスと通信するアプリケーションです。 多くのアプリケーションとしか通信してローカルシステム上のプロセスを必要としないネットワークや通信機能として標準的なインターフェイスのipソケットを使用します。 ipソケット理想的なこのような状況ではありませんので、自動的にクライアントのローカルおよびリモートのアクセスを提供します。

内部のunixドメインソケットを使用するプロトコルをサポートしていない通信やネットワーク通信;の接続を提供することに通信チャネルを志向します。 ドメインソケットを使用している場合は、リスクのシェアを不適切にします。 unixドメインソケットをサポートして渡すファイル記述子と同様のデータ情報です。 これは、ポインタまたはハンドルをすることができ、システムの他の部分から1つのアプリケーションを別の渡されました。 この機能は、 unixドメインソケットでのみご利用いただけます。 この機能ではありません希望の場合または保証は、ソケットからの転用ベースのコミュニケーションを別のメカニズムアイピーシー良い選択肢であるかもしれませんします。

送信された情報の種類を検討してから、アプリケーションを定義するための要件は、コミュニケーションに役立つ方法です。 デザイナーは、アプリケーションの機能の相互作用を評価する前に、標準の機能を組み込んだ。 この例では、 ipソケットを使っているアプリケーションが危険にさらされることができるため、リモートシステムに接続するためにしなければならないときにアプリケーションを使用できません。 より良い設計のための要件を文書だけでローカルのアプリケーションの相互作用します。 この包括的要件をリードして開発者以外の何かipソケットを使用します。

オペレーティングシステムの相互作用

オペレーティングシステムの相互作用を頻繁に別のレベルで、セキュリティ上の問題を作成します。 多くのレベルの相互作用が起こり得ることをオペレーティングシステムのネットワークの相互作用、プロセス間通信nication 、およびファイルの操作がすでに言及します。 他のタイプの2つの相互作用も必要ご注意:外部のプログラムの実行を使用すると、他のシステムと共通の外部ソースの搾取の通話が可能に定義されます。 重要な問題のような権限、認証、アクセス制御、入力の検証とみなされなければならないのオペレーティングシステムの相互作用併用しています。

システムコールおよび外部のリスク度の高いアプリケーションを提示するときに使用されるため、不適切な性質です。 これらの関数ライブラリに存在することが頻繁に使用されると同時に多くのアプリケーションを提供して頻繁に直接アクセスできるようにオペレーティングシステムのコンポーネントとリソースをします。 搾取、 1つのアプリケーションを介してこれらの関数をいくつかのアプリケーションやシステムに影響を与えることができます。

システムコールのアクセスを提供し、多くの汎用システム固有の機能です。 彼らと対話を許可するアプリケーションを特定のハードウェアコンポーネントと同様のカーネルレベルの機能です。 オペレーティングシステムの安全性を考慮する必要があるとコンポーネントを使用する際のシステムコールします。 アプリケーションの場合、ユーザーとの関係するデータを、オペレーティングシステムやネットワークを介してシステムコール、デザイナーが危険にさらされることを最小限に抑える必要があり、予期しないし、不適切なデータです。

外部アプリケーションの実行は、別の共通の、無担保の相互作用します。 開発者はしばしば、アプリケーションの設計を要請する他のアプリケーションをさまざまな方法です。 そこには、開発者がよいかもしれませsev eral上の理由からこれを行うには、機能を区別するような環境を確立するかを制御します。 また、他のアプリケーションの呼び出しにより、開発者は既存の機能を使用すると、アプリケーションの実装を迅速にします。

固有の危険があり、他のプログラムから呼び出し内で、アプリケーションの外部プログラムを信頼することができまれにします。 アプリケーションの動的な環境で存在することが可能任意のプログラムを修正したり交換します。 この問題は、メソッドの呼び出しに使用するアプリケーションです。 unixベースのシステムと呼ばれるシステムの機能をサポートししばしば( )およびexec ( )で、付属のパスを文字列としてパラメータを実行し、標準のシェルとsubprocess 、それぞれします。 システム( )のコールを返したときは、呼び出し元のプログラムを完了すると、しかし、 exec ( )の実行中のプログラムを終了し、それを置き換えると呼ばれるプログラムです。 ウィンドウズベースのシステムには、 exec ( )のコールすることを可能にして、他のプログラムが実行されます。 unixのとは違って、 windows版のexec ( )のsubprocessに指定したプログラムを実行しており、関数の呼び出しを終了していませんします。 入力検証せずに、攻撃入れることができシェルのメタ文字を入力ストリームは、強制的に有害な可能性のシェルコマンドを実行するとパラメータです。 これらの関数の使用は通常ひんしゅくを買う、と労力を避けるために彼らの前に使用しなければならないので、信頼していないとやりたい放題の実行を許可するアプリケーションです。 また、デザイナーに必要な機能を組み込むことができ、アプリケーションに直接します。 の使用を自由に利用できる、オープンソースソフトウェアの大幅に減少させるのに必要な努力をしています。

多くのオペレーティングシステムの機能を実行できるようにもさまざまな特権レベルです。 unixのは"ルート"権限を、ウィンドウズには"管理者"と"システム"の権限が必要です。 これらの特別なアカウント管理タスクを実行することができ、さらには、オペレーティングシステムと相互作用するよりも他のアカウントのサービスです。 プログラムの特権レベルを高めることができたときに書き込まれる特殊な機能が必要となります。 オペレーティングシステムおよびアプリケーションを実行することができ侵害されている場合に特権を慎重に制御されていませんします。

モデルの最小特権を示唆して、アプリケーションを実行しなければ、最低限の権限を設定するのに必要なほとんどの機能を実行します。 高い権限を必要とする機能のことを、独自のモジュールを孤立しなければならない、しかしそれは-として定義プロセスでは、クラス、アプリケーション、または別のシステムでさえします。 その時でさえ、そのセットの機能を実行する必要も少なくともこれらの特権レベルまで昇格した権限が必要です。 その時点で、より高い特権を取得しなければならないと、完成時の機能には、権限がなければならない最低水準に戻っています。

注意

メタ文字の文字は特別な意味を帯びることで、特定のコンテキストます。 たとえば、標準のシェル内では、セミコロン( ; )コマンドの区切りは、それは、多くのコマンドをかけることができたときに、単一行には、セミコロンの間にしてください。 そのパイプ文字( | )ターミナルの出力をどのように送信して次のようにパイプであるため、 1つのプログラムからの出力を別に育てられました。

結論

いくつかのアプリケーション開発者を選択したかを忘れて自分のアプリケーション内でのセキュリティを無視するとのなすがままにして、顧客のネットワークやオペレーティングシステムとそのセキュリティ機能があります。 この毛布を使ってセキュリティを確保するモデルを避けるの責任を提供するアプリケーションを公開します。 セキュリティの哲学purports強力で包括的な安全保障の理念については、何もないことを前提として外部コンポーネントのセキュリティアプリケーションです。 アプリケーションとしては、常に確保するようにすることができ、それ自体を尊重すると、外部コンポーネントのやりとりをしています。 レベルのフォロースルーで左にはデザイナーや開発者の裁量で、しかし

これは、記事を追加したタマスquerolin

Share  

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