無分類雜文 03 Mar 2009 04:48 pm

推到 Twitter!
推到 Plurk!


[閒聊] 一些管服務的基本安全細節 — 以 Twitter 為例



應該前陣子大家對於 twitter.com 被駭客入侵的事還記憶猶新吧。
根據相關報導以及 Youtube Video 的內容:駭客先用字典檔暴力測出 staff 的密碼,然後登入 Twitter,而 Twitter 這麼大規模的站台,竟然把 admin panel 做在 public access 到的區域,然後就這樣淪陷了。(詳見 Video 右下方)

此事一被公開,Twitter 頓時淪為眾人的笑柄 XD

事情就這樣過去了嗎?

顯然還沒有,今天稍早筆者與 @othree@gslin 在閒聊, @othree 赫然發現 admin.twitter.com 是真實存在的 subdomain,而且只用 http auth + https 保護住。

我跟推友手賤翻找了一下,還找出

* svn.twitter.com
* git.twitter.com
* trac.twitter.com
* mysql.twitter.com ( 我猜這台應該是 phpmyadmin 之類的管理介面吧)

統統都是相同的情形,令人對 twitter.com 的 tech staff 相當的 orz。

這樣有什麼問題呢? 基本上 twitter 遺漏了幾個相當基本的安全觀念:

1. 你不應該把你的管理介面放在 internet 可以 acesss 的地方

比較建議的方式是就算有必要,前面也要使用防火牆阻擋。或乾脆管理機器只能放在內網,連 VPN 回來管。
尤其是之前大家都知道你可以用字典檔攻擊而且你根本也沒在防的時候 …

2. 你不應該用服務名當 sub domain 或 directory name

是的,很多人有這個習慣,這個習慣對管站相當便利。不過如果駭客想摸你的機器,照著命名慣例摸一摸,很容易就把你的幾個內部開發用服務(svn,git,trac)一路摸出來。不過通常大家最喜歡摸的就是摸 phpmyadmin, phpMyAdmin。

(若你是小網站,為了貪管理方便,偶爾做做無妨。只不過 twitter.com 這麼大了還犯這種低級錯誤….orz)

3. 你不應該把你的重要機器放在 internet 上並且以 service 名稱取名

例如 mysql server,你就不應該取名叫 db1.xxxx.com ,並且將它放在 internet 上。這樣做有什麼風險呢?大家都知道你的 db 是哪一台,打掛它你的網站就掛了啊 -_-

4. 應該儘量避免把 admin 管理介面跟 service 做在一起

小服務為了管理方便,這樣做當然無所謂。而且分開有分開的開發/管理成本考量。

但是如果你的 service 大了之後,你就必須考慮樹大招風,一天到晚有閒著沒事幹的 cracker 想搞你,這類討厭的事。權限控管一沒做好,被拿到一個權限很大的 admin 帳號,就會被玩免錢。上這一點也是 twitter 上次入侵事件的主因。

一路看下來,還真是讓人對 Twitter ….orz 啊。

Creative Commons License

12 Responses to “[閒聊] 一些管服務的基本安全細節 — 以 Twitter 為例”


  1. on 03 Mar 2009 at 5:28 pm 1.小歪 said …

    有沒可能是故意的 XD ,
    弄幾個假domain/假服務晾在那邊吸引hacker/cracker火力
    (我好像想多了..) 囧rz..

  2. on 03 Mar 2009 at 5:29 pm 2.willy said …

    我還是支持推特(挺)

  3. on 03 Mar 2009 at 8:46 pm 3.Nick said …

    精彩, 好知識要學起來

  4. on 03 Mar 2009 at 9:51 pm 4.Mr.Friday said …

    我覺得這應該是基本常識耶…….

  5. on 03 Mar 2009 at 9:52 pm 5.sntw said …

    這些基本安全知識,學校不知道有沒有教授呢…

  6. on 04 Mar 2009 at 1:29 am 6.appleboy said …

    嗯嗯,的確,在大型網站
    這些知識都必需要有,算是蠻基本的

  7. on 04 Mar 2009 at 1:35 am 7.宅男 said …

    果然被殺很大….XD

  8. on 04 Mar 2009 at 7:30 am 8.willy said …

    一樓說的好,有沒有人去攻攻看(誤)?說不定只空有附網域,結果攻擊會轉到丁丁大站等等…

  9. on 04 Mar 2009 at 12:46 pm 9.joe said …

    1. 你不應該把你的管理介面放在 internet 可以 acesss 的地方。

    access
    有錯字,我想是手誤

  10. on 04 Mar 2009 at 1:17 pm 10.拆組達人 said …

    這個算網路安全的基本常識,只有網路安全的相關課程「通通都會提到」,我想主要原因是因為「懶」!因為搞這個防那個的很麻煩,說推特管理者沒有這方面的常識,我不大相信!

    辦公室的大小事全至拆組達人
    http://ieg.twbbs.org/

  11. on 06 Mar 2009 at 10:53 am 11.Twitter Search功能上線──看看誰在Twitter上討論你? - MMDays said …

    [...] 網址…非常的好猜,看過xdite這篇文章的人應該沒幾秒就猜得出來。沒錯,就叫做http://search.twitter.com 。 [...]

  12. on 21 Apr 2009 at 2:15 pm 12.hoamon said …

    > 1. 你不應該把你的管理介面放在 internet 可以 acesss 的地方。
    > …
    > 4. 應該儘量避免把 admin 管理介面跟 service 做在一起。

    針對這兩點,我認為有個折衷的方法:使用 PGP key 來作登入認證。其方法類似 ssh-server 的公私錀登入方式,一開始就把個人公錀指定給某管理帳號,當該帳號要登入時,必須使用個人專屬私錀針對伺服器所要求的字句作簽章,驗證後才可登入,可以一來密碼強度有大幅提昇的效果,再來開發及系統管理成本並不會增加多少。

    我有實作一個 Demo 站台,請上 https://pgpauth.hoamon.info/

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply