ウェブサイト開発-セキュリティ

Webページのセキュリティは、開発と同じくらい重要です。セキュリティを危険にさらす可能性のある脅威は、ビジネスの評判を傷つけたり、(オンラインデポジットを盗むことによって)経済的に損害を与えたり、Webサイトにアクセスするクライアントに損害を与えたりする可能性があるためです。

セキュリティの専門家によると、彼らはに基づいてウェブサイトのセキュリティチェックを行うことを提案します OWASP TOP 10、これはWebアプリケーションのセキュリティに関する強力な認識ドキュメントです。OWASPトップ10は、最も重大なWebアプリケーションのセキュリティ上の欠陥が何であるかについての幅広いコンセンサスを表しています。

SQLインジェクション

SQL、OS、LDAPインジェクションなどのインジェクションの欠陥は、信頼できないデータがコマンドまたはクエリの一部としてインタプリタに送信されるときに発生します。攻撃者の敵対的なデータは、通訳者をだまして意図しないコマンドを実行させたり、適切な許可なしにデータにアクセスさせたりする可能性があります。

Solution − iSQLからWebページを保護するには、入力とフィルタリングシンボルを検証する必要があります。

壊れた認証とセッション管理

認証とセッション管理に関連するアプリケーション機能は正しく実装されていないことが多く、攻撃者はパスワード、キー、セッショントークンを危険にさらしたり、他の実装上の欠陥を悪用して他のユーザーのIDを推測したりする可能性があります。

Solution −この欠陥からサイトを保護するには、有効期限のあるCookieとセッションを作成する必要があります。

クロスサイトスクリプティング(XSS)

XSSの欠陥は、アプリケーションが信頼できないデータを取得し、適切な検証やエスケープを行わずにWebブラウザーに送信するたびに発生します。XSSを使用すると、攻撃者は被害者のブラウザでスクリプトを実行し、ユーザーセッションを乗っ取ったり、Webサイトを改ざんしたり、悪意のあるサイトにユーザーをリダイレクトしたりできます。

Solution −これからの保護は、iSQLの場合と同じ行にあります。

安全でない直接オブジェクトリファレンス

直接オブジェクト参照は、開発者がファイル、ディレクトリ、データベースキーなどの内部実装オブジェクトへの参照を公開するときに発生します。アクセス制御チェックやその他の保護がなければ、攻撃者はこれらの参照を操作して不正なデータにアクセスできます。

Solution −このようなファイルを保護するには、パスワードなどの特定の保護メカニズムを実装する必要があります。

セキュリティの設定ミス

優れたセキュリティには、アプリケーション、フレームワーク、アプリケーションサーバー、Webサーバー、データベースサーバー、およびプラットフォーム用に定義および展開された安全な構成が必要です。デフォルトは安全でないことが多いため、安全な設定を定義、実装、および維持する必要があります。

Solution −ソフトウェアは最新の状態に保つ必要があります。

機密データの公開

多くのWebアプリケーションは、クレジットカード、納税者番号、認証資格情報などの機密データを適切に保護していません。攻撃者は、このような保護が不十分なデータを盗んだり変更したりして、クレジットカード詐欺、個人情報の盗難、またはその他の犯罪を行う可能性があります。

Solution −機密データは、保存中または転送中の暗号化などの追加の保護、およびブラウザと交換する際の特別な予防措置に値します。

機能レベルのアクセス制御がありません

ほとんどのWebアプリケーションは、その機能をUIに表示する前に、機能レベルのアクセス権を確認します。ただし、アプリケーションは、各機能にアクセスするときに、サーバーで同じアクセス制御チェックを実行する必要があります。リクエストが検証されない場合、攻撃者は適切な承認なしに機能にアクセスするためのリクエストを偽造する可能性があります。

Solution −認証のレベルを確認する必要があります。

クロスサイトリクエストフォージェリ(CSRF)

CSRF攻撃は、ログオンした被害者のブラウザに、被害者のセッションCookieやその他の自動的に含まれる認証情報を含む偽造されたHTTP要求を脆弱なWebアプリケーションに送信するように強制します。これにより、攻撃者は被害者のブラウザに、脆弱なアプリケーションが被害者からの正当な要求であると見なす要求を生成させることができます。

Solution −最も一般的に使用される防止策は、Webサイトからの各要求に予測不可能なチャレンジベースのトークンを添付し、それらをユーザーのセッションに関連付けることです。

既知の脆弱性を持つコンポーネントの使用

ライブラリ、フレームワーク、その他のソフトウェアモジュールなどのコンポーネントは、ほとんどの場合、完全な権限で実行されます。脆弱なコンポーネントが悪用された場合、そのような攻撃は深刻なデータ損失またはサーバーの乗っ取りを促進する可能性があります。既知の脆弱性を持つコンポーネントを使用するアプリケーションは、アプリケーションの防御を弱体化させ、考えられるさまざまな攻撃や影響を可能にする可能性があります。

Solution −そのコンポーネントのバージョンに脆弱性があるかどうかを確認し、回避するか、別のバージョンに変更してみてください。

無効化されたリダイレクトと転送

Webアプリケーションは、ユーザーを他のページやWebサイトにリダイレクトおよび転送することがよくあります。これらのアプリケーションは、信頼できないデータを使用して宛先ページを決定します。適切な検証がないと、攻撃者は被害者をフィッシングサイトやマルウェアサイトにリダイレクトしたり、転送を使用して不正なページにアクセスしたりする可能性があります。

Solution −常にURLを検証します。

安全な使用済みプロトコル

これは、VPSプランがあり、すべてを自分で管理する場合です。サービスがインストールされると、デフォルトのポートが使用されます。これにより、ハッカーはどこを見ればよいかを知っているため、仕事が簡単になります。

ウェブサイトのホスティングで使用される主なサービスポートのいくつかを以下に示します-

  • SSH –ポート22
  • FTP –ポート21
  • MySQL –ポート3306
  • DNS –ポート53
  • SMTP –ポート25

これらのサービスのポート変更は、オペレーティングシステムとそのバージョンによって異なります。これに加えて、ファイアウォールをインストールする必要があります。Linux OSの場合は、お勧めしますIPtables他のすべての不要なポートをブロックします。OSがWindowsの場合、組み込まれているファイアウォールを使用できます。

サービスでブルートフォースログインをブロックするには、次を使用できます Fail2ban、これはLinuxベースのソフトウェアであり、ログイン試行の失敗を何度も繰り返すすべてのIPアドレスをブロックします。