Security/Others
Defensive Programming VS Offensive Programming
bonggang
2019. 7. 10. 02:44
개인의 정보 보안 학습을 위해 작성되었습니다. 본 게시물을 불법적으로 활용하실 경우 혹은 본 게시물로 인해 발생하는 모든 문제에 대한 책임은 당사자에게 있으며, 작성자는 어떠한 법적 책임도 지지 않음을 밝힙니다. 해당 문서를 열람하는 것은 이에 대해 동의하는 것으로 간주합니다.
방어적 프로그래밍(Defensive Programming)은 예상치 못한 입력에도 SW가 계속적 기능 수행을 보장할 수 있도록 고안된 방어적 설계의 한 형태이다. Secure coding 역시 defensive Programming의 한 종류이다.
시큐어 코딩(Secure Coding)이란 코딩을 할 때 즉, 개발 단계에서 주요 보안 취약점을 고려, 소스코드 레벨에서 취약점을 사전에 제거해 안전한 SW를 개발하는 기법이다. 그렇다면 왜 시큐어 코딩이 중요할까? 이유는 아주 간단하다. 보안 취약점을 줄이기 위해 소프트웨어 개발 초기 단계인 구현 단계에서 수정하는 것이 가장 손쉽고 비용 효율성 측면에서 가장 좋기때문이다.
행정안전부는 2012년 5월에 시큐어 코딩 의무화 법안을 발표하면서 당해 12월부터 개발비 40억 이상 정보화 사업에 시큐어 코딩 적용을 의무화했다.
공격형 프로그래밍(Offensive Programming)은 SW 버그에 발생하는 오류를 처리할 때 방어원리에서 명시적으로 벗어나는 방어적 프로그래밍에 사용되는 이름이다. 이름때문에 반대 개념이라고 생각하지 말자!