-
IT·보안
본격 개막한 MyData 산업 시대
데이터 3법(개인정보보호법,정보통신망법,신용정보법 개정안)에 따라 마이데이터 시대가 본격화되었다. 정보주체인 개인이 행정‧공공기관 등이 보유한 본인의 정보를 컴퓨터 등 정보처리장치로 판독이 가능한 형태로 받아 본인이 직접 다양한 공공‧민간 서비스 수혜 등을 목적으로 활용하는 것을 말합니다.즉, 쉽게 말해 마이데이터란 정보주체인 개인이 본인의 정보를 관리, 통제하고, 이를 신용관리, 자산관리, 나아가 건강관리까지 개인생활에 능동적으로 활용하는 일련의 과정을 말한다.마이데이터는 정보주체 스스로 본인의 정보를 관리, 통제하기 어려운 ‘통신,의료,금융’ 등의 분야를 중심으로 산업을 추진하고 있으며, 지난해 35개의 기업이 마이데이터 사업 예비 허가 신청을 하였습니다. 이 중 21개의 기업이 예비 허가 사업자로 선정되었고,허가 요건 보완 8개 기업(민앤지, 비바리퍼블리카, 뱅큐, 아이지넷, 카카오페이, 쿠론, 핀테크, 해빗팩토리)과 11월에 예비 허가 신청을 한 2개의 기업(SC제일은행, SK프래닛)의 예비 허가 심사 결과는 1월 중순에 금융위원회에 상정될 예정입니다. 또한 앞서 예비 허가를 받은 21개의 기업은 1월 말 본 허가가 이뤄지게 됩니다.MyData 사업 예비 허가 기업마이데이터 사업 주요 허가 조건* 자본금(최소 자본금 5억 원 이상)* 물적 시설(해킹 방지, 망분리 수행 등을 위한 충분한 보안 설비)* 사업계획의 타당성(서비스 경쟁력, 형신성, 소비자 보호체계 마련)* 대주주 적격성(충분한 출자 능력, 건전한 재무상태)* 신청인의 임원 적격성(신청인의 임원에 대한 벌금, 제재사실 여부)* 전문성 요건(데이터 처리 경험 등 데이터 산업 이해도)(출처 : 금융위원회)소비자의 기대효과* 금융회사 등에 흩어져 있는 자신의 신용정보(금융 상품, 가입 내역, 자산 내역 등)를 한 눈에 확인하고 쉽게 관리* 은행, 보험회사, 카드회사 등 개별 금융회사에 각각 접근하여 정보를 수집할 필요가 없어 금융 정보 접근이 편리* 자신에게 특화된 정보 관리, 자산 관리, 신용 관리 등의 서비스를 합리적인 비용으로 제공* MyData 사업자가 카드 거래내역, 보험정보, 투자정보 등을 분석하여 유리한 금융상품을 추천* 공공정보(국세 및 지방세, 4대 보혐료 납부 내역 등)도 손쉽게 수집하고 관리가 가능(출처 : 2020. 5. 15 금융위원회 보도자료)산업체의 기대효과* 데이터 이동 활성화 등에 따라 금융회사는 상품 제조 방식을 변화시켜 금융산업 생산성 향상* 금융회사 간의 데이터 이동은 금융회사가 개인의 특성을 반영한 맞춤형 금융상품 개발을 위한 인센티브 제공* 데이터 전송이력, 활용 내역 등이 투명하게 관리되고 정보보호 및 보안 측면이 향상되어 안전한 데이터 이용 환경 조성* API 도입, 데이터 표준화 등으로 데이터 산업 진입장벽이 완화되고 인공지능 등 신기술을 활용한 신사업 추진에 용이(출처 : 2020. 5. 15 금융위원회 보도자료)마이데이터의 핵심은 ‘개인정보자기결정권’과 ‘이동권’이다. ‘개인정보자기결정권’은 자신에 관한 정보가 언제 누구에게 어느 범위까지 알려지고 또 이용되도록 할 것인지를 그 정보주체 개인 스스로 결정할 수 있는 권리를 말하며 ‘개인정보이동권 (전송 요구권)’은 정보주체가 개인의 데이터에 대한 전송을 요청 하면 개인정보처리자(기업, 기관 등)는 보유한 데이터를 개인(요청자) 또는 요청자가 지정한 제 3자에게 데이터를 전송하는 권리이다.즉, 지금까지는 수집된 개인정보의 활용 권한은 수집 기관 및 기업에 부여되어 있었지만 이제는 정보 주체인 개인에게 권한이 주어 집니다. 쉽게 예를 들면 과거에는 위급 상황 발생 시 개인의 의료정보를 알 수 없어 응급 처치를 하는데 어려움이 있었는데 이제는 마이데이터의 ‘개인정보이동권’을 활용하여 기업, 기관 등이 보유하고 있는 본인의 정보를 본인 또는 본인이 지정한 제3자에게 전송을 요구할 수 있으므로 본인의 의료정보를 이용해 보다 신속하게 응급조치를 할 수 있게 됩니다.그 외에도 정부는 마이데이터 산업 활성화를 위해 행정안전부와 16개의 관계기관과의 업무 협약을 체결하므로 인해 의료 분야에서는 전자처방전을 활용하여 중복 검사를 사전에 방지하고 건강 검진 및 의료 처방 데이터를 관리할 수 있습니다. 또한 카드 이용 내역을 분석하여 맛집 추천, 장보기 서비스 등이 제공되고,교통 이용 내역을 분석하여 대중교통 사각지대를 해소할 최적의 교통수단 추천이 가능해집니다.‘마이데이터로 누리는 확실한 행복’(출처 : 한국데이터산업진흥원)
-
- 21.01.06
-
IT·보안
기업의 데이터를 위협하는 랜섬웨어
2020년은 코로나바이러스감염증으로 인한 경제 혼란과 함께 기업의 디지털 전환 수요가 늘어나면서 데이터 침해, 대량 데이터 도용 및 판매, 신원 도용, 랜섬웨어 등 지금까지와는 다른 새로운 유형 또는 진화된 보안 위협이 빠르게 확산되고 있어 기업들의 주의가 요구되고 있습니다. 2020년 전 세계적으로 비즈니스에 가장 큰 위협을 주는 대표적인 사이버 위협은 랜섬웨어와 랜섬 DDoS 공격으로 집계되고 있습니다.(보안뉴스) 2020년의 가장 큰 사이버 위협은 압도적으로 랜섬웨어(보안뉴스) 2021년 보안 이슈 전망 TOP 5 “재택근무·5G 노리는 랜섬웨어·APT 조직”(FORTINET BLOG) New Cybersecurity Threat Predictions for 2021랜섬웨어란 Ransom(몸값)과 Ware(제품)의 합성어로 랜섬웨어는 PC 또는 서버, 네트워크에 이르기까지 모든 파일과 문서를 암호화하는 악성 소프트웨어(Malware)로 과거에는 데이터를 암호화하고, 금전을 요구하는 형태였지만 현재는 소프트웨어 악용 및 결함, 노출된 패스워드 및 취약점을 이용하여 계정 탈취 및 권한을 상승하고 민감정보 및 주요 문서 탐색 및 탈취 등 암호화를 하기 전에 최대한 많은 정보를 취득하고 암호화하여 기업의 데이터를 인질로 잡아 기업 또는 개인에게 금전적인 협상을 요구하고 때로는 탈취한 데이터를 웹사이트(다크 웹[Dark Web])에 노출시키기도 합니다.일반적으로 랜섬웨어에 감염되면 리소스 사용량이 급증하면서 파일을 암호화하기 때문에 랜섬웨어 감염을 쉽게 의심해 볼 수 있지만 종류에 따라 일정한 간격으로 스케쥴링되어 암호화하는 경우도 있어 사용자가 쉽게 알지 못하는 경우도 발생합니다.최초의 랜섬웨어는 AIDS 트로이 목마(PC 사이보그 바이러스)로 알려져 있으며 1989년 세계 보건기구 (WHO)의 AIDS 컨퍼런스 참석자들에게 20,000 개의 감염된 디스크를 나눠준 생물 학자 Joseph Popp에 의해 만들어졌습니다. 이 랜섬웨어(AIDS 트로이 목마)는 PC가 부팅된 횟수를 계산하여 90이 되면 컴퓨터와 파일을 암호화하고 우체국에 $ 189 또는 $ 378을 보내도록 하여 '라이선스 갱신'을 요구했습니다.그로부터 30여 년이 지난 지금 랜섬웨어는 더욱더 진화하였으며 교묘해졌습니다. 우리는 과거의 사례를 통하여 랜섬웨어가 기업과 우리의 생활에 얼마나 많은 악영향을 끼치고 있고 얼마나 심각한지에 대해 확인해 볼 수 있습니다.Locky는 한때 가장 악명 높은 형태의 랜섬웨어로 2016년 내내 전 세계의 조직들에게 혼란을 주었으며, Locky는 탐지를 피하기 위해 정기적으로 코드를 업데이트하였고 30개의 언어로 금전 지불을 요구 하였으며, 가장 널리 퍼진 악성 코드 형태 중 하나였으나, 1년이 채 지나지 않아 사라진 것으로 보고 있습니다.Cerber는 2017년 4월 Windows에 대한 랜섬웨어 공격의 90%를 차지할 만큼 가장 지배적인 형태의 랜섬웨어 였습니다. Cerber는 ‘Ransomware-as-a-Service’로 배포되어 기술적 노하우가 없는 사용자가 공격을 수행하고 일부 수익을 원작자에게 돌려주는 대가로 배포되는 랜섬웨어로 2017년 말 사라진 것처럼 보였지만 오늘날 다양한 형태의 'ransomware-as-a-service’ 모델로 발전되고 있습니다.SamSam는 2017년과 2018년 전 세계적으로 악명을 떨쳤던 랜섬웨어로 의료, 정부, 기업 등을 마비 시켰으며, 미국을 중심으로 하여 전 세계를 위협한 랜섬웨어로 네트워크에 대한 접근 권한 및 데이터 복호화에 대한 비용으로 수만 달러를 요구하였습니다.WannaCry는 ‘Wannacrypt’라고도 불리며 Microsoft Windows를 사용하는 컴퓨터를 타깃으로 합니다. 2017년 5월 전 세계적으로 큰 혼란을 일으키기도 했으며 암호화된 데이터를 복호화하기 위해서는 $300의 비트코인을 요구하였고, 일주일 이내에 지불하지 않으면 모든 파일을 영구적으로 삭제한다고 위협하였습니다.WannaCry는 150개 이상의 국가에서 30만 개의 시스템을 감연 시켰고 네트워크를 무력화시켰습니다. 가장 큰 타격을 입은 러시아는 은행, 통신사, 국가 교통 시스템이 마비되었으며, 영국은 영국 전역의 의료 시스템이 마비되었고, 국내에서는 2017년 8월 LG전자의 키오스에서 WannaCry가 발견되어 네트워크 일부가 마비되었습니다.Sodinokibi는 GandCrab 조직과 제휴하거나 동일한 조직으로 예측되고 있으며, 2019년 4월 처음 등장 후 전 세계적으로 최다 유포된 랜섬웨어로 서비스형 랜섬웨어(Ransomware-as-a-Service)로 운영되고 있습니다.Sodinokibi 주로 메일의 첨부파일을 이용하거나 홈페이지 탈취 후 특정 링크를 통해 파일을 다운로드하게 하여 감염시키며 Maze, Doppelpaymer 및 Ragnarlocker와 같은 랜섬웨어 조직들처럼 피해자가 금전을 지불하지 않으면 탈취한 데이터를 다크 웹에 노출 시키겠다고 협박하며, 2020년 6월 시만텍 연구원들은 REvil ransomware (Sodinokibi) 운영자가 피해자 네트워크에서 신용카드 또는 POS(Point of Sale) 시스템을 탐색하기 시작했다고 밝히기도 했습니다. 2020년 랜섬웨어로 인한 데이터 유출 사례 (보안뉴스) 메이즈 랜섬웨어의 승승장구! 반도체 업체도 당해 (ZDnet) LG전자 데이터 유출..."기밀·개인정보 없어" (뉴스워치) “랜섬웨어 통해 유출당한 카드정보 실체는?”…이랜드, 탈취 데이터 ‘다크웹’ 공개에 바로 신고새로운 또는 변종 랜섬웨어는 지속적으로 생성 되고 있으며, 전 세계 보안 전문 기업들은 2021년에도 랜섬웨어에 의한 공격과 감염이 증가하고 금전적 손해 또한 클 것으로 예측 하였습니다. 또한 과거 해커들은 대기업을 타깃으로 하는 경우가 많았지만 현재는 보안에 다소 취약한 중소기업을 중심으로도 많은 공격과 감염이 이루어지고 있습니다.그렇기 때문에 대기업, 중소기업뿐만 아니라 개인 PC까지도 랜섬웨어 예방을 위해 노력해야 하며, 랜섬웨어에 대한 피해 발생 시 행동 요령은 [KISA 인터넷보호나라 & 랜섬웨어 복구 및 대응 방법]에 자세히 나와 있으며, 보호나라에서는 중소기업을 위한 ‘정보보호 컨설팅 지원 및 중소기업 홈페이지 보안 강화’ 등을 지원 하고 있습니다.만약 랜섬웨어에 의해 데이터가 탈취 되더라도, 데이터베이스의 데이터 및 저장소에 저장된 파일을 암호화 한다면 유출이 되더라도 피해는 최소화할 수 있으며, 최근 신시웨이는 GS 인증 및 국제 CC 인증을 획득함으로써 암호화 기술을 인정받았으며 해외 레퍼런스 또한 지속 확장해 나아가고 있습니다.출처 및 참고자료What is ransomware? Everything you need to know about one of the biggest menaces on the web WannaCry ransomware attack at LG Electronics takes systems offline Sodinokibi: Ransomware Attackers also Scanning for PoS Software, Leveraging Cobalt StrikeKISA 인터넷 보호나라&KrCERT
-
- 20.12.23
-
IT·보안
개정된 데이터 3법
데이터 3법은 데이터 이용을 활성화하는 「개인정보 보호법」,「정보통신망 이용촉진 및 정보보호 등에 관한 법률(정보통신망법)」, 「신용정보의 이용 및 보호에 관한 법률(신용정보법)」 3가지 법률을 통칭하며, 18년 11월 15일 인공지능(AI), 인터넷기반 정보통신 자원통합(클라우드), 사물인터넷(IoT) 등 신기술을 활용한 데이터 활용 등 데이터 이용에 관한 규제 혁신과 개인정보 보호 협치(거너번스) 체계 정비의 문제를 해결하기 위해 데이터 3법 개정안이 발의 되었으며, 2020년 1월 9일 국회 본회의를 통과 하였다.데이터 3법 주요 개정 내용• 데이터 이용 활성화를 위한 가명정보 개념 도입• 관련 법률의 유사·중복 규정을 정비하고 추진체계를 일원화 하는 등 개인정보 보호 협치(거버넌스) 체계의 효율화• 데이터 활용에 따른 개인정보 처리자의 책임 강화 및 모호한 ‘개인정보’ 판단 기준의 명확화온라인상 개인정보 보호 관련 규제, 개인정보의 오·남용과 유출 등을 감독할 감독기구• 개인정보의 오·남용과 유출 등을 개인정보보호위원회에서 감독• 관련 법률의 유사·중복 규정은 「개인정보 보호법」으로 일원화• 개인정보처리자의 책임성을 강화하기 위해 각종 의무를 부과하고, 법 위반 시 과징금 도입 등 처벌 강화 • 개인정보를 안전하게 보호할 수 있도록 제도적 장치 마련• 2020년 9월 24일, ‘가명정보 결합 가이드라인‘ 발표 (가명정보 사용이 허용되는 활용 목적과 범위, 개인정보처리자들이 적용해야 하는 안전조치 방법과 기준 등을 규정)데이터 3법 개정의 기대효과개정된 데이터 3법은 데이터가 전(全)사업의 가치 창출을 좌우하는 ‘데이터 경제 시대‘ 전환에 맞춰 금융산업 새로운 성장동력을 확보 하고EU GDPR 등 국제적 데이터 법제와의 정합성 제고로 전세계 데이터 경쟁에 참여할 수 있는 기반을 마련 하였으며, 데이터라는 자원이 개인정보를 최대한 침해하지 않으면서도 기업들이 기술 발전에 이용할 수 있음을 기대하고 있습니다.데이터 활용의 기본, 비식별화비식별 조치는 데이터 셋에서 개인을 식별할 수 있는 요소 전부 또는 일부를 삭제하거나 대체하는 방법을 활용 하여 개인을 알아볼 수 없도록 하는 것으로 비식별화 조치시에는 다른 정보와 쉽게 결합해 개인을 식별할 수 있는지를 검사하는 ‘비식별 조치 적정성 평가’를 함께 진행해야 합니다.가명정보, 익명정보 개념누군가를 특정할 수 있는 이름, 전화번호를 식별자라고 부르며, 개인정보에서 식별자를 다른 표현으로 바꾸거나 가린 것을 가명정보라 하며, 익명정보는 여기서 한층 더 나아가 식별자를 완전히 삭제하고, 생년월일이나 가입기간 등 준식별자에 해당하는 정보를 범주화해 누구인지 정확하게 특정할 수 없도록 처리하는 것을 말합니다.빅데이터 산업 활성화와 데이터를 활용한 경제적 가치를 만들기 위해서는 개인정보를 포함한 모든 데이터를 적극적으로 활용하는 것이 유리하며, 데이터 경제 활성화를 위해서는 익명정보보다 가명정보가 더 효과적입니다.그러나 정보를 지나치게 많이 남길 경우 개인정보보호와 관련한 문제가 생길 수 있으며, 반대로 많이 제거할 경우 기업 입장에서는 활용 가치가 떨어집니다. 가명처리 대상 또는 범위에 대한 절대적 기준을 설정하는 것은 기술적으로 쉽지 않은데요, 가명정보는 개인정보와 익명정보의 중간쯤 되는 단계입니다.가명정보 이용 목적개인정보처리자는 통계작성,과학적 연구,공익적 기록보존 등의 목적 내에서만 정보 주체 동의 없이 가명정보 처리 및 결합이 허용 되며, 가명정보를 처리할 때 원래 상태로 복원하기 위한 추가정보를 별도로 분리해 관리해야 합니다. 만약 관련 법령에 따른 보호조치를 적용하지 않는다면 처벌받을 수 있습니다.※ 적절하게 가명정보를 처리하지 않았을 경우에는 전체 매출액의 3% 이하 또는 4억 원의 과징금, 5년 이하의 징역 또는 5천만 원 이하의 벌금에 처해질 수 있습니다. 가명 처리 절차개인정보처리자는 통계작성, 과학적 연구, 공익적 기록보존 등의 목적 내에서만 정보 주체 동의 없이 가명정보 처리 및 결합을 허용하며, 가명처리 대상 또는 범위에 대한 절대적 기준을 설정하는 것은 기술적으로 쉽지 않습니다.가명정보 결합 사례QR 코드 기반의 전자출입명부(KI-Pass)* 활용 사례2020년 6월부터 도입 되었으며, 개인정보보호를 위해 전자출입명부에 입력되는 개인 연락처 데이터와 방문 기록은 평상시에 분산 보관되고, 필요한 경우에만 두 정보를 결합하여 개인을 식별한다는 점에 주목할 필요가 있으며, 사회보장정보원과 QR코드 발급회사가 각각이 가지고 있는 정보만으로는 개인의 동선 정보 확인이 불가능합니다.※ 전자출입명부(KI-Pass): 정부기술(IT)을 활용, QR코드에 기반하여 보건복지부에서 개발·배포한 『전자출입명부』 시스템 지칭. 개인을 확인할 수 있는 정확한 정보QR 코드 기반의 전자출입명부(KI-Pass)* 활용 사례출처 및 참고자료가명정보 처리 가이드라인 (2020. 09. 24)개인정보 비식별화에 대한 적정성 자율평가 안내서 (2014. 12)금융분야 가명 · 익명처리 안내서 (2020. 08. 08)전자출입명부(KI-Pass) 안내 – 지자체용 – (2020. 07)코로나 19 대응을 위한 데이터 활용 현황 및 사례 (2020. 08)암호 알고리즘 및 키 길이 이용 안내서 (2018. 12)개인정보보호위원회 비전 선포식(2020.11.27.) https://www.youtube.com/watch?v=9BWrJyNE0BE&feature=youtu.be가명정보의 결합 및 반출 등에 관한 고시(개인정보보호위원회고시)(제2020-9호)(20200901)굿모닝아이텍㈜ 웨비나_데이터 3법이 가져다 준 기회와 안전한 개인정보 활용 방안Vol.5_가명정보에 있어서 ‘다른 정보’와 ‘추가 정보’의 차이 및 가명처리의 대상과 범위글. 프리세일즈·마케팅팀 | 김지현
-
- 20.12.10
-
IT·보안
문자열 처리 함수 strstr, strcasecmp Tip
C/C++ 개발을 하면서 문자열 처리 함수를 사용할 때 원치 않는 결과를 얻는 경우가 있습니다. 이러한 데에는 여러 가지 상황이 있지만 가장 많이 범할 수 있는 상황은 고려하지 않았던 상황이 발생한 경우와 함수 내부 동작을 정확히 알지 못하는 경우에 문제가 발생합니다.후자의 한 가지 예로 strcasecmp 함수를 들 수 있습니다. 이 함수의 내부 동작을 정확히 아는 개발자가 많지는 않을 것입니다. “_”(95)와 “A”(65) 두 문자열을 strcasecmp로 비교하면 어느 문자열이 크다고 나오는지 아시나요? 대부분의 개발자들은 아스키코드 표에 따라 “_”가 “A” 보다 크다고 이야기하겠지만 결과는 반대입니다.strstr : 스트링 안에서 원하는 스트링을 찾는 함수strcasecmp : 비교할 스트링들의 알파벳을 소문자로 변환하여 문자열 비교하는 함수example 1. strstr로 IP 리스트에서 IP를 제대로 찾아오지 못하는 문제.[ 실행결과 ]192.168.10.40위와 같은 경우 찾고자 하는 IP는 192.168.10.4인데, 192.168.10.40를 리턴합니다. 원인은 ip의 길이와 상관없이 문자열을 찾은 것입니다. 이런 케이스에서 원하는 결과를 얻기 위해서는 문자열 길이까지 함께 비교해줘야 합니다. 이러한 문제를 해결하기 위해서는 길이까지 비교하도록 조건을 추가하면 정확한 값을 얻을 수 있습니다.example 1. 대문자로 정렬된 스트링 배열에서 bsearch시 strcasecmp로 키워드를 못 찾는 문제[ 실행 결과 ]input : d_ | find: null실행 결과를 보면 “D_”를 찾아야 하는데 찾지 못합니다. 문제의 원인은 strcasecmp를 사용한 것입니다. strcasecmp는 비교할 문자열들을 소문자로 변환 후 비교합니다. 이때 알파벳만 소문자로 변환하기 때문에 문제가 발생한 것입니다. ‘_’의 아스키코드(95)는 ‘I’의 아스키코드(73) 값보다 큽니다. ‘I’를 소문자로 변경하면 ‘I’는 ‘i’(105)가 되어 ‘_’보다 큰 값이 됩니다. 결론적으로 input값 “_d”로 bsearch를 수행했을 때 “_D”를 찾아야 되는데 찾지 못하게 되는 것입니다. strcasecmp는 소문자로 변환해서 대소 비교하기 때문에 알파벳이 아닌 기호들은 소문자로 변경하면서 본의 아니게 알파벳보다 값이 커지는 경우가 있어 발생한 문제입니다.이러한 경우에는 대문자로 이뤄진 스트링 배열에서 bsearch로 찾을 때 찾고자 하는 값을 대문자로 변경 후 strcmp로 비교하면 됩니다. 글. 기술연구소 | 윤 건
-
- 20.12.08
-
IT·보안
암호화 패딩(Padding) & Base64 Encoding
블록암호화(CBC, ECB, CFB, OFB)는 평문에 연속되는 Key Stream을 적용하여 1bit씩 암호화하는 스트림 암호화와 달리 블록 단위로 암호화가 이뤄지게 된다. 블록 암호화에는 CBC, ECB, CFB, OFB 모드가 있고 이때 CFB, OFB는 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같기 때문에 패딩이 필요 없지만, CBC, ECB는 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 알기 위해서 Padding을 사용해야 한다. 즉, 패딩(padding)이란 암호화 하고자 하는 데이터가 블록의 길이보다 부족할 경우 패딩을 사용하여 완전한 블록단위로 만들어준 후 암호화를 해야 한다는 것이다.테스트 결과에서 보이듯 OFB모드에서는 원본 데이터와 암호화 데이터 길이가 같기 때문에 패딩이 필요 없으나 CBC모드는 블록의 배수가 되기 때문에 패딩이 필요한 것을 확인할 수 있다.패딩(Padding)의 종류제로 패딩(Zero Padding, Null Padding)패딩이 필요한 부분을 0으로 채우는 방식이며 메시지 끝 부분에 0이 포함되어 있을 경우 어디까지가 데이터이고 어디까지가 패딩인지 구분이 되지 않기 때문에 보통 사용되지는 않는다.Petra Cipher의 Zero Padding 처리 방법 - enc[일반 데이터 + Zero Padding] + trailer - trailer에는 일반 데이터의 Length 정보가 들어가 있다. - 데이터의 Legnth 정보가 들어가 있는 이유는 일반 데이터의 제일 마지막 데이터가 ‘0’인 경우를 고려하여 Trailer를 붙인 것이다.비트 패딩(Bit Padding)패딩이 필요한 부분은 0으로 채우되, 최상위 비트는 1로 채우는 방식이며 최상위 바이트는 16진수로 80이 된다.(2진수로는 1000 0000)즉, 맨뒤에서부터 앞으로 오면서 1이 나올 때 까지를 패딩으로 구분하며 메시지 길이가 블록 크기의 배수여서 패딩이 필요하지 않은 경우에는, 메시지의 일부를 패딩으로 판단하게 된다. 위와 같은 문제는 패딩을 위한 하나의 블록을 둠으로써 해결할 수 있으나, 최악의 경우 expansion ratio가 2가 된다.(하나의 블록 크기의 메시지를 보내기 위해서 하나의 블록 크기의 패딩을 붙여야 한다.)8byte 기준으로 사용을 하며 평문이 블록 크기의 배수가 되지 못하면 필요한 바이트 값만큼 부족한 부분을 채운다.[PKCS5 패딩(PKCS5 Padding) = 8byte 기준](데이터가 5byte 및 4byte인 경우)(데이터가 8byte인 경우)16byte 기준으로 사용을 하며 평문이 블록 크기의 배수가 되지 못하면 필요한 바이트 값만큼 부족한 부분을 채운다.[PKCS7 패딩(PKCS7 Padding) = 16byte 기준](데이터가 10byte인 경우)(데이터가 16byte인 경우)인코딩(Encoding)인코딩(Encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.Base64란 Binary Data를 Text로 바꾸는 Encoding(binary-to-text encoding schemes)의 하나로써 BinaryData를 Character set에 영향을 받지 않는 공통 ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 Encoding이다.Base64를 글자 그대로 직역하면 64진법이라는 뜻이다. 64진법은 컴퓨터한테 특별한데 그 이유는 64가 2의 제곱수 64=2^6이며 2의 제곱수에 기반한 진법 중 화면에 표시되는 ASCII 문자들로 표시할 수 있는 가장 큰 진법이기 때문이다.(ASCII에는 제어 문자가 다수 포함되어 있기 때문에 화면에 표시되는 ASCII문자는 128개가 되지 않는다.) 변경하는 방식을 간략하게 설명하면 Binary Data를 6bit씩 자른 뒤 6bit에 해당하는 문자를 아래 Base64 색인표에서 찾아 치환한다.(실제로는 Padding을 더해주는 과정이 추가된다.)Base64 Encoding 특징· 2진 데이터를 ASCII 형태의 텍스트로 표현 가능하다.· Web 인증 중 기본 인증에 사용한다.· 끝부분의 padding(==) 식별 가능하다.· 64개의 문자 영문 대(26), 영문 소(26), 숫자(10),+,- 를 사용한다.단, 000000이 A로 변한다. 기본 원리는 간단한다. 문자열 -> ASCII binary -> 6bit Cut -> base64 encoding 방식으로 진행이 된다. 그러나 한 가지 문제가 있다. 모든 문자열이 3개씩 남김 없이 끊어지진 않는다는 것이다. 그래서 Padding을 사용하여 빈자리를 채운 후 인코딩을 하게 된다.참고자료· 해쉬넷(블록암호) : http://wiki.hash.kr/index.php/블록암호· 위키피디아(Padding) : https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation https://en.wikipedia.org/wiki/Padding_(cryptography)#Bit_padding· 위키피디아(Base64) : https://en.wikipedia.org/wiki/Base64글. 기술지원 2팀 | 정종찬
-
- 20.12.07
-
IT·보안
Java Object to CSV
Jackson 라이브러리를 사용하면 자바 객체에 담긴 내용을 Json 뿐만 아니라 CSV(Comma-Separated Values)로도 전환 할 수 있습니다. CSV는 엑셀로 파일을 바로 열어보려는 요구에서 주로 사용 되는데 자바 객체에 담긴 내용을 CSV로 전환하고 파일로 저장하는 방법을 알아 보고자 합니다.pom.xmljackson-databind, jackson-dataformat-csv를 추가한다.그러나 jackson-databind에는 jackson-core, jackson-annotation 의존성이 있어, jackson-databind 만 있어도 된다.자바 객체에서 CSV 파일 생성CSV 형식은 데이터베이스 테이블처럼 열(Column)과 행(Row)으로 표현된다. 자바 객체를 리스트로(java.util.List)로 전달하면, 데이터를 담고 있는 변수로 컬럼을 구성하고 리스트로 들어오는 데이터를 행 단위로 써 내려가는 식이다. Java Object(VO)변수 위에 @JsonProperty("제목")으로 CSV Header에 해당하는 컬럼명을 별도 지정할 수 있다. @JsonPropertyOrder로 컬럼의 순서도 바꿀 수 있다. @Getter @Setter도 달아준다.CsvMapper, CsvSchemaJSON에서 ObjectMapper를 사용한 것 처럼, CSV는 CsvMapper를 사용한다. CsvSchema로 원하는 형식을 잡아준다.파일 생성파일을 준비하고 ObjectWriter로 리스트 데이터로 파일을 작성한다.CsvMapper에서 바로 파일로 내려쓰는 방법도 있지만, OutputStreamWriter에서 인코딩(MS949)을 설정하여야 UTF-8로 저장해 둔 한글을 엑셀에서 정상적으로 볼 수 있다.`.writeAll(responseVoList)` 스키마에 넘겼던 객체의 리스트 인스턴스를 넘겨주면 끝이지만, 파일이 아닌 문자열로 받고 싶다면, JSON처럼 writeValueAsString을 쓸 수도 있다`csvMapper.writer(csvSchema).writeValueAsString(responseDtoList);`적용글. SIGN팀 | 류대석
-
- 20.11.26
-
IT·보안
새로운 웹 기능 WebAssembly
2018년 8월경 우연히 Chrome Dev Summit 2017 발표를 시청하면서 웹 브라우저의 새로운 기능이 추가되고 있는 상황을 알게 되었는데 그 당시에는 웹 브라우저에 대한 새로운 기술 프로젝트들이 시도되고 있다는 느낌과 흥미로운 주제 정도로만 느껴졌었습니다. 그러나 그로부터 2년이 지난 지금 WebAssembly는 점점 웹에서의 영향력이 커지게 되고 있는 것을 보고 WebAssembly에 대해 좀 더 자세히 알아보게 되었습니다.WebAssembly 탄생 배경WebAssembly(약칭: WA, Wasm)가 탄생하게 된 배경은 과거 Web 기반 어플리케이션의 한계 즉 브라우저상에서 동작하는 프로그램들의 성능 때문이었습니다. 그래서 많은 사람들은 Web 브라우저상에서 네이티브 환경처럼 동작하는 프로그램 성능을 구현하기 위해 많은 노력을 하기 시작하였는데 대표적인 프로젝트가 Mozilla asm.js 그리고 Google Native Client(PNaCI/NaCI)가 대표적인 프로젝트입니다.2017년 2월 28일, 4개의 주요 브라우저 업체들은 WebAssembly의 MVP(Minimum Viable Product)가 완료되었다는 합의에 이르렀고, 이는 브라우저에서 안정적인 버전을 지원하기 시작했으며, 그 후 2019년 12월, W3C는 HTML, CSS, Javascript 외 WebAssembly을 4번째 언어로 공식 권고하였고 이로써 Web 환경에 큰 변화가 시작되었습니다.WebAssembly 란?Wasm(WebAssembly)은 새로운 유형의 바이너리 코드이며, Wast(WebAssembly text format) 또는 C, C++, Java, RUST, Golang 등과 같이 다양한 언어로 작성된 것을 컴파일 과정을 통해 Wasm 바이너리 코드를 생성하여 이를 브라우저에서 실행할 수 있도록 하는 새로운 유형의 코드 입니다이로써 Wasm은 웹 브라우저에서 여러 언어로 작성된 코드를 네이티브에 가까운 속도로 실행할 수 있는 길을 제공 하였습니다. 그 외에도 W3C 웹어셈블리 커뮤니티 그룹에서는 Wasm에 대해 다음과 같은 목표를 가지고 있는데 첫번째는 다양한 플랫폼에서 사용할 수 있고 두번째는 디버깅이 가능해야 하며 세번째는 보안성을 유지 해야고 마지막 네번째는 이전 버전과의 호환성을 유지하도록 하는 목표를 가지고 있습니다.1. C/C++로 작성된 코드를 Emscripten(clang + LLVM) complie toolchain 컴파일 요청2. Emscripten이 컴파일 결과를 받아 .wasm 바이너리로 변환 시켜줍니다. $emcc hello_sinsiway.c -s WASM=1 -o hello_sinsiway.wsam3. Wasm는 그 자체로 DOM에 접근할 수가 없으므로, 자바스크립트의 접착제 코드[fetch(), Webassembly.compile(),WebAssebly.Instance()]와 HTML에 연결해주는 과정을 거치면 브라우저에서 실행 가능하게 됩니다.현재 Wasm는 이식성과 관련해 다양한 브라우 및 플랫폼에서 지원하고 있으며, 조금 더 시간이 지나면 호환성에 대한 부분도 많이 개선될 것으로 보입니다.WebAssembly 적용 사례현재 Wasm 적용한 프로젝트는 100여 개가 있고, 현재도 새로운 프로젝트들이 생겨나고 있습니다. 그중 대표적인 사례로는 AUTODESK로 AUTODESK는 AutoCAD 소프트웨어를 웹 브라우저에서도 사용할 수 있게 하려고 Flash를 사용하기도 했고, HTML5와 Javascript의 조합을 사용하기도 했습니다.그러나 기능 및 성능에 제약이 있고 코드를 다시 재작성해야 하는 문제가 발생하게 되었는데 WebAssembly를 사용하면서 35년 전에 작성된 AutoCAD Core C++ Code를 재사용하여 AutoCAD 웹 앱으로 성공적으로 전환하였습니다.AutoCAD 웹 앱 구조(Build the future of the web with WebAssembly and more (Google I/O '18))AutoCAD Web AppMS Blazor는 WebAssembly를 이용하여 클라이언트 웹 개발에 Javascript 대신 C#코드를 사용하여 웹 UI를 빌드할 수 있도록 하였으며 .NET 라이브러리를 그대로 활용할 수 있게 하여 .NET개발자로 하여금 플랫폼 확장성을 높일 수 있게 하였습니다.WebAssembly는 C++,C#, Java, Go, Rust 언어를 사용하는 웹 어플리케이션을 개발해야 하는 상황이라면 혹은 기존에 작성된 C 라이브러리를 웹에 적용할 때도 효과적인 입니다. 또한, 응용 프로그램 배포가 브라우저로 제한되고 동시에 가능한 모든 운영체제를 포함하는 것 역시 큰 장점입니다.글. 프리세일즈·마케팅팀 | 이경진
-
- 20.11.05
-
IT·보안
대용량 처리를 위한 Virtual Scrolling
1990년대의 CS 모델 프로그램들이 2000년대 이후에는 Web 모델 프로그램들로 전환이 많이 이루어지고 있습니다.이러한 추세에 맞추어 대량의 데이터를 처리하는 알고리즘 및 기법들도 새로운 환경에 변화되고 있습니다. 일반적으로 데이터베이스에 저장된 데이터를 조회하여 사용자 화면에 표출할 때 조회한 데이터를 그리드 페이지에 출력하여 페이징 처리하게 되는데 이때 대량의 데이터를 조회하여 출력할 경우 스크롤 이동 시 딜레이 현상이 발생하게 되는데 이러한 현상을 개선하고 최소화하기 위해 Virtual Scrolling 기법이 많이 활용되고 있습니다.우리가 Web browser로 대량의 데이터를 다룰 때 화면에 표기되는 html element들을 오브젝트 개수만큼 생성하게 되면 클라이언트 자원을 많이 소모하게 되고, 이 때문에 브라우저 화면이 멈추거나 부드러운 조작을 할 수 없게 됩니다.Virtual Scrolling은 화면의 보이는 영역만 element들을 생성하고 보이지 않는 영역은 빈 공간으로 두어, 스크롤링 시 내부의 연산을 통하여 다음 element를 추가하고, 기존 element를 제거하여 사용자에게 최적의 퍼포먼스를 제공하는 기법입니다.위의 Virtual Scrolling의 메커니즘을 보면 앞서 말했던 실제 보이는 영역과 가려져 있는 빈 영역이 존재하는 것을 볼 수 있고, 중간에 Padding row라는 영역이 있는 것을 볼 수 있습니다.Padding row는 스크롤링시 다음 보여줄 데이터를 연산하기 위한 과정의 공백을 메우기 위한 여분의 row element로서, 부드러운 화면의 조작을 위해 존재하는 element로 사용자가 실제 스크롤링을 하면 이동한 만큼 다음 보일 row element를 계산하고 새로운 element가 추가되면 기존 있던 element가 제거되어 element의 개수를 유지하게 됩니다. Padding row의 최적화된 개수는 클라이언트마다 다를 수 있습니다.Virtual Scrolling을 구현하기 위한 중요한 요소 중 하나는 row height입니다. 하나의 row element의 높이가 일정하지 않다면 전체 스크롤링 할 수 있는 높이를 구할 수 없게 되고, 전체 높이 값이 일정하지 않다면 스크롤링시 원하는 다음 화면을 기대할 수 없게 됩니다.Virtual Scrolling을 구현 중 빠르게 이동되거나 어떤 지점으로 스크롤링이 바로 돼야 하는 상황을 대비하여 Skip paging이란 기법이 필요한데 Skip paging은 스크롤 중간의 연산 없이 바로 최종 화면의 element만 계산하여 보여주는 기법으로, 이 기법 없이 그리드를 구현하게 된다면 빠른 스크롤링이나 특정 지점 스크롤링시 지연이 발생 될 수 있습니다.결과적으로 이러한 메커니즘들 때문에 사용자는 대량의 데이터를 부드럽게 조작해 볼 수 있으며, 자원 낭비로 인해 화면 멈춤 등의 이슈가 발생하지 않게 됩니다.현재 새롭게 출시를 준비 하는 Petra DataStudio(가칭)은 사용자 및 데이터베이스 정보를 중앙에서 집중적으로 관리하여 기업 내 DB 보안 및 작업의 편의성을 제공해주는 Web bases SQL Tool로 Virtual Scrolling을 적용하여 빠른 렌더링 속도를 자랑하며 작성 또는 사용된 SQL을 조직 사용자 간 공유할 수 있는 특징을 가지고 있습니다. 또한, 다양한 형태의 데이터 출력 리포트를 제공하며 데이터 암호화 지원으로 데이터에 대한 보안성을 강화시켰습니다.Petra DataStudio는 현재 알파 버전에 대한 테스트를 진행하고 있으며, 고객 의견 수렴을 위해 On-Line Open Beta Service를 진행할 예정입니다.글. 데이터스튜디오팀 | 원충의
-
- 20.11.04
-
IT·보안
금융회사에서의 데이터변경 처리 절차(전자금융감독규정)
정보보호란 정보의 훼손·변조·유출 등을 방지하기 위한 기술적 관리 수단을 말하는데 우리가 보호해야 할 정보들은 수많은 곳에 논리적 또는 물리적 형태로 다양하게 저장되어 있습니다.대부분의 정보(데이터)는 Oracle, SQLserver, MySql과 같이 데이터를 속성과 데이터값으로 구조화하는 관계형 데이터베이스(Relational DataBase Management System)에 저장되는데 이러한 정보 등의 훼손·변조·유출을 방지하기 위해 많은 기업들은 시스템 접근, 차단, 감사, 모니터링등 각종 수단을 이용하여 보안 위험을 감지하고 감소, 억제하기 위한 대책을 마련하고 있습니다.이러한 대책 마련 활동들을 정보보안에서는 보안 통제(Security Control)라고 하는데 통제는 유형에 따라 기술적(논리적), 물리적, 관리적 통제 등 다양한 형태의 통제 방법이 있으며 정보보호에서 가장 눈여겨 봐야 할 것은 ISO / IEC 27001, NIST Special Publication 800-53에서 제시한 예방 통제(Preventive controls), 탐지 통제(Detective controls), 교정 통제(Corrective controls) 입니다. 이 세 가지는 시점에 의해 분류한 통제 유형으로 데이터베이스 보안에 대한 필요성을 보여주기도 합니다.예방 통제(Preventive controls)사전에 위험을 억제하기 위한 통제 방법으로 물리적 접근 통제와 논리적 접근 통제로 나뉜다. 데이터베이스 보안 관점에서의 논리적 접근 통제는 비인가자가 정보통신망을 이용하여 데이터베이스에 접근하는 것을 차단하는 것을 말하며 기술적 통제로는 방화벽, 인증, 암호화 등이 있으며 관리적 통제로는 보안정책 수립, 보안 서약, 직무 분리 등이 있습니다.탐지 통제(Detective controls)예방 통제를 우회하여 발생되는 행위를 통제하는 방법으로 보안 위협 및 침해 사고의 발생을 인지하는 시점을 말하고, 데이터베이스 보안 관점의 기술적 통제로는 감사 로그, 알람 발생 등이 있으며 관리적 통제 방법으로는 감사 및 모니터링 등이 있습니다.교정 통제(Corrective controls)탐지된 위협이나 원인을 식별, 분석하여 원상태로 조치하는 시점을 말하며 데이터베이스 보안 관점의 기술적 통제로는 감사 데이터 추적, 식별 관리적 통제로는 데이터 백업,복구 계획 수립 및 정책 계획 재수립 등이 있습니다.이처럼 정보보호에서 가장 처음 시행 되어야 할 통제 방법은 예방 통제이며 탐지 그리고 교정 순입니다. 무엇보다 중요한 것은 통제 유형에 대한 기술적, 관리적, 물리적 조치가 이루어져야 하는데, 신시웨이의 페트라 시리즈는 정보 보호에 있어 예방, 탐지, 교정 통제에 맞는 기술적, 관리적 조치를 제시하고 있습니다.앞서 말했듯이 데이터베이스에는 수많은 데이터가 저장되어 있고, 수 많은 데이터 중에서 개인정보를 가장 민감하게 관리 하고 있습니다. 우리나라 또한 2011년 9월 30일 「개인정보보호법」이 시행되면서 개인정보보호와 처리에 대한 가이드 라인을 제시하고 있습니다.그러나, 개인정보보호법에서의 「표준 개인정보 보호지침」을 준수하였다고 하더라도 개인정보 취급 형태, 업무 등에 따라 기술적, 관리적 조치 방안이 상이 할 수 있기 때문에, 데이터베이스 보안 솔루션 도입에 있어 다양한 Compliance에 대해 기술적, 관리적 조치를 할 수 있는지를 먼저 고려해야 합니다.2020년 5월 19일 전자금융거래의 법률관계를 명확히 하여 전자금융거래의 안전성과 신뢰성을 확보함과 아울러 전자금융업의 건전한 발전을 위한 기반조성을 함으로써 국민의 금융 편의를 꾀하고 국민경제의 발전에 이바지하기 위해 「전자금융거래법」을 일부 개정하고 2020년 8월 20일 시행 되었다.또한 「전자금융거래법」 및 시행령에서 금융위원회에 위임한 사항과 그 시행에 필요한 사항 및 다른 법령에 따라 금융감독원의 검사를 받는 기관의 정보기술부문 안전성 확보 등을 위하여 필요한 사항을 규정 하기 위해 2019년 1월 1일 「전자금융감독규정」을 시행 하였습니다.2013년 12월 3일 「전자금융감독규정」 제 27조(전산원장 통제), 제 28조(거래통제 등)의 “금융기관”을 “금융회사”로 개정하면서 전산원장을 취급하는 은행, 증권, 카드사등의 금융회사는 「전자금융감독규정」 제 27조, 제 28조에 의해 전산원장 변경을 위한 별도의 절차가 필요하며 변경 권한자를 지정하여 결재 승인을 득한 후 전산원장 변경이 실행 되어야 하며, 실행된 내용은 자동으로 기록하여, 그 행위를 추적할 수 있게 5년간 보관 하여야 합니다.제27조(전산원장 통제) ① 금융기관 또는 전자금융업자는 장애 또는 오류 등에 의한 전산원장의 변경을 위하여 별도의 변경절차를 수립·운용하여야 한다.② 제1항의 절차에는 변경 대상 및 방법, 변경 권한자 지정, 변경 전후내용 자동기록 및 보존, 변경내용의 정당여부에 대한 제3자 확인 등이 포함되어야 한다.③ 금융회사 또는 전자금융업자는 대차대조표 등 중요 자료의 계상액과 각종 보조부·거래기록·전산원장파일의 계상액에 대한 상호일치 여부를 전산시스템을 통하여 주기적으로 확인하여야 한다. <개정 2013. 12. 3.>④ 금융회사 또는 전자금융업자는 제3항에 따른 확인 결과 불일치가 발견된 때에는 그 원인 및 조치 내용을 전산자료의 형태로 5년간 보존하여야 한다. <개정 2013. 12. 3.>⑤ 금융회사 또는 전자금융업자는 이용자 중요원장에 직접 접근하여 중요원장을 조회·수정·삭제·삽입하는 경우에는 작업자 및 작업내용 등을 기록하여 5년간 보존하여야 한다. <개정 2013. 12. 3.>제28조(거래통제 등) ① 금융회사 또는 전자금융업자는 사고위험도가 높은 거래에 대하여는 책임자 승인거래로 처리토록 하는 등 전산시스템에 의한 이중확인이 가능하도록 하여야 한다. <개정 2013. 12. 3.>② 금융회사 또는 전자금융업자는 전산원장, 주요정보 또는 이용자 정보 등이 저장된 정보처리시스템에 대한 중요작업 수행 시 책임자가 이중확인을 해야 한다. <개정 2013. 12. 3.>금융회사들은 전산원장변경 요청시 데이터 변경에 대한 근거 문서를 토대로 문서를 작성 하게 되는데 일반적으로 현업의 실무자가 데이터 변경에 대한 근거 문서를 작성하여 IT 부서(IT 담당자)에 전달하면 IT 부서의 담당자는 전산원장변경 요청 SQL을 작성하여 해당 부서 팀장의 결재를 얻은 후 변경 권한자(DBA)에게 SQL 실행을 요청 하고 SQL 실행 후에는 제 3자에 의해 타당성을 검토를 실시합니다.데이터 변경 SQL 작성검증 및 데이터 변경 전/후 데이터 확인페트라 싸인(PETRA SIGN)의 데이터베이스 데이터 변경 기능은 커스텀마이징을 통해 기존에 사용하던 전자 결재 시스템의 근거 문서 연동을 제공 하고 데이터 변경 이력을 관리함으로써 「전자금융감독규정」을 준수하며 예방, 탐지의 기술적 통제 방안을 제공하고 악의적인 데이터 변경과 사용자의 실수를 사전에 예방할 수 있습니다.또한 저장된 전/후 데이터에 대한 암호화 지원으로 데이터의 기밀성을 보장 합니다.그 외에도 페트라 싸인(PETRA SIGN)에는 다음의 기능들이 있습니다. DB 접속 허가 요청서- 세션 차단 규칙에 의해 접속할 수 없는 DB에 대한 접속 권한을 얻기 위해 사용- 결재 문서 작성 시 접속 날짜 및 요일, 시간대, 접속 가능 횟수, 대상 DB 정보를 작성- 접속 횟수는 무제한으로 설정 가능SQL 실행 사전 요청서- SQL 거부 규칙에 의해 실행할 수 없는 SQL에 대한 실행 권한을 얻기 위해 사용- 결재 문서 작성 시 SQL 실행 날짜, 요일, 시간대, 대상 DB 정보와 실행 횟수, 실행하고자 하는 SQL 문장 혹은 SQL 타입을 설정함- 객체 정보로 결재 문서를 작성한 경우 DB 객체 정보 수집이 작업이 선행되어야 함- 실행 횟수는 무제한으로 설정 가능SQL 실행 소명서- SQL 사후 소명 혹은 SQL 즉시 소명 규칙이 설정된 경우 SQL 실행 사유를 남기기 위해 사용기타 보안 규칙 등록 요청서- DB 접속 통제, SQL 통제 이외의 규칙에 대한 권한을 얻기 위해 사용- 종결된 후 수동으로 보안 규칙을 수정해야 함마스킹 해제 요청서- 마스킹 규칙에 의해 마스킹 처리되어 조회되는 데이터를 마스킹 처리 없이 조회할 수 있는 권한을 얻기 위해 사용사용자 등록 요청서- PETRA ID를 발급받기 위해 사용하는 결재 문서- 본인이 직접 신청하거나 ID가 있는 사람이 대신 신청 가능- 본인 신청은 로그인 화면 사용자 신청 버튼을 통해 작성글. 기술지원 2팀 | 김홍경
-
- 20.11.02
-
IT·보안
보안담당자를 위한 데이터베이스 보안 강화 방법
산업이 발달한 현대 사회는 개인정보, 민감정보, 신용카드정보, 의료정보 등 수많은 정보들이 데이터베이스 내에서 생성과 삭제를 수없이 반복하고 있습니다. 이러한 정보들은 누군가의 표적과 함께 먹잇감이 되고 있고 이 먹잇감을 지키기 위해 많은 기업들은 OS보안, 네트워크 보안, 시스템 보안 등을 이용하여 기술적‧관리적 보호조치를 시행하고 있습니다.그러나 실질적으로 데이터가 저장되는 데이터베이스(DB보안) 보안 조치의 경우 이를 가볍게 또는 안일하게 생각하는 일부 보안담당자 또는 관리자들이 있습니다. 사실 안일하게 생각한다기보다 앞서 말한 OS보안, 네트워크 보안등 전체적인 보안 범위를 설계하고 구축 하다 보니 예산 부족 등의 문제로 데이터베이스는 가장 기본적인 보호 조치 또는 법령에 의한 최소한의 보호 조치만 이루어지고 있는 경우가 종종 발생하며 이러한 일들은 체계와 인프라가 잘 갖추어진 대기업보다는 전문 인력이 부재한 중/소규모의 기업에서 주로 발생 하고 있습니다.2011년 3월 29일 개인정보보호법이 공포되고 2011년 9월 30일 전면 시행되면서 개인정보보호가 강화되고 각종 규제가 많아지면서 과거보다 개인정보에 대한 기술적‧관리적 보호조치가 잘 이루어지고 있지만, 개인정보 침해와 개인정보 유출 사고는 지속해서 일어나고 있습니다. 과거에 데이터베이스 내의 데이터 유출 사례를 보면 대부분 내부자에 의한 의도적인 데이터 유출, 프로그램(시스템) 오류로 인한 데이터 노출이 많았지만, 현대에는 전문 해커에 의한 유출 사고도 빈번하게 발생 하고 있습니다.악의적인 공격으로 인한 데이터 유출 동향 / IBM Security와 Ponemon Institute1「(2020 Cost of a Data Breach Report)」해킹으로 인한 국내 데이터 유출 최근 사례2017년 해커에 의한 해킹으로 사이트 가입자 아이디/비밀번호 13만 2800여건 유출2018년 해커에 의한 해킹으로 쇼핑몰 가입자 개인정보 유출2020년 해커에 의한 해킹으로 교육원 회원 개인정보 유출2020년 해커에 의한 해킹으로 약 412억 건의 금융정보 유출 정보보안팀의 보안담당자라면 BCP(업무 연속 계획)과 DRP(재해 복구 계획)에 대하여 잘 알고 있을 것이고 이러한 계획의 목적 중 하나는 비즈니스의 연속성 및 손실을 최소화하기 위해서 인데 BCP, DRP 계획만큼 중요한 것이 데이터베이스 보안 설계 입니다.만약 데이터베이스가 적절하게 보호 조치되지 않아 데이터 유출 사고가 발생한다면 비즈니스 연속성은 불가능하며 기업의 이미지 훼손, 신뢰도 하락, 재정적 손해 등 수많은 피해가 발생합니다.IBM Security와 Ponemon Institute가 발표한 「2020 데이터 유출 비용 보고서 (2020 Cost of a Data Breach Report)」에 따르면 기업의 데이터 유출 사례 중 80%는 고객개인식별정보(Personally Identifiable Information, PII) 노출 사고로, 기업 당 평균 피해액은 약 45억 9000만 원에 달하고, 2020년 대한민국 기업당 평균 데이터 유출 피해액은 38억 원으로 나타났습니다. 또한, 데이터 유출을 감지한 후 식별하는 데까지 걸리는 기간은 223일, 침해 해소에 걸리는 기간은 78일이라고 발표하였습니다.국가 , 지역별 데이터 유출 근본 원인 분류 / IBM Security와 Ponemon Institute1「(2020 Cost of a Data Breach Report)」이러한 정보 유출 사고를 막기 위해서는 기본적으로 Authentication(인증), Data Protection(데이터 보호), 접근 통제(Access Control), Monitoring(모니터링), Data Encryption(데이터 암호화) 5가지의 방법을 복합적으로 사용하여야 하고 책임추적성(Accountability)을 확보해야 합니다.1. Authentication(인증)접근 통제의 요소는 식별(identification), 인증(Authentication), 인가(Authorization), 책임추적성(Accountability)로 구성되어 있는데 여기서 식별과 인증은 별개로 볼 수 없습니다. 식별은 주체(Client)가 이름, 아이디, 번호등으로 주체의 신원을 주장하는 것이며, 인증은 주체가 주장하는 신원을 검증(확인) 하는 것을 말합니다. 주체의 신원을 확인하는 방법 즉, 인증의 방법(Factor)으로는 지식기반 「Type 1, Something you know (Password, PIN code)」, 소유 기반 「Type 2, Something you have (SMS, Token, Smart card)」, 속성 기반 「Type 3, Something you are, Something you do (Bio, sign)」로 분류되며 3가지의 분류 중 한 가지만 사용한다면 싱글팩터 인증(Single Factor Authentication, SFA) 이라고 하며, 2개 이상의 방법을 사용한다면 투팩터 인증(2 Factor Authentication, 2FA) 이라고 합니다.데이터베이스 보안 강화를 위한 조치- 지식 기반과 소유 기반을 결합한 2FA 인증- LDAP, Active Directory 인증 연동- 데이터베이스 보안 솔루션에서의 사용자 정보(비밀번호)는 SHA-256 이상의 암호화 저장- 데이터베이스 보안 솔루션에서 제공되는 인증 시스템의 이중화- 사용자 비밀번호 복잡도 설정 필수(소문자,대문자,숫자,특수문자 포함 8자리 이상)신시웨이의 데이터베이스 접근 통제 솔루션 「페트라(PETRA)」는 SMS, E-mail, OPT, MOTP와의 연동으로 인증을 강화하고 LDAP, Active Directory 시스템과 연동하여 사용자 인증을 관리 할 수 있습니다. 또한 페트라 자체 인증 서버를 사용할 경우 인증서버를 이중화하여 인증의 가용성을 보장 하며 사용자의 비밀번호는 SHA-256으로 안전하게 저장되고 사용자 인증에 대한 임계치 설정으로 악의적인 비밀번호 입력 및 무차별 공격에 대비할 수 있습니다. 또한, 관리자는 비밀번호가 아닌 별도의 인증서를 통해 관리 콘솔에 접속하므로 관리 콘솔 접속에 대한 보안성이 우수합니다. 2. Data Protection (데이터 보호)데이터베이스 접근 통제에서 데이터 보호는 4가지 관점으로 보아야 합니다.첫번째는 인가되지 않은 사용자나 시스템에 의한 접근을 통제하여 정보 공개·노출을 막기 위한 기밀성(Confidentiality) 유지를 말합니다.두번째는 무결성(Integrity)으로 데이터베이스 접근제어에서의 무결성은 데이터베이스에서의 참조무결성(Referential Integrity)을 말하는 것이 아니라 데이터의 정확성 및 완전성을 보장하고 데이터가 고의적, 악의적으로 변경되거나 훼손 또는 파괴 되지 않음을 보장하는 것을 말합니다.세번째는 인가된 사용자가 데이터베이스에 정상적으로 접속하여 서비스할 수 있도록 가용성(Availability)을 보장하는 것이다.네번째는 주체가 행한 행위에 대한 감사 데이터 변경 또는 훼손 되지 않도록 보호 되어야 합니다. 책임추적성(Accountability)은 시스템 내의 각 개인은 유일하게 식별 되어야 한다는 정보 보호 원칙 중 하나로 부인 방지를 가능하게 하고 행위에 대한 책임을 야기할 수 있기 때문에 감사 데이터는 변경, 삭제 등의 데이터 조작이 불가능해야 하며 저장된 데이터 파일이 유출되더라도 그 내용을 확인할 수 없어야 합니다. 또한, 유사시 복구 시스템에 의해서만 복구되어야 합니다.데이터베이스 보안 강화를 위한 조치- 저장된 감사 데이터는 어떠한 경우라도 위/변조 불가- 개인정보, 민감정보(Table , Column)에 대한 식별 및 관리- 운영DB 외 개발 및 테스트 DB에 주요 정보 존재 시 마스킹 필수신시웨이의 데이터베이스 접근 통제 솔루션 「페트라(PETRA)」는 타 솔루션과는 달리 당사가 자체 개발한 메모리 기반의 SOHA DBMS를 사용하므로 세션 유입 시 정책 검색에서 빠른 속도를 자랑하며, Insert Only 감사 테이블 관리로 감사 데이터의 조작이 불가능합니다. 또한, 데이터 파일이 유출 되더라도 별도의 복구 시스템과 엔지니어의 기술 지원 없이는 데이터 복구와 확인이 불가능 합니다. 또한, 조회 값에 대한 데이터 마스킹이 아닌 프로토콜 분석과 결합한 Data Parsing기술을 사용하여 보안성이 우수한 마스킹을 제공합니다.실제로 2018년 A고객사의 인가된 내부 직원이 데이터베이스에 접속하여 불법적으로 데이터 조회 및 변경한 사례가 발생 하였는데 페트라를 통하여 이상징후를 감지 하고 감사 로깅을 추적하여 해당 직원에게 책임을 묻는 사례가 있었습니다. 이와 같이 책임추적성을 보장하기 위해서 감사 데이터는 어떠한 경우라도 위/변조가 불가능 해야 합니다.3. 접근 통제(Access Control)접근 통제는 인증된 주체(사용자)가 필요한 정보에 접근할 수 있도록 하는 기술적 통제 방법을 말하며, 기술적인 통제를 하기 전 보안담당자는 관리적 통제 방안을 먼저 수립하여야 합니다. 관리적 접근 통제에는 정책 설계, 표준화, 절차 수립, 보안인식교육, 훈련 등이 있으며, 관리적 통제에 의해 정책 설계와 업무에 따른 표준화가 설정 되어 있지 않다면, 향후 보안의 홀 발생과 함께 정책 관리의 어려움이 발생하게 됩니다. 데이터베이스 보안 외에도 개인정보보호 관련 내부 관리계획 수립은 한국인터넷진흥원에서 제공하는 「개인정보의 기술적ㆍ관리적 보호조치 기준 해설서」를 참고 하면 많은 도움이 됩니다.데이터베이스 보안 강화를 위한 조치- 주체(ID), 언제(통제 기간 등), 어디서(IP, Program 등), 객체(ID, Table, Column 등), 행위(Select, DML, DCL 등) 등을 세부적인 정책 설정- 인증과 별도로 정책 부여시 사용자와 IP를 1:1로 맵핑하여 주체에 대한 정확한 식별(책인추적성 강화)- 일반 사용자에 대한 데이터베이스 공통 계정 사용 금지- 반드시 White list 보안 정책 설정신시웨이의 데이터베이스 접근 통제 솔루션 「페트라(PETRA)」는 개인, 조직, 그룹별 정책 설정으로 주체에 대한 권한 설정이 가능하며 접근 가능 시간, OS계정, DB계정, 터미널명, 클라이언트명등의 세부 속성 설정이 가능합니다. 또한 DML, DCL, DDL등 SQL TYPE별 설정으로 SQL 명령어 통제에 대한 보안성이 우수 합니다. 페트라는 ISMS-P, 방송통신위원회 감사, 금융감독위원회 감사, 행정안전부 감사 등 여러 감사를 통하여 데이터베이스 보안 제품으로서의 우수성을 확인하였습니다.4. 모니터링(Monitoring)접근 통제에 대한 정책을 효과적으로 설정하였다면 실질적으로 차단 세션, 차단 SQL등에 대한 감사 모니터링이 진행 되어야 합니다. 세부적으로는 세션, 결과값등의 임계치 설정에 대한 알림을 수신 받아야 이상 징후를 식별하고 탐지할 수 있습니다. 또한 모니터링과 별개로 감사 현황에 대한 데이터 및 리포트를 활용하여 월간, 분기, 연간 보고서를 작성하고 보안 평가를 진행해야 합니다.데이터베이스 보안 강화를 위한 조치- 사용자별 접속/차단 통계 리포트 생성 후 변화 추이 분석- 개인정보 및 민감정보에 대한 접근 이력 관리- 실시간 경보 알람 설정- 접속 기록 월 1회 이상 점검- 관리자에 의한 정책 변경 이력 관리신시웨이의 데이터베이스 접근 통제 솔루션 「페트라(PETRA)」는 설정에 따라 SMS, E-mail 등 알림을 제공하고 있으며, 설정 기간에 따른 정형 및 비정형 보고서를 제공 하고 있습니다. 페트라 차기 버전에서는 모니터링 강화를 위해 그래프를 통한 실시간 현황 및 이상징후 탐지 기능을 제공합니다.5. 데이터 암호화(Data Encryption)개인정보의 안정성 확보조치 기준에는 “제7조(개인정보의 암호화) 개인정보처리자는 고유식별정보, 비밀번호, 바이오 정보를 정보통신망을 통하여 송신하거나 보조저장매체 등을 통하여 전달하는 경우에는 이를 암호화하여야 하며 비밀번호를 저장하는 경우에는 복호화되지 아니하도록 일방향 암호화하여 저장하여야 한다.” 라고 명시 하고 있습니다. 또한 개인정보보호법 제23조에 따라 민감정보를 처리하는 경우 안전조치의무에 따라 안전성확보에 필요한 기술적, 관리적 및 물리적 조치 위해 암호화를 해야 하는데 민감정보란 사상, 신념, 노동조합, 정당의 가입, 탈퇴, 정치적 견해, 건강, 성생활 등에 관한 정보, 그 밖에 정보주체의 사생활을 현저히 침해할 우려가 있는 개인정보(유전정보, 범죄경력자료에 해당하는 정보)를 말합니다.데이터베이스 보안 강화를 위한 조치- 안전한 알고리즘 사용(패스워드의 경우 SHA-256 이상의 일방향 암호화 사용)- 국정원 검증필 암호화 모듈 사용- 별도의 키 관리 서버 구축 및 안전한 키 보관- 반드시 White list 보안 정책 설정신시웨이의 데이터베이스 암호화 솔루션 「페트라 사이퍼(PETRA CIPHER)」는 컬럼 단위 암호화를 통해 개인정보를 보호하며, C언어 기반 모듈 사용으로 빠른 속도로 암·복호화를 진행합니다. 또한, 자사 솔루션인 데이터베이스 접근제어 PETRA와의 완벽한 연동을 통해 실제 IP 기반의 접근 통제를 가능하게 하며, 국제 CC인증 획득으로 페트라의 보안성을 검증 받았습니다. ISO/IEC 17799에서는 “정보는 다른 중요한 비즈니스 자산과 같이 가치를 가진 자산이며, 따라서 적절하게 보호되어야 한다” 라고 정의하고 있습니다.즉, 데이터베이스에 저장된 정보는 개인의 자산이자 기업의 자산이기도 합니다. 데이터베이스 보안에서 제품의 완성도와 기능, 엔지니어의 기술력과 대응력도 중요하지만, 보안담당자는 데이터베이스 보안 패치와 지속적인 취약점 진단을 실시하고 불필요한 기능 및 계정을 최소화 하여 데이터베이스 보안성을 최대한 강화하면서 민감정보 및 주요정보를 최소화하여 데이터베이스의 가치는 극대화 하여야 합니다.또한, 주기적인 데이터베이스 감사 활동 및 모니터링, 데이터베이스 액세스 관리, 데이터베이스 암호화에 더욱더 신경 쓴다면 데이터베이스 보안은 한층 더 강화될 것입니다. 개인정보 처리에 대한 계획 수립과 방법을 고민하는 보안담당자라면 유형1, 2, 3별 적용 대상과 안전조치 기준이 서로 상이하니 「개인정보포털>자료마당>지침자료에서 개인정보의 안전성 확보조치 기준(제2019-47호) 해설서(2019.06, 개정)」을 반드시 참고 하여야 합니다.데이터베이스 보안 관리에 최적화된 신시웨이 PETRA 시리즈는 신시웨이 홈페이지(www.sinsiway.com) 또는marketing@sinsiway.com 으로 연락 주시면 보다 자세히 확인 하실 수 있습니다. 신시웨이가 보안담당자에게 추천하는 유용한 사이트개인정보의 안전성 확보 조치 기준개인정보보호법2020 Cost of a Data Breach Report데이터베이스 보안 가이드라인개인정보보호 포털(자료마당)한국인터넷진흥원개인정보보호위원회개인정보침해 신고센터
-
- 20.10.30