PDA

Voir la version complète : Asterisk, S450IP... et n° surtaxé :-(



myvoip
27/11/2010, 22h26
Bonsoir,
J'aimerais avoir votre expertise sur la mésaventure ci-dessous arrivée sur une config en production depuis fin 2009. J'en profite pour vous alerter :

Software
Ubuntu 9.10
Kernel 2.6.27-7
Asterisk 1.4.33.1
Zaptel 1.4.12.1

Hardware
Carte Digium TDM 400
FXS1 => FT
FXS2 => RJ11 Freebox
FXO1 => DECT Siemens (poste 100)
FXO2 => DECT Siemens (poste 200)
sur LAN => Siemens S450IP (poste 201)

Problématique
En consultant ma console Free, je découvre ce message:
"Facture No 11-xxxxx du mois de Novembre 2010 impayée"

Un coup d'oeil au détail de la consommation indique des centaines d'appels à un unique n° en Espagne (sauf le second appel). Ces n° me sont parfaitement inconnus !

21/11/1013:1200:00:030034902733170 Espagne - Mobile0.010 21/11/1013:1300:01:010034902733080 Espagne - Mobile0.193 21/11/1013:3500:27:240034902733170 Espagne - Mobile5.206 21/11/1014:1000:42:290034902733170 Espagne - Mobile8.072 21/11/1015:0500:32:360034902733170 Espagne - Mobile6.194 21/11/1015:3800:40:390034902733170 Espagne - Mobile7.724 22/11/1001:0800:25:480034902733170 Espagne - Mobile4.902 22/11/1001:3500:00:120034902733170 Espagne - Mobile0.038 22/11/1001:3600:09:270034902733170 Espagne - Mobile1.796 22/11/1001:4600:07:120034902733170 Espagne - Mobile1.368 22/11/1001:5400:07:090034902733170 Espagne - Mobile1.359 22/11/1002:0200:07:090034902733170 Espagne - Mobile1.359
etc... etc...

Après recherches, il ne s'agit malheureusement pas d'un piratage chez Free, car les logs de mon Asterisk attestent que les appels ont bien été passés en interne par le poste ... 201 (le Siemens S450IP) !!! Extraits des logs :


"","201","0034902733170","internal","201","SIP/201-08709430","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 18:54:17","2010-11-22 18:54:20","2010-11-22 19:02:08",471,468,"ANSWERED","DOCUMENTATION","1290452057.4571",""
"","201","0034902733170","internal","201","SIP/201-09112dc0","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:02:31","2010-11-22 19:02:35","2010-11-22 19:10:24",473,469,"ANSWERED","DOCUMENTATION","1290452551.4606",""
"","201","0034902733170","internal","201","SIP/201-08707c60","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:10:46","2010-11-22 19:10:49","2010-11-22 19:18:37",471,468,"ANSWERED","DOCUMENTATION","1290453046.4640",""
"","201","0034902733170","internal","201","SIP/201-09126350","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:18:59","2010-11-22 19:19:03","2010-11-22 19:26:49",470,466,"ANSWERED","DOCUMENTATION","1290453539.4673",""
"","201","0034902733170","internal","201","SIP/201-091e7aa0","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:27:11","2010-11-22 19:27:15","2010-11-22 19:27:52",41,37,"ANSWERED","DOCUMENTATION","1290454031.4705",""
"","201","0034902733170","internal","201","SIP/201-08718250","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:28:05","2010-11-22 19:28:09","2010-11-22 19:35:03",418,414,"ANSWERED","DOCUMENTATION","1290454085.4708",""
"","201","0034902733170","internal","201","SIP/201-08707c60","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:35:25","2010-11-22 19:35:29","2010-11-22 19:43:17",472,468,"ANSWERED","DOCUMENTATION","1290454525.4742",""
"","201","0034902733170","internal","201","SIP/201-08614b28","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:43:39","2010-11-22 19:43:42","2010-11-22 19:51:32",473,470,"ANSWERED","DOCUMENTATION","1290455019.4773",""
"","201","0034902733170","internal","201","SIP/201-08718250","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 19:51:54","2010-11-22 19:51:58","2010-11-22 19:59:44",470,466,"ANSWERED","DOCUMENTATION","1290455514.4807",""
"","201","0034902733170","internal","201","SIP/201-0875fc70","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 20:00:06","2010-11-22 20:00:10","2010-11-22 20:07:58",472,468,"ANSWERED","DOCUMENTATION","1290456006.4839",""
"","201","0034902733170","internal","201","SIP/201-087152b0","Zap/3-1","Dial","Zap/3/0034902733170","2010-11-22 20:08:20","2010-11-22 20:08:24","2010-11-22 20:09:00",40,36,"ANSWERED","DOCUMENTATION","1290456500.4871",""1ère action
J'ai modifié mon extension.conf pour interdire la numérotation de type +3490xxx, le 0 correspond à des n° espagnols surtaxés.

2ème action
Recherche de ce qui a pu se passer avec le S450IP mais je sèche. La seule piste que je vois est d'avoir fait une maj de son firmware il y a quelques jours. Le firmware Siemens était-il hacké ???

Total de l'histoire, près de 300 € de surfacturation chez Free que je vais payer puisque les appels ont bien été passés de chez moi.

Je n'ai pas d'explication sur ces numérotations autos.
Pourriez-vous m'aider à comprendre / diagnostiquer ?
Qu'en pensez-vous ?

Merci d'avance.

ffossard
27/11/2010, 22h52
Pas d'ouverture sur l'extérieur au niveau d'Asterisk ? (port sip natté, compte facile à trouver, mot de passe un peu faible ...)

hb22
28/11/2010, 02h25
Un problème malheureux mais intéressant...
Le port 5060 du routeur ou de la box est t'il redirigé vers l'Asterisk ?
As tu les logs du jour du problème ?

_AK_
29/11/2010, 11h14
sujet d'actualité;)

Je pense plus a une faille dans ton système que dans le firmware du téléphone.

le fait que ce soit le compte 201 qui ai passé les appels ne veux pas dire que ce soit le siemens qui ai envoyé les informations du compte. c'est certainement un virus sur ton PC ou un scan par l'extérieur.(surtout si ton compte etait 201 et ton pass 201....)

myvoip
29/11/2010, 23h39
@ffossard,
Les seules ouvertures que je vois sont côté Freebox, puisque j'ai activé des redirections de plages de ports :
10000-20000 udp => IP fixe interne du serveur Asterisk
5060-5065 udp => IP fixe interne du serveur Asterisk

Mes mots de passes sont faibles car je pensais être en réseau fermé.
Je comprends qu'il suffit d'adresser en pointant mon adresse IP WAN. Le hacker "voit" donc et adresse Asterisk de l'extérieur. Brrrr !!!

@hb22,
Je dispose de tous les logs. En particulier /var/log/asterisk/messages = 216 MB !!!

@_AK_,
Effectivement, je ne crois plus à un pb de firmware, car j'ai regardé dans mon gigantesque historique de logs, et j'y ai découvert des milliers d'attaques différentes depuis fin 2008. Exemples.
1ère série

[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"0"<sip:0@192.168.200.11>' failed for '81.66.127.231' - No matching peer found
[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"1"<sip:1@192.168.200.11>' failed for '81.66.127.231' - No matching peer found
[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"2"<sip:2@192.168.200.11>' failed for '81.66.127.231' - No matching peer found
[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"3"<sip:3@192.168.200.11>' failed for '81.66.127.231' - No matching peer found
[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"4"<sip:4@192.168.200.11>' failed for '81.66.127.231' - No matching peer found
[Dec 2 08:53:40] NOTICE[8409] chan_sip.c: Registration from '"5"<sip:5@192.168.200.11>' failed for '81.66.127.231' - No matching peer found2ème série

[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foolish"<sip:foolish@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foolishl"<sip:foolishl@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foolishn"<sip:foolishn@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foolproo"<sip:foolproo@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"fools"<sip:fools@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foonly"<sip:foonly@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foostar"<sip:foostar@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"foot"<sip:foot@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"footage"<sip:footage@78.240.176.140>' failed for '91.121.140.200' - No matching peer found
[Aug 6 13:31:14] NOTICE[20977] chan_sip.c: Registration from '"football"<sip:football@78.240.176.140>' failed for '91.121.140.200' - No matching peer found3ème série (là il scanne mes postes internes)

[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:18] NOTICE[27510] chan_sip.c: Registration from '"101" <sip:101@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong password
[Nov 17 05:43:28] NOTICE[27510] chan_sip.c: Registration from '"202" <sip:202@78.240.176.140>' failed for '188.165.211.195' - Wrong passwordBizarrement je ne trouve rien en face de cet extrait de facturation Free (je suppose que l'intrusion est antérieure) :


21/11/1013:3500:27:240034902733170 Espagne - Mobile5.206 21/11/1014:1000:42:290034902733170 Espagne - Mobile8.072
Au final, je vais sécuriser Asterisk comme suit :
1) Blocage des scans via la recette de fastm3 (en test, qques soucis avec le register des providers voip).
2) Fail2ban
3) Changement de tous les passwords et choisir de + robustes.
4) Script déclenchant un mail (voire bloquant Asterisk) au bout de xx appels en 1h. (si vous avez des exemples, je suis preneur ;-)

Mes questions du soir :
A) Certains considèrent que la machine est à risque et conseillent de tout formater/réinstaller (risque de rootkit). Qu'en pensez-vous ?

B) Considérez-vous que la machine est 100% protégée des attaques extérieures en appliquant 1) et 2) ? Si non, pourquoi ?

