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

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

carotene4035
September 02, 2018
100

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

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>