Does a virtual machine count as a separate device to the ISP?
The Internet package that I'm using allows up to two devices to be connected to the Internet at one time. One of those slots is taken up by the host computer and the other by someone else's device not related to what I'm doing.
If I were to connect a virtual machine to the Internet, would that count as a third device? Or would it just use the host's connection?
Most ISP usually don't have visibility on the actual number of devices connected on your home because you are behind a router (that probably runs a NAT that assigns each of your home devices an internal IP).
As far as the ISP can see, there is only 1 connection (via your router) to the ISP. How many devices behind the router is usually not visible. Unless each devices have their own public IP (which is usually not the case).
If the ISP somehow has visibility of how many devices connected to the router and using this information to determine how many devices in your house - as long as your VM network is on NAT mode, it will be fine (as the connectivity is behind your host machine).
If you set it to Bridging mode (where the VM will have its own IP in the LAN) - it will be then detected as the 3rd device as the VM will need its own IP address on the LAN.
Edit (Credit to TheCatWhisperer):
It is incorrect to say that they cannot see how many devices you are using if you use your own router. Unless ALL your requests are encrypted, they can simply examine the user agent string sent in most requests. Whether they would actually go to this trouble or not, who knows.
I had a similar restriction (Fastweb Italy), it was enough to connect a router to the modem/router of the ISP. Make the router create its own NAT with its own pool of IPs.
Doing so the ISP will only see a single device connected.
To avoid problems when you need assistance from them, set the MAC address and the name of the router to the ones of one of your devices. Doing so they will not see the router but a computer.
It depends what they're looking at.
When you make web requests over HTTP (not HTTPS) your browser will send a "user-agent", identifying your platform and browser and browser version, this is how in the UK some of the mobile networks detect and warn if they detect tethering (which is against their terms). For this they will need to be doing Deep Packet Inspection (DPI).
The other way they may detect an additional device is if you typically use a Linux machine and then you start connecting to Windows Update and vice versa.
As others have mentioned if your ISP provides your router they may be able to work out what devices are connected but if it is your own router they will not be able to see LAN activity only that which goes out on to the Internet which will instead be masked by your router.
So specifically for whether your ISP has supplied a router and can detect activity on the LAN is the following:
Hypervisors typically offer 3 options for virtual machine connectivity.
Bridged - which is where the OS will let it send commands over the network directly (i.e. device appears like another device directly plugged into your network)
NAT - Shares the address of the host computer.
Internal/Host - Doesn't communicate directly with the wider network you are connected to.
See also VirtualBox's manual for VirtualBox specific explanation although others may be different they typically offer similar functionality.