セキュリティ
scraping
akamai

自宅でスクレイピングbotを動かしているとAkamaiを利用している一部Webサイトが見えなくなる話

なぜか大企業のサイトが見えない

筆者の自宅から一部サイトにアクセスした際、次のようなエラーが表示されることがありました。

Access Denied You don't have permission to access "http://www.toyota.co.jp/" on this server. Reference #18.49067668.1538899594.53a6215

この現象はたとえば次のサイトで起こります。

最初は閲覧しようとしているサイト側の障害かな?と思っていたのですが、この現象は筆者の自宅のみで起きており、障害ではないことがわかりました。

共通点はAkamaiを利用していること

上記5サイトで共通しているのはレスポンスヘッダのServer行です。

  HTTP/1.1 403 Forbidden
  Server: AkamaiGHost

どうやらこれはAkamaiのエッジサーバが返しているようです。実際、上記ホスト名のCNAMEとしてAkamaiのエッジサーバらしき名前が登録されています。

› dig www.toyota.co.jp

; <<>> DiG 9.12.1 <<>> www.toyota.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46903
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.toyota.co.jp.      IN  A

;; ANSWER SECTION:
www.toyota.co.jp.   657 IN  CNAME   www.toyota.co.jp.edgekey.net.
www.toyota.co.jp.edgekey.net. 6957 IN   CNAME   e5170.ksd.akamaiedge.net.
e5170.ksd.akamaiedge.net. 17    IN  A   184.31.41.141

;; Query time: 1 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Thu Oct 04 09:28:43 JST 2018
;; MSG SIZE  rcvd: 141

原因を探る

筆者がこのエラーに気づいてから数週間の間、自宅から上記のサイトを閲覧しようとすると同じエラーが出る状況でした。

ところが、ある日プロバイダのPPPoEセッションを再接続するとその瞬間から上記サイトが閲覧可能になりました。そして2日ほどするとまた同じエラーが出るようになっていました。

状況から判断すると、筆者の自宅IPアドレスがAkamaiのブラックリスト入りしているようです。

そこで関係しそうな内容を探すとAkamaiの記事が見つかりました。

この記事によれば次のような原因でAkamaiにブロックされることがあるようです。

  • 明示的なIPブロッキング・ブラックリスト
  • 位置ベースのブラックリスト
  • ルールベースのブロッキング(WAFなど)
  • 評判ベースのブロッキング
  • HTTPリクエストのアクセス速度コントロール(DoS対策など)

私の場合どれもピンときませんが、4番目の「評判ベース」に引っかかっているのかもしれません。上記ページには次のような記述もあります。

次のような行動により、アプリケーションセキュリティ制御が作動するかもしれません。

  • SQLインジェクション、クロスサイトスクリプティング、ローカルファイルインクルージョン、リモートコマンド実行、リモートファイルインクルードなどのWebアプリケーションレイヤの攻撃
  • DoS攻撃または同様の高速HTTPトラフィック
  • Webコンテンツのスクレイピング、データマイニング、Webコンテンツ索引作成などの自動化されたWebリクエスト
  • 自動ツールを使用したWeb脆弱性スキャン

私の場合3番目に該当するリクエストが1日に数百〜数千リクエストほどありますが、上に挙げたトヨタなど5サイトへのアクセスは通常ゼロです。

つまり、私が自動化しているリクエストのうち一部がAkamaiのエッジサーバでサーブされていて、そのアクセス情報を元にトヨタなど別サイトのブロッキングに利用されているということになりそうです。

私は十分なリクエスト間隔を空けているつもりだったので、攻撃者であるという判定をされているなら若干腑に落ちませんし、それが別のサイトのブロッキングに利用されているのも不思議な気がしますが、そういうこともあるのでしょう。