
ツルカメ(@turucame)のツルのほう🤔 いいねやRTはいいねやRTです。
Tokyo, Japan
Joined April 2007
- Tweets83.6K
- Following483
- Followers3.2K
- Likes7.5K
Yu Morita (yuu) retweeted
11/7に、Chrome拡張機能など小さなツールを作ろう系のワークショップをハイブリッドで開催します!
(イベントページをPeatixじゃないやつにしようと画策中のため申込ページ開設は週末とかになりそう)
11/7 14-17時くらいで、リアル側はそのあと懇親会の想定です。
Yu Morita (yuu) retweeted
18日からアルゼンチンで開催の電動車椅子サッカーのワールドカップ
YouTubeで全試合見れます!
youtube.com/@OfficialFIPFA/s…
Yu Morita (yuu) retweeted
本日19時より、テクセシラボ#7です。五十嵐涼さんを講師に迎え「HTMLの読み上げを支える技術 ―スクリーンリーダーは何を読んでいるのか―」をお届けします。WAI-ARIAの詳細理解に欠かせない知識の学びになることでしょう。必見です!
peatix.com/event/5201547
#テクセシラボ
Yu Morita (yuu) retweeted
9/8開催の #テクセシラボ 第5回、JIS改正前の改正ポイント総点検セミナー第1弾の動画アーカイブを販売開始しました!
suzuri.jp/marimokikakugk/dig…
(第5回に申し込まれた方へはメールにてご案内しています)
(第6回に2講座分のアーカイブ付きで申し込まれた方へはPeatixメッセージでご案内しています)
Yu Morita (yuu) retweeted
Replying to @Takumiboo
ご質問ありがとうございます。
ご指摘の通り、l=タグがないため本文全体が署名対象です。
ドコモでdkim=passになっているので、本文は署名時から1バイトも書き換えられていません。
ポイントは、本文の「中身」ではなく「解釈のしかた」が変えられている点です。
本文をどう解釈するかは、Content-Typeヘッダ(MIMEの種類と境界文字列)で決まります。
今回はh=From:Fromで、Content-Typeは署名対象外でした。
届いたメールのContent-Typeは multipart/alternative; boundary="no" という不自然な値になっています。
本文は確認できていないので以下は推測ですが、次のような手口と考えられます。
①攻撃者が楽天カード側の問い合わせフォームなどに、「--no」という境界行やHTMLパート、フィッシングのリンクを含む文字列を入力する
②その入力内容が本文にエコーされた正規メールが、楽天カードの署名付きで攻撃者に届く
③攻撃者はContent-Typeだけを boundary="no" の multipart に差し替えて再送する
④受信側は本文中の「--no」を境界行として解釈するため、楽天カードの元の文面ではなく、攻撃者が仕込んだパートがメールとして表示される
本文は1バイトも変わっていないので署名は有効なまま、表示される内容だけが攻撃者のものになります。
これが、Content-Typeを含むMIMEヘッダを署名対象にすべき理由でもあります。
RFC 6376 Section 5.4の運用上の注記でも、すべてのMIMEヘッダを署名することが強く勧められています。
Yu Morita (yuu) retweeted
こちらのドコモ宛てに届いた「楽天カード」を名乗るフィッシングメールのヘッダを分析しました。
SPF・DKIM・DMARCはすべてpass、BIMIのロゴ表示まで付いています。
偽装ではなく、楽天カードの正規の署名付きメールを再送する「DKIMリプレイ攻撃」に、「SPF Bypass」を組み合わせた手口です。
■経路
①10/14 21:19、楽天カードが利用しているOKWeb3(okweb3.jp、現在の提供会社はPKSHA Communication社)の送信基盤(楽天カードのSPFで許可済みのIP)から、攻撃者のアドレス宛てに正規メールが送信
②約18時間後、無関係なサーバーからドコモ宛てに再送
元の宛先と、実際に届いた宛先が違います。
■なぜDMARCがpassするのか
DKIM署名は、本文と署名対象のヘッダが改変されていなければ、誰が再送しても有効です。
署名ドメインはFromと同じmail.rakuten-card.co.jpなので、DMARCもpassします。
p=rejectでも、リプレイは防げません。
SPFもpassしていますが、これはエンベロープ送信者を空にし、HELOに使った攻撃者自身のドメインで判定させたものです(いわゆるSPF Bypass)。
Fromとはアラインしないため、p=rejectのドメインならこれだけでは届きません。
DMARCを通したのはDKIMリプレイです。
■被害を広げた原因:署名対象がFromだけ
DKIM-Signatureは h=From:From でした。
署名されているのはFromだけで、Subject・To・Content-Typeは署名対象外です。
攻撃者は件名を「楽天カード登録情報の更新について」に差し替え、MIME境界(boundary)も書き換えています。
RFC 6376 Section 5.4はFromの署名をMUSTとしていますが、それ以外は必須ではないため、仕様違反ではありません。
しかし、Fromだけの署名では、再送時に改変できる範囲が最大になります。
このDKIM署名は、楽天カードの鍵を使ってOKWeb3の送信基盤で付与されています。
署名範囲を決めているのは送信基盤側なので、まず送信基盤側で是正すべき問題です。
■もう一つの根本原因
任意の外部アドレス宛てに、正規の署名付きメールが届く経路があったことです。
フォームの自動返信などを本番の送信ドメインで送ると、攻撃者にリプレイの素材を渡すことになります。
■現状
現在、このDKIMセレクタはDNSに存在しません(全権威サーバーでNXDOMAIN)。
鍵を消せば以後の再送は止まりますが、すでに配送されたメールは、ロゴ付きのまま受信箱に残ります。
■再発防止策(送信側)
1. DKIMの署名範囲を広げる(送信基盤側の対応)
From以外に、Subject・To・Cc・Date・Message-ID・Reply-To・Content-Type・MIME-Versionも署名します。
さらに、存在しないヘッダも含めてオーバーサインし、ヘッダの追加・差し替えを防ぎます。
これは署名を行う送信基盤側、今回はOKWeb3が実装すべき対策です。
送信を外部に委託しているドメイン所有者も、委託先が何に署名しているかを確認する必要があります。
2. 未確認の宛先に送るメールを、本番の送信ドメインから分離する
フォームの自動返信や登録確認メールは、本番の通知とは別のサブドメインから送ります。
そのサブドメインにはBIMIを設定しません。
利用者の入力内容を本文にエコーせず、送信数も制限します。
3. DKIM鍵を3か月ごとにローテーションし、リプレイを検知したら即座に失効させる
定期的なローテーションで、古い署名を再送できる期間を最長3か月に抑えます。
M3AAWGのDKIM鍵ローテーションの指針は「少なくとも6か月ごと」なので、3か月ごとはそれより厳しい運用です。
あわせてDMARC集計レポートを監視します。
「DKIMはpassしているのに、自社のSPFに含まれないIPから大量に送信されている」という記録は、リプレイの兆候です。
検知したら、定期の周期を待たずに鍵を失効させて再送を止めます。
4. SPFの許可範囲を最小化し、隠蔽化する
クラウドなどの共有基盤を広く許可すると、その基盤の他の利用者からのメールもSPF passになり得ます(BreakSPF)。
許可するのは必要なIPだけにします。
さらにSPFを隠蔽化し、どの送信基盤を使っているかを分かりにくくすることで、利用しているメール配信基盤の脆弱性を探すことを困難にできます。
■DMARCは実装して終わりではない
DMARCは、実装して終わりではありません。
p=rejectにして、BIMIを設定しても、それで終わりではありません。
今回のように、利用しているサービス自体が脆弱であれば、突破されます。
委託先の送信基盤も含めて、DMARCレポートを継続的に監視し、異常を早期に検知して対処し続けることが必要です。
Yu Morita (yuu) retweeted
18:50になりましたので、入室可能です!
しかしなんか、まだ誰も来てなくて、URL間違ってるんじゃないか?とか不安なので、誰か早く来てください!!!
#テクセシラボ
Yu Morita (yuu) retweeted
いよいよ今夜は、#テクセシラボ 第6回「JIS X 8341-3改正前のWCAG 2.2総点検セミナー第2弾」です!
アクセシビリティのあらゆる質問へのリアルタイム回答もチャット内で同時開催です!
是非ご参加ください。
(動画アーカイブ目的での参加申込みも勿論OKです)
peatix.com/event/5186354
Yu Morita (yuu) retweeted
本日の登壇資料です:二歩目のフロントエンド・ウェブアクセシビリティ
#fec_kansai
speakerdeck.com/camiha/nihom…
Yu Morita (yuu) retweeted
安全な言語での作り直しも意図の一つですが、AIによる開発では不要となる(かもしれない)ミドルウェアやフレームワークその他のライブラリ等をスキップして直実装することで、それらの脆弱性に振り回されないようにすることも意図しています。動画では脆弱性が発生する要因として、プロプライエタリ製品がビジネスモデルからして必然的に多機能化して脆弱性の発生源となることに触れてましたが、オープンソースプロジェクトが開発貢献者らの動機からして無用機能が作り込まれやすいこともスキップしたい理由です。人間による開発ではそうした抽象化されたフレームを中間に挟まなくては保守性のあるソフトウェアの構築が現実に困難だったからこそ、この30年そうした仕組みが発達してきたところ、コーディングとメンテナンスの労力をほとんど無視できるAIによる開発では、そうした中間層のいくつかは今後不要にできるかもしれない。ソフトウェアの作り直しが低コストで何度でもできるようになれば、重要なのは仕様であり、標準であるということになるでしょう。
Yu Morita (yuu) retweeted
10月19日(月)にこちらで話します!
`<button>保存</button>` が「保存、ボタン」として読み上げられるまでに、ブラウザとOSの間で何が起こっているかを、仕様を読みながら徹底的に解説します。
Webアクセシビリティの仕様に詳しくなりたい方、ブラウザやOSを自作する予定のある方は、ぜひ!
今月10/19開催の #テクセシラボ は、五十嵐涼さんをお呼びして「HTMLの読み上げを支える技術 ―スクリーンリーダーは何を読んでいるのか―」をお送りします。WAI-ARIAの詳細理解のために欠かすことのできないAccessibility API Mappingを学べる実践的な講座となります!
peatix.com/event/5201547
Yu Morita (yuu) retweeted
Replying to @beConjuror
IATA(国際航空運送協会)の都合だそうです
一介の航空会社やベンダーがなんとかできる問題ではなさそう……
iata.org/contentassets/18a5f…
> Passenger has a single letter family name – single letter is doubled. This rule is as defined in AIRIMP rules and its examples.
Yu Morita (yuu) retweeted
舞羽&伊原のJIS X 8341-3改正前 総点検セミナー第2弾、申込ページを公開しました!
peatix.com/event/5186354
なお前回、チャットでの質問に森田が即レスで回答しましたが、第2弾でも勿論やります。あらゆるアクセシビリティの質問にお答えしますので、ぜひ質問も携えてご参加ください!
#テクセシラボ
Yu Morita (yuu) retweeted
本日の登壇資料です:スマート反転とウェブアクセシビリティ
speakerdeck.com/camiha/sumat…
#こらぼないと
Yu Morita (yuu) retweeted
9/8開催「8341改正前の総点検セミナー第1回」のアーカイブ(速報版)についてご案内を差し上げましたので、テクセシラボ#5のチケットをお申込み頂いた皆様はPeatixメッセージをご確認ください! #テクセシラボ
Yu Morita (yuu) retweeted
前半が終わって休憩中です。20:13に再開。ちなみにチケットは21:00まで販売しております。アーカイブ視聴目的でのお申込みも歓迎です! #テクセシラボ
Yu Morita (yuu) retweeted
アクセシビリティのJIS規格「JIS X 8341-3」の改正を控えて、現行バージョンとの比較・総点検をするセミナーは、本日9月8日19時からです!まだ残席ありますので是非奮ってご参加ください! #テクセシラボ
peatix.com/event/5151095
Yu Morita (yuu) retweeted
アックリップにシェアボタンが付きました!
どんどんシェアックリップしてください!!
accclip.marimokikakugk.com/
#アックリップ













