雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|
2024|06|

2024-06-15 Let's encrypt導入メモ [長年日記]

今更ながら、このサイトをLet's encryptでSSL証明書の自動更新に対応させたので、作業メモ。

  • certbot のFreeBSD pkgをインストール
# pkg install py38-certbot
  • SSL証明書取得

certbot certonly コマンドに以下のオプションをつけると、サーバの検証から証明書の取得まで自動で終わります。

--noninteractive
対話不要
--config-dir
証明書などを置くディレクトリ
--agree-tos
ACME server’s Subscriber Agreementへの同意
--no-eff-email
お知らせメールは受け取らない
--webroot
検証をWebで行う
-w
DocumentRootのパス
-d
証明書を取得するドメイン(FQDN)
-m
管理者のメールアドレス
# certbot certonly --noninteractive --config-dir /sandbox/usr/local/etc/letsencrypt --agree-tos --no-eff-email --webroot -w /sandbox/home/www/htdocs-onsky -d www.on-sky.net -m hs@on-sky.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for on-sky.net

Successfully received certificate.
Certificate is saved at: /sandbox/usr/local/etc/letsencrypt/live/on-sky.net/fullchain.pem
Key is saved at:         /sandbox/usr/local/etc/letsencrypt/live/on-sky.net/privkey.pem
This certificate expires on 2024-09-13.
These files will be updated when the certificate renews.

NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/ renewal-setup for instructions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • Apache のVirtualHost内の証明書パスを変更
  SSLCertificateFile "/usr/local/etc/letsencrypt/live/on-sky.net/fullchain.pem"
  SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/on-sky.net/privkey.pem"
  • 証明書の更新cron jobの登録
# vim /etc/periodic.conf
-----
weekly_certbot_enable="YES"
weekly_certbot_post_hook="/usr/local/etc/rc.d/SBapache reload"
weekly_certbot_custom_args="--config-dir /sandbox/usr/local/etc/letsencrypt"
-----
  • (おまけ)nagios による証明書期限切れの監視
    • commands.cfg(3週間で注意、7日で警告)
# SSL expiration
define command{
   command_name check_ssl_validity
   command_line $USER1$/check_ssl_validity -I $HOSTADDRESS$ -H $ARG1$ -c 7 -w 21
}
    • localhost.conf
# www.on-sky.net Let's Encrypt
define service{
    :
    check_command       check_ssl_validity!www.on-sky.net
}

2016-09-28 [長年日記]

Security Online Day 2016に参加してきました

ので、復習も兼ねてメモ起こし。

全体的に、対策等をしていてもウィルス感染等のインシデントは発生するので、いざ発生した時に、いかに被害を最小限に収めるかとか、早く気付くかという点がメインテーマになっていた印象でした。

【B-1】基調講演 法が求める情報セキュリティ~法的課題を踏まえた情報漏洩対策とは~

情報セキュリティに関わる法律の整理と付き合い方、注意点など。

法律の分類

  • セキュリティの確立を義務付ける「守りなさい」
    • 個人情報保護法、プライバシー、内部統制、番号法
  • 法律で保護を受けるための条件「これがあれば保護されます」
    • 不正競争防止法の営業秘密
  • 確立に際して踏み外してはいけないこと「やりすぎてはダメ」
    • 労働法、下請法、従業員のプライバシー、通信の秘密
「守りなさい」

他のセッションに譲って割愛

「これがあれば保護されます」
  • 内部統制が重要
  • ガイドラインがいっぱい、、、法律ではないので従う義務はないが、反していると法的リスク有
    • IoTセキュリティガイドライン
  • 法律で保護されている情報(個人情報とか?)と、保護されていないが守りたい情報
  • 後者を「営業秘密」とすることで、不正競争防止法で守る体制を作る(ベネッセもこれ)
    • 例えば、個人情報保護法を守っていなくても、炎上したり法執行されたりすることは稀だが、むしろ営業秘密になっておらず、法律上の保護を受けられない方がダメージが大きい
    • 営業秘密にしておけば、
      • 民事:差し止め請求(準備段階でも可能)や、損害賠償請求
      • 刑事:営業秘密侵害罪(H.27に非親告罪化、両罰規定)
  • 営業秘密の3要件
    • 秘密として管理されている(秘密管理性)
    • 有用な情報である(有用性)
    • 公然としられていないこと(非公知性)
  • 秘密管理性をどうやって立証するかが大変
  • 営業秘密管理指針」というガイドラインがH.27の改訂で良いものになったので、これに従う。あと、秘密情報の保護ハンドブック ~企業価値向上に向けて~
