サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2) - (page 3)

池田雅一(テクマトリックス)

2007-09-13 20:22

コーディング規約

 これらのチェックをコードのすべてに対して行うのは非常に大変な作業となる。そこで、レビューしやすいように以下のようなコーディング規約を決めることをお勧めする。

●安全でない変数:関数のプレフィックスに「us」を、安全な変数、関数のプレフィックスに「sf」を命名規約で指定する。たとえば、「sfHoge=unHuga」といったようにプレフィックスが異なると脆弱性の可能性があるとすぐに判断できる(間違ったコードは間違って見えるようにするを参照)。

●安全なライブラリ:フレームワークの機能を使用する。すでに存在しているライブラリや、フレームワークの機能を自作すると、バグが混入する危険性がある。既存の安全なものがあれば、それを利用するようにしてほしい。この結果、コードレビューの手間も減らすことができる。

 これら以外にも、言語の仕様上脆弱性となりうることについて対策がとれるようなコーディング規約を決める必要がある。たとえばPHPであれば、使用する変数はすべて初期化するなどが挙げられる。

 また、コーディング規約を適切に定めることで、メンテナンス性が向上し、結果的にバグの少ないコードを作成することが可能となる。

 コードレビューを行うことで、コードに存在する問題を発見し、早期に対処することが可能。また、コードレビューだけでなくペアプログラミングという2人1組でコードを書くという手法もコーディング中のケアレスミスを防ぐことが可能となるので、脆弱性を防ぐには効果的だ。

テスト

 最後にどういった点についてテストをするのか説明する。

 脆弱性は意図していない動作をしてセキュリティ上の問題を発生させることなので、脆弱性の確認のためのテストでは、異常系の確認を行うことが主となる。先に述べたように、入力データの内容によってアプリケーションの動作をある程度制御できる。

 また、HTTPはステートレスなプロトコルであるため、ウェブアプリケーションではページ単位で処理が行われる。このためページ遷移を無視して、処理を行わせることができる。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]