岐阜県三大アンタッチャブルプロブレム

青い珊瑚礁[松田聖子][EP盤]
岐阜県においてお土産を選ぶときに、お店の人には訊いてはいけないことを理解した上で、身内においてはネタにすべきトークテーマがある。よく似た概念としては、麺界の永遠のプロブレムである、名古屋における山本屋の味噌煮込みうどんや、福岡における長浜ラーメン的な位置付けといえる。

いずれも老舗だからこその悩みであり、なんともすばらしい。

すや v.s. 川上屋

中津川といえば栗きんとん。栗きんとんといえば中津川。岐阜県民に限らず、愛知県民や三重県民も含め、東海の人間は秋になると栗きんとんの禁断症状がおきる。さらに「恵那寿や」と「恵那川上屋」を加えると問題がより複雑化する。

金蝶堂 v.s. 金蝶園

大垣名物の金蝶饅頭を売る店が、駅にほど近い狭い範囲に複数存在する。店の名前もよく似ている。しかも金蝶園の方は、名前が同じ別会社が2つ存在する。さらにややこしいことに、そしてそれぞれが暖簾分けをしており、大垣以外の地にも金蝶饅頭を扱う店がある。

松浦軒本店 v.s. 松浦軒本舗 v.s. かめや

東海道中山道から外れた岩村という狭い地域にカステラ屋が3軒集中している。日本100名城の城下町くらいしか売りがなかったが、2018年のNHK連続テレビ小説『半分、青い』でロケ地となり、ほんの少しだけ盛り返した。

monlist以降のUDPリフレクション攻撃についての備忘録

下ネタという概念が存在しない退屈な世界2 ガガガ文庫 下ネタという概念が存在しない退屈な世界 本当の詳細は、ISPにおけるネットワークオペレーションセンタに勤務する人に書いてもらうべきです。この記事は、そうでない人間にはこのように見えているという一例になります。まだ書きかけです。

monlist以前

monlist以降

参考

サイバーセキュリティのニュースにはパターンがある

はじめに

あさえがお 心のハンドルをぎゅっとにぎる33の言葉 2014年以降、脆弱性やインシデントについて追っております。

そのうちに、サイバーセキュリティ関連ニュースが人口に膾炙するのには、おおよそ一定の法則があると思うようになりました。残念なことですが、一部には過度に心配を煽るようなフェイクニュースに近いものも存在しています。考察します。

動機

ニュースに躍らされて、エンジニアが消耗するのを避けたい。

想定する利用シーン

ニュースに躍らされた上司から、

「〇〇君、この脆弱性について調べている?」

と聞かれたときに、

「これはニュースパターンのAですね。」

と答えて、即刻で鎮火させる。

ニュースを評価するためのポイント

サイバーセキュリティのニュースのパターン化する上での軸は、次の2点に限定して良いと考えます。

  • 情報源の意図:ニュースの一次ソースの意図
  • 拡散した理由:ニュースがバズった理由

ニュースのパターンは、どちらかと言えば拡散した理由による影響が強いです。

情報源の意図

サイバーセキュリティニュースの作り手の意図としては、以下のものが考えられます。これらが、ときに誤りや過剰さを伴うことで、複雑化します。二次ソース以降では、これらが複数絡み合います。

愛称 代表的な発信元 意図の概要 信頼性
Accountability メーカー、サイバー攻撃の被害組織 脆弱性の修正や、インシデントの発生を告知する。 High
Evangelical 公的機関、公益法人、セキュリティ団体 関心を引いて、対策を促進させる。不安を煽り、ニーズを掘り起こす。 Middle
PR 研究者、セキュリティベンダ、イベント開催者 成果を公表し、信頼度や知名度の向上を図る。イベントへの注目を集める。 Middle~Low
Commercial ニュースサイト 大量のトラフィックを誘導し、広告収入等を得る。 Low
Maneuvering ハクティビズム活動家、国家 競争相手や特定の集団を貶めようとする。 Low
Other 一般人 単純なリアクション、社会貢献的な意図のあるものなど様々。 Low

拡散した理由

実際の深刻度に比べて、過度にニュースが拡散してしまう理由として、次のようなものが考えられます。

まだ表にかけていない理由が、他にもあると思います。今後さらに増やしていきたいです。

