V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RTNelo
V2EX  ›  程序员

怎样为计算机相关专业的学生办一场关于网络安全的科普讲座?

  •  1
     
  •   RTNelo ·
    RTNelo · 2016-08-30 23:22:14 +08:00 · 4511 次点击
    这是一个创建于 2795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    据 LZ 的观察,很多同学(软件工程专业、大三)并没有基础的网络安全知识,构建的系统漏洞百出(通过字符串拼接构造 SQL 语句、用户密码简单 Hash 不加盐等等)。然而很多系统(.com.cn,或许还有.gov.cn)是层层外包给大学生的。这样的系统难保不是下一个徐玉玉事件的源头。而且学校的课程通常没有涉及相关内容(不太清楚隔壁网络安全专业的情况,但软件工程的《计算机网络》是完全略过网络安全部分不讲的,其他如数据库、 HTML 、 JSP 、 Java 等的课程类似)。那么,如果通过社团向相关专业的同学们举办关于网络安全的科普讲座,需要注意哪些问题?诸位前辈又有哪些看法、意见和建议呢?

    目前 LZ 发现的问题有以下几个:

    1. 讲座以 OWASP TOP 10 为主要内容是否可行?

      是否需要增加(如我国关于信息安全的法律法规,不要未受邀请地测试他人的系统等)或者删改某些内容?

    2. 讲座面向群体是否应限定为高年级同学(通常计算机网络和数据库系统原理大二才开课)?
    3. 讲座举行的时长和次数应该怎样设定?
    4. 是否已有相关的讲义、示例等可以帮助同学们理解?
    5. 怎样激发同学们对于网络安全的兴趣?
    60 条回复    2016-09-12 19:30:50 +08:00
    ivmm
        1
    ivmm  
       2016-08-30 23:31:48 +08:00   ❤️ 1
    同样有这样的需求。

    2. 我大一就学了 SQL Sever 。。。。 然后自学 Mysql

    5.我想说,很难激起他们的兴趣。或许刚开学还有三分钟热度,开学一个月后就难说了
    RTNelo
        2
    RTNelo  
    OP
       2016-08-30 23:35:29 +08:00
    @ivmm 其实主要目的还是让同学们知道“这样做是不安全的”,至少要比做着字符串拼接而不知安全隐患要强得多。
    ivmm
        3
    ivmm  
       2016-08-30 23:39:35 +08:00
    @RTNelo 最好讲述的方式生动点,来听的人也不要强制来,自愿的效率会搞很多
    ivmm
        4
    ivmm  
       2016-08-30 23:39:42 +08:00
    @ivmm 高很多
    wevsty
        5
    wevsty  
       2016-08-30 23:40:17 +08:00   ❤️ 2
    现场演示是最有效最深刻的
    字符串拼接的,找个项目演示 SQL 注入
    不带盐 HASH 的,现场解密查询密码
    了解了这样做的危害,有责任心的人心里就会树立起这种意识了
    GentleSadness
        6
    GentleSadness  
       2016-08-30 23:40:53 +08:00 via Android   ❤️ 1
    web 白帽子 其实也就这几个要注意的,然后怕的是嫌麻烦,编码其实注意的应该不多
    ferock
        7
    ferock  
       2016-08-30 23:47:18 +08:00 via iPhone   ❤️ 1
    座谈的方式,要用互动开场…


    比如:大家平时怎么考虑自己项目的安全?
    RTNelo
        8
    RTNelo  
    OP
       2016-08-30 23:48:19 +08:00
    @wevsty 操作多的话占用时间就多了,所以其实把所有内容讲完的话其实应该需要开很多次?
    RTNelo
        9
    RTNelo  
    OP
       2016-08-30 23:50:35 +08:00
    @GentleSadness 嫌麻烦真是没办法啊...明明多几句代码就不会出现漏洞的...所以到最后不是兴趣的问题而是责任心的问题吗...
    RTNelo
        10
    RTNelo  
    OP
       2016-08-30 23:51:39 +08:00
    @ferock 估计大多数同学都不怎么考虑吧...毕竟会给密码加 HASH 的同学都算技术好的了。
    RTNelo
        11
    RTNelo  
    OP
       2016-08-30 23:52:46 +08:00
    @ivmm 就一学生社团哪有权力强制同学来啊...
    ferock
        12
    ferock  
       2016-08-30 23:53:56 +08:00 via iPhone
    那,继续下一阶段问题:那如果现在需要给你的项目考虑安全性,应该怎么系统的考虑呢?


    你的座谈就会有节奏的往下走了
    ivmm
        13
    ivmm  
       2016-08-30 23:53:56 +08:00
    @RTNelo 看来社长和学校领导和专业老师的关系不够深刻啊。
    wevsty
        14
    wevsty  
       2016-08-30 23:55:00 +08:00
    @RTNelo 不需要一步一步的教操作过程啊,演示一下过程,不需要做任何说明,或者事前演练好直接放视频都行,花不了多少时间。
    另外 web 安全这方面有多少东西需要讲?基本上过滤一下用户输入,密码用加盐 hash 基本上也就差不多了吧。不过这方面我不是很懂。如果说一次讲不完也没关系,先勾起兴趣或者安全意识其实目的也就达到了,该学的,想学的自然会学不管是通过讲座还是自己学,不想考虑安全问题的,天天敲打也没用不是么?
    RTNelo
        15
    RTNelo  
    OP
       2016-08-30 23:56:59 +08:00
    @ferock 大概也可以埋伏几个同学需要的时候带节奏。
    RTNelo
        16
    RTNelo  
    OP
       2016-08-30 23:58:02 +08:00
    @ivmm 只是关系大概不够吧,估计得是交易了。
    RTNelo
        17
    RTNelo  
    OP
       2016-08-31 00:00:57 +08:00
    @wevsty 第一个示例准备好材料(在线猜测密码之类的网站)让同学们自己尝试以加深印象?之后的示例通过 ppt 演示节省时间?
    ivmm
        18
    ivmm  
       2016-08-31 00:01:19 +08:00
    @RTNelo 多和党团的老师交流交流,多跑跑。 专业课老师多问问,多聊聊。 哪里用交易。。。
    Yinz
        19
    Yinz  
       2016-08-31 00:01:55 +08:00   ❤️ 1
    提供一个 Idea :D ,讲座前邀请同学们注册一个目标网站,使用不加盐 hash 储存,然后在讲座上现场跑彩虹表,输出大屏幕的密码打个码就好 XD

    还可以现场社工?

    当然注册的时候写好注册的密码将会被用于现场展示,请不要使用真实密码注册这样 XD

    总之挺喜欢这种现场演示的 XD
    RTNelo
        20
    RTNelo  
    OP
       2016-08-31 00:06:35 +08:00
    @ivmm 感觉强制同学来实在是有点出格了……
    @Yinz 对对,现场社工。之前把那个 QQ 群关系可视化查询的网站演示给室友后效果拔群。不过那个网站好像挂掉了。
    sheep3
        21
    sheep3  
       2016-08-31 00:07:27 +08:00 via Android   ❤️ 1
    首先很多人可能还不清楚什么是 hash ……
    wevsty
        22
    wevsty  
       2016-08-31 00:09:17 +08:00
    @RTNelo 我赞同 @Yinz 的想法
    有条件还可以现场抓个包,鼓励大家使用 HTTPS 。 233
    如果时间有限不能做到这一步,可以随机邀请几个同学设定一个密码,然后直接 MD5 以后去查现成的表。很多解密网站一次 MD5 是很容易查出来的。
    ferock
        23
    ferock  
       2016-08-31 00:11:39 +08:00 via Android
    @RTNelo 当然需要, 一个好汉三个帮
    Yinz
        24
    Yinz  
       2016-08-31 00:14:27 +08:00
    @RTNelo 你一说我才发现确实挂掉了,比较可惜 D:
    billlee
        25
    billlee  
       2016-08-31 00:17:17 +08:00   ❤️ 1
    软件工程专业不开信息安全相关的课程吗?
    RTNelo
        26
    RTNelo  
    OP
       2016-08-31 00:19:11 +08:00
    @sheep3 毕竟是个科普级讲座,简单介绍一下概念的话应该也不会很耗时间。
    @wevsty 之前学校 WiFi 没密码,校园网帐号登录是明文传输的,那时候做演示效果是最好的,不过更新后学校用上 https 了。另外我的网卡开不了工程模式,到时候可能要找网络安全的同学们借了。
    @ferock 希望讲的时候不会被网络安全的同学打脸...
    RTNelo
        27
    RTNelo  
    OP
       2016-08-31 00:22:53 +08:00
    @Yinz 不过应该还是有其他社工的网站的。
    @billlee 培养计划上没有看到相关课程,好像连选修课都没有(也许《软件测试技术》会讲?我们还没有上这门课)。
    wevsty
        28
    wevsty  
       2016-08-31 00:28:07 +08:00
    @RTNelo

    用带漏洞的老版本 Discuz ,先让同学现场注册,然后第一步公布抓包,抓包不一定需要工程模式,可以直接用 Win Server 的远程路由访问当网关使,Linux 也可以,网关抓包就行了找个无线路由器做无线发射即可,或者直接 arp 一下也可以,这样就能抓包强调 HTTPS 的重要性。接着 SQL 注入现场拉 Discuz 的数据库回来,在解密其中的密码多余的时间还可以用 Disucz 演示 XSS 之类的其他问题。
    ETiV
        29
    ETiV  
       2016-08-31 00:32:05 +08:00   ❤️ 1
    我觉着光讲没用的, 老话讲的吃一堑长一智还是有道理的.

    踩过这种坑了才知道为啥要这么做, 而不是那么做.

    但首先还是得教他们懂得负责.

    说白了, 这是人生的课堂.
    q397064399
        30
    q397064399  
       2016-08-31 06:38:18 +08:00   ❤️ 2
    真没必要教,我 07 年拿个 啊 D 配合 ewebeditor 黑了那么多 ASP 的站点,就是这些不负责的程序员弄出来的,要是这个世界都是负责的程序员,那新手黑客如何练技术?虽然早不玩安全了,但是上大学靠着 内网嗅探 ARP 还有一个 ewebeditor 硬是拿到了学校的成绩数据库,之后天天逃课,现在毕业蛋疼的要死,技术没学好技术,自己学业也没学好
    megatron
        31
    megatron  
       2016-08-31 07:32:44 +08:00   ❤️ 1
    可以先举办一个渗透比赛,当然要有奖品。特等奖,入侵难度最大,甚至可以是通过选拔赛之后,现场实时入侵。而普通奖,常见的漏洞。
    msg7086
        32
    msg7086  
       2016-08-31 07:34:39 +08:00   ❤️ 1
    我还见过把人家大型公司的域控管理员密码明文到处传的,而且每次点击都会传一次。
    firebroo
        33
    firebroo  
       2016-08-31 07:53:52 +08:00 via Android   ❤️ 1
    紧跟步伐学习新的技术栈,一般前沿框架都会尽量把安全工作都给你做了,当然安全做大的弱点还是人。
    geek123
        34
    geek123  
       2016-08-31 08:45:34 +08:00   ❤️ 1
    @RTNelo ,推荐一本书《黑客攻防从入门到精通 实战篇》给你,希望对你有帮助:

    http://book.hubwiz.com/55750a1f6a1625018cfa6b01
    davin
        35
    davin  
       2016-08-31 08:48:11 +08:00   ❤️ 1
    推荐大家看相关的电影,比如: Firewall(2006), Cybergeddon (2012), Mr. Robot(第二季出到第九集了)
    wemore
        36
    wemore  
       2016-08-31 08:56:20 +08:00 via Android   ❤️ 1
    多逛 v2 不就行了
    enginex
        37
    enginex  
       2016-08-31 08:57:47 +08:00   ❤️ 1
    5. 把 5 季的 POI 放一遍 O(∩_∩)O
    hffaxy
        38
    hffaxy  
       2016-08-31 09:12:21 +08:00   ❤️ 1
    0.信安专业,就我自身感受的话,实际演示远比 ppt 讲义生动得多。
    1.实际演示可自行搭建脆弱系统环境或者直接上 DVWA 让同学们自己实际体验不安全编码的危害性。
    2.OWASP TOP 10 要讲这个的话,涉及知识面就比较多了,同学们接受起来就相对比较困难,结合实际演示吧,效果应该会好点。
    3.信安方向,就安全编码来说, web 和软件编程同样重要,也可覆盖软件安全编码知识,比如说逆向工程和缓冲区溢出。
    4.一切之前,先科普信息安全相关法律法规。
    5.兴趣的话,往 hack , geek 方面去吹,电影看过没?各种神,各种玄,同学兴趣就上来了。
    6.如果只是科普向讲座,可向低年级开放,有兴趣的自然回去补基础知识,不过就要相应的在你的讲义里 0x0 基础知识里补充相对完善的基础知识或者相关技术,概念就行,不用太全面。
    7.这只是一个讲座, Interest first , and take it easy
    8.enjoy it~
    solonF
        39
    solonF  
       2016-08-31 12:48:05 +08:00   ❤️ 1
    咦,非要讲座嘛,效率不高啊,随便把要讲的往 qq 群里一发,该看到的会看到并注意的吧……
    loading
        40
    loading  
       2016-08-31 13:59:27 +08:00 via Android   ❤️ 1
    当着大家的面,进教务处,改分。
    RTNelo
        41
    RTNelo  
    OP
       2016-08-31 18:37:13 +08:00
    @wevsty 非常感谢,我去查查相关资料。
    @ETiV 但很多时候吃一堑的人是普通用户(明明程序员多写一句就可以避免的事情),代价还是太大了。
    @q397064399 但是就我的观察来看,同学们很多时候不是不负责任,而是根本没有安全意识,根本不知道他们的实现是有问题的。
    @megatron 主要还是面向非信息安全专业的同学们的科普讲座,普及一下相关知识。直接的渗透比赛已经有了,而且科普的性质也没有那么强了。
    @msg7086 这个公司...一直没出过问题吗...
    RTNelo
        42
    RTNelo  
    OP
       2016-08-31 18:39:02 +08:00
    @firebroo 是的。我最开始意识到这些问题的时候是读过 Tornado 和 web.py 文档的相关章节之后了。应该向同学们强调下,尽量使用已有可靠的框架,而不要自己直接生造。
    @geek123 非常感谢!
    @davin @enginex 电影剧集等等作为之后启发兴趣的资料更好一些吧。想必多数同学是没有什么时间聚集到一起看电影的(而且我校的放映设备还不是很理想)。
    @wemore 多数技术类社区都会有一定的涉及的,但是就安全方面来说 FreeBuf 之类的可能会更好吧?
    RTNelo
        43
    RTNelo  
    OP
       2016-08-31 18:50:33 +08:00
    @hffaxy 非常感谢您的建议!缓冲区溢出也能被大一的同学理解。直接演示同学们自己所写程序中的漏洞被利用的情况,应该可以和各种电影一样引起同学们的兴趣。另外开始之前先把讲义的地址以二维码形式挂出来以供查阅。
    @solonF 把基础常识以微博长文的形式转发的效果怎么样呢?
    @loading 会被开除的,绝对会被开除的!
    loading
        44
    loading  
       2016-08-31 18:56:37 +08:00 via Android
    @RTNelo 你建一个网站,然后展示一下 SQL 注入就可以了。
    hack
        45
    hack  
       2016-08-31 21:45:08 +08:00
    讲一遍 webgoat 即可,然后现场演示一下
    Yinz
        46
    Yinz  
       2016-08-31 21:54:38 +08:00
    @RTNelo 现场邀请同学注册的话,很容易出现服务器压力太大直接挂掉的情况,而且讲座的场馆可能会遇到信号不好的情况(我们学校几乎 100%),现场网络服务建议慎重考虑,很容易出各种问题。

    曾经有公司来做讲座,现场搭了 5 个蜜罐路由器,现场大概 100 来人,直接脱挂了所有路由和网络,现场演示十分尴尬 XD
    不过如果有办法控制这个效果的话,蜜罐路由还是非常有趣吸引人的 XD
    breeswish
        47
    breeswish  
       2016-08-31 21:56:35 +08:00
    然并卵,只有与到手的分数挂钩了他们才会真正在意。
    bjrjk
        48
    bjrjk  
       2016-08-31 22:03:39 +08:00 via Android
    第二个问题吧,我是高中生,也喜欢研究信息安全。想问你这个会如何参加?你说应该不应该不限制呢?不过如果年龄太小就是来这里凑个热闹也确实不太好。
    wevsty
        49
    wevsty  
       2016-08-31 22:15:11 +08:00
    @Yinz 用性能好一点的机器做服务器没有那么脆弱吧? wifi 连接人太多不好用或者挂掉倒是有可能,可以 2 种解决方案,公网 VPS 上架,所有人用运营商网络访问就可以了,或者场馆架设 wifi , DHCP 限制一下最大用户数量然后不允许连接外网,演示都放在内网会好很多。要保证不出问题,可以在第一排提供有线连接。
    msg7086
        50
    msg7086  
       2016-08-31 22:43:29 +08:00
    @RTNelo 已经快挂了。
    但是并不是因为安全问题,而是因为资金入不敷出。
    Yinz
        51
    Yinz  
       2016-09-01 01:01:07 +08:00
    @wevsty 我们学校出的问题是,场馆内信号不好,手机 4g 极慢, WIFI 由于连接人数过多导致爆炸,所以整个场馆内几乎是断网状态。。。这个问题和服务器性能没太大关系。。
    shiji
        52
    shiji  
       2016-09-01 04:18:06 +08:00
    个人感觉对安全感兴趣的都去自学了,剩下的积极性有限。
    xFrank
        53
    xFrank  
       2016-09-01 09:05:12 +08:00
    支持现场演示,最能提升兴趣。
    还可以讲讲类似这种热门事件: http://mt.sohu.com/20160825/n465965832.shtml
    skylancer
        54
    skylancer  
       2016-09-01 10:28:18 +08:00
    @RTNelo 工程模式是什么情况...
    changwei
        55
    changwei  
       2016-09-01 11:09:54 +08:00
    我觉得可以先自己去找找看自己的高校官网是否有类似的漏洞,或者拿他们的漏洞作为演示 demo ,在法律允许的情况下把危害展示给他们看,这样很容易挑起学生们的好奇心和积极性,这种讲座还是有点意义的。
    Hodor
        56
    Hodor  
       2016-09-01 17:28:11 +08:00
    这么热的天还得走到教室。。哎。。算了,宿舍打游戏吧
    q397064399
        57
    q397064399  
       2016-09-02 05:52:23 +08:00
    @RTNelo 安全编码以后肯定会被带入框架,现在 MVC 的设计模式,在控制器里面框架可以编写代码自动过滤 SQL 注入攻击,而不是让程序员来实现
    q397064399
        58
    q397064399  
       2016-09-02 05:58:14 +08:00
    你应该普及一下类似于缓冲区溢出的技术,找个老点的发行版 linux ,写一个 CS 简易客户端,在 Server 端弄个套接字,然后处理字符串的时候,弄个缓冲区溢出,然后写个 shellcode ,关闭 selinux 在电脑面前演示一遍,如何通过 shellcode 提取 user 权限,进而获得 root 权限,讲解一下 ios 越狱也基本上跟这玩意原理差不多,之后那些大一的 CS 新生就会对你顶礼膜拜了。
    q397064399
        59
    q397064399  
       2016-09-02 06:02:31 +08:00
    不过 CS 基础好的,估计也会嗤之以鼻,这些年搞 IOS 越狱其实也就是个体力活,新的加密解密算法还轮不到黑客来搞,大多就是些年轻小伙子,逆向分析一下 ios 的沙箱技术,看能不能通过一些错误提权到内核权限来修改 rootfile
    ferock
        60
    ferock  
       2016-09-12 19:30:50 +08:00
    @RTNelo 不要怕被打脸,应该欢迎打脸,然后主动邀请,网络安全的同学,上来互动,为大家添砖加瓦!要有 open 的心态。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4006 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:18 · PVG 13:18 · LAX 22:18 · JFK 01:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.