게시 및 게시 날짜 : 2008/04/11

라이브 바카라을 보장하는 실용적인 C 언어 컴파일러를 개발했습니다

-기존 C 프로그램에 메모리 작동 라이브 바카라성을 제공합니다

포인트

  • 기존 C 언어 프로그램을 다시 작성하지 않고 라이브 바카라을 보장하는 실제 처리 시스템을 개발했습니다
  • 일본 산업 표준 (JIS)과의 메모리 라이브 바카라 및 완전한 호환성
  • 인터넷에서 오픈 소스 소프트웨어로 배포를 시작했습니다

요약

Oiwa Hiroyuki는 고급 산업 과학 기술 연구소 (Yoshikawa Hiroyuki 회장) (이하 "AIST") 정보 보안 연구 센터 [Imai Hideki], 소프트웨어 보안 연구팀 [연구 팀장 시바야마 Etsuya]의 연구 연구원 인 Oiwa Hiroyuki는 일본 산업 표준 (JIS) 및 ANSI C 표준과 호환 될 수 있습니다메모리 라이브 바카라c 보안 언어컴파일러"Fail -Safe C -Release1 "가 개발되었습니다 인터넷 등에 사용되는 서버 소프트웨어보안 취약성를 방지하는 데 사용할 수 있습니다 이번에는 AIST 정보 보안 연구 센터가Fail -Safe C- 릴리스1 "웹 사이트에서 대중에게 (https : //wwwrcisaistgojp/project/failsafec-jahtml)

이 컴파일러는 그대로 C 언어로 작성된 기존 프로그램을 처리하고 프로그램에서 메모리 작업의 정확성을 항상 보장 할 수 있습니다 따라서 C 언어로 작성된 프로그램이 일반 컴파일러 대신 에이 컴파일러를 사용하여 처리되는 경우, 프로그램이 컴퓨터 바이러스에 의해 불법 코드를 포함하는 것과 비슷한 경우에도 실행이 일반적인 컴파일러가 처리 한 프로그램과 같이 불법 코드에 의해 실행되거나 인수되는 것을 방지하지 못하며 프로그램을 라이브 바카라하게 중지하여 전체 시스템 라이브 바카라을 크게 향상시킬 수 있습니다

"Fail -Safe C- 릴리스1 "isLinux운영 체제기본적으로 기본적으로 일본 산업 표준 (JIS) 또는 미국 표준 협회의 ANSI 표준을 준수하는 모든 C 언어 프로그램을 운영 할 수 있습니다 지금까지는 이들 중 어느 것도 완전한 메모리 라이브 바카라과 ANSI 표준을 완전히 준수하지 않았으며, 이는이 컴파일러의 실현입니다

시스템 개념 다이어그램 이미지
시스템 개념 다이어그램

개발의 사회적 배경

C 언어는 1972 년 미국의 AT & T Bell Research Institute에서 개발 한 시스템 설명을위한 프로그래밍 언어이며 오늘날에도 여전히 프로그램 개발 언어로 자주 사용됩니다 특히,서버 및 메일 서버와 같은 시스템 기반 소프트웨어 프로그래밍은 압도적 인 사용을 계속 유지합니다 C 설계 당시 컴퓨터 시스템은 느리고 저용량이 적었고 C는 이러한 시스템의 가볍고 유연한 언어로 설계되었습니다 특히 기계 언어를 직접 사용하지 않는 한낮은 레벨메모리 작동 설명고급 언어만으로 달성 할 수있는 디자인 C 언어의 주요 특징입니다 그러나 언어 설계 이후 35 년 이상이 지났으며 더 이상 현재 요구 사항을 충족하지는 않는다고 말할 수는 없습니다 특히, 낮은 수준에서 메모리를 작동하는 능력은 보안 취약점을 유발하는 버그 (소프트웨어 오류)를 유발하는 주요 요인이되었습니다

