今回も安全なアプリケーションを作るためのチェック方法について説明していきたいと思う。前回から引き続き、各開発工程におけるレビューと適切なテストについてを紹介する。
コードレビュー
まずは、コードレビューでどういったことに注意して確認する必要があるか説明しよう。コードレビューのコツを理解するには、まずアプリケーションの動作について理解する必要がある。従って、最初にアプリケーションの動作について説明する。
多くのアプリケーションでは、何らかの入力(ユーザーにより入力されたデータだけでなく、ファイルや、時刻なども含む)を必要とし、入力されたデータの加工などの処理を行い、結果を出力する。出力された結果は、別のアプリケーション(ブラウザやデータベースなど)で入力データとして利用されることがある。
たとえば、あるECサイト用のアプリケーションの検索処理では、「category」というパラメータがあり、この値が「携帯電話」のとき、携帯電話関連商品の検索結果を返し、値が「PC」のときにはPC関連商品の検索結果を返すといったように、入力データの内容によって開発者が意図したとおりの処理をするといったことができる。
従って、適切な入力をアプリケーションに渡したり、適切なページにアクセスすることで、アプリケーションの処理を利用者が開発者の想定している範囲内で制御することができる。多くの脆弱性は、この入力データに想定外のデータを渡されることによって発生する。
このため、コードレビューでは、まずデータフローに注目する。データフローでは特に以下のことを確認してほしい。
- 入力データが設計段階で規定したパターンのみで構成されているかを確認する処理が適切に実装されているか?
- 設計段階で規定したエスケープ処理が出力直前に行われているか?
これらの確認を行うには、入力データと出力データを取り扱っているコードを順番にすべて追跡し、適切な処理がなされているかどうかを確認する。
これらは「第2回:“正しい”ウェブアプリのコーディングとは」で詳しく説明しているので、そちらも参考にしてほしい。
先にも述べているが、多くの脆弱性は入力データの検証と出力時のエスケープ処理を適切に行うことで防ぐことができる。適切にこれらの処理を実装するには、設計の段階で、正しい入力データの条件と、データの出力先アプリケーションの仕様を確認し、明確にしておく必要がある。
関連情報
-
Apache HTTP Serverに脆弱性:相次いでアップデート
9月7日(米国時間)、The Apache Software Foundationは、「Apache HTTP Server」のセキュリティー上の問題を解決したバージョン、「Apache 2.2.6、2.0.61、1.3.39」をそれぞれリリースした。 - Tomcatがセキュリティアップデート:XSSやセッションハイジャックの脆弱性
- シマンテック、「ノートン」 シリーズ新版を発売--パッケージ版は9月21日から
- IBM AIXにDOS攻撃など複数の脆弱性
- Apple、iTunesの脆弱性に対処
- Kerberosにバッファオーバーフローや任意のコードを実行される脆弱性
- テクマトリックス
「セキュリティ」 の新着情報
-
複数のデータセンターを分散させたままでBCP/DRを展開:山武
業務に必要なシステムをデータセンターで稼働させている企業は多いと思うが、災害復旧(DR)を中心とした事業継続計画(BCP)... - アップル、「iPhone」のSMS脆弱性を修正へ--IDG News Service報道
- シマンテック、アジア太平洋地域における中小企業のセキュリティ課題をレポート
- ATMのセキュリティに関する講演が中止に--米セキュリティカンファレンス
- スパムの83.2%がボットネットから--シマンテック調査
- セキュリティ 一覧へ »
「サイト脆弱性をチェックしよう!」 のバックナンバー
-
サイト脆弱性をチェックしよう!--第9回:AppScanによるアプリ脆弱性の自動検査
前回まで、主な脆弱性の検査方法について説明してきた。今回は、「IBM Rational AppScan」を例として、自動検査ツールについて説明しよう。 -
サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性
-
サイト脆弱性をチェックしよう!--第7回:「ディレクトリトラバーサル」と「強制ブラウジング」
-
サイト脆弱性をチェックしよう!--第5回:XSSの脆弱性を検査する方法
-
サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2)
- サイト脆弱性をチェックしよう! 一覧へ »
ZDNet Japan Essential Topic
-
業務効率化への第一歩はプロセス指向
まずは晩飯づくりからプロセスに分解してみよう! -
Windows 7の情報満載
MicrosoftのすべてがわかるZDNet Japanの総力特集
企画特集
-
セキュリティ&ユーザ事例【SIer Club】
最新のセキュリティ情報と提案事例が満載 -
SOA、BPM、SaaS −今、企業に必要なこと
ビジネス・アプリケーションの今を網羅する特設サイト -
中小企業のセキュリティリスクとは?
導入する側・される側 得するセキュリティ製品 -
インターネット上の悪意を未然に防ぐには?
ブラウザに備わったセキュリティ機能を徹底解説 -
ストレージメディア特設サイト開設
仮想化環境において最適なソリューションを! -
【徹底対談】運用管理ツールの賢い使い方
市場背景〜仮想化管理までアナリストが解説! -
ロリポップ!がリニューアル
【第1回】創業者の家入一真氏が語る誕生秘話!! -
集積度も性能も、業界最高水準のブレードPC
サーバの実装技術を、シン・クライアントへ応用 -
ESBでIT投資の無駄を劇的に解消する
IBM IMPACT 2009を徹底レポート! -
今注目の「サジェスト検索」−デモ掲載中
システムのユーザビリティに革命を起こす技術とは -
パンデミック対策特集
2009年のパンデミック発生から再考する事業継続計画 -
仮想環境を実現するソリューション特集
仮想化導入時、こんなところ気にしてますか? -
そのストレージで仮想化に対応できますか?
メリット盛りだくさんのサンのオープンストレージ製品 -
◆エン・ジャパン厳選求人☆毎週更新◆
不況下でも急成長の秘訣とは?注目企業の取組みも公開! -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
サーバー監視・運用のコストを削減するには
エージェントレス方式を用いたパトロールクラリスで -
エンタープライズにおけるSUSEの強み
次世代データセンターの基盤は11だ。 -
■ストレージ容量50%削減保証■
ネットアップによる削減保証キャンペーン実施中 -
サービス・ドリヴン・データセンター
コスト効果の高いデータセンター構築には?
ZDNet Japanからのお知らせ
- ご回答にはCNET_IDご登録が必要です。
-
5. lambda関数を使って
この5分間のビデオは、並列コードをより読みやすくするために、Threaded... -
6. 既知のバグをデバッグする
この4分間のビデオは、並列プログラムエラーが疑われる既知のバグをデバ...
新着企業動向
-
解散総選挙がもう近い?自分党選挙対策本部で自分のポスターが作れます。
ホビーク -
材料メーカー様向け環境ソリューション先進事例セミナー
富士通システムソリューションズ -
ラピッドサイト VPS 新プランリリース(月額7,350円〜)
GMOホスティング&セキュリティ -
SecureCube / Central
NRIセキュアテクノロジーズ - 企業動向一覧へ»
サーバやOS、アプリケーションなどの世界ではオープンソーススタンダードが市場を牽引する現在、ストレージの世界でもオープン化の流れが始まっている。
幸い今回は弱毒性で大事には至らなかったが、まだ油断はできない。企業活動を停止すると、大きな経済的損害や社会的信用の低下を招いてしまう。 
