個人ドメインのセキュリティ実践
Categories:
はじめに
インターネット時代において、ネットワーク攻撃は日常茶飯事となっています。毎日無数の自動化ツールがインターネット上の隅々までスキャンし、脆弱性を探しています。多くの人が攻撃対象は大企業だけだと考えがちですが、実際は攻撃コストの低下とツールの普及により、インターネットに露出しているサービスはすべて攻撃対象になる可能性があります。
実際のケース分析
スキャン攻撃の実例
Cloudflare 上に展開した小さな展示サイトは、有効な URL が2つしかないにもかかわらず、継続的にスキャン攻撃を受けています。

最初は他の URL はすべて 404 を返していましたが、公開当日から香港のホストによるスキャンが始まりました。送信元 IP は毎日変わりますが、ほとんどが香港のものです。ユーザーの中にも香港 IP からアクセスする人がいるため、地域を直接ブロックすることはできません。

これらの URL はすべて何らかの目的を持った試行で、私の worker は / と /logs-collector のみを処理します。こういった執拗な試行は基本的に脆弱性を探すためのものです。
これでは CF の無料リクエスト数を消費し、ログを汚染してしまうため、良いことではありません。
その後、他のすべてのリクエストに対して 200 を返し、Host on Cloudflare Worker, don't waste your time というメッセージを付けるようにしました。

これによりスキャンはやや減少しましたが、因果関係があるかどうかはわかりません。
自分でホストしているサービスの場合、こうやって毎日スキャンされ続け、セキュリティ更新をしないままにしておくと、いつか必ず脆弱性を見つける日が来ます。
攻撃者にとってみれば、毎日定時に試行し続け、突破できるだけ突破すればいいのです。基本的に自動化されており、設備と時間のコストは高くありません。
セキュリティ脅威分析
攻撃者の特徴
- 跨境での犯行が一般的で、責任追及の可能性を低下させる
- Nmap、Masscan などのポートスキャンツールを含む自動化ツールが広く使用されている
- 継続的な攻撃でコストが低い
- ボットネットリソースが豊富で、IP アドレスが頻繁に変化する
- 攻撃時間は深夜や祝日を選択することが多い
一般的な攻撃方法
- ポートスキャン
- 開いているポートを一括スキャン
- 一般的なサービス(SSH、RDP、MySQL など)を識別
- 脆弱性スキャン
- 古いソフトウェアの既知の脆弱性をスキャン
- パスの特徴やファイル名の特徴で識別
- 入力の自動構成、入力検証の脆弱性を突く
セキュリティ実践
リバースプロキシではなく VPN の使用
ほとんどの人がソフトウェアのアップデートをしないので、ドメインを露出させないことが最善です。スキャンはプレフィックスもポストフィックスも構成でき、サブドメインを次々に試します。
サブドメインの重災地の例:
nas.example.comhome.example.comdev.example.comtest.example.comblog.example.comwork.example.comwebdav.example.comfrp.example.comproxy.example.com- …
これらは思いつきで書いたものですが、自動化攻撃ならサブドメイン辞書を作り、自動テストするでしょう。
局域ネットワークに DNS サーバーを構築し、例えば AdguardHome を使用してドメイン名解決を設定し、内側のデバイスはすべて固定 IP でアクセスするようにします。
DDNS も AdguardHome の API を使用して実装できます。局域ネットワークのため、ドメイン名は自由に選べます。
エッジセキュリティサービスの使用
サイバーフォーマット Cloudflare については多くを語る必要はありません。個人の趣味者が本当に商業価値のあるプロジェクトを見つけるまで、間違いなく無料です。
国内のサービスは Alibaba Cloud の ESA で、無料で 3 ヶ月使用でき、通常はルートドメインあたり月 10 元、50GB のトラフィック制限です。CF の完全無料に比べると、あまり紹介する価値はありません。
セキュリティサービスは一般的に高価ですが、保護しないと攻撃を受けたときの損失が大きく、有料保護を選べば毎日直接的な「損失」を見ることになります。
エッジセキュリティサービスは一種の保険で、非常に安価でコストパフォーマンスの高いセキュリティサービスです。典型的に、専門の人に専門の仕事をさせるものです。
エッジセキュリティの主な目的は、自分の実際の IP を隠し、ユーザーがエッジノードにアクセスし、エッジノードが実際の IP へのアクセスをリクエストするかどうかを計算して判断することです。
本質的には、事前のリバースプロキシで、キャッシュ、WAF、CDN、DDoS 防護などの機能を統合しています。ユーザーとサービスの間に第三者を挟むため、ユーザー体験が低下する可能性があります。
CF と ESA の両方を使用していますが、まとめると、最も良い体験をする一部のユーザーの体験をやや低下させることで、より多くの地域のユーザー体験を向上させることができます。総合的に見れば、非常に価値があると言えます。
まとめ
自用サービスの場合は VPN の使用を優先し、tailscale または zerotier が良い選択です。DNS サービスが必要な場合は、内側に AdGuardHome を構築し、公衆網では AdGuardPrivate を使用します。
公開サービスで大衆にアクセスしてもらう場合は、Cloudflare を使用することをおすすめします。大陸のアクセス速度を気にする場合は 阿里 ESA を使用します。
このようなセキュリティ実践は参考までに、ぜひ V 站の皆さんからの提案をお待ちしています。