새로운 트렌드와 신기술이 결합해 혁신을 만들어 내는 변화의 주기가 점점 빨라지고 있습니다. 기업의 비즈니스 경쟁력을 유지하기 위해서는 변화하는 환경에 맞는 새로운 IT역량이 필요한데요. 모바일, 디지털 중심의 서비스 환경에서는 고객 경험의 접점인 애플리케이션이 비즈니스 혁신의 핵심 영역이라 할 수 있습니다.
애플리케이션이 증가할수록 앱을 통한 해킹이나 보안 위협 또한 증가하고 있는데요. 미국의 애플리케이션 보안 기업 Veracode의 ‘State of Software Security’ 보고서에 따르면, 테스트 된 애플리케이션(약 85,000개) 중 83%가 최소 한 가지 이상의 보안 결함을 가지고 있다고 합니다. 이번 글에서는 애플리케이션 현대화(Application Modernization, 이하 AM) 측면에서 살펴본 애플리케이션 보안에 대해 소개하겠습니다.
애플리케이션 해킹을 막는 AM보안 체크리스트 4가지
AM은 IT인프라, 경영시스템, 서비스 등 기존의 앱을 최신기술로 활용해 고객의 비즈니스 요구에 맞춰 구축/개선하는 것을 말합니다. 애플리케이션 서비스를 고객 요구 변화에 맞춰 유연하고 신속하게 대응하기 위해서는 AM 과정이 반드시 필요한데요. 해킹으로부터 애플리케이션을 보호할 수 있는 AM 측면의 4가지 보안 방안은 아래와 같습니다.
1. 애플리케이션 인증 및 권한
인증(Authentication)이란 사용자 또는 다른 애플리케이션이 접속 또는 연계를 시도할 때 자신이 주장하는 사용자, 애플리케이션과 동일한지를 확인하는 과정입니다. 권한(Authorization)은 사용자 또는 애플리케이션의 활동이 권한에 맞는 허가된 행동인지 확인하는 과정입니다. 애플리케이션 보안에서 인증 및 권한은 함께 고려되어야 합니다.
• 인증
이전에는 애플리케이션마다 ID와 PW 입력이 필요한 자체 로그인 프로세스를 선호했으나, 구글의 IDP(Identity Provider, ID 제공자)와 같은 OAuth2.0 인증이 빠른 속도로 발전하면서 사용 빈도가 증가하고 있습니다.
OAuth2.0은 특정 애플리케이션의 인가 정보를 바탕으로, 별도의 개인정보 입력 없이 다른 애플리케이션 접속을 가능케 하는 인증 및 권한 프로토콜입니다. 대표적인 예로 구글, 카카오톡, 네이버 등의 SNS 간편 로그인이 있는데요.
OAuth2.0 인증을 하는 경우, 클라이언트(브라우저 또는 모바일 기기 등) 상에는 인증에 필요한 정보 노출을 최소화해야 합니다. 재인증을 위한 비밀키를 클라이언트에 입력하면, 외부에 유출될 위험이 있기 때문인데요. 이와 같은 상황을 방지하기 위해 비밀키를 포함한 민감 정보는 반드시 서버 또는 백앤드 애플리케이션에서 별도로 관리해야 합니다.
또한 인증을 강화하기 위해 OTP, 휴대폰 SMS 인증 등 MFA(Multi-Factor Authentication)를 추가로 고려할 수 있습니다
• 권한
권한을 구현하는 방법은 매우 다양하며, 개별 비즈니스 요건 및 애플리케이션의 특성을 고려해야 합니다. 특히 사용자 또는 애플리케이션은 최소한의 권한을 부여하되 권한 및 기능을 매핑하여 유연한 확장이 가능하도록 구성하는 것이 중요합니다.
2. 로깅 및 모니터링
• 공격 및 위험 항목에 대한 모니터링
애플리케이션에 보안 위협이 있는 경우, 로깅(logging, 시스템의 작동 정보인 로그(log)를 기록하는 행위)을 통해 누가 어떻게 데이터에 접근했는지 식별할 수 있어야 합니다. 또한 로그 파일의 안전한 관리를 위해 별도의 보관 장소를 구축하고, 로그 파일에 접근할 수 있는 사용자 권한을 제어하는 것이 중요합니다.
• 업무 데이터 로깅 시 패턴을 활용한 특정 정보 마스킹 처리
사용자의 요청과 응답 항목 중 중요 데이터(예를 들어 사용자의 패스워드 또는 전화번호 등)의 경우 아무나 볼 수 없도록 마스킹 처리를 해야 합니다. 이 경우 개별 프로그램에서 처리하는 것이 아니라 공통 프로그램에서 패턴을 통해 마스킹 처리하는 것이 중요합니다.
3. 보안 전문가와 협업
보안 전문가는 개발팀과 협업을 촉진하고 모의해킹 등을 통해 애플리케이션의 취약한 영역을 식별할 수 있습니다. 보안 전문가는 아키텍처 검토, 민감한 데이터의 암/복호화 방법, 사용자 인증/권한 관리, 사용되는 암호화 알고리즘 및 세션 관리 등 다양한 방법을 통해 보안의 취약성을 점검하고 확인합니다. 이를 통해 안전한 보안 상태 유지 및 조기 식별에 따른 비용 절감 효과를 기대할 수 있습니다.
4. 중요 데이터 암/복호화
데이터의 암/복호화를 진행할 때, Key 관리는 매우 중요하면서도 어려운 항목인데요. 데이터 키를 관리하는 방식엔 데이터 키를 매번 새롭게 생성하는 기본 방식과 생성된 데이터 키를 특정 조건에서 재사용하는 캐쉬 방식이 있습니다. 보안 강화를 위해서는 이 두 가지 방식을 함께 고려해야 하는데요. 두 가지 방식의 장/단점이 뚜렷하기 때문에 구축해야 할 비즈니스 요건 및 애플리케이션의 특징에 따라 선택해야 합니다.
캐쉬 방식을 사용해야 할 경우 아래의 캐쉬 조건을 고려해서 성능 향상과 보안을 강화할 수 있습니다.
① 캐쉬 대상 데이터 키 전체 건수
② 하나의 캐쉬 데이터 키로 가능한 데이터 암/복호화 건수
③ 캐쉬 데이터 키의 유효한 시간
애플리케이션 보안도 LG CNS와 함께!
지금까지 AM 진행 시 필요한 4가지의 보안 항목을 살펴봤는데요. 보안은 필수 사항이며 협의의 대상이 아닙니다. AM을 통한 비즈니스 혁신과 함께 AM 관점의 보안 체계를 구축한다면, 비즈니스 경쟁력을 한층 더 강화할 수 있을 것입니다. LG CNS와 함께 안전한 AM 보안을 구축해 보세요!
● 보안 컨설팅부터 구축/운영/관제 등 LG CNS의 통합보안 서비스가 궁금하다면?
글 ㅣ LG CNS 클라우드사업부 빌드센터 마이크로서비스개발팀