What is the difference between a Network Access Control List (NACL) and a Security Group, and how do they work together to secure an application?