トリコロールな猫/セキュリティ

思いついたことをぼちぼち書いてます。

2015年上半期に公開されたセキュリティ関連文書まとめ

ガイドライン、マニュアル、指針、報告書など、文書としてネットに公開されたものをちまちまと集めていたので、せっかくなのでまとめて公開してみたいと思います。

  • 公共性の高いものを載せています
  • WGや研究会の純粋な活動報告書、個別のインシデント・脆弱性は載せていません
  • リンク先は全てPDFです。

情報源は以下。nekotricolor.hatenablog.com

OllyDbgを使ってx86アセンブラを学ぶシリーズ「第六話:EBPとESP、スタック領域の使われ方」公開

OllyDbgを使ってx86アセンブラを学ぶシリーズ第六話を公開しました。投げ銭方式なので最後まで無料で読めます。
今回はスタック領域のキモとなるEBPとESPについての説明です。こういう、単純だけどスマートな仕組みが大好きです。note.mu

あと2話で完結する予定です。完結したらAmazon電子書籍として出してみようかなって思ってます。

初めての方はまずこちらをどうぞ。

「第零話:まずは動かしてみる 〜ブレイクポイントとステップ実行〜」も無料で読めます。

情報セキュリティポリシーを書くときに使えそうな情報を集めてみた

情報セキュリティポリシーは、基本方針(狭義のポリシー)、対策標準(スタンダード)、実施手順書(プロシージャ)の3つからなります。基本方針は偉い人の「頑張りまーす」という宣言なのであまり口は挟めず、実施手順書はマニュアルなのでわざわざ集めなくても情報は豊富だろうということで、スタンダードを書くときに役立ちそうな情報を集めました。

つらつらと書いてますが、結局「サンプルあり」のとこに載せたJNSAのサンプルと総務省の地方公共団体向けのガイドラインだけで書ける気がする。

法律、ガイドライン等

情報セキュリティポリシーに関するガイドライン
平成12年(=西暦2000年)に策定された情報セキュリティポリシーに関するガイドラインの一部改定版。これが最新?


経産省のガイドラインリスト
経産省系はここに一通りそろってます。

ポリシーはこれに準拠したことを書けよ、と。

平成12年最終改定と古いけど一度は読むべき。

同上。通産省すよ通産省。

概念・書き方

情報セキュリティマネジメントとは|組織幹部のための情報セキュリティ対策|企業・組織の対策|国民のための情報セキュリティサイト
ポリシーとはなんぞやという人向け。事故・被害の事例はかなり具体的でいいすね。


学校情報 セキュリティハンドブック
学校向けの資料でリスク分析の方法なんかは学校特有の感じがするものの、ポリシーのチェックリストや雛形などがあっていいです。


『情報セキュリティポリシー』策定のための基本的な考え方
これもタイトル通り、ポリシーとは何ぞやという人向け。基本方針、対策標準、実施手順の具体例があって良いです。書かれたのは2003年ですけど・・。


情報セキュリティポリシー入門:実践! セキュリティポリシー運用(1) - @IT
これもだいぶ古いんですが、後で出てくるJNSAのサンプルを書いた方の記事なので合わせて読むといいと思います。


中小企業における組織的な情報セキュリティ対策 ガイドライン
ちょっと冗長で見出しも長いしこのフォント嫌いだしでアレですが、セキュリティ対策といったときに何をしなければならないかという切り口で書かれていて、これの中から自社がやるべきことを選んで列挙すればそれがスタンダードになる。かもしれない。

サンプルあり

情報セキュリティポリシー・サンプル(0.92a版)
解説書あり。電子メール利用基準、ネットワーク構築基準など、目的ごとに別のファイルになっていて参照しやすい。

(2016年3月30日追記:JNSAのサンプルは2016年3月29日付で1.0版が公開されています。こちらを参照ください。)
security.nekotricolor.com