「やりすぎてはダメ」
従業員の締め付けメールの監視労働法違反!!
委託先の締め付け委託先の費用負担でセキュリティ強化を要求独占禁止法違反!!
委託先社員の締め付け偽装請負労働派遣法違反!!? メモ間に合わず自信なし

セキュリティ業務に携わる人は、通信の秘密、著作権侵害、不正アクセスにも注意。

通信の秘密DNSAmp対策でパケット覗く(これは正当行為として認められるだろう)
著作権侵害マルウェア等の解析等(特許権は試験や研究目的であれば除外されているが、著作権の方は形式上は違法状態)
不正アクセスID,パスワードを入力して特定利用可能にした時点で本罪成立

【B-3】特別講演 最近のサイバーセキュリティにおける課題とYahoo! JAPANが取り組む情報セキュリティ対策

前半はYahoo!JAPANのセキュリティ対策体制の話。後半は発散気味なよもやま話。

  • 米Yahoo!の5億件の話。独立してるよ。5年前だよ。
  • Yahoo! JAPANの情報セキィリティ体制
  • 現体制への見直しのきっかけ:2013年の情報漏えいインシデント
  • 手口はその頃から変わっていない
  • 責任者が飛行機に乗っていて対応に遅れが出た→Boardを置いた
  • (当時の状況。撮影禁止)
  • ハッシュ化されたパスワードが盗まれ、解かれているっぽい
  • クレジットカード被害について2014年から偽装カード以外の統計も公開されるようになったところ、なんと半数以上あり深刻な問題
  • 2014/11の中華プロキシ一斉検挙後に被害減少したが、2015の秋の検挙では減らず、他のルートが確立されたか
  • パスワード認証脱却へ向けた動き
  • 生体認証はスマホのセンサー内蔵やアプリへのエコシステム提供で普及。
  • 無くさない、忘れない、ショルダーハックされない等メリットはあるが、変えられない物を使っていいのかというジレンマはある
  • エンタープライズID:SAML2.0, OpenID Connect, SCIM
  • 移動中や出先から会社のメールを読むことが常態化してきた中で、どうやって守るか
  • どんなに優れた製品でもやられる時にはやられるし、逆に優れていて普及した製品ほど標的になりやすい
  • サイバーキルチェーン、OODAサイクル
  • パスワードの定期変更などの常識が変わりつつある
  • 2017年改正個人情報保護法の完全施行、ナチスの国勢調査のトラウマ、日本の図書貸出カード、オーウェル 1984、リトルブラザーによるデータ活用(スーパーがリコメンドに使って炎上)、ビッグブラザーもいた(スノーデン)
  • IoT時代の新たなリスク:空調制御が社内ネットに接続
  • セキュリティ技術者足りない話:いま足りてない人材を育てるのではなく、人材が足りない状況でもうまく回せる技術を開発できる人材を育てるべき。

【A-4】ソリューション講演 高度サイバー攻撃の実態を踏まえ 最先端のCSIRT運用を支えるVMwareのセキュリティ・アーキテクチャとは?

VMware NSXの紹介。CenterCOMのマルチプルVLANをソフトで実現した感じ。

  • サイバーセキュリティ経営ガイドライン。付録B-2だいじ
  • オーストラリア国防省が2014年に発表した施策
    • 利用アプリケーションのホワイトリスト化
    • OSやアプリのパッチマネジメント
    • 管理者権限の管理徹底
  • "フルスペックVDI"による"ITガバナンスの強制"
  • サイバー攻撃の実態:6割が不正フログラム感染、4割が公開サーバ経由
  • CSIRT作っても情報漏えい、経営者激おこ、ログ多すぎて見てらんない問題
  • ダメージコントロール:無害化、最小化、健全化
  • Web, メール利用環境を分離(VDI)
  • ダウンロードファイルの無害化(S&J社ソリューション)
  • エンドポイントゾーンからの接続先をホワイトリスト化
  • クライアント間の通信を禁止(NSX)。サーバに応用してもよい
  • 上記技術を組み合わせたCSIRT運用
    • 侵入されたPCはネットワークの状況把握のためポートスキャンをかけるので、FWでドロップして即時対応
    • FWがドロップかけた瞬間にフルキャプチャに切り替えとかできる
    • こうして見るべきログを劇的に減らしてCSIRTの負担減につなげる

【A-5】ソリューション講演 標的型攻撃はこうして阻止する ~新しいアプローチによるエンドポイントセキュリティ~

