検索
連載

Webアプリケーションの脆弱性を総括するWebアプリケーションに潜むセキュリティホール(14)(3/5 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

Path Traversal

 指定されたディレクトリの外にあるファイルを読み込ませる攻撃である。WebブラウザからのURL指定によるアクセスはDocumentRootで指定されたディレクトリよりも上にあるファイルにはアクセスできないが、Webアプリケーションでは通常どのファイルにもアクセスできる。これを利用して、Webアプリケーションに「../../../etc/passwd」のようなパラメータを渡すことで、不正にアクセスする攻撃である。

脆弱性が存在する可能性がある個所

 URLパラメータで明示的に指定されたファイルを表示するアプリケーションが主なものだろう。これは、第1回「サーバのファイルが丸見え?!」で紹介したアプリケーションである。

html.cgi?file=aboutme

上記のように指定するとaboutme.htmlというファイルを読み込んで表示する仕様である。このような作りであってもfileの値としてファイル名以外は指定できなくなっていれば問題は発生しない。

対策

  • 入力チェック

前述したように想定している文字以外は受け付けないようにする。ファイルを表示するだけのアプリケーションであれば英数字だけを受け付けるようにすれば、ほぼ問題ないだろう。

言語別の対策例

 特に言語に依存するものでもないためperlの例だけを示しておこう。

perl

# 入力チェック(ファイル名は、英数字のみ)
if($file =~ /^[0-9a-zA-Z]+$/){
 # ok
}else{
 
# ng
} 

バックドアとデバッグオプション

 バックドアは開発者が不正に作り込んだ裏口、デバッグオプションは開発時のデバッグ用のコードがそのまま残ってしまっているものである。バックドアに関しては発見するのはかなり難しいが、デバッグオプションについては後述する「クライアント側コメント」によって発見されることがある。

脆弱性が存在する可能性がある個所

 完全に開発者に依存するため推測は不可能である。使途不明のパラメータが存在する場合、この脆弱性が隠れている可能性がある。

対策

 コーディングで防げるものではない。開発段階でのソースコードチェックなどで見つけ出すしかないのではないかと思う。

言語別の対策例

 言語に依存する脆弱性ではない。

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  3. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  4. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  5. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  6. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  7. 増える標的型ランサムウェア被害、現場支援から見えてきた実態と、脆弱性対応が「限界」の理由
  8. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  9. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  10. CrowdStrike、約850万台のWindowsデバイスで発生したブルースクリーン問題を謝罪 原因と対処法を公開
ページトップに戻る