Waiting for presentation



* * *



--:--:--

Security common sense that even developers need to know
Information Security
Infra & Security Team
Choi Subong

암호학

Cryptography

암호학적 해시함수



세 가지만 기억하세요

bcrypt, pbkdf2, scrypt! 잘 모르면 bcrypt만 쓰셔도 충분합니다.

해시 속도가 빠르다고 좋은게 아닙니다.

공격자도 그만큼 대입공격이 쉬워집니다.

#무결성, #데이터를 고정 길이로 압축, #빠른 일치 찾기

데이터가 변조되었는지 확인할 때 사용합니다.
큰 데이터를 고정 길이로 압축할 때 사용합니다.(복원불가)
원본 데이터 없이, 특정 데이터가 원본 값과 일치하는 지, 빠르게 비교할 때 사용합니다.

공개키 알고리즘

키 길이가 보안 강도와 일치하지 않습니다.

ECC-224는 112bit, RSA-2048은 160bit 수준의 보안 강도를 갖습니다.
공개키 알고리즘의 키 길이가 많이 필요한 이유는 대수학적 특성을 이용하기 때문입니다.
ECC-224, RSA-2048은 2030년까지 안전하다고 봅니다.

공개키와 비밀키 모두 암호화 / 복호화에 사용할 수 있습니다.

풀려면 반대 키를 사용해야합니다.

#느리다, #키 교환, #부인 방지

대수학적 특성을 이용하기 때문에 단순 xor 수준의 해싱이나 대칭키 알고리즘보다는 느립니다.
키 교환이 되지 않은 상태에서도 암호화 통신이 가능합니다.
상대가 메세지를 위조할 수 없습니다.

대칭키 알고리즘

키 길이와 보안 강도가 일치합니다.

1bit당 1bit의 보안 강도를 갖습니다.
AES-256만 사용해도 양자컴퓨터가 나오지 않는 이상 안전합니다.

상대와 같은 키를 가지고 암호화/복호화를 수행합니다.

이로 인해 상대가 내 메세지를 위조할 수 있습니다.

큰 데이터의 경우 암호화 운용방식이 필요합니다.

데이터를 암호화 하더라도 패턴이 노출될 수 있습니다.

#빠르다, #키 교환 필요, #연결 대상마다 키가 필요

단순 xor 연산을 반복하는 수준이라 매우 빠릅니다.
사전에 키를 교환해야 사용할 수 있습니다.
연결 대상마다 다른 키가 필요합니다.

취약점 탐지 도구

Good tools for Security

So, How Can I find the
web vulnerability?





  • Tools 좋은 도구만 가지고 있어도 반은 간다.
  • Skill 어디에 어떤 도구를 사용할 것인가?
  • Effort 꾸준히 끈기를 가지고 찾아야 한다.
Chrome Extension
Burp Suite

Burp Suite

  • 1. 웹 애플리케이션의 통신을 캡쳐하고, 변조할 수 있습니다.
  • 2. 이 툴의 사용법만 알아도, 웹 애플리케이션의 취약점을 찾을 수 있습니다.
  • 3. 상용버전은 취약점 탐지 및 퍼징 기능도 가능합니다.
  • 4. 실습할겁니다.
WireShark

WireShark

  • 1. 특정한 iface의 모든 패킷을 볼 수 있습니다.
  • 2. 애플리케이션 레벨에서 처리되지 않는 문제를 찾을 때 사용합니다.
  • 3. 사실 실제 웹개발자가 쓸 일은 잘 없습니다. 이런 도구가 있다는 것만 아시면 됩니다.
Cheat Engine

CheatEngine

  • 1. 메모리 상에서 특정 값을 찾고 변경할 때 사용됩니다.
  • 2. 이걸쓰면 클라이언트 상의 어떤 값이든 조작 가능합니다.
  • 3. 싱글 게임할 때 치트키처럼 쓸 수 있습니다.
HxD

HxD

  • 1. 이진파일의 일부를 변경할 때 사용합니다.
  • 2. 파일 그 자체를 볼 때도 쓰입니다.
  • 3. 파일 구조를 파악할 때도 쓰입니다.

도구 사용법을 배워봅시다!

Let's Practice!

Escape Web

당신은 액션파워에 침입하려는 산업스파이입니다.
액션파워의 면접에 "어떻게든" 합격하세요.
면접 사이트는 아래에 있습니다. 행운을 빕니다.


http://10.0.1.4:62500

Remember!

Doubt it

Do NOT TRUST client.

Careful filtering

Always verify the input carefully.
especially if there is any room for user intervention in input values such as exec, child_process, sql, and file search, you should do your best to filter and write test cases, and find exception cases diligently.

Trust framework

If my code is blocked by framework, there is a high probability that the code I am trying to squeeze is extremely dangerous.
All frameworks have security recommendations. Be sure to read the document.

OWASP - CheatSheet

Please refer to the cheat sheet when you are concerned about security.
OWASP has documented it to advise most cases.
It's well organized and deep.
Even if it's not now, please read the relevant information before you design something.

Thank you!

any question?