Jump to content

Firmware

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning
A television remote control is an example of a product that contains firmware.

컴퓨팅(computing)에서, 펌웨어(firmware)는 장치의 특정 하드웨어에 대해 낮은-수준의 제어를 제공하는 컴퓨터 소프트웨어의 특정 클래스입니다. 개인용 컴퓨터의 BIOS와 같은 펌웨어는 장치의 기본 기능을 포함할 수 있고, 운영 시스템과 같은 높은-수준 소프트웨어에 하드웨어 추상화 서비스를 제공할 수 있습니다. 덜 복잡한 장치에 대해, 펌웨어가 장치의 전체 운영 시스템으로 작동하여, 모든 제어, 모니터링, 및 데이터 조작 기능을 수행할 수 있습니다. 펌웨어를 포함하는 장치의 전형적인 예제는 임베디드 시스템 (임베디드 소프트웨어를 실행), 가정과 개인용 기기, 컴퓨터, 및 컴퓨터 주변기기입니다.

펌웨어는 ROM, EPROM, EEPROM, 및 플래시 메모리와 같은 비-휘발성 메모리 장치에 저장됩니다. 펌웨어를 업데이트하는 것은 ROM 집적 회로를 물리적으로 교체하거나, EPROM 또는 플래시 메모리를 특별한 절차를 통해 다시 프로그래밍되는 것을 요구합니다.[1] 일부 펌웨어 메모리 장치는 영구적으로 설치되고 제조 후 변경될 수 없습니다. 펌웨어를 업데이트하는 일반적인 이유는 버그를 수정하거나 장치에 기능을 추가하는 것을 포함합니다.

History and etymology

Ascher Opler는 1967년 Datamation 기사에서 "하드웨어"와 "소프트웨어" 사이의 중간 용어로 firmware라는 용어를 만들었습니다.[2] 이 기사에서 Opler는 사용자의 관점에서 볼 때 기존 프로그램과 다른 실용적이고 심리적인 목적을 가진 새로운 종류의 컴퓨터 프로그램을 언급했습니다.

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

원래, 그것은 쓰기 가능한 제어 저장소(control store) (작은 특수 고속 메모리)의 내용을 의미했으며, 컴퓨터의 명령 집합(instruction set)을 정의하고 구현한 마이크로코드(microcode)를 포함하고 있었고, 중앙 처리 장치(central processing unit, CPU)가 실행할 수 있는 명령을 특수화하거나 수정하기 위해 다시 로드될 수 있었습니다. 원래 사용될 때, 펌웨어는 하드웨어 (CPU 자체)와 소프트웨어 (CPU에서 실행되는 일반 명령)와 대조됩니다. 그것은 CPU 기계 명령어로 구성되지 않지만, 기계 명령어 구현과 관련된 하위 수준 마이크로 코드로 구성되었습니다. 그것은 하드웨어와 소프트웨어 사이의 경계에 존재했습니다; 따라서 그 이름 펌웨어(firmware)입니다. 시간이 지남에 따라 널리, 사용되는 펌웨어는 PC의 BIOS, 스마트폰의 부팅 펌웨어(boot firmware), 컴퓨터 주변 장치(computer peripherals), 또는 전자 레인지(microwave ovens), 리모컨(remote controls)과 같은 간단한 소비자 전자 장치(consumer electronic devices)의 제어 시스템을 포함하여 하드웨어에 밀접하게 연결된 모든 컴퓨터 프로그램을 나타내는 펌웨어로 확장되었습니다.

Applications

Computers

ROM BIOS firmware on a Baby AT motherboard

어떤 면에서, 다양한 펌웨어 구성 요소는 작동하는 컴퓨터에서 운영 시스템(operating system)만큼 중요합니다. 어쨌든, 대부분의 최신 운영 시스템과 달리, 펌웨어에는 장치 배송 후 감지된 기능 문제를 수정하기 위해 자체 업데이트하는 잘 진화된 자동 메커니즘이 거의 없습니다.

BIOS는 작은 유틸리티 프로그램을 통해 사용자에 의해 수동으로 업데이트될 수 있습니다. 대조적으로, 대용량 저장 장치 (예를 들어, 하드 디스크 드라이브, 광 디스크 드라이브, 솔리드 스테이트 드라이브와 같은 플래시 메모리 저장 장치)의 펌웨어는 펌웨어에 (ROM, EEPROM이 아닌) 플래시 메모리 저장 장치가 사용되는 경우에도 업데이트 빈도가 낮습니다.

대부분의 컴퓨터 주변 장치는 그 자체로 특수 목적의 컴퓨터입니다. 프린터, 스캐너, 웹캠, 및 USB 플래시 드라이브(USB flash drives)와 같은 장치에는 내부에 펌웨어가 저장되어 있습니다; 일부 장치는 펌웨어의 현장 업그레이드를 허용할 수도 있습니다.

