1 민감 데이터 노출 : 클라이언트와 서버가 통신할 때 SSL(Secure Socket Layer)을 사용하여 중요한 정보를 보호하지 않을 때 발생하는 취약점
- 데이터 처리와 암호화 저장이 클라이언트에서 이루어질 경우에 공격자는 클라이언트 PC를 장악하여 정보 탈취가 가능하므로 데이터 처리와 암호화는 반드시 서버 측에서 이루어져야함.
2 base64 인코딩 = 이진 데이터 6bit씩 64진수 문자셋으로 변환하는 인코딩 기법
- 다른 이진 데이터 변환 규칙과 관계없이 아스키코드만으로 데이터 인코딩 -> 플랫폼 제한 없이 사용 가능
- 이진 데이터가 6bit씩 나누어지지 않을 때 패딩 문자를 자동으로 붙여 6bit 채움
- 다양한 플랫폼에서 전송한 데이터가 인코딩 기법이 달라서 데이터가 깨지는 경우는 없기 때문에 Base64 인코딩 기법을 주로 사용
3 스니핑(Sniffing) = 서버와 클라이언트 사이 연결에 오고 가는 패킷을 엿보는 공격
- 연결이 암호화되어 있지 않거나 평문으로 전송되는 경우 패킷에 있는 데이터로 사용자의 정보를 알아낼 수 있다.
- 칼리리눅스의 스니핑 도구 : ettercap
- ettercap -G (G옵션 : GUI)
(1) Unified Sniffing = 게이트웨이 IP 주소와 공격 대상의 IP 주소를 설정하여 ARP 스푸핑 공격을 통하여 패킷을 스니핑
(2) Bridged Sniffing = 둘 이상의 네트워크 카드 사이에서 스니핑 -> 게이트웨이를 조작하지 않고 스니핑하기 때문에 스니핑 여부가 감지되지 않는다.
* 대응방안 : 중요한 정보를 전송하는 경우 HTTPS 프로토콜 사용
-> HTTPS로 중요한 정보를 전송하기 위해서는 SSL 인증서를 설치하여 암호화 설정을 하여야 한다.
-> SSL 인증서를 발급받으려면 공인 CA(Certificate Authority)를 통하여 인증서를 구입해야한다. (임의로 본인이 인증서를 발급하는 경우 신뢰할 수 없는 인증서라는 경고를 출력함)
4. HTML5 웹 저장소
* HTML5는 웹 저장소(Web Storage)를 사용하여 쿠키 대체
- 장점 : 매번 쿠키를 전송할 필요가 없어서 쿠키에 비해 안전하다
- 단점 : 클라이언트에서 정보 수정이 가능하여 XSS 공격이 가능
5. 해시 값 원문 변환 사이트 : https://crackstation.net/
* salt : 비밀번호에 salt에 해당하는 문자열을 같이 암호화하기 때문에 해시 함수에 사용된 salt 값을 모르는 경우 비밀번호를 알아낼 수 없다.
6. 하트블리드(Heartbleed) 취약점
: 2014년 4월에 발견된 OpenSSL의 소프트웨어 버그(CVE-2014-0160)
: 사용자나 관리자의 ID, Password, SSL 비밀키 등을 노출하게 하는 아주 위험한 수준의 취약점
: OpenSSL 1.0.1 이후 '하트비트(heartbeat)'라는 세션 연결을 확인하는 방법을 제공하지만, 전달되는 값의 길이를 검증하지 않아 Buffer Overflow가 발생한다. 이 결함은 하트비트마다 최대 64KB의 응용 프로그램 메모리 내용을 요청할 수 있다. 외부에서 서버의 메모리 정보를 평문으로 계속 볼 수 있기 때문에 지속해서 공격하여 ID,Password, 기타 개인 정보가 노출될 수 있다.
: 하트블리드 스크립트는 기본 443/TCP 포트를 대상으로 한다. <= HTTPS 포트번호
* 대응방안
- OpenSSL 버전 업데이트, 비밀번호 변경 또는 이중 인증, 인증서 재발급, IPS에서 탑지 룰 설정 등
'Hacking > Web' 카테고리의 다른 글
A9-알려진 취약점이 있는 컴포넌트 사용 (0) | 2017.02.25 |
---|---|
A7 - 기능 수준의 접근 통제 누락 (0) | 2017.02.18 |
매직해시(Magic Hashes) 취약점 (0) | 2017.02.16 |
A3. 크로스 사이트 스크립팅 (0) | 2017.02.09 |
addslashes(), mysql_real_escape_string() 우회 (9) | 2017.02.01 |