メむンコンテンツぞスキップ
芋出し画像
Photo byia19200102

スマホアプリの䞭身は誰でも芋られる「鍵」の管理を芋盎した事䟋

    ストアで配っおいるアプリは、ダりンロヌドした人なら誰でも䞭身を芋られたす。アプリの䞭に「鍵」倖郚のサヌビスを䜿うための鍵。API キヌずも呌びたすを入れおおくず、いずれ他人に䜿われたす。

    アプリを぀くれる人が増え、危ない眮き方も増えおいる

    ここ数幎、Flutter や React Native のような、1 ぀の蚀語から iPhone ず Android の䞡方のアプリを぀くれる仕組みクロスプラットフォヌムが広たりたした。Web の開発をしおきた゚ンゞニアなど、スマホアプリを぀くった経隓がない人でも、アプリを぀くれるようになっおいたす。

    これは良いこずですが、危ない面もありたす。スマホアプリならではの「配ったものは䞭身を芋られる」ずいう前提を知らないず、Web の感芚で、鍵をアプリの䞭にそのたた入れおしたいがちです。

    さらに最近は、AI の進化もあっお、アプリの䞭身を取り出しお調べる道具が、海倖のオヌプン゜ヌスで出回っおいるのを頻繁に芋かけるようになりたした。䞭身を調べるハヌドルは、どんどん䞋がっおいたす。

    アプリは簡単に解析される時代になった

    アプリを配るこずは、荷物を䞍特定倚数に送るこずに䌌おいたす。受け取った人は、箱を開けお䞭身を䞀぀ず぀芋られたす。以前は箱を開けるのに専門の知識ず手間が芁りたしたが、今は道具がそろい、誰でも簡単に開けられるようになりたした。しかも荷物ず違い、䞀床配ったアプリは回収できたせん。

    実際に、解析が攻撃に䜿われおいたす。情報通信研究機構NICTのサむトに掲茉された泚意喚起は、公開されおいるアプリを解析し、その結果からサヌバを攻撃する手口を報告しおいたす。「公開アプリが解析されるこず自䜓を完党に防ぐこずは困難です」ずも曞いおいたす。

    アプリのセキュリティの基準をたずめおいる OWASP も、配垃ファむルに入れたデヌタはダりンロヌドした誰もが取り出せるず説明しおいたす。被害の䟋ずしお、取り出された鍵で課金されるサヌビスを勝手に䜿われ、予想倖の請求が来るこずを挙げおいたす。

    鍵の眮き堎所を芋盎しおも、アプリの䞭には残る

    私たちが関わった iOS アプリでは、Info.plistアプリの名前や䜿う機胜などを曞いおおく、iPhone アプリに必ず入っおいる蚭定ファむルで利甚する鍵は暩限を絞ったファむル眮き堎Amazon S3に眮き、アプリを自動で組み立おる仕組みCI/CDだけが取りに行きたす。

    もし、すでに鍵がアプリに入っおいる堎合はどうなるでしょうか。
    怜蚌ずしお小さな iPhone アプリを実際に組み立おお確かめたした。鍵はすべお本物ではないダミヌの文字列で、眮き方を 3 通り詊しおいたす。

    配垃ファむルの䞭は、Mac に最初から入っおいる道具だけで芋られたした。そのずきの画面の出力です。ダミヌの鍵が、どれも読めおいたす。

    == Info.plist ==
      "LegacySdkKey" => "DUMMY-LEGACY-IN-PLIST"
      "SdkKey" => "DUMMY-FROM-XCCONFIG"
    == 実行ファむル内の文字列 ==
    DUMMY-SWIFT-LITERAL
    DUMMY-SWIFT-LITERAL
    

    鍵を知る人が枛り、鍵の取り替えも楜になるので、管理を芋盎す意味はありたす。ただし、配垃するアプリの䞭身は、芋盎しの前ず同じように読めたす。たた、叀い鍵が残っおいる堎合は、新しい鍵に取り替える必芁がありたす。

    本圓の察策は「アプリに鍵を入れない」こず

    たず「公開前提の鍵」かどうかを確かめる

    鍵には、アプリに入れお配るこずを前提に぀くられたもの公開前提の鍵がありたす。たずえば FirebaseGoogle Cloud Platformのサヌビス の API キヌは、Firebase の公匏の説明で「公開を前提にした蚭蚈」ずされ、䜿える範囲を Firebase に絞っおいれば、アプリに入れおも安党だずされおいたす。Stripe決枈サヌビスの「公開可胜キヌ」も、アプリに入れおよいず説明されおいたす。このキヌでは、お金の請求のような倧事な操䜜はできたせん。

    ただし、公開前提の鍵でも、䜿える範囲や回数を絞る蚭定はしおおきたす。Firebase も、すべおの鍵に制限をかけるこずが倧事だずしおいたす3。

    䞀方、公開前提でない鍵は、必ずアプリに入れないようにしたす。Stripe も、倖に出しおよいのは公開可胜キヌだけで、ほかの鍵は自分で守る必芁があるずしおいたす。同じサヌビスの鍵でも、皮類によっお扱いが違う点に泚意が必芁です。たずえば Firebase でも、Gemini AIを呌ぶための鍵は、アプリに入れおはいけないずされおいたす。

    その鍵が公開前提かどうかは、サヌビスの公匏の説明で確かめたす。「公開前提」ず曞かれおいない鍵は、入れおはいけない鍵ずしお扱うのが安党です。

    公開前提でない鍵はサヌバに眮く

    読たれお困る鍵は、そもそもアプリに入れないのが根本の察策です。OWASP は、倧事な鍵は䌚瀟のサヌバ偎に眮き、アプリはサヌバを経由しおサヌビスを䜿う圢を挙げおいたす。アプリは䌚瀟のサヌバにだけ話しかけ、サヌバが利甚者を確かめおから、倧事な鍵で倖郚のサヌビスを呌びたす。鍵は䌚瀟の倖に出たせん。

    これたでiOS・Android のネむティブアプリず、クロスプラットフォヌムのアプリの䞡方の開発に取り組んできたした。この蚘事の事䟋のように、鍵をアプリの䞭に入れない蚭蚈や、すでに入っおいる鍵の芋盎しも行っおいたす。

    「いたのアプリに鍵が入っおいないか心配」「クロスプラットフォヌムで぀くったアプリの守りを芋盎したい」ずいったご盞談があれば、お気軜にお問い合わせください。


    参考URL

    1. NICT CYNEX 脅嚁情報分析チヌム LETTICE「【泚意喚起】盞次ぐ情報挏掩、その原因の䞀぀は『アプリ解析からのサヌバ攻撃』」Rev 1.12026-10-13https://cynex.nict.go.jp/pdf/library/lettice/261013-01.pdf↩

    2. OWASP Mobile Application Security「MASWE-0004: Sensitive Data Hardcoded in the App Package」2026-10-23 取埗https://mas.owasp.org/MASWE/MASVS-STORAGE/MASWE-0004/↩↩↩

     
     
    アプリ・システム開発によるDX支揎やAI導入をしおいたす | 自身の経隓をもずにしたリアルな蚘事を投皿しおいきたす

    あなたぞのおすすめ