개발자는 해킹을 해본 적이 없다.

카테고리 : 보안

보안은 IT시대에 있어서 필수다. 이전에도 많은 곳에서 중요했을 수 있다.(전쟁, 첩보 등)

 

누군가는 뚫을것이고 누군가는 막는 역할일 것이다.

 

 

보안은 중요한데 쉬우면서도 어렵다.

설치형 프로그램 같은 경우 100% 보안을 장담할 수 없다.

왜냐면 설치를 했다는것은 동작 과정을 포함했다는 의미가 되는데 이를 분석한다면 어떻게 돌아가는지 파악이 되기 때문에 설치형 프로그램(예 : 게임)은 비정상으로 사용하는 사람이 있을 수밖에 없다.

 

 

통신과정이라면 어느정도 막을 수 있다.

모든 사용자 입력을 모니터링(방화벽)할 수 있기 때문에 공격을 방어할 수 있다.

 

네트워크 환경에서는 오픈된 공간이라 공격 시도가 많을 수는 있다.

그러나 대부분은 알려진 공격을 하며, 알려진 방법으로 막을 수 있다.

예를 들어 XSS 같은 경우 코드가 동작하지 않고 표현되게 HTML special char로 변경하기도 한다.

 

알려지지 않은 공격은 대부분의 경우 대비하기 어렵다.

따로 보안 전문가들이 자체 시스템을 모의 해킹해보며 찾는다면 그건 다행이다.

 

 

 

 

IT 보안 중요한데 어려운 이유

중요한데 어려운 이유는 간단하다.

  1. 기능 개발에 중점
  2. 많은 개발자는 해킹을 해본 적이 없다.
  3. 보안에 투자를 꺼린다.

 

 

기능 개발에 중점

일반적으로 뭔가를 만드는 것은 언어의 기초를 알고 영어를 안다면 구글 검색만으로 한 달 이내면 대부분의 제품을 혼자 만들 수 있다.

 

그런데, 당연히 보안은 고려되지 않는다.

기능 만드는 것 외에 기능이 어떻게 잘못 작동되는지 고려하기까지는 어렵기 때문이다.

 

위의 예시는 초보자인 경우이고, 기능 개발에 중점을 맞춰 시간이 촉박하여 검토가 어려운 경우도 있을 수 있다.

 

 

 

많은 개발자는 해킹을 해본 적이 없다.

많은 개발자들이 개발만 해봤지 해킹을 해보고 보안 문제를 검토해본 적은 많이 없을 것이다.

 

알아야 막을 수 있는데 모르는 경우가 다수일 것이다.

 

알려진 정보로 이런 건 하면 안되고 저렇게 해야 돼 뭐 이렇게 알고 있는 경우가 다수일 것이다.

 

내 경우 처음으로 간단한 웹서비스를 만들다가 해킹 테스트 툴인 Acunetix를 무료 버전으로 써본 적이 있는데

찾아보면서 열심히 만들었던 게 XSS, SQL injection 등 큼직한 보안 오류가 있다는 것을 확인하고,

하나하나 테스트해보면서 막는 방법도 찾아본 적이 있다.(Acunetix 무료 버전에서는 Debug용 자료를 제공하지 않는다.)

아무리 알려진 방법을 따라해도 안되어 공격 원리를 파악하여 직접 막는 소스로 막은경우도 있다.

 

이렇게 처음으로 알게 된 이후로는 보안과 여러 문제도 같이 생각하여 만들게 되었다.

 

 

 

보안에 투자를 꺼린다.

보안은 일반적으로 눈에 띄지 않는다.

 

제품이 출시되면 소비자는 반응할 것이고, 그에 따른 가치를 얻을 수 있다.

그러나, 보안은 발견되기 전까지.. 발견된 후에도 숨기면 그게 더 돈을 아낀다고 생각할 수도 있다.

 

아직까지도 한국은 쉬쉬하는 분위기이다.

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글