「icat for JSON」(アイキャット・フォー・ジェイソン)は、IPA(情報処理推進機構)が無料で提供するサイバーセキュリティ注意喚起サービスです。IPAが公開する「重要なセキュリティ情報」の一覧を、HTMLタグを1〜2行貼るだけで自社サイトに自動表示できます。名前に「JSON」と付きますが、JSONを閲覧・解析するツールではありません。IPAのサーバーからJSON形式で受け取った注意喚起を、ウェブページ上の小さな枠に描画するウィジェットです。
ただし2026年10月29日に当社で確認したところ、ウィジェットがデータを取りに行く配信元サーバーに接続できず、枠には「メンテンナス中です。(IRSS-9001)」とだけ表示されました。本記事では、設置タグと仕組みを配布ファイルの中身から確かめたうえで、表示されないときの確認順と、ウィジェットを使わずに同じ情報を取得する方法をまとめます。
まとめ
- 正体:IPAの「重要なセキュリティ情報」(緊急・注意)を自動表示する無料のウィジェットです。2011年11月開始のFlash版「icat」を置き換える形で、2016年2月22日に公開されました。
- 設置:レイアウトは4種類で、読み込むファイルが異なります(縦表示は
icath.js、横表示1はicatw.js、横表示2はicatw2.js、サイズ指定はicatwc.js)。jQueryが必要です。 - 2026年10月の状況:10月29日の当社の確認では、配信元の
isec-myjvn-feed1.ipa.go.jpへの接続が拒否され、枠にはIRSS-9001が表示されました。同じIPAのJVN iPedia・MyJVNは10月22日から一時停止中で、再開時期は未定と告知されています。 - 表示されないとき:配信元の停止を除くと、主な原因はasync・deferや遅延読み込みでの読み込み、jQueryの不在(slim版を含む)、CSPでの遮断、ローカルファイルでの確認です。仕組みが
document.writeに依存しているため、読み込み方の制約が大きいです。 - 代わりの取得方法:IPAの
alert-rss.rdf(RSS 1.0)は正常に配信されています。ブラウザから直接は読めないので、サーバー側で取得して自社のページに組み込みます。
icat for JSONが表示する「重要なセキュリティ情報」の中身と2つの緊急度
icat for JSONは「IPA Cyber security Alert Service for JavaScript Object Notation」の略で、IPAの公式ページでは「IPAが公開した『重要なセキュリティ情報』をリアルタイムに配信するサービス」と説明されています。想定されている使い方は、企業ポータルや会員向けサイトに置いて利用者に対策を促すことです。利用料も申請も要りません。
表示される「重要なセキュリティ情報」は、IPAがウェブサイトで出している注意喚起の一覧そのものです。IPAの説明ページによると、緊急度は次の2段階に分けられています。
| 緊急度 | IPAの基準 | 2026年10月の例(IPAのRSSより) |
|---|---|---|
| 緊急(高) | 影響度の高い問題が公開され、かつ悪用した攻撃が行われている | Microsoft 製品の脆弱性対策について(2026年10月) |
| 注意(中) | 影響度の高い問題が公開された、または今後攻撃が行われる可能性がある | PHPの脆弱性対策について(CVE-2026-109618、CVE-2026-109619) |
ウィジェット上では、公開から1週間以内の情報がオレンジの背景で強調されます。配布されている描画スクリプトを読むと、閲覧者の端末の日付で公開日を1日目と数え、7日目までを強調する作りでした。各行はIPAの詳細ページへのリンクで、別タブで開きます。
個別の脆弱性が自社に関係するかどうかは、この一覧からは分かりません。たとえば2026年10月7日に注意喚起が出た「Movable Type」の件は、Movable Typeの脆弱性CVE-2026-96408とは:版の確認コマンドとCGI遮断の手順のように、自社の版を確かめる作業が別に要ります。
2026年10月の稼働状況:配信元に接続できずIRSS-9001が出る状態
icat for JSONの枠に表示されるデータは、IPAのisec-myjvn-feed1.ipa.go.jpというサーバーから取得されます。2026年10月29日に当社の回線から接続したところ、このサーバーはHTTPS(443番)・HTTP(80番)とも接続を拒否しました。外部のページ取得サービス経由でも同じ結果でした。
この状態でウィジェットを動かすと、描画スクリプトは10秒のタイムアウトで計3回取得を試みたあと、次の文言を表示します(「メンテンナス」は原文のままです)。
IPAセキュリティセンター:重要なセキュリティ情報
メンテンナス中です。(IRSS-9001)
同じIPAの脆弱性データベースについては、JPCERT/CCとIPAが運営するJVNが2026年10月22日に「JVN iPedia、MyJVNサービスの一時停止のお知らせ」を出しています。理由はシステムメンテナンスで、再開時期は未定です。配信元のホスト名に「myjvn」が含まれるものの、この告知にicat for JSONの名前は無く、icatの公式ページ(最終更新2026年6月29日)にも停止の案内はありません。icatが同じ停止の影響を受けているかどうかは、IPAから公表されていない状態です。
過去にも配信が止まった例はあります。2016年11月24日には1時間のメンテナンスが告知され、その間は注意喚起が表示されない可能性があると案内されていました。サイトにicatを置いている場合、枠がIRSS-9001のままでも閲覧者は気づきにくいので、復旧まではIPAの重要なセキュリティ情報の一覧ページへのリンクを枠の近くに添えておくと安全です。
4種類のレイアウトと設置タグ(jQueryの有無で2通り)
設置は、IPAが配布するJavaScriptファイルをscriptタグで読み込むだけです。レイアウトごとに読み込むファイルが異なるので、表で確認してから選びます。
| IPAの名称 | 読み込むファイル | 表示サイズ(幅×高さ) | 置き場所の目安 |
|---|---|---|---|
| 縦表示 | icath.js | 190×350px | サイドバー |
| 横表示1 | icatw.js | 350×150px | 本文の上下 |
| 横表示2 | icatw2.js | 700×150px | ヘッダー・フッター |
| 横表示3 | icatwc.js | 幅200〜1,200px×高さ100〜800px | 既存の枠に合わせる |
jQuery読み込み済みのページ:1行で済む横表示1の例
CMSなどですでにAjax機能を含む通常版のjQueryを読み込んでいるページでは、ファイルを1行追加します。Ajax機能を省いたslim版では動作しません。横表示1の場合は次のとおりです。
<script type="text/javascript" src="https://www.ipa.go.jp/security/announce/irss/icatw.js"> </script>
jQuery未使用ページの設置順:公式例の3.6.4とicat
jQueryを使っていないページでは、jQuery本体を先に読み込みます。現在の公式例はjQuery 3.6.4を指定しています(IPAの更新履歴では、2023年4月4日にタグ例のjQueryファイル名を更新しています)。
<script type="text/javascript" src="//code.jquery.com/jquery-3.6.4.min.js"> </script>
<script type="text/javascript" src="https://www.ipa.go.jp/security/announce/irss/icath.js"> </script>
順番を逆にすると動きません。jQueryが無い状態でicatのスクリプトが実行されると「jQuery is not defined」のエラーで止まり、枠は空のままです(当社でjsdomを使って確認しました)。
横表示3のサイズ設定:divのtitle属性と指定範囲
サイズを指定する横表示3では、幅と高さをtitle属性に書いた2つのdivを、スクリプトより前に置きます。次の例は幅500px・高さ300pxです。
<div id="icatwidthc" title="500" /></div>
<div id="icatheightc" title="300" /></div>
<script type="text/javascript" src="https://www.ipa.go.jp/security/announce/irss/icatwc.js"> </script>
配布スクリプトの処理では、半角数字による非負整数の指定が範囲外なら、幅は200〜1,200px、高さは100〜800pxに補正されます。負数・小数など受け付けない形式では、該当する寸法だけが既定値(幅350px・高さ150px)になります。指定したサイズにならないときは、この丸めを疑います。
jQueryの版と描画検証:3.7.1・4.0.0の模擬応答テスト
公式例の3.6.4は2023年3月の版で、現在のjQueryの最新は2026年1月18日公開の4.0.0、3系の最新安定版は3.7.1です。3系は重大なセキュリティ修正・バグ修正に限定した保守が続いています。サイトですでに新しい版を使っている場合に、icatのためだけに3.6.4を足す必要はありません。当社で配信元の応答を模擬してjsdomで描画させたところ、3.6.4・3.7.1・4.0.0のいずれでも一覧が表示されました。
新しく読み込むなら、改ざん検知のためにSRI(integrity属性)を付けます。3.7.1の場合は次のとおりで、ハッシュ値はcode.jquery.comから取得したファイルで計算して一致を確かめました。
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="https://www.ipa.go.jp/security/announce/irss/icatw.js"></script>
icatのスクリプト側にSRIを付けるのは現実的ではありません。IPAが中身を差し替えると読み込めなくなるうえ、icatが追加で書き出すファイルには属性を付けられないためです。4.0.0のCDNタグや3系からの移行の注意点は、jQuery 4.0とは|4.0.0の変更点・CDNとSRI・3系からの移行手順で扱っています。
配布ファイルから読み解く仕組み:document.writeと3段階の読み込み
表示されない原因を切り分けるには、タグを貼ったあとに何が起きるかを知っておくと早いです。icatw.jsの中身は数行で、次の3つをdocument.writeでページに書き出しています。
- 表示先の空要素(
<span id="ipa_rss_feed_icatw">) jquery.xdomainrequest.min.js:Internet Explorer 8・9で別ドメインから取得するための2013年のjQueryプラグインicatw_sub.js:取得と描画の本体。キャッシュを避けるためURLに現在時刻が付く
本体のicatw_sub.jsは、jQueryの$.ajaxでisec-myjvn-feed1.ipa.go.jp/IPARssReader.php?tool=icatwからJSONを取得します。受け取ったデータのitemdata配列には、各行のitem_title(見出し)・item_link(詳細URL)・item_date(日付)が入っており、ほかに一覧の更新日(docDate)なども含まれます。サーバー側がmessageを返すと、一覧の代わりにその文言を表示する作りで、メンテナンス告知に使う想定と読めます。
このJSONの配信元はIPAが仕様を公開しているものではなく、ウィジェットの内部で使われているだけです。2026年10月時点では接続もできないので、自前のシステムからこのURLを直接呼ぶ設計にはしないほうが無難です。機械的に取得したい場合は、後述するRSSを使います。
外部のスクリプトをページに読み込むこと自体のリスク(読み込み先が改ざんされたら自社ページで任意のコードが動く)は、icatでも同じです。考え方は外部スクリプトとは?script srcの読み込み方とSRI・CSPで安全に使う方法にまとめています。
タグを貼っても表示されないときの確認順
症状で原因を絞り込めます。上から順に確認するのが早道です。
| 症状 | 主な原因 | 確認・対処 |
|---|---|---|
| 枠は出るが「IRSS-9001」 | 配信元に接続できない(停止・社内での遮断) | 別回線でも再現する場合は配信元障害を疑い、開発者ツールで通信結果とCSP違反を確認。社内だけなら通信ログで遮断箇所を確認 |
| 枠ごと何も出ない | async・defer付き、または遅延読み込みで実行された | 属性を外し、最適化プラグインの「JS遅延」対象から除外 |
| 枠ごと何も出ない | jQueryが無い、読み込み順が逆、またはslim版 | コンソールの「jQuery is not defined」や$.ajaxのエラーを確認 |
| 枠ごと何も出ない | ReactなどでinnerHTML経由でタグを挿入した | サーバーで出力するHTMLに直接書く |
| 一部だけ崩れる・出ない | CSPで読み込み先が許可されていない | コンソールのCSP違反を確認し、下の送信先を許可 |
| 手元では出ない | ローカルのHTMLファイルを開いている | ウェブサーバーに置いてブラウザから開く(IPAの留意事項) |
| SharePointで出ない | モダンUIは非対応 | IPAが利用不可と明記。リンク掲示で代替 |
async・deferと遅延読み込みでは動かない理由
document.writeは、実行時の文書解析状態によって動作が変わります。非同期の外部スクリプトからの呼び出しが無視される場合に加え、読み込み後の呼び出しで既存ページを消して書き直す場合もあります。MDNの解説でも、deferやasyncで読み込んだスクリプトからの呼び出しは無視され、コンソールに「A call to document.write() from an asynchronously-loaded external script was ignored」のような警告が出ると説明されています。WordPressで表示速度の改善プラグインを使い、JavaScriptをまとめて遅延させている場合はこれに当たります。icatのファイルだけを遅延の対象から外してください。
同じ理由で、ReactやVueの画面にicatのタグを文字列で差し込む方法も使えません。innerHTMLで入れたscriptタグはそもそも実行されず、scriptタグを生成して後から追加しても、その時点ではdocument.writeが無視されます。SPAに載せたいときは、後述のRSSから自前の部品として描画するのが現実的です。
CSPを設定しているサイトで許可が要る送信先
Content-Security-Policyを有効にしているサイトでは、配布ファイルの中身から読み取れる送信先を許可しないと表示されません。
- script-src:
https://www.ipa.go.jp(自前で読み込むならjQueryの配信元も) - connect-src:
https://isec-myjvn-feed1.ipa.go.jp - style-src:
https://www.ipa.go.jp(リセット用CSS)。描画される要素はstyle属性で装飾されているため、インラインのスタイルも許可が要ります - img-src:
https://www.ipa.go.jp(見出し横の画像)
行にマウスを載せたときの下線表示はインラインのイベントハンドラー(onMouseover)で書かれているため、script-srcで'unsafe-inline'を許可していないサイトではこの効果だけが出ません。一覧とリンク自体は機能します。
ウィジェットの代わりにRSS(alert-rss.rdf)で取得する方法
icatの枠が止まっていても、IPAは重要なセキュリティ情報のRSSを配信しています。2026年10月29日時点ではRSS 1.0形式で30件、2026年3月11日から10月27日までの注意喚起が入っていました。中身はicatの一覧と同じ種類の情報です。
注意点は2つあります。1つ目は、このRSSの応答にAccess-Control-Allow-Originヘッダーが無いことです。ほかのドメインのページからブラウザのfetchで直接読むことはできないので、サーバー側(またはバッチ)で取得して自社の画面に渡します。この制約の背景はJSONPとは?読み方・仕組みとCORSとの違い、fetchで使えない理由とXSS対策で解説しています。2つ目は、注意喚起が更新されると同じURLが「更新:」付きの別項目としてもう1件並ぶことです。一覧に出すならURLで重複を除きます。
次のPythonコードは標準ライブラリだけで動き、RSSに記載された順に日付・見出し・URLを出力します(当社で実行し、30件から重複を除いた28件が出ることを確認しました)。
import urllib.request
import xml.etree.ElementTree as ET
URL = "https://www.ipa.go.jp/security/alert-rss.rdf"
NS = {
"rss": "http://purl.org/rss/1.0/",
"dc": "http://purl.org/dc/elements/1.1/",
}
req = urllib.request.Request(URL, headers={"User-Agent": "Mozilla/5.0 (alert-reader)"})
with urllib.request.urlopen(req, timeout=10) as res:
root = ET.fromstring(res.read())
seen = set()
for item in root.findall("rss:item", NS):
title = item.findtext("rss:title", namespaces=NS)
link = item.findtext("rss:link", namespaces=NS)
date = item.findtext("dc:date", namespaces=NS)[:10]
if link in seen:
continue
seen.add(link)
print(date, title, link)
取得した見出しをHTMLに埋め込むときはエスケープします(icatの描画スクリプトも見出しをエスケープし、URLはhttp・httpsで始まるものだけを表示しています)。取得間隔は、社内で許容する通知の遅延に合わせて決めます。最大1時間程度の遅延を許容できる用途なら、1時間に1回の定期取得を目安にできます。ページを開くたびにIPAへ取りに行く作りは避けてください。
IPAは同じ情報をXのアカウント@ICATalertsでも発信しています(icatの公式ページに案内があります)。担当者が通知を受け取るだけなら、こちらのほうが手軽です。
旧Flash版icatからの経緯とicat for JSONの更新履歴
icatはもともとAdobe Flash Playerで動く「icat」として2011年11月25日に始まりました。Flash Playerに依存しない新版として、2016年2月22日にicat for JSONが公開されています。Flash版はFlash Playerのサポート終了に合わせて2021年1月4日に終了しました。
| 日付 | 出来事(IPAの更新履歴より) |
|---|---|
| 2011年11月25日 | icat(Flash版)サービス開始 |
| 2016年2月22日 | icat for JSON公開 |
| 2016年2月25日 | 横表示2(700×150)追加 |
| 2018年3月13日・4月6日 | 重要なお知らせ(サービス仕様の変更)を掲載し、のちに実施日を変更 |
| 2021年1月4日 | Flash版icatのサービス終了 |
| 2021年3月31日 | 横表示3(サイズ指定)追加 |
| 2023年4月4日 | タグ例のjQueryファイル名を更新 |
| 2024年10月9日 | 「ご利用に関しての留意事項」を更新 |
| 2026年6月9日・29日 | 表示例の画像を変更 |
古いページにFlash版のタグが残っていても何も表示されないので、icat for JSONのscriptタグに置き換えるか、削除します。
icatの先で必要になる社内の脆弱性対応
icatが知らせるのは「広く影響する問題が出た」という事実までです。自社の機器やソフトウェアが該当するか、いつまでに直すかは、資産の棚卸しと照合が別に必要です。米国CISAが悪用確認済みの脆弱性の是正期限をどう決めているかはBOD 26-04とは?KEVの是正期限を4変数で決める仕組みと自社運用への移し方、照合を自動化するツールの例はFutureVulsとは?SSVCの優先度判定と料金・スキャナ導入とAPI連携の手順で扱っています。公開中のWebシステムそのものに穴が無いかを確かめたい場合は、当社の脆弱性診断・セキュリティ診断でも対応しています。
よくある質問
icat for JSONは無料ですか?
無料です。IPAが公共のサービスとして提供しており、利用の申請もありません。
icat for JSONの読み方は?
IPAの表記では「アイキャット・フォー・ジェイソン」です。JSONは「ジェイソン」と読みます。
icatの枠に「メンテンナス中です。(IRSS-9001)」と出るのはなぜですか?
配信元との通信に失敗した場合や、取得したデータの描画処理で例外が発生した場合などに表示されます。2026年10月29日の確認記録では、当社回線と外部の取得サービスから配信元に接続できませんでした。この結果だけでは、すべてのサイトで同じ表示になるとは判断できません。社内からだけ出る場合は、プロキシやファイアウォールが配信元への通信を止めていないかを確認します。
WordPressに設置できますか?
scriptタグの保存が許可されている環境なら設置できます。カスタムHTMLブロックやウィジェット領域にタグを貼り、保存後にも残っていることを確認します。unfiltered_html権限がない場合は、scriptタグが削除されます。ただし表示速度改善のプラグインでJavaScriptを遅延・非同期化していると表示されないので、icatのファイルを対象から外してください。
スマートフォンでも表示されますか?
スマートフォンでも利用できますが、読み込むjQueryが対応するブラウザであることと、JavaScriptや外部通信が許可されていることが条件です。画面幅に収めたい場合は、横表示3で幅を指定します。
icatのJSONを自分のプログラムから直接取得できますか?
おすすめしません。ウィジェットが内部で使うURLで、IPAは仕様を公開しておらず、2026年10月時点では接続もできません。機械的に取得するなら、IPAが公開しているRSS(alert-rss.rdf)を使います。