• 제목/요약/키워드: 링킹시스템

검색결과 22건 처리시간 0.021초

gcc 기반 eCos 운영체제 및 PROFINET 통신 스택의 IAR 포팅 방법 (Porting gcc Based eCos OS and PROFINET Communication Stack to IAR)

  • 김진호
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제12권4호
    • /
    • pp.127-134
    • /
    • 2023
  • 본 논문에서는 gcc 기반으로 개발된 eCos 운영체제 및 PROFINET 통신 스택을 IAR 컴파일러로 포팅하는 방법에 대해 설명한다. eCos 운영체제의 경우 PROFINET 구동을 위한 멀티 스레드, TCP/IP, 디바이스 드라이버 등의 기반 기능을 제공하고 있어, PROFINET 어플리케이션 개발시 변경할 필요가 없다. 따라서, 본 연구에서는 eCos는 gcc로 빌드된 라이브러리를 활용하고, 개발시 변경이 필요한 PROFINET 통신 스택은 IAR 로 포팅하여 함께 링킹하는 방안을 제안한다. IAR 링커와 gcc 링커의 차이로 인해 일부 섹션의 주소를 정의하는 심볼과 생성자의 주소가 정상적으로 생성되지 못하는 문제가 있어, MAP 파일을 읽어 해당 심볼 및 주소를 저장하는 외부 툴을 개발하였으며, 이 툴과 연동하여 동작할 수 있도록 부트로더의 소스 코드를 수정하였다. 제안하는 방법을 검증하기 위해 실제 지멘스 사의 PLC와 연결하여 PROFINET IRT 통신으로 실제 I/O 가 정상 동작하는지 검증하였으며, IAR 컴파일러가 컴파일 시간 및 생성된 바이너리 크기 모두 더 좋은 성능을 가지고 있음을 확인하였다. 본 연구에서 제안하는 방법은 eCos 및 PROFINET 통신 스택뿐 아니라 다양한 오픈 소스를 상용 컴파일러로 포팅하는데 도움을 줄 것으로 기대한다.

CFI(Control Flow Integrity) 적용을 통한 GOT(Global Offset Table) 변조 공격 방지 방안 연구 (CFI Approach to Defend against GOT Overwrite Attacks)

  • 정승훈;황재준;권혁진;신동규
    • 인터넷정보학회논문지
    • /
    • 제21권1호
    • /
    • pp.179-190
    • /
    • 2020
  • 유닉스 계열 시스템 환경에서 GOT 변조(GOT overwrite) 공격은 소프트웨어 권한 탈취를 위한 전통적인 제어흐름 탈취 기법 중 하나이다. 그 동안 GOT 변조를 방어하기 위한 몇 가지 기법들이 제안되었는데, 그 중 프로그램 로딩 단계에서 GOT 영역을 읽기전용 속성으로 메모리 배치하여 실행 시간에 GOT 변조를 원천적으로 차단하는 Full Relro(Relocation Read only) 기법이 가장 효과적인 방어기법으로 알려져 왔다. 하지만, Full Relro 기법은 로딩 시간의 지연을 가져와 시작 성능에 민감한 프로그램의 적용에는 제약이 있고, 라이브러리에 적용시 의존 라이브러리에 의한 연쇄적인 로딩 지연 문제 등으로 라이브러리에는 현재 적용되지 않고 있다. 또한, LLVM을 포함한 다수의 컴파일러들은 Full Relro 기법을 기본 적용하지 않아 실행환경의 프로그램은 GOT 공격에 여전히 취약하다. 이 논문에서는 현재 코드 재사용 공격 방어를 위해 가장 적합한 기법으로 인식되고 있는 CFI(Control Flow Integrity) 기법을 사용한 GOT 보호 장치를 제안한다. LLVM을 기반으로 본 기법을 구현하고 binutils-gdb 프로그램 그룹에 적용해 보안성, 성능, 호환성 등을 평가하였다. 본 CFI 기반 GOT 보호 장치는 우회하기 어렵고, 빠르며 기존 라이브러리 프로그램과도 호환되어 적용가능성이 높다.