安全なWi-Fi通信に脆弱性
PCやスマートフォンをネットワークに接続する際、Wi-Fi(無線LAN)を使用する方も多いでしょう。Wi-Fi通信で通信内容を暗号化する規格がWPA2(Wi-Fi Protected Access 2)です。WPA2は発表から10年以上経った現在でも安全性が高く、Wi-Fi接続を行う機器の大半で使用されています。
しかし先日、WPA2に脆弱性が存在することが発表されました。この脆弱性は「KRACKs(Key Reinstallation AttaCKs)」と呼ばれ、端末とWi-Fiアクセスポイント(AP)との暗号化通信を行う際の暗号鍵を生成する過程で奪うことができ、攻撃者は暗号化された通信内容を復号して盗聴することが可能となります。
ほとんどのWi-Fi通信でWPA2が使用されているために影響範囲は大きいですが、盗聴されるのは端末とAPとの間の平文情報のみであり、SSL通信(httpsで始まるサイトとの通信)やVPN通信を行う場合は別の暗号鍵が必要になるため、内容は傍受されません。また、この攻撃は電波の届く範囲にいる必要があるため、顔を晒したくない攻撃者にとってはリスクが高い攻撃手法です。現在はこの脆弱性に対応した修正プログラムが続々と公開されており、被害報告もされていないようです。
脆弱性はなぜ生まれるのか?
このように情報セキュリティ上の問題では「脆弱性」という言葉をよく耳にします。「脆弱性」とは、PCやスマートフォンで稼働するOSやソフトウェアにおける情報セキュリティ上の欠陥であり、「セキュリティホール」とも呼ばれます。攻撃者が脆弱性を悪用すると、不正アクセスやウィルス感染等、様々な問題が発生しやすくなります。脆弱性が発生する要因として、以下が考えられます。
1.ソフトウェア設計上の要因ソフトウェアの設計時にセキュリティを考慮していないと、潜在的に脆弱性が埋め込まれる可能性があります。脆弱性を防ぐには、開発するソフトウェアの利用状況や使用環境を踏まえたセキュリティ要件を盛り込むことが必要です。そのためには設計者が情報セキュリティに精通する必要がありますが、そのような設計者は数少ないのが実状です。
2.ソフトウェア開発上の要因情報セキュリティを考慮した設計でも、プログラミングで脆弱性が生じることもあります。すべてのプログラマーが情報セキュリティに詳しい訳ではなく、テスト工程ですべての脆弱性を発見することも困難です。また、古くからのプログラムに更新が繰り返し行われるとソースコードが複雑になり、脆弱性が発見しにくくなるという課題もあります。
3.ソフトウェア使用上の要因セキュリティ対策の行われたソフトウェアが開発されても、セキュアな利用がされなければ意味がありません。動作が遅くなる、設定が面倒という理由でセキュリティ機能をOFFにするような行為が該当します。また、設計者や開発者が想定していない方法で利用した場合にも脆弱性が明らかになることがあります。
脆弱性はなくならない
それでは、セキュアな設計をし、セキュアな開発が行われ、セキュアな利用を行えば脆弱性は無くなるでしょうか。このような行為自体不可能に近いのですが、仮に実現したとしても答えは「NO」です。攻撃者はソフトウェアに対する攻撃手法を常に探っています。また、技術の進化はこれまでできなかった攻撃を可能にすることもあります。
こうした脆弱性を防ぐには、セキュリティ修正プログラムが公開されたら都度、迅速に適用することです。世界中で大流行したランサムウェア「WannaCry」は既知の脆弱性を悪用したものであるため、被害に遭ったのは最新状態でないWindows PCばかりでした。
時には、攻撃者が先に脆弱性を発見し、修正プログラムの配布前に攻撃することもあります。こうした攻撃はゼロデイ攻撃と呼ばれ、防止する手段がありません。公開された脆弱性情報を確認し、脆弱性に関わる行為を行わないことが重要です。今回のWi-Fi通信で発見された脆弱性であれば、有線LANを利用する、重要なデータのやり取りにはSSL通信やVPN通信を利用する、等の対応が考えられます。
(金子 清隆/ITコンサルタント セキュリティコンサルタント)