20160618

아침 식사
아침 식사 시간에 내가 평소에 재미있게 보고 있는 연구를 하고 있는 분을 만나뵈었음.아주 반갑게 여러 이야기를 나누었음. 모든 트위터 내용을 미국 도서관에서 저장 중이라는 이야기를 해주셨음. Bloom Filter에 대해서 많이 물어보셨음. 그 외의 연구자들도 만났으며, 재밌는 이야기를 많이 들었음. 요즘 미국에서 하드웨어 트로이 목마에 관심이 있는 것은 칩이 외국에서 생산되기 때문. 논문에서 많이 읽었지만, 미국의 입장에서 생각해보지는 못함. 너무 당연하게 그대로 받아들였던 것 같음. 하드웨어가 악의적으로 변형되었는지 확인하기 위해, 칩에서 발생하는 열을 사용해 동일한 칩인지 signature를 확인하는 연구도 있다고 함. 최근에 SP’16에 발표된 A2에 대한 이야기도 했음. gcc는 소스 코드를 함부로 수정할 수 없다고 함 (너무 어려워서). LLVM은 수정하기 위해 만들어진 컴파일러이므로, LLVM을 잘 다룰 수 있으면 좋다.


1. Can Data Only Exploits be Detected at Runtime Using Hardware Events? (paper, slides)
악성코드는 계속해서 증가하고 있으며, 이를 방어하기 위한 기법들도 꾸준히 개선되었다. 악성 코드의 실행을 방어하는 기법들이 있지만, 이들이 뚫리는 경우가 있고, 이러한 경우에는 detection 기법을 사용해야 한다. 악성 코드에는 control exploit과 data exploit이 있다. Control exploit은 임의의 코드를 실행하도록 만들어 공격한다. 대상 프로그램의 제어 흐름을 조작하여 공격을 수행한다. Data exploit은 프로그램의 입력을 조작함으로써 중요 정보를 유출하도록 하는 공격이다. SQL injection이 이에 해당하는 대표적인 기법이다. 이 연구에서는 하드웨어 performance counter를 사용해 data exploits를 탐지하는 기법을 연구하고, 그 효과성을 보고자 한다. Hardware performance counters(HPCs)는 현대 프로세서에서 사용할 수 있는 특수 목적의 하드워어 레지스터이다. 200개가 넘는 하드웨어 조건을 측정할 수 있다. 빠르게 접근 가능하며, 공격자가 수정하기 어렵다는 특성을 가진다. 그리고 실행 그 자체에 대한 특성을 볼 수 있어서 detection에 유리하다. 관련 연구가 많이 있었음. Signature based detection, rootkit detection using HPCs to monitor syscalls (DAC’13). HPCs for detection of malware(ISCA’13, RAID’14). 이 연구에서는 data exploit의 탐지에 하드웨어 수준의 정보가 얼마나 유용한지 확인하고자 함. 그리고 그 대상을 Heartbleed vulnerability를 대상으로 하여 실험했다. Heartbleed 취약점은 TLS/DTLS 프로토콜 확장에 있는 OpenSSL 취약점이다. 메모리에 있는 중요 정보를 유출하게 하는 취약점. Intel core i7-950을 사용했으며, 리눅스 커널 버전 3.8.0을 사용함. 이 연구에서는 heartbleed를 대상으로 하여 performance counter를 사용한 data exploit 탐지의 효과성을 보았음.
experimental setup hardware events monitored.PNG
[RET, LOAD, STORE, MISS_ICACHE, STLB_HIT, MISS_LLC]가 좋은 성능을 내었음. 그 중에 [RET, LOAD, STLB_HIT, MISS_ICAHE]의 조합이 가장 좋은 성능을 내었음. Data exploit은 하드웨어 이벤트로 탐지하기 어렵다. 수 백개의 performance metric을 측정할 수 있으나, i7에는 네 개의 register밖에 없음. 동시에 네 개밖에 확인할 수 없음.

