안전한 인터넷 플랫폼은 어떻게 해야 가능할까

현장속으로/세미나 2013. 6. 11. 15:09

지난 5월 9일, 논현동 파티오나인에서 ‘실제 사례를 통해 보는 빅데이터ㆍ클라우드ㆍHTML5’ 란 주제로 ㈜아이뉴스24가 주관하는 『2013 NEXCOM Tech Market』 이 열렸다. 안랩 융합제품개발실 김기영 실장은 ‘HTML5 기반 웹/웹앱 보안’을 주제로 발표하였다.

김기영 실장은 HTML5에 기반 한 웹 플랫폼의 변화와 그에 따른 웹 보안 이슈, HTML5 보안 이슈 그리고 보안 강화 방안의 순서로 발표를 진행하였다. 웹 플랫폼이 발전함에 따라 사용자와 개발자 모두 더 빠르고 편리하게 웹을 이용하게 되었지만, 공격 기법과 취약점은 훨씬 증가하였다. 사용자와 개발자 모두 항상 보안에 대한 긴장을 늦춰서는 안 되는 이유이다. 다음은 김기영 실장의 주요 발표 내용. 

HTML5에 기반한 웹 플랫폼의 변화

웹 플랫폼의 발달은 다양해진 기술만큼 이에 따른 취약점을 이용한 공격들이 많아졌다. HTML5는 사용하지 않아도, 브라우저가 HTML5를 지원하고 있기 때문에 공격코드를 HTML5로 하면 동작이 가능해 모두 HTML5의 보안 문제에 대비해야 한다. 

웹 보안 이슈

 Phishing 

주로 이메일/메신저/SMS 등을 통해 사용자를 가짜 사이트로 이끈 뒤 개인정보와 금융정보 등을 탈취하는 공격

 Pharming

악성코드를 통해 Host file 조작, API Hooking 이나 DNS 조작 등을 통하여 사용자를 다른 사이트로 접근하게 하여 피싱과 같이 정보를 탈취.

 Session Hijacking

유효한 세션의 정보를 탈취하여 인가되지 않은 접속을 하는 공격

 Click Jacking

사용자가 의도한 클릭과 다른 동작을 하도록 하는 공격

 XSS (Cross Site  Scripting)

다른 사람이 보는 웹화면에 client-side-script를 삽입하여 접근 제어를 우회하고 해당사이트의 개인정보나 개인의 쿠키정보 등을 탈취하는 공격

 SQL Injection

입력 필드에 SQL문의 일부를 삽입하여 서버에서의 SQL의 동작을 바꾸는 방법으로 인증우회를 하며 또 다른 공격괴 연결되도록 한다.

 Web Shell

웹 기반의 shell로서 웹서버의 다양한 취약점을 통해 server page를 업로드하고 브라우저를 통하여 명령전달 및 그 결과를 받아보는 공격 방식.

Phshing은 스마트폰의 발전으로 SMS+Phsing라 불리는 Smishing으로 휴대폰 해킹이 늘어가며 문제가 되고 있다. 또한 클라이언트에 침투해서 클라이언트시스템을 바꾸어 사용자가 마치 가짜사이트를 진짜사이트처럼 접속하게 속이는 Pharming으로 Phishing이 더욱 강력해지고 있다.

Session Hijacking에는 공격기법이 자신의 세션으로 정상 사용자가 로그인 하게 하는 방법인 Session Fixation, packet sniffing을 통해 유효 session cookie를 가져오는 방법인 Session Sidejacking, 공격자가 웹사이트에 client-side-script를 삽입하여 사용자의 입력정보나 세션정보를 취하는 방법인 Cross-site scripting(XSS)로 세 가지이다.

