🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

5回答

1078閲覧

アプリ解析からサーバIPアドレスの特定は可能か

Syu2B

総合スコア1

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

1クリップ

投稿2020/12/30 06:47

編集2020/12/30 06:47

最近、androidアプリとPC(サーバ)の送受信が可能なシステムを作成しておりまして、
そこでふと疑問に思った事があります。
例えばサーバに接続できるandroidアプリをリリースした場合、
アンドロイドアプリのapkファイルを解析する事でサーバのIPアドレスを特定され、
サーバが攻撃を受ける事があるのでは?と思いました。
しかし、流石にそれ位システムの運営者は理解しているはずですよね。
であればどの様にしてIPアドレスを隠す?androidアプリから確認出来ない様にしているのでしょうか?それとも、サーバ自体に特定されても問題ない様な工夫(ファイヤーウォールなどで不正アクセスを遮断など?)が施されているのでしょうか?
調べてもそれらしい情報が無かった為、どなたかご教授頂けないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

apkファイルを解析しなくても、アプリを動かして通信をキャプチャすれば、サーバのIPアドレスは容易にわかります。なので、サーバーを特定されても問題ないように対策します。ファイアウォールもその一つですが、公開ウェブサイトと同様の対策というのがシンプルな説明になるかと思います。

投稿2020/12/30 07:27

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Syu2B

2021/01/02 14:49

ご回答ありがとうございます。 公式WEBサイトと同様の対策なんですね。 理解しやす言葉選びありがとうございました。
guest

0

ちょうどナウな実例でSmooz(サービス終了済み)があります。

つい最近、事件がありましたが、「これ、データ送信してない?」となったのも、アプリがどこに対してリクエストを行っているかを解析した結果の事です。詳細は、こちらの記事を見ていただくとわかりやすいかと思います。リンク先はiOSの画面ですが、Androidも同様のアプリを用いればプログラムなんて見なくても簡単に解析できます。

補足

念のために補足しておきます。
私は「Smoozの外部へのデータ送信の問題が...」といった理由で、当該話題・リンクを出したわけではありません。
ただ単純に最近の話題でそういったことが行われた。という理由で出しているだけです。特に深い意図はありません。

投稿2021/01/02 15:00

編集2021/01/02 15:03
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2021/01/02 15:05

そういえばこれはiOSでの解析でしたね。 (読んでたはずなのに)JailbreakしてなくてもセルフMITM出来るのは知りませんでした。
kyoya0819

2021/01/02 15:09

これ、MITMしてるんですか・・・ てっきりVPNあたりに繋いで何かやってるのかと思いました。。
tanat

2021/01/02 15:14

VPNであってもHTTPSだと通常は通信内容までは見えないので、 MITM出来るProxyアプリなんだと思います。
kyoya0819

2021/01/02 15:22

たしかに、通信内容を表示している箇所ありました。 Appleのようなセキュリティだけが売りの会社が、許可するのは意外でした(言い方)
guest

0

求めているのは「認証/認可」の話になると思います。
これらのキーワードを入り口に学習を進めてください。

投稿2020/12/31 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

であればどの様にしてIPアドレスを隠す?androidアプリから確認出来ない様にしているのでしょうか?

隠せません。

アンドロイドアプリのapkファイルを解析する事でサーバのIPアドレスを特定され、

サーバが攻撃を受ける事があるのでは?

仮にhttps通信でのAPIを用意したとすると、悪意ある利用者からは通常のWEBサービスと同じように攻撃を受けます。またアプリ利用者でなくても公開されている時点でサーバーに辿り着くことは出来るのでアプリと関係無く攻撃を受けます。

アプリ利用者が不正にパラメーターなどのデータを書き換えるセルフMITMみたいな攻撃を想定しているのなら、SSLにしてリクエスト内容を検証する作りにするだけで防げます。SSLは基本劇に鍵が漏れなければ解析出来ません。

投稿2020/12/30 08:08

編集2020/12/30 08:12
hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2020/12/30 12:17

> SSLにしてリクエスト内容を検証する作りにするだけで防げます。SSLは基本劇に鍵が漏れなければ解析出来ません。 昔のAndroid(6以前だったかな)やrootedな端末だと、MITMなProxyの証明書を端末にインストールすれば出来ちゃいますね
hentaiman

2020/12/30 13:15

Androidだとそんな方法あったんですね、知らなかった
tanat

2021/01/02 14:54

PCだと割とある環境ですね(セルフMITMなプロキシで通信内容監視) iOSでもJailbreakしたり、Appleから開発用に提供されるrooted端末ならできそうな気がします
guest

0

ベストアンサー

サーバ自体に特定されても問題ない様な工夫(ファイヤーウォールなどで不正アクセスを遮断など?)が施されているのでしょうか?

この考えが正しいです。
Androidアプリからのアクセスであっても、webアプリケーションであっても、インターネットを経由して通信をするような仕組みの場合はIPアドレスを隠蔽する=通信できないとなってしまうため、IPアドレスが公開されている前提で対策を行います。


追記すると、
そのサービスで使用しているIPアドレスがどこにも公開されていない状態(例えばAWSでサーバを立てた瞬間)であっても、クラウドベンダー等の所有するIPアドレスの範囲を頼りに攻撃を受けるのはよくある事です。
そのため、インターネットにサーバが公開された時点では対策が完了している必要があるというのが一般的なものとなっています。

投稿2020/12/30 07:37

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Syu2B

2021/01/02 14:50

ご回答ありがとうございます。 非常に分かりやすかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問