web-dev-qa-db-ja.com

開発者としてポイズンされたデータに依存する攻撃をどのように軽減できますか?

数年前、Wiredエディターに対する注目を集める攻撃があり、ハッカーはターゲットのAmazonアカウントにクレジットカードを追加し、その自己追加のクレジットカードを使用してターゲットのアカウントにアクセスしました。そのため、彼らは攻撃のためにAmazonのデータベースを効果的に毒殺し、ソーシャルエンジニアリングを行いました。

開発者は、この特定の攻撃ベクトル、つまり攻撃者が自分で追加したデータを使用してアクセスを取得することをどのように軽減できますか?


上記の例では、クレジットカードの追加を許可しますが、ユーザーはメール内のリンクをクリックして必要なことを確認するまで、クレジットカードを復旧や支払いに使用することはできません。追加するには、アカウントを作成するためにすでにメールによる確認が必要なようです。そうすれば、攻撃者は2番目のアカウントも侵害する必要があります。そしてもちろん、カスタマーケア担当者はこれを自分で行うことはできません。

1
Nzall

あなたが説明する攻撃は、ユーザーアカウントがクレジットカードのコンテナであり、Amazonが「含まれているオブジェクトの知識」を「コンテナの知識」と同一視したために発生します。誰もがクレジットカードを秘密にしておく必要があると考えているので、当然のことです。したがって、クレジットカードの知識は、攻撃者が秘密の知識を持っていた証拠でした。

これを防ぐために、登録時に提供された情報の知識に基づいてユーザーを確認することができます。つまり、エージェントが「パスワードを思い出せない」人を助けるために画面を表示する場合、すべてのアカウントデータではなく、その限られたデータにのみアクセスできる必要があります。それ以外の場合は、誰かが購入しているのを観察し、Amazonに電話して、「もちろん、昨日、widgets.comからウィジェットを100ドルで購入しました。アカ​​ウント履歴に表示されるはずです」と言うことで、同様の攻撃を行うことができます。

別のオプションは、含まれているすべてのデータの検証を要求することです。発信者が「私のカード番号は123、それは私のアカウントです」と言った場合、エージェントは「アカウントに他に何枚のカードがありますか?すべてのアカウント番号を教えてください」と尋ねることができるはずです。

もちろん、より良いアプローチは、ユーザーがコンテナーにアイテムを追加できるようにする前に、ユーザーの検証を要求することです。アカウントであることを証明できない限り、なぜクレジットカードをアカウントに追加できるのですか?それはどのようなビジネス上のメリットをもたらしますか?

3
John Deters

この場合、顧客(カスタマーケア担当者)と直接やり取りする従業員をより適切にトレーニングする以外に、ソーシャルエンジニアリング攻撃についてできることはあまりありません。疑わしい場合にさらに質問する方法を学んだり、セキュリティトレーニングプログラム全体を更新したりする場合。繰り返しますが、開発者としてできることはあまりありません。

0
Morpheus

これは些細なことのように思えるかもしれませんが、意識はおそらく正しい答えです。多くの銀行は、顧客に尋ねることができる情報について厳格なガイドラインを持っており、最善のアプローチは、ナビゲーション中または契約内で警告を表示して顧客にこのガイドラインを知らせることです。

私の提案は、「パスワードの入力を求めることは決してない」、「リンクをクリックするように求めることは決してない」、「ログインを求めるために電子メールで連絡することは決してない」というボックスを含めることです。 "。また、顧客を介したチャネルで異常な動作(フィッシング、詐欺、異常など)を報告できるようにすることをお勧めします。

0