--- title: "「WindowsによってPCが保護されました」が自作アプリで出る理由と、配る側の対処" description: "自作アプリを配ったら「WindowsによってPCが保護されました」と出た。この「認識されないアプリ」の警告は危険と確定した意味ではなく、よく知られたファイルの一覧に無いというだけ。何を見て出るのか、なぜ配ったときだけ出るのか、配る側に今できることを一次情報から整理します。" url: https://ryuuneko.com/blog/smartscreen-warning-own-app published: 2026-09-12 20:46:41.92526 updated: 2026-09-12 20:47:36.757366 --- 自分で作ったアプリを友達に渡したら、青い画面で「WindowsによってPCが保護されました」と止められた。相手からは「危険って書いてある気がする」と返ってきた。 先に答えを言うと、この「認識されないアプリ」の警告は、**危険と確定した意味ではありません**。Microsoft の説明では、よく知られたファイルの一覧に無いと、この警告が出ます。つまり「危険」ではなく「知らない」です。 ただし SmartScreen は既知の危険なファイルも止めるので、警告のすべてがこの意味とは限りません。この記事で扱うのは、自作アプリを配り始めたときに出る、この「認識されない」の画面だけです。 この記事は、個人開発者が配布時によく踏む場面を、小さなツールを配った例として再現したものです。友達とのやり取りは架空です。仕組みの説明は、末尾に挙げた Microsoft と Apple の公式ドキュメントに当たって書いています。 ![自作アプリを配ったときに出る SmartScreen の警告は「危険」ではなく「知らない」。見ているのは署名した人とファイルそのもの。配る側にできるのは、出ることを先に案内すること、という全体図](/blog/uploads/smartscreen-warning-own-app-overview.svg) --- ## まず、画面に何と書いてあるか 止められた側は、まず読みません。青くて、止められて、ボタンが「実行しない」なら、それだけで十分怖い。私も最初は読んでいませんでした。 改めて読むと、こう書いてあります。 > Microsoft Defender SmartScreen は認識されないアプリの起動を停止しました。このアプリを実行すると、PC に問題が起こる可能性があります。 「認識されない」と「可能性」の話だけで、「危険」とはどこにも書いていない。文面は、危険と決まったとは言っていません。 --- ## SmartScreen は何を見て「知らない」と言っているのか Microsoft Learn の SmartScreen の説明は、ダウンロードしたファイルを 2 種類の一覧に当てる、と書いています。危険と報告されたプログラムの一覧と、よく知られていて頻繁にダウンロードされているファイルの一覧です。後者に無ければ、注意を促す警告を出す(出典 2)。実績があれば警告は出ず、無ければリスクが高いものとして扱われる、とも書かれています。 もともと SmartScreen は、悪いと分かったサイトの一覧で止める方式でした(出典 1)。ただ一覧方式は、新しい攻撃の出だしには効かない。全部に警告するか何も出さないかでは、利用者の判断の助けにならない。そこで、まだ評判が無いものにだけ警告する仕組みが足された。出発点が「悪い」ではなく「知らない」なので、この画面は危険とは書かないわけです。 開発者向けの説明では、見ている信号は 2 つとされています(出典 3)。 | 何を | どう見るか | |---|---| | 署名した人 | ファイルは署名されているか。その証明書は知られた信頼できる発行元のものか | | ファイルそのもの | この特定のファイルが、悪い挙動の報告なく利用者にダウンロードされてきたか | 友達 1 人に渡しただけのファイルには、まだ後者の実績がありません。署名のほうは別の記事で扱います([署名したのに、まだ警告が出る](/blog/code-signing-still-warns))。 --- ## 誤字を 1 つ直したら、また警告が出た 配ってしばらくして警告が出なくなっていたのに、誤字を 1 つ直して出し直したら、また「PC が保護されました」が出た。これは仕組みどおりの挙動です。 ファイルは名前ではなく、中身から計算した固定長の文字列(ハッシュ)で見分けられています。中身が同じならいつ計算しても同じ値になり、1 文字でも違えばまったく別の値になる。SmartScreen が見ている「ファイルそのもの」の評判は、この特定のファイルに紐づいているので、署名していない場合は新しい版ごとにゼロから積み直しになります(出典 3)。 ``` tidy-text.exe v1.0.0 配ってしばらくして、警告は出なくなっていた tidy-text.exe v1.0.1 誤字を 1 つ直した → 別のファイル扱い。また警告 ``` 更新のたびにゼロから、を避ける手が署名です。それは上に挙げた別の記事で。 --- ## なぜ「配ったとき」だけ出るのか 自分でビルドした exe を自分で開くときは、この確認は基本的に出ません。ネットから落としたファイルにだけ出る。 Windows では、インターネットから来たファイルに Zone.Identifier という印が付きます。Mark of the Web と呼ばれる代替データストリームで、そのファイルがインターネットゾーンから来たことを示すものです(出典 4)。手元でビルドしたファイルには、この印が付かない。だから自分の PC では出ず、配って、落として、初めて開くときに確認が入ります。 ![自分でビルドした exe には印が無く確認は出ない。ネットから落としたファイルには Zone.Identifier の印が付き、初めて開くときに SmartScreen が確認する、という仕組みの図](/blog/uploads/smartscreen-warning-own-app-motw.svg) 印は自分でも見られます。落としたファイルを右クリックしてプロパティを開くと、全般タブの下に「セキュリティ: このファイルは他のコンピューターから取得したものです」という行があります。自分でビルドしたファイルには、この行がありません。コマンドでも見えます。 ``` > dir /r tidy-text.exe 2026/08/29 21:03 4,213,760 tidy-text.exe 26 tidy-text.exe:Zone.Identifier:$DATA ``` ファイルの横に、どこから来たかを記した小さなメモがくっついている。「許可する」のチェックは、このメモを消す操作です。 ※ プロパティ画面の文言は Windows 11 の表示で、版によって変わりえます。また Windows 11 の Smart App Control など、別の仕組みが働いている場合はこの限りではありません。 ### Mac でも同じことは起きる Mac の Gatekeeper も、ダウンロードしたソフトを初めて開くときに利用者の承認を求めます(出典 5)。「知らないものを止める」のは同じで、通し方が違います。 | | Windows(SmartScreen) | Mac(Gatekeeper) | |---|---|---| | 止め方 | 評判が無いと警告 | 公証を通していないと、ふつうの操作では開けない | | 通し方 | 「詳細情報」→「実行」で開ける | 公証を通せば、初回に Apple が検査した旨が出る(出典 6) | | 消え方 | 実績が溜まると出なくなる | 実績で消える仕組みは公表されていない | Mac は設定から開ける手もありますが、Apple は勧めていません。 --- ## 配る側に、今できること 警告そのものは、配る側が消せません。変えられるのは、相手が知っているかどうかです。 配布ページに、出ることを先に書いておく。 > 初回、青い画面「Windows によって PC が保護されました」が出ます。 > 「詳細情報」→「実行」で起動できます。配り始めたばかりで、まだ評判が溜まっていないためです。 「詳細情報」のリンクは小さくて、知らないと「実行しない」のボタンしか目に入りません。先に書いてあるだけで、「怖いから閉じた」がだいぶ減ります。出る画面は同じでも、先に言ってあるかどうかで、閉じられるか開けてもらえるかが分かれる。 --- ## 使う側が見るべきこと 「危険」ではなく「知らない」と分かっても、何でも開いていいわけではありません。 - **まず文面を読む**。この「認識されないアプリ」の警告なら、危険と確定したわけではない - **誰が作って、どこから配られたものかを見る**。作った人を知っていることと、そのファイルが本当にその人から届いたことは別です。配っている場所が乗っ取られていれば、名前は同じで中身が違う 両方そろってから、開くかどうかを決める。警告は判断の材料であって、判断そのものではありません。判断は、開く人に残ります。 --- ## まとめ - 「WindowsによってPCが保護されました」の「認識されないアプリ」の警告は、危険の確定ではなく、よく知られたファイルの一覧に無いという意味 - SmartScreen が見ているのは、署名した人と、ファイルそのもの(ハッシュ)の評判。中身を 1 文字変えれば別のファイルとして扱われる - 配ったときだけ出るのは、ネット経由のファイルに Zone.Identifier の印が付くから - 配る側にできるのは、出る前提で案内を先に書いておくこと。消すほうは署名の話になる 配布まで来た人が次に踏むのは、たいてい署名です。[署名したのに、まだ警告が出る](/blog/code-signing-still-warns) に続きます。この場面に至るまでの流れは [AIで10分、アプリは作れた。問題は、その後だった](/blog/ai-app-in-10-minutes-then-what) で。 ※ この記事は 2026 年 8 月時点の Microsoft・Apple の公式ドキュメントをもとにしています。仕組みも画面の文言も変わりえます。 ## 動画版 同じ題材を、YouTube「黒猫開発部」では 2 人の会話で扱っています。動画は警告の画面を実物で見ながら「危険じゃなくて知らない」に至るまで、この記事は仕組みと出典を文章で確かめる向けです。 - 黒猫開発部 No.004「自作アプリを配ったら『危険』と言われた」(2026-09-25 公開予定) - [チャンネル: 黒猫開発部](https://www.youtube.com/@黒猫開発部) ## 出典 1. [Microsoft IEBlog — SmartScreen Application Reputation in IE9](https://learn.microsoft.com/en-us/archive/blogs/ie/smartscreen-application-reputation-in-ie9) — "Originally, SmartScreen protection was URL-based." / "IE9 uses an application's reputation to warn customers about downloads that carry a higher risk because they have not yet established a reputation." 2. [Microsoft Learn — Microsoft Defender SmartScreen](https://learn.microsoft.com/en-us/windows/security/operating-system-security/virus-and-threat-protection/microsoft-defender-smartscreen/) — "Checking downloaded files against a list of reported malicious software sites and programs known to be unsafe." / "Checking downloaded files against a list of files that are well known and downloaded frequently. If the file isn't on that list, Microsoft Defender SmartScreen shows a warning, advising caution." / "If a URL, a file, an app, or a certificate has an established reputation, users don't see any warnings. If there's no reputation, the item is marked as a higher risk and presents a warning to the user." 3. [Microsoft Learn — SmartScreen reputation for Windows app developers](https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/smartscreen-reputation) — "SmartScreen evaluates two signals when a user downloads and runs a file: Publisher reputation — Is the file signed? Is the signing certificate from a known, trusted publisher? File hash reputation — Has this specific file been downloaded by users without indications of malicious behavior?" / "When a file is not signed, SmartScreen reputation must build for each new version of your files, starting with zero reputation." 4. [Microsoft Learn — MS-FSCC Zone.Identifier](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/6e3f7352-d11c-4d76-8c39-2516a9df36e8) — "The Mark of the Web (MotW) is an alternate data stream that indicates a file originated from the internet zone." 5. [Apple — Gatekeeper と実行時の保護](https://support.apple.com/guide/security/gatekeeper-and-runtime-protection-sec5599b66df/web) — "Gatekeeper also requests user approval before opening downloaded software for the first time to make sure the user hasn't been tricked into running executable code they believed to simply be a data file." 6. [Apple Developer — Notarizing macOS software before distribution](https://developer.apple.com/documentation/security/notarizing-macos-software-before-distribution) — "When the user first installs or runs your macOS software, the presence of a ticket … tells Gatekeeper that Apple notarized the software. Gatekeeper then places descriptive information in the initial launch dialog to help the user make an informed choice about whether to launch the app."