본문 바로가기
  • AI (Artificial Intelligence)
Security

시큐어 코딩 - 블랙리스트 / 화이트리스트

by 로샤스 2014. 3. 26.

참고자료 : whithlist.pdf

 

화이트리스트(whitelist)란?

화이티리스트란 '안전'이 증명된 것만을 허용하는 것으로 '악의성'이 입증된 것을 차단하는 블랙리스트 보안과 상반되는 보안 방식 이다. 화이트리스트, 블랙리스트라는 용어 대신 'positive'와 'nagative' 보안 방법으로 불려지기도 합니다. 

예를 들어 이메일에 IP 기반의 화이트리스트 방식을 적용하면 사전에 입증된 정상 IP로부터의 이메일만 허용하고, 이외의 IP로부터의 이메일은 차단하게 된다. 반대로 블랙리스트 방식은 악성 IP로 판명된 IP에서 발송되는 이메일을 제외한 모든 이메일을 허용하게 됩니다.

안전이 입증된 것만을 허용하기에 화이트리스트 보안은 보다 강력한 보안성을 유지할 수 있지만, 운용의 어려움으로 인해 전면적으로 이용되지는 못했습니다. 앞서 예로 들은 이메일의 경우, 화이트리스트 방식만을 적용하면 승인된 이용자라고 할지라도 출장 등에서 이메일을 내부 사용자에게 전달할 수 없게 되는 불편이 발생할 수 있습니다.

블랙리스트 방식의 대표적인 솔루션은 바로 안티바이러스 솔루션입니다. 안티바이러스 솔루션은 위험성이 입증된 악성코드에 대해 시그니처를 제작하고, 유입되는 파일을 이 시그니처와 비교, 검토한 후 일치할 경우 치료, 혹은 차단함으로써 악성코드에 의한 위협을 방지하게 됩니다. 이러한 방식은 편의성이 높지만, 알려지지 않은 신종 공격에 대해 취약하다는 점이 단점입니다.

다양한 애플리케이션이 활용되는 오늘날 화이트리스트 방식의 보안은 제한적인 활용이 불가피합니다. 수많은 애플리케이션이 이용되고, 또 보안 취약점 해결, 성능향상 등을 위해 잦은 업데이트가 이뤄지는 현실에서 화이트리스트 기반의 보안은 사용자 및 관리의 어려움으로 인한 한계가 분명히 존재합니다. 

새롭게 보안 필수품으로 떠오른 웹 애플리케이션 방화벽(WAF)의 경우에도, 초기에는 화이트리스트와 같은 포지티브 방식이 기본 사항으로 여겨졌지만, 운영의 어려움으로 인해 현재는 네거티브 방식의 보안 기법을 함께 사용하는 방식으로 변화했습니다.

하지만 최근 화이트리스트 보안은 새롭게 재조명되고 있습니다. 점점 교활해지는 사이버 위협으로 공격방어가 더욱 더 어려움에 봉착하고 있을 뿐 아니라 정교한 타깃 공격으로 인한 피해도 급증하고 있는 까닭입니다. 물론 화이트리스트 방식을 일반적인 PC와 시스템에 적용할 수는 없지만, 특정한 업무만 수행하는 특수서버, 또는 산업자동화 기기를 제어하는 산업용 컴퓨터와 같이 변화가 적고, 운용되는 애플리케이션 숫자가 많지 않은 기기에서는 효용 가치가 높다는 것입니다. 

 

 

시큐어 코딩 가이드 (OWASP 2010 Secure Coding Practices Guide와 2012 안행부(KISA) 에서 제시)

 

XSS와 Injection, Header Manipulation을 방지하기 위한 블랙리스트 처리는 다음과 같다.

 

-- 

+ 

< 

> 

db_name 

select 

insert

update 

delete 

count( 

drop table 

truncate 

asc( 

mid( 

char( 

xp_cmdshell 

exec master 

net localgroup administrators 

net user 

script 

iframe 

inject_test 

xss_check 

and 

 delete

alter 

 

 

 

 

% 

( 

) 

& 

\ 

\ 

\\ 

! 

? 

|| 

‘ ‘ 

order by 

@@version 

 

 

%0d

%0a

\r

\n

 

 

.

..

/

../

..\

%c0

%ae

 

 

 

추가적으로 파라미터 길이제한 한다.

하지만 블랙리스트는 불안정한 방어법으로 위에 제시한 내용만으로는 부족한 점이 많다.

이를 확실히 하기 위해서는 영문, 숫자만을 입력받을 수 있는 정규식을 사용한 화이트리스트를 사용하는 것이 좋을 것.

 

[^[:alnum:]]|select|delete|update|insert|create|alter|drop"

=> 알파벳과 숫자만을 대상으로 하며 이중 인젝션 가능한 문자인 select, delete, update, insert, create, alter, drop을 제외하는 정규식

 

 

 

 

 

 

 

 

 

 

 

출처: https://www.google.com/search?q=white+lists%EB%9E%80&oq=white+lists%EB%9E%80&aqs=chrome..69i57j0l5.6667j0j4&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8# 

출처 : http://blog.naver.com/prokyhsigma?Redirect=Log&logNo=120209174255

 

 

 

 

 

'Security' 카테고리의 다른 글

다음 세대 V3, AhnLab Next V3 – 평판 기반 탐지  (0) 2014.03.27
평판(reputation)기반 탐지보안  (0) 2014.03.27
침입탐지 기법  (0) 2014.03.17
침입 탐지 방법론  (0) 2014.03.17
IDS, IPS, UTM, WAF, Honeypot, Honeynet  (0) 2014.03.17

댓글