Huawei社のセキュリティ UKの問題は、安全なコーディングの必要性を示している

2019年06月06日掲載
ピーテル・ダンヒョウ著
ケーススタディ

Huawei社のセキュリティ UKの問題は、安全なコーディングの必要性を示している

2019年06月06日掲載
ピーテル・ダンヒョウ著
リソースを見る
リソースを見る

に掲載されたものです。 インフォメーション・エイジ.

英国のHuawei Cyber Security Evaluation Centreが最近発表したレポートによると、Huawei社のソフトウェア・エンジニアリング・プロセスに重大なセキュリティ問題があることが明らかになりました。この重要な報告書に関するニュースの多くは、前年からの未解決の問題に焦点が当てられていますが、より危険で見過ごされている問題は、ファーウェイが採用している安全なコーディングのガイドラインと実践が明らかに欠如していることです。しかし、それは修正可能な問題なのです。

中国の大手通信事業者であるファーウェイのニュースは、悪化の一途をたどっています。米国が今後の政府業務への参入を全面的に禁止している一方で、英国は、ファーウェイのデバイスやコードの根本的な欠陥の多くが修正可能であるという事実を受け入れています。英国は2010年にHuawei Cyber Security Evaluation Centre(HCSEC)を設立し、ファーウェイ製品のセキュリティ問題を評価・対処し、それに関する年次報告書を作成しています。しかし、今年の報告書は特に非難されていました。

ニュースの中で2019年のHCSECレポートに注目が集まっているのは、前年にあったセキュリティ上の欠陥がほとんど対処されていないことに関連するものです。これには、ウインドリバー社のリアルタイムOS「VxWorks」のうち、間もなく耐用年数が終了する旧バージョンが使用されていることが含まれています。ファーウェイはこの問題を解決することを約束していますが(ウインドリバーシステムズから継続的なサポートを受けることになっています)、英国の通信インフラの多くでは依然としてこの製品が中核をなしています。

多くの報道機関が見落としていると思われる重要な要因は、新しいソフトウェアやハードウェアの開発・展開において、根本的にプロセスが破綻している可能性があることです。報告書では、ファーウェイが社内のエンジニアリング手法を処理する方法に「重大な技術的問題」があると指摘しています。

報告書に記載されているそれらの技術的問題の例を見てみましょう。ファーウェイが行った最も優れたことの1つは、エンジニアやプログラマーが新しいコードを展開する際に役立つセキュアコーディングガイドラインを作成したことだと言わざるを得ません。このガイドラインでは、システム機能やプロセスの安全性が確認されているバージョンを信頼できるライブラリから使用することや、既知の脆弱性を持つ亜種を使用しないことなど、幅広いベストプラクティスを網羅しています。理論的には素晴らしいことですが、英国のファーウェイ社の生産システムを実際に評価したところ、これらのガイドラインがプログラマーに伝えられていないか、プログラマーが無視しているか、単に施行されていないことがわかりました。

この報告書では、一般向けアプリケーションの中の特定のメモリ処理機能に注目していました。今回は、プログラムの機能としてユーザーが入力を求められる一連のメッセージボードが対象でした。ユーザーの入力領域は「信頼されている」ものとして扱われるべきではないことから、これらの領域にはHuawei社の内部ガイドラインに沿った安全なコードのみが含まれていることが期待されていました。具体的には、1988年以降、バッファオーバーフローのような深刻なセキュリティ問題を引き起こす可能性があるとされているメモリ処理関数memcpy()、strcpy()、sprintf()が、これらの生産システム内で直接呼び出されているかどうかをテストしました。

衝撃的だったのは、17個の既知の安全なmemcpy()関数が5,000回直接呼び出されていた一方で、12個の安全でない亜種が600回使用されていたことです。これは他の関数でも同じくらいの割合でした。安全なstrcpy()の呼び出しは1,400件でしたが、既知の脆弱性を持つ悪いものも400件ありました。また、sprintf()については、安全なものが2,000件あったのに対し、安全でないものは200件でした。これらの関数のほとんどが安全に使用されていたのは良いことですが、それでも全体のコードの約20%が既知の攻撃に対して脆弱であることがわかります。これは非常に大きな脅威となります。また、3つのメモリ処理関数の直接呼び出しのみを考慮しており、関数ポインタを介した間接的な使用例は考慮していません。今回の監査では、これらの特定の関数のみを対象としていますが、問題のある3つのメモリ処理関数だけが選ばれているとは考えられません。

ファーウェイがプログラマーのためにベストプラクティスガイドを作成したのは良いことですが、もっと多くのことをする必要があるのは明らかです。セキュリティに関する期待事項を説明するのは一つのステップですが、そのガイドラインが積極的に守られ、開発メンバーに周知されて初めて効果を発揮します。ファーウェイは、社内のガイドラインに従うための基本的な知識だけではなく、プログラマーを効果的に教育することを約束することで、セキュリティの向上に大きく貢献することができます。ファーウェイは、より安全なコードの書き方を一般的に示すことで、さらに飛躍する必要があります。プログラマーは、良い(安全な)コーディングパターンと悪い(安全でない)コーディングパターンについて十分なトレーニングを受け、会社が説いていることを常に実践する責任を負う必要があります。

