カスペルスキーは2017年2月16日、組み込み機器に向けたオペレーティングシステム(OS)「KasperskyOS」の提供を始めた。ロシアKaspersky Lab社がゼロから自社開発したOSで、コンピュータリソースが乏しい組み込みシステムに、強固なセキュリティ対策機能を提供することを目標としている。同社はKasperskyOSを、コンピューターリソースが貧弱なIoTのセンサー機器に向くとしている。さらに、強固なセキュリティ対策機能を備えていることから、発電所や水道、鉄道など、社会を支える基盤となる施設での利用を想定している。
Kaspersky Labの創業者であり現在CEOを務めるEugene Kaspersky氏によると、開発計画が浮上してから、KasperskyOSとして市場に出るまで14年かかったという。「計画が持ち上がったとき、既存のOSに機能を追加する方法も模索したが、既存のOSはセキュリティを考慮した設計になっていないので、自分たちで土台から作ることにした」とも語っている。そして、KasperskyOSは「Linuxの匂いは微塵もしない」として、完全独自開発であることを大きくアピールしている。
図 Kaspersky Labの創業者であり現在CEOを務めるEugene Kaspersky氏
出所 カスペルスキー
まったく新しいOSであるため、利用できるAPIもまったく新しい、KasperskyOS独自のものになる。Kaspersky Labは、UNIXの共通API規格であるPOSIXにも「ほとんど」対応しているとしながらも、KasperskyOSの実力を完全に引き出すには、KasperskyOSの独自APIを利用すべきとしている。
KasperskyOSは、OSの機能のうち、プロセスの制御やプロセス間通信(Interprocess Communication:IPC)など、ごく少数の中核となるものだけを「カーネル」とし、小さなカーネルのみをマイクロプロセサの特権モードで動作させる「マイクロカーネル」アーキテクチャを採用している。マイクロカーネルを採用したOSとしては、NEXTSTEP/OPENSTEPや、初期のWindows NTが挙げられる。Linuxや多くの商用UNIXは、OSの機能の多くをカーネルとして特権モードで動作させる「モノリシック(一枚岩の)カーネル」という構造になっている。
マイクロカーネルアーキテクチャを採用する利点は2つある。1つ目は、OSの中核部分のみをカーネルとすることで、さまざまなプロセサアーキテクチャへの移植が容易になるという点だ。Kaspersky Labもこの点を挙げて、KasperskyOSがさまざまなプロセサアーキテクチャに対応できるとアピールしている。現時点ではKasperskyOSは、x86/x64と、ARMv7以上に対応している。
もう1つは、ごく小さいカーネルだけがプロセサの特権モードで動作するので、OSの動作を安定させやすいという点だ。特権モードは、プロセサの命令を制限なく利用できる動作モード。ハードウェアに直接アクセスするOSの中核部などはこのモードで動かす必要がある。しかし、バグがあるプログラムや悪意があるプログラムを特権モードで動作させて、停止してしまうと、特権モードで動作しているほかのプログラムも巻き添えにして、コンピュータ全体が停止してしまう。
マイクロカーネルアーキテクチャのOSでは、OS開発者が確実に間違いなく動作すると確かめたカーネルだけが特権モードで動作し、プログラム開発者が後から追加したプログラムは、「ユーザーモード」で動作する。ユーザーモードは、利用できるプロセサ命令に限りがあるモードだ。バグがあるプログラムをユーザーモードで動作させて停止しても、そのプログラムだけが停止して再起動となるだけで、OS全体の動作には影響を与えない。
マイクロカーネルには欠点もある。IPCがボトルネックとなってしまうのだ。ユーザーモードで動作している複数のプログラムの間でIPCを実行しようとすると、プロセサの動作モードがユーザーモードから特権モードに切り替わり、IPCが完了したら再びユーザーモードに切り替わる。プロセサにとって、動作モードの切り替えは多大なクロックカウントを消費する行為だ。IPCが頻繁に発生すると、OS全体の処理性能が落ちてしまう。
ただし、最近のマイクロカーネル研究の成果により、マイクロカーネルでも性能の低下を避けられるということが分かっている。例としては、カールスルーエ大学の教授を務めていたJochen Liedtke博士による「L4」などが挙げられる。KasperskyOSがどの程度の性能を発揮するのかはまだ分からない。組み込みシステム向けに開発していることを考えると、低速なプロセサでも十分な性能を発揮できなければ、利用しようと思う開発者はほとんどいないだろう。
そして、KasperskyOSの最大の特徴はセキュリティ対策だ。まず、OSの中核となる機能であるIPCにもセキュリティ対策の機能を組み込んでいる。カーネルは、ユーザーやアプリケーション開発者が事前に設定したポリシーに従ってIPCを制御する。ポリシーは、してはいけない動作を設定するのではなく、許可する動作を指定する形で設定する。コンピュータに入り込んだマルウェアがIPCを試みようとしても、ポリシーが許可していないので、失敗する。
ポリシーに従って動作するというところは、KasperskyOS全体の特徴とも言える。KasperskyOSを使って組み込みシステムを作るとき、開発者は組み込みプログラムを作成しながら、そのプログラムが必要とする動作をポリシーとして設定していく。プログラムの開発とセキュリティーポリシーの設定を同時進行で進められるところは、開発者にとって便利と言えるだろう。設定を示すポリシーのデータには、開発者やOSが信頼するプログラムしかアクセスできない。
また、KasperskyOSでは、アプリケーションを複数の「セキュリティドメイン」に分類して管理する。別のセキュリティドメインへのアクセスには制限がかかるため、マルウェアが多くのアプリケーションに悪影響を与えるという事態に発展しにくい。
また、アプリケーション、ファイル、データベース、ネットワークポートなどのコンピュータ資源にはすべて、利用条件などを示す「セキュリティタグ」が付く。条件が合わない資源は利用できない。また、ハッカーが忍び込ませたものなど、セキュリティタグが付いていないものは、リソースを使用しようとしても不可能になっている。。
組み込みシステムに向けた特徴もある。プログラムを「モジュール」単位で分割しやすくなっており、組み込み機器に入れる際には、必要な機能のモジュールだけを選んで入れることで、OSが消費するメモリ容量や、ストレージの容量を最小化できる。
Kaspersky LabはKasperskyOSの正式供給開始に先立って、一部の顧客に先行的に供給している。例えば、ロシアのKraftway社はKasperskyOSを利用して、レイヤ3スイッチを開発した。産業機器向けソフトウェアを開発しているドイツのBE.services社は、KasperskyOSを使って、プログラマブル論理制御装置(Programmable Logic Controller:PLC)に組み込むソフトウェアを作成したという。
図 ロシアのKraftway社が開発したレイヤ3スイッチ。OSにKasperskyOSを採用した
出所 カスペルスキー
KasperskyOSは顧客が開発しようとしている機器に合わせてカスタマイズしてから提供する。そのため、価格は個別見積もりとなる。カスペルスキーは電気通信業界や自動車業界、電力会社などの社会基盤を運営する企業に売り込む構えを見せている。
■リンク
カスペルスキー