RnDCircle Logo
황성재 연구실
성균관대학교 소프트웨어학과 황성재 교수
소프트웨어 보안
자동화 테스트 생성
차등검증
연구 영역
기본 정보
논문·특허
과제
구성원

황성재 연구실

성균관대학교 소프트웨어학과 황성재 교수

황성재 연구실은 소프트웨어학과 관점에서 소프트웨어 보안과 시스템 보안 문제를 다룹니다. 명세와 동작 의미론을 바탕으로 테스트를 자동 생성하고, 차등검증으로 구현 간 편차를 비교하여 규격 준수의 취약 구간을 규명하는 방법론을 사용합니다. JVM/JNI의 미정의 동작은 DSL 기반 명세 해석과 SMT solver로 재현 가능한 테스트를 만들고 -Xcheck:jni 검증 품질을 평가합니다. Android에서는 activity activation을 operational semantics로 형식화한 뒤 정적 분석과 SAAC 접근제어로 activity injection 공격을 탐지·차단합니다. 또한 디컴파일 코드 가독성을 AST 특징 기반 R2I로 정량화하여 역공학 품질 평가를 지원합니다.

소프트웨어 보안자동화 테스트 생성차등검증JNI/JVM 검증명세 기반 분석
대표 연구 분야
연구 영역 전체보기
명세 기반 자동화 테스트 생성과 차등검증을 통한 소프트웨어 보안 검증 연구 thumbnail
명세 기반 자동화 테스트 생성과 차등검증을 통한 소프트웨어 보안 검증 연구
Specification-based Automated Test Generation and Differential Testing for Software Security Assuran
연구 분야 상세보기
연구 성과 추이
표시된 성과는 수집된 데이터 기준으로 산출되며, 일부 차이가 있을 수 있습니다.

5개년 연도별 논문 게재 수

6총합

5개년 연도별 피인용 수

