プログラミング

プログラミング

【セキュリティ対策】Webアプリケーションを安全に保つためのセキュリティチェック項目11選

KeyCDN

We are a Swiss registered company headquartered in Winterthur, Switzerland. We’re a passionate team operating a high-performance content delivery network (CDN).

本記事は、11 Web Application Security Best Practices
翻訳・再構成したものです。
配信元または著者の許可を得て配信しています。

216 views

読了時間 : 約8分37秒

責任感のあるウェブサイトのオーナーと同様に、あなたも多分オンラインにおけるセキュリティの重要性には気づいているでしょう。通常、利用者はウェブサイトのセキュリティに対してきちんとした対策がされていると思うかもしれませんが、多くのウェブサイトのオーナーや企業は、もしかすると十分ではないかもしれません。

 

もしあなたのウェブサイトが、2016年10月に起こった大規模なDDoS攻撃にあったとしたら、DynのようなDNSの大企業でさえも、セキュリティ対策は大きな問題であるとわかるでしょう。下に示すように、DDoSの被害にあった件数はここ数年、一貫して増え続けており今後も増加されると予想されています。

 

 

 

予期せぬ事態が起こりうる可能性はあるにもかかわらず、100%安全を保障する方法はありません。(Dynが攻撃されたことからもわかります)
ところが、企業がセキュリティの問題を減らすことに役立つ、実行可能な方法があります。この記事では、ウェブアプリケーションの安全を強化しそれを保つための、9つの特に重要で最も効率的な方法をご紹介します。

 

1    ウェブアプリケーションの安全対策案を作成しましょう

 

まったくの対策なしで、ウェブアプリケーションを安全に保ち続けることはできません。たいてい企業は秩序のないやり方をしており、結局何も成し遂げることができません。詳細で実用的なウェブアプリケーションの安全対策を、ITセキュリティチームと一緒に開発してくだい。これはオンラインを通して行うのがよいでしょう。

 

たとえば、あなたは企業全体のコンプライアンスを高めたいと思ったり、あるいは会社のブランドをもっと注意深く守らなければならないかもしれません。しかし、それよりもウェブアプリケーションが安全であること、またどのように安全であるか確認することが優先されるべきです。手動であろうなかろうと、ウェブの安全対策は、クラウドソリューションかオンラインのソフトウェア、もしくはプロバイダーなどの管理の下で行われるべきです。

 

それぞれの企業のセキュリティに関する計画やチェックリストは、企業ごとの基本的設備等によって違ってきます。Synopsys社は、きわめて詳細な6つ段階からなるウェブアプリケーションセキュリティチェックリストを作成しました。これはセキュリティの計画を立てる際に参考になります。

 

さらに、もしあなたの企業が非常に大きい場合、企業の安全に関する計画は、基本的にウェブアプリケーションのセキュリティ管理に従事している個人個人に示すのがよいでしょう。最終的に、この一連の活動にどれだけコストがかかるかを計算に入れておく必要があります。

 

2    ウェブアプリケーションの棚卸しを実行しましょう

 

あなたの企業はもしかすると、日常的によく使われるアプリケーションについて明確なポリシーや規定がないかもしれません。実際、ほとんどの企業は不正なアプリケーションが使われていて、実際に何かが起きるまで気づくことはありません。日常的に使用しているアプリケーションを正確に把握することなしに、効果的なセキュリティを保つことはできません。

 

棚卸しは大きい一仕事だし、完全に行うには時間がかかるだろうと思っている人は、どこに、どれくらいいますか?棚卸しをしている間、それぞれのアプリケーションの目的をメモしてください。おそらくすべてわかっていることかもしれませんが、これらの多くは余分なものだったり、完全に不必要なものかもしれません。この棚卸し作業は、時間をかけてすべてのアプリケーションを確認することで、全体の流れを見るのに役に立つ方法でもあります。

 

3    ウェブアプリケーションの優先順位をつけましょう

 

存在しているすべてのアプリケーションの棚卸しが終わったら、優先順位をつけるために分類するのが合理的な次のステップになります。疑うかもしれませんが、あなたのリストは非常に長くなっているでしょう。最初にどのアプリケーションに着目するか優先順位をつけなくては、有意義な進歩を進めるのに苦労することになります。

 

次の3のカテゴリーに分類します。

 

1   緊急な対応が必要なもの

 

2  重大な情報をふくむもの

 

3  通常業務で必要なもの

 

緊急な対応が必要なアプリケーションとは、主に外部の情報や顧客情報などです。これらのアプリケーションは最初に管理されるべきで、ハッカーの攻撃の対象となりうる部分です。次に、重大な情報をふくむアプリケーションとは、会社内部・外部ともに必要な情報で機密扱いの情報も含みます。最後の通常業務で必要なアプリケーションとは、現在は外部との接触はごく少ないけれども、将来のためにテストしておくべきものです。

 