地方公共団体における 情報セキュリティポリシーに関する ガイドライン(平成 27 年 3 月版)
書き方と例文。これとJNSAのサンプルだけでスタンダードは書けそう。


高等教育機関の情報セキュリティ対策のためのサンプル規程集 (2013 年版)
各項目についての解説付き。

余談

最初に載せた情報セキュリティポリシーに関するガイドラインが策定された2000年は、科技庁始め官公庁のサイトが続けて改ざんされた年なんですよね。1月に改ざん、2月に情報セキュリティ対策推進会議(NISCの前身)立ち上げ、7月にガイドライン策定という素早さ。
当時の情報セキュリティ対策推進会議の活動記録が首相官邸ホームページにあって、会合の議事要旨とか歴史を感じさせて面白いです。ここには第3回会合までしか載っていませんが、NISCのサイトには全部載ってるみたいですね。でもこっちは決定事項のみで議事要旨はないようで。

にしても、新しい情報が全然ないのは意外でした。元になっているBS7799からのISO20072は2013年に改定されているのに。
ISO20072:2013の国内規格JIS Q 27002:2014

でもISMS認証が来年度変わるようなので、それに合わせて新たなガイドラインが出てきそうですね。

セキュリティ全般の情報源についても以下でまとめていますのでよろしければご一読ください。
security.nekotricolor.com

【新記事作成しました】セキュリティに関する情報源を整理してみた

【2020/02/26更新】加筆修正を加えた2020年版を新記事を作成しました。この記事はもう更新しませんので、以下の記事をご覧ください。

security.nekotricolor.com

個人的なブックマークをどこでも使えるようにここに公開しておこうと思います。

脆弱性情報(全分野)

網羅的に公開しているもの。

サイトURL RSSまたは新着情報の場所
Alerts | CISA RSS
Current Activity Landing | CISA RSS
CERT Vulnerability Notes Database RSS
Japan Vulnerability Notes RSS

脆弱性情報(ベンダ・開発者)

ベンダーのセキュリティアドバイザリやパッチの情報など。英語版が先に出て日本語版が後から公開されるベンダは、英語日本語両方のページを載せています。

Microsoft

サイトURL RSSまたは新着情報の場所
Microsoft セキュリティ情報の概要 各年月
Microsoft 日本のセキュリティチーム RSS

Apple

サイトURL RSSまたは新着情報の場所
Apple security updates - Apple Support Security updates
Apple セキュリティアップデート - Apple サポート セキュリティアップデート

Cisco

サイトURL RSSまたは新着情報の場所
Security Advisories Cisco Security Advisories
製品サポート - セキュリティ アドバイザリ - Cisco

Adobe

サイトURL RSSまたは新着情報の場所
Adobe Security Bulletins and Advisories Recent Bulletins and Advisories
Adobe セキュリティ速報およびセキュリティ情報 最近の速報および情報
Adobe Product Security Incident Response Team (PSIRT) Blog RSS

Oracle

サイトURL RSSまたは新着情報の場所
Critical Patch Updates, Security Alerts and Bulletins RSS
Critical Patch UpdatesとSecurity Alerts Critical Patch Updates
オラクルサポート 日本語技術情報 製品セキュリティ関連情報
Oracle Blogs | Oracle Security Blog RSS

脆弱性情報(言語)

サイトURL RSSまたは新着情報の場所
Ruby RSS
Python Insider RSS
https://secure.php.net/ RSS

国内のニュースサイト

3つだけですがこれでも量が多いので、タイトルだけ読んで最近話題になっているものを把握するくらいしかしてないです。

サイトURL RSSまたは新着情報の場所
セキュリティの最新人気記事 157471件 - はてなブックマーク RSS
http://itpro.nikkeibp.co.jp/security/ RSS
スラド -- アレゲなニュースと雑談サイト RSS

実際の情報収集方法

別エントリでも書いているのでこちらもどうぞ。

security.nekotricolor.com

RSSはFeedeenで読む

