NEM(ネム)はバグが少ない!セキュリティ監査レポートがすごすぎる!

セキュリティをイメージした画像

2017年7月、NEMに不具合が発覚したようで、一時騒然となったことがあります。

 

フォーラムをみてみると、いつもNEMに貢献してくれている「みなりん」さんがバグを発見してくれたようです。※NEMファンの皆さまはフォローしておくことをオススメします。

 

以前に「仮想通貨の投資リスク」で言及したように、あくまでもブロックチェーンは技術です。ですから、どの銘柄にもバグ(不具合)は付きものだと思います。

 

しかし、当たり前だからといって「バグが起きても良いか」といったら、話は違いますよね。誰もバグの多い通貨に投資したいとは思わないはずです。

 

今まで「NEMで重大なバグが起きた」という話をあまり聞いたことが無かったので、心配になって調べてみました。ちょうど、中国の「CERT」が主要通貨25銘柄のセキュリティレポートを開示していましたので、参考にしたいと思います。


CERT(中国)とは

中国の国家セキュリティ情報機関のことです。

 

中国へのサイバー攻撃に対して「調査」や「防衛」をしたり、政府へのセキュリティアドバイスなどを行っています。


CERTが調査した25銘柄とは

CERTが調査した25銘柄

上記が調査された25銘柄です。

 

NEMもしっかり調査されてますね!

 

調査された内容は下記の通りです。

※Google翻訳を使用しています。間違った訳や、誤解を生む表現があるかもしれませんので、原文も合わせて載せておきます。

9 vulnerability categories

This test covers a variety of commonly seen security vulnerabilities, which are divided into 9 categories by the following criteria: formation cause of security vulnerabilities, the possibility of being exploited, the degree of harm and the difficulty to solve.

 

❝このテストでは、一般的に見られるセキュリティ上のさまざまな脆弱性をカバーしています。セキュリティ脆弱性の形成原因、悪用の可能性、害の程度、解決の難しさなど、9つのカテゴリに分かれています。❞

 

1. Input Validation and Representation

Input validation and representation problems are usually caused by special characters, encodings, and numerical representations. Such problems occur as a result of input trust. These problems include: buffer overflow, cross-site scripting, SQL injection, command injection and so on.

 

❝1.入力検証と表現:入力の検証と表現の問題は、通常、特殊文字、エンコーディング、および数値表現によって引き起こされます。 このような問題は、入力信頼の結果として発生します。 これらの問題には、バッファオーバーフロー、クロスサイトスクリプティング、SQLインジェクション、コマンドインジェクションなどがあります。❞

 

2. API Abuse

The API is a convention between the caller and the callee, and most API abuses are caused by the caller not understanding the purpose of the convention. Security problems can also arise when the API is not used properly.

 

❝2. APIの不正使用:APIは呼び出し元と呼び出し先の間の規約で、ほとんどのAPI侵害は呼び出し元が規約の目的を理解していないために発生します。 APIが適切に使用されていないと、セキュリティ上の問題も発生する可能性があります。❞

 

3. Security Features

This category contains vulnerabilities in authentication, access control, confidentiality, password usage, and privilege management.

 

❝3.セキュリティ機能:このカテゴリには、認証、アクセス制御、機密性、パスワードの使用、および特権管理の脆弱性が含まれています。❞

 

 

4. Memory Management

Memory management is a common type of vulnerability associated with memory operations, including memory leaks, post-release use, double-release and so on. This type of vulnerability usually leads to system performance degradation, program crashes and a common type of flaws in C / C + + language.

 

❝4.メモリ管理:メモリ管理は、メモリリーク、リリース後の使用、ダブルリリースなど、メモリ操作に関連する脆弱性の一般的な種類です。 この種の脆弱性は、通常、システムのパフォーマンス低下、プログラムのクラッシュ、C / C ++言語の一般的なタイプの欠陥につながります。❞

 

5. Time and State

Distributed computing is time and state dependent. The interaction between threads and processes and the order in which tasks are executed are often determined by shared state, such as semaphores, variables, file systems and so on. The vulnerabilities associated with distributed computing include race conditions, blocking misuse and so on.

 

❝5.時間と状態:分散コンピューティングは時間と状態に依存します。 スレッドとプロセス間の相互作用とタスクの実行順序は、しばしばセマフォ、変数、ファイルシステムなどの共有状態によって決まります。 分散コンピューティングに関連する脆弱性には、競合状態、誤用防止などが含まれます。❞

 

6. Error and Exception Handling Errors

This type of vulnerability is related to error and exception handling, and the most common type of vulnerability is that there is no proper processing mechanism (or errors are not processed), resulting in unexpected termination of program. Another vulnerability is that the error generated provides potential attacker with too much information.

 

