(Photo by:IPA「セキュリティ要件確認支援ツール」)
ウェブアプリケーションのセキュリティ脆弱性を攻撃され、個人情報やクレジットカード情報の漏洩が毎年のように報道されています。
ウェブアプリケーションやウェブシステムを開発するベンダーに求められていることは何でしょうか。また、お客様は危機意識を持ちセキュリティ対策に対する投資の必要性を認識しているのでしょうか。
本ブログでは、政府が公表しているセキュリティ対策基準や技術参照モデルを利用して、各種セキュリティ要件リストの作成を支援するツールをご紹介します。
このセキュリティ要件の活用方法は、情報システムに合わせて調達物品のセキュリティ要件を確認することが可能です。
このような方におススメ
- 開発する上で意識しなければいけないセキュリティを確認できます。
- 情報システムに必要な調達物品のセキュリティ要件を確認出来ます。
前回(IPAのウェブアプリケーション・セキュリティ要件を確認する(SQLインジェクション))は、クレジットカード情報が漏洩したECサイトでの判例からIPAで提示されているSQLインジェクション対策について説明しました。
今回はSQLインジェクションに限定せず、IPAが提供している「セキュリティ要件確認支援ツール」を使い、ウェブアプリケーション全体に求められるセキュリティ要件を見て行きます。
セキュリティ要件確認支援ツールとは
セキュリティ要件確認支援ツールは、政府が公表しているセキュリティ対策基準や技術参照モデルの情報から、必要とするセキュリティ対策項目のピックアップ、セキュリティ要件のリストアップ、それらの妥当性確認一覧を章立てして出力を行うツールです。要件レベルでの項目抽出のため、セキュリティ対策の具体的な方法は記述されていません。
どのような出力結果を得られるのか想像が付きづらいと思いますので、出力結果1ページ目のスナップショットを掲載します。体裁が整っているのと、シートが項目によって分かれており、もっともらしい要件定義書に見えるかと思います。
セキュリティ要件を出力してみる
文書管理を目的とした社内利用するウェブアプリケーションを構築するシーンを想定し、実際にセキュリティ要件を出力してみます。セキュリティ要件確認支援ツール(URL:https://isec-sras.ipa.go.jp/)を開いて「新規検討」ボタンをクリックして開始して下さい。
検討内容の選択ページで、技術参照モデル(TRM)と遵守すべきセキュリティポリシーを初期選択のまま「検討開始」を押します。
次に調達モデルの選択で文書管理等内部業務システムを選択します。WebサーバーとDBサーバーにチェックが入っています。ウェブアプリケーションらしくするため、追加でアプリケーションファイヤーウォールとHTTPSの2項目にチェックを追加して「次へ」を押します。
セキュリティ機能要件の選択ページになりました。選択した機能・サービスを切り替えると下のセキュリティ機能要件テーブル内が切り替わりチェックを入れる事ができます。今回は変更を加えずにそのまま「次へ」を押します。
セキュリティ要件の選択ページになりました。「遵守すべきセキュリティポリシー」で選択した内容(政府機関統一基準の遵守事項 平成26年度版)の大中小項目が表示されています。選択した機能・サービスを切り替えると下のセキュリティ要件テーブル内が切り替わりチェックを入れる事ができます。変更を加えずにそのまま「次へ」を押します。
妥当性確認要件の選択ページになりました。少し具体的な確認項目が列挙されています。このページも今までと同じく、選択した機能・サービスを切り替えると下テーブル内が切り替わりチェックを入れる事ができます。変更を加えずにそのまま「次へ」を押します。
アンケートページになりました。これで必要情報の入力が完了です。「設定ファイルの保存」を押すとCSVファイルのダウンロードになりますので、再度ツールを利用する場合は、このファイルを保存します。今回は「戻る」ボタンを押して妥当性確認要件の選択ページに戻ります。「終了ボタン」を押すと入口のページに戻ります。
妥当性確認要件の選択ページの、絞り込み条件の右側「一括出力」ボタンを押すとエクスポート画面になります。チェックボックスが全て入っている状態でエクスポートを押すと、XMLのダウンロードになりますので、これを保存してエクセルで開きます。
エクセルで開くと本記事の序盤で見たスナップショットの詳細が表示されます。実際の手順を通してみると、分割されているシートの意味、シート内に記載されているセキュリティ要件の意味が分かると思います。
セキュリティ要件のシート内にあるWebサーバーの項目を見ると、基本対策としてa~mまで以下に対して「脆弱性を排除すること」とのみ記載されています。
a) SQLインジェクション脆弱性
b) OSコマンドイジェクション脆弱性
c) ディレクトリトラバーサル脆弱性
d) セッション管理の脆弱性
e) アクセス制御欠如と認可処理欠如の脆弱性
f) クロスサイトスクリプティング脆弱性
g) クロスサイトリクエストフォージェリ脆弱性
h) クリックジャッキング脆弱性
i) メールヘッダインジェクション脆弱性
j) HTTPヘッダインジェクション脆弱性
k) evalインジェクション脆弱性
l) レースコンディション脆弱性
m) バッファオーバーフロー及び整数オーバーフロー脆弱性
そのため開発したウェブアプリケーションに合わせたテストケースの準備が必要になります。また、数百万円規模の開発案件の場合は出力されたセキュリティ項目に合わせて厳密にテストをするとテスト量が多くなるため為、開発予算に大きく上乗せが必要になるかも知れません。
要約・まとめ
IPAまたは政府発行セキュリティ対策のガイドラインに沿ったセキュリティ要件出力ツールの使い方の紹介と簡単な説明をしました。サイト規模やクライアントの性質によっては体系化されているセキュリティ要件を軸にテストを行う事が求められます。
SQLインジェクション、XSS(クロスサイトスクリプティング)の対策を行い、他セキュリティ要件も満たしたからと行って、セキュリティリスクをゼロになる訳ではありません。ベンダーとしてセキュリティへの責任を果たし、ベンダーと顧客でセキュリティ要件に合意し、セキュリティの重要さを理解して検品作業が実施されていても、利用したフレームワークやOSの脆弱性によって後からセキュリティの問題が発生する事があります。
セキュリティ上の問題が原因で実損害が発生した場合、双方の話し合いによって解決を図るのが難しく訴訟へ進む事例が見られます。このような場合、双方に妥当な主張が存在するため訴訟の長期化が想定されます。訴訟になると弁護士への依頼、証拠の提出、反論の準備、裁判所への出席などの費用と時間を必要とし、なりより両社の信頼関係が失われます。セキュリティ対策を争点しないよう、ベンダーとして責任を果たしつつ顧客側にも予防線を張るように気を付ける事が肝要です。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
1 Comment
[…] 次記事では、ウェブアプリケーションにセキュリティ不備が紛れ込む事を防ぐためにユーザー企業側とベンダー側の両方で利用できる「セキュリティ要件確認支援ツール」を紹介して行 […]