English -> Visit Promon Web Page
SDKとは?
ソフトウェア開発キット (Software development kit – SDK) は、開発者が iOS や Android などの特定のプラットフォームでアプリを作成するために使用する包括的なツールセットです。SDK は、コード ライブラリ、開発ツール、ネイティブ デバイス機能とサードパーティ サービスを統合するための API インターフェイスなどの重要な構成要素を提供します。
SDK をプロジェクトに統合し、最終的なアプリケーションを配布する前に、精査する必要がある主なポイントは次のとおりです。
- SDKの出所とそれが信頼できるソースであるかどうか
- メンテナンス状況とSDKが定期的に更新されているかどうか
- 脆弱性スキャンやコード監査など、SDK内のセキュリティ問題をチェックする
- SDKのライセンス条件と、それが意図された用途と互換性があるかどうか
- オープンソースコンポーネントとそのライセンスがコンプライアンスを確保するために互いに同意しているかどうか
要約
SDK はモバイル アプリ開発に不可欠です。SDK は、アプリの機能を強化し、サードパーティのサービスを効率的に統合するためのツール スイートを開発者に提供します。
SDK はアプリの開発と機能の統合を加速しますが、プライベート データやシステム機能への不正アクセスを可能にし、モバイル アプリのセキュリティ リスクにつながる可能性があります。
SDK の整合性を確保するには、厳格な審査、定期的な更新、コンプライアンス標準の遵守が必要です。開発の利便性とセキュリティ リスク管理のバランスが重要であり、依存性と潜在的な脆弱性を最小限に抑えるためにサードパーティの SDK を使用するか社内ソリューションを開発するかの選択も重要です。
SDK を開発する企業の中には、次のような脅威から保護するサイバーセキュリティ ソリューションを導入することが重要な企業もあります。
- リバース エンジニアリング:この攻撃は、基礎となるコードとロジックを公開し、不正な複製や潜在的な脆弱性を引き起こします。
- 改ざんと再配布:これは、悪意のある行為者が SDK を改変して脆弱性を導入したり、悪意のあるコードを挿入したりしてから、疑いを持たない開発者に再配布した場合に発生します。
- 知的財産の盗難: IP には、アルゴリズム、方法論、独自の実装が含まれます。これを保護することで、SDK の整合性が維持されます。
より詳細な説明
- SDK コンポーネント: SDK は通常、ライブラリ、デバッグ ツール、ドキュメント、サンプル コード、テスト フレームワーク、1 つ以上の API、および統合開発環境 (IDE) での SDK の使用を改善するためのツールで構成されます。これらのコンポーネントは、開発者が位置情報サービス、支払いゲートウェイ、コンテンツ保護、パフォーマンス監視、ユーザー行動分析、ソーシャル メディア共有などの機能を統合するのに役立ちます。
- サプライ チェーン攻撃: SDK は、ソースで侵害された場合、サプライ チェーン攻撃のベクトルになる可能性があります。SDK に挿入された悪意のあるコードは、それを使用して構築されたすべてのアプリに影響を与える可能性があり、アプリケーション エコシステム全体に及ぶ可能性のある広範な影響を示します。
- SDK を保護する方法:コードの難読化、暗号化、ランタイム保護などの SDK セキュリティ ソリューションは、リバース エンジニアリング、改ざん、不正アクセスから SDK を強化できます。
- 開発速度とセキュリティのバランス: SDK はすぐに使用できるコンポーネントを提供することで開発を加速しますが、この利便性によりセキュリティの脆弱性が見落とされる可能性があります。脅威から保護するためには、SDK を徹底的に検証し、定期的に更新することが重要です。
- コンプライアンス要件: アプリ発行者は、アプリで処理されるデータとアプリに統合されている SDK に応じて、特定のコンプライアンス標準に準拠する必要があります。SDK セキュリティ ソリューションは、EU 内で動作するアプリの GDPR やカリフォルニア州の CCPA などの標準への準拠を促進し、ユーザー データ保護を確実にします。
- SDK と API : API を使用すると、アプリのさまざまなコンポーネントが事前に定義されたプロトコルを使用して通信できます。また、開発者が SDK の機能をアプリに統合するために必要な関数とプロトコルも提供されます。これらの API により、開発が簡素化され、コードがカプセル化され、機能が強化されます。SDK は、アプリケーションを構築して機能を追加するためのツールキットであり、通常、SDK によって提供されるツール、ライブラリ、サービスとアプリを橋渡しする API が含まれています。
例
- マルウェアを挿入する広告 SDK : 一部の広告ネットワーク SDK は、人気のあるアプリにマルウェアを挿入するために再利用されています。
- 支払い SDK 詐欺: 支払いを処理する SDK は、トランザクションの詳細をリダイレクトする目的で標的にされる可能性があります。更新されたセキュリティ プロトコルを実装および維持し、定期的にコード レビューを行うことで、このような脆弱性から身を守ることができます。
- ソーシャル メディア SDK のなりすまし: 侵害された場合、ソーシャル メディア ログイン SDK を使用してユーザーの資格情報がフィッシングされる可能性があります。
- バックドアとしてのサードパーティ SDK : サードパーティ SDK が慎重に管理および分離されていない場合、攻撃者がそれを悪用してアプリやそのデータに不正アクセスする可能性があります。開発者はこれらのリスクを軽減し、SDK が侵害された場合でも、被害を引き起こす可能性が限られていることを保証できます。
- インジェクション攻撃:攻撃者は SDK にメモリ インジェクションをトリガーし、ディープフェイク画像またはビデオを API に直接挿入して、その画像またはビデオがデバイスのカメラから取得されたものであるかのようにシステムに信じ込ませます。
歴史
SDK の概念は、ソフトウェア開発の複雑さと規模が拡大し、開発者がより効率的にアプリを構築できるように支援する標準化されたツールセットが必要になるにつれて生まれました。デスクトップ ソフトウェア開発で生まれた SDK は、2000 年代後半のアプリ ストアの成長とともにモバイル プラットフォームへと進化しました。それ以来、SDK はモバイル アプリの機能とコンポーネントの再利用に不可欠なものとなり、機能豊富なアプリをより迅速に展開できるようになりました。しかし、攻撃対象領域が拡大したため、セキュリティ上の大きな懸念も生じています。
未来
最近の技術の進歩と規制の監視の強化は、SDK の開発と使用に影響を与えています。機械学習と AI の台頭により、SDK とそのホスティング アプリに対する ID 検証攻撃などの新たな脅威が発生し、セキュリティに関する複雑な考慮事項が生じます。進行中の開発は、イノベーション、ユーザー データの保護、規制要件の遵守のバランスをとる必要性から、SDK セキュリティ プラクティスが継続的に進化することを示唆しています。
- 出典
- https://www.techtarget.com/whatis/definition/software-developers-kit-SDK
- https://developer.android.com/guide/practices/sdk-best-practices
- https://www.techtarget.com/searchapparchitecture/tip/The-benefits-and-tradeoffs-of-a-mobile-SDK
- Promon SDK Protection™ PDF
- https://promon.co/security-news/promon-sdk-security/
- https://www.adjust.com/glossary/sdk/
- https://www.gartner.com/document/4623399?ref=solrAll&refval=387998026&
- https://www.ftc.gov/news-events/news/press-releases/2023/05/ovulation-tracking-app-premom-will-be-barred-sharing-health-data-advertising-under-proposed-ftc
セキュリティソフトウェア用語集
アプリケーション・ハーデニング | アプリケーションシールド | アプリの改ざん |
証明書のピン留め | コードの難読化 | デバイスのクローン作成 |
フッキングフレームワーク | 脱獄 | キーロギング |
モバイルアプリのセキュリティ | ルート化 | リバースエンジニアリング |
ランタイム保護 | ソフトウェア開発キット | ホワイトボックス暗号化 |
Promon 関連情報