Dazu müsste man wissen, wie Firewalls funktionieren.
Generell könntest du den TCP-Stack von Windows "überwachen". Da bekommst vieles, aber vermutlich nicht alles mit. Du müsstest dich also weiter runter ins System hängen, dort wo sich die Hardware-Treiber befinden. Nun, das wird mit C# nicht so einfach sein, eher Assembler, C.
Weiters solltest du solides Wissen bezüglich Firewalls mitbringen, wenn du so ein Projekt angehen willst. Sprich, ich würde dir zu so einem Projekt nicht raten, wenn du eine derartige Frage stellst.