CircleCI と NowSecure を使用してモバイル開発パイプラインを自動化しセキュリティを強化する方法
NowSecure の最高モビリティ責任者を務める
モバイルアプリは Web アプリとは異なり、開発、セキュリティ、DevOps それぞれのチームのニーズを満たすよう特別に設計されたツールが必要です。そして、フローを最適化し、セキュリティを組み込むことで、モバイルアプリ開発を高速化できます。それを実現できるのが CircleCI と NowSecure です。このたび、長年にわたって CircleCI と協力関係にある NowSecure が、CircleCI テクノロジー パートナーとして独自の Orb を Orb レジストリに公開しました。
CircleCI は、クロスプラットフォームのビルド環境のサポートや、1 つの構成とコミットから複数プラットフォームでジョブを実行する機能 (デスクトップ、Android、iOS アプリのビルド) など、モバイル開発に特化した多くの重要な機能をモバイルアプリの DevOps チームに提供しています。iOS モバイルアプリ開発者向けには、fastlane match によるコード署名、iOS 証明書とプロビジョニング プロファイルの管理、Homebrew による iOS 依存関係管理、Hockey App、Beta by Crashlytics、TestFairy とのサービス統合と連動した iTunes Connect へのデプロイと管理といった機能が用意されています。
NowSecure AUTO は、モバイルアプリのセキュリティ テストに特化しており、あらゆる言語または開発環境で作成された iOS アプリや Android アプリのバイナリのセキュリティについて、クロスプラットフォームでテストを実行します。コンパイルされたモバイルアプリのバイナリに対して、保存中のデータ、転送中のデータ、コードの機能性についてテストし、アプリ全体をひととおりカバーした、非常に正確なテスト結果を提供します。パイプラインのフローを高速化するために、NowSecure では 7 ~ 15 分で完了する高速な自動ビルド後テストが実現されており、Jira などのチケット管理システムに課題を自動的に送信します。CVSS スコアに基づく所見、開発者への修正案の提示、アーティファクトの詳細など、広範なセキュリティ テスト結果が得られるほか、ビルド中断しきい値も設定できます。そして今回、NowSecure は NowSecure AUTO Orb を介して CircleCI と直接連携できるようになりました。
それでは、CircleCI 用の NowSecure AUTO Orb が、どのように CircleCI ソフトウェアや Jira などのチケット管理システムに直接統合され、安全なモバイルアプリの構築とデプロイのためのクローズドループ型の迅速な開発サイクルをいかに実現するのかを見てみましょう。
CircleCI と NowSecure のインテグレーションの裏側
モバイルアプリは Web アプリとは根本的に異なるため、攻撃を受けているモバイルアプリの動作を正確かつ徹底的にテストできる、的を絞ったツールが必要です。NowSecure の自動モバイル AppSec テストエンジンは、ビルド プロセス中にアプリ全体をひととおり動かし、ダウンストリームで結果を自動生成します。
上の図に示すように、NowSecure AUTO Orb は、ビルド後に CircleCI プラットフォームに接続し、単体テスト、機能テスト、UX テストと並行して、またはそれらに続いて、迅速なセキュリティテストを実行します。
NowSecure AUTO は、CircleCI でのビルドのたびに自動的にテストを実行し、開発者が問題を解決できるようにチケットをサイクルにフィードバックします。他のセキュリティテスト手法とは異なり、この NowSecure と CircleCI のインテグレーションでは、新しい IDE プラグインを学ぶ必要がなく、ソースコードに対する静的テストで発生する誤検出に煩わされることもなく、セキュリティ バグがテスト サイクルの終盤で発見されてリリースが遅れるということもないため、開発者のワークフローへの影響は一切ありません。
NowSecure AUTO Orb をプロジェクトに組み込む方法は簡単で、GitHub リポジトリの README.md に詳しい手順が載っています。NowSecure AUTO モバイルアプリ セキュリティテスト エンジン ソフトウェアのライセンスも必要になります。簡単にご説明しましょう。
- NowSecure の管理画面から NowSecure AUTO トークンを生成します。
- https://circleci.com にログインし、左側の [ADD PROJECTS (プロジェクトの追加)] をクリックして CircleCI プロジェクトを作成します。
- 左側の [SETTINGS (設定)] をクリックし、ナビゲーション メニューの [Context (コンテキスト)] から、コンテキストを作成します。
- 環境変数を設定します。以下はよく使用される項目です。
auto_token
: API トークン。必須パラメーターです。ジョブ パラメーターを使用する代わりに、環境変数AUTO_TOKEN
を使用してこのパラメーターを定義することをお勧めします。このトークンには手順 1 で生成したものを設定します。auto_url
: NowSecure AUTO API の URL。任意のパラメーターで、デフォルト値は https://lab-api.nowsecure.com です。auto_group
: NowSecure グループ アクセス制御を使用する場合に任意のパラメーターとして group-id を設定しますが、この環境変数AUTO_GROUP
を使用して指定することもできます。
- Orb を
.circleci/config.yml
に追加します。
使用例は以下のとおりです。
version: 2.1
orbs:
auto_ci: nowsecure/ci-auto-orb@1.0.5
jobs:
build:
docker:
- image: circleci/openjdk:8-jdk
steps:
- attach_workspace:
at: /tmp/myworkspace
- checkout
- run: cp apkpure_app_887.apk /tmp/myworkspace/test.apk
- auto_ci/mobile_security_test:
auto_file: /tmp/myworkspace/test.apk
auto_wait: "30"
auto_score: "50"
auto_show_status_messages: "true"
変更をチェックインすると、CircleCI でビルドが開始され、下のスクリーンショットに示すように、実行中に出力を確認できます。
ビルドが完了すると、下のように、CircleCI がアプリのバイナリに対して NowSecure AUTO モバイルアプリ セキュリティテストを自動的に起動します。この例では、13 分弱でテスト全体が完了しています。
次のスクリーンショットには、生成された JSON 形式のテスト結果とアーティファクトが表示されています。各セキュリティテストの結果についての個々のチケットは、Jira などの問題追跡システムに自動的に送信されます。
このプロセス全体を通して、人の手は介在していません。実際、多くのお客様が NowSecure の「ヘッドレス」機能を常に利用し、完全に自動化された統合モードでテストを実行しています。NowSecure プラットフォームにログインする必要もありません。
完全なセキュリティ テスト カバレッジを実現する NowSecure
内部的には、NowSecure AUTO は動作に基づく総合的な攻撃ツールを用いて、自動の動的 AppSec テストを行います。これにより、完全なセキュリティ テスト カバレッジを確保し、高い精度、誤検知ほぼゼロを実現しています。NowSecure は、開発者やセキュリティ アナリストが防止したいと考える以下のセキュリティ問題を自動的にピンポイントで検出します。
- 機密データの漏洩 (無線通信中、ログ ファイル、システム ファイル)
- 不適切な/一貫性のない入力の検証
- 弱い/不適切な暗号化
- 中間者攻撃やリモート コード実行に対する脆弱性
- 証明書の検証の問題
NowSecure は、正確で妥当なテスト結果と共に、問題についての簡単な説明、詳細な改善案、関連するすべてのアーティファクトを自動で提供し、開発者が迅速に解決できるようにします。また、セキュリティ アナリスト向けには、業界標準の CVSS スコア、リスクやコンプライアンスに関する情報も提供します。
開発者は自動送信された Jira チケットを利用できるため、たいていはセキュリティ レポートを見る必要もありませんが、下のようなレポート インターフェイスからは、開発者やセキュリティチームがテスト結果についてより深く理解することができます。
NowSecure AUTO には、すべてのメトリクス、トレンドライン、重要な懸念事項を包括的に確認できる豊富なダッシュボードが用意されています。下のスクリーンショットのように、オレンジや赤のヒートマップでは、HTTP を経由する暗号化されていないデータ、キーサイズ、多数の機密データに関する問題、「データのバックアップを許可する」問題、さらにはアプリがルートとして実行されていることなど、注目すべき最も影響の大きいセキュリティ問題が示されます。
CircleCI と NowSecure でセキュアな DevOps を強化
CircleCI と同様に、NowSecure AUTO はクラウドとオンプレミスの両方で利用できます。チームのユースケースに応じて、開発者やセキュリティチームがバイナリをアップロードしてオンデマンドで実行することも、CircleCI や他のツールに組み込んで完全に自動化することもできます。
CircleCI は、モバイルアプリ開発ライフサイクルに特化した包括的な CI/CD 環境を提供します。NowSecure を開発ツール チェーンに直接統合することで、ユーザーが求める安全で革新的なモバイルアプリ エクスペリエンスの構築と提供に専念できます。
CircleCI と NowSecure の詳細については、ウェビナー「CircleCI と NowSecure: モバイル開発パイプラインの自動化とセキュリティ強化」をご覧ください。
NowSecure の最高モビリティ責任者を務める Brian Reed 氏は、NowSecure 以外にも、Good Technology、BlackBerry、ZeroFOX、BoxTone、MicroFocus/INTERSOLV で 15 年以上にわたりモバイル アプリ、セキュリティ、運用の分野に携わり、Fortune 2000 に名を連ねる世界中の顧客や政府機関のモバイル アプリのセキュリティ強化に尽力しています。