한편, 프로그램이 틀렸어도 크게 오작동을 일으키지 않는 메모리-라이브 바카라 프로그래밍 언어에 대한 연구는 지난 35 년 동안 상당한 진전을 보였습니다 요즘에는 메모리-라이브 바카라하고 일반 프로그래머가 실질적인 사용을 견딜 수있는 몇 가지 언어가 있습니다 그러나 기존 C 언어 프로그램 및 프로그래머 교육 비용의 포팅 비용과 같은 다양한 문제로 인해 이러한 라이브 바카라한 언어는 특히 서버 프로그래밍 분야에서 C 언어를 대체 할 수 없었습니다 영향을받지 않은 C 언어 프로그램은 여전히 많은 수로 배포되고 있기 때문에 C 언어 프로그램을 변경하지 않고 라이브 바카라을 보장 할 수있는 기술 개발이 필요합니다

연구 이력

위의 배경을 바탕으로 AIST는 2005 년에 실제 컴퓨터 시스템의 라이브 바카라을 돕기 위해 기존 기본 기술을 특정 서버 프로그램에 적용하는 연구를 시작했습니다 이 연구는 경제 및 산업의 "신세대 정보 보안 연구 및 개발 프로젝트"에 따라 "신세대 정보 보안 연구 및 개발 프로젝트"주제의 일부로 채택되었습니다 소프트웨어를 사용하여 정보 유출 및 라이브 바카라한 구현 및 검증 방법에 강력한 데이터 관리 방법 "이 실용적으로 구축하기 위해 노력하고 있습니다 또한,이 프로그램의 개발의 일부는 Repidam Co, Ltd와의 공동으로 수행되었습니다 또한 2007 년 10 월부터 연구원을위한 시험 구현을 공개했으며 여러 연구원들로부터 유용한 의견을 받았습니다 이 중 일부는 이번에 출시 될 컴파일러에 반영되었습니다

연구 컨텐츠

10994_11085실패-라이브 바카라C "는 만들어졌습니다이 처리 시스템은 ANSI, ISO 및 JIS (JIS X3010 : 1993) 표준에 의해 정의 된 C 언어의 메모리 작업 사양을 완전히 충족시키면서 메모리 운영의 이론적으로 완전한 라이브 바카라을 보장합니다 따라서 메모리 라이브 바카라은 다른 라이브 바카라한 프로그램에 의해 수동적으로 재생되는 프로그램과 동등한 메모리 라이브 바카라을 보장합니다 C 언어 프로그램 자체를 혼란스럽게하지 않고이 컴파일러를 통과시킬 수 있습니다

그러한 기능을 실현하려면 "FAIL-SAFEC "는 기존의 라이브 바카라한 언어 기술을 통합했으며 C 언어에 고유 한 유연한 메모리 조작 기능을 사용하여 프로그램을 실행하기위한 프레임 워크를 만들었습니다 특히포인터 작동캐스트 작업|가 가상 주소 계산과 같은 다양한 새로운 메커니즘이 고안되고 도입되었습니다 또한, 단순히 C 언어 사양 준수와 완전한 메모리 라이브 바카라을 모두 달성하려고하면 프로그램 실행 속도가 매우 느리고 실질적으로 사용하기에 견딜 수 없습니다 런타임 캐스트 분석과 같은 다양한 최적화를 도입함으로써 가능한 한 실행 속도의 둔화를 억제했습니다

이번에 출시 될 C 언어 컴파일러 시스템 "Fail -Safe C -Release1 "에는 C 언어 표준의 거의 모든 기능이 있으며 500 개가 넘는 라이브 바카라한 표준 기능이 있습니다Linux운영 체제OpenSSL,OpenSSH 및 BAND9와 같은 기존 서버 소프트웨어가 메모리 작업의 라이브 바카라을 보장하면서 작동 할 수 있습니다 "Fail -Safe C -Release1 ""소스 코드오픈 소스 소프트웨어, 프로젝트 페이지로 게시
 https : //wwwrcisaistgojp/project/failsafec-jahtml
