맨위로가기

펌웨어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

펌웨어는 컴퓨터 하드웨어에 내장되어 하드웨어를 제어하고 관리하는 소프트웨어의 일종이다. 1967년 '펌웨어'라는 용어가 처음 사용되었으며, 초기에는 마이크로코드를 담아 CPU 명령어를 수정하는 데 사용되었다. 시간이 지나면서 PC의 BIOS, 스마트폰의 부트 펌웨어, 가전제품의 제어 시스템 등 하드웨어와 밀접하게 연결된 모든 컴퓨터 프로그램을 지칭하는 용어로 확장되었다. 펌웨어는 PC, 가전제품, 자동차, 네트워크 장비 등 다양한 분야에 응용되며, 업데이트를 통해 기능 개선, 버그 수정, 새로운 기능 추가가 이루어진다. 펌웨어는 장치 드라이버를 통해 로드될 수 있으며, 펌웨어 해킹을 통해 새로운 기능 추가, 숨겨진 기능 활성화가 가능하지만, 보안 위험을 초래할 수 있다.

더 읽어볼만한 페이지

  • 펌웨어 - 바이오스
    BIOS(Basic Input/Output System, 기본 입출력 시스템)는 컴퓨터 하드웨어와 운영 체제 사이에서 하위 수준 인터페이스 역할을 하며, 부팅 과정에서 하드웨어를 초기화하고 제어하며, UEFI로 대체되는 추세이다.
  • 펌웨어 - 마이크로코드
    마이크로코드는 CPU 내에서 기본적인 연산을 수행하는 저수준 명령어 집합으로, 하드웨어와 소프트웨어 사이의 간극을 메우고, 복잡한 기계어 명령을 단순한 하드웨어 수준의 동작으로 분해하여 실행하며, 컴퓨터 아키텍처의 유연성을 높이고 오류 수정 및 기능 개선을 용이하게 한다.
  • 임베디드 시스템 - 로봇공학
    로봇공학은 기계적 구조, 전기적 부품, 소프트웨어로 이뤄진 로봇의 설계, 제작, 운용 및 응용에 관한 학문 분야로, 산업, 의료, 우주 탐사 등 다양한 분야에서 활용되며 인간-로봇 상호작용 및 로봇의 자율성 향상 연구가 진행 중이다.
  • 임베디드 시스템 - 허니웰
    허니웰은 1885년 설립된 기업으로, 항공우주, 빌딩 자동화, 안전 및 생산성 솔루션, 성능 소재 및 기술 분야에서 사업을 영위하며, 군사 기술 개발 및 펜탁스 카메라 수입업체로 활동했고, 환경 문제 관련 비판을 받기도 한다.
펌웨어
기본 정보
종류컴퓨터를 동작시키는 기본적인 소프트웨어
개발 시기하드웨어가 만들어진 직후
저장 위치ROM
역할하드웨어의 동작을 제어하고 관리
하드웨어와 운영 체제 간의 인터페이스 제공
시스템 부팅 시 초기화 작업 수행
특징
휘발성 여부비휘발성
수정 가능성제한적 (일반적으로 최종 사용자가 수정 불가)
중요성시스템의 기본적인 동작을 담당하므로 매우 중요
기능
부팅시스템 전원이 켜질 때 하드웨어를 초기화하고 운영 체제를 로드
하드웨어 제어CPU, 메모리, 입출력 장치 등 하드웨어의 동작을 제어
인터페이스 제공운영 체제와 하드웨어 간의 통신을 담당
오류 처리하드웨어 오류를 감지하고 처리
종류
BIOSIBM PC 호환기종의 메인보드에 탑재된 펌웨어
UEFIBIOS를 대체하는 새로운 펌웨어 인터페이스
임베디드 펌웨어라우터
스마트폰
가전제품
기타 임베디드 시스템에 탑재된 펌웨어
개발 과정
개발 언어C 언어, 어셈블리어 등
개발 도구컴파일러, 디버거, 에뮬레이터 등
개발 절차하드웨어 사양 분석
펌웨어 설계
코딩
테스트
디버깅
중요성
안정성시스템의 안정적인 동작에 필수적
보안펌웨어의 보안 취약점은 시스템 전체의 보안을 위협할 수 있음
성능펌웨어의 성능은 시스템 전체의 성능에 영향
최신 동향
무선 업데이트펌웨어를 무선으로 업데이트하는 기술 (OTA, Over-The-Air)
보안 강화펌웨어 보안 강화를 위한 연구 및 개발 활발
오픈 소스 펌웨어오픈 소스 펌웨어 개발 활발 (예: Linux 기반 펌웨어)

