개발자 / 보안

“암호화 제대로 구현 안된다”…전문 교육 부족과 라이브러리 복잡성이 주원인

Lucian Constantin | IDG News Service 2015.06.29

최근 몇 년 동안 보안 침해에 대응하기 위해 암호화를 사용하자는 움직임이 활발했음에도 불구하고 개발자들의 전문 지식 부족과 너무 복잡한 라이브러리로 인해 기업 애플리케이션에 암호화를 폭넓게 적용하는 것은 실패한 것으로 나타났다.

문제의 정도는 심각하다. 애플리케이션 보안 업체 베라코드(Veracode)가 최근 발표한 보고서에 따르면, 암호화 문제는 전 산업군에서 애플리케이션에 영향을 미치는 가장 보편적인 결함 중 두 번째를 차지했다. 이번 보고서는 기업에서 사용되는 약 20만 개 이상의 상용 또는 자체 개발 애플리케이션의 취약점 분석에 기반을 둔 것이다.

암호화 문제는 크로스 사이트 스크립팅이나 SQL 인젝션, 디렉토리 접근 공격 등 일반화된 취약점보다 더 널리 퍼져 있는 것으로 나타났다. 이들 암호화 문제에는 부적절한 TLS(Transport Layer Security) 인증서 유효성 확인이나 민감한 정보의 평문 저장, 민감한 데이터의 암호화 비적용, 하드 코딩된 암호화 키, 부적절한 암호화 수준, 불충분한 동일성, 임의의 초기화 벡터 비적용, 암호화 서명의 부적절한 확인 등이 포함되어 있다.

가장 영향을 많이 받는 애플리케이션은 웹 기반 애플리케이션이지만, 모바일 앱 역시 상당한 비율을 차지했다.

개발자들은 상당히 많은 암호화 기능을 코드에 추가하고 있으며, 특히 의료나 재무 서비스 등은 암호화를 적극적으로 적용하고 있다. 하지만 엉성하게 처리하고 있다는 것이 베라코드 CTO 크리스 와이소팔의 지적이다.

많은 기업이 데이터 보호 규제 때문에 암호화를 사용해야 하지만, 보고서는 개발자들이 이를 적절하게 구현하는 데 필요한 교육을 받지 못하고 있다고 밝혔다. 와이소팔은 “암호화를 올바르게 구현하는 것이 얼마나 어려운 일인지를 보여주는 것”이라며, “이는 많은 사람이 생각하지 못하는 암호화 특유의 문제이다”라고 설명했다.

와이소팔은 많은 개발자가 암호화를 구현할 줄 안다고 생각하지만, 암호화에 대한 전문화된 교육을 받지도 못했고, 보안에 대한 잘못된 관념을 가지고 있다고 지적했다. 이 때문에 암호화가 적용된 애플리케이션을 개발한다 하더라도 공격자는 여전히 민감한 데이터에 접근할 수 있다는 것이다.

게다가 이번 조사 결과는 자체 개발한 암호화 알고리즘을 적용한 경우는 빠져 있는데, 이런 경우는 실패 가능성이 더 높다. 베라코드는 자바나 닷넷 또는 오픈SSL 같은 인기 라이브러리가 제공하는 표준 암호화 API.를 사용해 구현한 경우만 테스트했다.

자바나 닷넷과 같은 개발언어는 C 같은 언어와 비교해 개발자의 실수를 막기 위해 노력한다. 취약점 정보 전문 업체인 리스크 베이스드 시큐리티(Risk Based Security)의 최고 연구 임원인 카스텐 에이람은 “하지만 많은 사람이 현대적인 개발언어가 프로그래밍을 쉽게 만들고 개발자의 실수를 보호하기 위해 노력하는 바람에 잘못된 보안 관념을 갖게 되고, 코딩할 때 적절한 주의를 기울이지 않게 됐다. 다시 말해 설계나 로직 오류 같은 다른 문제를 유발할 위험이 커졌는데, 암호화를 적절하게 구현하지 않는 것도 이런 범주에 포함된다”라고 설명했다.

많은 개발자가 암호화 라이브러리에 연결만 하면 일이 끝난 것으로 생각하지만, 암호화는 인증서를 제대로 확인한다거나 암호화 키를 보호하거나 적절한 키 크기를 사용하는 등 좀 더 세밀한 측면을 이해하지 못하면 튼튼하게 구현하기 어렵다. 에이람은 “이 모든 것이 궁극적으로는 더 나은 교육을 통해 프로그래머가 강력한 암호화 구현의 함정을 제대로 이해할 때 이루어진다”고 강조했다.

하지만 이 모든 것이 개발자만의 잘못은 아니다. 존 홉킨스 대학의 암호 공학 담당 매튜 그린 교수는 많은 암호화 라이브러리가 사용성 관점에서 “온전히 나쁘다”고 지적했는데, 이들 라이브러리가 암호 전문가에 의해 만들어지고 사용되기 때문이다.

그린 교수는 암호화 소프트웨어를 사용하기 쉽게 만드는 것이 개발자를 교육하는 것보다 훨씬 더 효율적인 방법이라고 생각한다. “우리는 개발자가 핵심 인터넷 프로토콜인 TCP를 재구현하거나 뭔가 새로 만들 때마다 파일 시스템을 새로 만드는 것을 생각하지 않는다”며, “현재의 암호화 API가 불편한 것은 암호화, 더 넓게는 보안이 다른 기술에 비해 덜 성숙했다는 것을 나타내는 것이다”라고 강조했다.

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.