SS 15
개강까지 D-35!
🌱 Coursera - Software Security (~8/2)
✅ Black Box / White Box Test
- Black Box Test
ex) 동등 분할 / 경계값 분석 / 오류 예측 / 원인 결과 그래프 기법 / 의사결정 테이블 테스팅 / 상태전이 테스팅
- White Box Test
ex) 문장 / 분기 / 경로 / 조건 검증
✅ Why Software Security?
소프트웨어 결점이 보안 문제의 근원이 되는 경우 ㅇㅇ
–> 보안 강화를 위한 표즌 방안? 블랙박스 특성이 sw보안 기법들의 효과 제한
🟢 Operating System Security
실행 프로그램의 코드는 중요하지 않아, OS는 프로그램이 무엇을 하는가에 관심
“System Call” 파일의 읽기&쓰기 / 네트워크 패킷의 전송 / 새로운 프로그램의 실행
운영체제는 (System call) 범위를 제한하는 보안 정책 시행
ex) 신뢰할 수 없는 사용자의 프로그램이 신뢰할 수 있는 서비스를 사용할 수 없게 표준 네트워크 포트를 이용하여 구현할 수 있다.
프로그램의 보안 관련 동작 중, 일부는 너무 잘게 나눠져 있어 시스템 콜로 전달되지 않아 <– 소프트웨어 자체의 개입 필요
- ex) DBMS(데이터 관리 서버): 보안정책은 특정 데이터를 이용하고 있는 해당 어플리케이션에 종속적
- 데이터에 대한 접근을 통제하는 보안정책 시행하는 일은 OS가 아닌 DBMS의 몫
특정한 종류의 정책(정보 흐름 관장) 시행 X, OS는 대게 실행 모니터의 역할
🟢 Firewalls & IDSs(침입탐지시스템) : 네트워크 모니터
-
Firewalls: 네트워크로 들어오지 못하도록 연결/접속 패킷 차단
(ex: 네트워크 서버에 대한 모든 연결 시도 차단)
지역 내의 사용자들만 사용하게 되어 있는 근거리 통신망에서 동작하는 소프트웨어가 있을 때 유용 -
IDS(Intrusion Detection System)
: 더 정교한 통제기능 제공
의심스러운 패턴 찾는 네트워크 패킷 내용 검사
ex) 취약한 서버 악용하기 위해 공격자는 조작된 입력값을 네트워크 패킷으로 서버에 전송, IDS는 그런 패킷을 찾아 여과 -> 공격 발생 방지
공격로를 줄이는데 탁월, 알려진 공격 벡터 방지 but! 두 장치 모두 우회 가능
ex) 대부분의 방화벽은 80번 포트에서 트래픽 허용, 방화벽들이 해당 트래픽을 무해한 웹 트래픽으로 간주
- SOAP 단순 객체 접근 프로토콜: 80번 포트 이외의 포트에서 방화벽 차단 회피하는 프로토콜, 더 많은 범용 메시지 교환 허용, 웹 프로토콜을 사용하여 인코딩
🟢 Anti-virus Scanners
파일, 이메일, 기타 트래픽 내용 검사하는 도구, 호스트 컴퓨터에서 공격의 흔적을 찾는다
공격벡터를 약간만 변경해도 쉽게 우회당할 수 있다
🟢 Heartbleed ? 버그가 있는 서버를 운영하는 OpenSSL이 메모리의 일부를 되돌려 보내게 하는 방식으로 악용ㅇ (bufferoverflow의 예)
🖤 Low-lever Vulnerablilities
- Buffer overflows
- Format string mismatches
- Dangling pointer derefernces <– 이게 뭔데
메모리 안전성 침해: 포인터를 통한 메모리의 액세스가 보유하는 메모리로 들어가지 않고, 다른 부분들로 들어가는 경우
🤍 메모리 안전 프로그래밍 언어 사용, type-safe language
C/C++: use automated defenses
🖤 Securing the WWW
- SQL injection
- Cross-site scripting (XSS)
- Cross-site request forgery (CSRF)
- Session hijacking
🤍 validate input
🤍 Favor Simplicity, Trust with Reluctance, Defend in Depth