You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

465 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Lednerb">
<meta name="description" content="Bilberry Premium Theme for Hugo.">
<meta name="keywords" content="blog,personal,responsive,search,font awesome,pages,posts,multilingual,highlight.js,syntax highlighting,premium,shortcuts">
<meta name="generator" content="Hugo 0.50" />
<title> [轉貼] 蘋果 iOS 的 Xcode Ghost 事件 | My cool new Blog</title>
<meta name="description" content="[轉貼] 蘋果 iOS 的 Xcode Ghost 事件 - Bilberry Premium Theme for Hugo.">
<meta itemprop="name" content="[轉貼] 蘋果 iOS 的 Xcode Ghost 事件">
<meta itemprop="description" content="[轉貼] 蘋果 iOS 的 Xcode Ghost 事件 - Bilberry Premium Theme for Hugo.">
<meta property="og:title" content="[轉貼] 蘋果 iOS 的 Xcode Ghost 事件">
<meta property="og:description" content="[轉貼] 蘋果 iOS 的 Xcode Ghost 事件 - Bilberry Premium Theme for Hugo.">
<meta property="og:image" content="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?size=200">
<meta property="og:url" content="https://h.cowbay.org/article/e8-bd-89-e8-b2-bc-e8-98-8b-e6-9e-9c-ios-e7-9a-84-xcodeghost-e4-ba-8b-e4-bb-b6/">
<meta property="og:site_name" content="My cool new Blog">
<meta property="og:type" content="article">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-16x16.png" sizes="16x16">
<link rel="stylesheet" href="https://h.cowbay.org/sass/combined.min.717098cb5503581e75f12e486a847ca410bf8367d4d8713f4c37affc868c5a1d.css">
</head>
<body class="bilberry-hugo-theme">
<nav>
<div class="container">
<ul class="topnav">
<li><a href="/page/about-bilberry/">About Bilberry</a></li>
<li><a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Github</a></li>
</ul>
<div id="search-box" class="search">
<i class="fa fa-search"></i>
<input id="search" type="text" placeholder="Search ...">
</div>
</div>
</nav>
<header>
<div class="container">
<div class="logo">
<a href="/" class="logo">
<img src="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?d=mm&size=200" alt="">
<span class="overlay"><i class="fa fa-home"></i></span>
</a>
</div>
<div class="titles">
<h3 class="title"><a href="/">My cool new Blog</a></h3>
<span class="subtitle">Hello World! This is the most epic subtitle ever.</span>
</div>
<div class="languages">
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
<div class="toggler">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</div>
</header>
<div class="main container">
<div class="article-wrapper u-cf single">
<a class="bubble" href="/article/e8-bd-89-e8-b2-bc-e8-98-8b-e6-9e-9c-ios-e7-9a-84-xcodeghost-e4-ba-8b-e4-bb-b6/">
<i class="fa fa-fw fa-pencil"></i>
</a>
<article class="default article">
<div class="content">
<h3><a href="/article/e8-bd-89-e8-b2-bc-e8-98-8b-e6-9e-9c-ios-e7-9a-84-xcodeghost-e4-ba-8b-e4-bb-b6/">[轉貼] 蘋果 iOS 的 Xcode Ghost 事件</a></h3>
<div class="meta">
<span class="date moment">2015-09-22</span>
<span class="categories">
<a href="/categories/%E6%9C%AA%E5%88%86%E9%A1%9E">未分類</a>
</span>
</div>
<h4 id="1-因為中國網路長城的關係-造成很多中國使用者-習慣在-中國區網-內下載東西-沒有什麼警覺性">1.因為中國網路長城的關係,造成很多中國使用者,習慣在「中國區網」內下載東西,沒有什麼警覺性。</h4>
<h4 id="2-希望真的只是場實驗-因為我也中招了-名片全能王">2.希望真的只是場實驗,因為我也中招了&hellip;.(名片全能王)</h4>
<p>&nbsp;</p>
<h1 id="原文連結-http-3c-ltn-com-tw-news-20584-page-1">原文連結:<a href="http://3c.ltn.com.tw/news/20584?page=1">http://3c.ltn.com.tw/news/20584?page=1</a></h1>
<h1 id="ios-app-病毒爆發-原來只是場-實驗">iOS App 病毒爆發! 原來只是場「實驗」?</h1>
<p><div class="writer">文/記者譚偉晟/ 2015-09-21 12:51</div>
<div class="writer"></p>
<p>一個中國 iOS 的開發者,透過 Apple 的漏洞植入了名為「Xcode Ghost」的代碼進一步透過 App 竊取用戶資料,糟糕的是已經有部份 App Store 上的 App 已經被感染,目前 Apple 已經開始清理這些被影響的 App而這件事情的開始卻僅僅只是開發者的「實驗」</p>
<p><span class="ph_b ph_d1 "><span class="ph_i"><img src="http://img.ltn.com.tw/Upload/3c/page/2015/09/21/150921-20584-1.jpg" alt="" /></span></span></p>
<p><span class="ph_b ph_d1 "><span class="ph_d">iOS App 爆發病毒感染,原因是出在 Xcode 這個開發者工具(圖片來源/路透社)</span></span></p>
<p>對此大家不妨先弄清楚這整件事情的來龍去脈。以下分別從感染方式、事件始末、以及其他後續這三個部份說起,如果 iOS 用戶擔心已經安裝到被感染的 App可以參考這篇文章<a href="http://3c.ltn.com.tw/news/20572">iOS App 大爆漏洞!一次中招 344 款 App</a>),來查看清單並確認手機中的 App 是否有問題。</p>
<p><span class="ph_b ph_d1 "><span class="ph_i"><img src="http://img.ltn.com.tw/Upload/3c/page/2015/09/21/150921-20584-2.jpg" alt="" /></span></span></p>
<p><span class="ph_b ph_d1 "><span class="ph_d">其中不乏之名的 App 受到感染(圖片來源/彭博)</span></span></p>
<p>要搞清楚這個 iOS 爆發的重大病毒災情首先得從「Xcode」這個項目說起。Xcode 是由 Apple 推出的開發工具,運行在 Mac OS X 上,是目前 Apple 開發者製作 Mac OS 和 iOS 應用程式的主要方式。而這次爆出的 iOS App 感染病毒事件是由於一個名為「Xcode Ghost」的代碼。</p>
<p>透過這個代碼,受感染的 App 可以上傳各種加密的數據到指定的伺服器,目前已知會上傳的內容包含 App 版本、App 名稱、使用語言、iOS 版本、設備類型等語裝置有關的訊息。在這裡得先提一下,事件發生後該代碼作者出來澄清,表示這次感染的目的只是為了「實驗」,而非為了竊取用戶的個人資 料。</p>
<p>然而,這場「實驗」確實暴露了 iOS 所存在的嚴重安全問題。假使今天有駭客惡意使用了這項漏洞,將會使用戶的手機被控制,嚴格來說甚至能夠控制整支手機!而這個病毒的感染模式是這樣的:</p>
<ol>
<li><span style="color: #ff0000;">含有 Xcode Ghost 惡意代碼的 Xcode 工具,放在開發者社群供人下載,由於沒有上架到 App Store所以無法被 Apple 查驗。</span></li>
<li><span style="color: #ff0000;">其他開發者依照這個工具設計 App並且發布到 App Store 供一般用戶下載。</span></li>
<li><span style="color: #ff0000;">開發者或一般用戶安裝後Xcode Ghost 開始運作。竊取手機中的資料上傳指定伺服器。</span>
目前 Xcode Ghost 號稱只有做到傳送設備資訊等與個資無關的訊息,但據了解一旦該漏洞是被有心人使用,就可以透過 openURL 這個 API遠端遙控被感染的 iPhone 中打電話、開啟網頁、甚至操作第三方 App也可以在遠端遙控手機讓手機彈出對話窗口誘騙用戶回答「密碼多少」這類敏感問題</li>
</ol>
<p></div>
事件是從 9 月 12 日開始的,最初是由一名稱做「@唐巧_boy」的人在微博張貼了一個訊息告訴大家在非官方管道下載的 App被植入的第三方代碼會向特定網站上傳資料。</p>
<p><span class="ph_b ph_d1 "><span class="ph_i"><img src="http://img.ltn.com.tw/Upload/3c/page/2015/09/21/150921-20584-3.jpg" alt="" /></span></span></p>
<p><span class="ph_b ph_d1 "><span class="ph_d">一名用戶在微博上表示,在 App 內發現惡意代碼接著病毒感染事件逐漸擴大圖片來源wooyun</span></span></p>
<p>接著就有更多用戶進行檢查也發現許多由迅雷下載的檔案當中也有許多內藏這個代碼對此「烏雲漏洞平台」將這個病毒樣本命名為「XcodeGhost」並且發現他會收集大量 iPhone 和 App 的基本訊息。</p>
<p>而事件逐漸擴大,多款知名 App 也被爆出受到感染像是微信、我叫MT、網易雲音樂、滴滴出行等中國 App 佔絕大多數。其中有多款已經在 App Store  上,可讓一般用戶直接下載、進一步安裝用戶裝置!接著包含 Palalto、阿里移動安全等資安公司都發布了分析報導。</p>
<p>在 9 月 19 日凌晨,這個名為 Xcode Ghost 的病毒設計者現身,發出公告表示這一切只是一個意外的發現,而所謂的「病毒」只是自己的小小實驗。此外在公告中也已經澄清這個代碼將會死去,之後也被人發現上傳資料的網站已經關閉。</p>
<p><span class="ph_b ph_d1 "><span class="ph_i"><img src="http://img.ltn.com.tw/Upload/3c/page/2015/09/21/150921-20584-4.png" alt="" /></span></span></p>
<p><span class="ph_b ph_d1 "><span class="ph_d">該病毒作者公開表示這僅僅只是一場「實驗」而已沒有惡意圖片來源wooyun</span></span></p>
<p>而在 9 月 21 日Apple 正式做出回應,強調目前有問題的 App 已經被刪除。該公司正在對 App Store 進行清理,移除有問題的 App。手機用戶也建議盡速移除有問題的 App並且修改 iCloud 密碼。Apple 也將持續與開發者溝通,確保開發者使用正確的 Xcode 工具開發應用程式。</p>
<p><span class="ph_b ph_d1 "><span class="ph_i"><img src="http://img.ltn.com.tw/Upload/3c/page/2015/09/21/150921-20584-5.png" alt="" /></span></span></p>
<p><span class="ph_b ph_d1 "><span class="ph_d">Xcode 病毒事件爆發後,各國開發者對可以繞過 Apple 官方工具,逕行開發 App 的開發者很不滿圖片來源Apple</span></span></p>
<p><span style="color: #ff0000;">會造成 iOS 裝置被病毒大量感染,最根本的原因其實是因為中國網路長城的關係。由於網路長城的管控,中國地區開發者如果透過 Apple 官方網址下載 Xcode 工具,會因為網路太慢而耗費大量時間,因此多半會改用迅雷網盤、百度網盤上其他開發者分享的檔案。</span></p>
<p><span style="color: #ff0000;">因此開發者會誤用帶有病毒的開發工具,所設計出來的 App 自然也被感染。這對於一直主打安全性的 Apple 無疑是個重擊,更令人憂心的是連 App store 的 App 的無法確保安全,將會讓用戶對其裝置的信任感大幅降低。</span></p>
<p>不少開發者表示對於這類會傷害用戶信任的開發者Apple 應該全面剔除,否則將會為危害到 App store 的信譽。而選擇要擁抱中國市場的 Apple ,也必須調整對中國開發者的策略,否則這個會影響全球 iOS 裝置的病毒事件,或許會成為其他國家開發者抵制 Apple 的理由。</p>
</div>
<div class="footer no-tags">
</div>
</article>
</div>
<div id="disqus_thread"></div>
<script type="application/javascript">
var disqus_config = function () {
};
(function() {
if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
return;
}
var d = document, s = d.createElement('script'); s.async = true;
s.src = '//' + "bilberry-hugo-theme" + '.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<footer>
<div class="container">
<div class="recent-posts">
<strong>Latest posts</strong>
<ul>
<li>
<a href="/article/google-550-5-7-1-sloution/">寄信給google被退信 錯誤 550-5.7.1的解法</a>
</li>
<li>
<a href="/article/netdata-linux-system-performance-monitor-dashboard/">Netdata Linux System Performance Monitor Dashboard</a>
</li>
<li>
<a href="/article/linux-performance-monitor-dashboard-netdata-md/">Linux 底下極其詳細的System performace Monitor Dashboard - Netdata</a>
</li>
<li>
<a href="/article/syntax-test/">Syntax Test</a>
</li>
<li>
<a href="/article/psql-create-role-and-assign-priviledges/">psql create role and assign priviledges</a>
</li>
<li>
<a href="/article/study-url/">Study URL</a>
</li>
<li>
<a href="/article/rsync-time-backup/">[筆記] Linux 底下好用的備份工具 rsync-time-backup</a>
</li>
</ul>
</div>
<div class="categories">
<a href="/categories/"><strong>Categories</strong></a>
<ul>
<li>
<a href="/categories/%E6%9C%AA%E5%88%86%E9%A1%9E">未分類 (86)</a>
</li>
<li>
<a href="/categories/%E5%B7%A5%E4%BD%9C%E7%AD%86%E8%A8%98">工作筆記 (68)</a>
</li>
<li>
<a href="/categories/%E5%85%B6%E4%BB%96">其他 (46)</a>
</li>
<li>
<a href="/categories/%E7%AD%86%E8%A8%98">筆記 (30)</a>
</li>
<li>
<a href="/categories/%E5%89%AA%E5%A0%B1">剪報 (18)</a>
</li>
<li>
<a href="/categories/starting">Starting (5)</a>
</li>
<li>
<a href="/categories/blog">Blog (4)</a>
</li>
</ul>
</div>
<div class="right">
<div class="external-profiles">
<strong>Social media</strong>
<a href="https://twitter.com/TheRealLednerb" target="_blank"><i class="fa fa-twitter-adblock-proof"></i></a>
<a href="https://github.com/Lednerb" target="_blank"><i class="fa fa-github"></i></a>
</div>
<div class="languages">
<strong>Other languages</strong>
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
</div>
</div>
</footer>
<div class="credits">
<div class="container">
<div class="copyright">
<a href="https://github.com/Lednerb" target="_blank">
&copy;
2017
by Lednerb
</a>
</div>
<div class="author">
<a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Bilberry Hugo Theme</a>
</div>
</div>
</div>
<script type="text/javascript" src="https://h.cowbay.org/js/externalDependencies.39c47e10e241eae2947b3fe21809c572.js" integrity="md5-OcR&#43;EOJB6uKUez/iGAnFcg=="></script>
<script type="text/javascript" src="https://h.cowbay.org/js/theme.ff50ae6dc1bfc220b23bf69dbb41b54e.js" integrity="md5-/1CubcG/wiCyO/adu0G1Tg=="></script>
<script>
$(".moment").each(function() {
$(this).text(
moment( $(this).text() )
.locale( "en" )
.format('LL')
);
});
$(".footnote-return sup").html("");
</script>
<script>
var client = algoliasearch("Y2C4RWMPXW", "50ea7f8c41c0ad233926e0be2b769ed1");
var index = client.initIndex("default-content");
$('#search').autocomplete({ hint: false, autoselect: true, debug: false },
[
{
source: $.fn.autocomplete.sources.hits(index, { hitsPerPage: 5, filters: 'language: en' }),
displayKey: function(suggestion) {
return suggestion.title || suggestion.author
},
templates: {
suggestion: function(suggestion) {
return "<span class='entry " + suggestion.type + "'>"
+ "<span class='title'>" + suggestion.title + "</span>"
+ "<span class='fa fa-fw " + suggestion.iconClass + "'></span>"
+ "</span>"
;
},
empty: function() {
return "<span class='empty'>Nothing found.</span>"
},
footer: function() {
return '<div class="branding">Powered by <img src="https:\/\/h.cowbay.org\/dist\/algolia-logo-light.svg" /></div>'
}
},
}
])
.on('autocomplete:selected', function(event, suggestion, dataset) {
window.location = (suggestion.url);
})
.keypress(function (event, suggestion) {
if (event.which == 13) {
window.location = (suggestion.url);
}
});
</script>
</body>
</html>