セキュリティ

誰でも任意のHTMLを含むInscriptionを公開でき、ord serverはこれらを/content/<INSCRIPTION_ID>/r/undelegated-content/<INSCRIPTION_ID>、および/r/sat/<SAT_NUMBER>/at/<INDEX>/contentで提供します。

これにより、クロスサイトスクリプティングやスプーフィング攻撃を含む潜在的なセキュリティ脆弱性が生まれます。

軽減策なしでは、ord serverエクスプローラーインスタンスをホストするドメインは完全に信頼できないものと考えるべきです。

クロスサイトスクリプティング

攻撃者は脆弱なウェブサイトにJavaScriptを注入し、後でそれが被害者に提供されることでクロスサイトスクリプティング攻撃を実行し、悪意のあるスクリプトが被害者のブラウザで、そのウェブサイトの他のスクリプトと同じ権限で実行されるようにします。

このようなスクリプトは、ユーザーの代わりにリクエストを行うため、プライベートなサイトリソースにアクセスしたり、ユーザーに代わって特権的なアクションを実行する可能性があります。

Cross-site scripting is not a concern for a vanilla ord server instance. ord server does not serve any private resources or allow privileged actions to be taken via the web interface, so although JavaScript can be injected using an inscription, it does not run with any meaningful permissions.

However, if you serve requests to ord server from a domain which also serves private resources or allow privileged actions, you may be vulnerable to cross-site scripting attacks.

  • ord serverhttps://example.com/ordで実行されています。

  • ビットコイン取引所がhttps://example.com/exchangeで実行されています。

  • ユーザーはhttps://example.com/exchange/sendでビットコインを送金でき、アクセスはユーザーのセッションクッキーによって制御されています。

  • 攻撃者がID XYZの悪意のあるHTML Inscriptionを公開し、https://example.com/exchange/sendにアクセスして攻撃者が制御するアドレスに送金するJavaScriptが含まれています。

  • ユーザーがhttps://example.com/ord/XYZを訪問すると、悪意のあるJavaScriptがhttps://example.com/exchange/sendにリクエストを送信します。スクリプトがユーザーのセッションクッキーを含むリクエストでユーザーの代わりに実行されるため、サーバーはユーザーのビットコインを攻撃者に送金します。

これを防ぐには、クロスサイトスクリプティングに脆弱な他のウェブサービスと同じドメインとポートでord serverを利用可能にしないでください。

スプーフィング

ord serverordinals.comなどの有名なドメインで実行されている場合、攻撃者はそのドメインの所有者を表していると思わせる悪意のあるInscriptionを公開する可能性があります。例えば、ユーザーにビットコインを送金させるためのミントページを公開することが考えられます。さらに、History APIを使用してページのリロードをトリガーせずにパスを変更できるため、Inscriptionコンテンツがサイト所有者によって公開されたことを示唆するURLでユーザーに表示される可能性があります。

  • ord serverが、人気があり高く評価されているExample Corporationによってhttps://example.comで実行されています。

  • 攻撃者がID XYZの悪意のあるHTML Inscriptionを公開し、ミントページを表示し、History APIを使用してURLパスを/mintに変更します。

  • ユーザーがhttps://example.com/inscription/XYZへのリンクをクリックすると、攻撃者のミントページが表示され、見かけ上のURLはhttps://example.com/mintになります。

  • ユーザーは、これが人気があり高く評価されているExample Corporationが実行する潜在的に利益の高いミントだと思い、ミントアドレスにビットコインを送金します。

これを防ぐには、ordエクスプローラーをホストするドメインがordエクスプローラー自体のコンテンツ以外の何かで信頼できるという印象をユーザーに与えないようにしてください。