Skip to main content
사이버 보안

해싱이란?

해싱은 데이터 보안의 기본 기술입니다. 해싱의 작동 원리와 민감한 정보 보호에서의 역할을 알아보세요.

작성자 SentinelOne
해싱이란?

해싱은 암호학과 정보 보안의 기본 개념입니다. 이 가이드에서는 해싱의 원리와 암호화 해시 함수의 작동 방식, 민감한 데이터 보호에서의 중요성을 살펴봅니다.

해시 함수의 종류와 특성, 비밀번호 저장, 데이터 무결성 검증, 디지털 서명 같은 일반적인 활용 사례를 알아보세요. 조직의 사용 사례에 적합한 해시 함수를 선택하고 안전한 해싱 관행을 적용하는 방법도 살펴보세요.

Hashing - Featured Image | SentinelOne

해싱 알고리즘이란?

해시는 MD5 (메시지 다이제스트 5) 또는 SHA (보안 해시 알고리즘)와 같은 해싱 알고리즘의 출력값입니다. 이 알고리즘은 기본적으로 주어진 데이터 또는 “메시지”마다 고유한 고정 길이 문자열 – 해시 값 또는 “메시지 다이제스트” – 을 생성하는 것을 목표로 합니다. 컴퓨터의 모든 파일은 결국 이진 형태로 표현할 수 있는 데이터이므로, 해싱 알고리즘은 해당 데이터에 복잡한 연산을 수행하고 그 결과로 고정 길이 문자열을 출력할 수 있습니다. 이 결과가 파일의 해시 값 또는 메시지 다이제스트입니다.

Windows 10에서 파일의 해시를 계산하려면 PowerShell에 내장된 Get-FileHash cmdlet에 해시 값을 구할 파일의 경로를 입력하세요. 기본적으로 SHA-2 256 알고리즘을 사용합니다:

image of use powershell to create hash

다른 알고리즘을 사용하려면 파일 경로 뒤에 -Algorithm 스위치로 해당 알고리즘을 지정하세요. 결과를 Format-List로 전달하면 더 읽기 쉬운 형식으로 출력됩니다:

image of powershell formatted hash values

Mac과 Linux에서는 명령줄 도구인 shasum과 md5가 같은 역할을 합니다. 곧 살펴보겠지만 Windows, Mac, Linux 중 어떤 운영체제를 사용하든 파일과 해싱 알고리즘이 같다면 해시 값도 동일합니다.

해시로 파일의 동일성을 확인하는 방법

해시는 역산할 수 없습니다. 따라서 해싱 알고리즘으로 계산한 파일의 해시 값만 알아서는 파일 내용을 복원할 수 없습니다. 하지만 파일 내용을 몰라도 두 파일이 동일한지는 확인할 수 있습니다. 해시는 역산이 불가능하므로, 해싱 알고리즘으로 계산된 파일의 해시 결과만으로는 해당 파일의 내용을 재구성할 수 없습니다. 그러나 이로 인해 파일 내용을 전혀 알지 못하더라도 두 파일이 동일한지 여부를 판단할 수 있습니다.

이 때문에 결과값의 고유성은 해시 개념의 핵심입니다. 서로 다른 두 파일에서 같은 해시 값이 나온다면 ‘충돌’이 발생한 것이며, 해당 해시를 파일의 신뢰할 수 있는 식별자로 사용할 수 없습니다.

충돌 가능성은 낮지만 실제로 발생할 수 있습니다. 이 때문에 SHA-1과 MD5는 SHA-2 같은 더 안전한 알고리즘으로 대체되었습니다. 예를 들어 다음 두 파일, ship.jpg와 plane.jpg의 내용은 눈으로 봐도 분명히 다르므로 서로 다른 해시 값이 나와야 합니다.

image of md5 collision example