パロアルトネットワークス社のTrapsの紹介。名前通りトラップで攻撃的な挙動(ヒープスプレー、DEPの回避、ROP、OS機能の利用)を引っ掛けてブロックする。重そうと思ったら軽いらしいけど指標がCPU使用率ってのがモヤモヤ。あとWildFireサービス落ちたらどうなるのとかやや不安が。

  • エクスプロイトとマルウェア
    • エクスプロイト:正規のアプリケーションで動作し、脆弱性をついてマルウェアの侵入を手助け
    • マルウェア:独立して動き、端末を乗っ取る
  • 入り口対策の限界:IPAのガイド 表2-4:入口での対策の限界箇所
  • エクスプトイトのテクニックをトラップして防御する:ヒープスプレー、DEPの回避、ROP、OS機能の利用
  • 既知のテクニックを使う未知のエクスプロイトを阻止
  • マルウェア制御: WildFireを使い実行ファイルの起動可否を判定
  • WildFireサービス:プロセス(?メモママ)のハッシュ値で初期判定、未知の場合はファイルをアップロードしてサンドボックス環境で実行。15分ほどで解析完了する。
  • 快適:動作が軽い(CPU使用率0.5%以下)、頻繁なアップデートが不要、詳細なチューニング(??)
  • WildFireのマルウェア解析結果は英語らしい。

【A-6】特別講演 もしも社長がセキュリティ対策を聞いてきたら ~経営視点からのサイバーセキュリティ対策~

撮影、録画、録音禁止セッション。デモが際どかったので納得。

  • 翔泳社のイベントで日経BPの本を紹介
  • 「正しく怖がる」ことが大事。自社のビジネスにどう影響があるのか
  • 代表的な勘違い:標的型メール訓練、ウィルス対策ソフト、パスワードで保護
  • メールは開く、ウィルスには感染する前提で
  • 攻撃者の目的が自己顕示から金銭にシフト
  • マネタイズ:直接的な金銭要求(ランサム)、機密情報、パソコンの操作権
  • パソコンの操作権は踏み台として使う→加害者に!
  • うちにはたいした情報無い:スナイパー型は避けられても空爆型の攻撃の的に
  • ランサムウェアに実際に感染してみた:サポートボタン!!1ファイルお試し!!
  • ウィルスの67%は特注品→シグネチャで検知可能なものは33%
  • 脆弱性情報の買取価格やウィルス購入の相場
  • 攻撃者が儲ける体制が出来上がっている
  • セキュリティ対策は、いかに攻撃を受けないようにするか、から、いかに攻撃者の費用対効果を下げるか、へ
  • 車の装備を例にすると、シートベルトとエアバッグが大事(事故るの前提)
  • 6割の上場企業が有価証券報告書にサイバーセキュリティリスクを開示:セキュリティ対策は企業価値を上げる要素になっている(PEST分析)。
  • 攻撃や脅威のデモ
    • 実行ファイルのフォントを右から書くものに変更してexe拡張子を隠す
    • zipの6桁パスワードを0.2秒ほどで解く
  • 対策:実行許可アプリのホワイトリスト化、被害の局所化
  • 詳しくは本買ってね。

【A-7】ソリューション講演 アカウントハッキング対策の最前線!~アカウント振る舞い分析で不正アクセスを検知する~

NRIのUni-ID Identity Fraud Detectionの紹介。Webのアクセスログを解析してリスク判定結果を統計出力したり、API使ってリクエスト属性からリスク判定値を取得する機能とかあるらしい。なんか連携大変そうだな〜と思いました。まる。

【S-1】特別講演 ニッポンの個人情報のいま

「約1年ぶりに戻ってきたプライバシーフリーク・カフェ」

