プラグインの脆弱性〜総当たりで解けない鍵は存在しない〜

プラグインの脆弱性〜総当たりで解けない鍵は存在しない〜

プラグイン

プラグインは、ソフトウェアの拡張を第三者が行える仕組みです。この仕組みはソフトウェアの機能拡張や品質向上において非常に便利ですが、反面、セキュリティ上の脅威になることもあります。たとえば、現在最も普及している CMS(Contents Management System)である「WordPress」には多数のプラグインが用意されており、その豊富さもWordPress が人気の理由の1つですが、一方で、プラグインの脆弱性が攻撃の対象になる事例も多く発生しています。

プラグインは元のソフトウェアよりも攻撃対象になりやすい

ソフトウェアの開発元も、ソフトウェア本体の脆弱性は迅速に対処できても、プミグインにまでは目が届かないことがあります。第三者が提供しているプラグインにいたっては品質の担保はできません。

このため、脆弱性への対応という面で見ると、ソフトウェア本体よりも、プラグインのほうが不十分になることがあります。私たちは、上記のことを理解したうえで、プラグインを利用する際には、ソフトゥェアの構成をきちんと把握したうえで、プラグインのアップデートもきちんと行うようにします。こういった日々の運用が、一見すると地味ですが有効な対策といえます。

プラグインの悪性化プラグインそのものの脆弱性以上にやっかいなのが「プラグインの悪性化」です。プラグインの悪性化とは「最初はまともな開発者が提供していたプラグインが、いつの間にか開発元が悪意のある開発者に変わり、その後、プラグインをアップデートすることによって、マルウェアなどが追加される現象」です。悪性化したプラグインが有効になっているということは、Web ブラウザが乗っ取られていることと等しいのでとても危険です。

悪性化は専門家でも把握するのが難しいのですが、「開発者が変更されていない」「信用ある会社や開発者が手掛けている」ことを確認することで、ある程度のリスク低減が可能です。そこを確認するのが困難な場合には、使わないようにするしか方法はありません。

ブルートフォース攻撃

ブルートフォース攻撃の「Brute Force」 とは、直訳すると「強引な」という意味になります。このため、ブルートフォース攻撃は、セキュリティ用語の文脈では「総当たり攻撃」という意味で使われます。ブルートフォース攻撃の対象はさまざまですが、よく狙われるのはシステムを利用する際に必要となるパスワードや暗号鍵です

パスワードの文字数·文字種と攻撃への耐性

一般的にパスワードに指定する文字列はシステム側が設定し、ユーザー側に要史しますが、ここで要求される文字数や文字種によって、ブルートフォース攻撃への耐性が変わります。当然、多くの文字数、多くの文字種を設定できるパスワードのほうが、攻撃への耐性は高くなります。たとえば、数字8桁の場合は1億(10°) 通り、英小文字(26 種類)が8文字の場合はおよそ2,000 億(26° = 2.08 × 10″)通りの組み合わせになります。これらに比べ、数字4桁のパスワードは、1万通りしかありません。このことからはわかるとおり、ブルートフォース攻撃への耐性を高めるためにも、パスワードの文字数や文字種はできる限り制限しないことが望ましいといえます。

理論的には解けない暗号鍵は存在しない

ブルートフォース攻撃は「総当たり攻撃」であり、暗号鍵を解く局面では「すべての鍵の組み合わせ」を試すことになります。このため、理論的には解けない暗号鍵は存在しないといえます。これは真理ですが、とても重要な側面が1つ抜けています。それが「暗号鍵を解くのにかかる時間」です。総当たり攻撃なのでいつかは解けるとして、果たして「いつ解けるのか」が重要です。たとえば、鍵長が128ビットで、かつブルートフォース攻撃以外では解けない頃号を破るには、全部でおよそ3.4× 1030(2128) 通りの鍵の組み合わせを試す必要があります。この場合、仮に1秒間に1億種類の鍵を試せたとしても、すべての組み合わせを試すにはおよそ 10年(3.4× 100 秒)かかります。この程度の耐性があれば、十分に安全な暗号であるといえるのではないでしょうか。

セキュリティカテゴリの最新記事