하지만 MD5로 값을 계산하면 충돌이 발생해 두 파일이 동일한 것처럼 잘못 표시됩니다. 아래는 macOS의 Terminal.app에서 명령줄로 얻은 결과입니다. ship.jpg의 해시 값이 앞서 PowerShell에서 얻은 값과 같은 것도 확인할 수 있습니다:

image of md5 example

이제 SHA-2 256으로 해시 값을 계산해 보겠습니다. 이번에는 예상대로 두 파일이 서로 다르다는 정확한 결과가 나옵니다:

image of shasum example

해싱은 어디에 사용될까요?

파일마다 고유한 식별자가 있으면 이를 여러 방식으로 활용할 수 있습니다. 일부 레거시 AV 제품은 파일의 내용이나 동작을 검사하지 않고 해시 값만으로 악성 여부를 판단합니다. 이를 위해 알려진 악성코드의 해시 값을 내부 데이터베이스에 저장합니다. 시스템을 검사할 때 AV 엔진은 사용자 기기의 각 실행 파일에 대한 해시 값을 계산하고 데이터베이스에 일치하는 값이 있는지 확인합니다.

사이버 보안 초창기에는 간편한 방법으로 보였겠지만, 지금은 해시 값에 의존하는 방식의 한계가 분명합니다.

첫째, 악성코드 샘플이 폭발적으로 늘어나면서 시그니처 데이터베이스를 유지·관리하는 방식은 더 이상 규모에 맞춰 확장하기 어렵습니다. 매일 새로 나타나는 고유 악성코드 샘플은 500,000개가 넘는 것으로 추정됩니다. 이는 악성코드 제작자가 해시에 의존하는 AV 엔진을 쉽게 속여 샘플을 인식하지 못하게 할 수 있다는 사실을 깨달은 데 크게 기인합니다. 공격자는 파일 끝에 바이트 하나만 추가하면 다른 해시를 만들어낼 수 있습니다.

Image of Hashing Used For

이 과정은 매우 간단해서 악성코드 제작자가 자동화할 수 있습니다. 그러면 같은 URL에서 몇 초마다 해시 값만 다른 동일한 악성코드를 피해자에게 전달할 수 있습니다.

둘째, 레거시 AV의 근본적인 한계는 위협을 탐지하려면 해당 위협을 미리 알아야 한다는 점입니다. 따라서 알려진 해시 값의 데이터베이스에 의존하는 악성코드 방지 제품은 설계상 새로운 공격보다 항상 한발 늦습니다.행동 기반 AI 다층 방어 접근법을 취하는 보안 솔루션입니다.

이에 대한 해답은 Behavioral AI를 활용하고 심층 방어 방식을 적용하는 보안 제품입니다.

그렇다고 해시 값이 쓸모없다는 뜻은 아닙니다. 오히려 파일을 고유하게 식별하는 기능은 여전히 중요합니다. 코드 서명이나 SSL 등 다양한 분야에서 디지털 서명과 인증서에 해시 값을 사용해 파일, 웹사이트, 다운로드의 진위를 확인합니다.

image of ssl certificate hash

해시 값은 보안 연구원, SOC 팀, 악성코드 헌팅 담당자, 리버스 엔지니어에게도 유용합니다. SentinelOne을 비롯한 여러 곳의 기술 보고서에서 해시를 사용하는 가장 일반적인 목적 중 하나는 침해 지표를 공유하는 것입니다. 연구원은 해시 값으로 악성코드 샘플을 식별하고 VirusTotal, VirusBay, Malpedia 및 MalShare 같은 악성코드 저장소를 통해 다른 사람과 공유할 수 있습니다.

image of virus bay malware repository

위협 헌팅에서 해시의 이점 또한 해시 값 덕분에 더 쉬워졌습니다. SentinelOne 관리 콘솔에서 IT 관리자가 해시 값을 사용하여 전체 시스템에서 위협을 검색하는 방법을 예시로 살펴보겠습니다.

