핵심 정리
2363-36원문
The growing complexity of computer software has direct implications for our global safety and security, particularly as the physical objects upon which we depend ― things like cars, airplanes, bridges, tunnels, and implantable medical devices ― transform themselves into computer code. Physical things are increasingly becoming information technologies. Cars are "computers we ride in," and airplanes are nothing more than "flying Solaris boxes attached to bucketfuls of industrial control systems." As all this code grows in size and complexity, so too do the number of errors and software bugs. According to a study by Carnegie Mellon University, commercial software typically has twenty to thirty bugs for every thousand lines of code ― 50 million lines of code means 1 million to 1.5 million potential errors to be exploited. This is the basis for all malware attacks that take advantage of these computer bugs to get the code to do something it was not originally intended to do. As computer code grows more elaborate, software bugs flourish and security suffers, with increasing consequences for society at large.::컴퓨터 소프트웨어 복잡성의 증가는 전 세계의 안전과 보안에 직접적인 영향을 주는 데, 우리가 의존하는 물리적 대상, 즉 자동차, 비행기, 교량, 터널, 이식형 의료 기기와 같은 것들이 컴퓨터 코드로 변해감에 따라 특히 그렇다. 물리적 사물은 점점 더 정보 기술이 되어가고 있다. 자동차는 '우리가 타는 컴퓨터'이고, 비행기는 '수많은 산업 제어 시스템에 부착된 비행 솔라리스 박스'에 불과하다. 이 모든 코드가 크기와 복잡성이 증가함에 따라, 오류와 소프트웨어 버그 수 또한 증가한다. Carnegie Mellon 대학교의 연구에 따르면, 상용 소프트웨어에는 보통 코드 1,000줄당 20~30개의 버그가 있어서, 5천만 줄의 코드는 1백만~150만 개의 잠재적 오류가 악의적으로 이용될 수 있다는 것을 의미한다. 이것이 코드가 원래 하도록 의도되지 않았던 것을 하도록 이 컴퓨터 버그를 이용하는 모든 악성 소프트웨어 공격의 근간이다. 컴퓨터 코드가 더 정교해짐에 따라, 소프트웨어 버그는 창궐하고 보안은 악화되어, 사회 전반에 미치는 영향이 커진다.