나만의정리함

'결혼의 꿈' 훔친 해킹 수법은?

서나노야 2006. 9. 14. 05:45
'결혼의 꿈' 훔친 해킹 수법은? 조회수   140  
최근 국내 결혼정보 회사를 해킹하여 회원정보를 취득하고, 회사 보안담당자에게 금품을 요구한 피의자가 경찰에 의해 검거되었다. 피의자는 중국에서 유포된 SQL 인젝션(Injection) 자동화 툴을 사용하여 피해업체의 웹서버를 해킹한 단순 스크립트 키드에 불과했다. 스크립트 키드란 전문적인 지식없이 온라인상에서 해킹 툴을 찾아 악용하는 초보 공격자를 일컫는다. 이는 온라인에서 구한 해킹툴을 이용해서 손쉽게 침입 당하는 국내 웹사이트 보안의 현 주소를 단적으로 보여주는 사례라 하겠다.

위에서 언급한 사고는 80포트(HTTP)를 통한 웹해킹 중 SQL 인젝션 공격코드를 사용하였다. 이는 보안취약점과는 무관한 나쁜 프로그래밍 코드가 주 원인인데, 클라이언트로부터 입력된 값을 서버에서 제대로 검사하지 않기 때문에 발생한다. 웹 상에서 검사되지 않고 넘어온 입력값은 SQL Query문자열로 조합되고, 단순 조합된 Query문이 관리자 권한으로 실행될 경우 공격자는 웹서버를 장악하게 된다.

SQL 인젝션이 발생하는 원인과 해결책을 정리하면 아래와 같다.
[요인1] 클라이언트로부터 입력되는 값을 검사과정 없이 그대로 사용한다.
- 입력 값이 숫자일 경우 IsNumeric() 함수 등을 통해 유효성을 검증한다
- 입력 값이 문자일 경우 특수문자는 정규표현식을 통해 검증하거나 치환한다
- 데이터베이스 쿼리에 민감한 키워드(EXEC XP_, EXEC_SP_, UNION SELECT...)를 검사한다

[요인2] 수신받은 입력값을 SQL Query문자열과 단순 조합하여 명령어로 사용한다.
- Query 빌드는 매개변수 Query를 사용하는 저장 프로시저로 구현한다

[요인3] Query가 SA 계정으로 실행되거나, 확장저장 프로시저로 시스템 명령의 전송이 가능하다.
- SA 계정을 삭제하거나 제거한다
- 시스템 명령이 가능한 확장 프로시저(xp_cmdshell, xp_regred, sp_adduser...)를 제거한다
- 권한을 최소화한 제한된 계정을 생성하여 데이터베이스 연결을 한다

보안성을 무시한 채 화려한 겉 포장만을 중시한 웹사이트는 사상누각과도 같아서 해커들의 아주 좋은 먹이감이 되고 만다. 자신이 운영중인 웹사이트는 웹해킹 공격에 안전한지 미리 미리 점검하여 해킹사고의 또 다른 피해자가 되지 않도록 하는 것이 필요하겠다.@


[출처] 안철수연구소 ASEC REPORT 8월호