2. 역사

애셔 오플러(Ascher Opler)는 1967년 《데이터메이션》 기사에서 '펌웨어'라는 용어를 처음 사용했다.[23] 원래 펌웨어는 마이크로코드를 담고 있고 컴퓨터의 명령어 집합을 구현한, 쓰기 가능한 컨트롤 스토어(크기가 작은 특수 고속 메모리)의 내용물을 의미했다. 중앙 처리 장치(CPU)가 실행할 수 있는 명령을 수정하기 위해 다시 로드할 수 있었다. 오플러는 4세대 컴퓨터 시스템이 쓰기 가능한 제어 저장소(소규모의 특수 고속 메모리)를 갖게 될 것이라고 예상했으며, 여기에 마이크로코드 펌웨어가 로드될 것이라고 전망했다. 그는 많은 소프트웨어 기능이 마이크로 코드로 이동하고, 명령어 집합은 맞춤 설정될 수 있으며, 다른 명령어 집합에 대해 다른 펌웨어를 로드할 수 있게 될 것이라고 보았다.[3]

1990년대 중순까지 펌웨어를 업데이트하는 일은, 펌웨어를 포함하는 기억 매체(일반적으로 소켓 형태의 ROM 집적 회로)를 교체하는 일이 수반되었다. 플래시 메모리는 시스템으로부터 물리적으로 집적 회로를 제거하지 않고 펌웨어를 업데이트할 수 있게 해 주었다.

컴퓨터가 복잡해지면서, 보다 복잡한 프로그램을 사용자의 재량에 따라 실행하기 위해 일관된 환경을 제공하려면 먼저 다양한 프로그램을 시작하고 실행해야 한다는 것이 분명해졌다. 이를 위해서는 컴퓨터가 해당 프로그램을 자동으로 실행하도록 프로그래밍해야 했다. 또한, 기업, 대학 및 마케터가 기술적 지식이 거의 없는 일반인에게 컴퓨터를 판매하고자 함에 따라, 일반 사용자가 실용적인 목적으로 프로그램을 쉽게 실행할 수 있도록 더 큰 자동화가 필요해졌다. 이로 인해 사용자가 의식적으로 실행하지 않는 일종의 소프트웨어가 생겨났으며, 일반 사용자는 심지어 알지 못하는 소프트웨어로 이어졌다.[4]

원래 펌웨어는 하드웨어(CPU 자체) 및 소프트웨어(CPU에서 실행되는 일반 명령어)와 대조되었다. 이는 CPU 기계 명령어로 구성되지 않고, 기계 명령어의 구현과 관련된 저수준 마이크로 코드로 구성되었다. 펌웨어는 하드웨어와 소프트웨어의 경계에 존재했기에 "펌웨어"라는 이름이 붙었다. 시간이 지남에 따라, 일반적인 사용법은 "펌웨어"라는 단어를 PC의 BIOS, 스마트폰의 부트 펌웨어, 컴퓨터 주변 장치, 또는 전자 제품과 같은 간단한 소비자 전자 제품의 제어 시스템(예: 전자레인지, 리모콘)을 포함하여 하드웨어와 밀접하게 연결된 모든 컴퓨터 프로그램을 지칭하는 용어로 확장되었다.

초창기에는 제한된 하드웨어 자원으로 필요한 성능을 얻기 위해 어셈블리 언어와 같은 저급 언어로 펌웨어를 개발하는 경우가 많았다. 그러나 임베디드용 CPU의 고속화와 기록 매체인 반도체 메모리 가격의 대폭 하락 및 대용량화로 인해, C 언어와 같은 보다 고급 언어를 사용할 수 있게 되었다. 또한, 종전처럼 동작과 관련된 모든 것을 처음부터 코딩하는 방식뿐만 아니라, 복잡한 처리를 하는 시스템에서는 운영 체제도 포함한 모든 소프트웨어를 기기에 내장하여, 개발의 효율화와 고기능화를 꾀하는 사례도 늘고 있다.