❝6.エラーと例外の処理エラー:このタイプの脆弱性は、エラーと例外処理に関連しており、最も一般的な脆弱性は適切な処理メカニズムがない(またはエラーが処理されない)ため、プログラムが予期せず終了することです。別の脆弱性は、生成されたエラーが潜在的な攻撃者に過度の情報を提供することです。❞

 

7. Code Quality

Poor code quality can lead to unpredictable behavior. For the attacker, the poor code enables them to threaten the system in unexpected ways. Common types of vulnerabilities include dead code, null pointer dereferences and resource leak.

 

❝7.コード品質:コードの品質が悪いと、予期しない動作につながる可能性があります。攻撃者にとって、貧弱なコードは予期しない方法でシステムを脅かす可能性があります。一般的なタイプの脆弱性には、デッドコード、ヌルポインタ逆参照、およびリソースリークが含まれます。❞

 

 

8. Encapsulation and hidden defects

Reasonable encapsulation means that the distinction between verified and unverified data, distinction between data of different users, or distinguish data that is visible or invisible to users. Common vulnerabilities include hidden fields, information leakage, cross-site request forgery and so on.

 

❝8.カプセル化と隠れた欠陥:合理的なカプセル化とは、検証されたデータと未検証のデータの区別、異なるユーザーのデータの区別、またはユーザーに表示または非表示のデータの区別を意味します。共通の脆弱性には、隠しフィールド、情報漏えい、クロスサイトリクエスト偽造などがあります。❞

 

9. Flaws in Code Runtime Environment

These types of vulnerability is external to the source code, such as runtime configuration issues, sensitive information management issues and so on, which are critical to the product security.

 

❝9.コードランタイム環境の欠陥:これらのタイプの脆弱性は、製品セキュリティにとって重要なランタイム構成の問題や機密情報管理の問題など、ソースコードの外部にあります。

 

The first eight types of vulnerabilities are related to security flaws in the source code. They can be the target of malicious attacks. Once exploited, they can cause serious consequences such as information leak, authorization lift and command execution. The last type of vulnerability describes security concerns that are external to the actual code. They are likely to cause abnormal operation of the software, data loss and other serious problems.

 

❝最初の8種類の脆弱性は、ソースコードのセキュリティ上の欠陥に関連しています。悪意のある攻撃の標的になる可能性があります。悪用されると、情報漏えい、認可リフト、コマンド実行などの深刻な結果を招く可能性があります。最後のタイプの脆弱性は、実際のコードの外部にあるセキュリティ上の懸念を表します。彼らは、ソフトウェアの異常な操作、データの損失やその他の重大な問題を引き起こす可能性があります。❞

 

http://news.8btc.com/blockchain-software-security-report-by-china-cert-ripple-the-worst

上記を危険度「大・中・小」に分け、各銘柄の「大・中」の脆弱性をまとめたのが下記の表です。

 

※NEMは下から6番目にあります。

仮想通貨セキュリティ調査の結果

 NEMは2015年に公開された後発の仮想通貨でありながら重大な脆弱性は無く「中」レベルの脆弱性でも10件と限りなく少ないことがわかります。1000行につき0.28の脆弱性しか無いので、NEMは他の通貨と比べて「重大な問題が起こる可能性が極めて低い」ということですね。

 

これを見ると、リード開発者の「Jaguar0625さん」がいかに天才なのが良く分かります。

 

NEMのバージョン1をリリースするのに15か月、Catapultはすでに20か月以上と時間がかかっていますが、その分、しっかりデバックを行い「ほぼ完璧」な状態でローンチされてるのではないかと思います。

 

 


仮想通貨取引所ランキング

人気記事


AKANEMです。

 

最期まで読んでいただき、ありがとうございます。

簡単に自己紹介します。

 

私が仮想通貨を始めたキッカケは、2017年5月のリップル(XRP)急上昇でした。

 

当時は、ビットフライヤー以外の全ての取引所を信用していませんでした。コインチェックという謎企業に口座を開くのは怖かったので、友人が使っていた海外の取引所に口座開設してXRPを買ったのが初めての取引です。(※今はコインチェックもバリバリ使ってますw)

 

それから「ブロックチェーン技術」をイチから勉強して様々な通貨を学び、メモが増えてきたので「どうせなら皆に見てもらおう」という思いから、このブログを始めました。

 

このブログが「これから仮想通貨を始める方」「仮想通貨初心者の方」の有意義な情報となれば幸いです。

 

つまり、このブログを通して何を伝えたいのかを3行でまとめると。

  • NEMを買え!

です。