Hatena::Groupsubtech

#生存戦略 、それは

-> 16 { 08 / 17 }

Slack アプリで team アイコンが壊れたとき

20:14 | はてなブックマーク - Slack アプリで team アイコンが壊れたとき - #生存戦略 、それは

Windows アプリなら ~/AppData/Roaming/Slack の Cache と GPUCache と消すと直る。異常終了すると時々なるのでメモ。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20160817

-> 16 { 08 / 11 }

Windows10で強制的にカスタムの拡大/縮小率が設定される問題

16:17 | はてなブックマーク - Windows10で強制的にカスタムの拡大/縮小率が設定される問題 - #生存戦略 、それは

Windows10 で、高解像度ディスプレイのためのサイズ倍率だが、赤文字で「カスタムの拡大/縮小率が設定されます」という表示の共、再起動すると毎回意図しない倍率に設定される問題が発生した。めんどくさいことに、これを解除するにはログアウトが必要でカルマが溜まる。

のスレにあるとおりの状況だった。

LG のディスプレイユーティリティ OnScreen Control を入れているのだけど、こいつが起動時に自動で「Windowsのテキストサイズ調整」という機能で、旧来のコントロールパネルからの「カスタムの拡大率を設定」(非推奨)を適用してしまうためだった。

OnScreen Control を起動しないようにしたところ、再起動しても適用されないようになった。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20160811

-> 13 { 11 / 26 }

gerry++

10:20 | はてなブックマーク - gerry++ - #生存戦略 、それは

いつでも必ず入れる個室がある安心感って幸福度に直結しそう。

と久しぶりに個室探して冷や汗ダッシュしたので感じたのでした。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20131126

-> 13 { 02 / 08 }

Rack のセキュリティフィックスと Timing Attack の話し

14:17 | はてなブックマーク - Rack のセキュリティフィックスと Timing Attack の話し - #生存戦略 、それは

さきほど Rack にセキュリティフィックスバージョンが出たんだけど、セキュリティ的に何故に問題があるのかわからなった(Timing Attack をよく解ってなかった) のでメモ。

  • https://github.com/rack/rack/commit/0cd7e9aa397f8ebb3b8481d67dbac8b4863a7f07
  • このコミットで直った。HMAC で生成するハッシュ値の比較チェックを == から別のメソッドで行うようになった。
  • https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L399-L408
  • え、これ戻り値の bool は Ruby の String#== と同一じゃん、なにが問題なんだろう?
  • 攻撃者が指定した digest により、== の比較速度が異なり、HMAC が推測可能になるのが問題
    • これが Timing Attack か!
    • Response Header で X-Runtime を出してると usec 単位で処理時間がばれる
  • secure_compare だとバイト列の比較で最後まで舐めるため、処理速度にばらつきが無くなる

ナルホディウスデスゾ~。mrkn / miyagawa さんに教えて貰った。

なお Rails は

use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore

な別の middleware で処理をしてるため、Rack の影響は受けない、と。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20130208

-> 13 { 01 / 24 }

GitHub Enterprise TechTalk に見る、各社の運用法

09:34 | はてなブックマーク -  GitHub Enterprise TechTalk に見る、各社の運用法 - #生存戦略 、それは

弊社もバリバリ GHE を使ってるので落ちると開発が回らなくなる(pull request できないのは、master に merge できないのとほぼ等価)ので、他社どうやってるのかーと大変気になってたのでしれて良かった。

間違ってたら教えてくだしぃ

  • クックパッド
    • 開発者は GHE へ push, webhook でメインの git サーバに同期
    • GHE の git レポジトリは本番からは利用しない
    • GHE が死んだ場合はメインの git サーバを向けることで継続開発・デプロイ可能
  • はてな社
    • 開発者は GHE に push したり場合により別のサーバに push したり
    • GHE から webhook でミラーリング
    • GHE / 別 git を開発者がうまく使いこなす必要がある。混乱するので git-hatena コマンドを用意してよしなにラップしてる
    • GHE のサーバは Active Standby 構成らしいけどどうやってるのか聞きそびれた!
  • DeNA 社
    • 開発者は GHE へ push
    • GHE から各種 ghe- ツールを使いバックアップ
    • repos は巨大すぎるので ghe- ツールで無くて rsync
      • 某権限でゴニョゴニョ…仮想マシン上のウブンツですし…
    • 構成は Cold Standby 構成
  • - VMWare の仮想冗長化はお値段が…
  • GREE 社
    • 大場さんがんばって(´;ω;`)

というわけで

  • GHE が死んで pull request できなくなると死ぬ
    • DeNA でやってる Cold Standby 構成で
  • 本番に deploy やレポジトリ参照できなくて死ぬ
    • 参照するのは GHE レポジトリで無く別のメインのレポジトリで

が良さそうだナーと思いました。へーしゃも DeNA 社的なアプローチとりたいなぁ。あと GHE も日々進化してるので、そのうちきっと低コストな手法で SPOF が排除される機能がつく…はず…といいなぁ…

あと感想で GHE 使うの苦行だけじゃ、って話しを何件か見たけど、実際 github.com の運用だけで問題ない会社なら

  • github.com を使ったときのセキュリティリスクをとれる
  • github.com が死んでてもなかない

なら、github.com を使うべきですよ。GHE に github.com で実装された機能が入ってくるのにも時差あるし、github .com を使わない理由は無いです。安易に GHE を使うと運用をしっかりしないと死ぬので。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20130124