1. 소프트웨어(SW) 개발보안이란?

소프트웨어(SW) 개발보안은 개발과정에서 개발자의 실수, 논리적 오류 등으로 인해 발생될 수 있는 보안 취약점, 보안약점들을 최소화하여 사이버 보안 위협에 대응할 수 있는 안전한 소프트웨어를 개발하기 위한 보안 활동을 의미한다. 그렇다면 이 소프트웨어 개발보안은 왜 중요할까?

📌 관련 사례
최근에 여기어때에서 발생한 개인정보 유출 사건을 보았습니다. 여기어때는 국내 숙박 예약 플랫폼 회사로 야놀자와 함께 국내 숙박 업계의 주름을 잡고있는 평소 우리가 알만한 기업입니다. 하지만 2017년 3월에 어기어때 서비스 이용자의 숙박 예약정보 회원정보 17만건이 해커에게 유출됨과 동시에 예약정보를 악용해 음란문자 4,817건이 발송된 사실을 확인 후 여기 어때를 운영 중인 ㈜위도 기술혁신에 대해 과징금을 부여하는 행정처분을 의결했다고 합니다.

🧐 프론트엔드 개발자?
사실 저는 이제 첫 단계를 밟아가고 있는 프론트엔드 개발자 입니다. 이전 까지만 해도 프론트엔드 개발자는 단순히 사용자들에게 보여지는것만을 생각하며 필수적인 예외처리 외에는 그렇게 크게 생각하지 않고 있었습니다. 하지만 오늘 소프트웨어 개발보안 가이드와 실제 사례를 보며 프론트엔드 개발자는 물론 모든 개발자들이 보안단계에서 더 넓은 생각을 가져야겠다는 생각이 들었습니다. 이제까지는 "나는 프론트엔드 개발자니까 단순히 백엔드측 서버에서 데이터를 요청하고 보여줘야지, 보안은 보안전문가가 직접하는거 아니야?" 라는 생각을 가지고 있었습니다.

💡 시큐어코딩이 필요한 이유

보통 웹 서비스를 시작하면 데이터베이스(DB)가 있기 마련입니다. 서비스를 하려는 사이트의 80%이상은 로그인 서비스가 기본적으로 들어가 있기 때문에 서버와 통신하며 해당 유저에 대한 정보를 데이터베이스(DB)에 저장하기 때문에 시큐어코딩이 정말 중요하다고 생각합니다.

💬 그렇다면 보안에서 가장 중요하게 봐야할건 무엇일까?

OWASP 에서는 취약점을 공격 가능성과 기술적 영향을 기준으로 순위를 매겨 상위 10개 취약점을 OWASP TOP10으로 선정합니다. 한마디로 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정한 문서 입니다. 이 OWASP에서 늘 상위권을 차지하는 injection 보안 취약점이 존재합니다. 그중에서도 데이터베이스(DB)의 SQL 질의문을 변조 후 웹 페이지에 삽입하여 발생하는 SQL Injection 취약점은 17년도부터 1~10위에서 최상위권을 유지하고 있는 취약점 이였습니다. 앞서말한 여기어때에서도 SQL Injection 이라는 보안 취약점을 통해 여기어때 이용자들의 개인정보를 탈취했다고 합니다.

다음 포스팅에서는 실제 구현단계에서 시큐어코딩을 찾아보고 실제 내가 만든 사이트를 통해서 보안이 얼마나 취약한지 알아보겠습니다.

profile
여러길중 하나의 길

0개의 댓글