2.Using Scan Side Channel for Detecting IP Theft (paper, slides)
현대의 SoC 개발 환경은 세계화되고 분산되어 있음. 이러한 환경에서는 신뢰가 중요하다. IP theft를 방지하기 위해 watermark를 사용할 수 있음. 모듈 기능에 변경 없이 우리 회사에서 설계한 것인지 확인할 수 있는 방법이다. ASIC을 reverse engineering하는 것은 두 단계로 이루어진다. Phase 1에서는 invasive한 reverse engineering을 통해 물리적인 내용에서 회로를 추출한다. Phase 2에서는 algorithmic한 reverse engineering을 통해 회로에서 specification을 추출한다. Phase 1에서는 delayering, SEM, nanoscale imaging, cross-section 등을 사용할 수 있다. Phase 2에서는 FSM extraction, model checking, SAT solvers 등을 사용할 수 있다. Scan side channel attack을 사용하면 phase 1을 non-invasive하게 수행할 수 있다. Sequential circuit에 scan을 설치하면 SoC를 stateless한 circuit으로 바꿀 수 있다. 하지만 문제가 너무 복잡하다는 것이 문제. K-Junta algorithm. Shared nearest neighbors clustering. BitCoin SHA-256 accelerator를 대상으로 실험. opencores.org의 디자인을 사용함. Software simulator를 사용함. Scan을 사용하면 non-invasive하게 reverse engineering해서 watermark를 확인할 수 있다. 누군가 내 IP를 훔쳐가면 scan 기법을 사용해서 내 것임을 확인할 수 있다.

3. Architectural Supports to Protect OS Kernels from Code-Injection Attacks (paper, slides)
컴퓨터 시스템에서 운영체제는 중요하고, 여전히 취약점이 발견되고 있음. 악성 코드는 커널 메모리를 읽고 쓸 수 있다. 악성 코드는 프로세스를 숨기고, 커널 권한을 갖고 CPU를 사용한다. 강력한 공격 방식 중 하나에 code-injection이 있음. System call table, 시스템 콜 모두를 수정함으로써 시스템 콜을 악의적으로 변경할 수 있음. 이를 방어하고자 privileged execute never (PXN)가 있음. 페이지 테이블에 실행 가능 여부를 플래그로 주어 실행을 결정한다. 이 연구에서는 Kargos를 제안. 적은 성능 오버헤드로 code injection 공격을 수행한다. 공격자가 커널 영역의 임의의 메모리를 읽거나 쓸 수 있음을 가정한다. 몇 가지의 규칙을 정하고, 이 규칙에서 벗어나지 않도록 한다. 총 네 개의 규칙을 정함. 모두 이해하지는 못했으나, 몇 가지를 기록함. Physical code region은 수정되면 안 된다. 프로그램 카운터는 가상 주소 영역에 들어가야 함. 모든 가상 주소는 물리적 주소에 매핑되어야 한다. 이를 통해 공격자의 코드가 실행되지 못하게 할 수 있다. 발표한 것에서는 커널 코드가 수정 불가능하다고 가정함. 하지만 실제로 커널 모듈은 수정 가능함. 하지만 커널 모듈을 올리기 위해서는 해시값이 필요하고, 적용한 것을 해시값까지 확장하면 해결 가능할 것.

4. Implicit Sensor-based Authentication of Smartphone Users with Smartwatch (paper, slides)
스마트폰에 중요한 정보가 많이 들어있음. 개인 정보 및 결제 관련 정보도 갖고 있음. 현재 스마트폰은 패스워드 등을 사용해 사용자를 인증하고 있음. 하지만 인증 이후에 공격자가 가져간다면 어떻게 할 것인가? 암묵적이고 연속적인 인증이 필요하다는 것이 이 연구의 motivation이다. 스마트폰에는 다양한 센서들이 있음. 이 연구에서는 센서들을 사용해 연속적이고 암묵적인 인증을 수행하고자 함. 연구의 motivation이 상당히 흥미로운데, 평소에 모두가 알고 있지만 당연하게 여기고 있던 것이기 때문이다.

implicit sensor-based authentication of smartphone users with smartwatch architecture.PNG

센서들을 사용해 feature를 추출하고, 학습해 인증하고자 함. 센서는 accelerometer, gyroscope를 사용한다. 이들은 permission 없이 접근할 수 있고, 일반적이며, 민감한 개인정보가 아니기 때문이다. 이를 사용해 사용자의 행위를 쉽게 구분할 수 있다. GPS라면 민감한 개인정보이기 때문에 위험할 수 있다. Feature를 시간 도메인과 주기 도메인 모두에서 추출한다. 평균, 분산, 최대, 최소값을 추출한다. Kernel ridge regression 모델을 사용한다. Nexus 5를 대상으로 실험했으며, 20명의 사용자를 대상으로 실험했다.