C) Si 1) est correct, 2) est inutile, non ?

D) Avez-vous des remarques ou des conseils sur mon plan de sécurisation ?

_AK_
01/12/2010, 16h43
5060-5065 udp => IP fixe interne du serveur Asterisk


donc tu peux te faire scanner ;)



Au final, je vais sécuriser Asterisk comme suit :
1) Blocage des scans via la recette de fastm3 (en test, qques soucis avec le register des providers voip).

fait attentions a mes remarques sur ses posts.




2) Fail2ban

très bien



3) Changement de tous les passwords et choisir de + robustes.

obligatoire



4) Script déclenchant un mail (voire bloquant Asterisk) au bout de xx appels en 1h. (si vous avez des exemples, je suis preneur ;-)

j'en ai posté il n'y a pas longtemps pour des cdr en mysql.



Mes questions du soir :
A) Certains considèrent que la machine est à risque et conseillent de tout formater/réinstaller (risque de rootkit). Qu'en pensez-vous ?


d'après mois c'est juste ton compte SIP qui avait un pass faible et donc exploitable donc aucune possibilité d'installer un rootkit.



B) Considérez-vous que la machine est 100% protégée des attaques extérieures en appliquant 1) et 2) ? Si non, pourquoi ?

100% n'existe pas
ceci dit il faut que ton 1 n'accepte explicitement QUE les adresses IP de tes fournisseur SIP et eventuellement tes comptes SIP distant.



