Artificial Intelligence: 인간의 지적 process를 computer system을 통해 재현(simulation)
- 학술적 정의: 기계를 지능적으로 만든다
- 실용적 정의: 기계들이 사람을 benchmarking하여 task를 수행하도록 하는 기술
- AI: rule-based 학습 불필요
- Machine Learning (SVM, RF, KNN)
- data를 가지고 학습/구현
- 자동으로 처리할 수 있는 알고리즘 생성
- Deep Learning (DNN 사용한 ML)
- neural network 구조를 통해 data의 특징을 추출, 학습, 추론, 예측
Big Data: 패턴, 트렌드, 연관성을 드러내기 위해 계산적으로 분석할 수 있는 거대한 데이터셋
- Volume / Variety / Velocity
Big Data는 pipe를 제공하고, AI는 smarts를 제공한다.
Big Data(pipe 역할, tank) ↔ AI(조합해서 각각의 역할을 수행하는 역할)
추론 활용 서비스 (data → model train → model deploy)
AI-based Security
AI 기술을 사용하여 보안 위협을 찾기 (사람 개입 최소화)
(예시) MW 찾기 위해 signature 정리하는 것을 AI에게 맡기자!
Trends
AI 보안을 organization에서 50% 넘게 전반적으로 사용중이지만
불안 요소가 존재하여 전면도입은 하지 않는다.
- 최고 우선순위: End-point security
- AI(공격) ↔ AI(방어)
- End-user의 data 공유 & privacy data 통제
- End-user 인증
- 자동화된 security operation process → 모든 과정을 AI에게 맡기자!
- MW 분석, Solution 찾기, 보안 code 생성, Deploy 자동화
Categories of Tasks in AI
- Perception - good!
- 얼굴 인식, scan 통한 의학적 진단 + 전문가 능력
- Judgement - 괜찮다!
- 컨텐츠 추천, 스팸 인식 → 전문가들이 동의하지 않을 때 어려움
- 상당한 인적 투입에 의존하는 경우 존재
- Social prediction - 아직 낮은 적응성
- 직원 성능 예측…
Applications in AI Security
- Threat Detection
- 모바일 보안 solution - 잠재적 위협 찾기 위해 자체 AI 알고리즘
- 클라우드, 데이터 센터 등의 모든 traffic을 통해 수집한 data - 실시간 공격 탐지
- Anomalies monitoring을 위한 modeling
- 모든 장치, 사용자, 네트워크의 행동 modeling
- “normal” pattern 학습, 자동으로 이상 행동 식별
- Security Screening
- 가상 얼굴 screen으로 사람들의 대답의 변화 등 monitoring, 질문 → 거짓말 탐지
- AI-based malware detection
- AI → 다양한 특성에 따라 악성 code 식별
- 변형 MW 탐지 & 탐지 error 최소화에 효율적
- training(MW 없을 때 feature 뽑아 학습) → feature engineering
- AI-based fraud detection system
- 소비자의 카드 사용 패턴(행동 패턴) 분석 → abnormal 거래 & 금융 사기 탐지
- AI 딥러닝 기법 FDS
- AI-based mobile security
- adaptive security layer
- adaptive하게 사용자가 신경쓰지 않아도 보안 수준 자동 설정
- 5% 남은 상황 → 보안 기능 끄고 배터리 아끼기 / 보안 기능 유지하고 빨리 꺼지기 ⇒ 유연하게 보안 수준 고려해 작동
AI-powered Attacks
- Data Poisoning
- 학습한 data에 독성 data 포함 → 원하지 않는 동작하도록(적대적 공격)
- 학습 data 접근 및 조작 → ML 기반 방어 시스템 효율적 공격
- Deepfakes
- video/picture/voice 수정 → 실제인 것처럼 보이는 image/clip 생성
- 사람의 정체성을 보여주는 video 합성 및 수정
- 유명 인사, 기업 등에 남용하는 사례 증가
- 정지 신호를 go-sign으로 바꾸는 것만으로도 자율주행차 속일 수 있음
- video/picture/voice 수정 → 실제인 것처럼 보이는 image/clip 생성
- AI-based fingerprint anti-spoofing
- 생성형 AI (GAN 등)으로 정교하게 만든 위조지문 - 고화질
- 모바일 기기 지문 인증 시스템 위협
Anomaly Detection(비정상 탐지)
- 정상/비정상 상황 정의 → 한 쪽 학습 후 반대 상황 발생 시 탐지
- 정상적인 시스템 사용에 기반한 위반 탐지 방법
- 기존엔 경험적 탐지 (전문가가 경계치 설정)
- 시계열 분석: 과거 관측치를 기준으로 예상치와의 편차로 정의
- AI → data의 경향성으로 경계치 정하자!
- 주요 방법: 통계 / 전문가 시스템 / ANN / data mining
- security application 적용 - 예상치 못한 침입 식별
Methods
- Heuristic-Based: 경계치나 단순 통계 profile 사용
- 구현하기 쉽지만 경계치 설정 어려움
- adaptive thresholding: 다수의 경계치가 있는 경우 적용 불가
- Data-driven: data에서 추출한 feature 사용
- data 경향성 기반 경계치 설정 → 신뢰할만한 분류 모델
- 목표
- false alarm 최소화
- system parameter 최적화 / 효율적인 처리 성능
- data trend 반영
- data 일반화 - sample data가 모집단의 대표성 반영하는가
- 설명 가능한 구분성(distinction) - dataset이 구분되는 이유
Feature extraction
- 각 시스템의 목적에 맞는 학습 및 탐지에 적용 가능한 데이터 특징
- 복잡한 정보 → 단순한 형태로 추출 (불필요 정보 제거, 핵심 feature만 유지)
- 각 domain의 독특한 features 고려 - domain 정의가 중요(host, network, web appplication)
Host Intrusion Detection
- 값은 heuristic / 연관성은 정의해줘야
- host: server, desktop, laptop 등 → 실행중 process, 활동중인 사용자 계정 등에서 signal 수집
- 자체 행렬 생성 → 다양한 signal의 상관관계 분석
- osquery → OS metrics 수집
Network Intrusion Detection
- host에 침입해 외부와 통신하는 공격
- host간 전송되는 traffic 검사 - network traffic metadata 추출, traffic content 검사
- ip 주소, 위치 정보 등
Data-Driven Algorithms
- Supervised Learning-based ML (주로 사용)
- label이 있는 data 학습
- 옛 data → 현재 예측: 시간 & data값 학습한 regression model
- noise 최소화
- LSTM(Long Short-Term Memory) network - timeline 기반
- RNN 변형 - 시계열 input에 대해 패턴 학습, 분류 및 예측
- 모든 예측이 outlier 탐지에 잘 작동하는 것은 X
- 학습 data에서 anomaly 필터링 X
- 불규칙 data
- 시스템의 침입 방법을 모두 알기 어려워 unsupervised 선호
- 예시
- CPU 사용량 이상 탐지
- 합법거래 vs 부정거래(소액/대량구매, 이상거래로 분류)
- label이 있는 data 학습
- Unsupervised Learning-based ML (주로 사용 ⇒ 보안 측면에서 더 효과적)
- normality를 인식하기에 충분하지 X labeling data
- 새로운 형태의 공격 시 선호(new SW vulnerability attack, zero-day attack)
- 예시
- 1-class SVM - boundary 내/외부. 학습 data는 anomaly 여부와 관련X
- Random Forest - tree 구조, 고차원 data 분류
- statistical metrics
- conformance(일치/적합) testing
- density-based method
ML Application
문제점
- cost of error - 하나 잘못 분류하면 심각한 failure → 전면 도입 어려움
- ML 알고리즘 불투명성 - 수학적으로 설명하기 어려워 training 한계 및 blackbox 존재
- 적대적 공격에 대해 방어하기 어려움
ML-based Anomaly Detection
- anomaly detection alert - 사용자에게 경고 알림 효과적으로 전달. risk insight
- 사고 대응 - 대응 protocol
- 수동 반응 - 별도 대응 없이 관리자에게 경고
- 능동 반응 - 그 자체로 반응
- 위협 완화 - 어떻게 동작하는지 살펴보고 대응, block
- 공격 범위 제한하고 정보 수집
- 설명 가능성
- AI 불투명성(black box)
- 유지 보수성
- 모델 학습 시 사용한 data와 현재 data 경향성이 다를 수 있다.
→ 경향성 변화 가능! - data 연속적 변화(ex. 여름 전력량 ≠ 겨울 전력량), 새 알고리즘의 등장
- 모델 학습 시 사용한 data와 현재 data 경향성이 다를 수 있다.
Ex) Mobile Non-Fingerprint Detection System
Malware Detection
harmful computer program
- Malware Classification
- features → 다른 MW samples grouping
- 행동 기반 분류 - virus, worm
- 목적 기반 분류 - downloader, ransomware
- signature pattern matching (전통적 방식) - 파일의 특정 부분 검사
- features → 다른 MW samples grouping
Malware Analysis
malicious SW의 기능, 목적, 기원 등을 분석
- 수동적 & 어려운 task: SW 분석 및 SRE 능력 필요
- 유의미한 feature extraction
대부분의 MW는 binary 형태로 존재 (실행 목적)
- Reverse Engineering - 내부 operation 정보 추출
- windows 실행가능 file(.exe) / android file(.apk), (.doc, .pdf) …
- Feature Engineering - raw data로부터 필요한 feature 추출
Source code 실행 프로세스
ML-based Malware Detection
- Fuzzy matching (개체 간 거리 기반 유사도 측정 metric / signature)
- Feature Selection Automation (MW 잠재적 feature 추출 - AI) → 아래에
- Adaptability (추적 및 탐지)
Feature Extraction
ML 알고리즘의 성공 여부 - data quality 중요! (체계적 data 수집 및 정제)
Feature engineering: raw data 해석 → MW 특성 나타나도록 data 생성
- Data collection: domain 지식 / validation(적은 에러)& bias / 반복 testing / collection process 자동화 & 확장가능성
(예시) Android Malware Analysis
- structural analysis → 어느 부분을 feature로 지정?
- AndroidManifest.xml → <uses-permission android:name … 로 범위 축소
- Static analysis: application
code실행하지 않고 분석- Smali code 분석 / Dex2jar 이용
- Android MW의 features
- 난독화 기술로 MW 숨김.
- hardcoded IP 주소 & hostname & system 참조 string
- 과도한 허용 요구
- 장치의 unusual place에 file 추적 기록 남김
- Dynamic analysis: application을 실제로 실행한(runtime) test 결과 분석
- application 접근 실시간 모니터링 & 사용자 정보 통제
- 모니터링되는 data가 네트워크를 통해 전송되는지 아니면 다른 방법으로 전송되는지
- sandbox 실행(emulator) - android studio
- action 생성 & log 수집 도구: android monkey - 가상 simulator, 임의로 동작 수행
- application 접근 실시간 모니터링 & 사용자 정보 통제
- Debugging: application 실행 (상태 & 시간) 분석 (breakpoint, watchpoint)
- Dynamic measurement: application과 실행 process에 특정 logic 삽입하여 환경 & runtime 수정
Feature Selection
여러 feature 사용 시 noise로 인해 정확도&성능 저하 가능성 → 중요하고 관련있는 feature만 선택
- 수동 선택: domain 지식, data insight
- 자동 선택: 통계학, 알고리즘
- 선택 X: unsupervised learning
ML Application Example
- Permission-based Android Malware Detection Using Machine Learning
- 목적: MW의 종류 탐지, 식별
- 방법: ML 기반 - permission feature의 static 분석
- 1500 normal app & 500 malicious app
- CSIT - mobile MW detection
Network Security
Network threats
- passive attack: network data 수정, 상호작용 X고 수집
- active attack
- 침입: network 경계 취약하게 - SQL injection
- 사기: communication channel 중간에 위치, communication 위조 시도 - DNS spoofing
- pivoting: network server 사이에서 entry point로 이동 - proxy pivoting
- DoS: system availability 공격, 일반 사용자들이 system 사용 못하게 - SYN flooding
- Botnet: malicious bot에 연결되어있는 network
Network Defense
- 접근 제어 & 인증 - 방화벽
- 침입 탐지 - 실시간 침입 방지 시스템
- network 공격자 탐지 / monitoring - micro-segmentation
- data-centric 보안 - data 암호화
ML-based Network Security
- network packet에서 발견되는 독특한 패턴: 패턴 분석을 통해 volume이나 repetition 기반 공격 탐지
- network packet data ← 일반적으로 protocol에 의해 제어
- TCP 3-way handshake
데이터 수집 어려움 → 실시간 데이터 부족 및 불균형, unsupervised learning / NSL-KDD 데이터셋
Feature Extraction
- packet analyzer - network traffic capture (ex. TCPdump)
- 추출 가능한 network features
- application protocol(http, ftp)
- 암호화
- login 실패/성공 횟수
- root 접근 시도
ML Application Examples
예시 1)
- Data Exploration (+ labeling / data_loader)
- Data Preprocessing (ex. drop)
- feature값 → 표준화 & 정규화. 일관된 형태로 변환 및 scale 축소.
- 분류 알고리즘 선택
- neural network, multinomial logistic regression, nearest neighbor
- 학습 데이터셋 크기, 예측 종류(카테고리/수치형), 라벨링 데이터 양, 결과 카테고리 수
- 학습
- supervised / semi-supervised(라벨링 학습 데이터 수 < 라벨링X 학습 데이터 수) / unsupervised
예시 2) IoT 환경에서 Auto-Encoder 기반 특징 추출을 이용한 network 침입 탐지 시스템
- 방법: AutoEncoder 기반 unsupervised learning
- 55만개 학습 데이터
AI + Biometrics
- AI-enhanced biometrics: biometric 정보 → AI 이해할 수 있게 encoding → DB에 저장 → 사용자 인증동안 디지털하게 sampling
- 위조 지문 생성 - 연결성 부여된 GAN 활용하여 실제와 같은 지문 생성 (Finger-gan)
- 실제 지문 데이터셋 & 위조 sample → discriminator
- discriminator에서 backpropagation feedback → generator → super resolution
- towards cross-materials - 재료 특성 반영하여 data feature 생성 → 위조 지문 판별 모델 정보 풍부하게
- Fake Face Generation
- 3D 모델 + 렌더링
- 2D StyleGAN
- Fingerprint Liveness Detection → Deepfake
- Visual artifacts
- 해상도 불일치, 반사 누락, 얼굴 영역의 세부 정보 누락
- Temporal artifacts
- 시간에 따라 부자연스러운 특징 발견
- Physiological(생리적) artifacts
- 영상에서 맥박 추출
- 적대적 공격 - 약간의 noise를 추가하여 모델을 속임
- FGSM, Deepfool 등의 적대적 공격 알고리즘 → 오판단 발생하도록
'Security' 카테고리의 다른 글
Network Security (1) | 2024.06.19 |
---|---|
Security Protocols (0) | 2024.05.05 |
Authentication (0) | 2024.05.05 |
Cryptography(3) - Public Key Encryption & Digital Signatures (2) | 2024.05.05 |
Cryptography(2) - Stream cipher & Block cipher (1) | 2024.05.05 |