不正ログインを防ぐ!パスワード保存方法のセキュリティ強化とその難点

増加する不正ログイン攻撃に対して、企業が実施できる対策は様々な方法があります。その一つがパスワードのセキュリティ強化です。もちろんこれだけでは十分な対策とは言えず、パスワードセキュリティ強化に加え、顧客に追加認証などを与えずに不正を検知する専用の不正ログイン対策を導入することが必要です。ウェブサイトを狙った不正購入や不正アカウント、ポイントの不正利用などを防ぐためにも複数の防御策を取り入れていきましょう。

パスワード保存状況の実情

インシデントを起こした企業は、資格情報が流出した後、"パスワードは「ハッシュ化」または「暗号化」されていたと"報告し、お客様を安心させようとします。しかしながら、パスワードが「ハッシュ化された」状態であっても、セキュリティ状態が万全だったとはとても言えません。この記事では、パスワードの保存のあるべき姿について簡単に述べ、流出してしまったパスワードの一部がどのように保存されていたかについて解説したいと思います。

pwprotection.jpg

最悪なパスワード保存方法は、パスワードを平文(つまり、暗号化されていない状態)で保存することです。これにより、攻撃者はデータベースを侵害することで、すぐに資格情報を盗むことができます。


企業ができる効果的な対策の1つは、パスワードを保存する前に、一方向ハッシュを使用してパスワードを変換、ハッシュ化することです。ハッシュ化することで、攻撃者がパスワードを解読することが難しくなります。しかし、ユーザーは今でも「password」や「12345」などの非常に安易なパスワードを使用することが多いため、このような安易なパスワード用に事前に計算された「レインボーテーブル」と呼ばれるツールを使用して、攻撃者は多くのハッシュ値を簡単かつ迅速に解読することができてしまいます。

企業が実施できるパスワード複雑化の1つは、パスワードをハッシュ化する前にパスワードをソルトすることです。これは、パスワードの前後にランダムな文字列を追加し、ハッシュ化する方法となります。これによりハッシュ値から元のパスワードの推測を困難にすることができるため、これまで数秒程度で数百万のパスワードを解読できてしまっていたものが、使用するハッシュアルゴリズムによっては、数週間から数か月、場合によっては数年かかることもあります。攻撃を行うために必要な他の作業などを考慮すると、攻撃にかかるコストの方が高くなる可能性があるため、攻撃発生のリスクを下げることができます。

例えば、bcryptというパスワードハッシュアルゴリズムは、ソルティング機能が組み込まれています。セキュリティ研究者がbcryptによってハッシュ化された(作業係数12)4,000個のパスワードの解読を試みたところ、丸5日かかりました。*1セキュリティ研究者は合計600万のパスワードを解読しようとしましたが、4000個のパスワードの全体の0.1%にも満たない値となっており、リスト全体を解読するには数年かかっていたと考えられます。

さらに、解読に成功したパスワードは「123456」や「password」などの非常に単純なパスワードとなっておりました。


情報漏洩インシデントから見える平文保存のリスク

効果的でないハッシュアルゴリズムを選択してしまった場合、ソルトを使用したとしても十分な対策にはなりません。ここ数年間の情報漏洩インシデントをもとに参考に確認してみます。


図1.png1.  2018年~2020年における漏洩インシデントに使用されたパスワードハッシュアルゴリズムの割合

1は、パスワードの保存方法が不明だったインシデントを削除した後の、漏洩インシデントに使用されたパスワードハッシュアルゴリズムの割合です。
3年間の合計で見ると、bcryptがインシデントで使用されていたハッシュアルゴリズムとしてMD5をわずかに上回っています。続いて平文での保存が13.3%、次にソルト化されたMD5SHA-1が同じ割合となっています。データを収集した企業の内、4%を占めるいくつかの企業では、DESまたはPBKDF2を使用していたり、パスワードはハッシュ化されていたと伝えているものの、アルゴリズムを公開していませんでした。



図2.png2.  2018年~2020年におけるパスワードハッシュアルゴリズム別の漏洩した資格情報の数(不明なものは削除)

過去3年間で、最も多くの資格情報の流出(42.6%)の原因となっていたのは、平文による保存です。続いてソルト化されていないSHA-1資格情報が20%弱、bcrypt16.7%という結果でした。アルゴリズムが比較的強いとされているソルトされたSHA-2ストレージの割合が0.8%と小さくなっています。一方で何十年もの間、対策として不十分であると見なされてきたMD5が、ソルトされたときに漏洩した資格情報のわずかな割合(0.4%)しか占めていなかったことは驚くべき結果です。

尚、2020年にbcryptがインシデントの件数と流出した資格情報の両方で大幅に増加しているものの、bcryptが不適切な対策というわけではなく、bcryptがパスワードハッシュのデファクトスタンダードの1つとして使用されていると考えられます。
bcryptはデフォルトでソルトが組み込まれていることや、解析に時間がかかるハッシュであるため、攻撃者がオフラインでハッシュを解読するのにSHA-2などの高速ハッシュよりも非常に困難にすることができるからです。

パスワード保存方法の改善では不十分

パスワードをソルトすることで攻撃者がパスワードの解読を困難にすることは可能ですが、「レインボーテーブル」を使用した解析によって「password」や「12345」といった安易なパスワードが設定されている場合は対策を実施していても、解読されてしまうリスクが残ります。残念ながらよく設定されているパスワードというのは年々あまり変わっていません。
ユーザー側に複雑なパスワードの設定を求めるよう、パスワード条件を厳しくすることも可能ですが、弊害としてパスワードを忘れてしまい、サイトの離脱や購入機会の減少が生まれてしまう可能性があります。
そのため、なるべく顧客への追加認証や、複雑性を課さずに、企業側ではより解析されない強固なパスワード保存方法を実施していく必要があります。
パスワード保存方法を改善した後、次に必要になってくるのがログインページを狙った不正ログイン対策です。
他所で漏洩した資格情報を使用したリスト型攻撃や、ブルートフォース攻撃などで、ユーザーのID/Password情報が割り出される可能性があります。これらにも対応をしていくことで、より一層資格情報の流出を未然に防げる可能性が高まります。

不正ログイン対策の1つとしてF5社のShape Securityというソリューションがあります。Shape Securityはユーザーの端末情報、環境情報などから、不正ログインを行っている攻撃者の兆候を割り出し、不正ログインを未然に防ぐことが可能です。
ユーザー側に追加認証やパスワードの複雑性を課すことなく導入可能となっており、ユーザーは今まで通りWebサイトを使用することが可能となります。

マクニカネットワークスでは、Shape Securityの無償PoCを通して、人間に模倣しているボットによるアクセスや、不正ログインを行う攻撃者の通信を可視化することができますので、是非以下よりお申込みください。
shape poc.PNG

shape poc2.PNG


申込みはこちら.png

WPはこちら1.2.png

*引用元: 2021 Credential Stuffing Report - F5 LABS
https://www.f5.com/labs/articles/threat-intelligence/2021-credential-stuffing-report

*1引用元: Lessons learned from cracking 4,000 Ashley Madison passwords
https://arstechnica.com/information-technology/2015/08/cracking-all-hacked-ashley-madison-passwords-could-take-a-lifetime/

メルマガ登録バナー(セキュリティ).jpg