해시는 한 대의 컴퓨터에서 위협을 식별하고 전체 네트워크에서 해당 파일의 존재 여부를 쿼리할 때 정말 유용합니다. SentinelOne 관리 콘솔에서 가시성 아이콘을 클릭하고 새 쿼리를 시작하세요. 이 경우 파일의 SHA1 해시값을 사용하여 지난 3개월 동안 해당 파일의 존재 여부를 확인해 보겠습니다. 역시 해시값 덕분에 더 쉬워집니다. IT 관리자가 SentinelOne 관리 콘솔에서 해시값으로 관리 대상 기기 전반의 위협을 검색하는 예를 살펴보겠습니다.

한 기기에서 위협을 발견하고 전체 네트워크에 해당 파일이 있는지 확인할 때 해시는 유용합니다. SentinelOne 관리 콘솔에서 Visibility 아이콘을 클릭하고 새 쿼리를 시작하세요. 여기서는 파일의 SHA1 해시만 사용해 지난 3개월 동안 해당 파일이 존재했는지 확인하겠습니다.

image of threat hunting

몇 가지 사례가 확인됩니다. 하지만 여기서 끝이 아닙니다. 해시 검색을 통해 TrueContext ID를 찾았습니다. 이를 바탕으로 해당 파일이 생성한 프로세스, 수정한 파일, 접속한 URL 등 파일의 동작을 자세히 조사할 수 있습니다. 즉, 파일 해시에서 몇 번만 클릭하면 전체 공격 흐름을 파악할 수 있습니다.

image of sentinelone true context ID그럼에도 해시는 IOC 공유나 위협 탐색 같은 보안 분석 작업에 여전히 유용하며, 컴퓨터 및 네트워크 보안 분야에서 일한다면 매일 접하게 될 것입니다.

결론LinkedIn, 트위터, YouTube 또는 Facebook에서 저희가 게시하는 콘텐츠를 확인하실 수 있습니다.

해시는 컴퓨터 보안의 기본 도구입니다. 충돌을 방지하는 안전한 해시 알고리즘을 사용하면 두 파일이 동일한지 신뢰성 있게 확인할 수 있습니다. 하지만 앞서 살펴봤듯이 두 파일은 해시가 달라도 동작과 기능이 같을 수 있습니다. 따라서 해시 일치 여부에만 의존하는 AV 탐지 방식에는 한계가 있습니다.