RSS/Atomが公開されているものはWebOS GoodiesさんのFeedeenで読んでいます。タグではなくディレクトリで管理したい世代には最適なオンラインRSSリーダーではないかと思います。シンプルなのに欲しい機能は揃っていて本当に重宝しています。

Feedeen - いつでもどこでも新鮮な情報を

政府機関のページはChromeでブックマークしておいて、1日1回「すべてのブックマークを開く」で全部開いて1個1個確認しています。RSS公開してほしい・・。

Crowsnestで旬の話題を拾う

【 2015年8月2日追記】なんとびっくりCrowsnestは2015年7月15日をもってサービスを終了してしまいました。
ということで今Crowsnestで収集していたものと同じような条件でツイートを拾ってリツイートするボットを作成中です。
完成したら@secutricolorというアカウントで運用する予定です。

ここに載せたページ以外にも、CrowsnestでTwitterのTLからセキュリティに関連しそうなリンクを拾っています。実はこれが一番早くて、必要な情報はほぼこれだけで手に入る気がする。

Crowsnestの使い方は以下。ここではつくばについてのつぶやきを拾っていますが、これをセキュリティ関連のアカウントのリストと、#セキュリティ/#securityのハッシュタグを追うようにするといい感じになります。

http://www.nekotricolor.com/entry/combination-twitter-and-crowsnest-help-you-not-to-miss-useful-information


セキュリティポリシー(の内のスタンダード)を書くときに役に立ちそうな情報もまとめてみましたので、よろしければご一読ください。こんなのもあるよ〜という情報も大歓迎です。
nekotricolor.hatenablog.com

OllyDbgを使ってx86アセンブラを学ぶシリーズ「第五話:スタックとLIFO、だから何?(怒)」公開

OllyDbgを使ってx86アセンブラを学ぶシリーズ第五話を公開しました。投げ銭方式なので最後まで無料で読めます。
今回は、スタックの仕組みとLIFOについて、@nekotricolorが初めて習ったときに感じたことを率直に書いております。

note.mu

初めての方はまずこちらをどうぞ。

「第零話:まずは動かしてみる 〜ブレイクポイントとステップ実行〜」も無料で読めます。

Binary Ninjaのプロトタイプ版が公開されたのでインストールしてみた

Pythonベースのソフトウェア解析ツールBinary Ninjaのプロトタイプが公開されました。

Binary Ninja

バイナリエディタや逆アセンブラなどがセットになっていて、近日公開のフルバージョンではシェルコードコンパイラ(shellcode2exe.pyみたいな、シェルコードを実行形式に変換してくれるものと思われ)なんかもついているらしい。

ということでとりあえずインストールしてみました。環境はPythonインストール済みのMac OS X Yosemiteです。
手順は以下。

  1. PySideインストール
  2. PyCryptoインストール
  3. Binary Ninja起動

PySideインストール

ここに書いてある通りでいいのですが一応。pypi.python.org

Qtインストール

PySideの前にQtをインストールする必要があります。

$ brew install qt
(略)
Run `brew linkapps` to symlink these to /Applications.
==> Summary
🍺 /usr/local/Cellar/qt/4.8.6: 2790 files, 119M

ちなみにTXつくば駅の駅ビルの名前は「Q’t(キュート)」です。バーゲンを全力でやることで私の中で有名です。
つくばショッピングモール比較 〜 イオンモールつくば vs イーアスつくば 仁義なき戦い | トリコロールな猫

pipインストール

PySideをインストールするために、Pythonのパッケージ管理ソフトpipをインストールします。

$ sudo easy_install pip
(略)
Installed /Library/Python/2.7/site-packages/pip-6.1.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

ようやくPySideインストール

$ sudo pip install -U PySide
(略)
Downloading PySide-1.2.2-cp27-none-macosx_10_6_intel.whl (17.2MB)
100% |████████████████████████████████| 17.2MB 27kB/s
Installing collected packages: PySide
Successfully installed PySide-1.2.2

