Slack は、PlatoBlockchain Data Intelligence のハッシュ化されたパスワードを XNUMX か月間漏らしたことを認めています。 垂直検索。 あい。

Slack は、ハッシュ化されたパスワードを XNUMX か月間漏えいしていたことを認めています

人気のコラボレーション ツールである Slack (世界で最も長く稼働している Linux ディストリビューションである Slackware のニックネームと混同しないでください) が、サイバーセキュリティ SNAFU に達しました。

と題されたニュース速報によると、 Slack パスワードリセットのお知らせ、会社は、個人データを不注意に過度に共有していたことを認めました 「ユーザーがワークスペースの共有招待リンクを作成または取り消したとき。」

2022 年 04 月 17 日から 2022 年 07 月 17 日まで (両方の日付を含むと想定しています)、Slack は、そのような招待状の受信者に送信されたデータには以下が含まれていると述べました…

…それを待つ…

送信者のハッシュ化されたパスワード.

何が間違っていた?

Slack のセキュリティ アドバイザリでは、侵害について明確に説明されていません。 「[t]彼のハッシュ化されたパスワードは、どの Slack クライアントにも表示されませんでした。 それを発見するには、Slack のサーバーからの暗号化されたネットワーク トラフィックを積極的に監視する必要がありました。」

これは次のように変換されると推測しています。

「ほとんどの受信者は、受信したデータにハッシュ化されたパスワード情報が含まれていることに気付かなかったでしょう。その情報は、送信されたネットワーク パケットに含まれていましたが、意図的に表示されたことはなかったからです。 また、データは TLS 接続を介して送信されたため、盗聴者は途中でデータを盗み出すことができませんでした。接続の反対側に到達するまでデータが復号化されないためです。」

それは良いニュースです。

しかし、ネットワーク パケットには、受信者が通常は使用したり見たりすることのないデータが含まれていることがよくあります。

HTTP ヘッダーは、ブラウザへの指示であって、閲覧中の Web ページに表示するためのデータではないため、この良い例です。

また、ユーザーにとって無関係または不可視のデータは、最終的にログに記録されることが多く、特にファイアウォール ログでは、無期限に保存される可能性があります。

それは悪いニュースです。

ソルト、ハッシュ、ストレッチ…

Slack によると、漏洩したデータは単なるものではありませんでした。 ハッシュ化、 だけど 塩味の また、各ユーザーのパスワードは、ハッシュ関数が適用される前に、そのユーザーに固有のランダム データと最初に混合されたことを意味します。

ハッシュは本質的に「非可逆」の数学関数であり、一方向では簡単に計算できますが、逆方向では簡単に計算できません。

たとえば、次のように簡単に計算できます。

  SHA256("DUCK") = 7FB376..DEAD4B3AF008

しかし、「逆方向」に作業する唯一の方法は、 7FB376..DEAD4B3AF008 〜へ DUCK 働くことです フォワード 辞書内の可能なすべての単語から、一致させようとしている値が含まれているかどうかを確認します。

  SHA256("AARDVARK") = 5A9394..467731D0526A [X] SHA256("AARON") = C4DDDE..12E4CFE7B4FD [X] SHA256("そろばん") = BEDDD8..1FE4DE25AAD7 [X] . . . 3400 スキップされた SHA256("BABBLE") = 70E837..CEAD4B1FA777 [X] SHA256("BADGER") = 946D0D..7B3073C1C094 [X] SHA256("BAGPIPE") = 359DBE..BE193FCCB111 [X] . . . 3200 スキップされた SHA256("CABAL") = D78CF4..85BE02967565 [X] SHA256("CACHE") = C118F9..22F3269E7B32 [X] SHA256("CAGOULE") = 5EA530..5A26C5B56DCF [X] . . . 5400 スキップされた SHA256("DAB") = BBCC8E..E8B98CAB5128 [X] SHA256("DAFFODIL") = 75121D..D6401AB24A98 [X] SHA256("DANGER") = 0BD727..4C86037BB065 [X] . . . 3500 スキップされた SHA256("ダック") =  7FB376..DEAD4B3AF008 [見つかった!]

また、秘密である必要はなく、単に各ユーザーに固有のユーザーごとのソルトを含めることで、XNUMX 人のユーザーが同じパスワードを選択したとしても、同じパスワード ハッシュにならないようにすることができます。

単語をハッシュすると、ここでソルティングの効果を見ることができます DUCK 次の XNUMX つの異なるプレフィックスを使用します。

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- 入力バイトを 256 つだけ変更すると、大幅に異なるハッシュ SHA3("ARXXQ52H-DUCK") = 92AD544208 が生成されます。 .19449AXNUMX

