編集部からのお知らせ
「ZDNet Japan Summit」参加登録受付中! 
新着記事集:「負荷分散」

マイクロソフト、セキュアなコード実現に向けプログラミング言語「Rust」評価

Catalin Cimpanu (Special to ZDNet.com) 翻訳校正: 村上雅章 野崎裕子

2019-07-24 07:30

 プログラミング言語Rustの人気が高まってきているなか、Microsoftはその可能性を見極めようとしている。


 Microsoftは、RustがCやC++などの代替となり、同社や他社のアプリのセキュリティを強化するうえでの方策になるかどうかを調査しようと計画している。

 この情報は、Microsoft Security Response Center(MSRC)の主席セキュリティエンジニアリングマネージャーであるGavin Thomas氏が米国時間7月16日に同組織のブログ上で明らかにしたものだ。

 Thomas氏は「MSRCがインシデントや脆弱性への対応組織だと考えている人もいるだろう」と述べたうえで、「われわれは対応組織でもあるが、積極的な役割も担っている。このため、ブログ上の新シリーズではより安全なシステムプログラミング言語に向けたMicrosoftの探求を取り扱っていきたい。手始めはRustだ」と続けた。

 その目標は、誕生から時間が経っているCやC++といったプログラミング言語から「メモリーセーフな言語」と呼ばれるものに移行していくための道を開発者らに示すことにある。

 Rustのようなメモリーセーフな言語は、バッファーオーバーフローや競合状態、メモリーリーク、解放後の使用、メモリーポインター関連のバグといった、メモリー破壊の脆弱性からの保護を目的としてゼロから設計されたものだ。

 Microsoftが開発したC#というプログラミング言語も、メモリーアクセスに関してある程度の改善がなされているが、Rustほど高度なレベルには達していない。

Microsoftがリリースしたパッチのうちの70%はメモリー関連の問題修正

 MicrosoftのセキュリティエンジニアであるMatt Miller氏は、2月にイスラエルで開催したセキュリティカンファレンス「BlueHat IL」で、過去12年にわたって同社が毎年公開してきたパッチのうち、およそ70%はメモリーの安全性に関するものだったと報告している。


提供:Matt Miller氏

 その割合の高さは、「Windows」をはじめとするMicrosoftの製品群がCやC++で記述されているためだ。こういったプログラミング言語によって、開発者はメモリーアドレスや実行場所をきめ細かく制御できるようになるものの、言語自体は「メモリーセーフではない」のだ。

 メモリーまわりの実行コードで開発者が1カ所でもミスをおかすと、リモート環境からのコード実行や特権の昇格を許してしまう脆弱性といった破壊的な結果を引き起こすために攻撃者が悪用できる、メモリーの安全を脅かすおびただしい数のエラーが生み出されることになる。

 Rustのようなメモリーセーフな言語の利用を検討することで、より安全なMicrosoftアプリを開発するための新たな道が開かれるだろう。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. クラウドコンピューティング

    Google Cloudセキュリティ基盤ガイド、設計から運用までのポイントを網羅

  2. セキュリティ

    仮想化・自動化を活用して次世代データセンターを構築したJR東日本情報システム

  3. ビジネスアプリケーション

    スモールスタート思考で業務を改善! 「社内DX」推進のためのキホンを知る

  4. セキュリティ

    Emotetへの感染を導く攻撃メールが多数報告!侵入を前提に対応するEDRの導入が有力な解決策に

  5. セキュリティ

    偽装ウイルスを見抜けず水際対策の重要性を痛感!竹中工務店が実施した2万台のPCを守る方法とは

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]