Click Jacking은 페이스북에서 이용된 사례가 있으며, 뉴스피드에 뜬 성인 동영상을 호기심에 play하면 곧바로 “공유하기”나 “좋아요”로 동작이 된 것이다. 이를 통해 동영상은 많이 퍼져나가 공격자들은 돈을 벌게 된다.이와 같은 공격이 빈번히 발생하자 페이스북에서는 Click Jacking을 차단한 것으로 보인다.

SQL Injection공격에 이용되는 쿼리문의 예시는 아래와 같다.

statement = "SELECT * FROM users WHERE name = '" + userName+ "';“\

SELECT * FROM users WHERE name = '' OR '1'='1';

구문에서 뒤의 OR '1'='1'; 은 무조건 참이 되게 하는 쿼리문이다. 이러한 쿼리문으로 SQL의 조건을 변경하여 이상한 결과가 출력되도록 한다.

Web Shell은 사이트의 안전성을 평가하는 항목 중 필수적으로 들어갈 정도로 중요하며, 개발자가 만들지 않은 업로드페이지를 호출하여 공격자가 원하는 쉘 명령을 실행을 한다. 그 결과 정보를 삭제 및 추가 등 심각한 문제가 발생한다. 

HTML5 보안 이

HTML5의 기본사항은 WEB as CS로, HTML5의 기능이 매우 다양해졌다. 이러한 기능들의 조합으로 이전에 불가능 했던 공격들이 가능해지며 공격접점이 증가하였다.

위 그림과 같이 매우 다양한 방법의 공격이 HTML5에 존재한다. 공격은 어마어마한 기술을 사용하는 것이 아닌, 대부분 개발의 허점을 찾아 단순하게 이뤄지기 때문이다. 이러한 공격은 Bug를 통해 많이 이루어진다. Bug가 꼭 취약점을 의미하지는 않지만 기능이 많을 수록 취약점도 많아진다. 이러한 Bug를 몇 가지 살펴보면 브라우저와 멀티미디어가 있다. 브라우저에서는 Use After Free와 Buffer Overflow, 멀티미디어는 웹과 브라우저가 아닌 수많은 어플리케이션과 시스템이 취약점으로 확장을 가져온다. 

보안 강화 방안

 Secure Coding

개발자들은 머릿속에서만 만들어 둔 전제를 코드로 구현해야 한다.            텍스트를 받아서 처리한다고 생각을 하면, 해당 데이터가 텍스트인지 여부, 글자의 길이를 확인하는 코드 등 머릿속 전제를 코드로 구현한다면 보안성이 월등히 높아질 것이다.

 Secure Channel

 HTTPS는 SOP를 강제하는 효과가 있다. 따라서 대부분의 HTML 보안 이슈를 원천 차단하는 효과가 있다. 따라서 페이스북, 구글과 같이 HTTPS로 접근하는 사이트를 이용할 것을 권유한다. 이를 이용하면 중간에 데이터가 들어와 변조가 되는것은 막아준다.

 클라이언트 side에서의

 컨텐츠 검증

Channel이 보호된 상태라면 클라이언트에서 스크립트 실행 전 점검하는 코드를 삽입해준다. 악성코드에 삽입되는 코드를 필터링하는 코드나 데이터의 길이를 체크하는 코드를 삽입해 주는 것이 좋다.

 웹방화벽

웹방화벽을 이용해 SQL Injection, XSS 등 다양한 웹 취약점에 대한 공격을 방어한다. 하지만 방화벽을 너무 믿는것 보다는 정기적 점검과 코드수정이 더 중요하다.

 웹 취약점 점검

자동 점검 도구나 서비스를 통한 정기적이고 지속적인 점검이 필요하다.

 웹 앱 검증

애플은 앱검증을 철저히 하기 때문에 악성코드가 없다. 사전검증은 악성코드를 줄일 수 있기 때문에 앱 검증을 철저히 해야 한다.

Ahn


 대학생기자 박서진 / 서울여대 정보보호학과

 끝없이 노력하고 끝없이 인내하고 끝없이 겸손하자.

 


댓글을 달아 주세요