39총합
주요 논문
5
논문 전체보기
1
Article
|
인용수 5
·
2024
R2I: A Relative Readability Metric for Decompiled Code
Haeun Eom, Dohee Kim, Sori Lim, Hyungjoon Koo, Sungjae Hwang
Proceedings of the ACM on software engineering.
역분해(Decompilation)는 저수준 기계 코드 스니펫을 C와 같은 고수준 프로그래밍 언어로 다시 변환하는 과정이다. 이는 역공학자들이 코드의 맥락적 의미론을 이해하는 데 도움을 주기 위한 기반으로 활용된다. 이러한 점에서 Hex-Rays와 같은 상용 역분해기들은 시간이 지남에 따라 역분해된 코드의 가독성을 향상시키는 데 상당한 성과를 거두었다. 선행 연구에서는 식별자, 변수명, 함수명, 주석을 포함한 소스 코드의 가독성을 평가하기 위한 메트릭을 제안해 왔으나, 주로 i) 소스에서 풍부한 의미론적 정보가 부족하고 ii) 오류가 있는 문법 또는 부적절한 표현이 존재하기 때문에 이러한 메트릭들은 역분해 코드의 가독성을 측정하기에 적합하지 않다. 이에 대응하여, 본 연구는 우리가 아는 한 역분해 코드를 상대적 맥락에서 정량적으로 평가하기 위해 특화된 메트릭인 R2I(Relative Readability Index)를 최초로 제안한다. 본질적으로 R2I는 i) 서로 다른 역분해기들로부터 얻은 코드 스니펫을 입력으로 하고 ii) 추상 구문 트리(abstract syntax tree)에서 사전에 정의된 특징들을 추출함으로써 계산될 수 있다. R2I의 견고성을 확보하기 위해, (비)상용 역분해기와 학술 연구가 코드 가독성을 증진하기 위해 수행해 온 향상 노력을 면밀히 조사하였고, 신뢰할 수 있는 지수를 집합적으로 산출하기 위해 31개의 특징을 식별하였다. 또한 본 연구는 개인의 코딩 스타일 및 선호와 같은 주관적 요인을 포착하기 위해 사용자 설문을 수행하였다. 실증 실험 결과, R2I는 역분해 코드의 상대적 품질(예: 난독화, 역분해기 업데이트)을 나타낼 수 있는 다목적 메트릭이며, 설문에서의 인간의 인식과도 잘 일치함을 보여준다.
https://doi.org/10.1145/3643744
Readability
Computer science
Identifier
Source code
Information retrieval
Abstract syntax tree
Program comprehension
Syntax
Natural language processing
Programming language
2
Article
|
·
인용수 3
·
2024
An Empirical Study of JVMs’ Behaviors on Erroneous JNI Interoperations
Sungjae Hwang, Sungho Lee, Sukyoung Ryu
IF 5.6 (2024)
IEEE Transactions on Software Engineering
자바 네이티브 인터페이스(Java Native Interface, JNI)는 자바 애플리케이션이 네이티브 라이브러리에 접근할 수 있게 하지만, 올바른 JNI 프로그램을 개발하는 것은 어렵다. 네이티브 코드를 활용함으로써 JNI는 자바 개발자가 효율적인 애플리케이션을 구현하고 C 및 C++와 같은 다른 프로그래밍 언어로 작성된 코드를 재사용할 수 있도록 한다. 핵심 자바 라이브러리는 그래픽 사용자 인터페이스와 같은 시스템 기능을 제공하기 위해 JNI를 사용하며, 주류 자바 가상 머신(Java Virtual Machine, JVM) 또한 JNI를 지원한다. 그러나 서로 다른 프로그래밍 언어 간의 복잡한 상호작용 의미론 때문에, 올바른 JNI 프로그램을 구현하는 일은 사소하지 않다. JVM은 성능 오버헤드 때문에 기본적으로 JNI 상호작용을 검증하지는 않지만, 두 가지 방법을 제공한다. 첫째, JVM은 JNI 명세에서 정의된 상호작용 실패를 런타임에 보고한다. 둘째, JVM은 JNI 상호작용을 검증하지만 런타임 성능을 저하시킬 수 있는 디버그 옵션을 지원한다. 우리가 아는 한, 잘못된 JNI 상호작용이 부정확한 동작을 유발할 수 있음에도 불구하고, JVM의 이러한 방법들의 품질은 문헌에서 충분히 연구되지 않았다. 본 논문에서는 잘못된 JNI 상호작용에서의 JVM 동작을 경험적으로 연구한다. 체계적인 연구를 위해, 우리는 JNI 명세로부터 잘못된 상호작용을 유발하는 JNI 테스트 프로그램을 생성하는 반자동 도구 JUSTGen을 제안한다. JUSTGen은 도메인 특화 언어(DSL)로 작성된 JNI 명세를 입력으로 받아, SMT 솔버를 사용해 상호작용에서 런타임 오류로 이어질 수 있는 사례를 자동으로 찾아낸다. 이어서, 이러한 잘못된 사례에서의 동작을 유발하는 테스트 프로그램을 생성한다. 생성된 테스트를 사용하여, 우리는 잘못된 JNI 상호작용에서 JVM의 실패 처리 메커니즘과 디버그 옵션의 기능을 경험적으로 평가한다. 실험 결과, JVM이 실패를 처리하지 않거나 명세와 다르게 처리하는 잘못된 사례들이 존재함을 확인했다. 또한 JNI 디버그 옵션이 수천 개의 잘못된 사례를 검증하지 못하며, 이는 메모리 부패(memory corruption) 및 자바 타입 시스템 위반과 같은 치명적인 런타임 오류를 유발할 수 있음을 발견했다. 우리는 JVM이 실패를 올바르게 처리하지 않는 18개의 잘못된 사례를 각 해당 벤더에 보고했으며, 그중 16개 사례는 해결되었다.
https://doi.org/10.1109/tse.2024.3373239
Computer science
Empirical research
Programming language
Statistics
3
Article
|
·
인용수 11
·
2023
EtherDiffer: Differential Testing on RPC Services of Ethereum Nodes
Shinhae Kim, Sungjae Hwang
블록체인은 피어-투-피어 네트워크 위에서 사용자 간의 거래를 기록하는 분산 원장이다. 그중에서도 이더리움(Ethereum)은 가장 널리 사용되는 범용 플랫폼이며, 스마트 컨트랙트의 지원으로 인해 탈중앙화 애플리케이션(decentralized applications, DApps)이라 불리는 새로운 형태의 응용이 등장하였다. 전형적인 DApp은 오프체인 프런트엔드와 온체인 백엔드의 아키텍처를 가지며, 프런트엔드는 예컨대 체인 데이터를 획득하거나 트랜잭션을 수행하는 등 백엔드 네트워크와의 상호작용이 필요하다. 따라서 이더리움 노드는 공식 RPC 사양을 구현하고, 프런트엔드에 대해 일관된 일련의 RPC 메서드를 제공한다. 그러나 해당 사양은 두 가지 점에서 충분하지 않다. (1) 비결정적 이벤트 처리에 대한 명확화가 부족하고, (2) 잘못된 인자에 대한 사양이 결여되어 있다. 이러한 불충분으로 인해 발생하는 어떤 편차도 효과적으로 드러내기 위해, 본 논문은 RPC 서비스 관점에서 네 가지 주요 노드 구현에 대해 자동으로 차등(differential) 테스트를 수행하는 EtherDiffer를 제안한다. EtherDiffer는 먼저 다중 동시 트랜잭션과 전파 지연을 통해 비결정적 체인을 생성한다. 그다음, 속성 기반 생성(property-based generation)과 타입 보존 변이(type-preserving mutation)라는 핵심 기법을 적용하여 의미적으로는 유효하면서도, 동시에 의미적으로는 무효이지만 실행 가능한 테스트 케이스를 모두 생성한다. EtherDiffer는 목표 노드에서 테스트 케이스를 실행하고 오류 처리나 반환 값에서의 어떠한 편차도 보고한다. 평가는 테스트 케이스 생성 기법의 유효성을 입증하였으며, 각각의 성공 비율은 98.8%와 95.4%로 나타났다. 또한 EtherDiffer는 충돌 및 서비스 거부(denial-of-service) 버그와 같은 11개의 구현 버그를 포함하여 48개의 서로 다른 편차 유형을 탐지하였다. 우리는 탐지된 44개 유형을 사양 및 노드 개발자에게 보고하였고, 이에 대한 승인 및 버그 패치를 받았다. 마지막으로 EtherDiffer는 모든 기술적 측면에서 공식 노드 테스트 도구보다 유의미하게 우수하였다. 우리는 본 연구 결과가 노드 간 불일치를 감소시켜 보다 안정적인 DApp 생태계에 기여할 수 있다고 믿는다.
https://doi.org/10.1145/3611643.3616251
Computer science
Executable
Node (physics)
Key (lock)
Exception handling
Set (abstract data type)
Distributed computing
Operating system
Computer network
Programming language
최신 정부 과제
18
과제 전체보기
1
2024년 6월-2029년 12월
|1,130,000,000
융합보안대학원 (숭실대학교)
○ 산업밀착형 자율주행차 융합보안 글로벌 인재 양성- 매년 20명 이상 Full-time 전문인력 배출 (재직자, 외국인유학생 제외)- 취업률 90%이상 달성- 논문 135편(SCI 18편 포함) 이상 발표
정보보호
자율주행
인공지능
역공학
시스템소프트웨어
2
2024년 6월-2028년 12월
|125,000,000
데이터 기반 보안 연구교육과정 개발 및 운영
최종 목표: Data-driven Security 산업 친화형 교육 과정 구축 > (핵심 성과) 참여 기업 - 7개(8명) > (핵심 성과) 인재 양성 - 33명(전원 인턴쉽 수료) > (핵심 성과) 문제 해결 역량 향상도 - 20% 이상 > (핵심 성과) 문제해결 교과목 - 5개 > (자체 성과) 학생 만족도 - 92점 > (자체 성과) 학생 국제 논문 ...
정보보안
데이터 사이언스
융합 보안
데이터 보안
기계 학습
3
2024년 6월-2028년 12월
|228,000,000
데이터 기반 보안 연구교육과정 개발 및 운영
최종 목표: Data-driven Security 산업 친화형 교육 과정 구축 > (핵심 성과) 참여 기업 - 7개(8명) > (핵심 성과) 인재 양성 - 33명(전원 인턴쉽 수료) > (핵심 성과) 문제 해결 역량 향상도 - 20% 이상 > (핵심 성과) 문제해결 교과목 - 5개 > (자체 성과) 학생 만족도 - 92점 > (자체 성과) 학생 국제 논문 ...
정보보안
데이터 사이언스
융합 보안
데이터 보안
기계 학습
최신 특허
특허 전체보기
상태출원연도과제명출원번호상세정보
공개2024디컴파일된 소스 코드의 가독성을 평가하는 방법과 연산 장치, 그리고 이를 기록한 기록 매체1020240105125
전체 특허

디컴파일된 소스 코드의 가독성을 평가하는 방법과 연산 장치, 그리고 이를 기록한 기록 매체

상태
공개
출원연도
2024
출원번호
1020240105125