URLエンコード攻撃の対策

2019.02.03

Webセキュリティ

URL-encoded-attack-measures

サイバー攻撃の手法として、URLのエンコードを悪用したURLエンコード攻撃があります。URLエンコード攻撃とは何か。URLエンコード攻撃を受けた場合に起こり得る被害や対策についてご説明します。

目次

1.URLエンコード攻撃とは何か

URLエンコード攻撃はドメインに続くURLアドレスに特定の文字列を入力することで、不正にシステムを操作したり、本人の意図しない情報を発信されてしまうことを指します。URLエンコードそのものはWebシステムとして、ごく普通に利用されている仕組みですが、悪意のある第三者はURLエンコードを悪用し、被害を与えようとするのです。

1-1.URLエンコードの仕組み

例えば「あ」をエンコードすると「%E3%81%82」という文字列になります。動的に検索結果を表示するページを表示した時に、アドレスバーで見かけたことがあるのではないでしょうか。URLエンコードとは特定の文字列を変換し、プログラムやシステム側が扱いやすくする仕組みですが、悪意のある第三者は脆弱性として悪用し、攻撃を仕掛けてくるのです。

1-2.URLエンコードを悪用したサイバー攻撃

サイバー攻撃としてURLエンコード攻撃を行う場合、プログラムやスクリプトになりうる文字列を記述することで、本来意図しない動作や処理を実行させます。悪意のある第三者は、スクリプトやプログラムを用いて、予め脆弱性があるかをチェックし、URLエンコードを悪用して攻撃してくるので、対策されていない場合は被害を受ける恐れがあります。

1-3.類似の攻撃も多数存在

インジェクション攻撃やクロスサイトスクリプティングなど、URLエンコード攻撃と類似したサイバー攻撃も多く、共通する特徴としては外部からの入力によって、権限を越えた処理を実行させることが挙げられます。
サービスを提供する側としては、一方的に情報の発信をするだけではなく、ユーザーからの入力を得て、相互に情報のやり取りをすることで成立するものも多く、一般のユーザーからの入力だとしても信頼できない場合も考えられます。
理由としては、URLエンコードを悪用して作られたリンクを、一般のユーザーがクリックやタップするだけで、入力された内容を送信されてしまう可能性があり、入力内容を受け取ったシステムが自動的に処理してしまうことで、被害が発生することも考えられるからです。

2.URLエンコード攻撃で起こり得る被害

実際にURLエンコード攻撃でどんな被害を受ける可能性があるのか。また、URLエンコードを悪用することによって、二次的に起こり得ることに何があるのかを知っておきましょう。サイバー攻撃の多くはシステムやプログラムの基本的な挙動を悪用します。URLエンコードだけでなく、Webセキュリティ全般への対策を知るためにも、どのような被害を受けるか学んでおく必要があります。

2-1.意図しない処理により脆弱性が発生する可能性

サーバのOSやサービスを構築する環境によっては、URLエンコードされた文字列をデコードした時に命令として受け取ってしまう場合があります。単なる文字列の入力では何も起こらずエラーになる可能性もありますが、例えばプログラムの区切りとなる文字列を入力され、区切り以降のスクリプトやコマンドをシステムが正常なコマンドとして実行してしまうこともあるのです。
HTTPインジェクションやOSインジェクションなどの攻撃も、外部からの入力によって不正な処理を実行させられてしまう攻撃であり、文字列そのものは平文でも、コマンドやスクリプトとして処理されてしまう例なので、URLエンコード攻撃と共に学んでおきましょう。

2-2.URLエンコードされた文字列を発信してしまう

実際には起こりにくいことではありますが、URLエンコードによって何らかの文章を仕込まれたリンクをクリックしてしまうことで、掲示板やSNSなどに書き込まれてしまい、望まない情報を発信してしまう可能性も考えられます。URLエンコードされた文章はそのまま見ても単なるリンクにしか見えませんが、クリックすることで送信され、デコード処理を実行されて書き込みされてしまうことになるのです。
大半のSNSや掲示板ではいきなり投稿することはないにせよ、悪意のある第三者の作成したサービスだとすれば、クリック一つで、例えば犯罪予告などを書き込みする形となり、IPアドレスから書き込んだ人を公的機関が捜査することもあるのです。

2-3.コマンドを受け付ける場合は乗っ取りも懸念

