オフィスアワーがそろそろ始まるよ!()

◤エッセイ集◢ C言語を超えよう!より高い安全性を誇る「Zen言語」の魅力を語ります!

今回はC言語を用いたシステム開発に潜むリスク、そしてそのリスクを解決する新しいプログラミング言語「Zen言語」について説明します。

社会インフラに潜む危険性

普段ネット等でサービスを利用していて、こんな文章に遭遇したことはないですか?

「申し訳ありません。ただいまシステム障害が発生しております。」

きっと何度も経験があると思います。こういったシステムエラーの原因は様々です。ソフトウェアのバグや、サイバー攻撃が原因で起こることもあります。サイトやアプリが障害によって利用できないといった場合は、社会的な実害はそこまで大きくありません。

しかし問題は、重要な社会インフラがソフトウェアの脆弱性によって動作不良を起こした時です。社会インフラが動作不良を起こし、ライフラインが停止したとしたらどうでしょうか?大規模停電や断水が起きたり、原発事故などの重大な事件が起きてしまう悲惨な事態を想像してください。

不安になりませんか?

SDGsの達成・Society 5.0 へ到達できますか?

いや、不安という段階はとうに過ぎてしまっています。 実は、社会インフラを狙ったサイバー攻撃はもうすでに起きていますし、重要インフラがソフトウェアバグによって動作不良に陥ったこともあります。実際、以下の二つの事件は、重大インフラを狙ったサイバー攻撃が原因だと言われています。

(参考)"重要インフラに対するサイバー攻撃の実態と分析".NEC(Japan)ホームページ

今後、このような社会インフラを狙った事件が多発して、悲惨な社会になってしまう可能性は日々増加しています。

社会インフラに潜む危険性の原因

社会インフラがサイバー攻撃の標的になってしまう原因として、安全ではないプログラミング言語が使われていることが挙げられます。現在、日本だけなく世界的に重要なインフラの多くは、C言語というプログラミング言語で作られています。C言語は汎用性が高いこともあり、これまで世界中で使われてきました。

しかし、C言語は危険な操作を許してしまうため、プログラマの意識しないところで脆弱性が発生するリスクが高い言語です。プログラミング言語で書かれたコードを、機械語に変換する作業をコンパイルといいます。Cコンパイラ(C言語を機械語に変換すること)では、C言語で書かれたソースコードを馬鹿正直にそのまま機械語に変換(コンパイル)しているだけなので、脆弱性の含まれたソースコードもそのまま変換(コンパイル)してしまいます。そのため、プログラマの意図していないところでバグが発生したり、サイバー攻撃の原因となる脆弱性が発生するのです。

C言語と Zen 言語の比較

安全性に乏しいC言語を用いて安全なシステムを作ることは困難です。それにもかかわらず、長い間使ってきたという(見せかけの)信用があるので、危険であってもC言語が使われ続けています。現場では、C言語でソフトウェアを開発し、その後何度もバグチェックを行います。ただ、何度もバグチェックすることは効率も悪いですし、ソフトウェアの自動解析ツールを用いたとしても脆弱性を完全に検出することはできません。

一般的に、ハッカーはすごい技術を持っていて、どんな強いシステムを作っても破られてしまうといった固定観念があると思います。しかしこれは誤りで、実際はソフトウェアに潜む脆弱性を利用して、ハッカーはサイバー攻撃をしているにすぎません。

システム側からすると、サイバー攻撃を受けて初めて脆弱性の存在に気づけます。そして発見された脆弱性に対し、そのたびに修正をしています。しかし、脆弱性に対して、その都度新しい対策を施していくのでは、根本的な解決にはなりませんし、セキュリティ対策にもその都度高い費用がかかります。

安全・最善・漸進的な「Zen」

コネクトフリーは、システムエラーを事前に防ぐことができるプログラミング言語「Zen」を開発しました。より安全で、かつ効率的なシステム開発が可能です。

Zen言語の特徴

先ほど述べたように、C言語は、計算能力の乏しい1980年代の思想のそのままに単純な変換を行うだけであり、脆弱性の含まれたソースコードもそのまま変換(コンパイル)してしまいます。C言語のこの特徴のせいで、脆弱性が生まれバグやサイバー攻撃の原因となっていました。しかし、Zen言語では昨今の高速になったCPUの性能を生かして

コンパイルの時点で計算によって脆弱性を検出できるため、リリース前に脆弱性の修正が可能です。

これまでのようにバグやサイバー攻撃が発覚した後で、あわてて修正を行う必要はありません。

コンピュータ言語でもCPUをもっと活用

加えて、これまでは人間が手動で行っていたバグチェックの手間が省けると言えます。Zen言語なら、実行できた段階でバグがないことが保証できるため、チェックの必要はありません。Zen言語を用いることで安全かつ効率的な開発が可能です。

また、Zen言語には、C言語からの移行が容易である という特徴があります。Zen言語はC言語に使用感が似ているため、現在C言語で開発を行っているプログラマが、Zen言語へスムーズに移行できます。また、ZenコンパイラはC言語もコンパイルすることができます。 これまでのC言語の資産はそのままに、新しい部分をZen言語で実装したり、C言語で構築されたシステムの一部をZen言語で書き直したりできます。そのため、漸進的な移行が可能となります。

さいごに

現在の社会インフラに潜むリスク、そしてそのリスクを根本的に解決する新言語、Zen言語について説明しました。80年代から変わっていないC言語を用いた開発では、今後のデジタル社会のセキュリティリスクに対応しきれません。だからこそ、より安全なプログラミング言語が必要なんです。Zen言語が世界中に広がれば、もっと安全な社会になるでしょう。

SDGsの達成・Society 5.0 を実現!

Zen Language Logo

Start your Zen Journey

The world could use a little more Zen.

Start your Zen journey

☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2019 connectFree Corporation. All rights reserved. | 特定商取引法に基づく表示
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.