「この技術、10年後もイケてる?」を考えてきたハードウェアエンジニアから若者への提言:セキュリティ・アディッショナルタイム(37)
米国のセキュリティ企業FortinetでPrincipal ASIC Design Engineerを務める坂東正規氏は、何を思い渡米し、キャリアを築いていったのか。これからのセキュリティエンジニアは何を学ぶべきかなどを聞いた。
「NHKのドキュメント番組『電子立国日本の自叙伝』を見て、半導体という“産業のコメ”を輸出するなんてすごいな、かっこいいなと感激し、自分もこんな仕事をしてみたいと思いました。それが今の原点です」――FortinetでPrincipal ASIC Design Engineerを務める坂東正規氏はこのように語った。
最近では、米国で働くエンジニアはあまり珍しくはなくなってきたが、その多くはソフトウェア開発者。これに対し坂東氏は、日本のお家芸であったハードウェア分野で、海外で活躍するエンジニアだ。いったいなぜ、今のキャリアを選んだのかという問いに対する答えが、冒頭の言葉だ。
坂東氏は日本の大学で電子工学を専攻後、教授の仲介で就職先もほぼ決まっていたにもかかわらず、「どうしてもやりたいことなのだから、今やらなくちゃ」と渡米。語学学校を経て半導体を専攻する教授の下に押し掛け、決して得意ではなかった英語と格闘しながら、常に「背水の陣」で研究に取り組んだそうだ。
当初教えを乞おうと願った教授に予算がなく、急きょ別の教授を訪ねて研究室入りを志願したり、他のアジア各国から留学してきた学生に比べて日本人コミュニティーの少なさに直面したりといった苦労はあったが、「諦めないという思いと、英語の勉強のために聞いたラジオで流れてきた『何かを始めるのに遅過ぎることはない』という言葉に励まされてきた」と、かつての自分を振り返った。
ソフトウェア全盛の時代だからこそ、足元のハードウェアに目を
坂東氏は今、その経験を生かしてFortinetで働いている。IT系企業、それもセキュリティ関連企業というと「ハッキングとかできるんでしょ?」としばしば尋ねられるそうだ。だが「社内には、そういうのが得意な人もいてすごいなと思いますが、僕はできません。僕が興味があるのはむしろビットやバイト、アルゴリズムとかアーキテクチャといった分野です」と述べた。
確かに、脆弱(ぜいじゃく)性や脅威動向に関するスキルも重要だ。だが、「コンピュータの中で何がどのように動いているか」を理解していることが、複数のセキュリティチップをはじめ、ハードウェアを内製しているFortinetで役に立っているとした。
「今、すごくクラウドが注目されていますが、それは別に魔法でも何でもありません。クラウドの中身はデータセンターであり、その中ではさまざまなアプライアンスが動いています。その全てのレイヤーできちんとしたものを積み上げていかないと、砂上の楼閣になってしまいます。クラウドやソフトウェア、仮想化技術が全盛の今だからこそ、足元のハードウェアに目を向けるべきです」
ムーアの法則を上回るスピードで進化し続けるネットワークの速度に対し、CPUパフォーマンスの伸びはそこまでではなく、残念ながらギャップが常に広がっている。そのギャップを埋めるには、ネットワークプロセッサ(NP)やコンテンツプロセッサ(CP)のような専用ハードウェアが必要だというのが同氏をはじめとするFortinetのエンジニア陣の見解だそうだ。
「僕が初めて使ったPC『PC-9801 VX』モデルで採用されていた『80286』というプロセッサは、整数計算しかできず、浮動小数点演算を含む科学的な計算をしようとすると途端にパフォーマンスが落ちる代物でした。そのため『80287』という浮動小数点コプロセッサ(FPU)を追加し、処理をオフロードすることで浮動小数点演算が非常に速くなったんです。あれは画期的でした。最近のコンピュータで言うグラフィックチップ、GPUやAIチップもそうですが、これってまさにFortinetのSPU(Security Processing Units)と同じ役割を果たしています」
もちろん、採用するアルゴリズムを変えるなど、ソフトウェアによる最適化によってもパフォーマンスは向上するが、それにも限界がある。ならばと力技でCPUを追加していくアプローチも考えられるが、データセンターでの集積率や消費電力、コストを考えると、こちらも無尽蔵にというわけにはいかない。
「ならば、ハードウェアにオフロードすればいいじゃないか、というのがわれわれの考え方。ソフトウェアとハードウェア、両面で最適化を図ることがFortinetの強みです」
では、セキュリティアプライアンスでは何をオフロードするのか。
「オフロードするに足るCPU占有率があること。また、処理を並列化しやすいといった具合に、それが可能なアーキテクチャであること。そして、この先数年、パラダイムが変わらないもの。この3つの条件を満たすものならばオフロードすべきという基準が社内にあります。例えばIP通信というパラダイムが変わらない限り、パケットフォワーディングは使えるでしょう。この先もどんどん新しいセキュリティ機能が追加されていくでしょうが、その際も、新たにCPUを追加するのではなく、新しいオフロード方法を考えます」
Fortinetではそうした考え方に基づいて初めからハードウェアにフォーカスし、パケットフォワーディングを高速に処理するNP、コンテンツインスペクションやSSL復号/再暗号化といった負荷の高い処理を担うCPの開発に創業以来取り組み、世代を重ねてきた。ハイエンド向けに開発したこうした技術は、システムオンチップ(SoC)という形で統合され、中規模以下の幅広いラインアップに搭載されているという。
「しばしば『ハードウェアを作るなんて、この先大丈夫?』と聞かれることもありますが、われわれは先を見ているから、自信を持って、このようにしています。SDN(Software Defined Network)がそうですが、世の中で起きていることの多くは、10年前には学術の世界で発表されていました。私の所属する部署には多くの博士号取得者がおり、業界で起きることの10年先を見越して動向を研究しています」
同時に、顧客の環境に導入された業界最大規模のアプライアンス網を「センサー」として活用し、そこで得られた膨大な量のデータを機械学習技術を活用して解析してきた。他社も同様のアプローチをとっているが、最新の脅威動向に追随するのも大事なポイントだ。
5GとIoTがセキュリティの新たな活躍の場に
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方
Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。今回は、最も基本となるC言語によるBPFプログラム作成方法および使用方法について。 - 2018年上半期に話題になったSpectreとその変異、Linuxカーネルでの対応まとめ
連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェアの脆弱性に関する情報を取り上げ、解説していく。2018年の上半期は、「Meltdown」「Spectre」とその変異(Variant)の脆弱性に悩まされた。今回はいつもとは異なり、上半期のまとめも兼ねて、Meltdown/Spectreの各変異をバージョンを追いかけながら整理する。 - Linuxカーネルのソースコードを読んで、システムコールを探る
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。前回まで、printf()内の中身をさまざまな方法で探り、write()やint $0x80の呼び出しまでたどり着いた。今回は、さらにその先にあるLinuxカーネル側のシステムコールを見ていく。