컴퓨터 펌웨어의 다른 예제는 다음을 포함합니다:

Home and personal-use products

2010년 당시, 대부분의 휴대용 음악 연주기(portable music players)는 펌웨어 업그레이드를 지원했습니다. 일부 회사는 펌웨어 업데이트를 사용하여 새로운 재생 가능한 파일 형식 (코덱)을 추가했습니다. 펌웨어 업데이트로 변경될 수 있는 다른 기능에는 GUI 또는 심지어 배터리 수명을 포함합니다. 대부분의 휴대폰에는 거의 같은 이유로 무선 펌웨어 업그레이드 기능을 통한 펌웨어가 있습니다; 일부는 수신 또는 음질을 향상시키기 위해 업그레이드될 수도 있습니다.

Automobiles

1996년 이후, 대부분의 자동차는 온보드 컴퓨터와 다양한 센서를 사용하여 기계적 문제를 감지했습니다. 2010년 다시, 최신 차량은 컴퓨터-제어 잠김-방지 제동 시스템 (ABS)과 변속기 제어 장치 (TCU)도 사용합니다. 운전자는 역시 실시간 연비와 타이어 공기압 판독값과 같은 방식으로 운전하는 동안 대시 내 정보를 얻을 수 있습니다. 지역 딜러는 대부분의 차량 펌웨어를 업데이트할 수 있습니다.

Other examples

다른 펌웨어 응용은 다음을 포함합니다:

Flashing

플래싱[4] 전자 장치에 있는 EEPROM 또는 플래시 메모리 모듈에 포함된 기존 펌웨어 또는 데이터를 새 데이터로 덮어쓰는 것을 포함합니다.[4] 이것은 장치를 업그레이드하거나[5] 한 이동 전화 서비스 공급자에서 다른 공급자로 변경하거나 새 운영 시스템을 설치하는 것과 같이 장치 기능과 관련된 서비스 공급자를 변경하기 위해 수행될 수 있습니다. 펌웨어가 업그레이드될 수 있으면, 공급자의 프로그램을 통해 수행되는 경우가 많고, 프로세스가 실패하거나 새 버전의 성능이 더 나빠지면 이전 펌웨어로 되돌릴 수 있도록 업그레이드하기 전에 종종 이전 펌웨어를 저장할 수 있습니다. Flashrom과 같은 공급업체 플래싱 도구에 대한 무료 소프트웨어 대체품이 개발되어 왔습니다.

Firmware hacking

때때로, 제3자는 새로운 기능을 제공하거나 숨겨진 기능을 잠금 해제하기 위해 비공식 새 버전 또는 수정된 ("애프터마켓") 펌웨어 버전을 개발합니다: 이것은 커스텀 펌웨어라고 참조됩니다. 휴대용 음악 연주기의 펌웨어 대체품인 Rockbox가 한 예입니다. 다양한 장치를 위한 많은 홈브류 프로젝트가 있으며, 종종 이전에 제한된 장치 (예를 들어 iPods에서 Doom 실행)에서 범용 컴퓨팅 기능을 잠금 해제합니다.

펌웨어 해킹은 보통 많은 장치에서 자체적으로 설치하거나 실행하는 펌웨어 업데이트 기능을 이용합니다. 어쨌든, 제조업체가 라이선스없는 코드가 실행되는 것을 막기 위해 하드웨어를 잠그려고 시도했기 때문에 일부는 실행하기 위해 익스플로잇(exploits)에 의존해야 합니다.

대부분의 펌웨어 해킹은 자유 소프트웨어입니다.

HDD firmware hacks

모스크바에 기반을 둔 Kaspersky Lab은 "Equation Group"이라고 하는 개발자 그룹이 다양한 드라이브 모델에 대한 하드 디스크 드라이브 펌웨어 수정 사항을 개발했다는 ​​사실을 발견했으며, 드라이브를 포맷하거나 지워려고 해도 지워지지 않는 위치의 드라이브에 데이터를 저장할 수 있는 트로이 목마가 포함되어 있습니다.[6] Kaspersky Lab 보고서는 이 그룹이 미국 National Security Agency (NSA)의 일부라고 명시적으로 주장하지 않았지만, 다양한 Equation Group 소프트웨어 코드에서 얻은 증거는 이들이 NSA의 일부임을 시사합니다.[7][8]

Kaspersky Lab의 연구원들은 Equation Group이 수행한 작업을 지금까지 밝혀진 것 중 가장 진보된 해킹 작업으로 분류했으며, 최소 42개국에서 Equation Group으로 인한 약 500건의 감염을 문서화했습니다.

Security risks

