|
||||
|
||||
[강서홈플러스점] 서가 단면도
|
시큐어코딩은 협의적인 의미로는 개발 단계에서 개발자들이 취약점이 발생하지 않도록 프로그램을 작성한다는 개념이다. 하지만 좀 더 광역적인 의미에서 보면, 소프트 웨어 개발 생명주기(Life Cycle) 전 단계에 걸쳐서 애플리케이션이 취약점을 가지지 않도록 요구사항을 수집해 분석하는 분석가, 설계를 담당하는 설계자, 애플리케이션을 테스트하는 테스터, 그리고 운영자 및 사용자 모두가 각각의 직무에 맞는 보안 활동을 수행해야만 안전한 소프트웨어를 개발하고 운영할 수 있다는 것을 강조하는 개념이다.
많은 애플리케이션 공격 기법들을 분석해보면 사용자의 입력 값을 애플리케이션에서 제대로 검증하지 않고 사용해 DB 정보가 유출되거나, 시스템에 명령을 수행할 수 있는 쉘 환경 을 공격자에게 넘겨주거나, 일반 사용자들이 피싱 사이트로 자신도 모르게 넘어가도록 유도하고 있었다. 이러한 것들은 어쩌면 보안 제품으로 모두 방어하기가 어렵다. 다시 말해 개발자들이 자신이 개발하는 애플리케이션에서 외부 입력 값들을 잘 정제해 사용하도록 프로그 램을 작성해야만 한다는 것이다. 또는 에러가 발생한 경우 프로그램에서 제대로 에러를 처리함으로써 이차적인 문제가 발생하지 않도록 해야 한다.
|