security

Identity of mysterious login to my bank was household accounts application

今朝、「ゆうちょ銀行からのご連絡」という件名でメールが来ていて、内容は このたびは、ゆうちょダイレクトをご利用いただき、誠にありがとうございます。 合言葉の入力に成功し、ログインが完了いたしましたので、お知らせいたします。 というものでした。身に覚えのないログインだったので一瞬焦ったのですが、家計簿アプリによるものだったので一安心。 この現象にはびっくりする人は多いようで、マネーフォワードの FAQ にも記載がありました。 金融機関・サービス連携|FAQ|家計簿アプリ「マネーフォワード」 FAQ にあるように、金融機関からのログイン完了メールがきた時間と、マネーフォワードの金融機関設定画面からデータの最終取得日を突き合わせることでマネーフォワードからのログインであったかどうかを判断できます。 https://moneyforward.com/accounts こんな感じで確認できます。 感想 たまにしか発生しないので(

digitalocean

Respond to Intel chip vulnerability on DigitalOcean

年明け早々大きな脆弱性が発表されましたね。 Meltdown and Spectre CPUの脆弱性 MeltdownとSpectreについてまとめてみた このブログは DigitalOcean 上で動いているのですが、 DigitalOcean ではどのような対策が取られているのでしょうか。 公式ブログに記事が上がっていました。 A Message About Intel Security Findings 読んでみると Intel やその他ハードウェアベンダーと協力して対策を進めている 1月9日時点では、 DigitalOcean に当てるパッチの検証をしている カーネル側で対応するためのアップデートが各ディストリビューションから出ているので、まずはそれを適用して対策してほしい そのために全ての Droplet で内部カーネルを使えるように設定した と言った感じでした。1月10日現在、まだ DigitalOcean

network

TCP 3 Way Handshake and TLS Full Handshake

最近プロフェッショナルSSL/TLSを少しずつ読んでいます。 一章と二章を読み終わったところで、二章の TLS フルハンドシェイクについて整理してみたくなったので整理します。 また、 TLS より下位レイヤーの TCP 3 ウェイハンドシェイクについても併せて整理してみます。 TLS フルハンドシェイクまでのおおまかな流れ クライアントとサーバが TCP 3 ウェイハンドシェイクを行い TCP コネクションを確立する TCP のペイロード(送信先情報など通信に必要なヘッダを除いたパケット部分)にデータ(より上位のプロトコル等)を乗せて通信できるようになる TCP コネクション上で TLS フルハンドシェイクを行い TLS コネクションを確立する TCP

digitalocean

DigitalOcean released Cloud Firewalls