5. SIMD Instruction Set Extensions for Keccak with Applications to SHA-3, Keyak and Ketje (paper, slides)
Secure system은 많은 cryptogaphic applications에 의존하고 있음. Keccak을 구현함. 잘 이해하지 못했음. 익숙한 내용이 아님. 관련 링크를 첨부함. http://keccak.noekeon.org. Cryptographic algorithm을 가속했다는 내용인 것 같음. NEON 프로세서에 구현했으며, GEM5에서 실험. 명령어를 추가함. 1.4~2.6배의 성능 향상.

6. Intel Software Guard Extensions (Intel SGX) Support for Dynamic Memory Management Inside an Enclave (paper, slides)
어플리케이션의 TCB는 어플리케이션 + 운영체제 + VMM이었음. Enclave를 사용해 운영체제 또는 VMM이 공격당해도 어플리케이션이 안전하도록 함. Enclave는 프로세스에서 사용할 수 있는 신뢰할 수 있는 실행 환경. 코드와 데이터를 가지며, Confidentiality와 integrity를 제공한다. 멀티 쓰레드를 지원하며, 어플리케이션 메모리에 접근 권한이 있음. SGX2(enclave dynamic memory management)를 소개하고자 함. SGX1 에서는 프로그램 개발자가 필요한 enclave를 프로세스 실행 이전에(초기화 시점에) 정적으로 할당해야 했음. 새롭게 제안하는 SGX2에서는 필요한 enclave를 동적으로 할당할 수 있도록 하고자 함. enclave malloc support를 제공하고자 하는 것. Heap and thread-pool management, on-demand stack growth, dynamic module / library loading, concurrency management in applications succh as garbage collectors, write-protection of EPC pages after initial relocation, on-demandceation of code pages 등이 가능하다. 이전 SGX 모델에서는 SGX 초기화 이후에는 enclave 내부의 데이터를 수정할 수 없었음. 이제는 이를 지원하게 됨. EDMM을 사용하면 application은 SGX의 복잡한 메모리 동적 할당을 고려하지 않고 사용하게 될 것. memory management는 모두 SGX에서 이루어지게 된다. 소프트웨어에서는 malloc을 호출하면 SGX2가 저절로 이를 enclave에 할당해준다. 이 과정에서 EAUG, EACCEPT명령이 수행됨. EAUG는 enclave에 메모리를 추가로 할당해달라는 요청의 명령이며, EACCEPT는 이 요청이 valid함을 확인하는 명령어이다. SGX2는 다른 enclave 사이에 page share를 허용하지 않는다.


점심 식사
Xeon + FPGA에 대한 이야기를 광원이 형에게 전해 들음. Xeon+FPGA 프로세서를 인텔에서 프로토타입으로 연구하고 있다고 함. 보드 형식으로 Xeon과 FPGA를 통합해서 사용하고 있다고 함. 원래 2016년 전반기에 출시되리라 예상했는데, 생각보다 출시에 오랜 시간이 걸릴 것 같다. Xeon + FPGA가 원래 full day로 알려졌으나, 반나절만 발표함. Xeon + FPGA를 어디에 쓸지 인텔에 제안하면 시스템을 제공한다고 함. 이에 대해 제안해볼 수도 있을 것. Xeon + FPGA에 보안 문제가 있을 수 있다고 함. 현재 Xeon + FPGA는 보안에 대한 고려 없이 설계된 프로토타입이다.


