Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ファイルアクセスに関する脆弱性

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for carotene4035 carotene4035
September 02, 2018
110

 ファイルアクセスに関する脆弱性

Avatar for carotene4035

carotene4035

September 02, 2018
Tweet

Transcript

  1. ディレクトリ・トラバーサルの影響 •  Webサーバ内のファイルの閲覧   –  重要情報の漏えい   •  Webサーバ内のファイルの改ざん、削除  

    –  Webコンテンツ改ざんによるデマ、誹謗中傷の書き込み   –  マルウェアのサイトに誘導する仕組みの書き込み   –  スクリプトファイルや設定ファル削除によるサーバ機能の停止   –  スクリプトファイル改ざんによる任意のサーバスクリプト実行
  2. 攻撃手法 •  Warning:  readfile()  expects  parameter  1  to  be  a

     valid  path,   string  given  in  /home/ubuntu/workspace/4a-­‐001.php  on  line   7  Call  Stack:  0.0008  233960  1.  {main}()  /home/ubuntu/ workspace/4a-­‐001.php:0  0.0009  234336  2.  readfile()  /home/ ubuntu/workspace/4a-­‐001.php:7   •  あれ、、、情報漏えいしないぞ
  3. 攻撃事例 •  公式サイド   –  (追記@4/10  17:00)問題の機器「Miele  Professional  PG  8528」は食器洗い機ではなく、

    「washer-­‐disinfector」(洗浄消毒器)とのこと。3月29日付けでMiele社がこれについての プレスリリースを出しており、「脆弱性があったことは事実だが、この機器は食器洗い機 ではなく消毒器である」「問題の脆弱性によってハッカーがパスワードを取得し機器の ソフトウェアにアクセスできる可能性はあるが、これによって問題の機器が『踏み台』と して使われる可能性は低い」「ソフトウェアのアップデートにも取り組んでいる」としてい る。
  4. 芋づる式に情報が漏洩 •  この攻撃はファイル名が分かっている必要がある   •  第三者にはファイル名が知られていない個人ファイルなどは 安全、、、   •  というわけではない

      •  ディレクトリトラバーサルにより   スクリプトのソースファイルを閲覧して、そこからファイル名を 取得するという方法がある  
  5. 対策(その2) •  ファイル名にディレクトリ名が含まれないようにする   –  basenameはnullバイトが有っても削除しない   –  $file  =

     basename($path)  .  ‘.txt’;   –  $path  =  a.php%00 とすると.txt以下が無視されa.phpになってしまう   –  ファイル名の妥当性チェックにより防ぐ   –  ただ、php5.3.4以降はヌルバイトを渡すとエラー  
  6. 概要 •  外部から閲覧されるとこまるファイルをweb サーバの公開ディレクトリに配置している場 合   – 重要情報の漏洩につながる   – 対策  

    •  公開ディレクトリには非公開ファイルを置かないこと   •  ディレクトリ・リスティングを無効にする
  7. 対策 •  ディレクトリ・リスティングを無効にする   •  h0p.confもしくは.htaccess        

     <Directory  パス指定>                Opkons  -­‐Indexes          </Directory>