DigitalOceanにマネージドなファイアウォールが追加されました! ✨ Cloud Firewalls: Secure Droplets by Default 管理画面やAPIから設定できるファイアウォールで、設定はDigitalOceanのネットワーク層で適用されます(フィルタされたパケットはドロップレットまで届かない)。 この機能によってドロップレット毎にiptablesやfirewalldを設定する必要がなくなるのがうれしいですね。 sourceもしくはdestinationにはIPv4, IPv6, タグ, ドロップレット, ロードバランサを指定することができます。tagを指定することで楽かつ柔軟にスケールできそうですね。 terraformでも近いうち実装されそう。 resource_digitalocean_firewall.go: Add DO Cloud Firewalls (#15124) by keinohguchi · Pull Request #1 · terraform-providers/

sshd

Visualize illegal ssh access attempts and access source

/var/log/secureをBigQueryに送り始め、sshdへのアクセスがあるIPアドレスを多い順に集計してみたりしています。 Send secure log to BigQuery Visualization of IP address accessing sshd 今回は日毎にssh接続の試行失敗回数を集計して、それに対するIPアドレスの内訳も出してみます。 こんなクエリを作成してみます。 SELECT LEFT(FORMAT_UTC_USEC(UTC_USEC_TO_DAY(time * 1000000)), 10) AS day, COUNT(

security

Visualization of IP address accessing sshd

/var/log/secureをBigQueryに送り始めました。 Send secure log to BigQuery 1日あたり十数MB分ほどのペースで溜まってきているようです。 これを使って何かしたいなということで、とりあえずsshdへアクセスしてきているIPアドレスを可視化してみます。 sshdへのアクセスのログはFailed keyboard-interactive/pam for root from <IPアドレス> port 46472 ssh2のような感じでメッセージ内にアクセス元のIPアドレスが記録されているので、これを使います。 以下のクエリを使います。 REGEXP_EXTRACTで正規表現に合致した文字列を抽出できるので頑張ってIPアドレスを抽出(数値1~3桁.数値1~3桁.数値1~3桁.

td-agent

Send secure log to BigQuery

/var/log/secureをBigQueryに送ってRe:dashで攻撃っぽいアクセスなどを可視化してみたかったので送ってみました。 準備 /var/log/secureをtd-agentでも読めるようにパーミッションを下げる /var/log/secureがローテートされてもパーミッションが戻らないようにlogrotateの設定を変更する td-agentの設定 td-agentの設定を追加します。 <filter syslog.secure>部分でログの送信元のサーバのホスト名をレコードに追加している # syslog (secure log) <source> @type tail format syslog path /var/log/secure

letsencrypt

Auto renew SSL Certificate with Certbot(Let’s Encrypt)

このブログのSSL証明書はLet’s Encryptという認証局のものを使っています。Let’s Encryptの証明書を使い始めてしばらく経ちましたがいいかんじです。 letsencrypt - ゆるふわキャンパー Let’s Encryptについて Let’s Encryptの証明書は無料で提供されており、certbotという証明書の取得や更新をコマンドで行うことの出来るツールが提供されているのが特徴です。神ってことです。 証明書の有効期限は90日(3ヶ月)と短いですが、コマンド一発で証明書を更新できるのでデメリットではありません。 また、証明書を細かくアップデートしていけるということは常に最新の暗号技術を取り入れた証明書を(Let’s Encryptが追随してくれているので)使えるということであり、度々世間を騒がせている弱い暗号方式を使った証明書によって起きる脆弱性に対しても運用上強いはずです。 certbotをインストールする Let’s Encryptの証明書はcertbotを通じて取得、更新を行うので、

1password

Move existing 1Password to license version

1PasswordをApp Storeで購入した買い切り版からライセンス版に移行しました。 この2つの1Passwordの違いや、移行方法についてメモしておきます。 買い切り版とライセンス版の違い 違いについて全て把握しているわけではありませんが、以下のような違いがあります。 買い切り版 ライセンス版 ブラウザでの管理ページアクセス(1passwordアカウントの利用) ✕ ◯ 2つ以上の保管庫(Vault)の利用 ○(たぶん) ◯ iCloudやDropboxでのデータ共有 ◯ ✕ 1passwordアカウントでのデータ共有 ✕ ◯ ※ iCloudやDropboxでのデータ共有はライセンス版ではできないですがそもそもする必要がなくなるということなので問題ない 値段の違い 買い切り版(OSX版): 約7,000円 ライセンス版: 約300円/月 ライセンス版(Familys): 約400円/月 ライセンス版のプランの比較は以下を参照(個人なら無印ライセンスで充分)。 Pricing

digitalocean

Impact of Cloudflare's incident on DigitalOcean

先週(2017/02/03)、Cloudflareでインシデントが発生しました。 Incident report on memory leak caused by Cloudflare parser bug これを受けて、DigitalOceanからCloudflareのインシデントによるDigitalOceanへの影響について説明する記事が公開されました。 DigitalOcean, Your Data, and the Cloudflare Vulnerability 先に結論 DigitalOceanから顧客データが流出する事態には(DigitalOceanのセキュリティチームによる調査によると)至っていない。 Cloudflareで何が起きたのか インシデントの記事で詳細まで語られていますが、以下のような経緯がありインシデントが発生したようです(訳が雑・間違っている可能性有り

security

Trying out CSP(Content Security Policy)

最近以下のスライドを見てCSPの存在を知り、なんだか良さそうだったので自サイトを実験台に触ってみました。 CSP(Content Security Policy)とは CSPとは、「主にクロスサイトスクリプティング攻撃やデータインジェクション攻撃などを対象とした防御・レポートツール」のようです。 Content Security Policy の紹介 - Web セキュリティ | MDN CSPの仕組み まずサーバ側でcontent-security-policyヘッダを返すように設定します。特別なミドルウェアやツールは要りません。 ヘッダの内容は、ブラウザに対し「サイト内のコンテンツに対するアクセスポリシー」をホワイトリスト形式で羅列したものです。また、使用できるプロトコルもサーバ側から指定することが出来ます。 例えば「全てのコンテンツがhttpsで読み込まれること」といったポリシーが設定できます(このポリシーでmixed contentが検出できそう!

aws

Security-JAWS #3

Security-JAWSに参加してきたメモ!(Security-JAWSはいつも速攻埋まるけどたまたま参加できた) Security-JAWS 【第3回】 流れ。 「CloudHSMって結局なに?~ハードウェアが必要なわけ~」 「AWS IAMとOpenAMを連携してアカウント管理を効率化してみた」 「Amazon Inspectorを補完する - VulsとOWASP Dependency-Checkを組み合わせてプログラミング言語ライブラリの脆弱性スキャン結果を日本語化、Slack通知できるようにしてみた」 LT「EnigmaによるPersonal Data Storeの実現可能性について」 LT「AWSのセキュリティホワイトペーパーまとめ」 「CloudHSMって結局なに?~ハードウェアが必要なわけ~」 CloudHSM自体この会ではじめて知ったし、事前にググってもよくわからなかったけれどなんとなくCloudHSMについて分かった気がする。 CloudHSMとは CloudHSM(Hardware Security Module、暗号モジュール)とはデータの暗号化を提供するAWSのサービス 暗号化のためのキー生成と、