はじめに
おはこんばんにちは。キティちゃんです。最近暑くなったり寒くなったりと天気に左右されています。今回はRFIとLFIについて書いていきたいと思います。
きっかけ
RFIとLFIの脆弱性について学ぶ機会があったためです。
RFI・LFIとは
RFIはリモートファイルインクルージョン(Remote File Inclusion)の略で、主に外部で用意したスクリプトファイルを攻撃対象サイトに読み込ませ実行させるといった攻撃となります。
LFIはローカルファイルインクルージョン(Local File Inclusion)の略で、攻撃対象サーバー内のファイルを閲覧するためにファイルパス(例:..etc/passwd)をリクエストのパラメータに挿入して送信し、対象ファイルを表示させる攻撃となります。
どういった影響があるのか
外部のファイルを実行できてしまう場合、情報の漏洩、サイト改ざん、不正な機能実行、踏み台として利用され他サイトへの攻撃といったことに繋がります。
対策
1.外部からファイル名を指定する仕様を避ける
2.ファイル名を英数字に限定する
また、保険的対策として、PHPでは現在の最新ではデフォルトで禁止となっていますが、「allow_url_include = Off」と「Off」になっているかを確認することを推奨します。
まとめ
今回はRFI・LFIについて書いてみました。RFI・LFIはPHPなどのスクリプト言語でスクリプトのソースの一部を別ファイルから読み込む機能を利用して起こりうる脆弱性となります。PHPなどのスクリプト言語を使用して開発される際は上記脆弱性に気を付けて実装してください。今回はここで筆をおきます。ありがとうございました。
参考
・『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版』 著者:徳丸浩様