セキュアOSとは?

この世に「完全無欠のサイバーセキュリティ」は存在しませんが、KasperskyOS(KOS)は安全であると言えます。KOSの安全性を技術面から詳しく説明します。

しばしば、尋ねられることがあります。「この世界に100%安全なものなどないというなら、KasperskyOSが安全だとどうして言えるのか?」。

対する答えは、こうです。「100%安全なものがないということ、KasperskyOSが安全だということ、この両者はとてつもなく意味が異なる」。

実際、この世界には「完璧なサイバーセキュリティ」などというものは存在しませんし、そういうものでもあります。セキュリティシステムの仕事は、望まれる100%のセキュリティに可能な限り近づくことですが、この課題は100%に近づくほど難度を増し、時間もコストも増大します。必要とされるリソースと作業の複雑さが故に、99.9%に達してから先は、0.001%進むごとに、そこまでに費やしたのに匹敵する労力が求められるかのようです。しかし、この100%に近づく努力が重要です。このようなセキュリティ技術は、重要インフラ(英語)、自動車ネットワーク機器(英語)をはじめとする、最大限のセキュリティが求められる分野を数多く内包する巨大市場で必要とされています。ここでは、セキュリティの完全性が0.001%ばかり不足するだけでも、予見不能な事態や壊滅的な損害を伴う大惨事につながる恐れがあるのです。

別の言い方をすると、安全なOSが目指すところは、サイバー攻撃をほぼ許さない100%のセキュリティに肉薄すること、または、少なくともサイバー攻撃による経済的利益が見込めない状況にすることです。この目標を達成するための取り組みにおいて、KasperskyOSに並ぶものはありません。本記事では、KasperskyOSが真に安全なプラットフォームである理由を説明したいと思います。

詳細に踏み込む前に概要をお伝えすると、そもそもKasperskyOSとは、安全なマイクロカーネルアーキテクチャに基づいて設計されたOSです。このOSは「デフォルト拒否」の概念に従って保護されたアドレス空間で動作し、また、利用者独自のビジネスロジックを詳細に定義できるようになっています。コンパクトで透明性が高く、冗長性を排したシステムです。

それでは、詳しくご説明しましょう。

アーキテクチャ

劇場はクロークルームから始まると言われますが、OSはアーキテクチャから始まります。

最新のデスクトップPC用OS、モバイル用OS、さらには産業用OSが共通して目指すものは何でしょうか?操作性、拡張性、機能性、安定性、そしてプロプライエタリ(独占的)であることでしょう。ベンダー各社は「セキュリティ」を約束していますが、掘り下げてみると実態はさほどのものではなく、本物の技術による裏打ちのないマーケティングに過ぎません。

大きな違いは、OSのアーキテクチャにあります。安全なOSは、従来の「カーネル – アプリケーション – セキュリティ」という階層構造ではなく、「セキュリティ – カーネル – アプリケーション」という枠組みを基盤とします。KasperskyOSのエコシステムは、カーネルとアプリケーションの動作方法を定義する根幹的なサイバーセキュリティ原則に根ざしています。

リング3

根幹的なアプローチの1つは、OSのコードの大部分を、特権レベルの低いアドレス空間へ、たとえばx86アーキテクチャであればリング3に、移行することです。

一見不可解に思われるかもしれませんが、これには理由があります。安全なアドレス空間を提供するリング3では、コードアクションを制御しやすく、外的影響からコードを守りやすいのです。当然パフォーマンスは低下しますが、コンパクトサイズであるために動作が速いこと(後述するマイクロカーネルの箇所を参照)と優れたプログラミングをもって、この欠点は相殺されます。このほか、コードの透明性が一層高まるところから、信頼性も向上します。

「禁止」ではなく「許可」

従来のOSアプリケーションレベルでは、長きにわたり「デフォルト拒否/ホワイトリスト方式」の概念が実装され、さまざまな用途で効果的に使われてきました。セキュリティを向上させる手法として、多くのシステムで十分な効果が認められています。

