今日のメモはいつもにもましてアレですごめんなさいごめんなさいごめんなさい
...まぁ誰も気づかれてないと思うが。
- jssecから松並さんをお迎えして...
もくじ
背景説明
セキュアコーディングガイド
目指してるもの
- 開発現場で「使える」ガイド
- 開発者は勉強会に出れないのでどうにかしたいという思いから...
- 開発者のやりたいこと視点でまとめよう
- コピペで使ってください
- コメントも書いてある
- 組織の中でコピペするとコメントをコピペされるのでよい
- コメントも書いてある
- 開発現場でセキュリティの勉強してから開発できるような余裕のある人はいない
- →そのひとのためになりそうなもの
なんてことを目指してます
- フィードバックをもらって改善していってみんなに使ってもらえるようないいものを目指す
事例とガイド
初歩的な不備が多く指摘されている
- パーミッションの問題など
- 初歩的な内容か充実させてきた当ガイドがたまたま^h^h^h^h狙い通り受け皿になった
- 詳しい人には当たり前のことしか書かれておらず物足りないと感じられている
事例1
- 原因
- Activityが他のアプリに公開されていた
- おそらくActivityはアプリ内部のみで使うはずだったと思われる
- 公開アクティビティ
- 対策→非公開に設定すればよい
- ガイドではどのように書いてあるか?
- サンプルコードもあるのでコピってください
- たった一行なのでガイドに目を通せば...
某リアルタイムコミュニケーションアプリにおける暗黙的Intentの扱いに関する脆弱性
- 修正されました
-
- 一斉放送しているようなものなので、マルウェアが同じIntent Filterを設定しれいると取れてしまう
- 対策
- 明示的Intentを使う
- →送り先アプリ・Activityを固定しているもの
- 暗黙的Intentとは、こんなmime type受け取れるアプリいたらよろしく...みたいなもの
- 自アプリ内であれば今回は明示的Intentによりあて先クラスを限定すべき
- 明示的Intentを使う
- セキュアコーディングガイド
- 非公開の場合には明示的Intentで...
某SNSにおける情報管理不備の脆弱性
- 他のアプリが友達の発言を取れてしまう
- 脆弱性の原因
- SDカードに友人の発言を保存している
- SDカードはWorld Readable →無条件に他のアプリが見れる
- 対策
- 友人の発言を非公開ファイルに保存する
- ガイドでは
- 同一アプリ内でのみ読み書きするファイルはopenFileOutput()でMODE_PRIVATEを指定して作成する
某魔法少女アプリにおける情報漏えいの脆弱性
- 他のアプリがtwitterのユーザ名パスワードがとられる
- 残念ながら入手できない
- これまで話しているのは実際事件として起こってない
- 原因→デバッグ情報を出していた
- 対策
- リリースビルドではデバッグログをLogcatへ出力しない
- 一番いいのは消すこと...
- 次の記事ではProGuardで消す運用で...
某オンラインストレージアプリにおけるContentProviderアクセス範囲の脆弱性
- 攻撃のシナリオ
- 設定ファイルにオンラインサーバにログインできるID/PWが書いてあった
- ローカルにあったファイルをそのユーザのpublicフォルダにアップロードさせてしまうことができた
- 同期を指示する方法をContentProvider経由で他アプリから操作でいる
- 対策
- 他アプリから利用すべきでないContentProviderはexported="false"で
- APIレベルが8以前だと公開されてしまうので注意
個人的感想
- 知っているか知らないか、差はそれだけってことが多くあるように思います
- メジャーなアプリであっても、ガイドに書かれているような基本的な事項がもれていることが結構あると思います。
- まずは基礎固めで目を通してもらいたい...
Androidアプリのセキュリティのとらえ方
セキュリティの考え方
- 1.資産→守りたいもの
- 2.対策→守る方法
- 3.脅威→盗聴とか改ざんとか実際にやること
1.資産
- システムやアプリにおいて守るべき対象のこと
- 大きく分けて二つ
- 情報資産
- 許可された人やアプリだけが参照変更できる情報
- 許可されていない人やアプリには参照変更できちゃいけない
- 機能資産
- 許可された人・アプリだけが利用できる機能
- 許可されていない人・アプリが利用できるとまずい機能
- こういうのに当てはまらなければ守る必要ない
- 情報資産
- 情報資産
- AndroidのOSが管理
- アプリが管理
脆弱性を攻撃する悪意あるファイル
- アプリがファイルを開くと攻撃が始まる
- 受動的攻撃
アプリはあちこちから狙われる
対策
脅威から資産を守る保護施策をセキュリティ対策という
- どのようにまもるか
- どのくらい守るか
どれくらい守るのか
- Androidアプリには多くの脅威が存在する
- すべてに対応するのは無理
次の手順が一般的
- 1.アプリが扱うここの資産を重要度で分類
- 2.重要度に応じて保護施策のレベルを決定
- リスクマネジメントなどでよくわいれていること...
各々の資産を重要度で分類
高位→会社が倒産する
中位→会社が赤字転落
低位→天秤にかけて他の要素により利益の補填が可能なレベル
大切なこと=説明できること
- 自社で基準を定め運用していること
ご協力のお願い
ボランティア協力して下さる方を探しています
- 記事を書く、てにをは、作業環境保守、宴会調整など
- ささやかですが次版にお名前が載ります
ご協力いただける方は以下を...
- 個人として参加したい方はAndroidセキュリティ部経由で...