7. FAME: Fault-attack Aware Microprocessor Extensions for Hardware Fault Detection and Software Fault Response (paper, slides)
요즘 많은 곳에서 임베디드 시스템이 사용되고 있음 (카드, 휴대폰 등). 임베디드 시스템은 구하기 쉽고, 따라서 공격하기도 쉽다. Fault attack은 임베디드 시스템에 가해지는 공격 방식 중 하나이다. Fault injection을 통해 프로세서의 중요한 정보를 흘리도록 만드는 것이다. Faulty outputs를 분석하여 중요 정보를 취득하고자 함.
fault attacks on embedded software.PNG
이를 사용해 중요한 보안 확인을 건너뛰도록 할 수도 있다. 보안 검증 부분에서 skip을 유발할 수 있다. 예를 들어 중요 데이터가 처리되는 과정이라고 할 때, 중요 데이터가 처리되는 과정 그 자체를 방해해버리면 중요 데이터가 그대로 나올 수 있다.
why are faults a security issue.PNG
Fault handling은 fault detection과 fault response로 나뉠 수 있다. Fault detection은 low latency이어야 하고, hard-to-bypass해야 한다. 따라서 hardware fault detection이 적합하다. Fault response는 application-specific해야 하고, adaptive해야 한다. 따라서 software fault response가 적합하다. 이 두 가지가 융합되도록 해야 한다. HW / SW approach가 필요하다.
overview of FAME.PNG
SW fault response는 HW fault status를 알아야 한다. FAME은 HW와 SW파트로 나뉜다. Fault detection unit이 fault의 발생을 알아차린다. Fault control unit이 alarm을 확인하고 몇 가지 조치를 취한다. Lock down fault response registers(FRRs), aborts memory / register file writeback, annuls instructions in the pipeline, switches processor to safe mode, initiates a non-maskable step. 발생한 trap을 소프트웨어 레벨에서 적합한 trap handler를 호출해 문제를 해결한다. FAME을 Leon3 프로세서에 구현함. Spartan6 FPGA, SAKURA-G board에 이를 구현함. 오실로스코프의 pulse generator를 사용해 fault injection을 수행함.

fault injection and evaluation step.PNG

8. Template Attacks with Partial Profiles and Dirichlet Priors: Application to Timing Attacks (paper, slides)
공격 중에 지금까지 관측하지 못한 데이터를 발견할 수 있음. 이해하기 어려움…. 산으로 가는 중… 인터넷에 찾아보고 대강의 흐름과 동기를 파악함. Side channel attack 과정에서 sampling 과정을 거친다. Sampling 과정을 거치면서 특정 값이 어떤 값인지를 학습한다. 이를 바탕으로 실제 공격을 수행한다. 하지만 문제는 sampling 과정에서 학습한 값과 공격 과정에서 보이는 값이 다를 수 있다는 것. 이를 해결하기 위해 연구한 것. 관측한 값이 무엇인지 결정하는 것이 distinguisher인데, 이 distinguisher의 성공율을 높이고자 하는 것이 연구의 목표이다. 이런 distinguisher의 학습에 empty bin 현상이 발생하면 예측 성능을 떨어뜨림. 예측 성능 떨어뜨리는 것을 방지하기 위해 empty bin 현상이 없는 새로운 distinguisher를 제안한다.

9. A Formal Security Analysis of Even-Odd Sequential Prefetching in Profiled Cache-Timing Attacks (paper, slides)
듣기가 너무 힘들었다. Cache에 대한 timing attack으로 side channel attack이 가능한데, prefetcher가 들어가면 무엇인가 달라진다… ……..

