Perlセキュリティ対策
スポンサードリンク
perlには、openやsystem関数をはじめとして外部のプログラムを起動する関数が複数ある。これらの関数は引き渡す文字列のチェック(サニタイジング)を十分に行わないと重大な問題を引き起こす可能性を秘めています。
→サニタイジングの詳細を見る
perlの中でも代表的なopen関数とsystem関数の脆弱性とその対策について紹介します。
open関数
問題点
・ディレクトリトラバーサル(不正なディレクトリへのアクセス)
・"|"や";"を用いた不正なコマンド実行
・ナル文字を用いた不正なコマンド実行
対策
・open関数の変わりに、sysopen関数を用いる
・入力データのチェックを行う
|
system関数
問題点
・引数をコマンドとして実行してしまう
対策
・execやeval関数を代用する
|
その他の対策として、Taintモードがあります。Taintモードには、環境変数やユーザの入力データなど、外部から与えられた警戒すべきデータを汚染データとして検出し追跡する機能があります。
|
|
|