그럼에도 해시는 보안 분석가가 IOC를 공유하고 위협 헌팅을 수행할 때 유용합니다. 컴퓨터 및 네트워크 보안 분야에서 일한다면 매일 해시를 접하게 될 것입니다.

  • CISO가 지금 당장 사이버 보안 기술 부족 문제를 해결할 수 있는 5가지 방법
  • 악성 코드가 애플의 macOS 보안을 쉽게 무력화하는 방법
  • Windows PowerShell이란 무엇인가요? (그리고 악성일 수 있나요)?

  • 이 글이 마음에 드셨나요? LinkedIn, Twitter, YouTube 또는 Facebook에서 저희를 팔로우하고 게시물을 확인하세요.

    사이버 보안에 대해 더 알아보기

    해싱 FAQ

    해싱은 데이터를 고정 길이의 문자열로 변환하는 단방향 암호화 기술입니다. 이 과정을 되돌려 원본 데이터를 복원할 수는 없습니다. 디지털 지문처럼 같은 입력값은 언제나 같은 해시를 생성하지만, 입력값이 다르면 결과도 완전히 달라집니다. 해싱은 비밀번호를 보호하고 파일 무결성을 검증하며 데이터 변조 여부를 확인합니다. 블록체인 기술과 디지털 서명에도 필수적입니다.


    "

    대표적인 예로 “hello”라는 단어에 SHA-256 해싱을 적용하면 “2cf24dba4f21d4288094c30e2ede82c380cac19544bb5c4ab02f5b2db38500d3”이 생성됩니다. 한 글자만 바꿔 “Hello”로 만들면 해시가 완전히 달라집니다. 비밀번호 시스템에서도 해싱을 사용합니다. 비밀번호를 만들면 해싱한 값을 저장하고, 로그인할 때 입력한 비밀번호를 해싱해 저장된 해시와 비교합니다. 파일 무결성 검사에도 해싱을 사용해 변경 사항을 탐지합니다.

    해싱은 무단 변경을 탐지해 데이터 무결성을 보장합니다. 데이터베이스가 침해되더라도 비밀번호를 읽을 수 없도록 보호합니다. 다운로드한 파일이 손상되거나 악성코드에 감염되지 않았는지도 확인할 수 있습니다. 해싱은 디지털 서명과 안전한 통신 프로토콜을 뒷받침합니다. 블록체인 기술과 암호화폐 보안의 기반이기도 합니다. 해싱이 없다면 전송하거나 저장하는 동안 데이터가 변경되지 않았다고 신뢰할 수 없습니다.


    "

    주요 해싱 계열은 MD(Message Digest), SHA(Secure Hash Algorithm), RIPEMD입니다. MD5는 128비트 해시를 생성하지만 현재는 안전하지 않은 것으로 간주됩니다. 현재 가장 널리 사용되는 SHA-256은 256비트 해시를 생성합니다. SHA-3는 기존 알고리즘을 대체하도록 설계된 최신 표준입니다. 각 유형은 보안 강도, 해시 길이, 연산 요구 사항이 다릅니다. 현대적인 시스템은 보안이 중요한 애플리케이션에 SHA-256 또는 SHA-3를 선호합니다.


    "

    해싱은 단방향이며 되돌릴 수 없지만, 암호화는 양방향이며 복호화할 수 있습니다. 해싱은 입력 크기에 관계없이 항상 고정 길이의 결과를 생성합니다. 암호화 결과의 길이는 입력 데이터에 따라 달라집니다. 해싱은 데이터 무결성을 검증하고 암호화는 데이터 기밀성을 보호합니다. 암호화된 데이터는 올바른 키로 복호화할 수 있지만 해시에서 원본 데이터를 복원할 수는 없습니다. 둘은 서로 다른 보안 목적에 쓰이며 함께 사용되는 경우도 많습니다.


    "

    해싱은 원본 정보를 역추적할 수 없게 만들어 데이터를 안전하게 보호합니다. 공격자가 해싱된 비밀번호를 훔치더라도 실제 비밀번호를 쉽게 알아낼 수 없습니다. 원본 데이터가 조금이라도 바뀌면 완전히 다른 해시가 생성되므로 변조를 탐지할 수 있습니다. 해싱에는 암호화 키가 필요하지 않아 탈취될 키도 없습니다. 실제 내용을 노출하지 않고 데이터 무결성을 검증할 수 있습니다. 따라서 비밀번호 저장과 파일 검증에 적합합니다.


    "

    해싱은 빠른 데이터 검색과 검증을 지원합니다. 원본 콘텐츠를 노출하지 않고 데이터 무결성을 보장합니다. 적절한 해싱 기법을 사용하면 비밀번호 보안이 크게 강화됩니다. 파일 무결성 검사도 간편하고 신뢰할 수 있게 됩니다. 해싱은 블록체인 기술과 안전한 거래를 가능하게 합니다. 계산 효율이 높고 키 관리가 필요하지 않습니다. 디지털 서명과 인증 시스템은 보안을 위해 해싱에 의존합니다. 데이터 중복 제거와 효율적인 저장소 관리에도 해싱이 기여합니다.


    "

    다음에 대해 더 알아보기 사이버 보안

    Decorative background gradient

    가장 진보된 사이버 보안 플랫폼을 경험해 보세요

    세계에서 가장 지능적이고 자율적인 사이버 보안 플랫폼이 오늘과 미래에 귀사의 조직을 어떻게 보호할 수 있는지 확인해 보세요.
    Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text