451 「法的な理由で利用できません」

451
みなさん、あけましておめでとうございます。
今年もケトハを何卒よろしくお願いいたします。

2016年第1弾の投稿は、HTTPステータスコード”451″について、セキュリティの話と絡めてお送り致します。

ご存知の方も多いかもしれませんが、2週間ちょっと前に新しいHTTPステータスコード「451」が追加されました。

「404 Not Found」や「500 Internal Server Error」はときどき見かけるかもしれませんが、このステータスコードは「Unavailable For Legal Reasons(法的な理由で利用できません)」という意味で、今後プロバイダやサーバー管理者が、行政機関や司法機関から法律上の理由でアクセス制限を求められた場合に設定されることになります。

今まではこれに相当するステータスコードは「403 Forbidden」だったのですが、これはアクセス制限が自身によるものなのか、第3者によるものなのか、区別ができませんでしたが、これからは「451 Unavailable For Legal Reasons」により、そのサイトがアクセスできないのが著作権侵害や公序良俗などの法的に問題のあるサイトであるためだと区別されるようになります。

これにより、ユーザーや検索エンジンはより客観的に評価できるようになるので、この採用は大歓迎です。

しかし、気をつけたいのは、WEB改ざんなどの悪意のある攻撃により、不正にレスポンスヘッダに451がセットされることで、ある日突然googleなどの検索エンジンからペナルティを受けるようになってしまうかもしれないということです。
以下のサイトは、弊社が試験的に451をセットしたテストページです。
http://soulproj.com/test/

まだ普通にアクセスできますが、ヘッダ情報をみると451が返されるようになっているので、検索エンジンがこれを評価するようになったら、見た目は健全ですが、ある日突然検索インデックスから消えてしまったり、セキュリティソフトからアラートが通知されるようになるかもしれません。
対象サイトでギャンブル、成人向け、輸入代行、仮想通貨などのデリケートなサービスを扱っている場合、どんなに健全に運営していたとしても、検閲がかかったとミスリードされて、社会的信用上の大きなダメージにつながるかもしれません。

生のPOSTやヘッダ情報をWEBアプリケーション側で動的に処理しているような場合、NULLバイト攻撃やレスポンスヘッダ分割攻撃などで、不正にステータスコードがセットされるようになっていないか、担当のシステム開発会社に相談してチェックしてもらいましょう。

ちなみに、「451 Unavailable For Legal Reasons」が狭義の「403 Forbidden」だとしたら、「404 Not Found」の狭義に「410 Gone」があります。
これは、そのサイトが「見当たらない」のは「なくなった」ため、と明示的な理由を返します。
サービスを停止したサイトで410をセットすると、検索ロボット(少なくともgoogle)は対象サイトのクロールをしなくなる(検索インデックスから消えやすくなる)ようで、これは裏を返せば、不正に410をセットさせることでSEO上の評価を下げさせることが可能ということで、こちらの方がサービス提供事業者全般にとって打撃となり得るかもしれませんね。

いずれにしても、HTTPステータスコードにはいろいろな種類がありますが、それぞれに固有の意味がついています。
セキュリティに注意を払いながら、これを正しく利用することで、ユーザービリティの向上に貢献しましょう。