특히 저비용으로 대량 생산되는 제품의 경우, 마스크 ROM을 내장한 마이크로컨트롤러를 사용하기 때문에 출하 후 변경이 불가능하다. 교체 가능한 UV-EPROM 등을 장착한 기기라도, 출하 후 업데이트를 하려면 ROM 교체 등의 처리에 막대한 비용이 들기 때문에, 일반적인 소프트웨어 개발보다 훨씬 높은 수준의 완전성이 요구된다. 하지만, 플래시 메모리의 등장으로 케이스 뚜껑을 열지 않고도 사용자가 전자적인 조작만으로 변경할 수 있는 ISP(인 시스템 프로그래밍)가 가능하게 되어, 출하 후 업데이트가 이전보다 비교적 쉽게 이루어지게 되었다.[21]

3. 응용 분야

펌웨어는 PC, 가전제품, 주변 기기, 휴대 전화 등 다양한 전자기기에 사용된다.[20][21]


롬 바이오스 펌웨어가 AT 메인보드에 붙어 있다

3. 1. 컴퓨터



3. 2. 가전 제품

게임 콘솔, 디지털 카메라, 휴대용 음악 플레이어와 같은 소비자 가전 제품은 펌웨어 업그레이드를 지원한다. 일부 회사는 펌웨어 업데이트를 사용하여 재생 가능한 새로운 파일 형식(코덱)을 추가하기도 한다. 펌웨어 업데이트로 GUI 또는 배터리 수명과 같은 다른 기능들이 변경될 수 있다. 스마트폰은 새로운 기능을 추가하고 보안 문제를 해결하기 위해 무선 펌웨어 업그레이드 기능을 갖추고 있다.

3. 3. 자동차

1996년 이후 대부분의 자동차는 기계적 문제를 감지하기 위해 차량 내 컴퓨터와 다양한 센서를 사용해왔다. 현재의 자동차는 컴퓨터 제어 ABS(안티록 브레이크 시스템)와 컴퓨터로 작동하는 변속기 제어 장치 (TCU)도 사용한다. 운전자는 실시간 연비 및 타이어 공기압 측정값과 같은 정보를 운전 중에 대시보드에서 확인할 수도 있다. 지역 딜러는 대부분의 차량 펌웨어를 업데이트할 수 있다.

3. 4. 기타


  • 가정 및 개인 사용 제품:
  • * 세탁기의 타이밍 및 제어 시스템
  • * 최신 텔레비전에서 사운드 및 비디오 속성, 채널 목록 제어
  • 라우터, 스위치, 방화벽:
  • * LibreCMC - Linux-libre 커널 기반의 100% 자유 소프트웨어 라우터 배포판
  • * IPFire - 리눅스 커널 기반의 오픈 소스 방화벽/라우터 배포판
  • * fli4l - 리눅스 커널 기반의 오픈 소스 방화벽/라우터 배포판
  • * OpenWrt - 리눅스 커널 기반의 오픈 소스 방화벽/라우터 배포판
  • * m0n0wall - FreeBSD의 임베디드 방화벽 배포판
  • * 독점 펌웨어
  • NAS 시스템:
  • * NAS4Free - FreeBSD 기반의 오픈 소스 NAS 운영 체제
  • * Openfiler - 리눅스 커널 기반의 오픈 소스 NAS 운영 체제
  • * 독점 펌웨어
  • 필드 프로그래머블 게이트 어레이(FPGA) 코드는 펌웨어라고도 합니다.

4. 펌웨어와 장치 드라이버

현대 시스템의 많은 장치는 자체 소프트웨어를 실행하는 특수 목적 컴퓨터이다. 일부 장치는 ROM에 펌웨어를 저장하지만, 제조업체들은 호스트 시스템에서 펌웨어를 로드하는 것이 더 저렴하고 유연하다는 것을 알게 되었다. 많은 하드웨어는 호스트 컴퓨터가 필요한 펌웨어를 제공할 때까지 작동하지 않는다. 이러한 펌웨어 로드는 장치 드라이버에서 구현된다.[5]

5. 펌웨어 업데이트 (플래싱)