Q 공개 라이센스 (QPL)를 기준으로 분포 조건에서 사용 가능합니다 웹 사이트는 위에 나열된 기존 소프트웨어를 "실패-라이브 바카라c"로 처리하는 단계도 공개됩니다

미래 계획

AIST 정보 보안 연구 센터는 앞으로이 연구 및 개발을 계속 수행 할 것입니다실패-라이브 바카라12729_12887



터미널 설명

◆ 메모리 라이브 바카라
컴퓨터 소프트웨어의 가장 기본적인 라이브 바카라 속성 중 하나 프로그램 작동 중 메모리에 저장된 특정 데이터의 변경 사항은 다른 데이터, 프로그램 등에 부당하게 영향을 미치지 않습니다[참조로 돌아 가기]
◆ 컴파일러
컴퓨터 프로그래밍 언어로 작성된 프로그램을 번역하여 인간이 컴퓨터가 실제로 해석하고 실행할 수있는 "기계 언어"로 읽고 쓸 수 있도록 소프트웨어[참조로 돌아 가기]
◆ 보안 취약성
컴퓨터 프로그램을 생성 할 때 오류 (버그)로 인한 오작동과 같은 문제, 특히 정보 유출 또는 컴퓨터 납치와 같은 보안 문제인 이벤트와 같은 문제 중[참조로 돌아 가기]
Linux운영 체제
Linus TorvaldsLinux커널이 포함 된 소프트웨어로 구성된 기본 소프트웨어Linux커널을 포함한 많은 소프트웨어는 특정 조건에서 무료로 제공되며 재분배 할 수 있습니다[참조로 돌아 가기]
◆ 낮고 높은 레벨 (언어 및 설명)
낮은 레벨은 기계 언어 또는 기계 언어로 각 명령어를 설명하는 어셈블리 언어와 같은 기계 운영을 직접 설명하는 프로그래밍 언어, 프로그래밍 기술 등을 나타냅니다 반면, 높은 레벨은 단순히 "특정 조건에서 반복"을 작성하고 비교 및 분기와 같은 필요한 저수준 처리를 자동으로 수행하는 것과 같은보다 논리적 인 설명을 사용하여 작업을 설명하는 프로그래밍 언어 및 프로그래밍 방법을 말합니다[참조로 돌아 가기]
◆ 포인터 계산
C 및 머신 언어 고유의 작업은 특정 데이터가 저장되는 컴퓨터의 메모리의 위치를 나타내는 "주소"(포인터 값이라고 함)의 값을 추가 또는 빼기와 같은 수치 작업을 수행하고 "옆에 저장된 데이터"및 기타 작업을 계산합니다[참조로 돌아 가기]
◆ 캐스트 작업
C 및 기계 언어에 특정한 작업을 통해 특정 유형의 데이터가 저장되는 주소를 가리키는 포인터를 다른 유형의 데이터를 가리키는 포인터로 사용할 수 있습니다 이를 통해 한 유형의 데이터가 다른 유형의 데이터로 취급 될 수 있습니다[참조로 돌아 가기]
◆ 오픈 소스 소프트웨어
시장에서 일반적으로 이용할 수있는 많은 소프트웨어 프로그램과 달리 프로그램의 소스 코드 (컴파일러가 아직 처리하지 않은 프로그래밍 언어로 작성)가 게시되며 재배포 또는 수정을 허용하는 특정 조건 하에서 배포됩니다 일반적으로,오픈 소스 이니셔티브(OSI)는 비영리 단체에서 정의 된 여러 조건을 충족하는 배포 조건에 따라 분포 된 소프트웨어를 나타냅니다[참조로 돌아 가기]
◆ Q 공개 라이센스 (QPL)
오픈 소스 이니셔티브의 오픈 소스 라이센스의 정의를 충족하는 소프트웨어 라이센스 용어 중 하나입니다 원래Trolltech이것은 회사가 소프트웨어 배포를 설정 한 조항이지만 그 외에는목표 CAML와 같은 여러 소프트웨어에서 사용됩니다[참조로 돌아 가기]



문의

연락처 양식