시큐어 코딩

2020-03-13
조회수 129


개발의 필수 자물쇠 '시큐어 코딩 (Secure Coding)'



시큐어 코딩(Secure Coding)이란 안전한 소프트웨어 개발을 위해

소스 코드 등에 존재할 수 있는 잠재적인 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등

소프트웨어 개발 과정에서 지켜야 할 일련의 보안활동을 말합니다.


인터넷 홈페이지나 소프트웨어 개발 시 보안 취약점을 악용한 해킹 등 내외부 공격으로부터 시스템을

안전하게 방어할 수 있도록 코딩하는 것이 이에 해당합니다. 


특히 최근에는 소프트웨어가 복잡해짐에 따라 사전에 보안의 취약점을 발견하는 것이 중요해졌습니다.






 해킹에는 다양한 방법과 기법이 있습니다.

'어디로 공격을 할까?'로 분류할 수 있고, 공격 대상을 어떠한 경로로 해킹을 하려고 하는지, 즉 침투 경로로 분류를 할 수도 있죠.


이렇게 분류한다면 네트워크 해킹, 시스템 해킹, 애플리케이션 해킹, 하드웨어 해킹, 심지어 사람을 속이는 사회공학까지

너무나도 다양한 경로로 해킹 시도가 가능한 것을 알 수 있습니다.


따라서 '시큐어 코딩'은 IT 분야에서 SW로 구현되는 모든 곳에 적용이 가능합니다.

비단 웹, 애플리케이션뿐만 아니라 네트워크 장비, 네트워크 프로토콜을 구현하는 개발자들도

시큐어 코딩에 따라 개발해야 하고 OS(운영체제), 시스템 개발자분들도 여기에 포함이 됩니다.






"시큐어 코딩은 왜 필요할까?"


흔히 시큐어 코딩에 대한 용어 때문에 오해가 생기곤 합니다.

'코딩'이니까 마치 개발자만 알아서 조심하게, 안전하게 만들면 된다는 생각을 하곤 합니다.

그래서 '책임을 개발자에게 있다'라고 생각하기 쉽습니다.


하지만 앞서 살펴본 정의처럼 시큐어 코딩을 '지켜야 할 일련의 보안 활동'을 의미합니다.

즉, 소프트웨어를 개발하는 데 있어서 코드를 안전하게 할 수 있는 다양한 보안 활동 모두가 포함되어 있습니다.




 최근에는 하루가 멀다 하고 해킹사고가 뉴스에 나오는 것을 많이 보셨을 겁니다.

특히 지난 1월 온라인 강의 업체가 해킹되면서 중·고등학생의 개인 정보가 유출된 사건도 있었습니다.

또 중국에서는 보복성 해킹 등을 예고하며 공공기관, 기업들의 피해는 갈수록 증가할 것으로 보입니다.


이미 현재까지 해킹에 대한 피해는 증가하고 있습니다.

2018년, 지난해 과학기술정보통신부에 따르면, 홈페이지 변조와 악성코드 은닉 탐지를 포함해 14,754건으로 확인이 되었습니다.

2017년에는 13,347건 대비 약 9.5% 증가한 것을 볼 수 있습니다.


이제는 대비를 미리 해놓지 않으면 사회적으로도 큰 사고로 이어집니다.






 또한 사회문제뿐만 아니라 수많은 과정을 거쳐서 개발한 소프트웨어에는 많은 시간과 돈이 투자됩니다.

이렇게 중요한 소프트웨어에 해킹을 당한다면 큰 손실입니다.

그렇다면 개발을 다 하고 출시할 때 '시큐어 코딩'을 하면 좋을까요? 물론 이론상 그렇게 생각할 수 있지만 답은 'NO'입니다.

소프트웨어 결함을 수정하는데 아래의 연구결과처럼 비용과 시간이 필요합니다.




출처 : The Economic Impacts of Inadequate Infrastructure for Software Testing, 2002.5, NIST




 보통 소프트웨어의 출시까지의 과정을 보면 

도출  →  설계  →  개발 → 테스트 → 릴리스(출시)의 과정을 거치게 됩니다. 


즉 연구 결과를 놓고 보면, 개발 초기 단계에서 미리 안전한 소프트웨어를 위해 투자하는 비용은

전체적으로 봤을 때 절감하는 효과가 있습니다.


즉 개발 초기부터 '시큐어 코딩'을 하는 것이 효과적입니다.


이제는 우리 회사의 자산을 지키는 '시큐어 코딩'을 러닝클루와 해보시는 것 어떠세요?






"시큐어 코딩 교육 프로그램"


이제는 성공적인 사업을 운영하기 위한 시큐어 코딩을 적용해보세요!

정보 자원의 기밀성, 무결성, 가용성을 유지할 수 있는 시큐어 코딩 능력 강화와

앱 애플리케이션 보안 취약점 제거를 위한 보안 코딩 기법을 이해할 수 있는 과정입니다.











자세한 문의 사항은  아래 문의하기를 통해 연락 주시길 바랍니다.