C) Si 1) est correct, 2) est inutile, non ?

si 1 bloque tout sauf provider alors oui 2 est inutile.
fail2ban n'est utile que si l'on doit laisser la machine visible de l'exterieur.
si seuls tes providers peuvent te voir pas de souci a se faire.



D) Avez-vous des remarques ou des conseils sur mon plan de sécurisation ?

si machine ouverte sur l'exterieur, change aussi le port SIP. (autre chose que 5060)

vérifie bien tes regles IPTABLES pour qu'elles bloque tout et pas seulement port SIP car il doit y avoir des failles dans l'interface web.

tu as quasiment toutes les informations disponible sur ce site ;) a toi de jouer.

fastm3
01/12/2010, 19h49
Ne pas oublier les setting permit/deny qui permettent aussi de specifier quel ip a le droits de se connecter à chaque extension. En specifiant le subnet local ( 192.168... ) , on interdit la connection de l'exterieur. Une protection de plus puisque meme en connaissant le user pass, l'attaquant ne pourra se connecter de l'exterieur a supposer que le firewall le permette.
Fastm3.

myvoip
02/12/2010, 00h02
Bonsoir,

Effectivement, je pouvais me faire scanner. D'autant que l'option "réponse au ping" de la Freebox était activée. Vraiment impardonnable :cry::cry::cry: C'est fixé...
nb : je penche aussi à une "simple" intrusion SIP, pas de réinstall PC (d'autant qu'upgrade + formatage prévus bientôt).

J'ai deux questions subsidiaires pour finaliser :

Mot de passe locaux.
Postes SIP => OK
Postes analogiques : rien trouvé. Je suppose que c'est normal du fait de leur mode de liaison "sans risque". Vous confirmez ?

Changement de port
Habituellement, je le fais. Mais comment dialoguer avec les serveurs SIP si je passe en 9999 par exemple ? Ces derniers ne reconnaissent que le 5060, non ?

J'ai modifié les passwords et activé iptable + fail2ban.
Je n'ai déjà plus que quelques tentatives isolées. On, progresse ;-)
=> Reste le changement de port et le contrôle des paramètre d'iptable, puis le monitoring.

En tous les cas, merci pour votre support et la richesse du site !

[EDIT] permit/deny, cela se trouve où ? Car les règle du script de fastm3 sont déjà ultra bloquantes, non ?

hb22
02/12/2010, 05h28
Changement de port
Habituellement, je le fais. Mais comment dialoguer avec les serveurs SIP si je passe en 9999 par exemple ? Ces derniers ne reconnaissent que le 5060, non ?
Quand tu changes le port, c'est le port d'écoute de ton Asterisk que tu changes.
Tu peux toujours te connecter chez les opérateurs avec le port de destination 5060 parce eux ils écoutent sur le port 5060.

myvoip
05/12/2010, 18h37
De retour après avoir sécurisé ma config (reste plus qu'à changer le port 5060). Pourriez-vous me donner votre avis sur le résultat de iptables -L -v ?

root@pcsat:/usr/bin# iptables -L -v
Chain INPUT (policy ACCEPT 39M packets, 15G bytes)
pkts bytes target prot opt in out source destination
36 2451 ACCEPT all -- any any 192.168.200.0/24 anywhere
0 0 DROP udp -- any any anywhere anywhere udp dpt:sip STRING match "Cirpack KeepAlive Packet" ALGO name bm TO 65535
0 0 ACCEPT udp -- eth0 any anywhere anywhere udp dpts:10000:20000
0 0 ACCEPT udp -- eth0 any 77.72.169.134 anywhere udp dpt:sip
0 0 ACCEPT udp -- eth0 any routed-static-PA.de.kpn-eurorings.net anywhere udp dpt:sip
0 0 ACCEPT udp -- eth0 any 77.72.169.134 anywhere udp dpt:sip
0 0 ACCEPT udp -- eth0 any routed-static-PA.de.kpn-eurorings.net anywhere udp dpt:sip
0 0 ACCEPT udp -- eth0 any 77.72.174.143 anywhere udp dpt:sip
0 0 ACCEPT all -- eth0 any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- eth0 any anywhere anywhere tcp dpt:domain
0 0 ACCEPT udp -- eth0 any anywhere anywhere udp dpt:domain
0 0 LOG_DROP all -- eth0 any anywhere anywhere

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 41M packets, 31G bytes)
pkts bytes target prot opt in out source destination

Chain LOG_DROP (1 references)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- any any anywhere anywhere tcp dpt:sip LOG level warning prefix `[IPTABLES DROP SIP] : '
0 0 LOG udp -- any any anywhere anywhere udp dpt:sip LOG level warning prefix `[IPTABLES DROP SIP] : '
0 0 LOG tcp -- any any anywhere anywhere LOG level warning prefix `[DROP] : '
0 0 REJECT all -- any any anywhere anywhere reject-with icmp-port-unreachable

Chain fail2ban-ASTERISK (0 references)
pkts bytes target prot opt in out source destination
63951 17M RETURN all -- any any anywhere anywhere
root@pcsat:/usr/bin#

myvoip
09/12/2010, 20h19
up ! Je suis preneur de vos commentaires.