新年早々、WAF(Web Application Firewall)の必要性、ソースコードにセキュリティフレームワークやライブラリを活用すること、そして、重要度の高い/クリティカルな脆弱性をその場で通知してくれるBugalertという新しいサービスについて議論します。
WAFを使うべきか、使わないべきか
WAFの有効性を判断するのは難しいかもしれないので、WAFの有効性は大きく議論されているテーマです。WAFは、以下の条件を満たすときに有益となります。
- 脆弱性を修正するためのコストが、WAFを導入するよりも高い場合。
- 遮断されるトラフィック量は、許容範囲のしきい値よりも低くなっています。
また、ファイアウォールを使用して、ボットやスクレーパーがウェブサイトに到達するのを防ぎ、アプリケーション層のセキュリティを提供し、IPのリスト化を許可/禁止する緩和策を実装することができます。 WAFの簡単な実装としては、CaptchaやJavascriptのチャレンジを使って、これらのタイプのボットを減らすことができます。また、WAFをプロキシとして使用することで、特定のトラフィックを許可し、それ以外のトラフィックを禁止することができます。
WAFについての重要なポイントは、WAFは設定してすぐに使えるソリューションではないということです。WAFの導入から展開まで、愛情のこもったケアが必要です。また、WAFの使用を継続的に最適化するためには、WAFを維持する専任のスタッフやチームが必要です。
WAFにアプローチする理想的な方法は、WAFを主にWebアプリケーションへの不要なトラフィックをブロックするために設計されたソリューションとして扱うことです。
セキュリティフレームワークやライブラリを活用した安全なコードの実現
自分で安全なコードを実装することは、適切に実行するためには面倒な作業です。攻撃者は、コードのわずかな部分を悪用して、アプリケーションを脆弱にしてしまいます。
コードのセキュリティを確保するためには、製品の開発に集中しながらセキュリティを確保できるフレームワークやライブラリが必要です。Githubに掲載されているこの記事では、これらのフレームワークやライブラリを使用する際に何を探すべきかを評価するのに役立つと思われる、さまざまな方法や要因について説明しています。
どのライブラリを利用するかを決める際には、以下の5つの要素を考慮する必要があります。
- そのパッケージは広く使われていますか?
- パッケージの評判は良いですか?
- 特定のライブラリについての良いレビューはありますか?
- パッケージは積極的にメンテナンスされていますか?
- パッケージに成熟度はありますか?
- これは、明確なロードマップがあり、ほとんどの機能が一貫して実装されていることを示す良い指標です。
- パッケージのセキュリティ問題はタイムリーに修正されていますか?
Webフレームワークを扱っていて、そのフレームワークにセキュリティを求める場合、どのようなセキュリティタスク(XSSの出力エンコーディングや入力の検証)をフレームワークで処理するかを決定することが重要です。
ある種のセキュリティが組み込まれたWebフレームワークを使用する際に考慮すべき重要な要素は、フレームワークにデータのエンコーディングを任せてしまうことです。フレームワークにデータのエンコーディングを任せれば、ユーザーがセキュリティ対策を見落としたり、誤って実装したりする可能性を減らすことができます。安全でない可能性のある動作を許可する場合は、許可された動作を徹底的に分析し、それがデフォルトではないことを認識する必要があります。
ライブラリやフレームワークを組み込む際には、ソースコードの依存関係を更新することが重要です。GitHub Dependabotのようなソフトウェア構成分析ツールを使って、依存関係を最新の状態に保つことができます。
ブガサート
log4jの脆弱性の後、セキュリティの専門家であるMatthew Sullivan氏は、セキュリティやITの専門家に高い重要な脆弱性を警告する「Bugalert」という新しいサービスをリリースしました。Bugalertの唯一の目的は、深刻なソフトウェアの欠陥を電子メール、電話、またはSMSで迅速に通知することです。
Bugalert は現在、プログラムの開発と改良のために貢献者を募集しています。貢献に興味のある方は、Github issueをご利用ください。
コメント