これは、攻撃者が可能性の高いハッシュの事前計算済みリストを作成したり、部分ハッシュ計算のテーブルを作成したりできないことも意味します。 レインボーテーブル、ハッシュチェックを高速化できます。 (可能性のあるすべてのソルトに対して、新しいハッシュリスト、または独自のレインボー テーブルのセットが必要になります。)

言い換えれば、特に元のパスワードが複雑で無作為に選択された場合、ハッシュ化されソルト化されたパスワードを簡単にクラックして元の入力を復元することはできません。

Slackが言わなかったことは、彼らがそうするかどうかです 伸ばし パスワードハッシュも、もしそうなら、その方法。

ストレッチング は専門用語で、既知のパスワード ハッシュに対して多数の辞書単語を試すのに必要な時間を延長するために、パスワード ハッシュ プロセスを何度も (たとえば 100,000 回) 繰り返すことを意味します。

100,000 の辞書単語を単純なソルト アンド ハッシュ プロセスに入れるのに 6 秒かかるとすると、パスワード ハッシュを知っている攻撃者は、毎分 XNUMX 万の異なる辞書単語と派生語を試すか、XNUMX 時間ごとに XNUMX 億以上の推測を行う可能性があります。 .

一方、salt-and-hash 計算がそれぞれ XNUMX 秒かかるように拡張された場合、ログインしようとしたときの余分な XNUMX 秒の遅延は、ほとんどまたはまったく煩わしさを引き起こしません…

…しかし、攻撃者の試行回数は 3600 時間あたりわずか XNUMX 回に減少し、最も明白なパスワード以外を推測するのに十分な時間が得られる可能性ははるかに低くなります。

評判の良いソルト ハッシュ アンド ストレッチ アルゴリズムがいくつか知られています。 PBKDF2, bcrypt, scrypt & Argon2、これらすべてを調整して、個々のパスワードの推測を試みるのに必要な時間を増やすことができます 生存率を下げる いわゆる辞書攻撃とブルート フォース攻撃。

A 辞書攻撃 考えられるすべての単語など、可能性の高いパスワードのみを試していることを意味します aardvark 〜へ zymurgy、そしてあきらめます。 あ ブルートフォース攻撃 可能性のあるすべての入力を試すことを意味し、奇妙で発音できないものであっても、 AAA..AAAA 〜へ ZZZ..ZZZZ (またはから 0000..000000 〜へ FFFF..FFFFFF XNUMX 進数のバイト単位で考えれば)。

何をするか?

Slack は次のように述べています。 ユーザーの 1 人に 200 人 (0.5%、おそらく危険な期間に生成された共有招待リンクの数の記録に基づく)、それらのユーザーにパスワードのリセットを強制することになります。

さらなるアドバイス:

  • Slack のユーザーであれば、会社からの通知がなくても、パスワードをリセットしたほうがよいでしょう。 会社がハッシュを漏らしてパスワードデータベースに不注意だったことを認めた場合、会社が影響を受けていないと考えていても、あなたは影響を受けたと考えたほうがよいでしょう。 パスワードを変更するとすぐに、古いハッシュが攻撃者にとって役に立たなくなります。
  • パスワード マネージャーを使用していない場合は、入手を検討してください。 パスワードマネージャーは次のことに役立ちます 適切なパスワードを選ぶ、したがって、あなたのパスワードが、このような事件でク​​ラックされる可能性のあるパスワードのリストの非常にはるかに下にあることを保証します. 通常、攻撃者は真のブルート フォース攻撃を行うことはできません。試行できるパスワードが多すぎるためです。 そのため、単語や単語と数字の組み合わせなど、最も可能性の高いパスワードを最初に試行し、攻撃が進むにつれて長く複雑になります。 パスワード マネージャーは、猫の名前を思い出すのと同じくらい簡単に、ランダムな 20 文字のパスワードを思い出すことができます。
  • 可能であれば、2FA をオンにします。 2FA、または 2要素認証は、ログインにパスワードだけでなく、毎回変更されるワンタイム コードも必要であることを意味します。 これらのコードは通常、携帯電話に送信 (または生成) され、それぞれ数分間しか有効ではありません。 これは、サイバー犯罪者がパスワードを解読したとしても、それだけではアカウントを乗っ取るには不十分であることを意味します。
  • パスワードを自分で処理する場合は、評判の良いソルト ハッシュ アンド ストレッチ アルゴリズムを選択してください。. 不幸にもパスワード データベースが侵害された場合、使用したアルゴリズムとセキュリティ設定の正確な詳細を顧客に提供できます。 これは、情報に精通したユーザーが、これまで攻撃者が利用できる時間内に盗まれたハッシュがクラックされた可能性がどの程度あるかを判断するのに役立ちます。

タイムスタンプ:

より多くの 裸のセキュリティ