보안 코딩이란 무엇인가요?

보안 코딩은 악의적인 공격자나 멀웨어의 공격을 견딜 수 있는 견고한 프로그램을 작성하는 방식을 의미합니다. 인터넷에서는 소프트웨어 취약점이 공격에 악용되거나 멀웨어의 침투 경로로 사용되는 경우가 많습니다. 이러한 취약점 중 상당수는 부주의한 설계나 프로그래밍 오류에서 비롯됩니다. 보안 코딩은 이러한 취약점을 방지하기 위한 코딩 방식을 통칭하는 용어입니다.

예를 들어 웹 애플리케이션에서는 양식을 통해 받은 입력값을 항상 정제해야 합니다. 즉, 공격에 악용될 수 있는 유해한 문자를 제거해야 합니다. 보안 코딩에서는 "어떠한 입력도 절대 신뢰하지 않는다"는 원칙이 무엇보다 중요합니다. 프로그램이 예상하지 못한 데이터를 받더라도 엄격한 입력값 검증을 통해 애플리케이션이 예측 가능하고 안전하게 응답하도록 하는 것이 보안 코딩입니다. 이것이 보안 코딩을 위한 첫걸음입니다.

또한 웹 애플리케이션 보안 문제 해결에 주력하는 글로벌 오픈 커뮤니티인 OWASP(Open Web Application Security Project)에서 제공하는 도구, 프레임워크 및 지침을 활용하면 웹 애플리케이션의 보안을 크게 강화할 수 있습니다.

하지만 모든 웹 애플리케이션에 보안 코딩 관행을 포괄적으로 적용하는 것은 쉽지 않습니다. 이러한 문제를 해결할 수 있는 실용적인 방법은 웹 애플리케이션 방화벽(WAF)을 도입하는 것입니다. WAF는 애플리케이션 계층의 통신을 모니터링하고 악의적이거나 의심스러운 것으로 판단되는 트래픽을 차단할 수 있습니다. 이러한 솔루션의 대표적인 예로는 웹 애플리케이션 공격에 대한 강력한 보호 기능을 제공하는 F5 BIG-IP가 있습니다.