시큐어코딩
- home
- 보안소식
- 시큐어코딩
21. [보안 기능] 중요정보 평문 전송
2019.04.30 10:07
안녕하세요, 지에스인포입니다.
오늘 소개 해 드릴 소프트웨어 보안약점은 행안부 개발보안 가이드라인 47개 항목 중 "중요정보 평문 전송"이라는 항목입니다.
중요정보 평문 전송 : "사용자 또는 시스템의 중요정보가 포함된 데이터를 평문으로 송·수신할 경우, 통신채널 스니핑을 통해 인가되지 않은 사용자에게 민감한 데이터가 노출 될 수 있는 보안약점"
중요정보를 통신을 통해 전송하는 경우, 개인정보, 인증정보 등의 사용자 중요정보 및 시스템 중요정보를 평문으로 전송 할 경우 공격자에게 민감한 정보가 노출 될 수 있는 위험성이 있습니다.
인증정보와 같은 민감한 정보 전송시 안전하게 암호화해서 전송하는 방법이 필요한데요. 네트워크를 통한 전송시 중요 정보를 "암호연산" 요구항목을 충족시키는 암호화 알고리즘이나 암호키를 사용하여 안전한 암호모듈로 암호화 하여 전송하거나 SSL 또는 HTTPS 와 같은 안전한 통신 채널을 사용하도록 설계해야 합니다.
또한 웹 애플리케이션 설계시에는 클라이언트에서 서버로 전달되는 데이터(hidden필드, Ajax변수, 쿠키, 헤더값) 또는 서버에서 클라이언트로 전달되는 데이터(HTTP응답헤더 포함) 중 불필요하게 많은 데이터가 전송되지 않도록 해야 한답니다.
데이터 전송시 쿠키 보안도 중요한데요. 원칙적으로는 쿠키에 중요정보가 포함되지 않도록 설계해야 하지만 부득이하게 쿠키에 중요정보가 포함되어야 하는 경우에는 반드시 세션쿠키로 설정하고, 전달되는 중요정보는 반드시 암호화해서 전송해야 합니다.
그러면 중요정보 평문 전송에 대한 소스코드의 좋은 사례와 나쁜 사례를 함께 보시겠습니다.
위의 소스코드에서는 패스워드를 암호화 하지 않고 네트워크를 통해 전송하고 있습니다. 이 경우 패킷 스니핑을 통하여 패스워드가 노출 될 위험성이 존재합니다.
반면 이 예제에서는 패스워드를 네트워크를 통해 서버로 전송하기 전에 AES 등의 안전한 암호알고리즘으로 암호화하여 안전하게 프로그래밍을 하고 있는 모습을 볼 수 있습니다.
이렇게 서버에 정보를 전송하기 전, 암호화 과정만 추가 해 주어도 보안성이 훨씬 향상된다는 사실을 알 수 있습니다.
위 뉴스는 국내의 한 대기업이 이용자들의 위치 정보를 암호화해서 전송하지 않았다가 해커들의 타깃이 되어 수많은 이용자들의 민감정보가 유출 된 사고사례인데요, 이처럼 중요 정보를 암호화하여 전송하지 않을 경우 해커들이 통신 중간에 잠입하여 정보를 탈취 해 갈 수가 있다는 사실! 모두 아셨죠?
지금까지 "중요정보 평문 전송"에 관한 항목을 살펴보았습니다. 다음 포스팅에서는 또 다른 항목과 알찬 내용으로 찾아뵙도록 하겠습니다.