0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アプリケーションセキュリティ対策

Last updated at Posted at 2022-10-26

アプリケーションセキュリティ

セキュリティバイデザイン

ソフトウェアや情報機器などを含むシステムの企画・設計段階から、セキュリティへの方策を考慮しておくこと。
結果的に運用コストの削減につがなる。特にIoT機器をシステムの一部と捉えることが重要になる。

プライバシーバイデザイン

セキュリティバイデザインと同様な考え方になる。
企画・設計段階からプライバシーの確保を考慮しておくこと。

WAF(Web Application Firewall)

Webアプリケーションの脆弱性を突く攻撃から守るための機器またはソフトウェア。
クライアント側からWebアプリケーションに渡される入力などの通信内容を、あらかじめ設定した検出パターンに基づいて検査することで、攻撃と見做されるアクセスを遮断できる。また、クライアント側のWebブラウザとWebサーバ間に設定するため、複数のWebアプリケーションをまとめて、SQLインジェクションやクロスサイトスリプティングなどから保護することが可能になる。

  • WAFはWebアプリケーション内に直接実装するものではなく、Webアプリケーションの前面やネットワークに配置し、脆弱性を悪用した攻撃を検出・低減する対策です。WAFの形態によっては、複数のWebアプリケーションに対する攻撃をまとめて防御することもできます。WAFは直接管理・改修することができないWebアプリケーションに対策を施したい場合や、Webアプリケーションの脆弱性を修正することが難しい場合に有効です。あるいは修正に時間が掛かるためすぐに対策を採りたい場合にも役立ちます。
    出典 https://www.jbsvc.co.jp/useful/security/what-is-waf.html

  • ファイアウォールやIPS/IDSではカバーできない範囲のセキュリティ対策が行えるとされているWAFですが、どのような仕組みになっているのでしょうか。

  • WAFでは、攻撃の検知に「シグネチャ」を用います。シグネチャとは、アクセスのパターンを記録しているものです。Webアプリケーションへのアクセスのパターンを、シグネチャを用いて照合し、通信可否の判断を行う仕組みです。
    シグネチャの定義の方法には、ブラックリスト型とホワイトリスト型があります。
    • ブラックリスト型
      ブラックリスト型では既知の攻撃パターン、すなわち「拒否する通信」をシグネチャに定義しておき、シグネチャに一致する通信を拒否します。複数のWebアプリケーションに対して適用することが可能ですが、未知の攻撃には対応することができません。ブラックリスト型で最新の攻撃を検知するためには、攻撃の方法が分かり次第、シグネチャの更新が必要となります。
    • ホワイトリスト型
      ホワイトリスト型は、「許可する通信」をシグネチャに定義し、シグネチャと一致しなかった通信についてはすべて拒否し、不正アクセスの防止を図っています。未知の攻撃を防ぎ、Webアプリケーションに応じて柔軟な対応ができるのです。一方で、「許可する通信」の定義が難しく、Webアプリケーションごとにホワイトリストを用意する必要があるため、運用が大変になる可能性があります。

セキュアプログラミング

セキュアプログラミングの基本は、脆弱性を作らないことと、予防としての準備をしておくこと。
具体的には、外部入力のデータはすべて検査する、外部出力するデータは問題が起こらないように加工するシンプルな設計にする許可でなく否定ベースでアクセスを決める、多層防御を行い被害を限定する、などを行う。

脆弱性低減技術

開発するアプリケーションは、さまざまな検査を行うことにより、機能テストでは発見の難しいバグや脆弱性を発見できる。方法としては次のようなものがある。

ソースコードの静的テスト

主にソースコードについて実行を伴わずに検査する方法。
脆弱性に関わるコーディングパターンを早期に見つけ出すことができる。

プログラムの動的テスト

プログラムを実行した結果を解析する方法。
既知の脆弱性の発見は、```代表的な攻撃手法を試して特徴的な応答を観察する脆弱性診断がある。

ファジング(fuzzing)

通常ではあり得ない、予想不可能なデータを投入することでバグや脆弱性を見つけ出す検査手法。入力データのサク英は手作業のほか自動で作り出したり、データの組み合わせをテストできるファジングツールを用いる。

  • ファジングとは、ソフトウェアテストの手法の一つで、ファズ(fuzz)と呼ばれる通常想定されていない「不正データ」「予期せぬデータ」「ランダムなデータ」を対象の製品・システムに与え意図的に例外を発生させ、潜在的なバグ・脆弱性を検出する手法です。
    出典 https://www.veriserve.co.jp/service/detail/fuzzing.html

関連記事

出典

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?