一般アプリケーション診断
一般アプリケーション診断
Windows/Mac/Linuxなどで動作する一般アプリケーションにおけるセキュリティ上の意味を持つ事象(脆弱性)を精緻かつ網羅的に探索しリスクを評価します。
把握した個々の脆弱性は全て詳細に解析した上で国際基準 (CVSS 3) によるリスク評価を行ない、分かりやすい再現例および対策を立案した上でご報告いたします。
また、リスクが高いと考えられる脆弱性については報告書の完成を待たずに一早くお伝えいたします。
サービス特徴
対象のアプリケーションに対しリバースエンジニアリングによる静的解析と、診断環境における内部状態解析・通信解析・メモリ解析・ストレージ解析・IPC解析などの動的解析とを併用し、脆弱性を探索しリスク評価を行ないます。診断においては業界標準の各種解析ツールの他、対象の性格によりツールを適宜作成します。
現実的な脅威想定による深く精緻な診断
Secure Hattersの診断では攻撃者が端末の完全なコントロールを持っている前提のもと、脆弱性を深いレベルで精緻に探索します。したがって内部状態の精緻な追跡はもちろん、Keychainなどのセキュアストレージ領域も検証します。また診断は正規環境(VMあるいは実機)でほぼ完結するため、不正環境検知などの防御機構が組込まれている対象においても難なく診断可能です。
広い対応範囲
Secure Hattersのエンジニアは全て診断だけでなく開発にも精通しているため、プラットフォーム・開発言語・開発手法が問題になることはまずありません。ネイティブアプリケーション(Swift/Go/Rustを含む)のほかElectronなどによるHTML5 Applicationはもちろん、UWP・MSIL (C#/F# etc.)・JVM (Java/Kotlin etc.)・Unity・Adobe AIR・LLVM bitcodeなどで書かれたアプリケーションであっても、徹底的にリバースエンジニアリングを行なうことで深いレベルの診断ができます。
世界レベルの脆弱性診断基準
Secure Hattersが提供する診断サービスは経済産業省「情報セキュリティサービス基準」に準拠しています。また脆弱性診断基準はOWASP Top 10などが提供する視点を取り入れつつ継続的に見直しています。OWASPとはサイバーセキュリティ向上を目指す慈善的非営利団体で、Webなど各領域における国内外のセキュリティ研究者が最善の集合知を提供しています。このため、Secure Hattersの診断では脆弱性は世界レベルの基準に基づいてより公正に評価されます。
診断項目
一般アプリケーション診断における診断項目はスマートフォンアプリケーション診断の診断項目と似ています。以下に例を示します。
プラットフォームの不適切な使用
診断項目 | 診断内容 |
---|---|
デバッグ可能である問題 | 対象に対しデバッガを接続可能であることの立証 |
プライバシーの懸念 | 対象による個人情報の取得および外部送信に相当する事案の立証 |
コンポーネントの予期せぬ公開 | 対象が公開するコンポーネントが簡単に外部から参照できることの立証 |
不適切な特権取得 | 対象が持つ機能セットに似わない特権の宣言もしくは取得の立証 |
安全でないストレージ
診断項目 | 診断内容 |
---|---|
機密情報を含むログ出力 | 対象によるログ出力に機密情報が含まれることの立証 |
不適切なファイルパーミッション | 対象によるWorld readable/writableなファイル作成の立証 |
安全でない通信
診断項目 | 診断内容 |
---|---|
TLS Interception | 対象がTLS証明書の妥当性を独自に検証しないことの立証 |
TLSサーバ証明書検証不備 | 対象によるTLS証明書検証ロジックの開放的オーバライドを立証 |
平文通信の検出 | 対象における平文通信の存在を立証 |
汚染可能なWebView | 対象が持つ各WebViewにおいてTLS interception・TLSサーバ証明書検証不備・平文通信のいずれかを立証 |
App Transport Securityの欠如 (Mac) |
対象によるApp Transport Securityの明示的無効化を立証 |
不適切な認証
診断項目 | 診断内容 |
---|---|
認証バイパス | 対象の不正操作あるいは環境汚染によって認証機能が回避できることの立証 |
長期認証情報の自動送信 | 対象によるパスワードなど長期認証情報における自律的再送信の存在を立証 |
固定認証情報の検出 | 対象におけるID/パスワードなど固定認証情報の存在立証 |
ログアウト機構の欠如 | 対象におけるログアウト機能の不在あるいは機能的無効性の立証 |
安全でない暗号系
診断項目 | 診断内容 |
---|---|
データ保護の欠如 | 本来は保護されるべきデータに対し、対象がセキュアストレージへの格納・適切な暗号化のいずれも行なっていないことの立証 |
暗号の安全性: 固定キーの使用 | 対象が暗号パラメータに固定値を使用していることの立証 |
暗号の安全性: ECBモードの使用 | 対象がECBモードの暗号系を使用する各場合において、正当な理由が存在しないことの立証 |
暗号の安全性: バーナム暗号系の検出 | 対象が完全にランダムでない鍵を使用してバーナム暗号を使用していることの立証 |
不適切な認可
診断項目 | 診断内容 |
---|---|
権限外の操作 | 対象の不正操作あるいは環境汚染によって本来のユーザ権限を越えるアクセスができることの立証 |
クライアントによる認可制御 | 対象がクライアントである場合、認可フローにおいて対象が主導権を持つことの立証 |
クライアントコード品質の問題
診断項目 | 診断内容 |
---|---|
クロスサイトスクリプティング | 対象の不正操作あるいは環境汚染によって、対象が任意JavaScriptを実行することの立証 |
SQLインジェクション | 対象の不正操作あるいは環境汚染によって、対象が任意SQLを実行することの立証 |
OSコマンドインジェクション | 対象の不正操作あるいは環境汚染によって、対象が任意OSコマンドを実行することの立証 |
コードインジェクション | 対象の不正操作あるいは環境汚染によって、対象が任意コードを実行することの立証 |
パストラバーサル | 対象の不正操作あるいは環境汚染によって、対象が任意ファイルへアクセスすることの立証 |
スタックバッファオーバーフロー ヒープバッファオーバーフロー 整数値オーバーフロー |
対象の不正操作あるいは環境汚染によって、対象が任意コードを実行あるいは内部状態を不正に操作できることの立証 |
DLLインジェクション | 対象の不正操作あるいは環境汚染によって、対象が任意ライブラリを読み込むことの立証 |
サンドボックスエスケープ | 対象の不正操作あるいは環境汚染によって、対象のセキュリティ対策機構が回避できることの立証 |
パラメータ検証不備 | 対象の不正操作あるいは環境汚染によって、対象の内部状態が不正に操作されることの検出 |
耐タンパ性の問題
診断項目 | 診断内容 |
---|---|
不正環境検知機構の欠如 | 対象が不正な環境で挙動変化を起こさないことの立証 |
改竄検知機構の欠如 | 対象を些細に改竄した際に挙動変化を起こさないことの立証 |
リバースエンジニアリング耐性の問題
診断項目 | 診断内容 |
---|---|
難読化の欠如 | 対象の静的解析において難読化措置が不在であることの立証 |
隠し機能の発見
診断項目 | 診断内容 |
---|---|
隠し機能の発見 | 対象が隠し機能を持つことの立証 |
テスト機能の発見 | 対象がテスト用と考えられる隠し機能を持つことの立証 |
不適切な依存関係 | 対象が機能に似わないライブラリへ依存していることの立証 |