• 検索結果がありません。

Webアプリケーション開発のためのソフトウェアセキュリティ知識ベースの開発

N/A
N/A
Protected

Academic year: 2021

シェア "Webアプリケーション開発のためのソフトウェアセキュリティ知識ベースの開発"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 75 回全国大会. 3B-3 Web アプリケーション開発のためのソフトウェアセキュリティ知識ベースの開発 櫨山 淳雄† 東京学芸大学 1. はじめに インターネット上でのサービスは増大の一途を 辿っている。それに伴い、コンピュータセキュリ ティの重要性が高まってきている。特に近年、多 くのサービスがソフトウェアで実現され、その複 雑さが増大しているため、ネットワークセキュリ ティ技術(アクセス制御や暗号技術など)のみでな くソフトウェアセキュリティ技術の重要性が認識 されてきた[7]。ソフトウェアセキュリティはソフ トウェア開発過程全体でセキュリティを扱い、セ キュアなソフトウェアを開発することを目指す[7]。 近年ソフトウェアセキュリティに関する標準、開 発プロセス、パターン等が活発に開発されてきた。 しかし、それらの間の関係性が整理されておらず、 利用に困難を来している[6]。 そこで本論文では、これまでに提案されてきた ソフトウェアセキュリティに関する知識を関連付 けた知識ベースを提案する。 2. ソフトウェアセキュリティ知識ベースのための 概念モデル Barnum と McGraw はソフトウェアセキュリテ ィのための知識を、7 つの知識カタログ (principle, guideline, rule, attack pattern, vulnerability, exploit, historical risk)とその関連 としてモデル化している[1]。また櫨山は Barnum と McGraw のモデルを拡張した概念モデルを提案 している[6]。図 1 に櫨山が提案した概念モデルを UML のクラス図として表している。. 図 1.セキュリティ知識ベースのための概念モデル. †. Development of Software Security Knowledge Base for Web Application Development, Atsuo HAZEYAMA, Tokyo Gakugei University.. 3. ソフトウェアセキュリティ知識ベース 知識ベース構築にあたっては、Web 上で公開さ れ入手可能な既存の成果を使用することとする。 プロセスとしてライフサイクル全体を扱ってい ることから CLASP (Comprehensive, Lightweight Application Security Process)[9] を 使 用 す る 。 Principle として CLASP の Principle[10]、Saltzer と Schroeder の Principle [12]、NIST の Principle[13]を 使用する。セキュリティパターンとして Yoder と Barcalow のパターン[15]を使用する。Guideline と し て マ イ クロ ソ フ トの設 計 ガ イ ドラ イ ン [8]と Mozilla のセキュアコーディングガイドライン[4] を使用する。Rule として OWASP (The Open Web Application Security Project) Cheat Sheet( 例えば [11])を使用する。Attack pattern として CAPEC (Common Attack Pattern Enumeration and Classification)[3]を使用する。Vulnerability として CWE[5]を使用する。 知 識 の 関 連 付 け に は 、 CLASP プ ロ セ ス と Principle の関連に着目した Buyens らの研究[2]、 Principle とセキュリティパターンを関連付けた Wassermann と Cheng の研究[14]、Attack Pattern と Principle、Guideline、Vulnerability を関連づけた CAPEC[3]を参考にした。また、著者が各知識の 記述を精査して関連付けを行った。 4. Web アプリケーションに対する攻撃 Web アプリケーションに対する主たる攻撃とし て ク ロ ス サ イ ト ス ク リ プ テ ィ ン グ (Cross-Site Scripting。以下 XSS)と SQL インジェクション (SQL Injection。以下 SQLI)がある (例えば Top 10 Most Critical Web Application Attacks, http://www.websitedefender.com/web-security/owasptop-10/参照)。 XSS は妥当性の確認されていないデータに基づ いて HTML ページ中のリンクのようなコンテン ツを生成する Web アプリケーションを悪用する 攻撃である。SQLI は悪意のある SQL 文により、 データベースに不正にアクセスする攻撃である。 5. ソフトウェアセキュリティ知識ベースの検証 本節では XSS と SQLI に対して知識ベースが対 応可能かを検証する。これらの攻撃の詳細につい て CAPEC を参照する。 (1)XSS に対する検証 XSS に関して CAPEC によると、入力の妥当性 確認を行うことや出力のエンコーディングを行う. 1-291. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 75 回全国大会. ことが記述されている。 入力の妥当性確認について、CLASP プロセス で は Activity “Implement validation and error handling on function or method input”で言及されて おり、CLASP Principle でも“Input validation”が言 及されている。また、MSDN の設計ガイドライン 並びに Mozilla のセキュアコーディングガイドラ インではともに“Input validation”として具体的に 何を行えばよいかを提示している。MSDN の設計 ガイドラインでは、「すべての入力を悪意あるも のと仮定すること」、「アプローチの集中」、 「クライアント側での検証に依存しないこと」、 「正規化の問題に注意すること」、「入力を制 限・拒否・校正すること」を挙げている。Mozilla のセキュアコーディングガイドラインでは、「受 入れ可能な文字タイプを定義すること」、「(最 小/最大)データ長を規定すること」などを挙げて いる。「アプローチの集中化」に関して Yoder と Barcalow は“Single Access Point”を提案している。出 力のエンコーディングについては、CLASP プロ セスでは Activity “Implement validation on function or method outputs” で 言 及 さ れ て い る 。 ま た 、 Mozilla セキュアコーディングガイドラインでは 出力エンコーディングが XSS やインジェクショ ン攻撃を防止する基本的な手段であると述べてい る。さらに、Mozilla セキュアコーディングガイ ドラインの出力エンコーディングの記述から OWASP の XSS Prevention Cheat Sheet にリンクが 張られており、そこでは具体的なルール(例えば 「HTML のタグを表す<>を&lt や&gt に置き換え る」等)が記述されている。 (2)SQLI に対する検証 SQLI に関して CAPEC によると、「入力の妥当 性確認を行うこと」や「エラーページのカスタム 化を行うこと」が記述されている。 入 力 の 妥 当 性 確 認 は XSS と 同 じ で あ る 。 Mozilla セキュアコーディングガイドラインの出 力エンコーディングの記述から OWASP の SQL Injection Prevention Cheat Sheet にリンクが張られ ており、そこでは具体的なルールが記述されてい る。エラー処理については、Mozilla セキュアコ ーディングガイドラインの“Error handling”に、エ ラー処理の推奨として、「表示するメッセージを 一般的な内容にすること」、「ログファイルを記 録すること」を挙げている。 6. おわりに 本稿ではソフトウェアセキュリティのための知 識ベースをソフトウェアセキュリティの分野で開. 発されてきた知識を関連付ける形で構築した。そ して Web アプリケーションの主たる攻撃である XSS と SQLI に対して知識ベースに蓄積されてい る知識を用いてプロセスから始まりコーディング の具体的な対応方法まで関連付けて把握できるこ とを示した。今後は知識ベースを活用したセキュ アなソフトウェア開発の実例を蓄積していきたい。 謝辞 本研究の一部は科学研究費補助金基盤研究 (C) 22500910 の助成のもとで行われた。 参考文献 [1] Sean Barnum and Gary McGraw, Knowledge for Software Security, IEEE Security & Privacy, pp.74-78, No.2, 2005. [2] Koen Buyens, Riccardo Scandariato, and Wouter Joosen, Process Activities Supporting Security Principles, Proc. 31st Annual International Computer Software and Applications Conference (COMPSAC2007), Vol.2, 2007. [3] CAPEC, http://capec.mitre.org. [4] Michael Coates, Chris Lyon and Mark Goodwin, WebAppSec/Secure Coding Guidelines, https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guideline s (Accessed 3 Jan. 2012). [5] CWE, http:// http://cwe.mitre.org. [6] Atsuo Hazeyama, Survey on Body of Knowledge Regarding Software Security, Proc. 13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel & Distributed Computing (SNPD2012), pp.536-541, IEEE CPS, 2012. [7] Gary McGraw, Software Security, IEEE Security & Privacy, Vol.2, No.2, pp.80-83, 2004. [8] MSDN, セキュリティ保護された Web アプリケーショ ン の 設 計 ガ イ ド ラ イ ン , http://msdn.microsoft.com/jajp/library/ff648647(d=printer).aspx (Accessed 8 Oct. 2012). [9] OWASP, CLASP Activities, https://www.owasp.org/index.php/Category:Activity (Accessed 3 Jan. 2012). [10] OWASP, CLASP Security Principles, http://www.owasp.org/index.php/CLASP_Security_Principles (Accessed 3 Jan. 2012). [11] OWASP XSS(Cross Site Scripting) Prevention Cheat Sheet, https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_ Prevention_Cheat_Sheet (Accessed 1 Dec. 2012). [12] Jerome H. Saltzer and Michael D. Schroeder, The Protection of Information in Computer Systems, Proc. the IEEE, 63(9), pp. 1278–1308, 1975. [13] Gary Stoneburner, Clark Hayden, and Alexis Feringa, NIST Special Publication 800-27 Rev A, Engineering Principles for Information Technology Security (A Baseline for Achieving Security), Revision A, 2004, http://csrc.nist.gov/publications/nistpubs/800-27A/SP800-27RevA.pdf (Accessed 3 Jan. 2012). [14] Ronald Wassermann and Betty H.C. Cheng, Security Patterns (Accessed 3 Jan. 2012), http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.118.7 818&rep=rep1&type=pdf. [15] Joseph Yoder and Jeffrey Barcalow, Architectural Patterns for Enabling Application Security, Proc. 4th Conference on Patterns Language of Programming (PLoP’97), 1997.. 1-292. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

National Institute of Standards and Technology, Special Publication 800-18, Guide for Developing Security Plans and Information Technology Systems, December 1998. National Institute

3) Sato T, Kase Y, Watanabe R, Niita K, et al: Biological Dose Estimation for Charged-Particle Therapy Using an Improved PHITS Code Coupled with a Microdosimetric Kinetic

また,文献 [7] ではGDPの70%を占めるサービス業に おけるIT化を重点的に支援することについて提言して

Department of Central Radiology, Nagoya City University Hospital 1 Kawasumi, Mizuho, Mizuho, Nagoya, Aichi, 467-8602 Japan Received November 1, 2002, in final form November 28,

12) Security and Privacy Controls for Information Systems and Organizations, September 2020, NIST Special Publication 800-53 Revision 5. 13) Risk Management Framework

Article 58(3) of UNCLOS provides that in exercising their rights and performing their duties in the EEZ, “States shall have due regard to the rights and duties of the coastal

はじめに

欄は、具体的な書類の名称を記載する。この場合、自己が開発したプログラ