PySideのセットアップ

インストール後にこれをやらなきゃいけないらしい。

$ pyside_postinstall.py -install
PySide package found in /Library/Python/2.7/site-packages/PySide...
Traceback (most recent call last):
(略)
PySide package successfully installed in /Library/Python/2.7/site-packages/PySide...

PyCryptoインストール

こちらはpip一発。

$ sudo pip install PyCrypto
(略)
Downloading pycrypto-2.6.1.tar.gz (446kB)
100% |████████████████████████████████| 446kB 959kB/s
Installing collected packages: PyCrypto
Running setup.py install for PyCrypto
Successfully installed PyCrypto-2.6.1

Binary Ninja起動

GithubのBinary NinjaのページからZIPをダウンロードし、展開してbinja.pyを実行します。github.com

$ python binja.py


無事起動しました。

f:id:nekotricolor:20150421201636p:plain

せっかくなのでexeファイルを開いてみました。
Disassemblerビュー。ちゃんと出てる。

f:id:nekotricolor:20150421201648p:plain

Hex editorビュー。

f:id:nekotricolor:20150421202328p:plain

このフォント安心するぅ。

フルバージョンには「Execute code in a simulated environment with interactive debugging features」もついてくるそうで、Mac上で動く簡易なGUIのデバッガを探している身としては大変期待しております。

無線LANの暗号化方式について整理してみた

無線LANのセキュリティって分かりづらいよね。と思っていて調べてみたら、どうも

  1. 暗号化アルゴリズム
  2. 完全性の検証方法
  3. 規格名

などが同次元に語られるせいで無駄に複雑になっているように思われます。
そこで、いくつかの切り口でまとめてみました。

とりあえず表でまとめてみる

この表で一発解決な気がする。

暗号化方式 暗号化アルゴリズム 完全性の検証 規格「WEP」 規格「WPA」 規格「WPA2」
WEP RC4 CRC32 必須 - -
TKIP RC4 Michael - 必須 任意
CCMP AES CCM - 任意 必須

TKIPとAESって同じ土俵で語られることじゃなくね?と漠然と思っていたのがこの表で解決しました。TKIPはRC4で暗号化し、Michaelで完全性の検証(=改ざん検知)するというプロトコルであり、AESは(RC4と同列で語られるべき)暗号化アルゴリズムであると。

で、世間でいわれる「無線LANのセキュリティはAESで」というのは、「(AESという暗号化アルゴリズムを利用する)CCMP」であるということですね。

WPA-AESとかWPA2-TKIPみたいのもあってこれも混乱の元ですが、実装が必須か任意かの違いですね。WPAはTKIPの実装が必須、WPA2はCCMP必須、と。

以下、暗号化方式の特徴。

WEP

ユーザが決めたパスワードに初期化ベクトルを連結したものから得られる疑似乱数をマスターキーとし、マスターキーを使ってRC4方式で暗号化する方式。鍵長が短い上、キーの更新はパスワードが変更されない限りは行われないのでかなり脆弱。

改ざんの検出はCRC32を使って計算したICVという値を付与することで行うが、改ざん後のICV値の推測が容易なため、実際には改ざんを検知することができない。

TKIP

暗号化アルゴリズムはWEPと同じRC4ですが、初期化ベクトルの長さが2倍、マスターキーから派生したキーを使って暗号化する、改ざんの検知にMichaelを使っている、キーを更新する、などWEPの弱点を補っている。

CCMP

TKIPは、WEPのみ対応だった初期の機器をそのままより安全に使えるようにするための拡張だったのに対し、CCMPは暗号化の処理方法を1から組み直したもので、WEPはもちろんTKIPよりも安全です。当然暗号化アルゴリズムも、RC4よりAESの方が強度が高いです。

CCMはCounter with CBC-MACの略で、完全性の検証だけでなく暗号化の方法も含んだ暗号利用モードのことだそうです。

