“SI視点”でセキュリティのポイントを解説する本連載。第3回は、「アプリケーション開発」の観点から、特に見逃されがちな「イントラ環境のWebアプリケーションのセキュリティ」について注意すべきポイントを紹介します。
システム開発・運用担当者向けにセキュリティの勘所を解説する本連載。第1回、第2回では「データベースセキュリティ」を扱ってきましたが、第3回となる今回からは、「アプリケーション開発」の視点から考慮すべきセキュリティ上のポイントについて、2回にわたり解説します。
読者の皆さまの中には、情報システム部門が構築、運用している環境を利用し、自部門向けの「予実管理アプリケーション」などを自分たちで開発しているという方も多くいらっしゃるのではないでしょうか? いわゆる「EUC(End User Computing)」と呼ばれる開発方式ですが、筆者は普段、こうしたユーザー部門(経営管理部、営業部、経理部など)が開発したアプリケーションの保守・運用や改修を主な業務としています。
一口にEUCと言ってもさまざまなアプリケーションがありますが、よく見られるのは先に述べた「予実管理アプリケーション」のようなものを含む、「社内システムから出力される元データ(CSVファイル、Excelファイルなど)を『Oracle Database』『Microsoft SQL Server』『MySQL』などのデータベースに取り込み、Webアプリケーションや『Microsoft Access』『Windows Forms』などを利用してレポートを作成する」といったものです。
しかし、社内の限られた人だけが利用するアプリケーションだからといって、こうしたアプリケーションの開発・改修時に、セキュリティに配慮することを忘れてはいけません。そこで本稿では、筆者自身の経験も踏まえつつ、社内(イントラ環境)でのWebアプリケーション開発におけるセキュリティ上のポイントを解説します。
始めに、一般にWebアプリケーションにどんな脆弱(ぜいじゃく)性が存在し得るのかについて確認しておきましょう。下表は、情報処理推進機構(IPA)やOWASPが公開している資料と、@ITの記事に記載されている情報をまとめたものです。各資料の公開時期はそれぞれ2015年、2013年、2003年と開きがありますが、「SQLインジェクション」や「セッション管理の不備」など、いくつかの脆弱性については、昔から継続的に警告、啓発が行われていたことが分かります。
IPA(2015年) | OWASP(2013年) | @IT(2003年) | |
---|---|---|---|
SQLインジェクション | A1-Injection | Buffer Overflow | |
OSコマンドインジェクション | A2-Broken Authentication and Session Management | Cross Site Scripting | |
パス名パラメータの未チェック/ディレクトリトラバーサル | A3-Cross-Site Scripting (XSS) | Parameter Manipulation | |
セッション管理の不備 | A4-Insecure Direct Object References | Backdoor & Debug Options | |
クロスサイトスクリプティング | A5-Security Misconfiguration | Forceful Browsing | |
CSRF(クロスサイト・リクエスト・フォージェリ) | A6-Sensitive Data Exposure | Session Hijacking/Replay | |
HTTPヘッダ・インジェクション | A7-Missing Function Level Access Control | Path Traversal | |
メールヘッダインジェクション | A8-Cross-Site Request Forgery (CSRF) | SQL Injection | |
クリックジャッキング | A9-Using Components with Known Vulnerabilities | OS Command Injection | |
バッファオーバーフロー | A10-Unvalidated Redirects and Forwards | Client Side Comment | |
アクセス制御や認可制御の欠落 | Error Codes | ||
参考:『安全なウェブサイトの作り方』(IPA)、『2013 Top 10 List』(OWASP)、『サーバのファイルが丸見え?!』(@IT) |
以下は、これら3つの資料で共通して挙げられている脆弱性をピックアップしたものです。
このように、Webアプリケーションにはさまざまなリスクが存在します。これらに対処するにはどうすればよいのでしょうか? 次ページ以降では、イントラ環境に存在するWebアプリケーション開発において特に注意すべきポイントを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.