お客様がネットワーククラスターで使用できるアプリケーションを提供しています。ソフトウェアがマルウェアに対応しており、ネットワークにマルウェアを拡散させないことを証明できる方法はありますか?それで私は考えました:
この質問の2つの部分:
- 販売している製品にマルウェアがないことをどのように示すのですか?
信頼できるサードパーティにスキャン、テストを行い、マルウェアがないことを確認します。一連の保管を伴う製品転送の適切なプロトコルとともに確認します。私はこの分野で働いていましたが、複数の侵入テストおよびスキャン会社が世の中にあります。
- アプリケーションがマルウェアに感染しないことを示すにはどうすればよいですか(マルウェア対策)?
この質問はうさぎの穴を掘り下げることができます。ブロードキャストするだけで、読み取り専用のファイルシステムがあり、すべてのハードウェアレベルのI/Oが無効でエポキシで覆われている金庫内にロックされている場合を除いて、アプリケーションがマルウェアに耐性があると誰かに言うことはありません。
これが当てはまらない場合は、デバイスを「マルウェア耐性」にするための保護を一覧表示できると思います。ファームウェアスキャンはありますか(署名に対する変更をチェックします)?ウイルス対策はインストールされていますか?アプリケーションのホワイトリストなどはありますか。それと、上記のサードパーティによる検証は、お客様への公正な回答になるはずです。
再現可能なビルド!
https://reproducible-builds.org/ から
再現可能なビルドとは、ソースコードからコンピューターが使用するバイナリコードへの独立して検証可能なパスを作成するソフトウェア開発手法のセットです。
この手法を使用すると、作成したと主張しているのと同じソースコードからバイナリが作成されたことを顧客に証明できます。感染、改ざん、変更などされていないことを保証できます。ソースコード自体が悪意のないものである限り、バイナリも悪意のあるものではありません。ただし、これにはいくつかの注意事項があります。
ソースコードは、少なくともあなたの顧客にとって利用可能でなければなりません。
顧客は、ソースコードの読み取り方法、またはソースコードを読める人に渡す方法を知っている必要があります。
当然のことながら、少なくともソースコードを理解できない場合、またはその「誰か」がコミュニティ全体である場合でも、理解できる人と連絡をとっていない場合は、実際にはセキュリティを向上させることなく快適に感じるでしょう。これを超えて、ソフトウェアが悪意がなく、マルウェアが含まれていないことを証明する実際的な方法はありません。
- 少数のユーザーしかアクセスできない共有ファイルサーバー上にある実行可能ファイルは、理論的には「安全」である必要があります。しかし、そのステートメントに客観的な証明書をどのように置くのでしょうか。
既存のコードのスキャンとペンのテストについて言及している他の回答に加えて、独立したサードパーティに欠陥のソフトウェア/システムアーキテクチャを見てもらうこともお勧めします。ペンのテストはバグを見つけるのに適していますが、知識のある人/チームが実際のアーキテクチャ/設計/実装を確認することは、欠陥を見つけるのに適しています。この見方は、マグローの教科書「ソフトウェアセキュリティ:セキュリティの構築」で説明されています。
- また、ファイルをスキャンして、ファイルに問題がないことを確認する場合もあります。しかし、この事実をどのようにして顧客に明確に伝えることができるでしょうか。
「スキャン」の意味がわかりません。ソースコードの各反復をスキャンしてセキュリティの問題についてソースコードを静的に分析するfindSecBugsやCoverityなどのソフトウェアセキュリティツールがあるということですか?それとも、バイナリまたはサードパーティのライブラリでウイルスをスキャンするということですか?または、npmセキュリティツールなどを実行して、ライブラリを既知の脆弱性に対してチェックしますか?これが私にとって明確でない場合、おそらく顧客にとっても明確ではないでしょう。