フォローしましたコンピュータセキュリティというのは微妙なもので、正面からの攻撃には安全でも、攻撃対象とは思われていなかった部分を突くとあっさり情報が盗めるパターンがある。いう攻撃手法をサイドチャネル攻撃という。ここではサイドチャネル攻撃についていくつか見てみよう。社外秘の文書をセキュアにブラウズしたいとしよう。VMwareなどを使って仮想マシンにOSを2つインストールして、通常利用環境とセキュア環境を完全に分離して、セキュア環境からしか社内ネットワークにアクセスできないようにして、そちら側をインターネットから完全に隔絶しておけば、仮に両方のOSが乗っ取られたとしても、VMware自体が乗っ取られない限りは依然として分離が有効に機能しているので、インターネットに情報がリークすることは原理的になさそうだ。実際にはこのような分離は完全な防護壁にはなってくれない。セキュア環境は「なにもしない」のと「CPUを激しく使う」という方法で通常利用環境に1ビットずつ情報を伝えることができる。このような本来想定されていない通信手段を「隠れチャネル」というのだが、攻撃者が両方のOSを乗っ取ることに成功したら、隠れチャネルを使って徐々に社外秘文書を外部に送信することができてしまう。現在最も有名なセキュリティの問題は、本来読めないはずのメモリ領域を読めてしまう攻撃手法Meltdown/Spectreだろう。この攻撃では、隠れチャネルの送信元としてCPUに投機的実行されるコードを用意しておいて、CPUキャッシュを隠れチャネルに使って、ユーザプロセスからカーネルメモリを読み取るということを行う。[1]、相当大きな穴だったということがわかる。意図しないところで本来秘密の情報がバレてしまうケースもある。鍵によって計算負荷が異なる暗号の場合、暗号チップから結果が返ってくるまでの時間を測ることで鍵を推測することができる。チップ側で待ち時間を入れて時間を揃えたとしても、チップの消費電力を計測すれば本当に計算しているのかを見分けることができる。チップのカバーを外して赤外線カメラで撮影すれば、どの部分が熱を発しているかわかるので、そこからどういった演算が行われているのかある程度推測することもできる。セキュアなチップを作るときにはこれらの攻撃手法をすべて考慮に入れなければいけない。CPUとメモリはバスを通じて繋がっていて、メモリアクセスはバス上の電気的な信号として送られる。メモリアクセスを行うとノイズが電磁波としてバスから放射されるので、これを使うとメモリアクセスのパターンを推測することができる。[2](「メリーさんの羊」を送信するデモ)。NewtonをメモリアクセスとAMラジオだけを使ってデバッグしたエピソードもあるようだ。いうわけで、想定内の攻撃に対しては実際に安全なセキュリティメカニズムでも、想像もしなかった方法を使うことでセキュリティを破れてしまうことがあるのだ。クリエイティブな攻撃手法を考えつく人には本当に感心するしかない。ダウンロードこの記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。系記事まとめnoteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。奥深さと可能性に迫...30imaimai久々に興奮する本に出会った。クリエイターへのお問合せnoteカイゼン目安箱クリエイターの。