Under unix operating systems including Mac OS X, certain operations require special permission or privileges to prevent unauthorized users from disrupting or spying on other users. While well intentioned, these conventions are often inappropriate for a "personal" computer where a single user owns and administers the system. Among the operations that require such privileges are sending raw datagrams for Ping and TraceRoute as well as monitoring network traffic.
IPNetMonitorX takes the personal computer view that the user should normally be in control of their computer, so tries to minimize the disruption of asking the user to prove they are authorized to perform the requested operation.
To open ICMP endpoints for Ping and TraceRoute, IPNetMonitorX includes a tiny server application named "OpenICMP" that must run as suid root. When IPNetMonitorX is first run after being copied to a new location, it checks to see if the OpenICMP tool is present and set to suid root. The same process is repeated for "ConfigDHCP", "RunTCPDump", and "LoadNKE". If any of these tools are not authorized, IPNetMonitorX asks you to authenticate so it can configure them to run as suid root. You might think of this as completing the installation process. From that point on, no further authentication is necessary to perform any of the restricted operations IPNetMonitorX supports.
Normally allowing small programs to execute as root is not a problem unless the program seeks to compromise your system or is exploited by another program to carry out such an attack. The best defense against such exploits at this time is to only run software from reputable developers. Future versions of Mac OS X will hopefully offer finer control over software privileges so it will no longer be necessary to open your entire system (by granting root privileges) to programs that need to perform legitimate specialized tasks.
Security Administrators Note: The tools IPNetMonitorX sets to be suid root are relatively safe because they do so little. Each tool performs one simple task like opening a raw socket. The bigger danger is that these legitimate tools could be replaced by a trojan horse that the user is deceived into authorizing. IPNetMonitorX attempts to verify the tools identification before authorizing it, but this process is not perfect. You can improve security by not allowing unauthorized users to gain write access to the bundle containing the IPNetMonitorX application. This same principle applies to any privileged application installed on your system.
When copying the IPNetMonitorX application, you may see a warning message like this:
One or more items can't be copied. Do you want to skip them and copy the remaining items?This message appears because the user performing the copy operation does not have sufficient privileges to retain the root ownership of items that have been set to suid root. Instead of creating new copies belonging to the user performing the copy, Apple chose to issue a warning message and not copy them at all. IPNetMonitorX is self repairing so you can simply press "continue" and re-authorize the copied version the next time it is run.
If you have trouble running IPNetMonitorX from another hard disk volume, make sure you have not disabled privileges on this volume. Select the volume and do a "Get Info" (cmd-I). Choose "Privileges" from the popup menu and make sure "Ignore privileges on this volume" is unchecked. IPNetMonitorX requires unix privileges for many of the tools to work.