KasperskyOSは、デフォルト拒否の概念を「システム」レベルで実装しています。セキュアOS内でのアクションはすべて、既定で禁止されているのです。KasperskyOSの実装にあたっては、ビジネス上の具体的な課題に合致するアクションを許可するルールを定義し、独自のセキュリティポリシーを作成することになります。セキュリティポリシーは、言うならば「システムが動作するための規則」です。ポリシーは交通ルールに似ていますが、決定的な1つの違いは、ポリシーに違反するのが不可能である点です。KasperskyOSはこのようにして、より高い質の保護を実現しています。

適切なマイクロ管理

KasperskyOSのユーザーアクションルールは、柔軟性に富み、表現性が高く、きめ細かい設定が可能です。特殊なセキュリティ要件にも対応できるよう、内部プロセス通信の性質やシステムサービス、ネットワークプロトコル、OSモジュール、アプリケーションの利用に関する個々の特定ロジックを、必要に応じて細かい点まで定義できます。定義されたロジックの範囲を越えるアクションは自動的にブロックされ、明示的に許可された処理のみを実行します。

コードは少ない方がいい

あるとき『Embedded World』(英語)というイベントで、ある企業が、自社のソフトウェアで機能強化した自動車について「1億行のコードで動く」と豪語しているのを聞き、戸惑ったことがありました。コードの量が多いほど、脆弱性を含む可能性が高まり、製品の安全性が低下します。一般的に、大量のコードを含む製品は監査が難しく、リソースの強度とスピードに劣り、その他にも多くの負の副作用を伴います。コードの量は、プログラミングスキルを測る指標でもあります。無駄のない簡潔なコードで、非常に複雑なタスクも遂行できるのです。

KasperskyOSのカーネルのコードは、わずか1,500行ほどです。この1,500行で、OSカーネルのロジック全体を定義しているのです。カーネルはプロセッサ(Intel、ARM、MIPS)にリンクし、その上にはドライバー、システムユーティリティ、インターフェイス、ビジネスアプリケーションがあります。当社ではKasperskyOSを「マイクロカーネルOS」と呼んでいますが、このサイズなら「ナノカーネルOS」と呼べるかもしれません。

風通しの良さ

近年、地政学的な対立によって、IT業界に対する信頼が深刻な危機にさらされています。疑心が強まるあまり、国家のために働くハッカーはどこにでもいる、政府のサイバースパイ活動が商用ソフトウェアを利用してあちこちで行われている、などという言説が飛び交っています。秘密主義の拡大を選んだ企業もありますが(英語記事)、当社では、今こそ合理的なオープン性を推し進めるべきときだと考えています。コンパクトで透明性の高いカーネルを基盤としたKasperskyOSは、この方針にも即しています。

当社が製品のソースコードをオープンにすることを恐れないのはなぜか。

第1に、私たちには隠すことが何もないからです。第2に、脆弱性が発見されることを歓迎するからです。発見された脆弱性を修正すれば、製品の信頼性が向上します。第3に、KasperskyOSのカーネルは繰り返しテストを受けていますが、これまでに1つのバグも、また宣言記述のないプロシージャも見つかっていないからです。当社が先日より開始した透明性への取り組みも、改めてこのことを裏付けることになるでしょう。第4に、ソースコードの検証は脆弱性検出の必要条件ではなく、脆弱性はほとんどの場合、別の方法で検出されています。

中庸を知れ

数十年もの間、ソフトウェア市場は機能競争のようなものに明け暮れてきました。より多くの機能、もっと便利なあれやこれやを追加して、新バージョンを発表し、人々に喜んでもらって、結局は誰も使わないことがわかったら廃止する。その繰り返しです。端的な(英語)を挙げましょう。Wordのコマンド全使用回数の3分の1が、わずか5つのコマンドで占められているというのです。一度も使用されていないコマンドは、果たしていくつあるのでしょうか?

新機能が1つ増えれば、そのたびに脆弱性、パフォーマンス、フォールトトレランスの低下、管理の煩雑化などのリスクが増えます。KasperskyOSは、当社が呼ぶ「中庸を知れ」の原則に基づいて動作する、シンプルでわかりやすく透明性の高いOSです。このほか、特定の実装環境においては、他のOSやアプリケーションと重複する機能をカットし、宣言記述のある機能だけを旧プラットフォーム(レガシーSCADAシステムなど)に実装する機能も備えています(英語記事)。

KasperskyOSの詳細については、こちらをご覧ください

ヒント