내용 |
다음의 내용은 저의 주관이고 다른 분들과 생각이 다를 수 있습니다.
어제 저녁에 지방에서 보안관제를 하는 분과 상담을 했습니다.
금주는 제가 계속 세종시에 있었는데 1주간 2회 상담을 했고
다음주도 2회가 이미 예약되어 있습니다.
그리고 개인적인 이야기를 다 제외하고 제가 한 이야기만 하겠습니다.
한달전에 어떤 분이 보안관제로 취업을 했는데, 시간이 너무 많이 남아서 무엇을 해야할 지 모르겠다. 했습니다.
그래서 제가 이야기 했습니다. 본인은 엔지니어가 아니다.
즉, 보안관제를 하면 9시에 무엇을 점검하고 10시에 무엇을 점검하고
이런 것이 있다면 엔지니어는 그 점검 자체도 귀찮기 때문에
이것을 프로그램을 만들든 스크립트로 하건 메일까지 모두 자동화
시키고 논다.
보안하는 사람은 엔지니어이여야 한다. 관리적 보안은 말이 좋아
관리적 보안이지 기술적 기본이 없으면 기둥없는 건물이 관리적
보안이다.
기술적 기본이라는 것은 포트 스캐닝을 하고 DDoS를 하고 악성코드
자동 생성 도구를 사용해서 악성코드를 만들고 탐지하는 것이 아니다.
그것은 정말 기본적인 것이고 전혀 모르는 사람도 인터넷에서 검색하면
간단하게 누구나 알 수 있는 명령어이다.
또 사람들은 모의해킹에 대한 환상을 가지고 있는 것 같다.
예를 들어 웹 사이트를 모의해킹하는 것은 10년 전에는 대단한 것이였다. 하지만 금융권과 공공기관은 1년에 한번은 외부전문가로 모의해킹을 받는다. 그렇게 때문에 SQL Injection, XSS 등의 웹사이트 모의해킹을 해도 욕먹고 되지도 않는다.
만약 웹 사이트 모의해킹이 된다면, 그것은 큰 기업이 아니라 소상공인이 운영하는 사이트 일 것이고 우리가 소상공인 사이트 모의해킹하려고 배우는 것은 아니다.
간단한 예로 ShellShock를 생각해보면, 인터넷에 리눅스 Bash Shell에서 보안 취약점이 발견되었고 빈함수을 사용해서 root의 권한을 획득할 수가 있다고 한다.
그래서 사람들은 그것을 배우고 시연했다.
관제 일을 하니 제가 묻겠습니다. ShellShock가 지금 운영하는 사이트에서 됩니까?
상담: 아니요. 절대 안됩니다.
그러면 다 지나간 과거를 이해하고 패치하는 것이 엔지니어 같나요?
제가 하고 싶은말은 저는 지금까지 보안을 하는 사람들을 보면,
어떻게 ShellShock 취약점을 찾았지? 이부분에 대해서는 궁금해 하지 않는 것 같습니다.
매번 XXX 취약점이 발견 되었고 조치해야 한다!
물론 이 내용도 중요하지만, 왜 나는 항상 신문에 나오는 취약점 이외에는 사전에 대응할 수 없을까요?
그리고 리눅스에 ShellShock이외에 현재 다른 취약점이 있는지 확인할 수는 없나요?
즉, 어떻게 그것을 찾았는지에 대한 내용이 없다는 것입니다.
우리는 그것을 공부하고 노력해야 합니다.
하지만, 기본적으로 시스템의 원리와 개발능력이 없으면 항상 한계가 있습니다.
nmap, snort, MS의 system internal 정도의 도구는 언제든 자신이 맘만 먹으면 만들 수 있어야 합니다.
이 정도의 툴은 그리 어렵지도 않고 조금만 공부하면 누구나 할 수 있습니다. 그래야 기업에서 X 보안 도구가 들어올 때 X 보안 도구의 취약점을 상상할 수 있습니다. 즉, 나라면 X 보안도구를 이렇게 개발했을텐데 그렇게 되면 어떤 로직을 구현하는 것이 쉽지않은데?
이런 생각이 들면 취약점을 찾을 수 있습니다.
DLL Injection, SO Injection, Dropper, API Hooking 등의 이론을 배우고 그것을 구현할 수 없다면 그것은 별거 아닙니다.
이것은 저의 주관입니다. 물론 제가 항상 옳다는 것은 아니지만 전 그렇게 생각합니다.
작년하고 올해 XXX 기반 사업 모의해킹에 사업에 제가 PM을 맞았는데요. 공공의 일이다 보니, PM이 직접 모의해킹을 하면 안된다고 해서 올해도 전문가를 찾아서 의뢰해야 합니다.
하지만, 웹 사이트 모의해킹 전문가는 너무 많은데요. Active X 프로그램에 무작위 공격을 할 수 있는 사람도 별로 없습니다.
간단하게 무작위 공격을 하려면 윈도우에서 SendMessage API를 사용해서 해당 핸드에 메시지를 전송하면 되는데 그것은 자신이 직접 프로그램을 만들어야 합니다.
이런 것들은 도구도 없습니다. SQL injection을 할 때는 sqlmap 등의 도구가 있지만 실제 필요한 것은 도구가 없어서 그것을 자유롭게 하는 사람이 필요합니다.
그래서 내가 관제, 컨설팅, 모의해킹, 관리적 보안 중에서 어떤 일을 하건 가장 중요한 것은 자신이 엔지니어 인가?
물어보세요. 즉, 나 아니면 안되는 것이 있나~
이 질문에 계속 노력하고 발전해야지 대우를 받게될 것입니다.
만약 내가 XXX 툴로 정해진 패턴 이외에 다른 것을 못한다면 그 사람은 대우를 못받는 것이 저는 맞다고 생각합니다.
항상의 질문하세요?
- 웹 사이트에 들어가면 악성코드가 자동으로 다운로드 되는데 들어만 간단어 어떻게 다운로드 하지?
- PDF에 악성코드는 도대체 어떻게 은닉하지?
- IDS의 기본인 snort는 도대체 어떻게 구현된 것이지?
무수히 많은 질문을 할 때 그 사람이 엔지니어가 되는 것입니다. |