愛称 理由の概要
Giant 政府、独立行政法人GoogleIntelのような大企業、等の影響力が大きい組織や個人が公表した、もしくは関係している。
Misunderstanding 公開情報が少ない時期に、限られた情報をもとになされた推測に行き過ぎがあり、それがそのまま波及してしまう。蓋を開けたら大したことはなかったが、もう止められなかった。
Periodical 他に報道すべきニュースがなかった。
Seaborne 欧米を中心とした海外においてニュースが流行った。
Propaganda セキュリティベンダ等による広告戦略が成功した。

パターンの実例への適用

実際にメディアに騒がれた例について、パターンを適用します。

情報源の信頼性が低く、且つ拡散した理由が上記の表に含まれているものであれば、静観して良い理由になりうると考えます。

情報源の意図 拡散した理由 実例
PR Propaganda Ghost, Badlock
PR Misunderstanding KRACKs
PR Giant Spectre/Meltdown
Commercial Seaborne WannaCry, Petya
Maneuvering Giant サイバー攻撃による米大統領選への関与

考察

発想としては、重要インフラ専門調査会で議論されている「深刻度」に近いものです。

2017年3月16日 重要インフラ専門調査会第10回会合 資料9 重要インフラサービス障害に係る深刻度判断基準の例について

しかしすべてのセキュリティのニュースを、Level 1〜5のように数字で評価することには、関係者の総意を得るのが困難な印象です。また、昨今のサイバー攻撃の手法や脆弱性の詳細は、技術的な難易度が高いものが多く、しっかりとした説明をするためには相当な準備が必要となります。簡単ではありません。

このため、上司になぜそのニュースに対応しなくてよいのかを説明するのには、脆弱性やインシデントそのものの深刻度よりも、なぜニュースが拡散したのかという理由に対して、ソフトウェア開発におけるデザインパターンのようなものを適用して説明するほうが、理解が手軽に得られるのではないでしょうか。

平昌オリンピックのサイバーセキュリティニュース列挙するだけ

オリンピック・パラリンピックが、セキュリティベンダーの食い物にされるのは、看過できません。これらの記事を見て、特に政治をお仕事にされている方が、過剰な反応をしないことを強く望みます。

とはいえ、平昌大会でサイバー攻撃による実影響が生じた以上、東京大会に向けてサイバーセキュリティ関連予算の増額が生じるのは確実でしょう。

網羅性はまったくありません。

オリンピック開会前

2017-12-05

2017-12-12

2017-12-29

2018-01-06

2018-01-08

2018-01-10

2018-01-11

2018-01-12

2018-02-01

THE COURT OF ARBITRATION FOR SPORT (CAS) DELIVERS ITS DECISIONS IN THE MATTER OF 39 RUSSIAN ATHLETES V/ THE IOC: 28 APPEALS UPHELD, 11 PARTIALLY UPHELD
http://www.tas-cas.org/fileadmin/user_upload/Media_Release__decision_RUS_IOC_.pdf

Both CAS panels unanimously found that the evidence put forward by the IOC in relation to this matter did not have the same weight in each individual case. In 28 cases, the evidence collected was found to be insufficient to establish that an anti-doping rule violation (ADRV) was committed by the athletes concerned. With respect to these 28 athletes, the appeals are upheld, the sanctions annulled and their individual results achieved in Sochi 2014 are reinstated.
In 11 cases, the evidence collected was found to be sufficient to establish an individual ADRV. The IOC decisions in these matters are confirmed, with one exception: the athletes are declared ineligible for the next edition of the Olympic Winter Games (i.e. Pyeongchang 2018) instead of a life ban from all Olympic Games.

2018-02-02

2018-02-06

* セキュリティベンダによる英語のブログ。よくまとまっているので推薦。 Cyber Threats to the 2018 Winter Olympics | Digital Shadows

2018-02-07

2018-02-08

2018-02-09 平昌オリンピック開会式

オリンピック期間中

2018-02-10

公式Webサイトは当然のようにAkamaiで守られていますので、Akamaiを信頼すれば落ちるとは考えづらい。となると、VerisignDNSサーバがおかしくなったのでしょうか。公式レポート待ちです。

2018-02-11

2018-02-12

