1. HOME
  2. ブログ
  3. コラム
  4. 第20回 コラム(2019/11/12)

BLOG

ブログ

コラム

第20回 コラム(2019/11/12)

【脆弱性のないWebアプリを構築する】
株式会社ラックの2018年のセキュリティ診断レポートでは、Webアプリに54%のMedium以上(クロスサイトスクリプティング、SQLインジェクションなど)の脆弱性があると報告されるなど、脆弱性のあるWebアプリが多いといわれている。

情報処理推進機構(IPA)のWebアプリの脆弱性関連情報に関する届出は、毎年100件程度だが、2019年は1,000件と急増している。原因としては①脆弱性への対応は開発ベンダー任せである、②納期が一層厳しくなり、脆弱性対応に十分な時間が取れない、③オープンソースで簡単に開発できるツールが提供され、初心者でもプログラム開発ができるようになり、脆弱性への考慮が不十分、などがある。脆弱性への対策として「診断サービス」があり、無料で検査できるものがある。

顧客のWebサイトにソフトのインストールや設定変更が不要で、サービス提供会社がSSL通信やCookieなどの項目に限定して検査を行い、結果報告されるので簡単に利用できる。
例えば、CookieはWebブラウザに一時的に少量の情報を保存する仕組みである。パスワードなど重要な情報を保存しない運用ルールが求められている。

診断サービスでCookieにパスワード保存の脆弱性が見つかると、パスワードをCookie以外の場所に保有する必要があり、ログイン処理やセッション管理など見直す必要がある。
無料診断サービスで脆弱性が見つかると、有料診断を勧められるだろう。Webサイトの脆弱性診断には「SQLインジェクション」「クロスサイトスクリプティング」「OSコマンドインジェクション」「HTTPヘッダインジェクション」「認証」「セッション管理の不備」「アクセス制御の不備・欠落」など多岐にわたり、発見した時の対策には時間と工数がかかる。複数サイトで発見された場合にはサイト毎にプログラム修正が必要となり、負担はより大きくなる。

診断サービスのような脆弱性に対して事後対策のツールでは、顧客や開発会社の負担が大きく、当たり前のように利用されるのは難しいと思われる。
ソースコードの脆弱性を検査するツールがある。Eclipseに組み込んで使うタイプもあるので、必ずしも事後とは限らないと思うが、あくまでも検査ツールにつき、修正作業は手作業になり、その作業負荷が重いと思う。
脆弱性を自動排除する仕組みがないと、脆弱性のあるアプリは今後も増えていくだろう。脆弱性のないアプリを作成できる開発ツールがあれば、根本的な解決につながっていくのではないか。
当社が推奨するWebアプリケーション生成ツール「Wagby」は、脆弱性のないプログラムを自動生成している。Webセキュリティに関する既知の課題に対応しており、新しい攻撃が発見されたらすぐに対応を行っている。
前述のCookieであれば、セッションIDの管理に用いており、重要情報は保存していない。脆弱性がないように開発ツールにあらかじめ組み込んでいる。

開発元のジャスミンソフト社では、Wagbyで生成したシステムに脆弱性診断テストを実施しても問題がない、と述べている。
脆弱性に対するWagbyの対応内容は、以下を参照してください。
【Web セキュリティに対する Wagby の対応】
https://wagby.com/wdn8/WagbySecurity.pdf
【セキュリティ実装対応表/外部のセキュリティツールの診断結果について】
https://wagby.com/wdn8/IPASecurity.html

脆弱性のないプログラムを自動生成することにより、以下のメリットがある。
①開発者が脆弱性対策のロジックを気にせずに開発に専念できる。
 スクラッチ開発では機能要件のプログラミング中やプログラミング後に、脆弱性問題を確認して、
 影響がありそうなロジックがあれば個別対応を行う。この作業が一切不要になり、機能要件の開発
 に集中できる。
②開発ベンダーや技術者のレベルに関係なく、脆弱性のない品質の高いシステムが構築できる。
 開発言語の実績がある開発ベンダーやベテラン技術者なら、過去に開発した脆弱性アプリを参考に
 脆弱性対応を組み込むことができる。脆弱性のないアプリが自動生成されれば、開発言語の実績が
 ない開発ベンダーや初級プログラマー、ノンプログラミングの開発ツールなら顧客自身が開発して
 も、技術力のある開発ベンダーや技術者と同等の高品質なシステムが構築できる。
③新たなセキュリティホールが見つかっても、開発ツール側で対応されるので、VUPすることにより
 解決でき、アプリの脆弱性の調査や脆弱性発見時のプログラム修正が不要になる。初期開発終了後
 の保守フェーズでも、開発言語に新たな脆弱性がないか常に調査を行い、発見されるとシステムに
 影響がないか、影響があれば対応を行う必要がある。脆弱性のないプログラムを自動生成するツー
 ルであれば、メーカーより脆弱性対応完了の案内がされて、対応したプログラムにVUPするだけで
 対応でき、保守フェーズでの脆弱性対策への意識が不要になる。

開発ベンダーは脆弱性のないシステムを構築できるので、顧客から高い信頼を得られるだろう。Wagbyはノンプログラミングの開発ツールにつき、顧客が開発することもでき、脆弱性を意識することなく高品質なシステムを構築できる。

Wagbyのような脆弱性のないアプリを作成できる開発ツールが浸透することで、脆弱性のないアプリが増え、脆弱性関連の事故は減少していくと思われる。
今後もWebアプリケーションの構築を考えており脆弱性対策が心配な方、脆弱性に対して抜本的な対策を検討中の開発ベンダーの方は、ぜひお問い合わせください。

文責:天井 誠一

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

関連記事