TechEd 2008台湾笔记|Day 1。这是台湾一位MVP参加TechEd 2008台湾会议之后写下的简要课程笔记,可以让大家提前了解一些TechEd 2008的课程内容。我挑选一些内容给大家转贴过来。全文一共有三篇,这是第一篇。
【Keynote Speech】
主要在推銷Win2008/SQL2008,聽到幾個對我較有吸引力的特色:
- SQL 2008: 可設Policy,檢查或禁止某些Schema設計。
- SQL 2008: 可區隔出不同[Resource Pool],設定不同的可用CPU比率,讓重要的查詢不要被其他吃重查詢給拖垮了。
- SQL 2008: 新增Streaming(多媒體串流)及Geogrpahy(地理)資料的支援。 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- SQL 2008: 資料儲存及備份可做壓縮節省時間
- SQL 2008 Reporting Service可匯出Word格式。
- Report Designer 2.0新增很多Templates(如: 溫度計顯示)、Excel有新的BI Addin,不用匯資料到DB就可以做Data Mining。
以下是今天四堂課我覺得新鮮的重點: (曹祖聖老師的投影片大約一週後可以到http://teacher.syset.com/下載)
【Vista技巧】
- slmgr.vbs -ato 網路啟動, -rearm 多要60天啟動前試用(限一次)
- 可備份成.vhd,掛到VM下。[vhdmount]
- 幾個好用的快速鍵: Win+U Easy of Access Center輕鬆存取中心、Win+Break 系統畫面
- msg username messageContent可以取代以前的net send,彈出訊息,走的是Terminal Service的管道
- 取消使用者按右鍵"以管理者身份執行"的選項,Regedit: [HideRunAsVerb] 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- shell:SendTo,開啟傳送到的設定路徑,可以自訂接受一個參數的執行檔捷徑。shell:Blah有一缸子的路徑簡碼
- Vista RTM的開機畫面可以自訂,但SP1後已禁止。[winload.exe.mui, Vista Boot Logo Generator, msconfig no GUI boot]
- Vista中有些檔案的Owner是TrustedInstaller,連Admin都不准改。
- 登入畫面也可自訂。[Logon Studio Vista]
- 呼叫控制台項目: rundll32.exe, control.exe,例如:
control timedate.cpl
control /name Microsoft.System
control ncpa.cpl 網路設定 <-- 這個好用,原本要點好幾下才出得來
【2008-10-07更新】MS有篇KB有更完整的提示,謝謝網友srv補充!
- 控制台項目也可DIY。[InfoTip, System.ApplicationName, System.mControlPanel.Category]
- Vista安裝時會將整個安裝片解壓到HD上,故會吃到6G,好處是將來都不會再用到光碟片。要減肥可考慮移去Windows\SoftwareDistribution\Download(下載更新,約1.8G),System32\DriveStore\FileRepository(各種驅動程式,約1G)、Windows\Installer(安裝檔備份,但移了可能AP Icon不見或反安裝有問題)、Windows\SxS(才500M,移掉後遺症多,不值) 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- [vlite]可製作Vista安裝光碟,移去不要的安裝項目、設定安裝的選項、加上Service Pack/Hotfix,甚至可以縮到可放入CDROM的大小(500M)。[nlite for XP]
- Vista SP1 效能有改進。[Principled Technologies benchmark, Cache IO Model, SMB1.0]
- Ready Drive/ReadyBoost改良,Sleep/還原變快
- Windows Defender/Software Explorer可以檢視程式連線狀況 <--可以協助發現木馬/後門
- Windows Performance Toolkit,可以找出效能不好/開機太慢的元凶。[xperf, xperfview, xbootmgr]
- KB929868(某些網站不支援RFC1323,Vista瀏覽特慢)、網路芳鄰看到不XP[Link Layer Topology Discovery, LLTD]
【.NET 3.5 Security】
- 必備常識: Code Access Security (CAS)、Evidence Based、Attribute法/Coding法
- .NET 3.5 Support新的WS-Security標準、採用美國官方Suite-B/CNG建議的加密演算法
- ClickOnce會認部署網站的簽章,防止被假冒[Manifest Signature Information]
- .NET 3.5: FullTrust App不再每次檢查StrongName以加快效能,LocalIntranet視為FullTrust
- OS層級保護: Vista/Windows 2008 User Access Control(UAC)、Address Space Layout Randomization(ASLR)防止被惡意程式掌握篡改、BitLocker全HD加密(防止被裝到不同機器上,但對同機器上的程式無效)、Pointer Obfuscation、CPU的Data Execuation Provention(NX) 、常識: 緩衝區溢位攻擊、C++ Compile with /GS在Stack加上Random Cookie防護緩衝區溢位攻擊... 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- 重要資料放在記憶體中時特別處理: ProtectedMemory(XP+ API)、ProtectedStorage(Win2000+ API)、SecureString、IsolatedStorageFile
- RNGCryptoServiceProvider-->比傳統Random更安全,無法被預測
- Security Token Service(STS)的觀念,利用第三方的證明認證身份/授權。例如: 用身份證明買到機票、登機時認機票。
- 網頁設計時可用Card Space取代帳號/密碼登入 [<object type="application/x-informationcard">, TokenProcessor, 說明]
- 將SID轉成使用者名稱 [FileSecurity, NTAccount Class]
- WCF傳輸加密 [SecurityMode.Message, MessageCredentialType.Certificate]
- .NET 4.0 "Oslo"
【Server Core】
- 無GUI、服務精簡的Windows 2008版本,穩定、效能好、安全(被攻擊面小)
- 適用DNS、File Server、DHCP、IIS(不含ASP.NET)、AD、Printer Server、Hyper-V等內建服務,不能用來跑SQL、Exchange,不支援PowerShell、.NET Framework(那就沒搞頭了,但據說可以安裝,但官方不支援)
- 開機後的UI是螢幕中間一個DOS Command視窗,有少量GUI: Noptpad、國別時間設定、RegEdit、Task Manager 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- 大部分要透過指令設定,但有善心人士開發的工具[CoreConfigurator]
- 中文版Server Core有很多指令參數要翻成中文譯名,建議安裝英文版較佳
- 設好防火牆,就可以用Remote Desktop、MMC、WinRS、WinRM進行遠端管理
- 好用的指令: netsh advfirewall
- 用Vista管理Windows 2008的工具: Remote Server Administration Tool, RSAT
- RemoteApp: 透過Terminal Service設定,可以在遠端執行某個特定程式,再將UI傳回來
- 似乎沒防毒軟體可用
【以駭客角度看企業安全】
課程主軸不太明顯,但有幾個Demo挺驚悚的,速記幾個重點:
- 留意原本認為不可能發生問題之處,當真正發生時,傷害特別大(料想不到,故無防備)。例如: HD整顆被偷走? 新買的HD中有木馬?
- 端點(如: 個人使用的PC)其實是很脆弱的,裝了防毒不代表安全,而端點內資料的機密度並不亞於伺服器上的資料(Source Code、Connection String、Username/Password),許多攻擊會選擇從端點下手,再拼湊出進行下一步攻擊的所需資訊。 您看到的内容来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- Demo: U3 USB行動碟部分儲存空間摸擬成CD-ROM,導致其中躲藏的木馬就算被防毒掃到也刪不掉(CD-ROM唯讀),進行滲透可盜走IPConfig、SAM、Cookie、Browsing History(去過哪些網站,有Cookie說不定可以自動登入,或由到訪網站蒐集受害者的情資)、Hotfixes(沒上的就可以拿來攻擊)、Service List(有哪些Port可以連結?)、最近開啟的文件,木馬可將這些資料通通Copy回行動碟上。這一切只要一個插入USB動作就可完成!
- Demo: 設計製作精美的假程式安裝片寄到公司->總機/收發交給RD人員->RD人員拿到新軟體,迫不及待看看->中鏢!!
- Demo: 印刷精美的影音光碟,插入電腦後自動播放,木馬程式表面上播放影片,同時間正在偷資料、打包、寄出...
【IE8的企業應用考量】
- IE8多了Domain Hightlight,URL中的Domain Name會深色顯示、信任網站的網頁Tab會呈現綠色
- IE7 ActiveX Opt-In(詢問User要不要用ActiveX Control) 、ActiveX Kill Bits(經原開發廠商同意,禁用某個ActiveX Control) 您看到的内容来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- IE8 Per-User ActiveX(只對某個人開放使用) 、Per-Site ActiveX(有危險性的Control可標示只能在某站台使用)
- IE8 新增Cross Domain Request(發HttpRequest到Cross-Domain但被信任的網站)、Cross Domain Messaging(Cross Domain網頁間交換資訊)
- IE8的每個頁籤被隔在不同的Process中,單一網頁爛掉不會搞掛其他Tab內的網頁。IE Crash時,下回啟動可選擇重開原本開啟的各頁籤。
- 網頁可用Tag<meta http-equiv="X-UA-Compatible">指定用IE7模式,或在IIS設定對全網站所有網頁加料。
- IE8有1300項Group Policy可設定使用者如何使用IE(比IE7多200項)
- In Private模式: 瀏覽過程不留下任何Cookie、History。
- IEAK(Administration Kit): 可設計IE自動部署程序,IE8的IEAK又更Friendly了。
- IE8 Activity從Beta 2起更名為IE8 Accelerator(加速器) [第一次遇到Beta改版時連技術的名字都改了,玩Beta果然很刺激]
【.NET除錯技巧】
投影片及相關資料可至講師林泰宏的Blog取得: http://blogs.msdn.com/terrylin/
- VS2008可設定取回.NET Framework Source Code Debug。設定方法看這裡。
- 開發環境可用VS Line-By-Line Debug,正式環境則要靠Log或Windows Debugger(WinDbg)。
- WinDbg本來是用來Debug Unmanaged Code,加掛SOS.dll,也可以解析.NET程式。
- 基本常識: First Chance Exception,2nd Chance Exception。Visual Studio可設定在發生特定First Time Exception時觸發中斷。 您看到的内容来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- Demo: IE瀏覽一個簡單ASP.NET網頁,點選連結就IE Crash -> 用WinDbg Attach IE->故意引起Crash->WinDbg中斷於First Chance Exception->看Stack->可疑的jccatch.dll->FlashGet引起
- Demo: 用WinDbg Attach .NET WinForm程式->利用SOS的!dso , !do看到Connection String。Memory Dump可能內含機密資料,要小心運用。
- Demo: 用WinDbg !syncblk找出Waiting/Block Thread,~threadIds切換Thread,!clrstack看Call Stack
- Demo: 用WinDbg找出Value Type導致PropertyGird Control CPU Hang
【Vista靈異現象與破解】
本來以為會著重Vista UAC等特性可能造成問題的經驗分享,實際上這是一場茶包射手招生大會,紮實地介紹了茶包一哥Process Monitor/Process Explorer/AutoRuns的犀利之處。相信本站讀者應該都已見識過這些工具的強大威力,課程中聽到幾個精彩實例:您看到的内容来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- 用ProcMon找出戰慄時空2的Registry讀取證據,追出疑似引用了某個DLL導致音效動畫Delay,更新DLL後排除。
- 某些機器開MMC很慢->ProcExp找出在讀取crl.microsoft.com(憑證黑名單),而機器未連Internet->改Registry不讀黑名單解決。
- 關機時出現無法關閉程式->CSRSS無法與某程式溝通(掛點了)->用Spy++找視窗Title->找到Process,疑似無用處->AutoRuns找出啟動設定,清除
- 一台機器裝兩個防毒軟體->CPU 100% Hang->ProcMon看檔案,發現二個防毒軟體搶著將有毒檔放進自己的隔離區,放入時被另一個防毒偵測出有毒,也想放入自己的隔離區,永無止境->移除其中一個防毒或將隔離排除不檢查
- 選取Folder壓Zip時,出現找不到檔案或無讀取權限->ProcMon找到Sharing Violation->重開機可解(黑註: 或用Unlocker解決)
- MyData目錄刪除後不久又自動出現->ProcMon Filter MyData Path->IEPro設了Image Cache Path。
另外,程式Crash時,Windows Error Reporting Service會將Memory Dump送至MS分析,XP時可以由UI上找到Dump檔位置,Vista則只有在傳送時才會產生,傳送完即刪除,可用WinDbg Attach後下.dump。您看到的内容来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
講師曹祖聖的Blog: http://teacher.syset.com/
【Silverlight 2.0】
Silverlight 2.0可以用C#, VB.NET寫Code,現成的控件完整許多,支援WCF、Socket、Data Binding,用VS2008配合Expression Blend 2.5設計起來已相當順手。本場次以現場操作示範為主,一言難盡,只分享一個心得,可以認真考慮將一些應用移至Silverlight上了!
講師董大偉的Blog: http://studyhost.blogspot.com/
【Unit Test】
講師李智樺很像蔣公,我Google不到他的Blog,有人知請再通報
- 迷思: Java Developer很少不做Unit Test的,.NET Developer很少在做Unit Test的
- 不做Unit Test的理由: 老板沒要求何必雞婆、趕專案都來不及了測個屁、需求一直改哪來的美國時間測、我們的測試員哩? 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- 有了Unit Test,接手前人/外包商的Code才有品質保障,Refactoring時也才能確保程式沒被改壞,好處很多
- Martin Fowler: 不相信文件,只相信Code;Code成千上萬行,要如何相信? 用Test驗證!
- DEMO: Visual Studio可透過按右鍵自動產生Unit Test相關專案及檔案。不一定要一次生完全部的Test,太複雜的可等程式不斷修改擴充,聞到Bad Smell(覺得再拖下去會出事)時再用VS的功能產生。
- Test Driven Development: 先寫Test Case再寫Code,強迫你再想一次需求(Second Thought)是額外的收獲。
- Unit Test時記得要檢視Coverage,確認有測到各種情境的分支。
- 重要的前車之鑑: 程式想不出來時,不要抓頭...
- 老師講的劍潭的笑話聽不懂...您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
【SQL 2008】
- 新資料型別: Date、Time(可到100ns)、DateTimeOffset(可含時區)、DateTime2(範圍大,可到100ns)。Time、DateTime2宣告可決定秒的精準位數,決定資料佔用的空間。
- INSERT INTO ... VALUES
( v11, v12, v13, v14, ... , v1n)
( v21, v22, v23, v24, ... , v2n)
可一次INSERT多ROW
- User Defined Type可以破8KB
- Table Type,宣告Table Variable時,可以不用每次重新宣告欄位,直接指定變數的型別是Table Type即可。另外,Table Variable可以被當成Stored Procedure或UDF的參數傳遞。
- Grouping Set: 可簡化原本要GROUP BY不同欄位再UNION ALL的做法
- Merge: 可以設定沒有就新增、有就更新,讓合併資料表的工作更容易。
- 支援 += -= *= /=表示法 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- SQLCLR: UDT, User Defined Aggregate也可大於8KB
- SQL 2008多了70種新的Collation,企圖與OS的選項一致
- HierarchyID, 空間資料, Filtered Index(只對符合某種條件的Rows做Index)
【SQL 2008 Security】
講師陳俊宇 Blog: http://sharedderrick.blogspot.com/
- EKM: Extensible Key Management,可以引用廠商提供的Provider做加密,藉由硬體運算減少Server負荷,並可享有金鑰資料分離的額外優勢。
- TDE: Transparent Data Encryption,設定憑證為全資料庫加密,即便mdf或備份檔被盜走,也無法Attach或Restore。設定TDE後,程式完全不用改。 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- TDE以Page為單位加密,並有Checksum,唯FileStream DataType不加密。
- TDE可與資料壓縮併用(因先壓才加密),但與備份壓縮併用時無太大效果(密文之可壓縮性很差)
- TDE會導致tempdb也加密,效能略差。
- Enterprise/Developer Edition支援EKM/TDE
- 新的稽核機制,可針對全Server或Database做稽核
- 稽核機制應用範例: 監控帳號建立、刪除、改密碼,特定帳號對特定Table的SELECT
【WebAP的安全漏洞】
講師是大名鼎鼎的Birdman(邱銘彰),想看他的新文章可到阿瑪外傳。
雖然不意外主軸還是SQL Injection與XSS兩位老掉牙的頭號戰犯,但其中有不少精闢的分析歸納,十分精彩。
- 妙喻: 漏洞是系統功能的一部分,只是它沒有寫在規格書上,有些"功能"很強可以"做很多事"。
- WASC統計,平均每個Web有13個漏洞,其中9個很嚴重。
- 資安威脅排行維持XSS、SQL Inection領先,而去年竄出的Malicious File Extension,指的是掛馬這類行為。 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- XSS一直是漏洞排行榜的冠軍。
- Samy利用社交網站MySpace的漏洞以XSS方式,被加成百萬人的好友。
- XSSed 網站仍有一大票仍存在XSS漏洞台灣網站的名單,很多是公家機關,而且上榜很久了。
- 常識: SQL Injection、XSS是什麼?
- 名言: 逃避不一定躲得過,面對不一定最難受
- SQL Injnection、XSS、Stack Overflow、藍盒子打免費電話的本質都很像,就是Data Channel被轉換成Command Channel
- 處理User輸入內含有毒物質的黑名單策略:
A. Block - 有毒就整批拒絕
B. Sanitize - 將有毒部分剔除(最後儲存結果與User輸入有出入)
C. Transform - a) Escape只換掉有毒部分 b) Encode 全部編碼
- XSS的Sanitrize不好做。例如: %3Cscript%3E, <scri<script>pt>,防不勝防
- AntiXss.HtmlEncode 比HttpUtility.HtmlEncode來得安全,過濾得更徹底。
- Error Safty的程式設計:您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
A. No-Fail Guarantee: 做不到
B. Strong Guarantee: Block and Rollback
C. Basic Guarantee: Sanitize, Transform
【ASP.NET 3.5 SP1】
講師董大偉網站: http://studyhost.blogspot.com/
又是很充實,講得又快又多的一堂精彩課程,只能簡要提示如下,有興趣的自行深入研究。
- ASP.NET AJAX Script Combining: 減少一頁要載入十來個js的需求,一次全部取回以提高效率。
- Url Routing
- ASP.NET Dynamic Data,依據Schema自行產生清單、編輯Web UI,可透過Meta Attribute客製,例如: TextBox -> DateTimePicker,指定輸入範圍的Range Validation等。
- ADO.NET Data Service,將ADO.NET Data Entity以WCF方式提供出去,簡化遠端存取資料庫的Coding。 您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404556/
- ASP.NET MVC,對於UI、Data Logic的分割很徹底,抽換UI是一塊蛋糕(例如: ASPX->Silverlight),但這個架構較複雜,是否會值回票價,端賴應用的情境而定。