EPPlusについて
EPPlusは、Office Open XML形式でExcelのスプレッドシートファイルを読み書きするための、.NETクラスライブラリです。複数の.NETターゲットフレームワーク用の署名付きアセンブリを含むNuGetパッケージとして配布され、顧客が作成したアプリケーション内でコンポーネントとして使用されることを想定しています。
EPPlusの動作方法
EPPlus 自身のランタイムは持っていません。これはホストアプリケーションのプロセスにロードされ、そのプロセス内で完全に実行されるライブラリです。これにより、そのセキュリティプロファイルには以下のような影響があります。
- EPPlus は独自のプロセスで動作しません。参照するアプリケーション内でプロセス中のコードとして動作します。
- EPPlus 自身のデータベースや永続ストレージを管理していません。ファイルやデータの処理はホストアプリケーションの代理として行われます。
- EPPlus ネットワークコールは行いません。すべてのファイルI/Oはホストプロセスにローカルで行われます。
- EPPlus 認証や認可の仕組みはありません。ユーザーの識別、認証情報の発行、アクセスの制御も行いません。
- EPPlus 独自のインフラは持っていません。サーバーもクラウドサービスもホストされたエンドポイントもありません。
- ペネトレーションテストはホストアプリケーションの文脈でのみ意味を持ちます。なぜなら EPPlus は独立したランタイムやネットワークサーフェスを公開しないからです。意味のあるセキュリティテストは、 EPPlusを使用するホストアプリケーションのレベルで行われます。
これがセキュリティ評価に意味するのは何でしょうか
多くの標準的なセキュリティ質問票はSaaS製品やネットワークサービス向けに設計されています。TLSの設定、アクセスログ、ユーザープロビジョニング、インフラ強化、ランタイム監視に関する質問は、 EPPlusには適用されません。なぜなら、 EPPlus はこれらのサーフェスを提供していないからです。
このサイト EPPlus に適用されるセキュリティ上の懸念については、本サイトの他のセクションで説明されています。
- リリースの完全性 — リリースが改ざんされていないことを確認する方法は コード署名 を参照してください。
- 依存性の整合性 — 各リリースの全コンポーネント在庫については ソフトウェアの材料明細 を参照してください。
- 既知の脆弱性 — 開示された問題や評価については脆弱性 開示 を参照してください。
安全な開発の実践
EPPlus は、セキュリティ関連の欠陥を含む欠陥を早期に発見することを目的とした一連の実践のもとで開発されています。
- すべてのコード変更はプルリクエストを通じて行われ、統合前に EPPlus チームの他のメンバーがレビュー・承認しなければなりません。このプロセスは公開されており、 EPPlusのGitHubリポジトリで行われます。
- すべての変更はリリース前に数千のユニットテストを経てCI/CDパイプラインを経ます。
- ソースコードは GitHub CodeQLのプッシュごとに分析されます。詳細は ソースコードスキャン を参照してください。
- 依存関係は既知の脆弱性がないか継続的にスキャンされます。詳細は脆弱性 スキャン を参照してください。
責任境界
EPPlusホストアプリケーションのプロセス内で動作するため、全体的なセキュリティ体制の責任が共有されます。EPPlus Software ABライブラリ内の内容、すなわちコードの正確性、リリースされたアーティファクトの整合性、報告された脆弱性のタイムリーな対応に責任を負います。ホストアプリケーションはライブラリの周囲のすべて、すなわちランタイム環境、アクセスするユーザー、処理のために渡されるデータに責任を負います。
ホストアプリケーションの責任
- ファイルを EPPlusに渡す前に、そのファイルを信頼しているか非信頼かを判断します。
- プロセスレベルでリソース制限(メモリ、CPU、処理時間)を適用します。
- ホストアプリケーションのユーザーの認証と承認。
- ホストアプリケーションが動作するインフラストラクチャの運用。
EPPlus Software ABでの責任
- 図書館コード自体の正確さとセキュリティです。
- 文書化された範囲内で、適切に形成された入力ファイルや歪んだ入力ファイルの取り扱い。
- 報告された脆弱性の迅速な対応は、脆弱性開示 方針に準拠しています。
- コード署名と公開されたSBOMsを通じてサプライチェーンの健全性を維持すること。