Shikata Ga Nai

Private? There is no such things.

Android

第89回:社内研修で使える教材・演習案

Hello there, ('ω')ノ ✅ 研修のターゲット別:目的とゴールの整理 ターゲット 目的 ゴール 初学者(非エンジニア含む) セキュリティ意識の醸成 アプリの構造・権限・脆弱性の概念がわかる 開発者 安全な実装・脆弱性の理解 自分のコードでよくあるミスを回…

第88回:自社診断体制の立ち上げ方法

Hello there, ('ω')ノ ✅ 自社診断体制づくりの5ステップ ステップ 内容 1. 目的の明確化 なぜ診断を内製化したいのか?何を守りたいのか? 2. スキル習得とツール選定 最小限の人員で始めるために、段階的に学ぶ&選ぶ 3. 診断ルールと運用体制の整備 「いつ…

第87回:調査結果の報告とドキュメント作成実践

Hello there, ('ω')ノ ✅ 調査報告書の目的は「修正を促し、再発を防ぐこと」 報告書は「問題点をただ記録するもの」ではありません。 むしろ、関係者が正しく理解し、迅速に対応できることが重要です。 そのために必要な3つの視点: 誰が読むかを意識する(…

第87回:調査結果の報告とドキュメント作成実践

Hello there, ('ω')ノ ✅ 調査報告書の目的は「修正を促し、再発を防ぐこと」 報告書は「問題点をただ記録するもの」ではありません。 むしろ、関係者が正しく理解し、迅速に対応できることが重要です。 そのために必要な3つの視点: 誰が読むかを意識する(…

第86回:再発防止のためのフィードバック方法

Hello there, ('ω')ノ ✅ フィードバックが再発防止につながらない理由とは? よくある問題点 なぜ再発するのか? 単に「修正してください」と伝える 原因や背景が理解されない 技術用語ばかりのレポート 開発メンバーに伝わらない 個別対応のみで終わる チー…

第85回:バージョン差異と脆弱性の再現性の考え方

Hello there, ('ω')ノ ✅ アプリのバージョンが変わると何が変わる? 変更箇所 例 コードのロジック 認証処理の変更、バリデーションの強化・弱体化 使用ライブラリ 新しいSDKの導入、古いライブラリの置き換え 設定ファイル AndroidManifest.xml のパーミッ…

第84回:診断対象アプリの選定と優先順位づけ

Hello there, ('ω')ノ ✅ 診断対象を選ぶための3つの基準 基準 内容 1. 重要度(ビジネスインパクト) アプリが止まった場合の影響度。業務停止や社会的信頼に関わるか? 2. データの機密性 アプリが扱う情報のセンシティブさ。個人情報・顧客データ・社外秘…

第83回:診断前に取得すべきアプリ情報一覧

Hello there, ('ω')ノ ✅ 事前に確認すべきアプリ情報一覧(診断準備チェックリスト) 項目カテゴリ チェック内容 補足 基本情報 アプリ名 / バージョン名 / バージョンコード どのビルドを診断するか明確に APKファイル 入手方法とハッシュ値 複数バージョン…

第82回:社内業務アプリを診断する際の注意点

Hello there, ('ω')ノ ✅ よくある“社内アプリ診断”の落とし穴 よくある誤解 実際には… 社内ネットワークだから安全 社内でもWi-Fi盗聴や端末紛失のリスクはある MDMで管理されてるから平気 MDM管理でもアプリ側の脆弱性は別問題 端末がルート化されてないか…

第81回:チェックリスト形式で確認する診断の流れ

Hello there, ('ω')ノ ✅ チェックリストの構成イメージ(主要6カテゴリ) カテゴリ 内容 基本設定 アプリ設定・パーミッションなど 静的解析 ソースコード/バイナリ解析 動的解析 実行中の挙動チェック 通信・暗号 ネットワークとデータ保護の確認 ストレー…

第80回:診断レポートの書き方とテンプレート紹介

Hello there, ('ω')ノ ✅ レポートに求められる3つの要素 要素 内容 明快さ 誰が読んでも理解できる構成と用語 根拠 なぜその脆弱性が問題なのか、再現性と技術的裏付け 改善指針 単なる問題指摘で終わらず、どう直せばよいかを示す ✅ レポートの基本構成(テ…

第79回:チームで診断演習

Hello there, ('ω')ノ ✅ チーム診断の3つのメリット メリット 内容 網羅性の向上 一人では見落とすような観点も、複数人の目で補える 専門性の活用 暗号・ネットワーク・リバースなど、それぞれの得意分野を活かせる スピードの向上 分担すれば短期間で診断…

第78回:オープンソースライブラリに潜む罠

Hello there, ('ω')ノ ✅ 実際にあったライブラリ由来の脆弱性 ケース1:画像処理ライブラリに含まれていた脆弱なコード(CVEあり) ある人気の画像加工ライブラリが、内部で古いバージョンの「Apache Commons Imaging」を利用しており、特定の画像ファイル…

第77回:診断結果から開発部門へ改善提案するには?

Hello there, ('ω')ノ ✅ よくある開発部門とのギャップ 診断者が言いたいこと 開発者が受け取る印象 「致命的な脆弱性があります」 「責められてる…」 「ログに情報が出てます」 「開発中は必要だったし」 「この設定はまずいです」 「でも動いてるし問題な…

第76回:実際のアプリから学ぶ脆弱性(過去事例)

Hello there, ('ω')ノ ケース1:有名カレンダーアプリの情報漏洩(2019年公開事例) 概要: 人気のカレンダーアプリが、内部で使っていたコンテンツプロバイダが外部に公開状態になっていたことで、ユーザーの予定データが他アプリから読み取れてしまった。…

第76回:実際のアプリから学ぶ脆弱性(過去事例)

Hello there, ('ω')ノ ケース1:有名カレンダーアプリの情報漏洩(2019年公開事例) 概要: 人気のカレンダーアプリが、内部で使っていたコンテンツプロバイダが外部に公開状態になっていたことで、ユーザーの予定データが他アプリから読み取れてしまった。…

第75回:模擬アプリ診断演習⑤

Hello there, ('ω')ノ 使用する診断対象アプリ(前回と同様) アプリ名:NotepadApp(架空の脆弱なメモ帳アプリ) 特徴:ログインなし、メモ保存、共有機能あり 想定する通信先:外部のメモ保存API(HTTP経由) ✅ 今回の診断ポイント 項目 チェック内容 Log…

第74回:模擬アプリ診断演習④

Hello there, ('ω')ノ ✅ チェックするセキュリティ設定の主な項目 項目 説明 AndroidManifestの設定 exported / debuggable / allowBackup など ネットワークセキュリティ構成 HTTP通信の許可/証明書検証の挙動 WebViewの設定 JavaScriptや外部アクセスの許…

第73回:模擬アプリ診断演習③

Hello there, ('ω')ノ ✅ バックドアとは? 定義: 開発者がテストや保守の目的でアプリに組み込んだ隠し機能。 通常は使われないパスや特定のコマンド、入力によって有効になります。 想定されるバックドアのパターン タイプ 例 隠しアクティビティ 特定のI…

第72回:模擬アプリ診断演習②

Hello there, ('ω')ノ ✅ 診断対象アプリ(再掲) アプリ名:NotepadApp(架空の脆弱なメモ帳アプリ) 主な機能:メモ作成/削除/閲覧/共有 特徴:ログイン機能なし、データはSQLite、他アプリとの連携あり 今回の診断目的 「開発者が意図していないのに、…

第71回:模擬アプリ診断演習①

Hello there, ('ω')ノ ✅ 今回の診断対象アプリ | 名前 | NotepadApp(架空のメモ帳アプリ) | APK入手方法 | 記事では実ファイルは配布しませんが、構成は以下のように仮定します。 | 想定機能 | ログイン機能なし メモの作成・削除・閲覧 メモデータはSQLit…

第70回:実例:安全なアプリ設計とはどうあるべきか?

Hello there, ('ω')ノ ✅ よくあるNG設計から学ぶセキュア設計の原則 ❌ ありがちNG設計の例① 認証フローが画面側で完結している // ローカルDBからログイン状態を確認 if (sharedPref.getBoolean("isLoggedIn", false)) { moveToMainPage(); } → 認証状態がク…

第69回:開発者への報告方法:適切な伝え方とは?

Hello there, ('ω')ノ ✅ よくある“伝わらない報告”の例 報告 開発者の反応 「XSSの脆弱性があります」 「……XSSってWebの話じゃないの?」 「パーミッション昇格のリスクあり」 「危険なのは分かるけど、コードのどこ?」 「暗号鍵が平文で埋め込まれている」…

第68回:脆弱性の再現コードを安全に保管・共有するには

Hello there, ('ω')ノ ✅ なぜ再現コードの取り扱いが重要なのか? ✔ 診断コードは「半分攻撃コード」 たとえ検証目的で書いたスクリプトであっても、 アプリのセキュリティ機能を無効にする サーバーAPIに想定外のリクエストを送る アクセス制限された情報に…

第67回:モバイルMDM管理下での診断の注意点

Hello there, ('ω')ノ ✅ MDMとは?ざっくり整理 MDM(モバイルデバイス管理)とは 企業が配布するスマートフォンやタブレットを一元的に管理するための仕組みで、主に以下の制御が可能です: 項目 内容 アプリ配信制御 指定されたアプリ以外インストール禁止…

第66回:アプリストアのセキュリティレビューとは?

Hello there, ('ω')ノ ✅ そもそもセキュリティレビューとは? Google PlayやAmazon Appstoreなどのストアでは、アプリの公開前に以下のようなチェックが行われます: 項目 内容 マルウェアチェック 不正コード(トロイの木馬やスパイウェア)が含まれていな…

第65回:セキュアコーディング:開発者に伝えるべきこと

Hello there, ('ω')ノ ✅ セキュアコーディングとは? セキュアコーディングとは、「安全なコードを書くための設計・実装の考え方とルール」です。 診断者としては、「問題を指摘するだけ」ではなく、 「どうすれば安全になるのか?」 「このコードをどう直せ…

第64回:防御技術を回避する技術は何のためにあるか?

Hello there, ('ω')ノ ✅ 防御を学ぶ前に、攻撃を理解すべき理由 アプリ開発やインフラ管理の世界では、攻撃を知っていないと正しい防御はできません。 たとえば: 暗号化してるから安全 → 実は鍵がハードコードされていたら意味なし SSLで守っている → SSLピ…

第63回:App Integrity Checkを突破できる理由

Hello there, ('ω')ノ ✅ App Integrity Checkとは? ✔ 目的: 改ざんアプリの実行を防ぐ 無断で再パッケージされたアプリをブロックする セキュリティ機能の無効化を検知する(rootやdebuggerなど) よく使われるチェック手法 チェック内容 説明 アプリの署…

第62回:逆コンパイルを防ぐ難読化(Obfuscation)とは?

Hello there, ('ω')ノ 難読化(Obfuscation)とは? 難読化とは、アプリの中のコードや文字列を“わかりにくくする”技術のことです。 人間が理解しにくくなるように変換することで、リバースエンジニアリングや解析を困難にします。 ✅ 難読化の目的は? 対象…