最近の動向
  • 本が出たのは1年前。個人情報保護法もできる前の段階での話で、今となってはもう古い。
  • 個人情報保護法の施行令・施行規則のパブコメがこの8月
  • ガイドラインがそろそろパブコメはじまるか
  • 医学系研究倫理指針の見直しが現在進行中
    • ここだけ提供先基準になっていて大幅な変更になるためおおわらわ
  • 行政機関個人情報保護法の改正法成立(5月)
  • 本などで訴えていた内容が着々と実っている
  • Yahoo! JAPANプライバシポリシー改訂(5月)。べた褒め。
    • 別所先生を今日お招きしたがかなわず。医学系研究倫理指針の会合でもこちらの主張とほぼ同じ意見を出されており、方向性が合致してきた感じ。
    • 「パーソナルデータ」の定義はEUのそれに沿ったもの。ただ「個人情報」については日本の現行法に合わせた別定義。これは将来的に同じものになっていくはずだが、現状の日本法の建てつけもあり仕方が無い。旧ポリシーで「個人情報」と「履歴その他の情報(?)」となっていたのとは大違い
    • ただ、取得と利用目的が別々に羅列されていて、取得項目別の利用目的になっていないのは残念。ただし、ガイドのほうでメジャーなサービスでの取得項目と目的が個別に記述されている
    • 氏名と住所だけ抜いた状態でも、「パーソナルデータ」の提供としてあるのがよい。
      • 今でも氏名と住所さえ抜けば完全匿名化だという主張の弁護士がまだまだいるが、そういう弁護士とのおつきあいは見直したほうがいい。Suica事件を適法だと言っているかどうかで見分けるべし。
      • アメリカのサービスのプライバシーポリシーをアーカイブと比較すると、匿名(anonymized)という単語がどんどん消されつつある。
      • 匿名と仮名の区別の厳密化(?)
    • EU標準(?)をよく勉強してポリシーを作ってる。
  • オリンピックに向けておもてなしアプリが出てくることが予想されるが、日本法だけでなく米国法やEU法にも注意を払う必要がある。
  • 全国万引き犯罪防止機構、ジュンク堂方面
    • 万引き犯の顔画像の共有
    • いろんなところで「漏えい等」が問題と書かれているが、そこじゃない。流通(?)そのものが問題
    • 改正後の個人情報保護法的に完全にアウト。
    • システム開発会社が新聞報道を名誉毀損として裁判。結審。新聞社勝訴。堂々と書いてあったし
    • 判決文で誤登録の取消請求ができない点にわざわざ言及している
    • 同意を取ればいいのか?万引き犯に「ここにサインしろ」と迫って断れるか。リンチでは?
    • ただ、法律の文面上は「財産」の保護のためであれば本人の同意不要となってはいるが、、、
    • また、消費者金融のブラックリストはかつで普通に共有されていた(今は違う)
    • 東京五輪のテロ対策として顔画像との照合みたいな話もある。某大学が実証実験しようとした(未遂?)
    • システム開発会社さんが某展示会に出展していたので見に行った。いまは6ヶ月以内に消すようにして〇〇(?)になるようにして運用している。
  • 医療データの利活用
    • 個人情報保護法が主務大臣の所轄になっているため、ガイドラインが40も乱立。
    • 厚労省だけ提供先基準にしていたため、今まで適法として使っていた情報が突然違法扱いされる事態に。
    • 外国では、医療や学術研究目的の場合は緩やかなルールになっている。
    • 医療分野は特別措置法にするのが筋だが、厚労省が頑なにガイドラインで済ませようとしている
    • 血圧などのライフログや病歴等が追跡可能であることが大事なので、そもそも医療情報は非個人情報かしてはダメなもの
    • 一方、社会保障費削減のために医療データの利活用となると難しい。
    • 「殺せ」って言っちゃったよ。
    • 病気の可能性が高いというデータに基づいて保険料が上がるとか
    • 乳がんの確率が何%と聞いて切除しちゃったとか
    • 品行方正に生きていないと損する社会は嫌ですねぇ
    • プロファイリングをどこまで許すか。
    • 昭和57年発行の「世界のプライバシー法」で「人間疎外」として言及されている。昔の法がむしろ機会による自動分類への抵抗感が強かったのかも。
    • 個人情報保護の本来の目的ってなんだっけ?最近の議論は逸脱して無いか?ちょっと反省。
  • 鈴木氏が理事長になり情報法制研究所を設立。高木氏も参加。
    • 企業は見解や提言を欲しがっているが、行政は断言を避けたがる。一方で学識者は現場を知らない現状があるので、業界と秘密保持結んででも現場の問題をきちんと理解しつつ、政策提言を出していけるような組織を目指す。
    • 8本のタスクフォースが進行中
  • 山本氏、消費者団体準備中
    • 消費者保護団体の有識者となる人材を育て(てくれとお願いされて)る
    • 手を握っちゃだめなので、別々に活動することになるが、お互い頑張りましょう。

2015-05-12 [長年日記]

VMwareのバージョンアップがちょっと大変だった

GW中にホワイトボックス2台のVMware ESXiを5.5 Update2にバージョンアップしたんですが、ちょっと苦労したのでメモ。

3ware 9650SE用のドライバをインストール

サーバの1台は3wareの9650SEを使ってるんですが、どうも公式サポートはESXi 5.1 U3で終わっているらしい。ただ、5.5でも5.1 U3用のドライバで動いたという報告があったので、それにかけてみることに。

が、ドライバがなかなか見つからない。結局LSIのページから[SUPPORT]→[Find Support Documents and Downloads]へと進み、"Storage", "Legacy RAID Controller", "3ware 9650SE-2LP", "Driver"で検索して"VMware ESXi 5.0 update 1 driver for 9650SE/9690SA "をダウンロード。