このようにアプリケーションを分類しておくことによって、広範囲にわたって重大な問題に対処するテストを留保することができ、あまりない重大な問題に集中することが少なくて済みます。会社の資源を効果的に使うことを可能にし、さらに素早い進歩を達成するのにも役立ちます。

 

4     アプリケーションの脆弱性に優先順位をつけましょう

 

ウェブアプリケーションのリストに沿ってこれらのテストをする前に、どのアプリケーションに脆弱性があって取り除くべきで、どれは心配しすぎなものなのか決めなければなりません。実際問題となるのは、ほとんどのアプリケーションには脆弱性があるということです。たとえば、9000の感染されたウェブサイトを分析・分類したSucuri’s Q2 hacked websites reportを見てください。

 

すべてのウェブアプリケーションから脆弱性のあるものを取り除くことは不可能であり、時間の無駄です。あなたのアプリケーションを重要度によって分類した後でさえ、これらすべてをテストするのは非常に時間がかかります。もっとも危険な脆弱性をもつアプリケーションだけを自分自身で取り除くことが、莫大な時間の節約になり、仕事を迅速に進めることができます。

 

どの脆弱性のあるアプリケーションに着目するかを決めることに関しては、あなたが実際に使っているアプリケーションによります。いつくかの実行可能なスタンダードなセキュリティ対策がありますが(詳しくは下記をご覧ください)、特定の弱いアプリケーションを調べて分析する必要があります。

 

テストが展開されるのと同様に念頭に置いておきたいのは、特定の問題について見落しがあるかもしれないということです。アプリケーションを再編成することや、新たな脆弱性のあるアプリケーションを確認することは確実に行ってください。最終的には、不要なアプリケーションを消すことで将来この作業はもっと簡単になります。決して遅くはありません。

 

5     特殊な手法をなるべく使わないでアプリケーションを実行しましょう

 

すべてのアプリケーションを査定しテストをして、ほとんどの問題になりうる脆弱性を持ったアプリケーションを一掃した後でさえも、まだ不安なところがあるかもしれません。すべてのアプリケーションには、ローカルコンピューターとリモートコンピューターの双方に使える特定のオプションがあります。これらのオプション機能は、セキュリティを高めるために調整できる方がよいでしょう。

 

通常は、もっともシンプルなセッティングでアプリケーションを実行します。これはこのアプリケーションが広く使われていることを意味しています。特別な許可を与えられた限られた人たちだけが、システムを変えたりできます。最初の査定にそれが含まれているか考慮にいれる必要があります。さもないと、もう一度最初に戻ってすべてのリストを調整してセッティングしなおさなければなりません。また、アプリケーションのほとんどすべては、システム管理者のみが完全に査定する必要があります。その他のユーザーは、最小のセッティングを使ってシステムの運用をします。

 

万が一、特別な許可を持った人が不正にアプリケーションを改ざんしたら、それを使う必要のあったユーザーはアクセスできません。そのような事態にも対処できるようにしなければなりません。そのためには、使用者をより制限した方が、だれでも使える状態にしておくよりも良いでしょう。

 

6     暫定的に保護機能を整備しましょう

 

もし小規模でかなりシンプルな企業形態だとしても、アプリケーションを一通り確認し必要な変更を加えるのに、数週間から場合によっては数カ月かかります。その期間はサイトの安全性はいつもよりさらに危険にさらされることになります。そのため、その間はセキュリティの問題を切り抜けるために、適切な代理の安全保護対策を利用することが重要になってきます。これには次のようないくつかのオプションがあります。

 

1. 特定のアプリケーションからいくつかの機能を取り除きます。その機能によってアプリケーションがハッカーの攻撃にあう可能性があるならば、一時的に除去することは有効です。

 

2. 危険な状態から守るためにファイヤーウォールを使用しましょう。ファイヤーウォールのフィルターはアプリケーション上の不必要な送信を無効にし、XSSやSQL injection といった危険から守ることができます。

 

このプロセスを実行する間も、確実に第三者から侵害されないようにするため、現在使用中のウェブアプリケーションは継続して監視されるべきです。もしこの間にあなたの企業やウェブサイトが外部から攻撃されたら、ほかの仕事を継続する前に、狙われるポイントと攻撃された場所を明確にしておく必要があります。将来起こりうる攻撃に対応するため、そのような脆弱性のある部分を適宜注意深く記録して、どのように対処するのか考えておくことを習慣づけておく必要があります。

 

8    Cookiesをしっかりと使いましょう

 

