ウイブシステムズ株式会社 シニアアプリケーションエンジニア 清水英一氏
ソフトウエア/セキュリティ業界にて、プログラマー、サポートエンジニア、プリセールスエンジニア、エバンジェリストとして30年間従事(主にCanon Software、WindRiver、RSA、Microsoft、IBMなど)。WIBU-SYSTEMSの日本法人開設と同時に、WIBU-SYSTEMS株式会社に入社。シニアアプリケーションエンジニアとして、日本法人立ち上げからCodeMeterの技術営業およびサポートに従事。
リバースエンジニアリング攻撃対策は難読化ではなく暗号化が不可欠
ウイブシステムズは1989年に創業した、ソフトウェアプロテクション・ライセンシングフレームワークの分野で32年の実績を持つドイツのソフトウェアベンダーである。「ワールドワイドで約7000社に活用されています」と清水氏は語る。
同社が提供するソフトウェアプロテクション・ライセンシングフレームワーク「CodeMeter」は、ソフトウェア保護とライセンシングのためのソリューション。開発したソフトウェアを暗号化することで、リバースエンジニアリング攻撃からソフトウェアを保護。ソフトウェア実行時にライセンスの有無やその要件を満たさなければ、ソフトウェアの保護対策は解除されないため、不正使用を防御しながら新たな収益モデルを構築できるようになる。
一般的にリバースエンジニアリング攻撃対策のために使われる技術はソースコードの難読化である。そのためのソリューションは無料のものを含めて世の中には数多く登場している。ただ、難読化はあくまでもソースコードを意図的に読みにくくするための技術なので、解読が完全にできなくなるわけではない。つまり時間をかければ、ソースコードが解読される可能性がある。
一方、ウイブシステムズのCodeMeterは、先述したように暗号化テクノロジー「AxProtector」を採用し、ライセンスキーがないと復号できず、解読もできないようになっている。だからこそ、成果物のライセンス販売を考えているソフトウェア開発会社の、「守りたい」「売りたい」というニーズを満たすことができるというというわけだ。
しかも開発者がコードを読みにくくする難読化と異なり、「ユーザーに提供する際に、コードの変更や再コンパイルすることがないなど、開発エンジニアに負荷をかけることなく、ソフトウェアに保護対策を付与することができます」と清水氏は力強く語る。
このようにソフトウェアのライセンス販売を考えている企業にとって、CodeMeterは非常に有効なソリューションだが、これまでプロテクトする対象のコードバイナリは、CやC++などPCやIPC向けに書かれたマシンコード、組み込みデバイス向けマシンコード、Javaをはじめとするバーチャルマシン上で動くコードだった。だが、今年の8月にPythonやJavaScript、TypeScriptなどのスクリプト言語にも対応したソリューションをリリースした。
Pythonというと機械学習やデータ解析などで使われる言語というイメージを持っている人が多い。そのため、新しい言語と思われがちだが、登場したのは1991年。清水氏も「91年は私が社会人になる1年前。そんなに古くからある言語なんだと驚いた」と話す。昨今は機械学習やデータ解析に加え、Webアプリケーションやデスクトップアプリケーション、さらには組み込みアプリケーション、ゲーム制作、ブロックチェーン開発など用途が広がっているという。それに伴い、人気も上昇。「このような動きは日本国内だけではなく世界各国で同様の動きとなっている。エンジニアの求人総数が減っている中でも、Pythonの求人数は増加傾向で、Pythonエンジニアの市場価値も高まっているようです」(清水氏)
このようにPythonワールドが広がりをみせていることから、Pythonコードで開発された成果物でビジネスを展開するニーズも高まっており、これまでの言語同様、「成果物を売るためには、成果物を守る必要があった」と清水氏は続ける。
Pythonをはじめとするインタプリタ型言語は、従来までのCやC++などのコンパイラ型言語とは異なり、第三者解読が容易であるというデメリットがある。コピー防止もなければIP保護もない。したがって何も対策を施さなければ、ソースコードはユーザーだけではなく、競合他社なども使用可能となる。「特にAIのアルゴリズムなど、重要なコードを記述している開発者にとっては、とてもそのまま提出できるものではありません」(清水氏)
これはPythonだけではなく、スクリプト言語全般に言えることでもある。この課題をクリアできなければ、インタプリタ型の言語によるビジネスは難しい。