あとはVMwareホストのsshdを起動して展開したvibファイルをコピーし、

esxcli software vib install -v /tmp/scsi-3w-9xxx-2.27.08.036-1OEM.500.0.0.472560.x86_64.vib

を実行してインストール。再起動すると問題なく動きました。

ストレージの増設

ストレージを1TBx2のミラーから1TBx4のRAID10に増設。

  • 退避用のNFSサーバに接続してvSphere Clientのデータストアブラウザでコピー
  • sshでログインしてcp -rで直接コピー

とかやったんですが、退避用の1TB HDDがなぜか溢れる。理由がわからずVMのイメージを壊してしまうと怖いので、退避用のHDDを2TBにしてコピーし、HDDを換装、新しいRAID10にコピーを戻してなんとか作業完了。

起動後、確認したところ、どうも複数のVMイメージがハードリンクで同じファイルを指していて、コピーすると別ファイルになるため、溢れていたようでした。後知恵ですが、cpに'-d'フラグつけとけば良かったのかも。

仮想ハードウェアのバージョン上げたら設定の編集ができなくなった

書いてある通りなんですが、何も考えずに仮想ハードウェアのアップグレードを実行したら、設定の編集が開かずvSwitchと2nd NICの再構成ができなくなってしいました。いや、こんな説明だと普通は新機能は使えないけどこれまで使えていた設定はできると思うでしょ。

で、調べても使えませんで終わっているページが多い中、最新のUpdate2なら使えるようになるという情報もちらほら。しかしながら、最新版のvSphere Clientのダウンロード先の情報がなかなか見つかりません。ようやく仮想環境エンジニア技術ブログのページダウンロードURL一覧ページへのリンクを発見。

さっそくVMware vSphere Client 5.5 Update 2をダウンロードしてインストール。

エラー 2229。データベース:。SQLクエリのテーブル「LaunchCondition」をロードできませんでした:SELECT 'Condition', 'Description' FROM 'LaunchCondition'。

うーん。

再度ググってvSphere Clientを全てアンインストールしてから再インストール。これで無事設定の編集もできるようになりました。

`green`


本日のツッコミ(全1件) [ツッコミを入れる]

- つっこみ [なんでやねん!]


2015-05-03 [長年日記]

ラズパイとFreeBSDで冗長化サーバ

Raspberry PiとFreeBSDで高可用性サーバの構築という記事を公開しました。普通にサーバで冗長化構成を組もうとするとけっこう高額になりがちですが、ラズパイなら総額で1.5万円もあれば十分です。microSDだと容量や書き換え回数の制限からメールやWebのサーバは厳しいかもしれませんが、USB HDDなど付ければそこそこいけそうな気もします。

写真は会社のセカンダリDNSサーバです。ネットワークケーブルを挿したら反対側が持ち上がっちゃいました(^^;


2015-01-27 [長年日記]

[Ruby] Net::FTP でワンタイムパスワード(OTP)認証

7行コードを追加するだけであら不思議。Net::FtpがOTP対応に。

という訳でレッツモンキー!!

require 'net/ftp'
{~orangered:require 'otp'~}

module Net
    class FTP
        {~orangered:CHALLENGE_RE = /otp-md5 ([0-9]+) ([a-zA-Z0-9]+)\s+/~}

        def login(user = "anonymous", passwd = nil, acct = nil)
            if user == "anonymous" and passwd == nil
                passwd = "anonymous@"
            end

            resp = ""
            synchronize do
                resp = sendcmd('USER ' + user)
                if resp[0] == ?3
                    raise FTPReplyError, resp if passwd.nil?
                    {~orangered:m = resp.match(CHALLENGE_RE)~}
                    {~orangered:unless m.nil?~}
                        {~orangered:otp = OTP.new(m[1].to_i, m[2], passwd, "md5")~}
                        {~orangered:passwd =  otp.to_s~}
                    {~orangered:end~}
                    resp = sendcmd('PASS ' + passwd)
                end
                if resp[0] == ?3
                    raise FTPReplyError, resp if acct.nil?
                    resp = sendcmd('ACCT ' + acct)
                end
            end
            if resp[0] != ?2
                raise FTPReplyError, resp
            end
            @welcome = resp
            send_type_command
            @logged_in = true
        end
    end
end

あとは普通に使うだけ。

ftp = Net::FTP.new("host name")
ftp.login("user","password")
ftp.passive = true
files = ftp.list
files.each do |f|
 puts f
end

はたして需要は有るのか。