2014年1月30日

@NというTwitterアカウントを乗っ取られた人の話

英語ですがセキュリティに興味がある人はぜひ一読を。

How I Lost My $50,000 Twitter Username

やっぱり電話によるハッキングから始まっているみたい。

要約すると、

  • @NというTwitterアカウントの乗っ取りを狙った攻撃者がPayPalに電話してクレジットカード番号の下4桁を聞き出す。
  • その後ドメインレジストラであるGoDaddyに電話してその上の2桁を推測。(GoDaddyの担当者は正解に至るまで何回でも推測させてくれたとの事。) 
  • 正解してクレジットカードの下6桁が分かった時点でドメインの管理者としてGoDaddyの管理画面にアクセス出来たので、MXレコードを変更する事によってEmailサーバーを自分の管理下にあるものに変更し、Emailアカウントを乗っ取った。
  • その後このメールアドレスで登録していたFacebookアカウントも乗っ取られる。
  • Twitterアカウントは別のメールアドレスにしていたため乗っ取られはしなかったが、犯人から取引を促すメッセージが来て最終的にはそれに応じるしか選択肢が無かった、と。



教訓1

独自ドメインのEmailアドレスを各種サービスのログイン用のアドレスとして使うのは避けた方が良い。(もしドメインが乗っ取られたら全部やられる。)


教訓2

独自ドメインのDNSレコード(特にMXレコード)のTTL値は長め(1週間程度)にしておいた方が良い。(ドメインが乗っ取られてもTTLがExpireするまではまだ正規のEmailサーバーにメールが届く可能性が高いので。)


う〜ん、なるほど。


しかしPayPalもGoDaddyもそんなに簡単に電話で情報を教えるのか、という点に驚く。犯人のソーシャルエンジニアリングの技術が高かったというのはあるにしても。

PayPalに登録してあるクレジットカード番号はやっぱり消しておこう。GoDaddyは多分一生使わない。






 

2014年1月15日

無料で容量無制限の GitLab Cloud いいね!

Gitリポジトリの個人用ホスティング環境としてはずっと Bitbucket を使っていて、これはこれで全く不満なくとても便利に使わせてもらっている。

ただ今日は他にもこんな選択肢がある事を知った。

GitLab.com | GitLab Cloud 



こっちの方が Bitbucketよりもさらに制限が少なそうなので、今度試してみよう。

GitHubの代替ツールとして、完全無料のGitLab Cloudを試す - プチ技術メモ 
xcodeのprojectをgithubではなくgitlab cloudにpushする方法 - diary of a withdrawal 






.

2014年1月8日

2年前に作ったAndroid用オセロゲームを真面目に改善した時のメモ


コンピュータの思考ルーチンの強化


得点テーブルを使うのは序盤のみ。
自分の全滅は最低の評価、相手の全滅は最高の評価。

中盤は独自の評価関数を使う。
  •   自分が打てる場所を多く、相手の打てる場所を少なく。
  •   確定石のプラス評価。
  •   Wingのマイナス評価。
  •   X打ち、C打ちのマイナス評価
終盤は完全読み切り。
ゆらぎ(Randomness)の実装。(毎回同じ手を打たない様に。)

Javaコードのパフォーマンス改善


盤面のオブジェクトを手番が進むたびにコピーする代わりに、事前に60要素の配列を準備して入れておく様に変更。
これだとUndoして一つ前の状態に戻すには配列のインデックスをマイナス1するだけ。

盤面の状態を表すのにオブジェクトの配列ではなくintの配列を使う。(System.arraycopyが使えるので高速。)

オブジェクトの生成を極力避ける。
  •  Pointオブジェクトは最初にnewしてset()メソッドで使い回す。
  •  ArrayListは最初にfinal修飾子付きでnewしてclear()で初期化して使い回す。

ループの終了判定に.size()や.lengthを参照しない。


広告の表示方法への工夫


ゲーム中は表示せず、終了後にふわっと現れる様に。


UIの改善


コンピュータ思考中のプログレス表示と処理中アイコン表示を追加。


JUnitを使った単体テスト


思考ルーチンのデバッグには単体テストが不可欠だった。




以上