|
|||||||||||||||||||||
| 前のページ 1 2 3 | |||||||||||||||||||||
| SQLインジェクションによるデータベースの不正操作 | |||||||||||||||||||||
|
SQLインジェクションは昨年以降、実際の被害が多発し、大きく取り上げられるようになった問題である。昨年度の弊社セキュリティ診断でも、3割以上のWebサイトにこの問題が存在したという結果がでており、多くのシステムが抱えている問題であることが裏付けられる。 ![]() 図5:SQLインジェクションによるデータベースの不正操作 SQLインジェクションの具体的な攻撃原理などについての説明は、複数の機関から公表されているため、今回は割愛するが、本脆弱性を利用した攻撃手法はより高度化している。アプリケーションエラーを発生させることでデータベース中の任意の情報を画面中に表示させる手法や、画面上には重要情報は何も表示されないにも関わらず、アプリケーションの挙動の変化からデータベースの内部データを推測していく、ブラインドSQLインジェクションという手法もでてきており、より脅威が増加したと考えられる。 この問題に関しては脆弱性を作りこんでしまいやすいパターンというものは存在しない。あらゆるデータベースアクセスが発生する場所で、問題が存在する可能性がある。中には、ログイン認証以降の複雑な画面では対策されているにも関わらず、直近で追加開発された新規ユーザ登録画面での郵便番号検索で問題が見つかり、そこから登録済みのユーザ情報を含む、全データベースレコード情報を引き出せてしまうといったWebサイトも存在した。 SQLインジェクションは、問題が見つかって、後から対策を施すには非常に手間がかかる場合が多い。また、1箇所でも対策漏れがあれば、データを引き出せてしまえる可能性が残るため、確認テスト工数も膨大と成り得る。開発の着手前にあらかじめデータベースへのアクセス方法に関する取り決めを開発者内で行なっておけば、このような余分なコストはほとんどかからないといえる。 この脆弱性は、本来もっとも防衛したいデータベースの情報が、漏洩/改竄/破壊されてしまうという結果につながるものであり、データベースのセキュリティの設定に問題があると、被害が拡大する可能性がある。例え1箇所に漏れが発生しても、被害を最小限に食い止められるように、アプリケーションだけの対策に留まらず多層防衛の観点で複数の対策を施しておきたい。
表2:SQLインジェクション対策の例 |
|||||||||||||||||||||
| おわりに | |||||||||||||||||||||
|
3大脆弱性に関して、発生しやすいパターンやその対策を紹介した。これらは多くのWebサイトに潜んでいる危険性の高い問題である。自社で公開しているWebサイトに同様の問題がないことを確認していただきたい。 また、実際に発生しているその他の事件にも目を向けたい。警察庁の不正アクセス行為の発生状況や、IPA(独立行政法人 情報処理推進機構)のコンピュータウイルス・不正アクセスの届出状況で、繰り返し被害の上位にくる問題として、ユーザのパスワード管理不備による不正アクセスがあげられる。ログインIDと同じパスワードや、何らかの関連情報から推測が容易なパスワード(メールアドレスのアカウント部など)を設定してしまったユーザが、それを犯行者に推測され、なりすましを受けてしまうという問題である。 利用者に注意を呼びかけることも必要であるが、そもそもこのような脆弱なパスワードが設定できないように、システム側のパスワード設定ポリシーを見直す必要もある。 一般的なシステムであれば、パスワードの設定可能最低文字数や、英数字の混在を必須とするなどの制約を設けるようにしている。Webサイトにおいても、そこに、ログインIDと同じパスワード、もしくはログインIDを含む文字列などの安易な設定を拒否するような制約機能を追加すべきであろう。 Webサイトについては、こういったWebサイトを取り巻く脅威を洗い出し、確保すべきセキュリティレベル(ポリシー)にそった対策を適切に採用しながら、構築を行なっていく必要がある。アプリケーションだけの対策で安全性を確保することがコスト的に難しい場合でも、運用方法を含めてトータルに解決できる方式を検討していきたい。 次回は、Webサイトのセキュリティで考慮すべき対策として、内部関係者による情報漏洩という視点にて解説する。 |
|||||||||||||||||||||
|
前のページ 1 2 3 |
|||||||||||||||||||||
|
|
|||||||||||||||||||||
|
|
|||||||||||||||||||||
|
|||||||||||||||||||||
|
|
|||||||||||||||||||||
|
|||||||||||||||||||||
|
|
|||||||||||||||||||||
|
|||||||||||||||||||||