'''플래싱'''[6]은 전자 장치에 내장된 EEPROM 또는 플래시 메모리 모듈에 들어 있는 기존 펌웨어나 데이터를 새로운 데이터로 덮어쓰는 과정이다.[6] 이는 장치를 업그레이드하거나[7] 장치 기능과 관련된 서비스 제공자를 변경하기 위해 수행될 수 있다. 예를 들어 이동 통신 서비스 제공자를 변경하거나 새로운 운영 체제를 설치하는 경우가 이에 해당한다.

펌웨어 업데이트는 보통 제조사에서 제공하는 프로그램을 통해 이루어지며, 업데이트 과정에서 오류가 발생하거나 새 버전의 성능이 좋지 않을 경우를 대비해 이전 버전의 펌웨어를 저장해 두었다가 복원할 수 있도록 지원한다. 제조사에서 제공하는 플래싱 도구 외에도 Flashrom과 같은 자유 소프트웨어 대체 도구도 개발되었다.

플래시 메모리의 등장으로, 케이스를 열지 않고도 사용자가 전자적인 조작만으로 펌웨어를 변경할 수 있는 ISP (인 시스템 프로그래밍) 기술이 가능해져, 제품 출시 후에도 비교적 쉽게 펌웨어를 업데이트할 수 있게 되었다.[21]

6. 펌웨어 해킹

커스텀 펌웨어는 제3자가 새로운 기능을 추가하거나 숨겨진 기능을 활성화하기 위해 만든 비공식적인 수정 펌웨어이다. 펌웨어 해킹은 펌웨어 업데이트 기능을 이용하거나, 익스플로잇을 통해 이루어진다. 대부분의 커스텀 펌웨어는 자유 소프트웨어이다.

6. 1. 예시

'''커스텀 펌웨어'''는 새로운 기능을 제공하거나 숨겨진 기능을 사용 가능하게 하기 위해, 서드 파티들에 의해 생성된 비공식적인 수정 펌웨어를 말한다. 이러한 수정 작업을 '''펌웨어 해킹'''이라고 한다.

대부분의 커스텀 펌웨어는 오픈 소스 자유 소프트웨어이다.

이러한 커스텀 펌웨어는 설치하거나 실행하기 위해, 많은 장치들에 있는 펌웨어 업데이트 기능을 사용한다. 그러나 몇몇 장치 제작사가 라이선스 없는 코드 실행을 막기 위해 하드웨어에 락을 걸려고 시도했기 때문에, 몇몇 커스텀 펌웨어는 실행하기 위해 익스플로잇에 의존해야 한다.

커스텀 펌웨어의 예시는 다음과 같다.

  • CHDK: 캐논 디지털 카메라
  • OpenWRT: 무선 공유기(라우터)
  • 게임 콘솔의 홈브루 프로젝트
  • * PSP 커스텀 펌웨어: 휴대용 게임기
  • 락박스(Rockbox): 디지털 오디오 플레이어
  • 아이팟 리눅스(:en:iPodLinux): 기능이 제한된 장치에서 범용 컴퓨팅 기능( 등을 실행)을 가능하게 한다.
  • 스마트폰: 몇몇 안드로이드폰은 루팅 시 커스텀 펌웨어로 변환이 가능하다. 예로는 MIUI, CM6, CM7 등이 대표적이다. 하지만 잘못할 경우 작동 불가, 즉 벽돌 상태가 될 수 있으며, 이로 인해 고장날 시 유상 수리를 해야 하므로 주의가 필요하다. 커스텀 펌웨어를 만드는 이유는 대부분 휴대전화를 최적화하거나, 필요 없는 애플리케이션을 삭제하거나, 펌웨어를 조금씩 변환하여 좀 더 보기 좋게 만들기 위해서이다.

6. 2. HDD 펌웨어 해킹

모스크바에 본사를 둔 카스퍼스키 랩은 Equation Group이 다양한 드라이브 모델에 대한 HDD 펌웨어 수정 트로이 목마를 개발했다는 사실을 발견했다. 이 트로이 목마는 드라이브를 포맷하거나 삭제하더라도 지워지지 않는 위치에 데이터를 저장할 수 있다.[8] 카스퍼스키 랩 보고서에서는 Equation Group이 미국 국가안보국 (NSA)의 일부라고 명시적으로 주장하지는 않았지만, Equation Group의 다양한 소프트웨어 코드에서 얻은 증거는 그들이 NSA와 관련이 있음을 시사한다.[9][10]