10. Systematization of Knowledge: A Study of Using Hardware-assisted Isolated Execution Environments for Security (paper, slides)
Hardware-assisted isolated execution environments(HIEEs)에 대한 연구. 격리는 보안성을 달성하기 위한 기법 중의 하나이다. 소프트웨어 수준에서는 가상화를 사용하면 격리를 달성할 수 있음. 하드웨어를 사용한 격리 환경을 만들 수도 있음. Hardware-assisted aisolated execution environments. HIEE에서는 가장 높은 수준의 권한을 하드웨어에 주고, TCB에 하이퍼바이저와 같은 소프트웨어를 포함하지 않는다. 이를 통해 성능 오버헤드를 줄일 수 있으며, attack surface 또한 줄어들게 된다. 이 연구에서는 1) 기존의 HIEE: System Management Mode(SMM), Dynamic Root of Trust for Measurement(DRTM), 2) 최근의 HIEE: Intel Management Engine(ME), AMD Platform Security Processor(PSP), ARM TrustZone, 3) 최신의 HIEE: Intel Software Guard Extensions(SGX)를 다룬다. SMM은 Real / Protected mode와 같이 x86에서 사용 가능한 CPU mode 중에 하나이다. Basic Input/Output System(BIOS)에 의해 초기화되며, SMI를 인가함으로써 SMM 모드에 진입할 수 있다. System management ram(SMRAM)에는 SMM 모드에서만 접근 가능하다. Intel Management Engine(ME)는 인텔 프로세서에 들어가 있는 작은 임베디드 컴퓨터이다. ME processor, ROM, internal SRAM, crypto engine, DMA engine등으로 이루어짐. AMD secure processor는 platform security processor에 의해 호출됨. AMD secure processor는 platform security processor(PSP)로 불린다. AMD CPU 내부에 존재하는 프로세서이다. ARM TrustZone과 파트너십을 맺고 있다. System management unit(SMU)는 northbridge에 있는 임베디드 프로세서이다. Northbridge는 CPU에 통합되었고, 부팅 또는 실행 중에 시스템 관리 및 전력 관리를 담당한다. DRTM은 TCG에서 개발한 것으로, late launch로 불리기도 한다. SRTM과 DRTM을 비교: Static root of trust(SRTM)은 부팅 시점에 동작한다면, dynamic root of trust는 임의의 시점에서 동작 가능하다. Intel과 AMD에서 각각 구현한 것으로는 Intel trusted execution technology (TXT), AMD secure virtual machine (SVM) 등이 있다. Intel SGX 또한 하드웨어 격리 기법 중 하나이다. SGX를 사용하면 프로세스가 메모리에 안전한 영역을 생성할 수 있다. OpenSGX는 QEMU에 기반하여 SGX를 에뮬레이션한다. ARM TrustZone은 안전한 환경을 제공하는 하드웨어 확장이다. Secure world와 normal world의 두 개의 모드를 제공한다. Secure configuration register(SCR)에 있는 NS bit을 사용해 두 개의 world를 구분할 수 있다.
다음 표는 지금까지 발표된 HIEE의 비교
summary of HIEEs.PNG
HIEE를 어떤 경우에 사용할 수 있나? System introspection. System introspection tool을 HIEE에서 실행할 수 있음. SMM-based, TrustZone-based, DRTM-based system introspection 연구가 있었음. Memory forensic에 HIEE를 사용할 수 있음. 원격지에 있는 컴퓨터의 메모리를 확인할 수 있음. SMMDump, TrustDump 등의 연구가 있었음. OS rootkit을 탐지할 수 있음. 악성코드는 anti-debugging, anti-virtualization, anti-emulation 기법을 사용함. HIEE를 사용하면 이러한 기법을 우회할 수 있음. MalT는 SMM을 사용해 anti-debugging 기법을 우회한다. 민감한 워크로드를 HIEE에서 실행할 수도 있음. DRTM을 사용한 기법에는 Flicker, TrustVisor, Bumpy 드이 있음. SGX-based에는 Haven, VC3가 있음. SMM-based 에는 SICE, TrustLogin이 있음. TrustZone-based 에는 TrustICE, TrustOTP가 있음. Rootkit과 keylogger에 사용될 수도 있음. SMM rootkit에는 PS/2, USB keylogger가 있음. ME rootkit에는 ring -3 rootkit이 있음. DRTM, SGX, TrustZone rootkits 는 아직 연구되지 않았으나 충분히 가능함. HIEE를 공격하는 연구도 많이 있었음. ME는 칩에 있지 않고, south bridge에 있다고 함.

11. SAE: Simulation and Analysis Engine for Instrumenting Scale-out Workloads 에 뒤늦게 참석
HASP이 빨리 끝나서 SAE 세션에 들어옴. 뭔가 Pin과 비슷한 내용을 발표하고 있었다. 인터넷에 찾아보니 꽤 흥미로운 내용인 것 같음(https://sites.google.com/site/intelsae/home)

We introduce Wind River® Simics 4.8 Virtual Platform and a new system called Intel® Simulation and Analysis Engine (Intel® SAE) that offers a tooling framework for instruction-level instrumentation of “ring 0” (privileged) behavior on everything, including Operating System code, that executes on the CPU, starting at reset. When plugged-in to a Wind River® Simics Virtual Platform, Intel® SAE is capable of booting native operating systems (e.g. Linux and Windows, as well as Android) and running unmodified binaries; thus it lets users perform instruction level instrumentation on everything that executes on the CPU, including BIOS, kernel, drivers and all processes. Moreover, it is capable of multi-system instrumentation. Intel® SAE tools (called ztools) can be used for cache modeling, instruction usage characterization and for new instruction emulation. Users can also write new tools using Intel® SAE APIs.

SAE는 gem5와 같은 simulator보다 300배 정도 빠르다. 하지만 timing information은 얻지 못할 수 있음. 가상화 환경은 실험할 수 없다고 대답한 것 같음.

Advertisements
Tagged with: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 101,234 hits
%d bloggers like this: