You can make a difference in the Apple Support Community!

When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Bonjour Sleep Proxy service stealing IP addresses?

During September 3-13 I've seen eight Apple devices on our institution's network
steal IP addresses leased to other devices.
All the victims have all been Macintosh workstations.

I suspect that the new Bonjour Sleep Proxy service is involved.

The devices that have stolen IP addresses are:
Apple Time Capsule: 5
Apple AirPort Express: 1 (device type not yet confirmed with ower)
Mac running Mac OS X 10.6: 1
Mac running Mac OS X: 1 (device type and OS version not yet confirmed with owner)

If you monitor your network closely enough
to reconcile actual IP address usage (e.g, based on IP ARP cache data) against IP address assignments
(perhaps based on DHCP server logs), you may see this too.

I've not been able to locate published documentation of the Bonjour Sleep Proxy protocol.
(I've already seen the Apple KB article http://support.apple.com/kb/HT3774
providing an overview of the "Wake on Demand" feature, the reference
to "Sleep Proxy Servers" in http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt , and the Sleep Proxy Service patent in http://patft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u= %2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7,330,986.PN.&OS=PN/7,330,986&RS =PN/7,330,986 .)

I've opened a bug report with Apple for one of the incidents (in which the thief was a Mac running Mac OS X 10.6);
in that case I was fortunate to have a system.log file from the "thief".
In my bug report I've also mentioned the Apple Time Capsule incidents too.
I'm still trying to retrieve logs from some of the other thieves and victims,
to expand my bug report with more examples.

One detail that's surprising is that one (possibly two) incidents to-date indicates that
the Bonjour Sleep Proxy Server is also present on (at least) some Mac OS X systems.
Apple's published doc to-date indicates that only Apple Time Capsules and
Apple AirPort Base Stations with 802.11n running firmware 7.4.2 provide
that service.

(I also wonder how easy it would be for someone to exploit a Bonjour Sleep Proxy Server
to launch a denial of service attack on the network to which it is attached. Without documentation about the
actual Bonjour Sleep Proxy protocol, I'm only speculating, but it seems these
Bonjour Sleep Proxy Servers accept a message that causes them to "steal" an IP address
for a period of time. What would prevent someone from sending a series of these
messages to a Bonjour Sleep Proxy Server to tell it to steal many IP addresses (on the local
IP network)...or perhaps just the IP address of the network's IP router?)

Irwin Tillman
OIT Network Systems / Princeton University

Mac Pro (early 2008), Mac OS X (10.6.1)

Posted on Sep 14, 2009 5:22 PM

Reply
19 replies

Nov 17, 2009 2:46 AM in response to irwintillman

Irwin,

Thanks for starting this thread. This explains why the security logs on my FreeBSD server started reporting ARP thefts following the addition of a Time Capsule to the LAN. Nice to know this is a feature, not a weird bug in the Time Capsule.

I've seen two IP addresses involved here. Both of them are sleeping Snow Leopard machines. The MAC addresses shown match the true owners of the IP addresses, plus the MAC address of the Time Capsule, so it all ties up.

Nov 16 12:06:05 server kernel: arp: 10.10.18.164 moved from 00:1f:f3:ce:38:e4 to 00:26:bb:6c:36:3e on vr0
Nov 16 12:13:50 server kernel: arp: 10.10.18.164 moved from 00:26:bb:6c:36:3e to 00:1f:f3:ce:38:e4 on vr0
Nov 16 14:35:56 server kernel: arp: 10.10.18.164 moved from 00:1f:f3:ce:38:e4 to 00:26:bb:6c:36:3e on vr0
Nov 16 14:44:24 server kernel: arp: 10.10.18.164 moved from 00:26:bb:6c:36:3e to 00:1f:f3:ce:38:e4 on vr0
Nov 16 14:45:26 server kernel: arp: 10.10.18.164 moved from 00:1f:f3:ce:38:e4 to 00:26:bb:6c:36:3e on vr0
Nov 16 15:03:45 server kernel: arp: 10.10.18.164 moved from 00:26:bb:6c:36:3e to 00:1f:f3:ce:38:e4 on vr0
Nov 16 17:13:49 server kernel: arp: 10.10.18.164 moved from 00:1f:f3:ce:38:e4 to 00:26:bb:6c:36:3e on vr0

My initial reaction was that this trick sounded a bit dirty, but to be fair some thoughtful people will have designed the protocol, and it doesn't appear to be causing any problems here. Generally the Time Capsule seems like a nice bit of kit: quick, flexible, quiet and frugal with power (it spins the drive down when it's left idle).

With my pen-test (security consultant) hat on, I'm not really worried about this from a DoS attack perspective. An attacker with unfiltered Layer 2 network access can trivially kill the whole network segment by just ARP spoofing everything[*], so Sleep Proxies don't change anything there. The only issue is whether the sleep proxy's IP address banditry turns out to cause subtle problems, but presumably the designers have thought it all through carefully. But it will cause confusion in server and firewall logs.

[*] Aside: More often, the attacker will ARP spoof the default gateway router to launch a man-in-the-middle attack, so that they can steal data rather than just causing a DoS.

If I had a criticism of Snow Leopard's sleep mode, it would be that you can't have WOL (Wake On Lan) without ticking "Wake for network access" under the Energy Saver preferences. This setting allows sleep to be interrupted for file sharing (and other events?), whereas for maximum power saving I'd prefer my machines to stay asleep unless I send them a WOL packet, or press a key on the keyboard.

Kind regards

- Martin

Jan 28, 2010 2:32 PM in response to irwintillman

We're Higher Ed and Research and have a spanning LAN with extensive use of DHCP to service both local supported hosts with fixed IP's (for flexibility) and visiting hosts (truly dynamic). We also allow Ineternet Sharing so students can NAT their laptops off the backs of their desktop Macs.

To keep this situation under control, we've implemented a set of monitor scripts that watch arp transactions and compare MACs to IPs. This allows us to quickly identify collisions and/or potential nefarious use.

Needless to say, the MacOS 10.6 (Snow Leopard) Sleep Proxy Service is now driving us buggy, as it's causing our security scans to generate an enormous number of false positives comprising well over 75% of the messages we receive every day. The signal/noise ratio has rendered this function virtually useless. We are obviously very concerned from a security standpoint, but can't see any useful way of filtering out the Sleep Proxy Server stuff.

Any ideas on how we might be able to distinguish SPS packet cruft from the rest of the traffic?

Or is there a way that we might disable the Sleep Proxy Server function on hosts we manage while leaving Internet Sharing and Wake-On-LAN running? Then we could designate one or two fixed servers on each of our switched subnets to handle the SPS services for their respective areas. That way we include filters in our security scans that ignore "thefts" perpetrated by these trusted hosts. While it wouldn't eradicate the problem completely, it might make it more livable.

Feb 28, 2010 7:00 PM in response to jrickard@UCO

To prevent the Sleep Proxy Service causing these kinds of false alarms, you could simply block mDNS or ZeroConf traffic. If you allow ZeroConf traffic (eg: because you want mDNS to work), you could refine your scripts so that they can identify MACs commonly used by Apple devices and ignore attempts by those devices to "steal" IP addresses belonging to other Apple devices?

If you're paranoid about IP address allocation like this, the obvious solution is to filter out ZeroConf traffic to stop the SPS being configured in the first place.

Bonjour Sleep Proxy service stealing IP addresses?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.