多くの企業がウェブアプリケーションに対して、いつ安全対策をとったらいいか不明瞭な場所では、Cookiesの使用が可能です。Cookiesは企業側とユーザーの双方によって非常に便利な機能です。この機能は、ユーザーが一度訪れたサイトを記憶しておくことができ、同じサイトを再度見たいときに、より早くサイトにたどり着けるだけでなく、個人ごとに異なる情報を管理することができます。しかし一方で、保護されたサイトに侵入しようとするハッカーによって不正に操作される恐れもあります。

 

Cookiesの使用をやめる必要はない一方で、実際、使用方法をあやまると様々な問題が起きる可能性もあります。攻撃を受けるリスクを最小限にするために調整する必要があります。

 

1. まず、重大な機密情報を記憶させるためにCookiesを絶対に使ってはいけません。例えば、ユーザーパスワードなどを記憶させるのにCookiesを使うと、ハッカーは権限がなくても非常に簡単にアクセスできてしまうのです。

 

2. 使用期限が満了しても常に保全に努めましょう。確かにCookiesは1カ月を過ぎても有効に記憶してくれますが、それぞれの時点でセキュリティリスクがあることを認識する必要があります。

 

3. 最終的には、使用しているCookiesで記憶されている情報を暗号化することを検討しましょう。

 

9 セキュリティに対する提案を実行にうつしましょう

 

すでにアウトラインを述べたものを除いて、他にもウェブサイトや企業のオーナーとしていくつかのすぐに使えるセキュリティ対策があります。セキュリティを高めるために、下記にあるそれぞれの対策をさらに詳しく調べて、対応する記事をよく読み様々な事例に活用しましょう。

 

・HTTPをすべて暗号化しましょう。

 

・x-xss protectionセキュリティを強固にしてウェブサイトの脆弱性を利用したクロスサイトスクリプティング攻撃から防止しましょう。

 

・十分な安全対策ポリシーを作成し実行しましょう。

 

・Public key pinsを利用した中間者攻撃を防止しましょう。

 

・ハッシュ値を<script>や<link>などの要素の属性を指定し、サブリソースインテグリティ対策をしましょう。

 

・最新バージョンのTLSを使用しましょう。より深く知るために、TLS1.2 vs TLS1.1といった記事を読んだり、SSLの使用を完全に避けましょう。

 

・言うまでもなく、パスワードには、小文字や大文字、数字、特殊記号などを用いて強固なものにすることが重要です。KeyPassなどのパスワード管理サイトを使用して強固なパスワードを作成しましょう。

 

10  セキュリティへの意識向上教育を導入しましょう

 

企業を運営している場合、ウェブアプリケーションのセキュリティの重要性について正しく理解しているのは、おそらくある特定の部署の人だけかもしれません。ユーザーの大部分は、問題の基本的な部分だけしか理解していませんし、注意も足りないかもしれません。このようなセキュリティリスクについて正しい教育を受けていないユーザーが、問題を引き起こす可能性もあります。

 

従業員を教育することによって、自分達自身で素早くセキュリティの問題点を見つけることができるようになります。本質的には、全社員をセキュリティについて早く理解させることが、ウェブアプリケーションの危険を見つけて取り除く最良の方法なのです。このことを念頭において、従業員のセキュリティの認識を高めるトレーニングを、専門家に依頼することをぜひ検討してください。

 

従業員がセキュリティに関して高い意識を持ち、もしサイトが危険にさらされたり何か問題を見つけた時にどうすればよいかを確実に知っていれば、すべてのウェブアプリケーションにおいてセキュリティプロセスを強化でき、最も効率の良い方法で常に安全な状態を保つことができます。

 

11  報奨金制度を導入しましょう

 

従業員などからフェードバックを受ける一番良い方法は、報奨金プログラムです。もし、あなたの企業が専門のセキュリティチームを雇っていたとしても、すべての潜在的なリスクに明確に対応することはできません。そのため、従業員やそこで働く人たちが、リスクを見つけて報告することを奨励するために、”報奨金“を提示するのです。

 

KeyCDN社では、独自のセキュリティ報奨金制度を実施し、すべてのセキュリティ上のリスクを減らすことを目的にするのと同時に、ユーザーに対して報奨を受けるチャンスを提供しています。

 

ウェブアプリケーションの最も効率的な方法  要約

 

これまで見てきたように、もしあなたが企業の一員だとしたら、ウェブアプリケーションを安全に保つ効率的な方法は、チームの努力にあります。確かに、セキュリティを高めるための即効的かつ効果的な方法はあります。しかし、アプリケーションの開発が進むにつれて、セキュリティに関して保持するのがますます難しくなってきています。今まで述べてきたような方法で、正しく効率的にセキュリティ対策をすることが、多くの人が安全に使うことを確実にしてくれます。

おすすめ新着記事

おすすめタグ