URLエンコードによって改行コードやコマンドとして存在する文字列を処理された場合、脆弱性の存在するシステムなら管理権限を奪われ、乗っ取られてしまう可能性もあります。既知の脆弱性はシステムのアップデートなどで改善されるものがほとんどですが、管理する立場の人間がアップデートを怠ったり、そもそもアップデートを理解していない場合は脆弱性が存在したままの状態です。
ウイルスやマルウェアの感染は、脆弱性のあるパソコンやサーバを経由し、Webセキュリティの甘いところから、人間経由でセキュリティの高いサーバやシステムに感染させ、バックドアなどによって権限を奪われてしまうのです。
人間経由というのは、物理的なデバイスとしてUSBメモリを経由したり、Webメールやクラウドのデータ保管サービスを経由したりして、自分自身でウイルスやマルウェアを感染させてしまうという意味です。

3.URLエンコード攻撃への対策方法

システムやプログラムがコマンドや命令文として処理するのは、ごく自然な流れです。悪意のある第三者は当たり前の挙動に不正な情報を差し込むことで攻撃します。URLエンコード攻撃の対策方法として、どんなものが考えられるのかチェックしておきましょう。

3-1.意図しないURLエンコードの排除

コマンドとして実行できる文字列、スクリプトとして処理される可能性がある文字列をデコードしない仕組みにすることや、デコードしたとしても、処理されない仕組みにすることが挙げられます。外部からの入力を必要とする時、入力して欲しい内容と、適切ではない内容を区別して検知し、入力するユーザーにアラートを出したり、パスワードの再確認を求めることでも、意図しない情報の送信を防げる可能性があります。

3-2.送信元のページの照合やページ遷移のチェック

ドメインやサーバ内に存在するページから送信されているかのチェックや、どのページから遷移しているのかをチェックすることで、不正に作られたURLエンコードを含むリンクによる攻撃を防ぐことができます。URLエンコード攻撃するためには、直接アドレスバーにユーザーが入力するという方法と、予めURLエンコード攻撃をするために作成したリンクを、他者にクリックやタップさせる方法が考えられるからです。
アドレスバーから直接入力で送信された内容なのか、管理するドメインやサーバではない場所に作られたリンクなのかを判別し、不正なアクセスの監視や検知できる仕組みについても考える必要があります。

3-3.外部からの入力に対する制御を再確認

URLエンコード攻撃だけでなく、外部からの不正なアクセスによる入力を受け付けない方法として、現時点のアクセス権、実行、処理、編集や削除の権限が適切に割り振られているかを再度確認する必要もあります。権限が適切に割り振られたとしても、権限を無視して処理させようとするのがサイバー攻撃なので、システムの深部に侵入できないように、外部からの入力に対してのセキュリティ対策はしっかりと考えるようにしましょう。
また、外部からの不正な入力を受けた時に、ログとして内容や接続元IPを保存することで、Webセキュリティを高める時に役立つデータになることも考えられます。不正な入力をするIPアドレスの遮断や、機械的に連続して入力されるような攻撃の遮断なども含めて、攻撃を受けた時に対処できるシステムであるよう意識しましょう。

まとめ

URLエンコード攻撃とはどのようなものなのか。またURLエンコード攻撃によって起こり得る被害、または類似のサイバー攻撃、そして対策についてご説明しました。サイバー攻撃に対して、システムのアップデートをしっかりと行っていて、管理権限なども適切であり、絶対に攻撃を受け付けない、という思い込みが危険な場合もあります。実際には脆弱性が残ったままだったり、古い手法や対策済みと思われた部分からも被害を受ける可能性があり、被害を受けた時に原因がわからないまま時間が過ぎてしまうこともあります。
サイバー攻撃によって被害を受け、事後対応に追われることのないように、被害を受けてからでは遅いという自覚を持つことも、Webセキュリティを高めるためには必要だと覚えておきましょう。

おすすめのWebセキュリティ対策

webセキュリティ対策としておススメなのが「WAF」の導入です。

WAFには色々なものがありますが、その中でもクラウド型WAFであれば、コストや手間も少なくセキュリティ対策することができます。

クラウド型のWAFは導入ハードルが極めて低いので、これからWebセキュリティ対策を行う企業様には有力な選択肢となります。WAFを選定する時には、サポート体制や導入実績なども重視して、自社に最適なものを選びましょう。

クラウド型WAF「攻撃遮断くん」は、最新の攻撃パターンにも自動的に対応していくため、セキュリティパッチをすぐに適用できない状況や、定期的に脆弱性診断が出来ない状況でも、セキュアな環境を保てます。

ぜひこの機会にWebセキュリティ対策を見直し、WAFの導入を検討してみてください。

「攻撃遮断くん」の詳細資料は、こちらからダウンロード頂けます。

 

(2018/06/01 執筆、2019/02/03修正・加筆)

この記事と一緒に読まれています