HCSECの報告書で指摘された具体的なコーディングの問題の多くは、このプラットフォームの一部として対処され、実施されています。 Secure Code Warriorこのプラットフォームでは、プログラマーとサイバーセキュリティチームが、常に安全なコードを展開し、維持するよう訓練されています。ユーザーの入力を信用しない、確立されたライブラリから関数を抽出する、サーバーに渡す前にすべての入力をサニタイズするなど、安全なコーディングを実践するための概念が、プラットフォーム内で常に示されています。また、非常に特殊な脆弱性にも目を向け、それを回避したり緩和したりする方法を段階的に示しています。

ファーウェイのような企業は、熟練したトレーニングに加えて、DevSecOpsソリューションを活用することができます。 これは、企業のセキュリティ・ガイドラインに合わせてカスタマイズされた安全なコーディング・レシピを利用して、コードを書く際に開発者の副料理長のような役割を果たしながら、IDEの中で直接リアルタイムのコーチングを行うものです。このようなアプローチは、あらゆるスキルレベルのファーウェイのプログラマーが、より良いコードを書き、潜在的な脆弱性を認識するのに役立つと同時に、ファーウェイのセキュリティ専門家が、自社のポリシーに準拠し、コマンドの実行に役立つレシピの「クックブック」を作成するのにも役立ちます。

ファーウェイのトラブルから得られる教訓は、安全なコーディング・ガイドラインを作成しても、プログラマーがそれを知らなかったり、単に良いコーディング・プラクティスに従う方法を知らなかったりしたら、意味がないということです。今回のケースでは、社内のベストプラクティス・ガイドラインが、ファーウェイ自身の「ジラオウ」、つまり欧米では「ペーパータイガー」と呼ばれるものであることが判明しました。欧米では「ペーパータイガー」と呼ばれるもので、スタイルはあっても中身のない文書だった。このガイドラインに本当の意味での歯ごたえを与えるには、適切な実用的ツールと実際のトレーニングプログラムが必要です。これは、実践的なアプローチをとり、継続的に知識とスキルを身につけるものです。

リソースを見る
リソースを見る

著者

ピーテル・ダンヒユー

Pieter Danhieuxは、セキュリティコンサルタントとして12年以上の経験を持ち、SANSの主席講師として8年間、組織、システム、個人をターゲットにしてセキュリティの弱点を評価する方法に関する攻撃的なテクニックを教えている、世界的に有名なセキュリティエキスパートです。2016年には、オーストラリアで最もクールな技術者の一人として認められ(Business Insider)、Cyber Security Professional of the Yearを受賞(AISA - Australian Information Security Association)、GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA認定を保有している。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

Huawei社のセキュリティ UKの問題は、安全なコーディングの必要性を示している

2019年06月06日掲載
Pieter Danhieux著

に掲載されたものです。 インフォメーション・エイジ.

英国のHuawei Cyber Security Evaluation Centreが最近発表したレポートによると、Huawei社のソフトウェア・エンジニアリング・プロセスに重大なセキュリティ問題があることが明らかになりました。この重要な報告書に関するニュースの多くは、前年からの未解決の問題に焦点が当てられていますが、より危険で見過ごされている問題は、ファーウェイが採用している安全なコーディングのガイドラインと実践が明らかに欠如していることです。しかし、それは修正可能な問題なのです。

中国の大手通信事業者であるファーウェイのニュースは、悪化の一途をたどっています。米国が今後の政府業務への参入を全面的に禁止している一方で、英国は、ファーウェイのデバイスやコードの根本的な欠陥の多くが修正可能であるという事実を受け入れています。英国は2010年にHuawei Cyber Security Evaluation Centre(HCSEC)を設立し、ファーウェイ製品のセキュリティ問題を評価・対処し、それに関する年次報告書を作成しています。しかし、今年の報告書は特に非難されていました。

ニュースの中で2019年のHCSECレポートに注目が集まっているのは、前年にあったセキュリティ上の欠陥がほとんど対処されていないことに関連するものです。これには、ウインドリバー社のリアルタイムOS「VxWorks」のうち、間もなく耐用年数が終了する旧バージョンが使用されていることが含まれています。ファーウェイはこの問題を解決することを約束していますが(ウインドリバーシステムズから継続的なサポートを受けることになっています)、英国の通信インフラの多くでは依然としてこの製品が中核をなしています。

多くの報道機関が見落としていると思われる重要な要因は、新しいソフトウェアやハードウェアの開発・展開において、根本的にプロセスが破綻している可能性があることです。報告書では、ファーウェイが社内のエンジニアリング手法を処理する方法に「重大な技術的問題」があると指摘しています。

