また「暗号化の壁」を配置する場所も問題になります。当然考えられる場所はディスクとDRAMの間です。しかし、ディスクキャッシュ、さらにはメインメモリとして使用されるフラッシュメモリが増える中、不揮発性の共有メモリに平文のファイルを保存したいと本当に思うでしょうか。最もセキュアなシステムではプロセッサのSoC自体が暗号化サイトになるケースがあるため、DRAM内のデータでさえ暗号化されます。唯一の平文バージョンはオンチップキャッシュにしかありません。このアプローチは、SoCのデザインとシステムの性能に大きな影響を与えます。
最後に抑止力があります。内部関係者の脅威からシステムを完全に保護するのは不可能であっても、危険すぎて内部関係者が攻撃を仕掛けられないシステムにすることはできるでしょう。そのために、新しいタスクの起動やシステムへのデータアクセスなどに注目して、ユーザーまたはタスクごとに活動を追跡するシステムにします。その後、これらのログをアルゴリズムまたは人間による検査のいずれかで監査して、疑わしい活動を特定します。
内部関係者が脅威を及ぼすには、多くの場合、試行を繰り返してシステム防衛上の弱点を見つける必要があります。監査だけで攻撃を失敗させることはできませんが、監査することによって、短期間では成功しにくい攻撃のリスクを高めることができるため、攻撃者はそのリスクを取らないようになります。
システム動作を事後にオフラインで精査する必要はありません。システム自体の動作をモニタして疑わしい活動への対抗策を講じることも可能なシステムを設計できます。この考え方から、セキュリティの第3レイヤーである能動的な手法が導かれます。
これまで説明してきた対策は基本的に受動的なもの、つまりシステムリソースへのアクセスを阻止するか、または侵入者がリソースを使用できないようにするものでした。
その一方で、「セキュリティ違反が発生する前提で対抗策を講じる」という全く異なる戦術を利用した防衛カテゴリもあります。その具体策として「スクラビング」「モニタリング」「機械学習」という3種類を取り上げます。これらの本質は、いずれもセキュリティではなく信頼性とランダム故障検出の領域にあります。また、侵入はハードウェアの故障のように追跡されます。
スクラビングの考え方は単純です。セキュリティ上の重要な状態がシステムに発生したらそれを頻繁に読み取り、ハッシュと照らし合わせて正当性を検証し、必要に応じてアラームを発したり状態を修正したりします。スクラビングの候補には、ブートROM、CPUのセキュアモードで実行される全てのコード、認証鍵、MMUとキャッシュTLBのエントリ、FPGAの機能を決定する制御RAMなどがあります。改ざんを目的としたマルウェアから隔離された別のハードウェアでスクラビングを行わない限り、問題の無限ループを避けることは極めて困難です。
Copyright © ITmedia, Inc. All Rights Reserved.