2018-02-13

2018-02-14

2018-02-15

2018-02-17

2018-02-20

2018-02-21

2018-02-22

2018-02-24

2018-02-25

オリンピック閉会後

2018-02-26

* 開会式翌日、脱北者ら宛に「北朝鮮分析資料(三池淵楽団)」という名のマルウェアを含む添付ファイル付きメールが送信されてきたという情報 “融和五輪”の裏でサイバー攻撃 | オピニオンの「ビューポイント」

2018-02-27

2018-03-03

2018-06-07

サイバー攻撃 ネット世界の裏側で起きていること (ブルーバックス)

いまなら半額なので買います。

(後日追記)読みました。感想です。

中島さんが、紅茶派であると知ることができる一冊です。

タイトルはサイバー攻撃になっていますが、内容は"脆弱性"にフォーカスされています。 ブルーバックスで、いきなりバッファオーバーフローを教えようとしている暴挙がこのましいです。私は「C言語がわからないひとにはバッファオーバーフローはわからない」説を支持していますので、ブルーバックスでがんばらなくてもとは思いつつ、私が10代のとき同級生がブルーバックスでプログラミングの勉強していたのを思い出しました。彼はその後、情報系のドクターをとって、さらには研究職についていますので、あながちおかしくはないのでしょう。努力を買います。

敢えて批判的な感想をすると、この本において「敵を知り、己を知れば、百戦危うからず」ということばを2度引用している点が気になりました。孫子は私が繰り返して読んでいる唯一の本ですが、この節をサイバーセキュリティに適用するのは適切ではないと考えています。2,500年前に書かれた孫子は、Whenever, Wherever, Whoeverであるサイバーセキュリティの領域はカバーできていません。(ちなみにある著名なセキュリティ技術者も「スライドの最後にこの言葉を引用する理由は、中国系の聴衆を満足させるため以上の理由はない」とおっしゃっているようです。)

孫子の原文に立ち戻ると、

故知勝有五、知可以戰、與不可以戰者勝、識衆寡之用者勝、上下同欲者勝、以虞待不虞者勝、將能而君不御者勝、此五者知勝之道也、故曰、知彼知己、百戰不殆、不知彼而知己、一勝一負、不知彼不知己、每戰必殆、

とあります。さらにこの前の文を読めば、"彼"と"己"とはどちらも国家を指し、"戦"とは軍と軍とが物理的に激突する行為を指しているとわかります。すなわちここでは、用兵における原則が顕されています。一方で、この本の2-3節で紹介されているゼロデイ攻撃に代表されるように、敵を知り己を知れども殆ういのがサイバー攻撃です。このため、サイバーセキュリティの領域においては、孫子を超える概念を描いた原則が必要であると信じます。それこそを中島さんに作ってもらえたらと期待するものです。

以下は私事で恐縮ですが、コラムその2の表2-5は、おそらく私の記事をコピペしてくれたものでしょうか。もし本当にそうならなんて光栄な事でしょう。このブログも捨てたものではありません。 さらには記事にない"goto fail"と"BadIRET"の2つが表に載っていましたので、さっそくコピペ返ししました。私の記事ではこれまで、CVE-2014-9322の名前を"Grinch"としていたのですが、"BadIRET"と修正されていました。「それは"Grinch"じゃなくて"BadIRET"の間違いでしょ!」と今をときめく女性セキュリティ研究者に言われた気がしました。ドキドキしました。

未購入のKindle無料コミック探しを時間短縮したい

無料本は何冊購入したとしても、0円×∞=0円です。お財布が痛まないため、読む読まないに関係なくとりあえずポチッとするようにしています。しかしながら、Amazonの商品検索をすると購入済みと未購入のものが混ざって表示されますので、1000冊以上ある無料本を全部見て、そのなかから未購入のもののみをポチッとするのは時間のムダだなとずっと思っていました。スクリプトを書いて、自動化するところまでできたっぽいので記事を書きます。

Rubyスクリプトを書くとこうなる。

以下のコードで、"ASIN", "本のページへのリンク", "サムネイル画像", "タイトル"が取得できます。Nokogiriをつかうのに、10年以上ぶりにXPathをつかいました。便利ですねこれ。

require 'open-uri'
require 'nokogiri'