報告書に記載されているそれらの技術的問題の例を見てみましょう。ファーウェイが行った最も優れたことの1つは、エンジニアやプログラマーが新しいコードを展開する際に役立つセキュアコーディングガイドラインを作成したことだと言わざるを得ません。このガイドラインでは、システム機能やプロセスの安全性が確認されているバージョンを信頼できるライブラリから使用することや、既知の脆弱性を持つ亜種を使用しないことなど、幅広いベストプラクティスを網羅しています。理論的には素晴らしいことですが、英国のファーウェイ社の生産システムを実際に評価したところ、これらのガイドラインがプログラマーに伝えられていないか、プログラマーが無視しているか、単に施行されていないことがわかりました。

この報告書では、一般向けアプリケーションの中の特定のメモリ処理機能に注目していました。今回は、プログラムの機能としてユーザーが入力を求められる一連のメッセージボードが対象でした。ユーザーの入力領域は「信頼されている」ものとして扱われるべきではないことから、これらの領域にはHuawei社の内部ガイドラインに沿った安全なコードのみが含まれていることが期待されていました。具体的には、1988年以降、バッファオーバーフローのような深刻なセキュリティ問題を引き起こす可能性があるとされているメモリ処理関数memcpy()、strcpy()、sprintf()が、これらの生産システム内で直接呼び出されているかどうかをテストしました。

衝撃的だったのは、17個の既知の安全なmemcpy()関数が5,000回直接呼び出されていた一方で、12個の安全でない亜種が600回使用されていたことです。これは他の関数でも同じくらいの割合でした。安全なstrcpy()の呼び出しは1,400件でしたが、既知の脆弱性を持つ悪いものも400件ありました。また、sprintf()については、安全なものが2,000件あったのに対し、安全でないものは200件でした。これらの関数のほとんどが安全に使用されていたのは良いことですが、それでも全体のコードの約20%が既知の攻撃に対して脆弱であることがわかります。これは非常に大きな脅威となります。また、3つのメモリ処理関数の直接呼び出しのみを考慮しており、関数ポインタを介した間接的な使用例は考慮していません。今回の監査では、これらの特定の関数のみを対象としていますが、問題のある3つのメモリ処理関数だけが選ばれているとは考えられません。

ファーウェイがプログラマーのためにベストプラクティスガイドを作成したのは良いことですが、もっと多くのことをする必要があるのは明らかです。セキュリティに関する期待事項を説明するのは一つのステップですが、そのガイドラインが積極的に守られ、開発メンバーに周知されて初めて効果を発揮します。ファーウェイは、社内のガイドラインに従うための基本的な知識だけではなく、プログラマーを効果的に教育することを約束することで、セキュリティの向上に大きく貢献することができます。ファーウェイは、より安全なコードの書き方を一般的に示すことで、さらに飛躍する必要があります。プログラマーは、良い(安全な)コーディングパターンと悪い(安全でない)コーディングパターンについて十分なトレーニングを受け、会社が説いていることを常に実践する責任を負う必要があります。

HCSECの報告書で指摘された具体的なコーディングの問題の多くは、このプラットフォームの一部として対処され、実施されています。 Secure Code Warriorこのプラットフォームでは、プログラマーとサイバーセキュリティチームが、常に安全なコードを展開し、維持するよう訓練されています。ユーザーの入力を信用しない、確立されたライブラリから関数を抽出する、サーバーに渡す前にすべての入力をサニタイズするなど、安全なコーディングを実践するための概念が、プラットフォーム内で常に示されています。また、非常に特殊な脆弱性にも目を向け、それを回避したり緩和したりする方法を段階的に示しています。

ファーウェイのような企業は、熟練したトレーニングに加えて、DevSecOpsソリューションを活用することができます。 これは、企業のセキュリティ・ガイドラインに合わせてカスタマイズされた安全なコーディング・レシピを利用して、コードを書く際に開発者の副料理長のような役割を果たしながら、IDEの中で直接リアルタイムのコーチングを行うものです。このようなアプローチは、あらゆるスキルレベルのファーウェイのプログラマーが、より良いコードを書き、潜在的な脆弱性を認識するのに役立つと同時に、ファーウェイのセキュリティ専門家が、自社のポリシーに準拠し、コマンドの実行に役立つレシピの「クックブック」を作成するのにも役立ちます。

ファーウェイのトラブルから得られる教訓は、安全なコーディング・ガイドラインを作成しても、プログラマーがそれを知らなかったり、単に良いコーディング・プラクティスに従う方法を知らなかったりしたら、意味がないということです。今回のケースでは、社内のベストプラクティス・ガイドラインが、ファーウェイ自身の「ジラオウ」、つまり欧米では「ペーパータイガー」と呼ばれるものであることが判明しました。欧米では「ペーパータイガー」と呼ばれるもので、スタイルはあっても中身のない文書だった。このガイドラインに本当の意味での歯ごたえを与えるには、適切な実用的ツールと実際のトレーニングプログラムが必要です。これは、実践的なアプローチをとり、継続的に知識とスキルを身につけるものです。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。