카스퍼스키 랩의 연구원들은 Equation Group의 활동을 지금까지 밝혀진 것 중 가장 진보된 해킹 작전으로 분류했으며, 최소 42개 국가에서 Equation Group에 의해 발생한 약 500건의 감염 사례를 문서화했다.

7. 보안 위험

마크 셔틀워스는 독점 펌웨어를 보안 위험으로 묘사하며, "장치의 펌웨어는 NSA의 가장 친한 친구"이자 "엄청난 규모의 트로이 목마"라고 칭했다.[11] 그는 품질이 낮고 비공개 소스 펌웨어가 시스템 보안에 큰 위협이 된다고 주장했다.[12] 그는 이 문제의 잠재적인 해결책으로 "실행 코드를 포함해서는 안 되는" 선언적 펌웨어를 제안했으며, 코드를 확인하고 검증할 수 있도록 펌웨어가 오픈 소스여야 한다고 주장했다.

사용자 지정 펌웨어 해킹은 멀웨어를 장치에 주입하는 데 사용될 수 있다. 심비안 OS에서 이러한 주입이 시연되었으며,[13][14] BadUSB라고 불리는 USB 장치 펌웨어 해킹은 Black Hat USA 2014 컨퍼런스에서 발표되었다.[15] 이 해킹은 USB 플래시 드라이브 마이크로컨트롤러를 재프로그래밍하여 다른 장치 유형을 사칭하고, 컴퓨터를 제어하거나 데이터를 유출하거나 사용자를 감시하는 방법을 시연했다.[16][17]

참조

[1] 웹사이트 W25X20CL Datasheet https://www.winbond.[...] Winbond 2024-08-30
[2] 웹사이트 What is firmware? http://incepator.pin[...] 2013-01-23
[3] 논문 Fourth-Generation Software https://archive.org/[...] 1967-01
[4] 웹사이트 Introduction to Computer Applications and Concepts. Module 3: System Software https://courses.lume[...] Lumen
[5] 간행물 Firmware-Update. Mehr Speed und Sicherheit 2000
[6] 웹사이트 Flashing Firmware http://www.tech-faq.[...] Tech-Faq.com 2011-07-08
[7] 웹사이트 HTC Developer Center http://developer.htc[...] HTC 2011-07-08
[8] 웹사이트 Equation Group: The Crown Creator of Cyber-Espionage http://www.kaspersky[...] Kaspersky Lab 2015-02-16
[9] 웹사이트 How "omnipotent" hackers tied to NSA hid for 14 years—and were found at last https://arstechnica.[...] 2015-02
[10] 웹사이트 Breaking: Kaspersky Exposes NSA's Worldwide, Backdoor Hacking of Virtually All Hard-Drive Firmware https://www.dailykos[...] Daily Kos 2015-02-17
[11] 간행물 Shuttleworth Calls for Declarative Firmware 2014-05
[12] 웹사이트 ACPI, firmware and your security http://www.markshutt[...] 2014-03-17
[13] 웹사이트 MalCon 2010 Technical Briefings http://malcon.org/we[...]
[14] 웹사이트 Hacker plants back door in Symbian firmware http://www.h-online.[...] 2010-12-08
[15] 웹사이트 Why the Security of USB Is Fundamentally Broken https://www.wired.co[...] 2014-07-31
[16] 웹사이트 BadUSB - On Accessories that Turn Evil https://www.blackhat[...] 2014-08-06
[17] 웹사이트 BadUSB – On accessories that turn evil https://srlabs.de/wp[...] 2014-08-07
[18] 웹사이트 BadUSB Malware Released — Infect millions of USB Drives http://hackingpost.c[...] 2014-10-07
[19] 간행물 The Unpatchable Malware That Infects USBs Is Now on the Loose https://www.wired.co[...] 2014-10-07
[20] 웹사이트 ファームウェアとは - IT用語辞典 https://e-words.jp/w[...] 2024-02-20
[21] 웹사이트 ファームウェア(ふぁーむうぇあ)とは? 意味や使い方 https://kotobank.jp/[...] 2024-02-20
[22] 문서 예: [[최종 사용자]]에 의해 [[데이터]]가 쓰거나 지워짐
[23] 저널 Fourth-Generation Software 1967-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com