def find_items(url)
  items = []
  
  opt = {}
  charset = nil
  html = open(url, opt) do |f|
    charset = f.charset
    f.read
  end
  
  doc = Nokogiri::HTML.parse(html, nil, charset)
  result = doc.xpath('//li[contains(@id, "result_")]')
  unless result.length == 0
    result.each do |r|
      a = r.xpath('descendant::a[@class="a-link-normal s-access-detail-page  s-color-twister-title-link a-text-normal"]')
      img = r.xpath('descendant::img')
      items.push([r.attribute('data-asin').value, a.attribute('href').value, img.attribute('src').value, a.inner_text])
    end
  end
  
  return items
end

def find_free_comics(page)
  STDERR.puts page.to_s
  url = 'https://www.amazon.co.jp/%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF-0-Kindle%E6%9C%AC/s?ie=UTF8&rh=n%3A2293143051%2Cp_36%3A-0&page='+page.to_s
  return find_items(url)
end

find_free_comics(1).each do |c|
  puts c.join(",")
end

こちらのサンプルコードでは無料のKindleコミックを取得していますが、URLを変えれば無料本ではなくても同じことができます。

あとはこれをページの数だけ繰り返し、さらに保存しておいた過去の検索結果と照らして、もし新しいASINの本があれば、それを表示すればよいです。ただし、Amazon利用規約において、製品リストの取得を許可していませんので、ここから先は自己責任になると存じます。

ちなみに、Amazon Product APIではうまくいかない。

当初はAmazon Product APIで同じことを試したのですが、うまくいかないようです。 APIのひとつであるItemSearchは、一度に10件までしか出力できません。item_pageを1〜10の間で指定することで、最大100件までは取得できますが、それでもたかだか100件しか取得できないのは厳しいです。無料コミックは1000冊以上あります。またAPIを何度も連続で叩くと、Amazonからエラー応答が返ってくるので、一覧の取得は困難です。

ItemSearch - Product Advertising API

あくまで参考としてですが、以下のコードは、キーさえ書き換えれば100件まで取得できます。次のサイトのコードをほぼそのままコピーしていますが、1箇所だけ修正しており、marketplaceではなくcountryにするとよいです。

atton.blog: amazon-ecs を使って Kindle マンガの情報を取得する #okinawarb

なお2293143051はAmazonのブラウズノードであり、次のページのURIのものを利用しています。この値を用いると、Kindleのコミックスすべてから検索することになります。

Kindleマンガストア コミック | Amazon | アマゾン

require 'amazon/ecs'

Amazon::Ecs.configure do |options|
  options[:associate_tag] = 'xxx'
  options[:AWS_access_key_id] = 'xxx'
  options[:AWS_secret_key] = 'xxx'
end

page = 1

loop do
  res = Amazon::Ecs.send_request({response_group: 'Medium', operation: 'ItemSearch', search_index: 'Books', browse_node: '2293143051', minimum_price: 0, maximum_price: 0, item_page: page, country: 'jp'})
  
  res.items.each do |item|
    puts item
  end
  
  if page >= res.total_pages
    break 
  else
    STDERR.puts page.to_s + "/" + ((res.total_results-1)/10 +1).to_s
    page += 1
    sleep 2
  end
end

セキュリティな雑誌 まとめ

iNTERNET magazine Reboot NextPublishing いずれも購入したことはないので単なるメモです。 1回分の投稿ぐらいの分量になってきましたので、公開します。

サイバーセキュリティ

2600
https://www.2600.com/
海外雑誌

HackerJapan
http://www.byakuya-shobo.co.jp/hj/
2013年11月休刊

iNTERNET magazine
インプレス発行のインターネット情報誌。1994年9月創刊、2006年3月休刊。2017年10月に「iNTERNET magazine Reboot」として1号かぎりの復刊。

PenTest
https://pentestmag.com/
海外雑誌

A security Magazine
https://www.securitymagazine.com/
海外雑誌

物理セキュリティ

A&S JAPAN
http://www.asj-corp.jp/
2007年10月創刊

リスク管理

デロイトトーマツ 季刊誌『企業リスク』
https://www2.deloitte.com/jp/ja/pages/get-connected/pub/risk/enterprise-risk.html