中国のCERT報告書:NEM(XEM)が最も安全なプロジェクト
- 中国のCERT報告書
- 中国のCERT(中国の非営利サイバーセキュリティセンター)の報告書によると、NEMは他のプロジェクトと比べ、最も安全なプロジェクトと報告されました。
- 25のプロジェクトを9段階ある脆弱性にレベル分け
- 746もの高レベル攻撃による欠陥を探しましたが、NEMの脆弱性数値はたったの0.28で、問題視される数値ではないことから、NEMはトップレベルのブロックチェーンといえるでしょう。
中国のCERT(中国の非営利サイバーセキュリティセンター)の報告書によると、NEMは他のプロジェクトと比べ、最も安全なプロジェクトと報告されました。
昨年12月、中国CERTプロジェクトは17ページにも及ぶブロックチェーンソフトウェアにおける安全保護監査報告書を発表しました。
報告書によると、監査は2016年10月から行われたもので、その後公開文書として発表されました。
監査には、25のオープンソースブロックチェーンプロジェクトについて調査結果が記載されています。
25のプロジェクトを9段階ある脆弱性(システムやセキュリティ上の欠陥を元に9段階)にレベル分けをしました。
その結果、746もの高レベル攻撃による欠陥が発見されました。
CERTとは
中国のCERTは、全国コンピューターネットワーク緊急技術対応チーム/中国共同センター(CNCERTまたはCNCERT/CCとしても知られている)として、2002年9月に設立されました。
CERTは、非政府かつ非営利のサイバーセキュリティ技術センターであり、中国のサイバーセキュリティ緊急対応コミュニティにおいて重要な共同チームです。
CERT研究は、世界規模のブロックチェーン技術の開発について高く評価している一方で、ブロックチェーンソフトウェアのセキュリティの面の重要性も指摘しています。
調査結果
調査結果によると、NEMにはめだった脆弱性が発見されませんでした。
1000における脆弱性数値は、たったの0.28で、問題視される数値ではないことから、NEMはトップレベルのブロックチェーンとも言えるでしょう。
これと比較し、イーサリアムの平均値は1.52で、リップルは、脆弱性数値も7.29と高いレベルの欠陥が含まれていると報告されました。
(リップル社は、公式ブログ上でこの結果に対する反論も行なっています。今回はNEMについてなので割愛)
調査中の25のプロジェクト
使用者、フォロワー、投資頻度 に基づき、CERT研究は、国内と国外の両方で、評判が良くかつ多くのコミュニティに知られている25のブロックチェーンを選びました。
これらのソフトウェアはCや、C++、Java、Python、 PHP、その他のプログラミング言語で書かれています。
上の図は、25のプロジェクトを通し検出された高レベルと中レベルの脆弱性の統計を表しています。
赤い線は、1000行のコードのあたりの脆弱性の数を示しています。(欠陥合計数/コード行*1000)
高品質コードが明らかにするNEMの利点
このテストでは、一般的に知られている様々な安全面の脆弱性を調べることができます。脆弱性の形成要因、悪用の可能性、被害の程度と問題の難解度、これらの基準によって、9つの脆弱性レベルに分けられます。
1. 入力検証と表示
入力検証と表示の問題は、一般的に特殊文字、エンコード、数値表示によって引き起こされます。
問題点としては、バッファーオーバーフロー(データがバッファーに入り切らなくなるエラー)、クロスサイトスクリプティング(Webアプリケーションの脆弱性またはそれを利用した攻撃)、SQLインジェクション(アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法)、コマンドインジェクション(閲覧者からのデータの入力や操作を受け付けるようなWebサイトで、プログラムに与えるパラメータに対する命令文を紛れ込ませて不正に操作する攻撃)などが考えられます。
2. API(アプリケーションプログラミングインタフェース)の悪用
APIは呼び出し元と呼び出し先の共有の場です。APIの悪用の大半は、呼び出し元が共有目的を理解していないことから生じます。
安全上の問題では、APIが適切に使用されていない場合にも起こり得ます。
3. セキュリティ機能
セキュリティ機能には、認証、アクセス管理、機密性、パスワードの使用法、権限管理が含まれています。
4. メモリ管理
メモリ管理は、メモリリーク、リリース後の使用法、同時リリースなどのメモリ操作に関連する一般的な脆弱性に分類されます。
このタイプの脆弱性は、システムパフォーマンスの低下、プログラムの機能停止、一般的なCおよびC++言語の欠陥につながります。
5. 時間と状況
分散コンピューティングは、時間と状況によって決定されます。特徴と過程の相互作用と作業順序は、変数、ファイルシステムなどの共有状態によって実行状況が決まります。
分散コンピューティングに関連する脆弱性には、競争状態、悪用の阻止などが含まれています。
6. エラーと例外時の処理
この種の脆弱性は、エラーと例外処理に関係しています。特に一般的な脆弱性は、適切な処理メカニズムが存在せず(またはエラーが処理されていない)、予期せずプログラムの終了が発生することです。
また、発生したエラーが隠れた攻撃者にあまりにも多くの情報を提供してしまうことも、その他の脆弱性の例として挙げられます。
7. コード品質
コード品質の低さは、予期できない反応につながる場合があります。
攻撃者にとって、不適切なコードは、意外な形でシステムを突くことができます。
この種の一般的な脆弱性は、到達不能コード、null ポインタ デリファレンス、リソースリークが含まれています。
8. カプセル化(外部から操作できる処理に対してオブジェクト内部で情報を紐付けることであり、外部から不要な操作や情報を遮断できる。)と隠れた欠点
カプセル化とは、検証されたデータと未検証のデータの区別や、様々な使用者のデータの区別、使用者に見せるデータと見せないデータの区別を意味します。
よくある脆弱性には、隠れた領域、情報漏洩、クロスサイトリクエストフォージェリ(Webアプリケーションに存在する脆弱性、もしくはその脆弱性を利用した攻撃方法)などがあります。
9. コード実行時の環境の欠陥
これらの脆弱性は、製品のセキュリティにとって極めて重要なソースコードである実行時間の設定に関する問題や機密情報管理の問題の外側にあります。
NEMについて
NEMは、ピア・ツー・ピア仮想通貨界の革新的なブロックチェーン技術プロジェクトです。
ソースコードはJavaとJavaScriptで書かれています。
NEMは、広い範囲における分布形態を目標と掲げ、POIアルゴリズムでブロックチェーン技術の新機能を搭載しました。
NEMは、集約されたP2Pの安全かつ暗号化されたメッセージングシステムや、マルチサインアカウント、Eigentrust++reputation systemの機能も持ち合わせます。
NEMは、2014年6月25日からオープンアルファテストを開始し、同年10月20日からは長期間にわたる総合的なベータテストを開始しました。
NEM の公共のブロックチェーンは、翌年2015年3月31日開始し、それ以来ほぼ2年間中断することなく稼働しています。
Chinese “CERT” report puts NEM ahead of many projects in the blockchain space
Umar Jundi Alfarq January 17, 2017
参考記事はこちらから
画像はShutterstockのライセンス許諾により使用
「仮想通貨」とは「暗号資産」のことを指します