「Go 1.18」リリース–ファジングテストをネイティブでサポート
今回は「「Go 1.18」リリース–ファジングテストをネイティブでサポート」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Googleが「Go 1.18」をリリースし、「Go」プログラミング言語に「重要な」アップデートを施したことを明らかにした。具体的には、主要なプログラミング言語として初めて、ファジングテストのネイティブサポートが導入された。
Googleの説明によると、ファジングテストまたは「ファジング」とは、ソフトウェアにランダムなデータや無効なデータを入力して、バグや未知のエラーの有無を確認することで、ソフトウェアの脆弱性をテストする手段だという。
これにより、機能の進化が続くGoのコードに新たなセキュリティ層が追加され、安全な状態が維持される。ソフトウェアに対する攻撃の頻度と複雑さの両方がエスカレートし続けているので、このアップデートは極めて重要だ。
Googleのインフラストラクチャー担当バイスプレジデントのEric Brewer氏は、「Googleでは、世界が依存するオンラインインフラストラクチャーとアプリケーションのセキュリティ保護に献身的に取り組んでいる」と述べた。
「これに関する重要な側面は、オープンソースの依存関係チェーンのセキュリティを理解して検証できることだ。Goの1.18リリースは、開発者が最も安全なアプリケーションを構築して、脆弱性が発見された場合のリスクを理解し、サイバーセキュリティ攻撃の影響を軽減できるようにするための重要な一歩である」
ファジングをサポートする言語はほかにもあるが、Goは主要言語として初めて、それをコアツールチェーンに組み込んだ。つまり、ほかの言語と違って、サードパーティーサポートの統合は必要ない。
Googleが「10年以上にわたる設計作業の集大成」と宣伝するGo1.18は、開発者が長年要望してきた同言語の重要なアップデートを多数提供する。
Googleは、パラメーター化された型を使用するジェネリックコードのサポートが新たに追加されたことも強調している。これは、Goユーザーからの要望が最も多かった機能だ。
GoogleでGoの製品および戦略担当リードを務めるSteve Francia氏によると、ジェネリクスがサポートされていない場合、Goユーザーは使用するデータ型ごとに同様のコードを繰り返す必要があるという。
Francia氏は米ZDNetに対し、「ジェネリクスを使用すれば、ユーザーはそのコードを単一のルーチンに統合し、なおかつ安全性も維持することが可能だ」と語った。「さらに、ユーザーは、より読みやすくて高性能なコードと、Goが一貫して提供してきた安全性も享受することができる。それは、生産性とパフォーマンスに大きな『恩恵』をもたらす」
最後に紹介するGo 1.18プログラミング言語への追加機能は、開発者が単一のリポジトリーで複数のコンポーネントを使用できるようにするモジュールワークスペースと、「ARM64」およびApple「M1」プロセッサーでの20%のパフォーマンス向上だ。
Googleが2007年に開発したGoは、特にソフトウェアエンジニアが現代的なマルチコアコンピューティングシステム向けの安全なオープンソースエンタープライズアプリケーションを構築できるように支援することを目的としている。
Googleによると、「Kubernetes」や「Istio」など、Cloud Native Computing Foundation(CNCF)のプロジェクトの4分の3以上はGoで記述されているという。Stack Overflowのデータによると、世界中の開発者の約10%はGoを使用しているという。テクノロジー分野でGoプログラマーを求める採用担当者が増えていることを示す兆候もある。
Francia氏は、「『Kubernetes』や『Docker』など、クラウドネイティブでコンテナー化されたアプリケーション開発の未来を形作る重要なプロジェクトの多くが、Goを使用して構築されている」と説明する。
「Googleには専任のGoチームがあるが、コミュニティーからの多大な貢献を歓迎している。これは共同の取り組みであり、彼らのアップデートによって、われわれはコミュニティーがGoの長期的なビジョンを達成できるように支援している」