우분투 리눅스 배포판을 유지 관리하는 Canonical사의 설립자인 Mark Shuttleworth독점 펌웨어를 보안 위험으로 설명하면서, "장치의 펌웨어는 NSA의 가장 친한 친구"이고 펌웨어를 "엄청난 규모의 트로이 목마"라고 불렀습니다. 그는 낮은 품질, 페쇠 소스 펌웨어가 시스템 보안에 대한 주요 위협이라고 주장했습니다:[9] "당신의 가장 큰 실수는 NSA가 이 신뢰의 위치를 ​​남용하는 유일한 기관이라고 가정하는 것입니다 – 사실, 다음과 같이 가정하는 것이 합리적입니다. 모든 펌웨어는 불안의 늪, 제조사의 최고 수준의 무능함, 및 그러한 기관의 매우 광범위한 범위에서 최고 수준의 능력입니다." 이 문제에 대한 잠재적인 해결책으로 그는 "하드웨어 연결과 종속성"을 설명하고 "실행 코드를 포함하지 않아야 함"을 설명하는 선언적 펌웨어를 요구했습니다.[10] 펌웨어는 그 코드가 확인되고 검증될 수 있도록 공개-소스여야 합니다.

맞춤형 펌웨어 해킹은 역시 스마트폰이나 USB 장치와 같은 장치에 맬웨어를 주입하는 데 중점을 두었습니다. 그러한 스마트폰 삽입 중 하나는 해커 컨벤션, MalCon에서 Symbian OS에서 시연되었습니다.[11][12] Black Hat USA 2014 컨퍼런스에서 BadUSB라는 USB 장치 펌웨어 핵킹이 발표되었으며,[13] USB 플래시 드라이브 마이크로컨트롤러가 컴퓨터의 제어, 데이터를 유출하거나 사용자를 스파이하기 위해 다양한 다른 장치 유형을 스푸핑하도록 다시 프로그래밍할 수 있는 방법을 보여줍니다.[14][15] 다른 보안 연구원들은 다른 USB 장치의 동작을 수정하기 위해 사용될 수 있는 해킹 도구의 소스 코드를 동시에 공개하면서,[16] BadUSB 이면의 원칙을 악용하는 방법에 대해 추가로 연구해 왔습니다.[17]

See also

References

  1. ^ "What is firmware?". 23 January 2013.
  2. ^ Opler, Ascher (January 1967). "Fourth-Generation Software". Datamation. 13 (1): 22–24.
  3. ^ "Introduction to Computer Applications and Concepts. Module 3: System Software". Lumen.
  4. ^ a b "Flashing Firmware". Tech-Faq.com. Archived from the original on September 27, 2011. Retrieved July 8, 2011.
  5. ^ "HTC Developer Center". HTC. Archived from the original on April 26, 2011. Retrieved July 8, 2011.
  6. ^ "Equation Group: The Crown Creator of Cyber-Espionage". Kaspersky Lab. February 16, 2015. Archived from the original on December 2, 2015.
  7. ^ Dan Goodin (February 2015). "How "omnipotent" hackers tied to NSA hid for 14 years—and were found at last". Ars Technica. Archived from the original on 2016-04-24.
  8. ^ "Breaking: Kaspersky Exposes NSA's Worldwide, Backdoor Hacking of Virtually All Hard-Drive Firmware". Daily Kos. February 17, 2015. Archived from the original on February 25, 2015.
  9. ^ "Shuttleworth Calls for Declarative Firmware". Linux Magazine. No. 162. May 2014. p. 9.
  10. ^ Shuttleworth, Mark (March 17, 2014). "ACPI, firmware and your security". Archived from the original on March 15, 2015.
  11. ^ "MalCon 2010 Technical Briefings". Malcon.org. Archived from the original on 2011-07-04.
  12. ^ "Hacker plants back door in Symbian firmware". H-online.com. 2010-12-08. Archived from the original on 21 May 2013. Retrieved 2013-06-14.
  13. ^ "Why the Security of USB Is Fundamentally Broken". Wired.com. 2014-07-31. Archived from the original on 2014-08-03. Retrieved 2014-08-04.
  14. ^ "BadUSB - On Accessories that Turn Evil". BlackHat.com. Archived from the original on 2014-08-08. Retrieved 2014-08-06.
  15. ^ Karsten Nohl; Sascha Krißler; Jakob Lell (2014-08-07). "BadUSB – On accessories that turn evil" (PDF). srlabs.de. Archived (PDF) from the original on 2016-10-19. Retrieved 2014-08-23.
  16. ^ Greenberg, Andy. "The Unpatchable Malware That Infects USBs Is Now on the Loose". WIRED. Archived from the original on 7 October 2014. Retrieved 7 October 2014.
  17. ^ "BadUSB Malware Released — Infect millions of USB Drives". The Hacking Post. Archived from the original on 6 October 2014. Retrieved 7 October 2014.{{cite web}}: CS1 maint: unfit URL (link)