AESとCCMは情報セキュリティ政策会議が公開している「政府機関の情報セキュリティ対策のための統一技術基準」の「電子政府推奨暗号リスト」にも載っている方式です。

「パーソナル」と「エンタープライズ」は認証方法の違い

MacでもWindowsでも、WPAとWPA2には「パーソナル」と「エンタープライズ」の2種類がありますが、これは無線LAN接続時の認証方法の違いらしいです。

パーソナルはPSK認証

Pre-Shared Keyの略で、「パーソナル」を選ぶとこれになる。
ユーザが決定するパスフレーズを、暗号化に必要な様々な鍵の元になるマスターキーとして使うやり方です。
事前にアクセスポイントにログインしてパスフレーズを設定しておく必要があります。

エンタープライズIEEE 802.1X認証

エンタープライズ」の認証はIEEE 802.1Xというプロトコルを使って行います。無線LANの規格がIEEE 802.11gとかIEEE 802.11nとかなのでとっても紛らわしいですよね。嫌がらせとしか思えない。

なお、必要性の高さから無線LANでの普及が先でしたが、有線LANでも使えます。

IEEE 802.1Xは、ネットワークに接続したいクライアントが認証を受けるために必要なソフトウェア「Supplicant」、認証を中継し、認証後に接続される機器「Authenticator」、認証を行うサーバ「Authentication Server」の3つで構成されています。

一般的に、無線LANではAuthenticatorはアクセスポイント、Authentication ServerはRADIUSサーバです。

認証手順そのものはIEEE 802.1Xでは決められておらず、EAPを使います。

認証手順

EAP-TLS

認証サーバのサーバ証明書とクライアント端末のクライアント証明書による認証。証明書を保管したICカードやUSBトークンなどを使ったりする。一番安全。

EAP-TTLS

認証サーバのサーバ証明書と、クライアントのユーザ名とパスワードによる認証。

PEAP

認証サーバのサーバ証明書と、クライアントのユーザ名とパスワードによる認証。EAP-TTLSとほぼ同じ仕組みだが、こちらはWindowsに同梱されている。

MacWindowsの設定

無線LANの設定画面に出てくる用語と実際の暗号方式や認証方式をまとめてみました。

Macの場合

「セキュリティ」 暗号化方式 認証方式
WEP WEP -
WPA/WPA2パーソナル CCMP、接続先がサポートしていなければTKIP PSK
WPA2パーソナル CCMP PSK
ダイナミックWEP WEP IEEE 802.1X
WPA/WPA2エンタープライズ CCMP、接続先がサポートしていなければTKIP IEEE 802.1X
WPA2エンタープライズ CCMP IEEE 802.1X

Windowsの場合

手元に環境がないので分かるもののみですすいません。

「セキュリティの種類」 「暗号化の種類」 暗号化方式 認証方式
WEP WEP WEP -
WPA2-パーソナル AES CCMP PSK
WPA2-パーソナル TKIP TKIP PSK
WPA2-エンタープライズ AES CCMP IEEE 802.1X
WPA2-エンタープライズ TKIP TKIP IEEE 802.1X

WindowsがTKIPとAESを同列に扱ってるのが諸悪の根源か?

基本はWPA2で

当然新しいものの方が安全なわけなので、個人で使う場合は

  • Macなら「WPA2パーソナル」
  • Windowsなら「WPA2-パーソナル」+「AES」

を選びましょう。認証はPSKですね。

企業の無線LANだったらWPA2エンタープライズ+AES+EAP-TLSが理想ですが、接続用のICカード等準備できるところは少ないでしょうから認証はPEAPですかね。Windowsなら最初から入ってるし。

まとめ

調べてみたらだいぶカオスなことになっていて、CiscoCCNA Wireless Study Groupのこのスレとか「ネットワークエンジニアとして」という素晴らしいサイトを見つけられなかったら分からないままだったと思います。

私と同じようにモヤモヤしている方の助けになれば幸いです。