OWASP Top 10 脆弱性に対抗するための Top 10 Tips とは?

Top 10 Tips to Protect Against OWASP Top 10 Vulnerabilities

2021/07/20 SecurityBoulevard — OWASP (Open Web Application Security Project) Top 10 脆弱性は、Web アプリケーションにおいて最も頻繁に生じるセキュリティ脆弱性 10 項目のリストである。このリストは3~4年ごとに更新され、前回の更新は2017年となっている。最新の 2020年版リストで取り上げられている脆弱性は、以下の通りである。

・インジェクション
・破壊された認証
・機密データの露出
・XML External Entities (XXE)
・アクセス・コントロールの失敗
・セキュリティ設定ミス
・クロス・サイト・スクリプティング(XSS)
・安全でないデシリアライゼーション
・脆弱性が指摘されているコンポーネントの使用
・不十分なロギングとモニタリング

OWASP Top 10 脆弱性は、Web サイトや Web アプリケーションが直面している、最新の脅威への認識を高めるのに役立つ。企業における運用者や開発者は、このリストを活用することで、安全なコーディングを行い、セキュリティを調整し、セキュリティ体制を強化することができる。この記事では、OWASP Top 10 に記載される脆弱性から、アプリケーションを保護するための 10 項目のヒントを紹介する。

OWASP Top 10 脆弱性を防ぐための 10 のヒント

1:ゼロトラストのアプローチでセキュリティを確保する
ゼロトラスト・アプローチでは、信頼するが検証するのではなく、常に疑い検証するというマインドセットを持つ必要がある。このアプローチをとる組織は、Web アプリケーションに関連するセキュリティ・ギャップを分析することで、リスクを最小限に抑えることが可能となる。ゼロトラスト・アプローチは、すべてのユーザ/従業員/ベンダー/サードパーティ・サービス・プロバイダーに対して適用する必要がある。このアプローチは、ブルートフォース攻撃/XSS 攻撃/インジェクションなどに効果的であり、また、OWASP Top 10 脆弱性の大部分からの保護に役立つ。

2:直感的な次世代型マネージド Web Application Firewall (WAF) の使用
AppTrana のような、直感的な次世代型のマネージド WAF は、組織による脆弱性の悪用防止に役立つ。トラフィックを監視し、悪意のリクエストを自動的にブロックする。開発者により脆弱性が修正されるまで、仮想パッチでカバーする。

3:強力なパスワード・ポリシーと多要素認証の導入
認証の破壊という脆弱性を軽減するためには、強力なパスワード・ポリシーと多要素認証の導入が重要である。
・デフォルトの認証情報は絶対に使用してはならない (特に管理者アカウント)。
・英数字と特殊文字を組み合わせた強力でユニークなパスワードを設定する。
・パスワードをローカルに保存しない。
・パスワードは安全で暗号化された接続のみを介して送信される。

4:すべてのセンシティブなデータを暗号化する
移動中や保管中にかかわらず、すべての機密データを暗号化する。機密データはデバイスに保存せず、オープンな Web サイトに使用されることのない、安全なサーバーに保存する。機密データへのアクセスに用いられるパスワードを暗号化する。機密データは、業務上必要な場合にのみ保持するようにする。転送中のデータには、信頼できる認証局 (CA) の SSL 証明書を活用する。SSL 証明書により、サーバーとブラウザの間では、すべての通信とデータ交換が暗号化される。

5:適切なアクセス・コントロールの確立
OWASP が指摘する Web アプリケーションの脆弱性から保護するためには、ロール・ベースのアクセ ス・コントロールを確立することが重要だ。承認と許可に関しては、最小特権のアプローチを採用する。それぞれの役割がワークを完了するのに必要な、最小限のレベルでのアクセスのみを提供する。すべてのリクエストに対して、バックエンド・プロセスによる入力識別子の検証を行い、許可されたエンティティのみがデータにアクセスしていることを確認する必要がある。なお、使用されなくなったアカウントは削除する。複数のアクセス・ポイントがある場合には、不要なアクセス・ポイントを無効にする。不要なサービスを停止して、サーバーをスリムに保つ。

6:入力の検証が重要
すべてのユーザーの入力 (問い合わせフォーム、問い合わせパラメータ、アップロードなど) を検証することが必須となる。入力検証は、アプリケーションに入力されたデータが、不正なものでないことを確認するのに役立つ。SQL インジェクション、XXE インジェクション、XSS、バッファ・オーバーフローなどの、OWASP が指摘する Web アプリケーショ ン脆弱性から保護することが重要となる。

7:高水準のサイバー・ハイジーン (健康状態) を維持する
・アップデートを無視しない。
・信頼できる検証済みのソースから提供されるコンポーネントのみを使用する。
・不要な機能、未使用の機能、レガシーな機能/サービス/コンポーネント/ソフトウェアをアプリケーションから削除する。

8:効果的なロギングとモニタリングの確立
ロギングとモニタリングのソフトウェアを活用して、悪意の活動を監視/検出する。検知した攻撃が失敗したとしても、ロギングとモニタリングは、攻撃のソースとベクターに関する極めて貴重な洞察を提供する。また、セキュリティ・ポリシーを強化することで、今後の侵入を防ぐための分析にも利用できる。

9:定期的なスキャン/セキュリティ監査/ペンテストの実施
定期的なスキャンと、セキュリティ監査、ペネトレーション・テストが必要である。これらは、OWASP Top 10 におけるセキュリティ脆弱性と継続的に特定し、その悪用の可能性を理解し、リスクに応じた優先順位の設定/修正に役立つ。

10:安全なコーディングの実践
本質的に安全でないコードは、脆弱なアプリケーション・セキュリティにつながる。安全なコーディングを行うことは、組織にとって不可欠である。

OWASP Top 10 脆弱性リストは、Web アプリケーションを安全に開発/使用する文化を育むための、素晴らしい出発点となる。しかし、この他にも様々な脆弱性が存在し、また、脆弱性に対応するだけでは、完全なセキュリティが自動的に得られないことも忘れないでほりい。AppTrana のような直感的で包括的な、マネージド・ソリューションを選択して、セキュリティ体制を強化してほしい。

AppTrana という WAF ベンダーの、スポンサード記事のようですが、しっかりとした構成になっていて、意味のあるものだと思います。ただ、WAF が2番目にあって、ちょっと驚きながら訳したのも事実です。それと、できれば、脆弱性のチェックというのも入れてほしかったと思います。Web アプリケーション開発が前提のようなので、あまり関係ないと思えるかもしれませんが、そこで使われるライブラリなどにも脆弱性は潜んでいます。でも、まぁ、こういう Tips は大歓迎です。

%d bloggers like this: