<?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/"
	>

<channel>
	<title>Tamkovich.com: Телеком/VoIP блог &#187; Безопасность</title>
	<atom:link href="http://tamkovich.com/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://tamkovich.com</link>
	<description>Телеком, ИТ и все все все</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:15:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PlayStation 3 &#8211; взломана?</title>
		<link>http://tamkovich.com/2010/01/playstation3-hacked-ps3/</link>
		<comments>http://tamkovich.com/2010/01/playstation3-hacked-ps3/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 20:51:45 +0000</pubDate>
		<dc:creator>sergee</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[PS3]]></category>
		<category><![CDATA[Sony]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=912</guid>
		<description><![CDATA[Блогер geohot (George Hotz) заявил вчера, что получил доступ к системной памяти PS3 и, таким образом, взломал систему: I have read/write access to the entire system memory, and HV level access to the processor. In other words, I have hacked the PS3. The rest is just software. And reversing. I have a lot of reversing [...]]]></description>
			<content:encoded><![CDATA[<p align=justify>
Блогер geohot (George Hotz) <a href=http://geohotps3.blogspot.com/2010/01/hello-hypervisor-im-geohot.html >заявил</a> вчера, что получил доступ к системной памяти PS3 и, таким образом, взломал систему:</p>
<blockquote><p>
I have read/write access to the entire system memory, and HV level access to the processor. In other words, I have hacked the PS3. The rest is just software. And reversing. I have a lot of reversing ahead of me, as I now have dumps of LV0 and LV1. I&#8217;ve also dumped the NAND without removing it or a modchip.</p>
<p>3 years, 2 months, 11 days&#8230;thats a pretty secure system
</p></blockquote>
<p align=justify>
Возможность запуска Linux на PS3, позволила geohot-у запускать своё ПО для проверки разнообразных гипотез и, в конечном счёте, получить доступ к памяти гипервизора. В конце 2009 года, линейка приставок PS3 была обновлена, новая модель называется PS3 Slim. Гипервизор новой модели не позволяет запускать Linux, но, скорее всего, реализация доступа к памяти не изменилась.</p>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2010/01/playstation3-hacked-ps3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сниффер и коммутаторы (свитчи)</title>
		<link>http://tamkovich.com/2009/11/sniffer-cisco-switch/</link>
		<comments>http://tamkovich.com/2009/11/sniffer-cisco-switch/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 19:15:50 +0000</pubDate>
		<dc:creator>sergee</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Железо]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=551</guid>
		<description><![CDATA[Возможно ли использовать анализатор сетевого трафика (сниффер) в сети использующей коммутаторы (свитчи)? Да, возможно, если вы являетесь администратором этого коммутатора Рассмотрим пример из жизни: у вас есть сеть IP телефонии принимающая звонки от АТС и отправляющая их по IP дальше. Зачастую, для решения проблем, необходимо видеть ход установления/разрыва вызовов. Для мониторинга ISDN существует масса дорогих [...]]]></description>
			<content:encoded><![CDATA[<p align=justify>Возможно ли использовать анализатор сетевого трафика (сниффер) в сети использующей коммутаторы (свитчи)? Да, возможно, если вы являетесь администратором этого коммутатора
</p>
<p align=justify>Рассмотрим пример из жизни: у вас есть сеть IP телефонии принимающая звонки от АТС и отправляющая их по IP дальше.</p>
<p><center><img src=/wp-content/uploads/2009/11/network.png ></center><br />
<span id="more-551"></span></p>
<p align=justify>
Зачастую, для решения проблем, необходимо видеть ход установления/разрыва вызовов. Для мониторинга ISDN существует масса дорогих  и не очень устройств, позволяющих &laquo;встать на поток&raquo; и просмотреть всю информацию, относящуюся к Q931. Кроме того, голосовые шлюзы <a href=http://tamkovich.com/cisco/ >Cisco</a> предоставляют удобные встроенные средства для просмотра Q931 даже на загруженном оборудовании. Делается это так:</p>
<pre>
debug condition called 1234567
debug isdn q931
ter mon
</pre>
<p>Первая команда устанавливает фильтр, отображаться будут лишь те сообщения, которые относятся к вызову на указанный номер. Фильтр можно устанавливать как на набранный номер (Б номер) так и на отдаваемый АОН (А номер). Фильтров может быть несколько, тогда информация выводится на экран, если она удовлетворяет хотя бы одному фильтру. Вторая команда, включает отладку ISDN Q931. Третья команда включает отображение отладочной информации на текущем терминале. К сожалению таких удобных встроенных средств как debug condition для отладки IP телефонии &#8211; нет, приходится пользоваться внешними средствами &#8211; сетевым анализатором. Использовать сетевой анализатор можно на роутере. Но как быть, если это не PC роутер? т.е. на нём нет Linux/FreeBSD и привычного инструментария в виде tcpdump, wireshark и ngrep? или если это роутер провайдера и доступ к нему невозможен? Как без перерывов связи подключить к схеме, преведенной выше, сетевой анализатор? Очень просто: его следует подключать к свитчу.
</p>
<p><center><img src=/wp-content/uploads/2009/11/wireshark.png ></center></p>
<p align=justify >
По умолчанию, коммутаторы, как известно, посылают ethernet фреймы, только на тот порт, на котором находится MAC адрес получателя (если он известен). Серия коммутаторов Catalyst от <a href=http://tamkovich.com/cisco/ >Cisco</a> поддерживают технологию Catalyst SPAN (Switched Port Analyzer), которая позволяет подключать сниффер к любому порту или набору портов коммутатора.</p>
<p>Для начала определимся с терминологией данной технологии. Порты, трафик с которых необходимо анализировать называется порт источник. Порт, к которому подключается анализатор, называется порт приёмник. Процесс отображения трафика с порта источника на порт приёмник называется сессия мониторинга.
</p>
<p align=justify>
Как правило, коммутаторы поддерживают несколько сессий мониторинга (например, Catalyst 2960G, из примера выше, поддерживает 66 сессий). В одной сессии мониторинга может быть несколько портов источников. Источником может быть любой физический порт (e, fa, gi, te), объединение портов (EtherChanel) и т.д. Источником не может быть порт работающийй приёмником. Приёмником так же не могут быть EtherCahnnel. Настройка SPAN отличается в зависимости от модели коммутатора. Здесь я приведу настройку, для самых распространённых, на мой взгляд, моделей: 2950, 2960, 3550, 3560.
</p>
<p align=justify>
Для начала проверим список интерфейсов:</p>
<pre>
voip-cat-1#sh int descr
Interface                      Status         Protocol Description
Vl1                            up             up
Gi0/1                          up             up       voipgw
Gi0/2                          up             up       voipgw2
Gi0/3                          up             up       voipgw3 / conf
Gi0/4                          up             up       voipgw4
Gi0/5                          up             up       voipdb
Gi0/6                          up             up       <a href=http://tamkovich.com/tag/sip/ >SIP</a> proxy
Gi0/7                          up             up       voipgw5
Gi0/8                          up             up       voiptest
Gi0/9                          up             up       voiptest
Gi0/10                         up             up       link to sw312
Gi0/11                         up             up       voipdb2
Gi0/12                         up             up       <a href=http://tamkovich.com/tag/sip/ >SIP</a> proxy 2
Gi0/13                         up             up       storage
Gi0/14                         down           down
Gi0/15                         down           down
Gi0/16                         down           down
Gi0/17                         down           down
Gi0/18                         down           down
Gi0/19                         down           down
Gi0/20                         down           down
Gi0/21                         down           down
Gi0/22                         down           down
Gi0/23                         down           down
Gi0/24                         up             up       Optical uplink
</pre>
<p>Если коммутатор позволяет давать портам текстовые названия &#8211; не следует этим пренебрегать. Описывайте порты и тогда вы существенно облегчите жизнь себе и своим коллегам. Предположим, что мы хотим проанализировать трафик от устройства voipgw, которое находится на первом порту. Теперь выбираем порт для подключения сниффера. Следует выбрать любой нерабочий порт, например 19ый. Теперь, когда мы определились с портами, сконфигурируем сессию мониторинга:</p>
<pre>
voip-cat-1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
voip-cat-1(config)#monitor session 1 source interface gi0/1
voip-cat-1(config)#monitor session 1 destination interface gi0/19
voip-cat-1(config)#^Z
</pre>
<p>Посмотрим параметры сессмм:</p>
<pre>
voip-cat-1#sh monitor session 1
Session 1
---------
Type                   : Local Session
Source Ports           :
    Both               : Gi0/1
Destination Ports      : Gi0/19
    Encapsulation      : Native
          Ingress      : Disabled
</pre>
<p>Вот и всё! Теперь можно подключать ноутбук с любимым wireshark к 19 порту, и смотреть входящий и исходящий ethernet трафик от устройства voipgw. Кстати СОРМы подключаются точно так же. Если есть свободный ethernet порт на несильно загруженном сервере, то можно подключить этот порт к коммутатору, тогда всю процедуру анализа трафика можно будет осуществлять удалённо, перенастраивая сессию мониторинга на лету.
</p>
<h2>Пара слов о Wireshark</h2>
<p align=justify>
Wireshark имеет 2 набора фильтров. Первый называется просто и незатейливо &#8211; Filter. Строка для редактирования этого фильтра находится в основном окне сверху.
</p>
<p><center><img src=/wp-content/uploads/2009/11/filter.png ></center></p>
<p align=justify>
 Этот фильтр отображения пакетов, поддерживающий кучу протоколов и форматов данных. Например, с помощью фильтра:</p>
<pre>
q931.called_party_number.digits == "74951234567"
</pre>
<p>Можно выбрать все пакеты содержащие h323 вызов (SETUP) на номер 74951234567, а с помощью такого:</p>
<pre>
q931.call_ref == 4f:f9
</pre>
<p>Все пакеты относящиеся к звонку с call reference равным 4f:f9 от начального SETUP до финального RELEASE COMPLETE. Гибкость фильтров отображения компенсируется их медлительностью. Не следует использовать эти фильтры на &laquo;живом захвате&raquo;. Для уменьшения объёма анализируемого трафика существует другой набор фильтров &#8211; capture filter.
</p>
<p><center><img src=/wp-content/uploads/2009/11/filtercap.png ></center></p>
<p align=justify>
Capture filter настраивается в окне Wireshark: Capture Options. Фильтр захвата, не предоставляет той гибкости, которая есть у фильтров отображения, он предназначен для работы на &laquo;живом захвате&raquo; &#8211; для отбрасывания &laquo;неинтересного&raquo; трафика. Синтаксис capture filter идентичен синтаксису фильтров tcpdump. Например, вот такой фильтр:</p>
<pre>
host 10.1.1.1 or host 10.1.2.2
</pre>
<p>позволит захватить только тот трафик, который относится к указанным хостам. Использование capture filter крайне рекомендовано при анализе трафика с нагруженных систем. С помощью этих фильтров вы существенно снизите количество захваченных пакетов, а значит, ускорите работу фильтров отображения.
</p>
<ul>
<li> <a href=http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a008015c612.shtml>Catalyst Switched Port Analyzer (SPAN) Configuration Example</a>
<li> <a href=http://wiki.wireshark.org/CaptureFilters>Wireshark Capture Filters</a>
</ul>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2009/11/sniffer-cisco-switch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Asterisk: уязвимость AST-2009-008</title>
		<link>http://tamkovich.com/2009/11/ast-2009-008-asterisk-sip-vulnerability/</link>
		<comments>http://tamkovich.com/2009/11/ast-2009-008-asterisk-sip-vulnerability/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 09:18:25 +0000</pubDate>
		<dc:creator>sergee</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[SIP]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=526</guid>
		<description><![CDATA[Вчера опубликовали информацию об очередной, восьмой за этот год, уязвимости в Asterisk. Небольшой баг в chan_sip позволяет злоумышленнику проверить, существует ли определённое имя пользователя на сервере или нет. Ошибка кроется в обработке регистрации SIP аккаунтов. Существующие аккаунты и несуществующие обрабатываются по разному. Сделать это можно, с помощью специально составленного запроса REGISTER. Например, вот такого: REGISTER [...]]]></description>
			<content:encoded><![CDATA[<p align=justify>
Вчера опубликовали информацию об очередной, восьмой за этот год, уязвимости в <a href=http://tamkovich.com/asterisk/ >Asterisk</a>. Небольшой баг в chan_sip позволяет злоумышленнику проверить, существует ли определённое имя пользователя на сервере или нет.
</p>
<p align=justify>
Ошибка кроется в обработке регистрации <a href=http://tamkovich.com/tag/sip/ >SIP</a> аккаунтов. Существующие аккаунты и несуществующие обрабатываются по разному. Сделать это можно, с помощью специально составленного запроса REGISTER. Например, вот такого:
</p>
<p><span id="more-526"></span></p>
<pre>
REGISTER <a href=http://tamkovich.com/tag/sip/ >SIP</a>:<b>192.168.0.22</b> <a href=http://tamkovich.com/tag/sip/ >SIP</a>/2.0
From: <b>888888</b> &lt;<a href=http://tamkovich.com/tag/sip/ >SIP</a>:<b>888888</b>@<b>192.168.0.1</b>&gt;;tag=123
To: <b>888888</b> &lt;<a href=http://tamkovich.com/tag/sip/ >SIP</a>:<b>888888</b>@<b>192.168.0.1</b>&gt;
Call-ID: 321@<b>192.168.0.22</b>
CSeq: 111 REGISTER
Max-Forwards: 70
Contact: <b>888888</b> &lt;<a href=http://tamkovich.com/tag/sip/ >SIP</a>:<b>888888</b>@<b>192.168.0.22</b>:5060&gt;;expires=60
Content-Length: 0
Allow: ACK, BYE
Supported: replaces
</pre>
<p align=justify>
В данном запросе &#8211; 192.168.0.22 адрес компьютера, с которого производим проверку, 192.168.0.1 &#8211; адрес <a href=http://tamkovich.com/tag/sip/ >SIP</a> сервера на котором проверяем наличие аккаунта, а 888888 &#8211; аккаунт, о наличие которого мы хотим знать. Теперь этот запрос можно записать в отдельный файл, например reg.txt и отправить с помощью замечательной утилиты sipsak:
</p>
<pre>
sipsak -vv -f reg.txt -s <a href=http://tamkovich.com/tag/sip/ >SIP</a>:<b>999999</b>@<b>192.168.0.1</b>
</pre>
<p align=justify>
Здесь 192.168.0.1 &#8211; адрес сервера, куда будет отправлен наш запрос REGISTER, а 999999 &#8211; произвольное имя, которое будет использовано для авторизации. Главное что бы имя указанное в параметре к sipsak, не совпадало с именем указанным в теле запроса (999999 и 888888).
</p>
<p align=justify>
Из вывода sipsak, нас больше всего интересуют последние строчки:</p>
<pre>
** reply received 15.502 ms after first send
   and 2.089 ms after last send **
   <a href=http://tamkovich.com/tag/sip/ >SIP</a>/2.0 403 Authentication user name does not match account name
   final received
</pre>
<p><a href=http://tamkovich.com/asterisk/ >Asterisk</a> ответил ошибкой, пояснив, что имя пользователя не совпадает с именем, использованным для аутентификации. Это означает, что пользователь, указанный в теле запроса REGISTER (в нашем случае 888888) &#8211; существует на сервере.
</p>
<p align=justify>
В случае если искомый аккаунт отсутствует на сервере, ответ будет зависеть от опции
<pre>alwaysauthreject = yes</pre>
<p> из файла <a href=http://tamkovich.com/tag/sip/ >SIP</a>.conf. По умолчанию, сервер ответит с кодом 404:</p>
<pre>
** reply received after 3.053 ms **
   <a href=http://tamkovich.com/tag/sip/ >SIP</a>/2.0 404 Not found
   final received
</pre>
<p>Если же опция включена, код ошибки заменится на 401.
</p>
<p align=justify>
На мой взгляд, ошибки подобного вида не представляют никакой опасности. Однако, если паранойя берёт верх вы можете смело обновиться до последних версий (1.2.35, 1.4.26.3). Обновлять ветку 1.6.0 до последней версии &#8211; я крайне не рекомендую. Дело в том, что текущий срез 1.6.0 абсолютно не пригоден для промышленного использования &#8211; сплошные дедлоки, сломанный T38 и т.п. Если у вас стабильный срез 1.6.0, то лучше наложить <a href=http://downloads.digium.com/pub/asa/AST-2009-008-1.6.0.diff.txt >патч</a> устраняющий проблему, избежав обновления среза.
</p>
<ul>
<li> <a href=http://downloads.asterisk.org/pub/security/AST-2009-008.html >AST-2009-008</a>
<li> <a href=http://downloads.digium.com/pub/asa/AST-2009-008-1.6.0.diff.txt >AST-2009-008-1.6.0.diff</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2009/11/ast-2009-008-asterisk-sip-vulnerability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk: SIP и безопасность</title>
		<link>http://tamkovich.com/2009/04/asterisk-sip-security/</link>
		<comments>http://tamkovich.com/2009/04/asterisk-sip-security/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 07:46:07 +0000</pubDate>
		<dc:creator>sergee</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[ITSP]]></category>
		<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[CDR]]></category>
		<category><![CDATA[SIP]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=299</guid>
		<description><![CDATA[В начале года проскочило несколько новостей о хакерской активности в области IP-телефонии. Деятельность хакеров, как правило, сводится к поиску публично доступных шлюзов/прокси серверов и подбору паролей. Лёгкость в установке и настройке Asterisk-a, привлекла большое количество низко квалифицированных IT-шников в сегмент IP-телефонии. Этим объясняются простые пароли для SIP логинов (или пароли, совпадающие с логином) и, соответственно, [...]]]></description>
			<content:encoded><![CDATA[<p align=justify>
В начале года проскочило несколько новостей о хакерской активности в области IP-телефонии. Деятельность хакеров, как правило, сводится к поиску публично доступных шлюзов/прокси серверов и подбору паролей.
</p>
<p align=justify>
Лёгкость в установке и настройке <a href=http://tamkovich.com/asterisk/ >Asterisk</a>-a, привлекла большое количество низко квалифицированных IT-шников в сегмент IP-телефонии. Этим объясняются простые пароли для <a href=http://tamkovich.com/tag/sip/ >SIP</a> логинов (или пароли, совпадающие с логином) и, соответственно, простота их подбора.
</p>
<p align=justify>
Наиболее заметными событиями в информационном поле стали: <a href=http://www.news.com.au/technology/story/0,28348,24939188-5014239,00.html>Публикация на сайте news.com.au</a> о том, как маленькая Австралийская компания получила счёт на 120000$ после того как её корпоративную систему IP телефонии взломали и слили 11000 международных звонков за 46 часов и длиннющий <a href=http://lists.digium.com/pipermail/asterisk-biz/2009-February/029481.html>тред</a> в списке рассылки <a href=http://tamkovich.com/asterisk/ >Asterisk</a>-biz, начавшийся в начале февраля и закончившийся лишь к концу марта. Убыток во втором случае не столь впечатляющ, всего лишь 2000$. Однако последующее обсуждение имеет большую ценность.
</p>
<p><span id="more-299"></span></p>
<p align=justify>
Многие участники рассылки, используют программу fail2ban, которая умеет парсить лог-файлы различного формата и добавлять засветившиеся там IP адреса в iptables для блокирования. Подробную инструкцию как настроить <a href=http://tamkovich.com/asterisk/ >Asterisk</a> и fail2ban на совместную работу, можно прочитать <a href=http://www.voip-info.org/wiki/view/Fail2Ban+(with+iptables)+And+Asterisk>здесь</a>. Данная схема замечательна, заслуживают самого пристального внимания и оперативного внедрения. Однако я бы хотел обратить внимание на некоторые моменты:
</p>
<p><b>Не доверяйте автоматике на 100%</b></p>
<p align=justify>
Автоматической системе на основе fail2ban нельзя доверять на 100%. Дело в том, что использую <a href=http://tamkovich.com/tag/sip/ >SIP</a> в <a href=http://tamkovich.com/asterisk/ >Asterisk</a>, мы используем протокол UDP. Реальность такова, что UDP пакеты с поддельным IP адресом отправителя без каких либо проблем проходят несколько автономных систем. Таким образом, автоматическая система на основе fail2ban может быть использована против Вас для отказа в обслуживании Ваших клиентов.
</p>
<p align=justify>
Автоматическую систему на основе fail2ban следует дополнить списком &laquo;белых&raquo; IP, которые будут игнорироваться при создании блокирующих правил iptables. Все результаты деятельности fail2ban следует регулярно проверять.
</p>
<p><b>Сохраняйте IP адреса для каждого <a href=http://tamkovich.com/tag/sip/ >SIP</a> звонка внутри CDR</b></p>
<p align=justify>
Стандартные CDR <a href=http://tamkovich.com/asterisk/ >Asterisk</a>-а не содержат IP адреса, с которого был совершён звонок. Это легко исправить. Если Вы используете cdr_addon_mysql для хранения CDR в базе данных, добавьте поле в таблицу cdr:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql mysql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">ALTER TABLE</span> cdr 
add <span style="color: #993333; font-weight: bold;">COLUMN</span> remote_signal_ip 
<span style="color: #aa9933; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #aa3399; font-weight: bold;">NOT NULL</span> <span style="color: #aa3399; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">''</span></pre></div></div>

<p>Теперь измените свой диалплан так, что бы cdr переменная remote_signal_ip инициализировалась перед исходящим звонком. Например, вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="ael ael" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">context</span> dialout <span style="color: #009900;">&#123;</span>
    _X<span style="color: #339933;">.</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">Noop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #990000;">Set</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">CDR</span><span style="color: #009900;">&#40;</span>remote_signal_ip<span style="color: #009900;">&#41;</span><span style="color: #339933;">=</span>$<span style="color: #009900;">&#123;</span><span style="color: #990000;">SIPCHANINFO</span><span style="color: #009900;">&#40;</span>recvip<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #990000;">Dial</span><span style="color: #009900;">&#40;</span>SIP<span style="color: #339933;">/</span>myprovider<span style="color: #339933;">/</span>$<span style="color: #009900;">&#123;</span>EXTEN<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Вот и всё! Функция SIPCHANINFO(recvip) вернёт IP адрес, с которого клиент производит вызов, а по окончании вызова модуль cdr_addon_mysql сохранит все переменные, имена которых совпадают с названиями колонок в таблице cdr.
</p>
<p align=justify>
Сохранение IP адреса для каждого звонка открывает большой потенциал для изучения миграции клиентов по IP сетям, выявления приоритетных партнёров для пиринга IP трафиком, решения проблем с утечками паролей и много чего ещё.
</p>
<p><b>Используйте встроенные access-листы</b></p>
<p align=justify>
chan_sip и некоторые другие модули сетевых протоколов имеют поддержку списков доступа в зачаточном состоянии. С помощью директив permit и deny вы можете ограничивать возможные IP адреса для каждого <a href=http://tamkovich.com/tag/sip/ >SIP</a> аккаунта. Если у вас есть офисные номера, работающие в интранете, не ленитесь, пропишите для каждого аккаунта</p>

<div class="wp_syntax"><div class="code"><pre class="ael ael" style="font-family:monospace;">deny<span style="color: #339933;">=</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">/</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0
permit<span style="color: #339933;">=</span>192<span style="color: #339933;">.</span>168<span style="color: #339933;">.</span>1<span style="color: #339933;">.</span>0<span style="color: #339933;">/</span>255<span style="color: #339933;">.</span>255<span style="color: #339933;">.</span>255<span style="color: #339933;">.</span>0</pre></div></div>

<p>Возможно, это спасёт Вас от судьбы той компании из Австралии.
</p>
<p><b>Подходите к вопросу творчески: комбинируйте, изобретайте!</b></p>
<p align=justify>
Не стоит сидеть, сложа руки и ждать, пока появятся проблемы. Лучше потратить немного усилий на превентивные меры, что бы обезопасить себя от форс-мажора. В вопросе безопасности, надо всегда быть на шаг впереди. Анализируйте свой трафик &#8211; каждый всплеск мг/мн трафика должен быть тщательно расследован. Не работайте по шаблонам &#8211; комбинируйте и изобретайте. Например, можно написать скрипт, который раз в месяц анализирует IP адреса из вашей таблицы cdr, и автоматически генерирует списки доступа (acess-list) для тех аккаунтов, чьи IP не менялись за прошедший месяц. Будьте креативными!
</p>
<ul>
<li> <a href=http://www.fail2ban.org/>Fail2ban</a>
<li> <a href=http://www.voip-info.org/wiki/view/Fail2Ban+(with+iptables)+And+Asterisk>Fail2Ban (with iptables) And Asterisk</a>
<li> <a href=http://www.news.com.au/technology/story/0,28348,24939188-5014239,00.html>Small business gets $120,000 phone bill after hackers attack VoIP phone</a>
<li> <a href=http://lists.digium.com/pipermail/asterisk-biz/2009-February/029481.html>[asterisk-biz] PBX got Hacked</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2009/04/asterisk-sip-security/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Asterisk: возможность удаллённого обрушения в chan_sip</title>
		<link>http://tamkovich.com/2009/03/remote-crash-vulnerability-in-sip-channel-driver/</link>
		<comments>http://tamkovich.com/2009/03/remote-crash-vulnerability-in-sip-channel-driver/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 20:31:25 +0000</pubDate>
		<dc:creator>sergee</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[SIP]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=295</guid>
		<description><![CDATA[Сегодня было сообщено о довольно неприятной находке. В Asterisk найдена новая уязвимость. Источником опасности, на этот раз, оказался модуль chan_sip. Ошибка содержалась в алгоритме сравнения SIP URI &#8211; вызов sip_uri_cmp(). Данный алгоритм используется в случае, если у вас включён педантичный режим (pedantic=yes) &#8211; для обработки спиралей. Суть ошибки заключается в том, что, отправив подготовленный специальным [...]]]></description>
			<content:encoded><![CDATA[<p align=justify>
Сегодня <a href=http://downloads.digium.com/pub/security/AST-2009-002.html>было сообщено</a> о довольно неприятной находке. В <a href=http://tamkovich.com/asterisk/ >Asterisk</a> найдена новая уязвимость. Источником опасности, на этот раз, оказался модуль chan_sip. Ошибка содержалась в алгоритме сравнения <a href=http://tamkovich.com/tag/sip/ >SIP</a> URI &#8211; вызов sip_uri_cmp(). Данный алгоритм используется в случае, если у вас включён педантичный режим (pedantic=yes) &#8211; для обработки спиралей. Суть ошибки заключается в том, что, отправив подготовленный специальным образом INVITE (без заголовков) внутри вызова sip_uri_params_cmp() происходит сегфолт т.к. <a href=http://tamkovich.com/asterisk/ >Asterisk</a> не проверив параметры, попробует сделать ast_strdupa(NULL).
</p>
<p align=justify>
Не смотря на то, что бюллетень вышел только сегодня, ошибки <a href=http://svn.digium.com/view/asterisk/branches/1.6.0/channels/chan_sip.c?r1=173986&#038;r2=174085>были обнаружены и исправлены</a> &#8211; 6го февраля &#8211; более месяца назад. На сегодня, все ветки SVN содержат исправленный код.
</p>
<ul>
<li> <a href=http://downloads.digium.com/pub/security/AST-2009-002.html>AST-2009-002</a>
<li> <a href=http://svn.digium.com/view/asterisk/branches/1.6.0/channels/chan_sip.c?r1=173986&#038;r2=174085>Diff of /branches/1.6.0/channels/chan_sip.c</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2009/03/remote-crash-vulnerability-in-sip-channel-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
