교육기관홈페이지개인정보노출유형및방지방안 - 행정안전부 추진배경 2011년개인정보노출모니터링분석결과초중고및대학등교육기관홈페이지를통한주민번호노출사례가상반기에많이발생 - 합격자및신입생명단등각종명단을홈페이지에게시하면서주민번호등개인정보노출 국회, 언론등에서홈페이지개인정보노출문제를지속적으로제기 ( 국회 ) 공공기관홈페이지개인정보노출심각, 대책마련시급 ( 국감, 11.9.20) ( 언론 ) 전문대학개인정보보호 F학점 ( 전자신문, '12.2.8) 교육기관의주요노출사례및방지대책을각급교육기관에알려유사사례재발을방지하고자함 홈페이지노출현황 점검기간 : 2011. 2. 1 ~ 12. 31 점검대상 : 공공기관 (34천여개사이트 ) 노출현황 : 716개사이트에서 54,930건노출 - 전체노출사이트중교육기관사이트가 69.7% 차지 구분 계 중앙 행정 지자체 교육행정 교육기관 초중고및대학 공사 공단 기타 사이트수 716 42 126 27 472 43 6 ( 사이트비율 ) 100% 5.9% 17.6% 3.8% 65.9% 6% 0.8% - 1 -
주요노출유형 각종명단 ( 부 ) - 합격자명단, 신입생명단, 학부모교육참가자명단등각종명단을홈페이지에게시하면서주민번호등개인정보노출 - 특히, 인터넷통신비지원대상자명단, 장기결식자명단, 저소득층학생명단등을홈페이지에게시하는사례가있어민감정보의노출우려가큼 학급경영록 - 학급운영과관련, 학급별로매학기마다제작되는학급경영록에학생의주민번호, 주소와학부모의휴대폰번호등을기재하여홈페이지에게시 체험학습및동아리등참가자명단 - 수학여행, 스키캠프, 영어캠프등의참석자명단및동아리회원명단등을게시하면서참가자및회원의주민번호등포함 대체인력계획 - 급식및기간제교사운영계획서등에대체인력의인적사항과함께주민번호를포함하여게시 업무담당자부주의에의해학생, 학부모인적사항등불필요한개인정보를포함하여홈페이지에게시 엑셀자료첨부시각시트에개인정보가포함되어있는지여부, 특히숨김처리된개인정보포함여부를확인하지않고홈페이지에게시 홈페이지노출차단프로그램도입기관임에도, 웹사이트및게시판적용누락, 개편후프로그램미실행등의관리미흡으로개인정보노출사례발생 - 2 -
노출방지방안 < 홈페이지관리자조치사항 > 홈페이지게시자료에대한관리철저 - 개인정보가노출되지않도록게시판글및첨부파일지속확인 - 홈페이지개편등으로발생한휴면페이지삭제또는개인정보 포함여부일제점검 게시판글쓰기화면에개인정보노출에따른법적처벌가능성 등을담은경고문구반드시게재 게시판경고문구예시 게시판에글쓰기를하는경우, 본문또는첨부파일내에개인정보 ( 주민등록번호, 성명, 연락처등 ) 가포함되어게시되지않도록유의하시기바랍니다. 개인정보를포함하여게시하는경우에는불특정다수에게개인정보가노출되어악용될수있으며, 특히타인의개인정보가노출되는경우에는개인정보보호법에따라처벌을받을수있음을알려드립니다. 구글등포털의검색로봇수집에따른개인정보노출이가능하므로 게시판글쓰기부분을검색로봇이수집하지못하도록검색차단 기능 (Robot.txt) 설정 ( 붙임 2 활용 ) 로봇배제표준적용시유의할점 로봇배제표준적용을홈페이지전체내용에대해검색엔진에노출되지않도록설정할경우, 일반검색포털사이트에서기관의홈페이지가검색되지않을수있으므로, 외부에비공개되어야할정보를포함하고있는폴더 ( 또는페이지 ) 혹은인증절차를거쳐접근되는폴더 ( 또는페이지 ) 등에제한적으로로봇배제표준을설정하여사용 게시판을운영하는홈페이지는개인정보노출차단시스템도입 - 도입이어려운경우, 홈페이지게시판글등록시주민번호등 개인정보가포함되어있는지점검하는방안적용 ( 붙임 3 활용 ) 이외, " 공공기관홈페이지개인정보노출방지가이드라인 (www. privacy.go.kr 의자료실의지침자료에서확인 ) 을참조하여노출방지조치 - 3 -
< 업무담당자조치사항 > 업무상홈페이지에글을게재하는경우에는개인정보가포함되어있는지철저하게검사하고부서장의결재 ( 확인 ) 를거쳐게시 - 주요노출유형을참고하여명부 명단등개인정보가대량포함된파일 ( 엑셀, 한글등 ) 을게시하지않도록주의 - 엑셀파일을게시하는경우, 첨부파일을열었을때에는보이지않지만숨김처리된개인정보가포함되어있는지확인 < 중점확인사항 > 엑셀파일내의다른 Sheet에개인정보가포함되어있는지확인엑셀파일의숨김처리된 Sheet( 또는셀 ) 에개인정보가포함되어있는지확인 개인정보숨김처리를한경우 개인정보숨김을취소하면개인정보노출 개인정보위에이미지를덮거나글자색을변경하여안보이게처리한경우, 글자색등을변경하면개인정보노출엑셀의치환함수를적용하여개인정보를마스킹 (*) 처리한경우, 해당개인정보가어딘가에숨김처리되어있고, * 처리된정보도검색으로개인정보노출 문의처 - 행정안전부개인정보보호과 : 김지희주무관, (02)2100-3345 - 한국인터넷진흥원개인정보침해대응팀 : 여돈구주임, (02)405-5632 - 4 -
참고 1 개인정보노출사례화면 1) 학급경영록 2) 교육과정 - 5 -
3) 대체인력계획서 4) 저소득층지원 - 6 -
5) 합격자명단 6) 동아리명단 - 7 -
7) 캠프참가자명단 8) 기타명단 - 8 -
참고 2 로봇배제표준적용방법 가 ) 로봇배제표준이란? 구글등검색로봇이정보수집을위해사이트를방문할경우를대비하여, 검색로봇에대한웹사이트의디렉토리및파일들에대한검색조건을명시해놓은국제규약입니다. 로봇의배제와관련된내용을적어놓은 robots.txt 파일을사이트의최상위주소 ( 서버루트디렉토리예 : www.kissp.co.kr/robots.txt) 에저장하면됩니다. robots.txt를서브디렉토리에놓는경우효력이없다는사실에주의해야합니다. 정상적인검색로봇은사이트방문시가장먼저웹사이트의로봇배제표준파일 (robots.txt) 를확인하고, 파일에명시된사항을준수하면서웹사이트의컨텐츠를수집합니다. 단, 로봇배제표준은방지기술이아닌사이트및검색로봇운영자간의단순한약속 ( 규약 ) 이므로악의적인로봇이로봇배제표준을무시하고사이트의컨텐츠를수집할수도있습니다. 나 ) robots.txt 파일생성방법 robots.txt 파일의내용은크게 2가지부분으로나뉘어집니다. 로봇의이름을적는부분 (User-agent), 방문을허용하지않을디렉터리를적는부분 (Disallow) 으로구분됩니다. robots.txt 문법 User-agent: Allow or Disallow: * 은 User-agent 이고, 특정 User-agent 를지정할경우로봇이름을지정 Disallow에서 / 는모든하위문서에대해배제를의미하고아무것도지정하지않으면허가를의미 - 9 -
로봇배제표준적용범위 User-agent: * Disallow: / User-agent: * Disallow: User-agent: * Disallow: /cgi-bin/ Disallow: /temp/ Disallow: /private/ User-agent: kkkkkk Disallow: / User-agent:* Disallow: User-agent: kkkkkk Disallow: User-agent:* Disallow: / User-Agent:* Disallow:/directory/a.html User-Agent:* Disallow: / Allow:/information User-agent: * Disallow: /*.php 홈페이지전체내용을모든검색엔진에노출방지홈페이지전체내용을모든검색엔진에노출허용홈페이지의디렉토리가 cgi-bin, tmp, private( 실행파일모음 ) 등인것에대한노출방지특정검색엔진의접근만을거부 (ex: kkkkkk) 특정검색엔진의접근만을허용 (ex: kkkkkk) 모든검색엔진에대해모든홈페이지접근을허용하지만 /directory/a.html 의접근을거부모든검색엔진에대해모든홈페이지접근을거부하지만디렉토리명이 information인것에대한접근을허가파일확장자로차단 (ex: 사이트의모든 PHP 프로그램은검색로봇이접근을거부 ) 다 ) 로봇배제표준적용유무확인방법 홈페이지에적용된 robots.txt 파일과 URL 확인홈페이지에 robots.txt 를적용한이후에적용된 robots.txt 파일이잘적용되었는지여부를파악하기위해직접 URL을통해점검을해봅니다. - 10 -
Robots.txt Checker를통한적용유무확인홈페이지에적용된 robots.txt 파일의 URL 확인을한후 robots.txt 파일적용이문법적으로틀리지않고잘적용되었는지여부를확인합니다. robots.txt 파일이잘적용되었는지여부확인은 Robots.txt Checker 사이트에서확인할수있습니다. - 각포털사이트에서 Robots.txt Checker 사이트를찾습니다. - Robots.txt Checker 실행후화면에서입력란에웹서버에적용된 robots.txt 파일의전체 URL을입력합니다. - robots.txt 파일의적용여부확인 - 11 -
라 ) 로봇배제표준대안 HTML 의 meta 태그이용 html 문서의 <head> 와 </head> 사이에입력합니다. <meta name="robots" content="noindex, Nofollow" /> 이러한방법은일반적인방법이아니고, 아직까지일부의로봇만이지원 검색엔진 LIST 검색엔진 검색로봇 다음구글야후네이버 Bing Microsoft Daumoa Googlebot Yahoo! Slurp Naverbot Bingbot Msnbot 로봇배제표준적용시유의할점로봇배제표준적용을홈페이지전체내용에대해검색엔진에노출되지않도록설정할경우, 일반검색포털사이트에서기관의홈페이지가검색되지않을수있으므로, 외부에비공개되어야할정보를포함하고있는폴더 ( 또는페이지 ) 혹은인증절차를거쳐접근되는폴더 ( 또는페이지 ) 등에제한적으로로봇배제표준을설정하여사용 - 12 -
참고 3 게시판글등록시주민번호등개인정보필터링적용방법 홈페이지게시판에글을등록할경우개인정보가포함되어있는지를점검할수있도록구축할수있습니다. 이때정규표현식을통해개인정보로간주되는항목을찾을수있습니다. 정규표현식은각각의버전마다지원하는함수및문법이상이할수있으므로, 사용하는프로그램환경에맞는정규표현식을사용하시기바랍니다. 가 ) 정규표현식 ( 正規表現式, Regular Expression) 정규표현식 이란? 특정한규칙을가진문자열의집합을표현하는데사용하는형식언어입니다. 정규표현식은많은텍스트편집기와프로그래밍언어에서문자열의검색과치환을위해지원하고있으며, 특히 Perl과 Tcl은언어자체에강력한정규표현식구현을내장하고있습니다. 정규표현식은컴퓨터과학의정규언어로부터유래하였으나구현체에따라서정규언어보다더넓은언어를표현할수있는경우도있으며, 심지어정규표현식자체의문법도여러가지가있습니다. 이중표준화된것으로는 POSIX의확장정규표현식이있으며, 표준화되지는않았지만 Perl의정규표현식과그대체구현인 PCRE도널리사용됩니다. 정규표현식은주로텍스트탐색과문자열조작에쓰입니다. 정규표현식은하나의문자와일치 (match) 하거나, 혹은문자열의일부분 (substring) 이나전체문자열인문자집합들과일치하게됩니다. - 13 -
문법 ( 기본적인정규표현식문법 ) 몇몇문자는특정한논리적관계를나타내는기호로쓰입니다. 이를제외한 나머지문자는일반적인문자를나타냅니다. 선택기호 : " " 기호는여러식중에서하나를선택합니다. 예를들어, "abc adc" 는 abc라는문자열과 adc라는문자열을모두포함합니다. 묶기기호 : "(" 와 ")" 로여러식을하나로묶을수있습니다. "abc adc" 와 "a(b d)c" 는같은의미를가집니다. 개수기호 : 문자뒤에붙어문자의개수를나타냅니다. - "*" : 0개이상. "a*b" 는 "b", "ab", "aab", "aaab" 를포함 - "+" : 1개이상. "a+b" 는 "ab", "aab", "aaab" 를포함하지만 "b" 는포함하지않음 - "?" : 0개또는 1개. "a?b" 는 "b", "ab" 를포함 - "{m, n}" : m개이상 n개이하. "a{1,3}b" 는 "ab", "aab", "aaab" 를포함하지만, "b" 나 "aaaab" 는포함하지않음 ex) "(fa mo b?o)ther" 는 "father", "mother", "bother", "other" 를나타냅니다. 많은프로그래밍언어에서는이를확장한문법을가지고있습니다. 이중일반적으로사용되는연산자는다음과같습니다. - "[]" : "[" 과 "]" 사이의문자중하나를선택합니다. " " 를여러개쓴것과같은의미를가짐예를들면, [abc]d는 ad, bd, cd를뜻함. 또한, "-" 기호와함께쓰면문자의범위를지정할수있습니다. "[a-z]" 는 a부터 z까지중하나, "[1-9]" 는 1부터 9까지중의하나를뜻함 - "[^]" : "[^" 과 "]" 사이의문자를제외한나머지하나를선택예를들면, [^abc]d는 ad, bd, cd는포함하지않고 ed, fd 등 - 14 -
포함. [^a-z] 는알파벳소문자로시작하지않는모든문자를나타냄 - "^", "$" : 각각문자열의처음과끝을나타냄. 나 ) 개인정보패턴예시 (linux/unix C - regex 버전 ) 주민등록번호 ([01][0-9]{5}[[:space:],~-]+[1-4][0-9]{6} [2-9][0-9]{5}[[:space:],~-]+[1-2][0-9]{6}) 여권번호 [a-za-z]{2}[-~.[:space:]][0-9]{7} 운전면허번호 [0-9]{2}[-~.[:space:]][0-9]{6}[-~.[:space:]][0-9]{2} 핸드폰번호 01[016789][-~.[:space:]][0-9]{3,4}[-~.[:space:]][0-9]{4} 신용카드번호 [34569][0-9]{3}[-~.[:space:]][0-9]{4}[-~.[:space:]][0-9]{4}[-~.[:space:]][0-9]{4} 건강보험번호 [1257][-~.[:space:]][0-9]{10} 계좌번호 ([0-9]{2}[-~.[:space:]][0-9]{2}[-~.[:space:]][0-9]{6} [0-9]{3}[-~.[:space:]]([0-9]{5,6}[-~.[:sp ace:]][0-9]{3} [0-9]{6}[-~.[:space:]][0-9]{5} [0-9]{2,3}[-~.[:space:]][0-9]{6} [0-9]{2}[-~.[:sp ace:]][0-9]{7} [0-9]{2}[-~.[:space:]][0-9]{4,6}[-~.[:space:]][0-9] [0-9]{5}[-~.[:space:]][0-9]{ 3}[-~.[:space:]][0-9]{2} [0-9]{2}[-~.[:space:]][0-9]{5}[-~.[:space:]][0-9]{3} [0-9]{4}[-~.[:spa ce:]][0-9]{4}[-~.[:space:]][0-9]{3} [0-9]{6}[-~.[:space:]][0-9]{2}[-~.[:space:]][0-9]{3} [0-9]{ 2}[-~.[:space:]][0-9]{2}[-~.[:space:]][0-9]{7}) [0-9]{4}[-~.[:space:]]([0-9]{3}[-~.[:space:]][0-9]{6} [0-9]{2}[-~.[:space:]][0-9]{6}[-~.[:space:]][0-9]) [0-9]{5}[-~.[:space:]][0-9]{2}[-~.[:s pace:]][0-9]{6} [0-9]{6}[-~.[:space:]][0-9]{2}[-~.[:space:]][0-9]{5,6}) 개인정보패턴적용예시 (Linux/Unix C - regex 버전 ) - 15 -